From 7702017cc1f1a9ed7ce79740e6fefa02590dc877 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger <649677+nhedger@users.noreply.github.com> Date: Sat, 13 Jan 2024 18:32:23 +0100 Subject: [PATCH] feat: improve version detection (#41) --- .github/workflows/test.yaml | 17 ++- README.md | 15 +-- dist/index.mjs | 56 ++++++++- src/index.ts | 10 +- src/version.ts | 98 +++++++++++++++- test/fixtures/bun/.gitignore | 175 ---------------------------- test/fixtures/bun/README.md | 15 --- test/fixtures/bun/bun.lockb | Bin 3500 -> 7002 bytes test/fixtures/bun/bunfig.toml | 2 - test/fixtures/bun/index.ts | 1 - test/fixtures/bun/package.json | 3 + test/fixtures/bun/tsconfig.json | 22 ---- test/fixtures/bun/yarn.lock | 49 -------- test/fixtures/fallback/.gitignore | 0 test/fixtures/npm/package-lock.json | 72 ++++++------ test/fixtures/npm/package.json | 2 +- test/fixtures/pnpm/package.json | 2 +- test/fixtures/pnpm/pnpm-lock.yaml | 64 +++++----- test/fixtures/yarn/package.json | 2 +- test/fixtures/yarn/yarn.lock | 162 ++++++++++++++++--------- 20 files changed, 350 insertions(+), 417 deletions(-) delete mode 100644 test/fixtures/bun/.gitignore delete mode 100644 test/fixtures/bun/README.md delete mode 100644 test/fixtures/bun/bunfig.toml delete mode 100644 test/fixtures/bun/index.ts delete mode 100644 test/fixtures/bun/tsconfig.json delete mode 100644 test/fixtures/bun/yarn.lock create mode 100644 test/fixtures/fallback/.gitignore diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 3f1cbd9..0a2853f 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -6,6 +6,13 @@ on: pull_request: workflow_dispatch: +env: + # This version is used when running the tests to ensure that the correct version is installed. + # It is the version that the test expect to find during automatic version detection. It is important + # that this version is NOT the latest version of the CLI because some tests may still pass if the + # automatic version detection fails and falls back to the latest version. + BIOME_EXPECTED_VERSION: 1.5.0 + jobs: test-specific: name: Specific version @@ -56,7 +63,7 @@ jobs: - name: Check equality shell: bash run: | - if [ "Version: 1.5.1" == "${{ steps.version.outputs.version }}" ]; then + if [ "Version: ${{ env.BIOME_EXPECTED_VERSION }}" == "${{ steps.version.outputs.version }}" ]; then exit 0 else echo "Versions do not match" @@ -84,7 +91,7 @@ jobs: - name: Check equality shell: bash run: | - if [ "Version: 1.5.1" == "${{ steps.version.outputs.version }}" ]; then + if [ "Version: ${{ env.BIOME_EXPECTED_VERSION }}" == "${{ steps.version.outputs.version }}" ]; then exit 0 else echo "Versions do not match" @@ -112,7 +119,7 @@ jobs: - name: Check equality shell: bash run: | - if [ "Version: 1.5.1" == "${{ steps.version.outputs.version }}" ]; then + if [ "Version: ${{ env.BIOME_EXPECTED_VERSION }}" == "${{ steps.version.outputs.version }}" ]; then exit 0 else echo "Versions do not match" @@ -140,7 +147,7 @@ jobs: - name: Check equality shell: bash run: | - if [ "Version: 1.5.1" == "${{ steps.version.outputs.version }}" ]; then + if [ "Version: ${{ env.BIOME_EXPECTED_VERSION }}" == "${{ steps.version.outputs.version }}" ]; then exit 0 else echo "Versions do not match" @@ -159,6 +166,8 @@ jobs: uses: actions/checkout@v4 - name: Setup Biome CLI uses: ./ + with: + working-dir: "test/fixtures/fallback" - name: Retrieve the version id: version shell: bash diff --git a/README.md b/README.md index 73054e7..e7a6f52 100644 --- a/README.md +++ b/README.md @@ -41,16 +41,8 @@ The following inputs are supported. To automatically determine the version of Biome to install based on the project's dependencies, you can simply omit the `version` input. -The action will search for the version of the `@biomejs/biome` dependency in the lockfiles of popular package managers such as npm, yarn, pnpm, and bun. It will then install that specific version of the Biome CLI. - -> [!IMPORTANT] -> [Bun](https://bun.sh) users must configure Bun to output a yarn lockfile because this action cannot yet read bun's binary lockfile format. -> An easy way to do this is to add the following to your `bunfig.toml` file: -> ```toml -> [install.lockfile] -> print = "yarn" - -If no version of the Biome CLI is found in the lockfiles, the action will install the latest version of the Biome CLI. +The action will look for the version of the `@biomejs/biome` dependency in the lockfiles of popular package managers such as npm, yarn, pnpm, and bun. If the version cannot be found in the lockfiles, the action will attempt to retrieve the version from the `package.json` file, and as a last +resort, it will install the latest version of the Biome CLI. ```yaml - name: Setup Biome CLI @@ -60,6 +52,9 @@ If no version of the Biome CLI is found in the lockfiles, the action will instal run: biome ci . ``` +> [!IMPORTANT] +> We recommend that you *pin* the version of `@biomejs/biome` in your project's dependencies. If you provide a semver range, and automatic version detection falls back to reading the `package.json file`, the highest version within the range will be used. See the [versioning documentation](https://biomejs.dev/internals/versioning/) for more information. + ### Latest version Setup the latest version of the Biome CLI. diff --git a/dist/index.mjs b/dist/index.mjs index 8dc5056..6df50e2 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -22447,7 +22447,7 @@ const getInput = (name) => { return (0,core.getInput)(name) === "" ? void 0 : (0,core.getInput)(name); }; -const getBiomeVersion = async () => { +const getBiomeVersion = async (octokit) => { let root = getInput("working-dir"); if (!root) { root = process.cwd(); @@ -22461,7 +22461,7 @@ const getBiomeVersion = async () => { "The specified working directory does not exist. Using the current working directory instead." ); } - return getInput("version") ?? await extractVersionFromNpmLockFile(root) ?? await extractVersionFromPnpmLockFile(root) ?? await extractVersionFromYarnLockFile(root) ?? "latest"; + return getInput("version") ?? await extractVersionFromNpmLockFile(root) ?? await extractVersionFromPnpmLockFile(root) ?? await extractVersionFromYarnLockFile(root) ?? await extractVersionFromPackageManifest(root, octokit) ?? "latest"; }; const extractVersionFromNpmLockFile = async (root) => { try { @@ -22496,15 +22496,59 @@ const extractVersionFromYarnLockFile = async (root) => { return void 0; } }; +const extractVersionFromPackageManifest = async (root, octokit) => { + try { + const manifest = JSON.parse( + await (0,promises_namespaceObject.readFile)((0,external_node_path_namespaceObject.join)(root, "package.json"), "utf8") + ); + const versionSpecifier = manifest.devDependencies?.["@biomejs/biome"] ?? manifest.dependencies?.["@biomejs/biome"]; + if (!versionSpecifier) { + return void 0; + } + if ((0,semver.valid)(versionSpecifier)) { + return versionSpecifier; + } + if ((0,semver.validRange)(versionSpecifier)) { + (0,core.warning)( + `Please consider pinning the version of @biomejs/biome in your package.json file. + See https://biomejs.dev/internals/versioning/ for more information.`, + { title: "Biome version range detected" } + ); + const versions = await fetchBiomeVersions(octokit); + if (!versions) { + return void 0; + } + return (0,semver.maxSatisfying)(versions, versionSpecifier)?.version ?? void 0; + } + } catch { + return void 0; + } +}; +const fetchBiomeVersions = async (octokit) => { + try { + const releases = await octokit.paginate( + "GET /repos/{owner}/{repo}/releases", + { + owner: "biomejs", + repo: "biome" + } + ); + const versions = releases.filter((release) => release.tag_name.startsWith("cli/")).map((release) => (0,semver.coerce)(release.tag_name)); + return (0,semver.rsort)(versions); + } catch { + return void 0; + } +}; (async () => { + const octokit = new rest_dist_node.Octokit({ + auth: (await (0,dist_node.createActionAuth)()()).token + }); await setup({ - version: await getBiomeVersion(), + version: await getBiomeVersion(octokit), platform: process.platform, architecture: process.arch, - octokit: new rest_dist_node.Octokit({ - auth: (await (0,dist_node.createActionAuth)()()).token - }) + octokit }); })(); diff --git a/src/index.ts b/src/index.ts index ed0f425..13a54de 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,12 +4,14 @@ import { setup } from "./setup"; import { getBiomeVersion } from "./version"; (async () => { + const octokit = new Octokit({ + auth: (await createActionAuth()()).token, + }); + await setup({ - version: await getBiomeVersion(), + version: await getBiomeVersion(octokit), platform: process.platform as "linux" | "darwin" | "win32", architecture: process.arch as "x64" | "arm64", - octokit: new Octokit({ - auth: (await createActionAuth()()).token, - }), + octokit: octokit, }); })(); diff --git a/src/version.ts b/src/version.ts index 56a0f8e..3adbe96 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1,7 +1,16 @@ import { existsSync } from "node:fs"; import { join } from "node:path"; import { info, warning } from "@actions/core"; +import { Octokit } from "@octokit/rest"; import { readFile } from "fs/promises"; +import { + SemVer, + coerce, + maxSatisfying, + rsort, + valid, + validRange, +} from "semver"; import { parse } from "yaml"; import { getInput } from "./helpers"; @@ -16,7 +25,7 @@ import { getInput } from "./helpers"; * * @param projectRoot The root directory of the project. Defaults to the current working directory. */ -export const getBiomeVersion = async (): Promise => { +export const getBiomeVersion = async (octokit: Octokit): Promise => { let root = getInput("working-dir"); // If the working directory is not specified, we fallback to the current @@ -42,6 +51,7 @@ export const getBiomeVersion = async (): Promise => { (await extractVersionFromNpmLockFile(root)) ?? (await extractVersionFromPnpmLockFile(root)) ?? (await extractVersionFromYarnLockFile(root)) ?? + (await extractVersionFromPackageManifest(root, octokit)) ?? "latest" ); }; @@ -102,3 +112,89 @@ const extractVersionFromYarnLockFile = async ( return undefined; } }; + +/** + * Extracts the Biome CLI version from the project's package.json file. + * + * This function attempts to extract the version of the `@biomejs/biome` + * package from the `package.json` file. If the package is not installed, + * or the version cannot be extracted, this function will return undefined. + * + * If the version is specified as a range, this function will return the + * highest available version that satisfies the range, if it exists, or + * undefined otherwise. + */ +const extractVersionFromPackageManifest = async ( + root: string, + octokit: Octokit, +): Promise => { + try { + const manifest = JSON.parse( + await readFile(join(root, "package.json"), "utf8"), + ); + + // The package should be installed as a devDependency, but we'll check + // both dependencies and devDependencies just in case. + const versionSpecifier = + manifest.devDependencies?.["@biomejs/biome"] ?? + manifest.dependencies?.["@biomejs/biome"]; + + // Biome is not a dependency of the project. + if (!versionSpecifier) { + return undefined; + } + + // If the version is specific, we return it directly. + if (valid(versionSpecifier)) { + return versionSpecifier; + } + + // If the version is a range, return the highest available version. + if (validRange(versionSpecifier)) { + warning( + `Please consider pinning the version of @biomejs/biome in your package.json file. + See https://biomejs.dev/internals/versioning/ for more information.`, + { title: "Biome version range detected" }, + ); + + const versions = await fetchBiomeVersions(octokit); + + if (!versions) { + return undefined; + } + + return maxSatisfying(versions, versionSpecifier)?.version ?? undefined; + } + } catch { + return undefined; + } +}; + +/** + * Fetches the available versions of the Biome CLI from GitHub. + * + * This function will return the versions of the Biome CLI that are available + * on GitHub. This includes all versions that have been released, including + * pre-releases and draft releases. + */ +const fetchBiomeVersions = async ( + octokit: Octokit, +): Promise => { + try { + const releases = await octokit.paginate( + "GET /repos/{owner}/{repo}/releases", + { + owner: "biomejs", + repo: "biome", + }, + ); + + const versions = releases + .filter((release) => release.tag_name.startsWith("cli/")) + .map((release) => coerce(release.tag_name)); + + return rsort(versions as SemVer[]); + } catch { + return undefined; + } +}; diff --git a/test/fixtures/bun/.gitignore b/test/fixtures/bun/.gitignore deleted file mode 100644 index 468f82a..0000000 --- a/test/fixtures/bun/.gitignore +++ /dev/null @@ -1,175 +0,0 @@ -# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore - -# Logs - -logs -_.log -npm-debug.log_ -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Caches - -.cache - -# Diagnostic reports (https://nodejs.org/api/report.html) - -report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json - -# Runtime data - -pids -_.pid -_.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover - -lib-cov - -# Coverage directory used by tools like istanbul - -coverage -*.lcov - -# nyc test coverage - -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) - -.grunt - -# Bower dependency directory (https://bower.io/) - -bower_components - -# node-waf configuration - -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) - -build/Release - -# Dependency directories - -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) - -web_modules/ - -# TypeScript cache - -*.tsbuildinfo - -# Optional npm cache directory - -.npm - -# Optional eslint cache - -.eslintcache - -# Optional stylelint cache - -.stylelintcache - -# Microbundle cache - -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history - -.node_repl_history - -# Output of 'npm pack' - -*.tgz - -# Yarn Integrity file - -.yarn-integrity - -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) - -.parcel-cache - -# Next.js build output - -.next -out - -# Nuxt.js build / generate output - -.nuxt -dist - -# Gatsby files - -# Comment in the public line in if your project uses Gatsby and not Next.js - -# https://nextjs.org/blog/next-9-1#public-directory-support - -# public - -# vuepress build output - -.vuepress/dist - -# vuepress v2.x temp and cache directory - -.temp - -# Docusaurus cache and generated files - -.docusaurus - -# Serverless directories - -.serverless/ - -# FuseBox cache - -.fusebox/ - -# DynamoDB Local files - -.dynamodb/ - -# TernJS port file - -.tern-port - -# Stores VSCode versions used for testing VSCode extensions - -.vscode-test - -# yarn v2 - -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -# IntelliJ based IDEs -.idea - -# Finder (MacOS) folder config -.DS_Store diff --git a/test/fixtures/bun/README.md b/test/fixtures/bun/README.md deleted file mode 100644 index 3a76ab1..0000000 --- a/test/fixtures/bun/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# bun - -To install dependencies: - -```bash -bun install -``` - -To run: - -```bash -bun run index.ts -``` - -This project was created using `bun init` in bun v1.0.21. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. diff --git a/test/fixtures/bun/bun.lockb b/test/fixtures/bun/bun.lockb index c246a31919332e5c4c53ca2e267ccf8cde4e2202..7378031b56b5db3c54ae11649dab5b71c5a769da 100755 GIT binary patch literal 7002 zcmeHMdt8j!8-FJ+5?v%>-MUEqFf%pPs4bOj`$LLoYN?Q#YHFG?mx}13*s>^uMW|dh zax3KW6X~*S7s_R&pODo`BDJz?Hv61+<}?$QS^cwrc>28a%zMuHe$R8B_c_md=E+c> zDG>>oi+BPiR}i7MNFq>!i_Q=83kl%yx%7ZAVW_W|9$~7cLJ-6_rl0MVl)|mcwyZ1> zI~~xbEl9X6shI!5Wlv%IrWUWxvM*o|$UvzgRNvBZvU?XifPl%UHXZoXAc#118bOQ% z-3Ir=LDzyF3c3XJ5YRcGhk;H5tqXdYtUo~3uLc^fxVyawq95pqBtZ-S%>a$=4MF!; zXoum{_`>)*`z!C*T+d49XD==udzh2ru;TFa`-W$>afkjlEx6d8zF#%Cc2rBlEAx;C zhP_k@4oQR+shpPl2;({PXDMz{(`; z#|HhvY=3NW+xEZR<=-#a6?~Pqo;h#r*b|eiar-W#xC!G|au>n!dnD*7AsG*s4XhLK z^+pX!3dWBE;M^YI69CWY0lo(CGkbtHhJ`ry051f*TMzKXfOqKuUJK&4C+lAT_@1o) z0N^cU_M^~2aiomk_-O<@jz5GOtPB{&VEh!=r;}lR6uTo7+CN5v@ri)906fY-hy&#X zWd!3-0p1$$C@&!_&SW3s!1z`L`%zLjzg7=u%ejcw{r=I!bz?(X)pf zO4*<(r6Z6=?OHO86FSyt*uTS$PR&kbgBKaCq|gW{uOc|N*yB}W_rHqz%DcR^P``!Kk$1tF_GH|S$Gbg}E1#Kc zU&Rm9zTL56UiD!;F9U~ShcB|%c?%dQ_P|b6^sE%)h^(jQFuc;M{X2cw<*t3l{{HkU zE$@EY;uKyPZL>aWHSVuFn{c_UF*@T->v8AG=9Ik$ z%3^!P?N)K}*LxK)V1=t=;fbI^V8Zq)?iMo#C{sV`(ETUw>d_6culuA2#KDN>X8?3F)_CD|D~BHFHM{^`Ql>7S2`W5 z^gGCxH;3-5nitfcGyo!GFXHWsNkNlsuJeLUB)%TCl_o6eu)k3>Iw-+pL-3fXF)!_O zZ#Mq;=*}pg^{?$;7&0Ce)YW7$)MAfR^sY5sI^{;RS;{YM+eH*FNyLFx%s*tVU)GH= zF^jSU-qR-UxUhc5Lbv9G=$(vJlh+N~-f?YD=MV1cBNwEeyylte7V7fn+|tSCc9rGL z2_J5x?wGeUM7@*ZB~%eFoQb-G{Bm`M+p=R@N9g`?c>9Jq2j?<=mX!Z|e0Z+zonGE# zWpw`aq#^nFoU@Z-Zg93=NiX{LVXn3Dq2($LkzrfvuNdij0~6jCiusnbeb!QD;$p-( zVJJCN#r(m%v#()#*vw!jR=_d6)+*0+!i7m4U~vPV=Msq6ZOzH_+^e6I zd(kUHRXbr-?4)zi`zt4BKwyf?JaU)4s>1q(;N3o+|l_{Y9|D? zgw9D)za8an8i-T>W2XZE~#~!z@Vre(sXq-pr(Bc^mY9 zuRrfRIG}0i9tB>Md$5puCFzF_&bZp_;QZL7igup#*;uy!TN{_CK-cH9i(>Y8)tuHj z@GSGS26z9C6L+qz*Bl_Z<+<3Kmgm2kwIrk3*b5WArBTjY#0v}Mf<}81o%ca~miKso zl(k{~o*^G?f}HnRK6~J^2e1cHWvAa$GOcDS68bTC0+HC4&u8G83d3E<<=W}7O!Y*( zrQEQ933?WKzIoN>7Jqe3%d00>%fRS8#h$gUn-cfxfac~2VPP-O~N zhU7gt(1U7MxOOD(DS;kT-NMx+c@M6C;rf%jrwuTuLWV0;@*Z46!!;~<53Y*gsuWtO zDT8H35V$Ue>ryJTalnrRSI%(dO5THOYq*A`f_%+lGb}#9_AVwyhN+P~<)N}tLHErg z;)X_Wg$$=CF;^(?<?wAPDp4%DzU5Bm#e)AMc~oio<|i@s&*DK_e-UGz$>30x`&+0Z{1zkhGE(%)vLDE){==)3#c9hU=h0b^o+{+S(h>q zG7A|d+lffn;noUE6P)=r$6f`_+RemRXR2pprf0%%0F-<{fP3;35tqr=M2w{70OJmn hfLbg}&oEZ-{WAcj9uN@Wovb8kHAzZovxuY{6976Gfc5|Y diff --git a/test/fixtures/bun/bunfig.toml b/test/fixtures/bun/bunfig.toml deleted file mode 100644 index 1fe9003..0000000 --- a/test/fixtures/bun/bunfig.toml +++ /dev/null @@ -1,2 +0,0 @@ -[install.lockfile] -print = "yarn" \ No newline at end of file diff --git a/test/fixtures/bun/index.ts b/test/fixtures/bun/index.ts deleted file mode 100644 index 2a5e4b8..0000000 --- a/test/fixtures/bun/index.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello via Bun!"); diff --git a/test/fixtures/bun/package.json b/test/fixtures/bun/package.json index 480af6b..f604c6c 100644 --- a/test/fixtures/bun/package.json +++ b/test/fixtures/bun/package.json @@ -7,5 +7,8 @@ }, "peerDependencies": { "typescript": "^5.0.0" + }, + "dependencies": { + "@biomejs/biome": "1.5.0" } } \ No newline at end of file diff --git a/test/fixtures/bun/tsconfig.json b/test/fixtures/bun/tsconfig.json deleted file mode 100644 index dcd8fc5..0000000 --- a/test/fixtures/bun/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "lib": ["ESNext"], - "target": "ESNext", - "module": "ESNext", - "moduleDetection": "force", - "jsx": "react-jsx", - "allowJs": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - - /* Linting */ - "skipLibCheck": true, - "strict": true, - "noFallthroughCasesInSwitch": true, - "forceConsistentCasingInFileNames": true - } -} diff --git a/test/fixtures/bun/yarn.lock b/test/fixtures/bun/yarn.lock deleted file mode 100644 index a966e8d..0000000 --- a/test/fixtures/bun/yarn.lock +++ /dev/null @@ -1,49 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 -# bun ./bun.lockb --hash: 45F33ACDF2CBD911-71f87f58c3e3fffe-6ABAF5F8A0E0C5ED-e59ce206252a1f34 - - -"@types/bun@latest": - version "1.0.1" - resolved "https://registry.npmjs.org/@types/bun/-/bun-1.0.1.tgz" - integrity sha512-PPDvyihNJVW1I3Wt0C+nM/4HI5xvT2pFMmazIPHQV45yYIh0JW4G5V4KO3UZoqL9MT5RsU7nJ8KQgmixw72BfQ== - dependencies: - bun-types "1.0.21" - -"@types/node@*": - version "20.10.8" - resolved "https://registry.npmjs.org/@types/node/-/node-20.10.8.tgz" - integrity sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA== - dependencies: - undici-types "~5.26.4" - -"@types/ws@*": - version "8.5.10" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== - dependencies: - "@types/node" "*" - -bun-types@1.0.21: - version "1.0.21" - resolved "https://registry.npmjs.org/bun-types/-/bun-types-1.0.21.tgz" - integrity sha512-Ugagjf+XZUXDvxDRa3EnhLeMzm2g8ZYFleBF55Ac3GZSzPqdMLAdK9kvZB6M1H4nAFvrEHdV2PHqkzIoNs+3wQ== - dependencies: - "@types/node" "*" - "@types/ws" "*" - undici-types "^5.26.4" - -typescript@^5.0.0: - version "5.3.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici-types@^5.26.4: - version "5.28.2" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.28.2.tgz" - integrity sha512-W71OLwDqzIO0d3k07qg1xc7d4cX8SsSwuCO4bQ4V7ITwduXXie/lcImofabP5VV+NvuvSe8ovKvHVJcizVc1JA== diff --git a/test/fixtures/fallback/.gitignore b/test/fixtures/fallback/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/test/fixtures/npm/package-lock.json b/test/fixtures/npm/package-lock.json index 6fa6e47..315c800 100644 --- a/test/fixtures/npm/package-lock.json +++ b/test/fixtures/npm/package-lock.json @@ -9,13 +9,13 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@biomejs/biome": "^1.5.1" + "@biomejs/biome": "1.5.0" } }, "node_modules/@biomejs/biome": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.5.1.tgz", - "integrity": "sha512-rdMA/N1Zc1nxUtbXMVr+50Sg/Pezz+9qGQa2uyRWFtrCoyr3dv0pVz+0ifGGue18ip50ZH8x2r5CV7zo8Q/0mA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.5.0.tgz", + "integrity": "sha512-ln+o5jbs109qpeDoA+5n+vlAPai3DhlK0tHtZXzQvu4tswFgxNiJCeIXmlW1DYHziTmtBImV3Y0uhbm2iVSE3Q==", "hasInstallScript": true, "bin": { "biome": "bin/biome" @@ -28,20 +28,20 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "1.5.1", - "@biomejs/cli-darwin-x64": "1.5.1", - "@biomejs/cli-linux-arm64": "1.5.1", - "@biomejs/cli-linux-arm64-musl": "1.5.1", - "@biomejs/cli-linux-x64": "1.5.1", - "@biomejs/cli-linux-x64-musl": "1.5.1", - "@biomejs/cli-win32-arm64": "1.5.1", - "@biomejs/cli-win32-x64": "1.5.1" + "@biomejs/cli-darwin-arm64": "1.5.0", + "@biomejs/cli-darwin-x64": "1.5.0", + "@biomejs/cli-linux-arm64": "1.5.0", + "@biomejs/cli-linux-arm64-musl": "1.5.0", + "@biomejs/cli-linux-x64": "1.5.0", + "@biomejs/cli-linux-x64-musl": "1.5.0", + "@biomejs/cli-win32-arm64": "1.5.0", + "@biomejs/cli-win32-x64": "1.5.0" } }, "node_modules/@biomejs/cli-darwin-arm64": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.5.1.tgz", - "integrity": "sha512-E9pLakmSVHP6UH2uqAghqEkr/IHAIDfDyCedqJVnyFc+uufNTHwB8id4XTiWy/eKIdgxHZsTSE+R+W0IqrTNVQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.5.0.tgz", + "integrity": "sha512-3+D7axf04dpadGMOaqb2q+zyQnhWW0o/Imt7TJBWsoE0N3/+28Wht8g3UEHHcUL5FPuGIfsE+NcYntBaaAsEIg==", "cpu": [ "arm64" ], @@ -54,9 +54,9 @@ } }, "node_modules/@biomejs/cli-darwin-x64": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.5.1.tgz", - "integrity": "sha512-8O1F+FcoCi02JlocyilB6R3y3kT9sRkBCRwYddaBIScQe2hCme/mA2rVzrhCCHhskrclJ51GEKjkEORj4/8c2A==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.5.0.tgz", + "integrity": "sha512-8k5aaLWE/B6ZAXLC+z/Vwh9ogyiSaiRIfvg+F9foxuneHl2R/D/2Iy7pvd3Yoi4Kf6/MBdowekPVezGP4/Kbcw==", "cpu": [ "x64" ], @@ -69,9 +69,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.5.1.tgz", - "integrity": "sha512-25gwY4FMzmi1Rl6N835raLq7nzTk+PyEQd88k9Em6dqtI4qpljqmZlMmVjOiwXKe3Ee80J/Vlh7BM36lsHUTEg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.5.0.tgz", + "integrity": "sha512-RiecxG71E1jnqiJZ3FaikVBDRkk2ohIxBo0O4o68g87y6Hug//G0S83sj6Wqyn8DgKMCRWQg+XYMgk5CwLVowA==", "cpu": [ "arm64" ], @@ -84,9 +84,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.5.1.tgz", - "integrity": "sha512-Lw9G3LUdhRMp8L8RMeVevnfQCa7luT6ubQ8GRjLju32glxWKefpDrzgfHixGyvTQPlhnYjQ+V8/QQ/I7WPzOoA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.5.0.tgz", + "integrity": "sha512-+1B3J8tWLTOvP3+00Cap+XhEXMvxwCHvVfuywUsB7Sqd66NWic3wKJuGbGcS3PuCWtGuIFsiQMNAGqiOXG4uBQ==", "cpu": [ "arm64" ], @@ -99,9 +99,9 @@ } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.5.1.tgz", - "integrity": "sha512-YDM0gZP4UbAuaBI3DVbUuj5X+Omm6uxzD1Qpc6hcduH1kzXzs9L0ee7cn/kJtNndoXR8MlmUS0O0/wWvZf2YaA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.5.0.tgz", + "integrity": "sha512-TlTsG+ptSmnDTUsAAYsXyGOXMcFiF8SiwhPdj4YsNkJRgx9M2curEVcTVm66FINIPK6VJTUcEDahFlx3NPUOzA==", "cpu": [ "x64" ], @@ -114,9 +114,9 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.5.1.tgz", - "integrity": "sha512-5gapxc/VlwTgGRbTc9h8PMTpf8eNahIBauFUGSXncHgayi3VpezKSicgaQ1bb8FahVXf/5eNEVxVARq/or71Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.5.0.tgz", + "integrity": "sha512-4S2rLluc0WT+XTbLTgcm9+5EEFwJmoGiUEzR6N0P2sIjZD8c5KNf9Ou46BP1Pdg5AgqV+IIClGPK1I80ApSh1Q==", "cpu": [ "x64" ], @@ -129,9 +129,9 @@ } }, "node_modules/@biomejs/cli-win32-arm64": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.5.1.tgz", - "integrity": "sha512-TVpLBOLUMLQmH2VRFBKFr3rgEkr7XvG4QZxHOxWB9Ivc/sQPvg4aHMd8qpgPKXABGUnultyc9t0+WvfIDxuALg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.5.0.tgz", + "integrity": "sha512-sWOi1SR+YqJuXElBncGRnWBR7IN7ni6GQY4Zm/vTpP6nVA0dX5C301eQUW1N/VnFQb6fyrJTcBslDUKyemsN/g==", "cpu": [ "arm64" ], @@ -144,9 +144,9 @@ } }, "node_modules/@biomejs/cli-win32-x64": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.5.1.tgz", - "integrity": "sha512-qx8EKwScZmVYZjMPZ6GF3ZUmgg/N6zqh+d8vHA2E43opNCyqIPTl89sOqkc7zd1CyyABDWxsbqI9Ih6xTT6hnQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.5.0.tgz", + "integrity": "sha512-OoqgUXyzmRwX466bklOsWS7WdcvWtBuxF94DXATNe7bUiBa2tlW8QX7VVZvPnMKH57E5J619AkB3b5fhzyUhXA==", "cpu": [ "x64" ], diff --git a/test/fixtures/npm/package.json b/test/fixtures/npm/package.json index 97849ff..dfe6ceb 100644 --- a/test/fixtures/npm/package.json +++ b/test/fixtures/npm/package.json @@ -9,6 +9,6 @@ "author": "", "license": "ISC", "dependencies": { - "@biomejs/biome": "^1.5.1" + "@biomejs/biome": "1.5.0" } } diff --git a/test/fixtures/pnpm/package.json b/test/fixtures/pnpm/package.json index f58effe..8e6cc17 100644 --- a/test/fixtures/pnpm/package.json +++ b/test/fixtures/pnpm/package.json @@ -10,6 +10,6 @@ "author": "", "license": "ISC", "devDependencies": { - "@biomejs/biome": "^1.5.1" + "@biomejs/biome": "1.5.0" } } diff --git a/test/fixtures/pnpm/pnpm-lock.yaml b/test/fixtures/pnpm/pnpm-lock.yaml index 0cf5e62..1206acf 100644 --- a/test/fixtures/pnpm/pnpm-lock.yaml +++ b/test/fixtures/pnpm/pnpm-lock.yaml @@ -1,34 +1,30 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - devDependencies: '@biomejs/biome': - specifier: ^1.5.1 - version: 1.5.1 + specifier: 1.5.0 + version: 1.5.0 packages: - /@biomejs/biome@1.5.1: - resolution: {integrity: sha512-rdMA/N1Zc1nxUtbXMVr+50Sg/Pezz+9qGQa2uyRWFtrCoyr3dv0pVz+0ifGGue18ip50ZH8x2r5CV7zo8Q/0mA==} + /@biomejs/biome@1.5.0: + resolution: {integrity: sha512-ln+o5jbs109qpeDoA+5n+vlAPai3DhlK0tHtZXzQvu4tswFgxNiJCeIXmlW1DYHziTmtBImV3Y0uhbm2iVSE3Q==} engines: {node: '>=14.*'} hasBin: true requiresBuild: true optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.5.1 - '@biomejs/cli-darwin-x64': 1.5.1 - '@biomejs/cli-linux-arm64': 1.5.1 - '@biomejs/cli-linux-arm64-musl': 1.5.1 - '@biomejs/cli-linux-x64': 1.5.1 - '@biomejs/cli-linux-x64-musl': 1.5.1 - '@biomejs/cli-win32-arm64': 1.5.1 - '@biomejs/cli-win32-x64': 1.5.1 + '@biomejs/cli-darwin-arm64': 1.5.0 + '@biomejs/cli-darwin-x64': 1.5.0 + '@biomejs/cli-linux-arm64': 1.5.0 + '@biomejs/cli-linux-arm64-musl': 1.5.0 + '@biomejs/cli-linux-x64': 1.5.0 + '@biomejs/cli-linux-x64-musl': 1.5.0 + '@biomejs/cli-win32-arm64': 1.5.0 + '@biomejs/cli-win32-x64': 1.5.0 dev: true - /@biomejs/cli-darwin-arm64@1.5.1: - resolution: {integrity: sha512-E9pLakmSVHP6UH2uqAghqEkr/IHAIDfDyCedqJVnyFc+uufNTHwB8id4XTiWy/eKIdgxHZsTSE+R+W0IqrTNVQ==} + /@biomejs/cli-darwin-arm64@1.5.0: + resolution: {integrity: sha512-3+D7axf04dpadGMOaqb2q+zyQnhWW0o/Imt7TJBWsoE0N3/+28Wht8g3UEHHcUL5FPuGIfsE+NcYntBaaAsEIg==} engines: {node: '>=14.*'} cpu: [arm64] os: [darwin] @@ -36,8 +32,8 @@ packages: dev: true optional: true - /@biomejs/cli-darwin-x64@1.5.1: - resolution: {integrity: sha512-8O1F+FcoCi02JlocyilB6R3y3kT9sRkBCRwYddaBIScQe2hCme/mA2rVzrhCCHhskrclJ51GEKjkEORj4/8c2A==} + /@biomejs/cli-darwin-x64@1.5.0: + resolution: {integrity: sha512-8k5aaLWE/B6ZAXLC+z/Vwh9ogyiSaiRIfvg+F9foxuneHl2R/D/2Iy7pvd3Yoi4Kf6/MBdowekPVezGP4/Kbcw==} engines: {node: '>=14.*'} cpu: [x64] os: [darwin] @@ -45,8 +41,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-arm64-musl@1.5.1: - resolution: {integrity: sha512-Lw9G3LUdhRMp8L8RMeVevnfQCa7luT6ubQ8GRjLju32glxWKefpDrzgfHixGyvTQPlhnYjQ+V8/QQ/I7WPzOoA==} + /@biomejs/cli-linux-arm64-musl@1.5.0: + resolution: {integrity: sha512-+1B3J8tWLTOvP3+00Cap+XhEXMvxwCHvVfuywUsB7Sqd66NWic3wKJuGbGcS3PuCWtGuIFsiQMNAGqiOXG4uBQ==} engines: {node: '>=14.*'} cpu: [arm64] os: [linux] @@ -54,8 +50,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-arm64@1.5.1: - resolution: {integrity: sha512-25gwY4FMzmi1Rl6N835raLq7nzTk+PyEQd88k9Em6dqtI4qpljqmZlMmVjOiwXKe3Ee80J/Vlh7BM36lsHUTEg==} + /@biomejs/cli-linux-arm64@1.5.0: + resolution: {integrity: sha512-RiecxG71E1jnqiJZ3FaikVBDRkk2ohIxBo0O4o68g87y6Hug//G0S83sj6Wqyn8DgKMCRWQg+XYMgk5CwLVowA==} engines: {node: '>=14.*'} cpu: [arm64] os: [linux] @@ -63,8 +59,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-x64-musl@1.5.1: - resolution: {integrity: sha512-5gapxc/VlwTgGRbTc9h8PMTpf8eNahIBauFUGSXncHgayi3VpezKSicgaQ1bb8FahVXf/5eNEVxVARq/or71Ag==} + /@biomejs/cli-linux-x64-musl@1.5.0: + resolution: {integrity: sha512-4S2rLluc0WT+XTbLTgcm9+5EEFwJmoGiUEzR6N0P2sIjZD8c5KNf9Ou46BP1Pdg5AgqV+IIClGPK1I80ApSh1Q==} engines: {node: '>=14.*'} cpu: [x64] os: [linux] @@ -72,8 +68,8 @@ packages: dev: true optional: true - /@biomejs/cli-linux-x64@1.5.1: - resolution: {integrity: sha512-YDM0gZP4UbAuaBI3DVbUuj5X+Omm6uxzD1Qpc6hcduH1kzXzs9L0ee7cn/kJtNndoXR8MlmUS0O0/wWvZf2YaA==} + /@biomejs/cli-linux-x64@1.5.0: + resolution: {integrity: sha512-TlTsG+ptSmnDTUsAAYsXyGOXMcFiF8SiwhPdj4YsNkJRgx9M2curEVcTVm66FINIPK6VJTUcEDahFlx3NPUOzA==} engines: {node: '>=14.*'} cpu: [x64] os: [linux] @@ -81,8 +77,8 @@ packages: dev: true optional: true - /@biomejs/cli-win32-arm64@1.5.1: - resolution: {integrity: sha512-TVpLBOLUMLQmH2VRFBKFr3rgEkr7XvG4QZxHOxWB9Ivc/sQPvg4aHMd8qpgPKXABGUnultyc9t0+WvfIDxuALg==} + /@biomejs/cli-win32-arm64@1.5.0: + resolution: {integrity: sha512-sWOi1SR+YqJuXElBncGRnWBR7IN7ni6GQY4Zm/vTpP6nVA0dX5C301eQUW1N/VnFQb6fyrJTcBslDUKyemsN/g==} engines: {node: '>=14.*'} cpu: [arm64] os: [win32] @@ -90,11 +86,15 @@ packages: dev: true optional: true - /@biomejs/cli-win32-x64@1.5.1: - resolution: {integrity: sha512-qx8EKwScZmVYZjMPZ6GF3ZUmgg/N6zqh+d8vHA2E43opNCyqIPTl89sOqkc7zd1CyyABDWxsbqI9Ih6xTT6hnQ==} + /@biomejs/cli-win32-x64@1.5.0: + resolution: {integrity: sha512-OoqgUXyzmRwX466bklOsWS7WdcvWtBuxF94DXATNe7bUiBa2tlW8QX7VVZvPnMKH57E5J619AkB3b5fhzyUhXA==} engines: {node: '>=14.*'} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false diff --git a/test/fixtures/yarn/package.json b/test/fixtures/yarn/package.json index ab48d68..ff998b3 100644 --- a/test/fixtures/yarn/package.json +++ b/test/fixtures/yarn/package.json @@ -4,6 +4,6 @@ "main": "index.js", "license": "MIT", "devDependencies": { - "@biomejs/biome": "^1.5.1" + "@biomejs/biome": "1.5.0" } } diff --git a/test/fixtures/yarn/yarn.lock b/test/fixtures/yarn/yarn.lock index 6e7a619..71c11a2 100644 --- a/test/fixtures/yarn/yarn.lock +++ b/test/fixtures/yarn/yarn.lock @@ -1,57 +1,105 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@biomejs/biome@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.5.1.tgz#ed665a8693e3014bf8fa641ad58703c85dd575cc" - integrity sha512-rdMA/N1Zc1nxUtbXMVr+50Sg/Pezz+9qGQa2uyRWFtrCoyr3dv0pVz+0ifGGue18ip50ZH8x2r5CV7zo8Q/0mA== - optionalDependencies: - "@biomejs/cli-darwin-arm64" "1.5.1" - "@biomejs/cli-darwin-x64" "1.5.1" - "@biomejs/cli-linux-arm64" "1.5.1" - "@biomejs/cli-linux-arm64-musl" "1.5.1" - "@biomejs/cli-linux-x64" "1.5.1" - "@biomejs/cli-linux-x64-musl" "1.5.1" - "@biomejs/cli-win32-arm64" "1.5.1" - "@biomejs/cli-win32-x64" "1.5.1" - -"@biomejs/cli-darwin-arm64@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.5.1.tgz#ea33f009aaa4bca3ce281e010a6cb108249cb973" - integrity sha512-E9pLakmSVHP6UH2uqAghqEkr/IHAIDfDyCedqJVnyFc+uufNTHwB8id4XTiWy/eKIdgxHZsTSE+R+W0IqrTNVQ== - -"@biomejs/cli-darwin-x64@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.5.1.tgz#c719a8615b380b25cd9a4bbdfc81d90dbec0996b" - integrity sha512-8O1F+FcoCi02JlocyilB6R3y3kT9sRkBCRwYddaBIScQe2hCme/mA2rVzrhCCHhskrclJ51GEKjkEORj4/8c2A== - -"@biomejs/cli-linux-arm64-musl@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.5.1.tgz#c5364e08faca4826654b191e696425d5449a6fe3" - integrity sha512-Lw9G3LUdhRMp8L8RMeVevnfQCa7luT6ubQ8GRjLju32glxWKefpDrzgfHixGyvTQPlhnYjQ+V8/QQ/I7WPzOoA== - -"@biomejs/cli-linux-arm64@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.5.1.tgz#1d9fe74cbc27aa784d8a3743ad1f77da883e2aef" - integrity sha512-25gwY4FMzmi1Rl6N835raLq7nzTk+PyEQd88k9Em6dqtI4qpljqmZlMmVjOiwXKe3Ee80J/Vlh7BM36lsHUTEg== - -"@biomejs/cli-linux-x64-musl@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.5.1.tgz#7e6ef6c1308907f30909374f91c380e2c85bf393" - integrity sha512-5gapxc/VlwTgGRbTc9h8PMTpf8eNahIBauFUGSXncHgayi3VpezKSicgaQ1bb8FahVXf/5eNEVxVARq/or71Ag== - -"@biomejs/cli-linux-x64@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.5.1.tgz#0f6afaf035c6a07fe757d58a315f3a75e49f8987" - integrity sha512-YDM0gZP4UbAuaBI3DVbUuj5X+Omm6uxzD1Qpc6hcduH1kzXzs9L0ee7cn/kJtNndoXR8MlmUS0O0/wWvZf2YaA== - -"@biomejs/cli-win32-arm64@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.5.1.tgz#196bdc1afd0945a0fad76719b601bf7f7a4aaf72" - integrity sha512-TVpLBOLUMLQmH2VRFBKFr3rgEkr7XvG4QZxHOxWB9Ivc/sQPvg4aHMd8qpgPKXABGUnultyc9t0+WvfIDxuALg== - -"@biomejs/cli-win32-x64@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.5.1.tgz#b1996fa2dc6580f39fb2e1b6d126e93baf8da58d" - integrity sha512-qx8EKwScZmVYZjMPZ6GF3ZUmgg/N6zqh+d8vHA2E43opNCyqIPTl89sOqkc7zd1CyyABDWxsbqI9Ih6xTT6hnQ== +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@biomejs/biome@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/biome@npm:1.5.0" + dependencies: + "@biomejs/cli-darwin-arm64": 1.5.0 + "@biomejs/cli-darwin-x64": 1.5.0 + "@biomejs/cli-linux-arm64": 1.5.0 + "@biomejs/cli-linux-arm64-musl": 1.5.0 + "@biomejs/cli-linux-x64": 1.5.0 + "@biomejs/cli-linux-x64-musl": 1.5.0 + "@biomejs/cli-win32-arm64": 1.5.0 + "@biomejs/cli-win32-x64": 1.5.0 + dependenciesMeta: + "@biomejs/cli-darwin-arm64": + optional: true + "@biomejs/cli-darwin-x64": + optional: true + "@biomejs/cli-linux-arm64": + optional: true + "@biomejs/cli-linux-arm64-musl": + optional: true + "@biomejs/cli-linux-x64": + optional: true + "@biomejs/cli-linux-x64-musl": + optional: true + "@biomejs/cli-win32-arm64": + optional: true + "@biomejs/cli-win32-x64": + optional: true + bin: + biome: bin/biome + checksum: 86f3a59fb1614a552a6fe47722140c06472a5e0f8d17e03d72991e69b8f1d565250b386aca695d920d7c7a8b5b3f3fff263171674892e0415698b64b319ec628 + languageName: node + linkType: hard + +"@biomejs/cli-darwin-arm64@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/cli-darwin-arm64@npm:1.5.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@biomejs/cli-darwin-x64@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/cli-darwin-x64@npm:1.5.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@biomejs/cli-linux-arm64-musl@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/cli-linux-arm64-musl@npm:1.5.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@biomejs/cli-linux-arm64@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/cli-linux-arm64@npm:1.5.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@biomejs/cli-linux-x64-musl@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/cli-linux-x64-musl@npm:1.5.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@biomejs/cli-linux-x64@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/cli-linux-x64@npm:1.5.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@biomejs/cli-win32-arm64@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/cli-win32-arm64@npm:1.5.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@biomejs/cli-win32-x64@npm:1.5.0": + version: 1.5.0 + resolution: "@biomejs/cli-win32-x64@npm:1.5.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"yarn@workspace:.": + version: 0.0.0-use.local + resolution: "yarn@workspace:." + dependencies: + "@biomejs/biome": 1.5.0 + languageName: unknown + linkType: soft