From f56bf74a6c77c939d06de6e44ca1749694aefd87 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Wed, 14 Dec 2022 14:42:42 +0100 Subject: [PATCH 1/2] Replace taskr.watch for core compilation Currently we use taskr.watch to kick off tasks on file changes while developing on the Next.js core, however the version of chokidar that taskr.watch uses is quite out of date and causes a few hard to debug issues like the watcher hanging randomly. This PR replaces taskr.watch with a custom version that works mostly the same but instead uses watchpack (already part of the Next.js dependencies) and watches directories as that fits with the case that we have for the Next.js taskfile. --- packages/next/package.json | 4 +-- packages/next/taskfile-watch.js | 62 +++++++++++++++++++++++++++++++++ packages/next/taskfile.js | 45 ++++++++---------------- 3 files changed, 79 insertions(+), 32 deletions(-) create mode 100644 packages/next/taskfile-watch.js diff --git a/packages/next/package.json b/packages/next/package.json index 4fae8728beaead8..42aa4668a07616d 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -71,7 +71,8 @@ "taskr": { "requires": [ "./taskfile-ncc.js", - "./taskfile-swc.js" + "./taskfile-swc.js", + "./taskfile-watch.js" ] }, "dependencies": { @@ -133,7 +134,6 @@ "@segment/ajv-human-errors": "2.1.2", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", - "@taskr/watch": "1.1.0", "@types/amphtml-validator": "1.0.0", "@types/babel__code-frame": "7.0.2", "@types/babel__core": "7.1.12", diff --git a/packages/next/taskfile-watch.js b/packages/next/taskfile-watch.js new file mode 100644 index 000000000000000..77302ac1f765e39 --- /dev/null +++ b/packages/next/taskfile-watch.js @@ -0,0 +1,62 @@ +/* +Modified version of taskr.watch that uses watchpack instead of chokidar + +https://github.com/lukeed/taskr/blob/7a50e6e8c1fb8c01c0020d9f0e4d8897ccc4cc28/license +The MIT License (MIT) + +Copyright (c) 2015 Jorge Bucaran (https://github.com/JorgeBucaran) +Copyright (c) 2016 Luke Edwards (https://github.com/lukeed) + +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. +*/ +const path = require('path') +// eslint-disable-next-line import/no-extraneous-dependencies +const Watchpack = require('watchpack') +const toArr = (val) => (Array.isArray(val) ? val : val == null ? [] : [val]) + +module.exports = function (Taskr, _utils) { + Taskr.plugin( + 'watch', + { every: false, files: false }, + // eslint-disable-next-line require-yield + function* (_, directory, names, opts) { + const wp = new Watchpack({ + aggregateTimeout: 5, + followSymlinks: true, + ignored: '**/.git', + }) + + names = toArr(names) + opts = opts || {} + + const dirToWatch = path.join(__dirname, directory) + wp.watch({ + directories: [dirToWatch], + startTime: Date.now() - 10000, + }) + + wp.on('aggregated', function (_changes, _removals) { + // No matter if there's a removal or change the task has to run + return Taskr.serial(names, opts) + }) + + return + } + ) +} diff --git a/packages/next/taskfile.js b/packages/next/taskfile.js index 905d43c3718a9a1..9cb2fc9ee24e392 100644 --- a/packages/next/taskfile.js +++ b/packages/next/taskfile.js @@ -2302,44 +2302,29 @@ export default async function (task) { const opts = { dev: true } await task.clear('dist') await task.start('build', opts) - await task.watch('bin/*', 'bin', opts) - await task.watch('pages/**/*.+(js|ts|tsx)', 'pages', opts) - await task.watch('server/**/*.+(js|ts|tsx)', 'server', opts) - await task.watch('server/**/*.+(js|ts|tsx)', 'server_esm', opts) - await task.watch('build/**/*.+(js|ts|tsx)', 'nextbuild', opts) - await task.watch('build/**/*.+(js|ts|tsx)', 'nextbuild_esm', opts) - await task.watch('build/jest/**/*.+(js|ts|tsx)', 'nextbuildjest', opts) - await task.watch('export/**/*.+(js|ts|tsx)', 'nextbuildstatic', opts) - await task.watch('client/**/*.+(js|ts|tsx)', 'client', opts) - await task.watch('client/**/*.+(js|ts|tsx)', 'client_esm', opts) - await task.watch('lib/**/*.+(js|ts|tsx)', 'lib', opts) - await task.watch('lib/**/*.+(js|ts|tsx)', 'lib_esm', opts) - await task.watch('cli/**/*.+(js|ts|tsx)', 'cli', opts) - await task.watch('telemetry/**/*.+(js|ts|tsx)', 'telemetry', opts) - await task.watch('trace/**/*.+(js|ts|tsx)', 'trace', opts) + await task.watch('bin', 'bin', opts) + await task.watch('pages', 'pages', opts) + await task.watch('server', ['server', 'server_esm', 'server_wasm'], opts) await task.watch( - 'shared/lib/{amp,config,constants,dynamic,head,runtime-config}.+(js|ts|tsx)', - 'shared_re_exported', + 'build', + ['nextbuild', 'nextbuild_esm', 'nextbuildjest'], opts ) + await task.watch('export', 'nextbuildstatic', opts) + await task.watch('client', 'client', opts) + await task.watch('client', 'client_esm', opts) + await task.watch('lib', 'lib', opts) + await task.watch('lib', 'lib_esm', opts) + await task.watch('cli', 'cli', opts) + await task.watch('telemetry', 'telemetry', opts) + await task.watch('trace', 'trace', opts) await task.watch( - 'shared/**/!(amp|config|constants|dynamic|head|runtime-config).+(js|ts|tsx)', 'shared', + ['shared_re_exported', 'shared_re_exported_esm', 'shared', 'shared_esm'], opts ) await task.watch( - 'shared/**/!(amp|config|constants|dynamic|head).+(js|ts|tsx)', - 'shared_esm', - opts - ) - await task.watch( - 'shared/lib/{amp,config,constants,dynamic,head}.+(js|ts|tsx)', - 'shared_re_exported_esm', - opts - ) - await task.watch('server/**/*.+(wasm)', 'server_wasm', opts) - await task.watch( - '../react-dev-overlay/dist/**/*.js', + '../react-dev-overlay/dist', 'ncc_next__react_dev_overlay', opts ) From 413f9c6195f31a9ca77d0a2575c3dd9c1de5f53f Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Wed, 14 Dec 2022 14:49:36 +0100 Subject: [PATCH 2/2] Update lockfile --- pnpm-lock.yaml | 277 ------------------------------------------------- 1 file changed, 277 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1deeb8f784e32e..2101ea16dbc7a3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -510,7 +510,6 @@ importers: '@swc/helpers': 0.4.14 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 - '@taskr/watch': 1.1.0 '@types/amphtml-validator': 1.0.0 '@types/babel__code-frame': 7.0.2 '@types/babel__core': 7.1.12 @@ -707,7 +706,6 @@ importers: '@segment/ajv-human-errors': 2.1.2_ajv@8.11.0 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 - '@taskr/watch': 1.1.0 '@types/amphtml-validator': 1.0.0 '@types/babel__code-frame': 7.0.2 '@types/babel__core': 7.1.12 @@ -6781,15 +6779,6 @@ packages: rewrite-imports: 1.4.0 dev: true - /@taskr/watch/1.1.0: - resolution: {integrity: sha512-CIgNdU4eEPOXn2LeW3voYsHA3vskbqPhYfNWTMvNIUVx4ZJtClQcfEME+MeBzW1xEnGUGMgHTL5jf1V2LmPt3A==} - engines: {node: '>=4.6'} - dependencies: - chokidar: 1.7.0 - transitivePeerDependencies: - - supports-color - dev: true - /@testing-library/dom/8.13.0: resolution: {integrity: sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==} engines: {node: '>=12'} @@ -8092,13 +8081,6 @@ packages: rxjs: 6.6.2 dev: true - /anymatch/1.3.2: - resolution: {integrity: sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==} - dependencies: - micromatch: 2.3.11 - normalize-path: 2.1.1 - dev: true - /anymatch/3.1.1: resolution: {integrity: sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==} engines: {node: '>= 8'} @@ -8158,13 +8140,6 @@ packages: engines: {node: '>=6.0'} dev: true - /arr-diff/2.0.0: - resolution: {integrity: sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - dev: true - /arr-diff/4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} engines: {node: '>=0.10.0'} @@ -8258,11 +8233,6 @@ packages: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} - /array-unique/0.2.1: - resolution: {integrity: sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==} - engines: {node: '>=0.10.0'} - dev: true - /array-unique/0.3.2: resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} engines: {node: '>=0.10.0'} @@ -8357,10 +8327,6 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - /async-each/1.0.3: - resolution: {integrity: sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==} - dev: true - /async-retry/1.2.1: resolution: {integrity: sha512-FadV8UDcyZDjzb6eV7MCJj0bfrNjwKw7/X0QHPFCbYP6T20FXgZCYXpJKlQC8RxEQP1E6Xs8pNHdh3bcrZAuAw==} dependencies: @@ -8781,12 +8747,6 @@ packages: resolution: {integrity: sha512-1vObw81a8ylZO5ePrtMay0n018TcftpTA5HFKDaSuiUDBo8biRBtjIobw60OpwuvrGk+FsxKamqN4cnmj/eXdg==} dev: true - /binary-extensions/1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - /binary-extensions/2.1.0: resolution: {integrity: sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==} engines: {node: '>=8'} @@ -8893,15 +8853,6 @@ packages: balanced-match: 1.0.0 dev: true - /braces/1.8.5: - resolution: {integrity: sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==} - engines: {node: '>=0.10.0'} - dependencies: - expand-range: 1.8.2 - preserve: 0.2.0 - repeat-element: 1.1.3 - dev: true - /braces/2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} engines: {node: '>=0.10.0'} @@ -9490,24 +9441,6 @@ packages: promise-polyfill: 6.1.0 dev: true - /chokidar/1.7.0: - resolution: {integrity: sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==} - deprecated: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies. - dependencies: - anymatch: 1.3.2 - async-each: 1.0.3 - glob-parent: 2.0.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 2.0.1 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - optionalDependencies: - fsevents: 1.2.11 - transitivePeerDependencies: - - supports-color - dev: true - /chokidar/3.4.3: resolution: {integrity: sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==} engines: {node: '>= 8.10.0'} @@ -12133,13 +12066,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expand-brackets/0.1.5: - resolution: {integrity: sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==} - engines: {node: '>=0.10.0'} - dependencies: - is-posix-bracket: 0.1.1 - dev: true - /expand-brackets/2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -12154,13 +12080,6 @@ packages: transitivePeerDependencies: - supports-color - /expand-range/1.8.2: - resolution: {integrity: sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=} - engines: {node: '>=0.10.0'} - dependencies: - fill-range: 2.2.4 - dev: true - /expand-tilde/1.2.2: resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==} engines: {node: '>=0.10.0'} @@ -12291,13 +12210,6 @@ packages: iconv-lite: 0.4.24 tmp: 0.0.33 - /extglob/0.3.2: - resolution: {integrity: sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 1.0.0 - dev: true - /extglob/2.0.4: resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} engines: {node: '>=0.10.0'} @@ -12485,27 +12397,11 @@ packages: minimatch: 5.1.0 dev: true - /filename-regex/2.0.1: - resolution: {integrity: sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=} - engines: {node: '>=0.10.0'} - dev: true - /filesize/6.1.0: resolution: {integrity: sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==} engines: {node: '>= 0.4.0'} dev: true - /fill-range/2.2.4: - resolution: {integrity: sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 2.1.0 - isobject: 2.1.0 - randomatic: 3.1.1 - repeat-element: 1.1.3 - repeat-string: 1.6.1 - dev: true - /fill-range/4.0.0: resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} engines: {node: '>=0.10.0'} @@ -12708,13 +12604,6 @@ packages: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} - /for-own/0.1.5: - resolution: {integrity: sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - dev: true - /for-own/1.0.0: resolution: {integrity: sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=} engines: {node: '>=0.10.0'} @@ -12862,20 +12751,6 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents/1.2.11: - resolution: {integrity: sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==} - engines: {node: '>=4.0'} - os: [darwin] - deprecated: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. - requiresBuild: true - dependencies: - bindings: 1.5.0 - nan: 2.15.0 - dev: true - optional: true - bundledDependencies: - - node-pre-gyp - /fsevents/2.1.3: resolution: {integrity: sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -13157,20 +13032,6 @@ packages: gh-got: 6.0.0 dev: true - /glob-base/0.3.0: - resolution: {integrity: sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=} - engines: {node: '>=0.10.0'} - dependencies: - glob-parent: 2.0.0 - is-glob: 2.0.1 - dev: true - - /glob-parent/2.0.0: - resolution: {integrity: sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==} - dependencies: - is-glob: 2.0.1 - dev: true - /glob-parent/3.1.0: resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} requiresBuild: true @@ -14320,13 +14181,6 @@ packages: /is-bigint/1.0.1: resolution: {integrity: sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==} - /is-binary-path/1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} - dependencies: - binary-extensions: 1.13.1 - dev: true - /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -14443,22 +14297,10 @@ packages: engines: {node: '>=8'} hasBin: true - /is-dotfile/1.0.3: - resolution: {integrity: sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=} - engines: {node: '>=0.10.0'} - dev: true - /is-empty/1.2.0: resolution: {integrity: sha1-3pu1snhzigWgsJpX4ftNSjQan2s=} dev: true - /is-equal-shallow/0.1.3: - resolution: {integrity: sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=} - engines: {node: '>=0.10.0'} - dependencies: - is-primitive: 2.0.0 - dev: true - /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -14470,11 +14312,6 @@ packages: dependencies: is-plain-object: 2.0.4 - /is-extglob/1.0.0: - resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} - engines: {node: '>=0.10.0'} - dev: true - /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -14521,13 +14358,6 @@ packages: multimatch: 2.1.0 dev: false - /is-glob/2.0.1: - resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 1.0.0 - dev: true - /is-glob/3.1.0: resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} engines: {node: '>=0.10.0'} @@ -14593,13 +14423,6 @@ packages: resolution: {integrity: sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==} engines: {node: '>= 0.4'} - /is-number/2.1.0: - resolution: {integrity: sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - /is-number/3.0.0: resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} engines: {node: '>=0.10.0'} @@ -14607,11 +14430,6 @@ packages: dependencies: kind-of: 3.2.2 - /is-number/4.0.0: - resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} - engines: {node: '>=0.10.0'} - dev: true - /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -14666,20 +14484,10 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-posix-bracket/0.1.1: - resolution: {integrity: sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=} - engines: {node: '>=0.10.0'} - dev: true - /is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true - /is-primitive/2.0.0: - resolution: {integrity: sha1-IHurkWOEmcB7Kt8kCkGochADRXU=} - engines: {node: '>=0.10.0'} - dev: true - /is-promise/2.1.0: resolution: {integrity: sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=} dev: true @@ -16737,10 +16545,6 @@ packages: resolution: {integrity: sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==} dev: true - /math-random/1.0.4: - resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} - dev: true - /maxmin/2.1.0: resolution: {integrity: sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw==} engines: {node: '>=0.12'} @@ -17064,25 +16868,6 @@ packages: - supports-color dev: true - /micromatch/2.3.11: - resolution: {integrity: sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 2.0.0 - array-unique: 0.2.1 - braces: 1.8.5 - expand-brackets: 0.1.5 - extglob: 0.3.2 - filename-regex: 2.0.1 - is-extglob: 1.0.0 - is-glob: 2.0.1 - kind-of: 3.2.2 - normalize-path: 2.1.1 - object.omit: 2.0.1 - parse-glob: 3.0.4 - regex-cache: 0.4.4 - dev: true - /micromatch/3.1.10: resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} engines: {node: '>=0.10.0'} @@ -17677,13 +17462,6 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-path/2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - dependencies: - remove-trailing-separator: 1.1.0 - dev: true - /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -17970,14 +17748,6 @@ packages: make-iterator: 1.0.1 dev: true - /object.omit/2.0.1: - resolution: {integrity: sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=} - engines: {node: '>=0.10.0'} - dependencies: - for-own: 0.1.5 - is-extendable: 0.1.1 - dev: true - /object.pick/1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} @@ -18429,16 +18199,6 @@ packages: hasBin: true dev: true - /parse-glob/3.0.4: - resolution: {integrity: sha1-ssN2z7EfNVE7rdFz7wu246OIORw=} - engines: {node: '>=0.10.0'} - dependencies: - glob-base: 0.3.0 - is-dotfile: 1.0.3 - is-extglob: 1.0.0 - is-glob: 2.0.1 - dev: true - /parse-json/2.2.0: resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} engines: {node: '>=0.10.0'} @@ -19688,11 +19448,6 @@ packages: engines: {node: '>=4'} dev: true - /preserve/0.2.0: - resolution: {integrity: sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=} - engines: {node: '>=0.10.0'} - dev: true - /prettier/2.5.1: resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} engines: {node: '>=10.13.0'} @@ -20055,15 +19810,6 @@ packages: engines: {node: '>= 0.10.0'} dev: true - /randomatic/3.1.1: - resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} - engines: {node: '>= 0.10.0'} - dependencies: - is-number: 4.0.0 - kind-of: 6.0.3 - math-random: 1.0.4 - dev: true - /randombytes/2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -20413,17 +20159,6 @@ packages: once: 1.4.0 dev: true - /readdirp/2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} - dependencies: - graceful-fs: 4.2.10 - micromatch: 3.1.10 - readable-stream: 2.3.7 - transitivePeerDependencies: - - supports-color - dev: true - /readdirp/3.5.0: resolution: {integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==} engines: {node: '>=8.10.0'} @@ -20518,13 +20253,6 @@ packages: dependencies: '@babel/runtime': 7.16.7 - /regex-cache/0.4.4: - resolution: {integrity: sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-equal-shallow: 0.1.3 - dev: true - /regex-not/1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} engines: {node: '>=0.10.0'} @@ -20793,11 +20521,6 @@ packages: parse-git-config: 1.1.1 dev: true - /remove-trailing-separator/1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - requiresBuild: true - dev: true - /repeat-element/1.1.3: resolution: {integrity: sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==} engines: {node: '>=0.10.0'}