diff --git a/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/options.js b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/compiler-flags/options.js similarity index 75% rename from packages/babel-preset-gatsby-package/lib/__tests__/fixtures/options.js rename to packages/babel-preset-gatsby-package/lib/__tests__/fixtures/compiler-flags/options.js index b6c2571923d7c..6b3afd3c2c510 100644 --- a/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/options.js +++ b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/compiler-flags/options.js @@ -3,7 +3,7 @@ const path = require("path") module.exports = { sourceType: "module", plugins: [ - [path.resolve(__dirname, "../../babel-transform-compiler-flags.js"), + [path.resolve(__dirname, "../../../babel-transform-compiler-flags.js"), { availableFlags: ['MAJOR'], flags: { diff --git a/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/default/input.js b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/default/input.js new file mode 100644 index 0000000000000..a2454a8faa20a --- /dev/null +++ b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/default/input.js @@ -0,0 +1,3 @@ +export async function someFunction() { + return await import(`path`); +} diff --git a/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/default/output.js b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/default/output.js new file mode 100644 index 0000000000000..2bc2a2eee6775 --- /dev/null +++ b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/default/output.js @@ -0,0 +1,12 @@ +"use strict"; + +exports.__esModule = true; +exports.someFunction = someFunction; + +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; } + +async function someFunction() { + return await Promise.resolve().then(() => _interopRequireWildcard(require(`path`))); +} diff --git a/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/options.js b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/options.js new file mode 100644 index 0000000000000..fb5320fef7f77 --- /dev/null +++ b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/options.js @@ -0,0 +1,17 @@ +const path = require("path") + +// "babel-plugin-dynamic-import-node" is used in tests, so we force not a test environment +process.env.BABEL_ENV = `not-a-test` + +module.exports = { + sourceType: "module", + presets: [ + [path.resolve(__dirname, "../../../index.js"), + { + keepDynamicImports: [`./packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/with-override/input.js`] + } + ], + ], + babelrc: false, + configFile: false, +} diff --git a/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/with-override/input.js b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/with-override/input.js new file mode 100644 index 0000000000000..81741b3d4d050 --- /dev/null +++ b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/with-override/input.js @@ -0,0 +1,3 @@ +export async function someFunction2() { + return await import(`path`); +} diff --git a/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/with-override/output.js b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/with-override/output.js new file mode 100644 index 0000000000000..13405e4001752 --- /dev/null +++ b/packages/babel-preset-gatsby-package/lib/__tests__/fixtures/keep-dynamic-import/with-override/output.js @@ -0,0 +1,8 @@ +"use strict"; + +exports.__esModule = true; +exports.someFunction2 = someFunction2; + +async function someFunction2() { + return await import(`path`); +} diff --git a/packages/babel-preset-gatsby-package/lib/__tests__/babel-transform-compiler-flags.js b/packages/babel-preset-gatsby-package/lib/__tests__/plugins.js similarity index 78% rename from packages/babel-preset-gatsby-package/lib/__tests__/babel-transform-compiler-flags.js rename to packages/babel-preset-gatsby-package/lib/__tests__/plugins.js index 260bcc32a83ef..b96beb14d5c2b 100644 --- a/packages/babel-preset-gatsby-package/lib/__tests__/babel-transform-compiler-flags.js +++ b/packages/babel-preset-gatsby-package/lib/__tests__/plugins.js @@ -1,3 +1,3 @@ const runner = require(`@babel/helper-plugin-test-runner`).default -runner(__dirname) +runner(__dirname ) diff --git a/packages/babel-preset-gatsby-package/lib/babel-transform-mark-to-keep-dynamic-import.js b/packages/babel-preset-gatsby-package/lib/babel-transform-mark-to-keep-dynamic-import.js new file mode 100644 index 0000000000000..a4c60d0a08f2e --- /dev/null +++ b/packages/babel-preset-gatsby-package/lib/babel-transform-mark-to-keep-dynamic-import.js @@ -0,0 +1,54 @@ +const path = require(`path`) + +/** + * @typedef {import('@babel/core').NodePath} NodePath + * @typedef {import('@babel/core').PluginObj} PluginObj + * @typedef {import('@babel/core').PluginPass} PluginPass + * @typedef {import('@babel/core').types} BabelTypes + * @typedef {import('@babel/core').types.Identifier} Identifier + * @typedef {import('@babel/core').types.MemberExpression} MemberExpression + */ + +/** + * @typedef {Object} IPluginOptions + * @property {Array} keepDynamicImports + */ + +/** + * + * @param {{ types: BabelTypes }} _unused + * @param {Partial} opts + * @returns {PluginObj} + */ +module.exports = function keepDynamicImports( + _unused, + opts +) { + if (!opts.keepDynamicImports) { + throw new Error(`keepDynamicImports option needs to be set`) + } else if (!Array.isArray(opts.keepDynamicImports)) { + throw new Error(`keepDynamicImports option needs to be an array`) + } + + const absolutePaths = opts.keepDynamicImports.map(p => path.resolve(p)) + + return { + name: `babel-transform-mark-to-keep-dynamic-import`, + visitor: { + Program() { + const filename = this.file?.opts?.filename + if (!filename) { + return + } + + if (absolutePaths.includes(filename)) { + // this is big hack - it relies on some babel plugins internal to basically + // do early return ( https://github.com/babel/babel/blob/3526b79c87863052f1c61ec0c49c0fc287ba32e6/packages/babel-plugin-transform-modules-commonjs/src/index.ts#L174 ) + // on top of that `BabelFile` doesn't expose delete for the metadata, + // so we reach into internal `_map` to delete it + this.file._map.delete("@babel/plugin-proposal-dynamic-import") + } + } + }, + } +} diff --git a/packages/babel-preset-gatsby-package/lib/index.js b/packages/babel-preset-gatsby-package/lib/index.js index 90a014e5b8a40..3bc01d2d5a52c 100644 --- a/packages/babel-preset-gatsby-package/lib/index.js +++ b/packages/babel-preset-gatsby-package/lib/index.js @@ -7,6 +7,7 @@ function preset(context, options = {}) { nodeVersion = `18.0.0`, esm = false, availableCompilerFlags = [`GATSBY_MAJOR`], + keepDynamicImports = null } = options const { NODE_ENV, @@ -86,6 +87,12 @@ function preset(context, options = {}) { }, ], r(`babel-plugin-lodash`), + Array.isArray(keepDynamicImports) && keepDynamicImports.length > 0 && [ + r(`./babel-transform-mark-to-keep-dynamic-import`), + { + keepDynamicImports, + }, + ] ].filter(Boolean), overrides: [ { diff --git a/packages/gatsby/babel.config.js b/packages/gatsby/babel.config.js index 6ae46bea558d3..563246ebc554e 100644 --- a/packages/gatsby/babel.config.js +++ b/packages/gatsby/babel.config.js @@ -3,5 +3,7 @@ // Ref: https://github.com/babel/babel/pull/7358 module.exports = { sourceMaps: true, - presets: [["babel-preset-gatsby-package"]], + presets: [["babel-preset-gatsby-package", { + keepDynamicImports: [`./src/utils/feedback.ts`] + }]], } diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 1b1acbb138df7..4f7a3a5898a08 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -117,7 +117,7 @@ "is-relative-url": "^3.0.0", "joi": "^17.4.2", "json-loader": "^0.5.7", - "latest-version": "5.1.0", + "latest-version": "^7.0.0", "lmdb": "2.5.3", "lodash": "^4.17.21", "md5-file": "^5.0.0", diff --git a/packages/gatsby/src/utils/feedback.ts b/packages/gatsby/src/utils/feedback.ts index e569c951b8678..43b8aea3b7f70 100644 --- a/packages/gatsby/src/utils/feedback.ts +++ b/packages/gatsby/src/utils/feedback.ts @@ -1,7 +1,6 @@ import report from "gatsby-cli/lib/reporter" import { getConfigStore, getGatsbyVersion, isCI } from "gatsby-core-utils" import { trackCli } from "gatsby-telemetry" -import latestVersion from "latest-version" import getDayOfYear from "date-fns/getDayOfYear" const feedbackKey = `feedback.disabled` @@ -115,6 +114,7 @@ export async function userPassesFeedbackRequestHeuristic(): Promise { const versionPoints = getGatsbyVersion().split(`.`) let latestVersionPoints: Array = [] try { + const { default: latestVersion } = await import(`latest-version`) latestVersionPoints = (await latestVersion(`gatsby`)).split(`.`) } catch (e) { // do nothing. diff --git a/yarn.lock b/yarn.lock index df77df860edb6..428a2d959d00e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3567,6 +3567,21 @@ schema-utils "^3.0.0" source-map "^0.7.3" +"@pnpm/network.ca-file@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz#16f88d057c68cd5419c1ef3dfa281296ea80b047" + integrity sha512-gkINruT2KUhZLTaiHxwCOh1O4NVnFT0wLjWFBHmTz9vpKag/C/noIMJXBxFe4F0mYpUVX2puLwAieLYFg2NvoA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz#3475541fb71d7b6ce68acaaa3392eae9fedf3276" + integrity sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A== + dependencies: + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + "@prefresh/babel-plugin@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@prefresh/babel-plugin/-/babel-plugin-0.4.3.tgz#175ecf6f7a038d06a83d1806503283c98c7d9865" @@ -3721,6 +3736,11 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.4.0.tgz#e277e5bdbdf7cb1e20d320f02f5e2ed113cd3185" integrity sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ== +"@sindresorhus/is@^5.2.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" + integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== + "@sindresorhus/slugify@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-1.1.2.tgz#c2c0129298b8caace2d9156176fe244d0e83156c" @@ -3791,6 +3811,13 @@ dependencies: defer-to-connect "^2.0.0" +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + "@testing-library/dom@^7.28.1": version "7.31.2" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" @@ -4192,6 +4219,11 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== +"@types/http-cache-semantics@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + "@types/http-proxy@^1.17.7": version "1.17.7" resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" @@ -6572,6 +6604,24 @@ cacheable-lookup@^5.0.3: resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.1.tgz#cbc7480bf057fb7bd5bc7520f7e5a43d9c865626" + integrity sha512-3tLJyBjGuXw1s5gpKFSG3iS4kaKT4id04dZi98wzHQp/8cqZNweBnrF9J+rrlvrf4M53OdtDGNctNHFias8BEA== + dependencies: + "@types/http-cache-semantics" "^4.0.1" + get-stream "^6.0.1" + http-cache-semantics "^4.1.0" + keyv "^4.5.0" + mimic-response "^4.0.0" + normalize-url "^7.1.0" + responselike "^3.0.0" + cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -8744,7 +8794,7 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== -defer-to-connect@^2.0.0: +defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== @@ -10979,6 +11029,11 @@ fork-ts-checker-webpack-plugin@^6.5.0: semver "^7.3.2" tapable "^1.0.0" +form-data-encoder@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.3.tgz#682cd821a8423605093992ff895e6b2ed5a9d429" + integrity sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ== + form-data@2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" @@ -11321,7 +11376,7 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -11697,6 +11752,23 @@ got@^11.8.0, got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" +got@^12.1.0: + version "12.5.2" + resolved "https://registry.yarnpkg.com/got/-/got-12.5.2.tgz#2c1b390918961cf50e61cb02d2085ba203d0df45" + integrity sha512-guHGMSEcsA5m1oPRweXUJnug0vuvlkX9wx5hzOka+ZBrBUOJHU0Z1JcNu3QE5IPGnA5aXUsQHdWOD4eJg9/v3A== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.1" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + got@^6.7.1: version "6.7.1" resolved "http://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -11730,7 +11802,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@4.2.10, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -12483,6 +12555,11 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== +http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -12572,7 +12649,7 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -http2-wrapper@^2.1.11: +http2-wrapper@^2.1.10, http2-wrapper@^2.1.11: version "2.1.11" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== @@ -14679,6 +14756,13 @@ keyv@^4.0.0: dependencies: json-buffer "3.0.1" +keyv@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" + integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== + dependencies: + json-buffer "3.0.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -14746,18 +14830,25 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" -latest-version@5.1.0, latest-version@^5.1.0: +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: package-json "^6.3.0" -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== dependencies: - package-json "^4.0.0" + package-json "^8.1.0" lazy-cache@^2.0.2: version "2.0.2" @@ -15414,6 +15505,11 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + lru-cache@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.0.tgz#b5cbf01556c16966febe54ceec0fb4dc90df6c28" @@ -16693,6 +16789,11 @@ mimic-response@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -17401,6 +17502,11 @@ normalize-url@^6.0.1, normalize-url@^6.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +normalize-url@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-7.2.0.tgz#5317f78cff95f5fa1e76cc0b5e33245c43781e11" + integrity sha512-uhXOdZry0L6M2UIo9BTt7FdpBDiAGN/7oItedQwPKh8jh31ZlvC8U9Xl/EJ3aijDHaywXTW3QbZ6LuCocur1YA== + normalizeurl@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalizeurl/-/normalizeurl-1.0.0.tgz#4b1a458cd0c7d0856436f69c6b51047ab6855317" @@ -17893,6 +17999,11 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -18078,6 +18189,16 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" +package-json@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.0.tgz#2a22806f1ed7c786c8e6ff26cfe20003bf4c6850" + integrity sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + pako@^0.2.5: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -19888,7 +20009,7 @@ raw-loader@^4.0.2: loader-utils "^2.0.0" schema-utils "^3.0.0" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: +rc@1.2.8, rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" dependencies: @@ -20401,6 +20522,13 @@ registry-auth-token@^4.0.0: rc "^1.2.8" safe-buffer "^5.0.1" +registry-auth-token@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.1.tgz#5e6cd106e6c251135a046650c58476fc03e92833" + integrity sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA== + dependencies: + "@pnpm/npm-conf" "^1.0.4" + registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" @@ -20414,6 +20542,13 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" @@ -21577,6 +21712,13 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"