From 1b4b2c9205510fd54b5645b87782195e2016dcbf Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Sun, 13 Mar 2022 16:55:02 +0800 Subject: [PATCH] Simplify vendors validate (#12421) --- ...ndor-versions.yml => validate-vendors.yml} | 6 +- package.json | 4 +- scripts/vendors/README.md | 24 ++---- scripts/vendors/bundle-vendors.mjs | 67 ++++++--------- scripts/vendors/utils.mjs | 13 +-- scripts/vendors/validate-vendor-versions.mjs | 42 ---------- scripts/vendors/vendor-meta.json | 6 -- yarn.lock | 83 +------------------ 8 files changed, 41 insertions(+), 204 deletions(-) rename .github/workflows/{validate-vendor-versions.yml => validate-vendors.yml} (73%) delete mode 100644 scripts/vendors/validate-vendor-versions.mjs diff --git a/.github/workflows/validate-vendor-versions.yml b/.github/workflows/validate-vendors.yml similarity index 73% rename from .github/workflows/validate-vendor-versions.yml rename to .github/workflows/validate-vendors.yml index 50ed758d4..ec990e8a0 100644 --- a/.github/workflows/validate-vendor-versions.yml +++ b/.github/workflows/validate-vendors.yml @@ -1,4 +1,4 @@ -name: Validate_Vendor_Versions +name: Validate_Vendors on: push: @@ -28,5 +28,5 @@ jobs: - name: Install Dependencies run: yarn install --frozen-lockfile - - name: Validate Vendor Versions - run: yarn run vendors:validate + - name: Validate Vendors + run: yarn run vendors:bundle && echo "Listing changed files:" && git diff --name-only --exit-code && echo "No files changed." diff --git a/package.json b/package.json index 383d4f4fb..392bd90c4 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,6 @@ "path-browserify": "1.0.1", "prettier": "2.5.1", "pretty-bytes": "5.6.0", - "read-pkg-up": "9.1.0", "rimraf": "3.0.2", "rollup-plugin-license": "2.6.1", "snapshot-diff": "0.9.0", @@ -161,8 +160,7 @@ "fix:prettier": "yarn lint:prettier --write", "build": "node ./scripts/build/build.mjs", "build:website": "node ./scripts/build-website.mjs", - "vendors:bundle": "node ./scripts/vendors/bundle-vendors.mjs", - "vendors:validate": "node ./scripts/vendors/validate-vendor-versions.mjs" + "vendors:bundle": "node ./scripts/vendors/bundle-vendors.mjs" }, "browserslist": [ ">0.5%", diff --git a/scripts/vendors/README.md b/scripts/vendors/README.md index 154e33ec2..9a513786c 100644 --- a/scripts/vendors/README.md +++ b/scripts/vendors/README.md @@ -4,13 +4,13 @@ Scripts for bundling Pure ESM Packages to CommonJS so that Prettier can use them ## Context -https://github.com/prettier/prettier/issues/12209#issuecomment-1028212785 + Currently, Prettier is developed using CommonJS Modules. This is for historical reasons, and we are considering [migrating to ECMAScript Modules](https://github.com/prettier/prettier/issues/10157) in the future. However, migrating to ECMAScript Modules is not an easy task. -While we are working on it, several important packages are being migrated to Pure ESM. Please see https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c from [@sindresorhus](https://github.com/sindresorhus) about Pure ESM Packages. +While we are working on it, several important packages are being migrated to Pure ESM. Please see from [@sindresorhus](https://github.com/sindresorhus) about Pure ESM Packages. It would be a problem if Prettier could not use the new Pure ESM Package until we have completed that work. @@ -22,7 +22,7 @@ So we will put the files bundled with Pure ESM Packages as CommonJS Modules unde ### `/scripts/vendors/bundle-vendors.mjs` -``` +```bash yarn vendors:bundle ``` @@ -32,24 +32,10 @@ This script do the following 4 things: Bundles listed packages in `vendors.mjs` into `/vendors/*.js` as CommonJS. -**2. Lock vendor versions** - -Locks versions of packages to `vendor-meta.json`. It is used to validate by `validate-vendor-versions.mjs`. - -**3. Save vendors license info** +**2. Save vendors license info** Saves vendors licenses info to `vendor-meta.json`. -**4. Generate `/vendors/*.d.ts`** +**3. Generate `/vendors/*.d.ts`** Generates a definition files that satisfies `lint:typecheck` for each vendors. - -### `/scripts/vendors/validate-vendor-versions.mjs` - -``` -yarn vendors:validate -``` - -This script compares the version of packages locked in `vendor-versions.json` with the version of packages actually installed, and fails if they are different. - -This is mainly run on CI to keep consistency between bundled and installed packages. diff --git a/scripts/vendors/bundle-vendors.mjs b/scripts/vendors/bundle-vendors.mjs index 367e2e8ea..4547c1eae 100644 --- a/scripts/vendors/bundle-vendors.mjs +++ b/scripts/vendors/bundle-vendors.mjs @@ -1,49 +1,30 @@ #!/usr/bin/env node import fs from "node:fs/promises"; -import path from "node:path"; +import { fileURLToPath } from "node:url"; import createEsmUtils from "esm-utils"; import esbuild from "esbuild"; -import { readPackageUp } from "read-pkg-up"; +import { outdent } from "outdent"; import { PROJECT_ROOT } from "../utils/index.mjs"; import esbuildPluginLicense from "../build/esbuild-plugins/license.mjs"; import vendors from "./vendors.mjs"; -import { saveVendorVersions, saveVendorLicenses } from "./utils.mjs"; +import { vendorMetaFile, saveVendorLicenses } from "./utils.mjs"; import esbuildPluginTsNocheck from "./esbuild-plugin-ts-nocheck.mjs"; -const { __dirname, require } = createEsmUtils(import.meta); -const rootDir = path.join(__dirname, "..", ".."); +const { require } = createEsmUtils(import.meta); +const rootDir = new URL("../../", import.meta.url); // prettier/vendors -const vendorsDir = path.join(rootDir, "vendors"); +const vendorsDir = new URL("./vendors/", rootDir); // prettier/vendors/*.js const getVendorFilePath = (vendorName) => - path.join(vendorsDir, `${vendorName}.js`); + fileURLToPath(new URL(`./${vendorName}.js`, vendorsDir)); -async function lockVersions(vendors) { - const vendorVersions = {}; - for (const vendor of vendors) { - const { packageJson: vendorPackage } = await readPackageUp({ - cwd: path.dirname(require.resolve(vendor)), - }); - const vendorVersion = vendorPackage.version; - vendorVersions[vendor] = vendorVersion; - } - await saveVendorVersions(vendorVersions); -} - -async function fileExists(filePath) { - try { - return (await fs.stat(filePath)).isFile(); - } catch { - return false; - } -} - -async function cleanExistsBundledJS() { - for (const file of await fs.readdir(vendorsDir)) { - const filePath = path.join(vendorsDir, file); - if (path.extname(file) === ".js" && (await fileExists(filePath))) { - await fs.rm(filePath); +async function clean() { + for (const directoryOrFile of [vendorsDir, vendorMetaFile]) { + try { + await fs.rm(directoryOrFile, { recursive: true, force: true }); + } catch { + // No op } } } @@ -53,7 +34,7 @@ async function generateDts(vendor) { Boolean(module.default) ); await fs.writeFile( - path.join(vendorsDir, `${vendor}.d.ts`), + new URL(`${vendor}.d.ts`, vendorsDir), [ "// This file is generated automatically.", hasDefault ? `export {default} from "${vendor}";` : null, @@ -68,9 +49,6 @@ async function generateDts(vendor) { async function bundle(vendor, options) { const outfile = getVendorFilePath(vendor); - if (await fileExists(outfile)) { - await fs.rm(outfile); - } /** @type {import("esbuild").CommonOptions} */ const esbuildOption = { @@ -96,7 +74,7 @@ async function bundle(vendor, options) { } async function main() { - await cleanExistsBundledJS(); + await clean(); const licenses = []; for (const vendor of vendors) { @@ -108,11 +86,20 @@ async function main() { console.log(`Bundled: ${vendor}`); } - await lockVersions(vendors); - console.log("Vendor versions saved"); - await saveVendorLicenses(licenses); console.log("Vendor licenses saved"); + + await fs.writeFile( + new URL("./README.md", vendorsDir), + outdent` + # \`./vendors\` + + **JavaScript Files that included in this directory are auto generated by [\`/scripts/vendor/bundle-vendors.mjs\`](../scripts/vendors/bundle-vendors.mjs).** + + See [\`/scripts/vendors/README.md\`](../scripts/vendors/README.md) for the context. + ` + "\n" + ); + console.log("`README.md` file saved"); } main(); diff --git a/scripts/vendors/utils.mjs b/scripts/vendors/utils.mjs index b579fd05b..f42da0021 100644 --- a/scripts/vendors/utils.mjs +++ b/scripts/vendors/utils.mjs @@ -1,21 +1,10 @@ import fs from "node:fs"; import { readJson, writeJson } from "../utils/index.mjs"; -const vendorMetaFile = new URL("./vendor-meta.json", import.meta.url); +export const vendorMetaFile = new URL("./vendor-meta.json", import.meta.url); const getMeta = () => fs.existsSync(vendorMetaFile) ? readJson(vendorMetaFile) : {}; -export async function getVendorVersions() { - const meta = await getMeta(); - return meta.versions; -} - -export async function saveVendorVersions(versions) { - const meta = await getMeta(); - meta.versions = versions; - await writeJson(vendorMetaFile, meta); -} - export async function saveVendorLicenses(licenses) { const meta = await getMeta(); meta.licenses = licenses; diff --git a/scripts/vendors/validate-vendor-versions.mjs b/scripts/vendors/validate-vendor-versions.mjs deleted file mode 100644 index d5a408af7..000000000 --- a/scripts/vendors/validate-vendor-versions.mjs +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env node - -import createEsmUtils from "esm-utils"; -import { readPackageUp } from "read-pkg-up"; -import { getVendorVersions } from "./utils.mjs"; -import vendors from "./vendors.mjs"; - -const { require } = createEsmUtils(import.meta); - -async function main() { - const errors = []; - const vendorVersions = await getVendorVersions(); - for (const vendor of vendors) { - const { packageJson: vendorPackage } = await readPackageUp({ - cwd: require.resolve(vendor), - }); - const vendorPackageVersion = vendorPackage.version; - const lockedVersion = vendorVersions[vendor]; - if (vendorPackageVersion !== lockedVersion) { - errors.push({ - oldVersion: lockedVersion, - newVersion: vendorPackageVersion, - packageName: vendor, - }); - } - } - if (errors.length > 0) { - for (const { packageName, oldVersion, newVersion } of errors) { - console.error( - `The version of \`${packageName}\` is "${newVersion}", expected locked "${oldVersion}"` - ); - } - console.error( - "Did you forget running `./scripts/vendors/bundle-vendors.mjs`?" - ); - process.exitCode = 1; - } else { - console.log("Done"); - } -} - -main(); diff --git a/scripts/vendors/vendor-meta.json b/scripts/vendors/vendor-meta.json index 90230d22a..d9a50fcd6 100644 --- a/scripts/vendors/vendor-meta.json +++ b/scripts/vendors/vendor-meta.json @@ -1,10 +1,4 @@ { - "versions": { - "string-width": "5.0.1", - "mem": "9.0.2", - "execa": "6.1.0", - "tempy": "2.0.0" - }, "licenses": [ { "name": "ansi-regex", diff --git a/yarn.lock b/yarn.lock index 8c4f9dd6d..3a601c424 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1656,7 +1656,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.15.tgz#97779282c09c09577120a2162e71d8380003590a" integrity sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA== -"@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.1": +"@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== @@ -3343,14 +3343,6 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -3589,13 +3581,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - html-element-attributes@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-2.3.0.tgz#a192ac90a457be9f1e2cc9ab69000ee89be74aa6" @@ -3775,7 +3760,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1: +is-core-module@^2.2.0, is-core-module@^2.8.0, is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -4739,13 +4724,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -locate-path@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.1.0.tgz#241d62af60739f6097c055efe10329c88b798425" - integrity sha512-HNx5uOnYeK4SxEoid5qnhRfprlJeGMzFRKPLCf/15N3/B4AiofNwC/yq7VBKdVk9dx7m+PiYCJOGg55JYTAqoQ== - dependencies: - p-locate "^6.0.0" - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -4984,16 +4962,6 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -5177,13 +5145,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -5205,13 +5166,6 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - p-map@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -5302,11 +5256,6 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -5519,15 +5468,6 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -read-pkg-up@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-9.1.0.tgz#38ca48e0bc6c6b260464b14aad9bcd4e5b1fbdc3" - integrity sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg== - dependencies: - find-up "^6.3.0" - read-pkg "^7.1.0" - type-fest "^2.5.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -5556,16 +5496,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read-pkg@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-7.1.0.tgz#438b4caed1ad656ba359b3e00fd094f3c427a43e" - integrity sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg== - dependencies: - "@types/normalize-package-data" "^2.4.1" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^2.0.0" - refa@^0.9.0: version "0.9.1" resolved "https://registry.yarnpkg.com/refa/-/refa-0.9.1.tgz#12731fce378d235731b1f73182b20083c8a75ca8" @@ -5855,7 +5785,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.5, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@7.3.5, semver@^7.3.2, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -6393,7 +6323,7 @@ type-fest@^1.0.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -type-fest@^2.0.0, type-fest@^2.5.0: +type-fest@^2.0.0: version "2.11.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.11.1.tgz#04ddf5c0dbbd403fb8270d98ad1b4857e7ff7b24" integrity sha512-fPcV5KLAqFfmhHobtAUwEpbpfYhVF7wSLVgbG/7mIGe/Pete7ky/bPAPRkzbWdrj0/EkswFAAR2feJCgigkUKg== @@ -6812,8 +6742,3 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==