diff --git a/package.json b/package.json index 2fd53a52c7..5a4dfac4c8 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,9 @@ "version-checkout": "cat package.json | jq '.version' -r | xargs printf \"release/v%s\" | xargs git checkout -b", "version-commit": "cat package.json | jq '.version' -r | xargs printf \"release v%s\" | git commit --no-edit -s -F -", "version": "yarn run version-checkout && git add package.json && yarn run version-commit", - "postversion": "git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version" + "postversion": "git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version", + "precreate-release-pr": "npx swc ./scripts/create-release-pr.ts -o ./scripts/create-release-pr.mjs", + "create-release-pr": "node ./scripts/create-release-pr.mjs" }, "config": { "k8sProxyVersion": "0.2.1", @@ -299,6 +301,7 @@ "@material-ui/lab": "^4.0.0-alpha.60", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7", "@sentry/types": "^6.19.7", + "@swc/cli": "^0.1.57", "@swc/core": "^1.2.242", "@swc/jest": "^0.2.22", "@testing-library/dom": "^7.31.2", diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 0000000000..493f3a63f4 --- /dev/null +++ b/scripts/.gitignore @@ -0,0 +1,2 @@ +*.mjs +*.map diff --git a/scripts/.swcrc b/scripts/.swcrc new file mode 100644 index 0000000000..8e7a530f16 --- /dev/null +++ b/scripts/.swcrc @@ -0,0 +1,9 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "jsc": { + "parser": { + "syntax": "typescript" + }, + "target": "es2022" + } +} diff --git a/scripts/create-release-pr.ts b/scripts/create-release-pr.ts new file mode 100755 index 0000000000..da0d5d4f26 --- /dev/null +++ b/scripts/create-release-pr.ts @@ -0,0 +1,271 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import child_process from "child_process"; +import commandLineArgs from "command-line-args"; +import fse from "fs-extra"; +import { basename } from "path"; +import { createInterface } from "readline"; +import semver from "semver"; +import { inspect, promisify } from "util"; + +const { + SemVer, + valid: semverValid, + rcompare: semverRcompare, + lte: semverLte, +} = semver; +const exec = promisify(child_process.exec); +const execFile = promisify(child_process.execFile); + +const options = commandLineArgs([ + { + name: "type", + defaultOption: true, + }, + { + name: "preid", + }, +]); + +const validReleaseValues = [ + "major", + "minor", + "patch", +]; +const validPrereleaseValues = [ + "premajor", + "preminor", + "prepatch", + "prerelease", +]; +const validPreidValues = [ + "alpha", + "beta", +]; + +const errorMessages = { + noReleaseType: `No release type provided. Valid options are: ${[...validReleaseValues, ...validPrereleaseValues].join(", ")}`, + invalidRelease: (invalid) => `Invalid release type was provided (value was "${invalid}"). Valid options are: ${[...validReleaseValues, ...validPrereleaseValues].join(", ")}`, + noPreid: `No preid was provided. Use '--preid' to specify. Valid options are: ${validPreidValues.join(", ")}`, + invalidPreid: (invalid) => `Invalid preid was provided (value was "${invalid}"). Valid options are: ${validPreidValues.join(", ")}`, + wrongCwd: "It looks like you are running this script from the 'scripts' directory. This script assumes it is run from the root of the git repo", +}; + +if (!options.type) { + console.error(errorMessages.noReleaseType); + process.exit(1); +} + +if (validReleaseValues.includes(options.type)) { + // do nothing, is valid +} else if (validPrereleaseValues.includes(options.type)) { + if (!options.preid) { + console.error(errorMessages.noPreid); + process.exit(1); + } + + if (!validPreidValues.includes(options.preid)) { + console.error(errorMessages.invalidPreid(options.preid)); + process.exit(1); + } +} else { + console.error(errorMessages.invalidRelease(options.type)); + process.exit(1); +} + +if (basename(process.cwd()) === "scripts") { + console.error(errorMessages.wrongCwd); +} + + +const currentVersion = new SemVer((await fse.readJson("./package.json")).version); + +console.log(`current version: ${currentVersion.format()}`); +console.log("fetching tags..."); +await exec("git fetch --tags --force"); + +const actualTags = (await exec("git tag --list", { encoding: "utf-8" })).stdout.split(/\r?\n/).map(line => line.trim()); +const [previousReleasedVersion] = actualTags + .map((value) => semverValid(value)) + .filter((v): v is string => typeof v === "string") + .sort((l, r) => semverRcompare(l, r)) + .filter(version => semverLte(version, currentVersion)); + +const npmVersionArgs = [ + "npm", + "version", + options.type, +]; + +if (options.preid) { + npmVersionArgs.push(`--preid=${options.preid}`); +} + +npmVersionArgs.push("--git-tag-version false"); + +await exec(npmVersionArgs.join(" ")); + +const newVersion = new SemVer((await fse.readJson("./package.json")).version); +const newVersionMilestone = `${newVersion.major}.${newVersion.minor}.${newVersion.patch}`; + +console.log(`new version: ${newVersion.format()}`); + +const getMergedPrsArgs = [ + "gh", + "pr", + "list", + "--limit=500", // Should be big enough, if not we need to release more often ;) + "--state=merged", + "--base=master", + "--json mergeCommit,title,author,labels,number,milestone,mergedAt", +]; + +interface GithubPrData { + author: { + login: string; + }; + labels: { + id: string; + name: string; + description: string; + color: string; + }[]; + mergeCommit: { + oid: string; + }; + mergedAt: string; + milestone: { + number: number; + title: string; + description: string; + dueOn: null | string; + }; + number: number; + title: string; +} + +console.log("retreiving last 500 PRs to create release PR body..."); +const mergedPrs = JSON.parse((await exec(getMergedPrsArgs.join(" "), { encoding: "utf-8" })).stdout) as GithubPrData[]; +const milestoneRelevantPrs = mergedPrs.filter(pr => pr.milestone?.title === newVersionMilestone); +const relaventPrsQuery = await Promise.all( + milestoneRelevantPrs.map(async pr => ({ + pr, + stdout: (await exec(`git tag v${previousReleasedVersion} --no-contains ${pr.mergeCommit.oid}`)).stdout, + })), +); +const relaventPrs = relaventPrsQuery + .filter(query => query.stdout) + .map(query => query.pr) + .filter(pr => pr.labels.every(label => label.name !== "skip-changelog")) + .map(pr => ({ ...pr, mergedAt: new Date(pr.mergedAt) })) + .sort((left, right) => { + const leftAge = left.mergedAt.valueOf(); + const rightAge = right.mergedAt.valueOf(); + + if (leftAge === rightAge) { + return 0; + } + + if (leftAge > rightAge) { + return 1; + } + + return -1; + }); + +console.log(inspect(relaventPrs, false, null, true)); + +const enhancementPrLabelName = "enhancement"; +const bugfixPrLabelName = "bug"; + +const enhancementPrs = relaventPrs.filter(pr => pr.labels.some(label => label.name === enhancementPrLabelName)); +const bugfixPrs = relaventPrs.filter(pr => pr.labels.some(label => label.name === bugfixPrLabelName)); +const maintenencePrs = relaventPrs.filter(pr => pr.labels.every(label => label.name !== bugfixPrLabelName && label.name !== enhancementPrLabelName)); + +console.log("Found:"); +console.log(`${enhancementPrs.length} enhancement PRs`); +console.log(`${bugfixPrs.length} bug fix PRs`); +console.log(`${maintenencePrs.length} maintenence PRs`); + +const prBodyLines = [ + `## Changes since ${previousReleasedVersion}`, + "", +]; + +function getPrEntry(pr) { + return `- ${pr.title} (**[#${pr.number}](https://github.com/lensapp/lens/pull/${pr.number})**) https://github.com/${pr.author.login}`; +} + +if (enhancementPrs.length > 0) { + prBodyLines.push( + "## 🚀 Features", + "", + ...enhancementPrs.map(getPrEntry), + "", + ); +} + +if (bugfixPrs.length > 0) { + prBodyLines.push( + "## 🐛 Bug Fixes", + "", + ...bugfixPrs.map(getPrEntry), + "", + ); +} + +if (maintenencePrs.length > 0) { + prBodyLines.push( + "## 🧰 Maintenance", + "", + ...maintenencePrs.map(getPrEntry), + "", + ); +} + +const prBody = prBodyLines.join("\n"); +const prBase = newVersion.patch === 0 + ? "master" + : `release/v${newVersion.major}.${newVersion.minor}`; +const createPrArgs = [ + "pr", + "create", + "--base", prBase, + "--title", `release ${newVersion.format()}`, + "--label", "skip-changelog", + "--body-file", "-", +]; + +const rl = createInterface(process.stdin); + +if (prBase !== "master") { + console.log("Cherry-picking commits to current branch"); + + for (const pr of relaventPrs) { + try { + const promise = exec(`git cherry-pick ${pr.mergeCommit.oid}`); + + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + promise.child.stdout!.pipe(process.stdout); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + promise.child.stderr!.pipe(process.stderr); + + await promise; + } catch { + console.error(`Failed to cherry-pick ${pr.mergeCommit.oid}, please resolve conflicts and then press enter here:`); + await new Promise(resolve => rl.on("line", () => resolve())); + } + } +} + +const createPrProcess = execFile("gh", createPrArgs); + +createPrProcess.child.stdout?.pipe(process.stdout); +createPrProcess.child.stderr?.pipe(process.stderr); + +createPrProcess.child.stdin?.write(prBody); +createPrProcess.child.stdin?.end(); + +await createPrProcess; diff --git a/yarn.lock b/yarn.lock index 387ef0f3f8..e18397720f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1445,101 +1445,111 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@swc/core-android-arm-eabi@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.242.tgz#3ae5d8b178a0835ae0878094175d943f2d894bec" - integrity sha512-Ukx1LQAUbPRJdREF9FMgeUwIuRtWJNpPyPF7BWl4hIkw024q75mohMbp3S2wgrF1TsSsEGW37q0DkFxPJ2uJbQ== +"@swc/cli@^0.1.57": + version "0.1.57" + resolved "https://registry.yarnpkg.com/@swc/cli/-/cli-0.1.57.tgz#a9c424de5a217ec20a4b7c2c0e5c343980537e83" + integrity sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg== + dependencies: + commander "^7.1.0" + fast-glob "^3.2.5" + slash "3.0.0" + source-map "^0.7.3" + +"@swc/core-android-arm-eabi@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.244.tgz#f45c5560a471b867f780ed9bd0799620ff8afd04" + integrity sha512-bQN6SY78bFIm6lz46ss4+ZDU9owevVjF95Cm+3KB/13ZOPF+m5Pdm8WQLoBYTLgJ0r4/XukEe9XXjba/6Kf8kw== dependencies: "@swc/wasm" "1.2.122" -"@swc/core-android-arm64@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-android-arm64/-/core-android-arm64-1.2.242.tgz#2c1885c08dd5720991a6fa7585d39a93df98e773" - integrity sha512-4E/y+reQWHVCV/0Sn174gsLQyqIKlBWKnwUfPa7MA53VBacp8HTYoPY+iwKPrngsH16gEOC7iByiTJHR/4kirg== +"@swc/core-android-arm64@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-android-arm64/-/core-android-arm64-1.2.244.tgz#92d6cc1829d621fa1aa88d84d30a85112a82d148" + integrity sha512-CJeL/EeOIzrH+77otNT6wfGF8uadOHo4rEaBN/xvmtnpdADjYJ8Wt85X4nRK0G929bMke/QdJm5ilPNJdmgCTg== dependencies: "@swc/wasm" "1.2.130" -"@swc/core-darwin-arm64@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.242.tgz#1b8b16a132cc354ea3b31d26c46908dae2fe41ed" - integrity sha512-nIqtjxdbz0Fe0gFZwCygBwUrGEXj3c4mjHjNeveidVX/6U0HE/EAj+0iXuw8zjJLof8HCMnxq8CzzvhA6gd3ZA== +"@swc/core-darwin-arm64@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.244.tgz#7e068d14c357771f7ca23d7e1941e8bd577d2b5f" + integrity sha512-ZhRK8L/lpPCerUxtrW48cRJtpsUG5xVTUXu3N0TrYuxRzzapHgK+61g1JdtcwdNvEV7l00X4vfCBRYO0S2nsmw== -"@swc/core-darwin-x64@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.2.242.tgz#cde041d520fcfb0865f49b395bb2c76af8ec3f3a" - integrity sha512-iZKzI76vYYHD/t8wkQ/uIVuIyxN1eift2nLvUU7/jtmoa6b8DH/45ykB/C3vkuvYVNMiGA8HIjJIzw7RJz5XIQ== +"@swc/core-darwin-x64@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.2.244.tgz#bdf3c8150a3e18c392f3d30749a24f71bbd381cd" + integrity sha512-4mY8Gkq2ZMUpXYCLceGp7w0Jnxp75N1gQswNFhMBU4k90ElDuBtPoUSnB1v8MwlQtK7WA25MdvwFnBaEJnfxOg== -"@swc/core-freebsd-x64@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.242.tgz#a95827311424dd86190fdb73bec996d24188c6d3" - integrity sha512-6JNi5/6JDvcTQzBkndELiIlJufWowoI2ZEmXlGIJpiGoj28PEDPwy5LO7KkXa4DnY5L4CSh15idFO/DxV0rGAQ== +"@swc/core-freebsd-x64@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.244.tgz#0941dd18745cc19ed35bc8b5f4c06f62fe91240d" + integrity sha512-k/NEZfkgtZ4S96woYArZ89jwJ/L1zyxihTgFFu7SxDt+WRE1EPmY42Gt4y874zi1JiSEFSRHiiueDUfRPu7C0Q== dependencies: "@swc/wasm" "1.2.130" -"@swc/core-linux-arm-gnueabihf@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.242.tgz#1b0bd0ba96c59a9c4b87668521ce8ba55c8c7f55" - integrity sha512-NGL9A3cv8PCbeQ1SvPfApNlHvFbf7Jn305sCAy3iZYsmwm+EU4JNlOWXGgRioP7ABhz2kwLhfYs8UMYCDIVq8Q== +"@swc/core-linux-arm-gnueabihf@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.244.tgz#e60536c2c7e858940138366d9438d33c80a119e3" + integrity sha512-tE9b/oZWhMXwoXHkgHFckMrLrlczvG7HgQAdtDuA6g30Xd/3XmdVzC4NbXR+1HoaGVDh7cf0EFE3aKdfPvPQwA== dependencies: "@swc/wasm" "1.2.130" -"@swc/core-linux-arm64-gnu@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.242.tgz#f97c1b655779788fff9a035f6a80180b1545423b" - integrity sha512-OJ0kAjgeoRDJlo6Rvd2GnJ92tiIndmC/8krD9gfnQEyAgpR+jajOxbKhyBN/QZPyD2q/TG2LPqxhGYZ79q5mWQ== +"@swc/core-linux-arm64-gnu@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.244.tgz#daa61051c971c30dd3bb5414be98ca7392b08c06" + integrity sha512-zrpVKUeQxZnzorOp3aXhjK1X2/6xuVZcdyxAUDzItP6G4nLbgPBEQLUi6aUjOjquFiihokXoKWaMPQjF/LqH+g== -"@swc/core-linux-arm64-musl@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.242.tgz#ad77a5c7fc79d42d64970ca1886eb9d626388ca2" - integrity sha512-VqnHSYb1a6xW5ARUx9kq88s1S3XvCw9TvQXsPcN4e5qsugrLzxWLnqIM6VnWW06prxN7pYlWo9QtrtdPfbppmA== +"@swc/core-linux-arm64-musl@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.244.tgz#177ea7e8ba74309c2a08e165f147e63b7420a5d8" + integrity sha512-gI6bntk+HDe2witOsQgBDyDDpRmF5dfxbygvVsEdCI+Ko9yj5S9aCsc8WhhbtdcEG1Fo3v/sM/F/9pGatCAwzQ== -"@swc/core-linux-x64-gnu@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.242.tgz#4c7f2c483876a4b0755a263133c25413fa69df88" - integrity sha512-DDqVJh0KpgHb+E0563+6PqAYDzYTSwgZXF/fOULwlHC7Yt50a9+ecisTFSHkWc74zPMtq27kMTuZyyLeD3gu7A== +"@swc/core-linux-x64-gnu@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.244.tgz#c4f00359567fdb25ab5616bf000168f4fcf30534" + integrity sha512-hwJ5HrDj7asmVGjzaT6SFdhPVxVUIYm9LCuE3yu89+6C5aR9YrCXvpgIjGcHJvEO2PLAtff72FsX7sbXbzzYGQ== -"@swc/core-linux-x64-musl@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.242.tgz#48f8769094cfde9d78dc32936666575470583b2a" - integrity sha512-P+9sWgd5eZ6kS1WxOJbCeSgWY7mLP742PhwAzpFrJqCq5nx8Q4FYo4L5mOVNAheYDWldsxR1nKXR1RIMK3S2Lw== +"@swc/core-linux-x64-musl@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.244.tgz#f4d07fbd6c73f54dfa351caf8263a81245882a1f" + integrity sha512-P8d4AIVN63xaS3t5WhOo0Ejy/X7XaDxXe9sJpEbGQP7CGofhURvgXwe8Q6uhPeWC9AwEPu35ArFQ0ZUmOCY0rg== -"@swc/core-win32-arm64-msvc@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.242.tgz#e421a5a7a49d1effa71a22fea22a65256b447108" - integrity sha512-W5cevrf5aDJzdE++XeQi1BJKuigC3dlG2NaBUyt3inmep7nli6eoBJdj9Vyg5EPfFOdeI6wQiwOpFvQRoAle8Q== +"@swc/core-win32-arm64-msvc@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.244.tgz#38167a47c1cd8c73d0621a14d46b7982d1d314ff" + integrity sha512-PZUhgooqPDo+NUo+tIxWI1jKnYVV2ACs8eUkSE++Qf7E4/9Igy79XHbG4/G5ERlCudhdcw4XkYiRN8GJQg6P5w== dependencies: "@swc/wasm" "1.2.130" -"@swc/core-win32-ia32-msvc@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.242.tgz#1b836f5872195fef506a094eae7734b5fd28a1b5" - integrity sha512-XRQcgChvY9333hBre9F53EbiVfVu5MkSH4+XIiNMK14Jg8EqQ1nOcd+jvv2sEdEVbufCmBbWNjofUrCoQey60w== +"@swc/core-win32-ia32-msvc@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.244.tgz#7d6cb0ab95358dc56bd92ca85ac06687a732fa51" + integrity sha512-w7v8fND4E8wOHoVVNJIDjOh8EQiedI9HCsCTEDM/z/dVPsk/rxi6iHYnZG6gv+X/d0aCLeZQOkW9khfyy128cg== dependencies: "@swc/wasm" "1.2.130" -"@swc/core-win32-x64-msvc@1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.242.tgz#61a6c7d4da1dec1188b912785bd8e0bb16ff8440" - integrity sha512-Cz1hZOxcfEVgzEr2sYIW9MxT+wEEbYz7aB87ZDmTUpr7vuvBiLMwsYItm8qG847wZeJfa+J7CC+tty5GJOBOOQ== +"@swc/core-win32-x64-msvc@1.2.244": + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.244.tgz#fed9dd48b3ac1269c7dc62e23fa875ec3f2356b4" + integrity sha512-/A9ssLtqXEQrdHnJ9SvZSBF7zQM/0ydz8B3p5BT9kUbAhmNqbfE4/Wy3d2zd7nrF16n6tRm4giCzcIdzd/7mvw== "@swc/core@^1.2.242": - version "1.2.242" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.2.242.tgz#4392ef0012fe9667440c6eb5a419b6cc86a0a786" - integrity sha512-JQqSYVoLtHtztCNBgeCKyxmqw6AksHsC4WvVSSErLXJx6JXKaog1HFVuzd6rwx2lLCV+zBnbqJFug5OX0g2knw== + version "1.2.244" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.2.244.tgz#d8ba46113c35f2e33dad6663ba8ce178542e24a3" + integrity sha512-/UguNMvKgVeR8wGFb53h+Y9hFSiEpeUhC4Cr1neN15wvWZD3lfvN4qAdqNifZiiPKXrCwYy8NTKlHVtHMYzpXw== optionalDependencies: - "@swc/core-android-arm-eabi" "1.2.242" - "@swc/core-android-arm64" "1.2.242" - "@swc/core-darwin-arm64" "1.2.242" - "@swc/core-darwin-x64" "1.2.242" - "@swc/core-freebsd-x64" "1.2.242" - "@swc/core-linux-arm-gnueabihf" "1.2.242" - "@swc/core-linux-arm64-gnu" "1.2.242" - "@swc/core-linux-arm64-musl" "1.2.242" - "@swc/core-linux-x64-gnu" "1.2.242" - "@swc/core-linux-x64-musl" "1.2.242" - "@swc/core-win32-arm64-msvc" "1.2.242" - "@swc/core-win32-ia32-msvc" "1.2.242" - "@swc/core-win32-x64-msvc" "1.2.242" + "@swc/core-android-arm-eabi" "1.2.244" + "@swc/core-android-arm64" "1.2.244" + "@swc/core-darwin-arm64" "1.2.244" + "@swc/core-darwin-x64" "1.2.244" + "@swc/core-freebsd-x64" "1.2.244" + "@swc/core-linux-arm-gnueabihf" "1.2.244" + "@swc/core-linux-arm64-gnu" "1.2.244" + "@swc/core-linux-arm64-musl" "1.2.244" + "@swc/core-linux-x64-gnu" "1.2.244" + "@swc/core-linux-x64-musl" "1.2.244" + "@swc/core-win32-arm64-msvc" "1.2.244" + "@swc/core-win32-ia32-msvc" "1.2.244" + "@swc/core-win32-x64-msvc" "1.2.244" "@swc/jest@^0.2.22": version "0.2.22" @@ -2119,9 +2129,9 @@ integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^16.11.26", "@types/node@^16.11.55": - version "16.11.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.55.tgz#4b1e4fa4238b083cf0d0b4ad9077629123950caa" - integrity sha512-ZZepNkqPNCBy6PlCjeOY0gI1q91v7l5MUhVc5RMAUV39OxRO8lF8fqGnhY2j8FWz8fxcN8HvAUWoccWpOzl/Ug== + version "16.11.56" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.56.tgz#dcbb617669481e158e0f1c6204d1c768cd675901" + integrity sha512-aFcUkv7EddxxOa/9f74DINReQ/celqH8DiB3fRYgVDM2Xm5QJL8sl80QKuAnGvwAsMn+H3IFA6WCrQh1CY7m1A== "@types/npm@^2.0.32": version "2.0.32" @@ -3324,9 +3334,9 @@ auto-bind@^4.0.0: integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== autolinker@^3.11.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-3.15.0.tgz#03956088648f236642a5783612f9ca16adbbed38" - integrity sha512-N/5Dk5AZnqL9k6kkHdFIGLm/0/rRuSnJwqYYhLCJjU7ZtiaJwCBzNTvjzy1zzJADngv/wvtHYcrPHytPnASeFA== + version "3.16.0" + resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-3.16.0.tgz#6fad29b038ba99cbfbab79f78019fed4264df0c6" + integrity sha512-KY8yhlwvuQpA7exkkvHsmk0chdrtS0ZRO7XoPfs7w8N3kpiGPjYNDrQ0lIMx2GrKFZzGK/QSEd2Sx5SYtSNBKg== dependencies: tslib "^2.3.0" @@ -4259,7 +4269,7 @@ commander@^5.0.0, commander@^5.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^7.0.0: +commander@^7.0.0, commander@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -5294,9 +5304,9 @@ electron-window-state@^5.0.3: mkdirp "^0.5.1" electron@^19.0.13: - version "19.0.13" - resolved "https://registry.yarnpkg.com/electron/-/electron-19.0.13.tgz#68bcf7d94f249dbae9a3d4d1794d45a24db666dc" - integrity sha512-11Ne0VJy8L1GU7sGcbJHhkAz73szR27uP4vmfUVGlppC/ipA39AUkdzqiQoPC/F1EJdjEOBvHySG8K8Xe9yETA== + version "19.0.14" + resolved "https://registry.yarnpkg.com/electron/-/electron-19.0.14.tgz#f6eafeea65edb0cb6ac079c3167ad6d6907c539c" + integrity sha512-I+ptDJZXjwMTitjF4W1s/kkt5nMrzO+TeWP3oy/kmH3pilhNag2OQA7+/cGOHTTUubDMFA8Ni4AvlQ0VDRScwQ== dependencies: "@electron/get" "^1.14.1" "@types/node" "^16.11.26" @@ -5843,9 +5853,9 @@ eslint-plugin-react-hooks@^4.6.0: integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.31.0: - version "7.31.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.0.tgz#fd3f81c9db5971095b3521ede22781afd37442b0" - integrity sha512-BWriBttYYCnfb4RO9SB91Og8uA9CPcBMl5UlCOCtuYW1UjhN3QypzEcEHky4ZIRZDKjbO2Blh9BjP8E7W/b1SA== + version "7.31.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz#d29793ed27743f3ed8a473c347b1bf5a0a8fb9af" + integrity sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg== dependencies: array-includes "^3.1.5" array.prototype.flatmap "^1.3.0" @@ -6187,7 +6197,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -12367,7 +12377,7 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^3.0.0: +slash@3.0.0, slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==