Compare commits

...

3 Commits

Author SHA1 Message Date
platane
7b5258d549 . 2023-01-09 15:51:09 +01:00
platane
f3820e8edc . 2023-01-09 08:13:40 +01:00
platane
d9d2fa1b52 add scripts to output usage stats 📈 2023-01-09 08:07:43 +01:00
10 changed files with 993 additions and 3 deletions

2
packages/usage-stats/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
.env
cache

View File

@@ -0,0 +1,53 @@
import { Octokit } from "octokit";
import { httpGet } from "./httpGet";
require("dotenv").config();
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
export const getLastRunInfo = async (repo_: string) => {
const [owner, repo] = repo_.split("/");
try {
const {
data: { workflow_runs },
} = await octokit.request(
"GET /repos/{owner}/{repo}/actions/runs{?actor,branch,event,status,per_page,page,created,exclude_pull_requests,check_suite_id,head_sha}",
{ owner, repo }
);
for (const r of workflow_runs) {
const {
run_started_at: date,
head_sha,
path,
conclusion,
} = r as {
run_started_at: string;
head_sha: string;
path: string;
conclusion: "failure" | "success";
};
const workflow_url = `https://raw.githubusercontent.com/${owner}/${repo}/${head_sha}/${path}`;
const workflow_code = await httpGet(workflow_url);
const [_, dependency] =
workflow_code.match(/uses\s*:\s*(Platane\/snk(\/svg-only)?@\w*)/) ?? [];
const cronMatch = workflow_code.match(/cron\s*:([^\n]*)/);
if (dependency)
return {
dependency,
success: conclusion === "success",
date,
cron: cronMatch?.[1].replace(/["|']/g, "").trim(),
workflow_code,
};
}
} catch (err) {
console.error(err);
}
};

View File

@@ -0,0 +1,56 @@
import { load as CheerioLoad } from "cheerio";
import { httpGet } from "./httpGet";
export const getDependentInfo = async (repo: string) => {
const pageText = await httpGet(`https://github.com/${repo}/actions`).catch(
() => null
);
if (!pageText) return;
const $ = CheerioLoad(pageText);
const runs = $("#partial-actions-workflow-runs [data-url]")
.toArray()
.map((el) => {
const success =
$(el).find('[aria-label="completed successfully"]').toArray().length ===
1;
const workflow_file_href = $(el)
.find("a")
.toArray()
.map((el) => $(el).attr("href")!)
.find((href) => href.match(/\/actions\/runs\/\d+\/workflow/))!;
const workflow_file_url = workflow_file_href
? new URL(workflow_file_href, "https://github.com").toString()
: null;
const date = $(el).find("relative-time").attr("datetime");
return { success, workflow_file_url, date };
});
for (const { workflow_file_url, success, date } of runs) {
if (!workflow_file_url) continue;
const $ = CheerioLoad(await httpGet(workflow_file_url));
const workflow_code = $("table[data-hpc]").text();
const [_, dependency] =
workflow_code.match(/uses\s*:\s*(Platane\/snk(\/svg-only)?@\w*)/) ?? [];
const cronMatch = workflow_code.match(/cron\s*:([^\n]*)/);
if (dependency)
return {
dependency,
success,
date,
cron: cronMatch?.[1].replace(/["|']/g, "").trim(),
workflow_code,
};
}
};

View File

@@ -0,0 +1,67 @@
import { load as CheerioLoad } from "cheerio";
import { httpGet } from "./httpGet";
const getPackages = async (repo: string) => {
const pageText = await httpGet(
`https://github.com/${repo}/network/dependents`
);
const $ = CheerioLoad(pageText);
return $("#dependents .select-menu-list a")
.toArray()
.map((el) => {
const name = $(el).text().trim();
const href = $(el).attr("href");
const u = new URL(href!, "http://example.com");
return { name, id: u.searchParams.get("package_id")! };
});
};
const getDependentByPackage = async (repo: string, packageId: string) => {
const repos = [] as string[];
const pages = [];
let url:
| string
| null = `https://github.com/${repo}/network/dependents?package_id=${packageId}`;
while (url) {
const $ = CheerioLoad(await httpGet(url));
console.log(repos.length);
const reposOnPage = $(`#dependents [data-hovercard-type="repository"]`)
.toArray()
.map((el) => $(el).attr("href")!.slice(1));
repos.push(...reposOnPage);
const nextButton = $(`#dependents a`)
.filter((_, el) => $(el).text().trim().toLowerCase() === "next")
.eq(0);
const href = nextButton ? nextButton.attr("href") : null;
pages.push({ url, reposOnPage, next: href });
url = href ? new URL(href, "https://github.com").toString() : null;
}
return { repos, pages };
};
export const getDependents = async (repo: string) => {
const packages = await getPackages(repo);
const ps: (typeof packages[number] & { dependents: string[] })[] = [];
for (const p of packages)
ps.push({
...p,
dependents: (await getDependentByPackage(repo, p.id)).repos,
});
return ps;
};

View File

@@ -0,0 +1,125 @@
import * as fs from "fs";
import fetch from "node-fetch";
import { Octokit } from "octokit";
require("dotenv").config();
// @ts-ignore
import packages from "./out.json";
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
const getLastRunInfo = async (repo_: string) => {
const [owner, repo] = repo_.split("/");
try {
const {
data: { workflow_runs },
} = await octokit.request(
"GET /repos/{owner}/{repo}/actions/runs{?actor,branch,event,status,per_page,page,created,exclude_pull_requests,check_suite_id,head_sha}",
{ owner, repo }
);
for (const r of workflow_runs) {
const { run_started_at, head_sha, path, conclusion } = r as {
run_started_at: string;
head_sha: string;
path: string;
conclusion: "failure" | "success";
};
const workflow_url = `https://raw.githubusercontent.com/${owner}/${repo}/${head_sha}/${path}`;
const workflow_file = await fetch(workflow_url).then((res) => res.text());
const [_, dependency, __, version] =
workflow_file.match(/uses\s*:\s*(Platane\/snk(\/svg-only)?@(\w*))/) ??
[];
const cronMatch = workflow_file.match(/cron\s*:([^\n]*)/);
if (dependency)
return {
dependency,
version,
run_started_at,
conclusion,
cron: cronMatch?.[1].replace(/["|']/g, "").trim(),
workflow_file,
workflow_url,
};
}
} catch (err) {
console.error(err);
}
};
const wait = (delay = 0) => new Promise((r) => setTimeout(r, delay));
const getRepos = () => {
try {
return JSON.parse(fs.readFileSync(__dirname + "/cache/out.json").toString())
.map((p: any) => p.dependents)
.flat() as string[];
} catch (err) {
return [];
}
};
const getReposInfo = () => {
try {
return JSON.parse(
fs.readFileSync(__dirname + "/cache/stats.json").toString()
) as any[];
} catch (err) {
return [];
}
};
const saveRepoInfo = (rr: any[]) => {
fs.writeFileSync(__dirname + "/cache/stats.json", JSON.stringify(rr));
};
(async () => {
const repos = getRepos();
const total = repos.length;
const reposInfo = getReposInfo().slice(0, -20);
for (const { repo } of reposInfo) {
const i = repos.indexOf(repo);
if (i >= 0) repos.splice(i, 1);
}
while (repos.length) {
const {
data: { rate },
} = await octokit.request("GET /rate_limit", {});
console.log(rate);
if (rate.remaining < 100) {
const delay = rate.reset - Math.floor(Date.now() / 1000);
console.log(
`waiting ${delay} second (${(delay / 60).toFixed(
1
)} minutes) for reset `
);
await wait(Math.max(0, delay) * 1000);
}
const rs = repos.splice(0, 20);
await Promise.all(
rs.map(async (repo) => {
reposInfo.push({ repo, ...(await getLastRunInfo(repo)) });
saveRepoInfo(reposInfo);
console.log(
reposInfo.length.toString().padStart(5, " "),
"/",
total,
repo
);
})
);
}
})();

View File

@@ -0,0 +1,84 @@
import fetch from "node-fetch";
import * as path from "path";
import * as fs from "fs";
const CACHE_DIR = path.join(__dirname, "cache", "http");
fs.mkdirSync(CACHE_DIR, { recursive: true });
const createMutex = () => {
let locked = false;
const q: any[] = [];
const update = () => {
if (locked) return;
if (q[0]) {
locked = true;
q.shift()(() => {
locked = false;
update();
});
}
};
const request = () =>
new Promise<() => void>((resolve) => {
q.push(resolve);
update();
});
return request;
};
const mutex = createMutex();
export const httpGet = async (url: string | URL): Promise<string> => {
const cacheKey = url
.toString()
.replace(/https?:\/\//, "")
.replace(/[^\w=&\?\.]/g, "_");
const cacheFilename = path.join(CACHE_DIR, cacheKey);
if (fs.existsSync(cacheFilename))
return new Promise((resolve, reject) =>
fs.readFile(cacheFilename, (err, data) =>
err ? reject(err) : resolve(data.toString())
)
);
const release = await mutex();
try {
const res = await fetch(url);
if (!res.ok) {
if (res.status === 429 || res.statusText === "Too Many Requests") {
const delay = +(res.headers.get("retry-after") ?? 300) * 1000;
console.log("Too Many Requests", delay);
await wait(delay);
console.log("waited long enough");
return httpGet(url);
}
console.error(url, res.status, res.statusText);
throw new Error("res not ok");
}
const text = await res.text();
fs.writeFileSync(cacheFilename, text);
// await wait(Math.random() * 200 + 100);
return text;
} finally {
release();
}
};
const wait = (delay = 0) => new Promise((r) => setTimeout(r, delay));

View File

@@ -0,0 +1,51 @@
import { getDependentInfo } from "./getDependentInfo";
import { getDependents } from "./getDependents";
import ParkMiller from "park-miller";
const toChunk = <T>(arr: T[], n = 1) =>
Array.from({ length: Math.ceil(arr.length / n) }, (_, i) =>
arr.slice(i * n, (i + 1) * n)
);
const random = new ParkMiller(10);
const shuffle = <T>(array: T[]) => {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(random.float() * (i + 1));
const temp = array[i];
array[i] = array[j];
array[j] = temp;
}
};
(async () => {
const packages = await getDependents("Platane/snk");
const repos = packages.map((p) => p.dependents).flat();
shuffle(repos);
repos.splice(0, repos.length - 5000);
console.log(repos);
const infos: any[] = [];
// for (const chunk of toChunk(repos, 10))
// await Promise.all(
// chunk.map(async (repo) => {
// console.log(
// infos.length.toString().padStart(5, " "),
// "/",
// repos.length
// );
// infos.push({ repo, ...(await getDependentInfo(repo)) });
// })
// );
for (const repo of repos) {
console.log(infos.length.toString().padStart(5, " "), "/", repos.length);
infos.push({ repo, ...(await getDependentInfo(repo)) });
}
})();

View File

@@ -0,0 +1,16 @@
{
"name": "@snk/usage-stats",
"version": "1.0.0",
"dependencies": {},
"devDependencies": {
"sucrase": "3.29.0",
"cheerio": "1.0.0-rc.12",
"node-fetch": "2.6.7",
"octokit": "2.0.11",
"dotenv": "16.0.3",
"park-miller": "1.1.0"
},
"scripts": {
"start": "sucrase-node index.ts"
}
}

View File

@@ -0,0 +1,62 @@
import * as fs from "fs";
type R = { repo: string } & Partial<{
dependency: string;
version: string;
run_started_at: string;
conclusion: "failure" | "success";
cron?: string;
workflow_file: string;
}>;
(async () => {
const repos: R[] = JSON.parse(
fs.readFileSync(__dirname + "/cache/stats.json").toString()
);
const total = repos.length;
const recent_repos = repos.filter(
(r) =>
new Date(r.run_started_at!).getTime() >
Date.now() - 7 * 24 * 60 * 60 * 1000
);
const recent_successful_repos = recent_repos.filter(
(r) => r?.conclusion === "success"
);
const versions = new Map();
for (const { dependency } of recent_successful_repos) {
versions.set(dependency, (versions.get(dependency) ?? 0) + 1);
}
console.log(`total ${total}`);
console.log(
`recent_repos ${recent_repos.length} (${(
(recent_repos.length / total) *
100
).toFixed(2)}%)`
);
console.log(
`recent_successful_repos ${recent_successful_repos.length} (${(
(recent_successful_repos.length / total) *
100
).toFixed(2)}%)`
);
console.log("versions");
for (const [name, count] of Array.from(versions.entries()).sort(
([, a], [, b]) => b - a
))
console.log(
`${(name as string).split("Platane/")[1].padEnd(20, " ")} ${(
(count / recent_successful_repos.length) *
100
)
.toFixed(2)
.padStart(6, " ")}% ${count} `
);
const gif_repos = repos.filter((r) => r.workflow_file?.includes(".gif"));
console.log("repo with git ouput", gif_repos.length);
})();

480
yarn.lock
View File

@@ -997,6 +997,231 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
"@octokit/app@^13.1.1":
version "13.1.1"
resolved "https://registry.yarnpkg.com/@octokit/app/-/app-13.1.1.tgz#10b39a7ca5ee7472497b9595e1bb382a7113ccd7"
integrity sha512-83TPUMWPAWaACe8AJVBlg6gptbDJk/33C/0V9e0yWfBqXINqF2ZutctQIcrRcyWBPlfYmFElPbElMqlspe8UWg==
dependencies:
"@octokit/auth-app" "^4.0.8"
"@octokit/auth-unauthenticated" "^3.0.0"
"@octokit/core" "^4.0.0"
"@octokit/oauth-app" "^4.0.7"
"@octokit/plugin-paginate-rest" "^5.0.0"
"@octokit/types" "^8.0.0"
"@octokit/webhooks" "^10.0.0"
"@octokit/auth-app@^4.0.8":
version "4.0.8"
resolved "https://registry.yarnpkg.com/@octokit/auth-app/-/auth-app-4.0.8.tgz#73a8c6c087c55473affeedd939ef08ff2cfa9b3d"
integrity sha512-miI7y9FfS/fL1bSPsDaAfCGSxQ04iGLyisI2GA8N7P6eB6AkCOt+F1XXapJKRnAubQubvYF0dqxoTZYyKk93NQ==
dependencies:
"@octokit/auth-oauth-app" "^5.0.0"
"@octokit/auth-oauth-user" "^2.0.0"
"@octokit/request" "^6.0.0"
"@octokit/request-error" "^3.0.0"
"@octokit/types" "^8.0.0"
"@types/lru-cache" "^5.1.0"
deprecation "^2.3.1"
lru-cache "^6.0.0"
universal-github-app-jwt "^1.1.1"
universal-user-agent "^6.0.0"
"@octokit/auth-oauth-app@^5.0.0":
version "5.0.4"
resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.4.tgz#ebd9a38f75381093d1a5e08e05b70b94f0918277"
integrity sha512-zlWuii5hAN50vsV6SJC+uIJ7SMhyWjQMEmKJQxkmNDlieE9LjnkZnbOjqRsfcG7VO7WTl4K8ccpo/3A7Kdpmrw==
dependencies:
"@octokit/auth-oauth-device" "^4.0.0"
"@octokit/auth-oauth-user" "^2.0.0"
"@octokit/request" "^6.0.0"
"@octokit/types" "^8.0.0"
"@types/btoa-lite" "^1.0.0"
btoa-lite "^1.0.0"
universal-user-agent "^6.0.0"
"@octokit/auth-oauth-device@^4.0.0":
version "4.0.3"
resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.3.tgz#00ce77233517e0d7d39e42a02652f64337d9df81"
integrity sha512-KPTx5nMntKjNZzzltO3X4T68v22rd7Cp/TcLJXQE2U8aXPcZ9LFuww9q9Q5WUNSu3jwi3lRwzfkPguRfz1R8Vg==
dependencies:
"@octokit/oauth-methods" "^2.0.0"
"@octokit/request" "^6.0.0"
"@octokit/types" "^8.0.0"
universal-user-agent "^6.0.0"
"@octokit/auth-oauth-user@^2.0.0":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-user/-/auth-oauth-user-2.0.4.tgz#88f060ec678d7d493695af8d827e115dd064e212"
integrity sha512-HrbDzTPqz6GcGSOUkR+wSeF3vEqsb9NMsmPja/qqqdiGmlk/Czkxctc3KeWYogHonp62Ml4kjz2VxKawrFsadQ==
dependencies:
"@octokit/auth-oauth-device" "^4.0.0"
"@octokit/oauth-methods" "^2.0.0"
"@octokit/request" "^6.0.0"
"@octokit/types" "^8.0.0"
btoa-lite "^1.0.0"
universal-user-agent "^6.0.0"
"@octokit/auth-token@^3.0.0":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.2.tgz#a0fc8de149fd15876e1ac78f6525c1c5ab48435f"
integrity sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==
dependencies:
"@octokit/types" "^8.0.0"
"@octokit/auth-unauthenticated@^3.0.0":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@octokit/auth-unauthenticated/-/auth-unauthenticated-3.0.3.tgz#2fa91ca84a8c8cec244241c2a13732fc5a404a22"
integrity sha512-IyfLo1T5GmIC9+07hHGlD3gHtZI1Bona8PLhHXUnwcYDuZt0BhjlNJDYMoPG21C4r7v7+ZSxQHBKrGgkxpYb7A==
dependencies:
"@octokit/request-error" "^3.0.0"
"@octokit/types" "^8.0.0"
"@octokit/core@^4.0.0", "@octokit/core@^4.0.4":
version "4.1.0"
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.1.0.tgz#b6b03a478f1716de92b3f4ec4fd64d05ba5a9251"
integrity sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==
dependencies:
"@octokit/auth-token" "^3.0.0"
"@octokit/graphql" "^5.0.0"
"@octokit/request" "^6.0.0"
"@octokit/request-error" "^3.0.0"
"@octokit/types" "^8.0.0"
before-after-hook "^2.2.0"
universal-user-agent "^6.0.0"
"@octokit/endpoint@^7.0.0":
version "7.0.3"
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.3.tgz#0b96035673a9e3bedf8bab8f7335de424a2147ed"
integrity sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==
dependencies:
"@octokit/types" "^8.0.0"
is-plain-object "^5.0.0"
universal-user-agent "^6.0.0"
"@octokit/graphql@^5.0.0":
version "5.0.4"
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.4.tgz#519dd5c05123868276f3ae4e50ad565ed7dff8c8"
integrity sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==
dependencies:
"@octokit/request" "^6.0.0"
"@octokit/types" "^8.0.0"
universal-user-agent "^6.0.0"
"@octokit/oauth-app@^4.0.6", "@octokit/oauth-app@^4.0.7":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@octokit/oauth-app/-/oauth-app-4.2.0.tgz#f965496b1d957c3ff0275a5d5233b380181ce72b"
integrity sha512-gyGclT77RQMkVUEW3YBeAKY+LBSc5u3eC9Wn/Uwt3WhuKuu9mrV18EnNpDqmeNll+mdV02yyBROU29Tlili6gg==
dependencies:
"@octokit/auth-oauth-app" "^5.0.0"
"@octokit/auth-oauth-user" "^2.0.0"
"@octokit/auth-unauthenticated" "^3.0.0"
"@octokit/core" "^4.0.0"
"@octokit/oauth-authorization-url" "^5.0.0"
"@octokit/oauth-methods" "^2.0.0"
"@types/aws-lambda" "^8.10.83"
fromentries "^1.3.1"
universal-user-agent "^6.0.0"
"@octokit/oauth-authorization-url@^5.0.0":
version "5.0.0"
resolved "https://registry.yarnpkg.com/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz#029626ce87f3b31addb98cd0d2355c2381a1c5a1"
integrity sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg==
"@octokit/oauth-methods@^2.0.0":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@octokit/oauth-methods/-/oauth-methods-2.0.4.tgz#6abd9593ca7f91fe5068375a363bd70abd5516dc"
integrity sha512-RDSa6XL+5waUVrYSmOlYROtPq0+cfwppP4VaQY/iIei3xlFb0expH6YNsxNrZktcLhJWSpm9uzeom+dQrXlS3A==
dependencies:
"@octokit/oauth-authorization-url" "^5.0.0"
"@octokit/request" "^6.0.0"
"@octokit/request-error" "^3.0.0"
"@octokit/types" "^8.0.0"
btoa-lite "^1.0.0"
"@octokit/openapi-types@^14.0.0":
version "14.0.0"
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-14.0.0.tgz#949c5019028c93f189abbc2fb42f333290f7134a"
integrity sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==
"@octokit/plugin-paginate-rest@^5.0.0":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz#93d7e74f1f69d68ba554fa6b888c2a9cf1f99a83"
integrity sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==
dependencies:
"@octokit/types" "^8.0.0"
"@octokit/plugin-rest-endpoint-methods@^6.0.0":
version "6.7.0"
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz#2f6f17f25b6babbc8b41d2bb0a95a8839672ce7c"
integrity sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==
dependencies:
"@octokit/types" "^8.0.0"
deprecation "^2.3.1"
"@octokit/plugin-retry@^4.0.3":
version "4.0.3"
resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-4.0.3.tgz#75427ba1ad92afde07af9cb0c5197f214bb036e1"
integrity sha512-tDR+4Cs9GPPNJ7/RjTEq5ty2wqjKe1hRUV7/hch+nORow5LshlHXTT1qfYNsFPw3S9szvFFAfDEFq/xwrEpL7g==
dependencies:
"@octokit/types" "^8.0.0"
bottleneck "^2.15.3"
"@octokit/plugin-throttling@^4.0.1":
version "4.3.2"
resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-4.3.2.tgz#d5eb363d5282c74b2839454a87545c5f90591a80"
integrity sha512-ZaCK599h3tzcoy0Jtdab95jgmD7X9iAk59E2E7hYKCAmnURaI4WpzwL9vckImilybUGrjY1JOWJapDs2N2D3vw==
dependencies:
"@octokit/types" "^8.0.0"
bottleneck "^2.15.3"
"@octokit/request-error@^3.0.0":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.2.tgz#f74c0f163d19463b87528efe877216c41d6deb0a"
integrity sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==
dependencies:
"@octokit/types" "^8.0.0"
deprecation "^2.0.0"
once "^1.4.0"
"@octokit/request@^6.0.0":
version "6.2.2"
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.2.tgz#a2ba5ac22bddd5dcb3f539b618faa05115c5a255"
integrity sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==
dependencies:
"@octokit/endpoint" "^7.0.0"
"@octokit/request-error" "^3.0.0"
"@octokit/types" "^8.0.0"
is-plain-object "^5.0.0"
node-fetch "^2.6.7"
universal-user-agent "^6.0.0"
"@octokit/types@^8.0.0":
version "8.0.0"
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.0.0.tgz#93f0b865786c4153f0f6924da067fe0bb7426a9f"
integrity sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==
dependencies:
"@octokit/openapi-types" "^14.0.0"
"@octokit/webhooks-methods@^3.0.0":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@octokit/webhooks-methods/-/webhooks-methods-3.0.1.tgz#041ed0e5728cc076e375c372dd803ded5905535f"
integrity sha512-XftYVcBxtzC2G05kdBNn9IYLtQ+Cz6ufKkjZd0DU/qGaZEFTPzM2OabXAWG5tvL0q/I+Exio1JnRiPfetiMSEw==
"@octokit/webhooks-types@6.7.0":
version "6.7.0"
resolved "https://registry.yarnpkg.com/@octokit/webhooks-types/-/webhooks-types-6.7.0.tgz#5fae3f6d92befcb8224a8c19a18d9d90e59f095d"
integrity sha512-bykm7UkSnxmb2uhSfcLM1Pity/LQ6ZBSdzy9HU0vXjR+2g+tzlmRhXb7Go8oj0TlgO+vDrTivGXju6zkzOGKjA==
"@octokit/webhooks@^10.0.0":
version "10.5.0"
resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-10.5.0.tgz#956aaf3de7059d94d31e24be145abb700f4532f2"
integrity sha512-IQkogbujbLKXrpfsuH7PV33tMiivMeUhggOfimetwdaX4M7WB+mRdxwFsc8dJCOt9wCSrXfZtpd8eK3VOf4GCQ==
dependencies:
"@octokit/request-error" "^3.0.0"
"@octokit/webhooks-methods" "^3.0.0"
"@octokit/webhooks-types" "6.7.0"
aggregate-error "^3.1.0"
"@sinclair/typebox@^0.24.1":
version "0.24.51"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f"
@@ -1056,6 +1281,11 @@
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e"
integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==
"@types/aws-lambda@^8.10.83":
version "8.10.109"
resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.109.tgz#2f434cbfafe083529e365fe9c114787827a169a8"
integrity sha512-/ME92FneNyXQzrAfcnQQlW1XkCZGPDlpi2ao1MJwecN+6SbeonKeggU8eybv1DfKli90FAVT1MlIZVXfwVuCyg==
"@types/babel__core@^7.1.14":
version "7.1.14"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402"
@@ -1104,6 +1334,11 @@
dependencies:
"@types/node" "*"
"@types/btoa-lite@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/btoa-lite/-/btoa-lite-1.0.0.tgz#e190a5a548e0b348adb0df9ac7fa5f1151c7cca4"
integrity sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==
"@types/color-name@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
@@ -1235,6 +1470,18 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
"@types/jsonwebtoken@^9.0.0":
version "9.0.0"
resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#4db9bfaf276ef4fdc3608194fab8b8f2fd1c44f9"
integrity sha512-mM4TkDpA9oixqg1Fv2vVpOFyIVLJjm5x4k0V+K/rEsizfjD7Tk7LKk3GTtbB7KCfP0FEHQtsZqFxYA0+sijNVg==
dependencies:
"@types/node" "*"
"@types/lru-cache@^5.1.0":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef"
integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==
"@types/mime@*":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10"
@@ -1579,6 +1826,14 @@ agent-base@6:
dependencies:
debug "4"
aggregate-error@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
dependencies:
clean-stack "^2.0.0"
indent-string "^4.0.0"
ajv-formats@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
@@ -1828,6 +2083,11 @@ batch@0.6.1:
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
before-after-hook@^2.2.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==
bin-build@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861"
@@ -1920,6 +2180,11 @@ boolbase@^1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
bottleneck@^2.15.3:
version "2.19.5"
resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91"
integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1973,6 +2238,11 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
btoa-lite@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337"
integrity sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==
buffer-alloc-unsafe@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
@@ -1991,6 +2261,11 @@ buffer-crc32@~0.2.3:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
buffer-equal-constant-time@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==
buffer-fill@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
@@ -2122,6 +2397,18 @@ cheerio-select@^1.5.0:
domhandler "^4.3.1"
domutils "^2.8.0"
cheerio-select@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4"
integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
dependencies:
boolbase "^1.0.0"
css-select "^5.1.0"
css-what "^6.1.0"
domelementtype "^2.3.0"
domhandler "^5.0.3"
domutils "^3.0.1"
cheerio@1.0.0-rc.10:
version "1.0.0-rc.10"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e"
@@ -2135,6 +2422,19 @@ cheerio@1.0.0-rc.10:
parse5-htmlparser2-tree-adapter "^6.0.1"
tslib "^2.2.0"
cheerio@1.0.0-rc.12:
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683"
integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==
dependencies:
cheerio-select "^2.1.0"
dom-serializer "^2.0.0"
domhandler "^5.0.3"
domutils "^3.0.1"
htmlparser2 "^8.0.1"
parse5 "^7.0.0"
parse5-htmlparser2-tree-adapter "^7.0.0"
chokidar@^3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
@@ -2179,6 +2479,11 @@ clean-css@^5.1.5:
dependencies:
source-map "~0.6.0"
clean-stack@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
@@ -2430,12 +2735,23 @@ css-select@^4.3.0:
domutils "^2.8.0"
nth-check "^2.0.1"
css-select@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
dependencies:
boolbase "^1.0.0"
css-what "^6.1.0"
domhandler "^5.0.2"
domutils "^3.0.1"
nth-check "^2.0.1"
css-what@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad"
integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==
css-what@^6.0.1:
css-what@^6.0.1, css-what@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
@@ -2575,6 +2891,11 @@ depd@~1.1.2:
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
deprecation@^2.0.0, deprecation@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
@@ -2642,6 +2963,15 @@ dom-serializer@^1.3.2:
domhandler "^4.2.0"
entities "^2.0.0"
dom-serializer@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
dependencies:
domelementtype "^2.3.0"
domhandler "^5.0.2"
entities "^4.2.0"
domelementtype@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971"
@@ -2657,6 +2987,11 @@ domelementtype@^2.2.0:
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
domelementtype@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
domhandler@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e"
@@ -2678,6 +3013,13 @@ domhandler@^4.3.1:
dependencies:
domelementtype "^2.2.0"
domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
dependencies:
domelementtype "^2.3.0"
domutils@^2.5.2, domutils@^2.6.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442"
@@ -2696,6 +3038,15 @@ domutils@^2.8.0:
domelementtype "^2.2.0"
domhandler "^4.2.0"
domutils@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c"
integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==
dependencies:
dom-serializer "^2.0.0"
domelementtype "^2.3.0"
domhandler "^5.0.1"
dot-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
@@ -2704,6 +3055,11 @@ dot-case@^3.0.4:
no-case "^3.0.4"
tslib "^2.0.3"
dotenv@16.0.3:
version "16.0.3"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
download@^6.2.2:
version "6.2.5"
resolved "https://registry.yarnpkg.com/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714"
@@ -2744,6 +3100,13 @@ duplexer3@^0.1.4:
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
ecdsa-sig-formatter@1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
dependencies:
safe-buffer "^5.0.1"
edge-runtime@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/edge-runtime/-/edge-runtime-2.0.0.tgz#4739e1c8f4237db8ad8a16db5f0e28cc6de16aab"
@@ -2822,6 +3185,11 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==
entities@^4.2.0, entities@^4.3.0, entities@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
envinfo@^7.7.3:
version "7.7.3"
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc"
@@ -3310,6 +3678,11 @@ from2@^2.1.1:
inherits "^2.0.1"
readable-stream "^2.0.0"
fromentries@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a"
integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
@@ -3602,6 +3975,16 @@ htmlparser2@^6.1.0:
domutils "^2.5.2"
entities "^2.0.0"
htmlparser2@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010"
integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==
dependencies:
domelementtype "^2.3.0"
domhandler "^5.0.2"
domutils "^3.0.1"
entities "^4.3.0"
http-cache-semantics@3.8.1:
version "3.8.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
@@ -3706,6 +4089,11 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
indent-string@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -3856,6 +4244,11 @@ is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
is-plain-object@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
@@ -4376,6 +4769,33 @@ json5@^2.2.1:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
jsonwebtoken@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d"
integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==
dependencies:
jws "^3.2.2"
lodash "^4.17.21"
ms "^2.1.1"
semver "^7.3.8"
jwa@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
dependencies:
buffer-equal-constant-time "1.0.1"
ecdsa-sig-formatter "1.0.11"
safe-buffer "^5.0.1"
jws@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
dependencies:
jwa "^1.4.1"
safe-buffer "^5.0.1"
keyv@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
@@ -4709,7 +5129,7 @@ no-case@^3.0.4:
lower-case "^2.0.2"
tslib "^2.0.3"
node-fetch@2.6.7:
node-fetch@2.6.7, node-fetch@^2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
@@ -4828,6 +5248,20 @@ obuf@^1.0.0, obuf@^1.1.2:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
octokit@2.0.11:
version "2.0.11"
resolved "https://registry.yarnpkg.com/octokit/-/octokit-2.0.11.tgz#4abc5ba0c790964ec097695abb03187345fdd869"
integrity sha512-Ivjapy5RXWvJfmZe0BvfMM2gnNi39rjheZV/s3SjICb7gfl83JWPDmBERe4f/l2czdRnj4NVIn4YO7Q737oLCg==
dependencies:
"@octokit/app" "^13.1.1"
"@octokit/core" "^4.0.4"
"@octokit/oauth-app" "^4.0.6"
"@octokit/plugin-paginate-rest" "^5.0.0"
"@octokit/plugin-rest-endpoint-methods" "^6.0.0"
"@octokit/plugin-retry" "^4.0.3"
"@octokit/plugin-throttling" "^4.0.1"
"@octokit/types" "^8.0.0"
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@@ -4999,11 +5433,26 @@ parse5-htmlparser2-tree-adapter@^6.0.1:
dependencies:
parse5 "^6.0.1"
parse5-htmlparser2-tree-adapter@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1"
integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==
dependencies:
domhandler "^5.0.2"
parse5 "^7.0.0"
parse5@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
parse5@^7.0.0:
version "7.1.2"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
dependencies:
entities "^4.4.0"
parseurl@~1.3.2, parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
@@ -5467,7 +5916,7 @@ semver@^7.3.4:
dependencies:
lru-cache "^6.0.0"
semver@^7.3.5:
semver@^7.3.5, semver@^7.3.8:
version "7.3.8"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
@@ -5848,6 +6297,18 @@ sucrase@3.28.0:
pirates "^4.0.1"
ts-interface-checker "^0.1.9"
sucrase@3.29.0:
version "3.29.0"
resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.29.0.tgz#3207c5bc1b980fdae1e539df3f8a8a518236da7d"
integrity sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==
dependencies:
commander "^4.0.0"
glob "7.1.6"
lines-and-columns "^1.1.6"
mz "^2.7.0"
pirates "^4.0.1"
ts-interface-checker "^0.1.9"
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -6159,6 +6620,19 @@ unbzip2-stream@^1.0.9:
buffer "^5.2.1"
through "^2.3.8"
universal-github-app-jwt@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz#d57cee49020662a95ca750a057e758a1a7190e6e"
integrity sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==
dependencies:
"@types/jsonwebtoken" "^9.0.0"
jsonwebtoken "^9.0.0"
universal-user-agent@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"