From 4de373fc13fea8fc18c7d016379ad5b909321b87 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Mon, 26 Aug 2024 00:56:30 +0900 Subject: [PATCH 01/18] feat: changed pull-request by graphql --- .gitignore | 1 + graphql.config.yml | 6 ++++ package.json | 1 + src/data-collection/collect-linked-pulls.ts | 35 ++++++++++++++++++++- src/issue-activity.ts | 11 ++++--- src/types/requests.ts | 30 ++++++++++++++++++ yarn.lock | 22 ++++++++++++- 7 files changed, 99 insertions(+), 7 deletions(-) create mode 100644 graphql.config.yml create mode 100644 src/types/requests.ts diff --git a/.gitignore b/.gitignore index dc806685..74814b90 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ static/dist .env junit.xml coverage +test-dashboard.md diff --git a/graphql.config.yml b/graphql.config.yml new file mode 100644 index 00000000..732662b9 --- /dev/null +++ b/graphql.config.yml @@ -0,0 +1,6 @@ +schema: + - https://api.github.com/graphql: + headers: + Authorization: Bearer ${GITHUB_TOKEN} +documents: src/* +projects: {} diff --git a/package.json b/package.json index 91ff64b3..44da5e64 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "dependencies": { "@actions/core": "1.10.1", "@actions/github": "6.0.0", + "@octokit/graphql-schema": "15.25.0", "@octokit/plugin-retry": "6.0.1", "@octokit/rest": "20.1.0", "@octokit/webhooks": "13.2.7", diff --git a/src/data-collection/collect-linked-pulls.ts b/src/data-collection/collect-linked-pulls.ts index 670b98e1..95b1029a 100644 --- a/src/data-collection/collect-linked-pulls.ts +++ b/src/data-collection/collect-linked-pulls.ts @@ -1,5 +1,38 @@ import { GitHubLinkEvent, isGitHubLinkEvent } from "../github-types"; -import { IssueParams, getAllTimelineEvents, parseGitHubUrl } from "../start"; +import { getAllTimelineEvents, IssueParams, parseGitHubUrl } from "../start"; +import { getOctokitInstance } from "../octokit"; +import { LINKED_PULL_REQUESTS } from "../types/requests"; +import { PullRequest, Repository, User } from "@octokit/graphql-schema"; + +type ClosedByPullRequestsReferences = { + node: Pick & { + author: Pick; + repository: Pick; + }; +}; + +type IssueWithClosedByPRs = { + repository: { + issue: { + closedByPullRequestsReferences: { + edges: ClosedByPullRequestsReferences[]; + }; + }; + }; +}; + +export async function collectLinkedMergedPulls2(issue: IssueParams) { + const octokit = getOctokitInstance(); + const { owner, repo, issue_number } = issue; + + const result = await octokit.graphql(LINKED_PULL_REQUESTS, { + owner, + repo, + issue_number, + }); + + return result.repository.issue.closedByPullRequestsReferences.edges.map((edge) => edge.node); +} export async function collectLinkedMergedPulls(issue: IssueParams) { // normally we should only use this one to calculate incentives, because this specifies that the pull requests are merged (accepted) diff --git a/src/issue-activity.ts b/src/issue-activity.ts index d8b3db77..77d0fd2d 100644 --- a/src/issue-activity.ts +++ b/src/issue-activity.ts @@ -1,7 +1,7 @@ import { CommentAssociation, CommentKind } from "./configuration/comment-types"; import configuration from "./configuration/config-reader"; import { DataCollectionConfiguration } from "./configuration/data-collection-config"; -import { collectLinkedMergedPulls } from "./data-collection/collect-linked-pulls"; +import { collectLinkedMergedPulls2 } from "./data-collection/collect-linked-pulls"; import { GitHubIssue, GitHubIssueComment, @@ -46,19 +46,20 @@ export class IssueActivity { } private async _getLinkedReviews(): Promise { - const pulls = await collectLinkedMergedPulls(this._issueParams); + const pulls = await collectLinkedMergedPulls2(this._issueParams); + logger.debug("Collected linked pull-requests", { pulls }); const promises = pulls .map(async (pull) => { - const repository = pull.source.issue.repository; + const repository = pull.repository; if (!repository) { - console.error(`No repository found for [${pull.source.issue.repository}]`); + logger.error(`No repository found for`, { ...pull.repository }); return null; } else { const pullParams = { owner: repository.owner.login, repo: repository.name, - pull_number: pull.source.issue.number, + pull_number: pull.number, }; const review = new Review(pullParams); await review.init(); diff --git a/src/types/requests.ts b/src/types/requests.ts new file mode 100644 index 00000000..0ed9eda0 --- /dev/null +++ b/src/types/requests.ts @@ -0,0 +1,30 @@ +export const LINKED_PULL_REQUESTS = /* GraphQL */ ` + query collectLinkedPullRequests($owner: String!, $repo: String!, $issue_number: Int!) { + repository(owner: $owner, name: $repo) { + issue(number: $issue_number) { + id + closedByPullRequestsReferences(first: 100, includeClosedPrs: true) { + edges { + node { + id + title + number + author { + login + ... on User { + id: databaseId + } + } + repository { + owner { + login + } + name + } + } + } + } + } + } + } +`; diff --git a/yarn.lock b/yarn.lock index 0dea73a1..10234726 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2606,6 +2606,14 @@ "@octokit/types" "^13.1.0" universal-user-agent "^6.0.0" +"@octokit/graphql-schema@15.25.0": + version "15.25.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql-schema/-/graphql-schema-15.25.0.tgz#30bb8ecc494c249650991b33f2f0d9332dbe87e9" + integrity sha512-aqz9WECtdxVWSqgKroUu9uu+CRt5KnfErWs0dBPKlTdrreAeWzS5NRu22ZVcGdPP7s3XDg2Gnf5iyoZPCRZWmQ== + dependencies: + graphql "^16.0.0" + graphql-tag "^2.10.3" + "@octokit/graphql@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.0.tgz#9bc1c5de92f026648131f04101cab949eeffe4e0" @@ -5330,7 +5338,14 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -graphql@^16.8.1: +graphql-tag@^2.10.3: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql@^16.0.0, graphql@^16.8.1: version "16.9.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== @@ -8350,6 +8365,11 @@ tslib@2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@^2.1.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + tsx@4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.1.tgz#27af6cbf4e1cdfcb9b5425b1c61bb7e668eb5e84" From ff382a145f58b55624d52aa219691dc102d9041f Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Mon, 26 Aug 2024 01:10:27 +0900 Subject: [PATCH 02/18] chore: test less items query --- src/issue-activity.ts | 1 + src/types/requests.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/issue-activity.ts b/src/issue-activity.ts index 77d0fd2d..510e6d81 100644 --- a/src/issue-activity.ts +++ b/src/issue-activity.ts @@ -46,6 +46,7 @@ export class IssueActivity { } private async _getLinkedReviews(): Promise { + logger.debug("Trying to fetch linked pull-requests for", this._issueParams); const pulls = await collectLinkedMergedPulls2(this._issueParams); logger.debug("Collected linked pull-requests", { pulls }); const promises = pulls diff --git a/src/types/requests.ts b/src/types/requests.ts index 0ed9eda0..fbc1e152 100644 --- a/src/types/requests.ts +++ b/src/types/requests.ts @@ -3,7 +3,7 @@ export const LINKED_PULL_REQUESTS = /* GraphQL */ ` repository(owner: $owner, name: $repo) { issue(number: $issue_number) { id - closedByPullRequestsReferences(first: 100, includeClosedPrs: true) { + closedByPullRequestsReferences(first: 10, includeClosedPrs: true) { edges { node { id From 1a2553bf2bf9034c1ecb1d0360bdb8a55bdfb8eb Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Mon, 26 Aug 2024 01:27:24 +0900 Subject: [PATCH 03/18] chore: remove openai call for testing --- src/parser/content-evaluator-module.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/parser/content-evaluator-module.ts b/src/parser/content-evaluator-module.ts index 614049d4..6adf956a 100644 --- a/src/parser/content-evaluator-module.ts +++ b/src/parser/content-evaluator-module.ts @@ -132,6 +132,15 @@ export class ContentEvaluatorModule implements Module { specification: string, comments: { id: number; comment: string }[] ): Promise { + return Promise.resolve( + (() => { + const relevance: { [k: string]: number } = {}; + comments.forEach((comment) => { + relevance[`${comment.id}`] = 0.8; + }); + return relevance; + })() + ); const prompt = this._generatePrompt(specification, comments); const dummyResponse = JSON.stringify(this._generateDummyResponse(comments), null, 2); const maxTokens = this._calculateMaxTokens(dummyResponse); From 6dc37c338da7f03046b5244ce66da1f9039a4d16 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Mon, 26 Aug 2024 01:55:42 +0900 Subject: [PATCH 04/18] chore: added gql pagination --- package.json | 1 + src/data-collection/collect-linked-pulls.ts | 2 +- src/octokit.ts | 7 ++++--- src/types/requests.ts | 8 ++++++-- yarn.lock | 5 +++++ 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 44da5e64..a8d2b50b 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@actions/core": "1.10.1", "@actions/github": "6.0.0", "@octokit/graphql-schema": "15.25.0", + "@octokit/plugin-paginate-graphql": "5.2.2", "@octokit/plugin-retry": "6.0.1", "@octokit/rest": "20.1.0", "@octokit/webhooks": "13.2.7", diff --git a/src/data-collection/collect-linked-pulls.ts b/src/data-collection/collect-linked-pulls.ts index 95b1029a..222d1799 100644 --- a/src/data-collection/collect-linked-pulls.ts +++ b/src/data-collection/collect-linked-pulls.ts @@ -25,7 +25,7 @@ export async function collectLinkedMergedPulls2(issue: IssueParams) { const octokit = getOctokitInstance(); const { owner, repo, issue_number } = issue; - const result = await octokit.graphql(LINKED_PULL_REQUESTS, { + const result = await octokit.graphql.paginate(LINKED_PULL_REQUESTS, { owner, repo, issue_number, diff --git a/src/octokit.ts b/src/octokit.ts index 0c3d7791..7bad219e 100644 --- a/src/octokit.ts +++ b/src/octokit.ts @@ -2,12 +2,13 @@ import { Octokit } from "@octokit/rest"; import { retry } from "@octokit/plugin-retry"; import program from "./parser/command-line"; import configuration from "./configuration/config-reader"; +import { paginateGraphQL, paginateGraphQLInterface } from "@octokit/plugin-paginate-graphql"; -const customOctokit = Octokit.plugin(retry); +const customOctokit = Octokit.plugin(retry, paginateGraphQL); -let octokitInstance: Octokit | null = null; +let octokitInstance: (Octokit & paginateGraphQLInterface) | null = null; -function getOctokitInstance(): Octokit { +function getOctokitInstance() { if (!octokitInstance) { octokitInstance = new customOctokit({ auth: program.authToken, diff --git a/src/types/requests.ts b/src/types/requests.ts index fbc1e152..88cdc61c 100644 --- a/src/types/requests.ts +++ b/src/types/requests.ts @@ -1,9 +1,9 @@ export const LINKED_PULL_REQUESTS = /* GraphQL */ ` - query collectLinkedPullRequests($owner: String!, $repo: String!, $issue_number: Int!) { + query collectLinkedPullRequests($owner: String!, $repo: String!, $issue_number: Int!, $cursor: String) { repository(owner: $owner, name: $repo) { issue(number: $issue_number) { id - closedByPullRequestsReferences(first: 10, includeClosedPrs: true) { + closedByPullRequestsReferences(first: 10, includeClosedPrs: true, after: $cursor) { edges { node { id @@ -23,6 +23,10 @@ export const LINKED_PULL_REQUESTS = /* GraphQL */ ` } } } + pageInfo { + hasNextPage + endCursor + } } } } diff --git a/yarn.lock b/yarn.lock index 10234726..b04cadb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2638,6 +2638,11 @@ resolved "https://registry.yarnpkg.com/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-8.2.1.tgz#08b974f1e83a75c4d3ce23f798c7667b433bf4cd" integrity sha512-msAU1oTSm0ZmvAE0xDemuF4tVs5i0xNnNGtNmr4EuATi+1Rn8cZDetj6NXioSf5LwnxEc209COa/WOSbjuhLUA== +"@octokit/plugin-paginate-graphql@5.2.2": + version "5.2.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-5.2.2.tgz#54e2afef55bb204eb945a891b85a169b9ddad1f8" + integrity sha512-7znSVvlNAOJisCqAnjN1FtEziweOHSjPGAuc5W58NeGNAr/ZB57yCsjQbXDlWsVryA7hHQaEQPcBbJYFawlkyg== + "@octokit/plugin-paginate-rest@11.3.1": version "11.3.1" resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz#fe92d04b49f134165d6fbb716e765c2f313ad364" From 591f4528a310b2e0f69d0d6783c795e1fc5a9df8 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Mon, 26 Aug 2024 02:00:16 +0900 Subject: [PATCH 05/18] chore: removed comment evaluation dummy --- src/parser/content-evaluator-module.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/parser/content-evaluator-module.ts b/src/parser/content-evaluator-module.ts index 6adf956a..614049d4 100644 --- a/src/parser/content-evaluator-module.ts +++ b/src/parser/content-evaluator-module.ts @@ -132,15 +132,6 @@ export class ContentEvaluatorModule implements Module { specification: string, comments: { id: number; comment: string }[] ): Promise { - return Promise.resolve( - (() => { - const relevance: { [k: string]: number } = {}; - comments.forEach((comment) => { - relevance[`${comment.id}`] = 0.8; - }); - return relevance; - })() - ); const prompt = this._generatePrompt(specification, comments); const dummyResponse = JSON.stringify(this._generateDummyResponse(comments), null, 2); const maxTokens = this._calculateMaxTokens(dummyResponse); From 1c41c93ef42f279ef508c0bec5af88780c235ae3 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Mon, 26 Aug 2024 02:02:09 +0900 Subject: [PATCH 06/18] chore: removed closed PRs --- src/types/requests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/requests.ts b/src/types/requests.ts index 88cdc61c..eab21bff 100644 --- a/src/types/requests.ts +++ b/src/types/requests.ts @@ -3,7 +3,7 @@ export const LINKED_PULL_REQUESTS = /* GraphQL */ ` repository(owner: $owner, name: $repo) { issue(number: $issue_number) { id - closedByPullRequestsReferences(first: 10, includeClosedPrs: true, after: $cursor) { + closedByPullRequestsReferences(first: 10, includeClosedPrs: false, after: $cursor) { edges { node { id From 16904182b872aead6746ad72a0d0ed65431fdb99 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Mon, 26 Aug 2024 02:06:24 +0900 Subject: [PATCH 07/18] chore: removed unused code --- src/data-collection/collect-linked-pulls.ts | 80 +-------------------- src/issue-activity.ts | 4 +- 2 files changed, 4 insertions(+), 80 deletions(-) diff --git a/src/data-collection/collect-linked-pulls.ts b/src/data-collection/collect-linked-pulls.ts index 222d1799..e8e6f8c8 100644 --- a/src/data-collection/collect-linked-pulls.ts +++ b/src/data-collection/collect-linked-pulls.ts @@ -1,5 +1,4 @@ -import { GitHubLinkEvent, isGitHubLinkEvent } from "../github-types"; -import { getAllTimelineEvents, IssueParams, parseGitHubUrl } from "../start"; +import { IssueParams } from "../start"; import { getOctokitInstance } from "../octokit"; import { LINKED_PULL_REQUESTS } from "../types/requests"; import { PullRequest, Repository, User } from "@octokit/graphql-schema"; @@ -21,7 +20,7 @@ type IssueWithClosedByPRs = { }; }; -export async function collectLinkedMergedPulls2(issue: IssueParams) { +export async function collectLinkedMergedPulls(issue: IssueParams) { const octokit = getOctokitInstance(); const { owner, repo, issue_number } = issue; @@ -33,78 +32,3 @@ export async function collectLinkedMergedPulls2(issue: IssueParams) { return result.repository.issue.closedByPullRequestsReferences.edges.map((edge) => edge.node); } - -export async function collectLinkedMergedPulls(issue: IssueParams) { - // normally we should only use this one to calculate incentives, because this specifies that the pull requests are merged (accepted) - // and that are also related to the current issue, no just mentioned by - const onlyPullRequests = await collectLinkedPulls(issue); - return onlyPullRequests.filter((event) => { - if (!event.source.issue.body) { - return false; - } - // Matches all keywords according to the docs: - // https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword - // Works on multiple linked issues, and matches # or URL patterns - const linkedIssueRegex = - /\b(?:Close(?:s|d)?|Fix(?:es|ed)?|Resolve(?:s|d)?):?\s+(?:#(\d+)|https?:\/\/(?:www\.)?github\.com\/(?:[^/\s]+\/[^/\s]+\/(?:issues|pull)\/(\d+)))\b/gi; - // We remove the comments as they should not be part of the linked pull requests - const linkedPrUrls = event.source.issue.body.replace(//, "").match(linkedIssueRegex); - if (!linkedPrUrls) { - return false; - } - let isClosingPr = false; - for (const linkedPrUrl of linkedPrUrls) { - const idx = linkedPrUrl.indexOf("#"); - if (idx !== -1) { - isClosingPr = Number(linkedPrUrl.slice(idx + 1)) === issue.issue_number; - } else { - const url = linkedPrUrl.match(/https.+/)?.[0]; - if (url) { - const linkedRepo = parseGitHubUrl(url); - isClosingPr = - linkedRepo.issue_number === issue.issue_number && - linkedRepo.repo === issue.repo && - linkedRepo.owner === issue.owner; - } - } - if (isClosingPr) break; - } - return isGitHubLinkEvent(event) && event.source.issue.pull_request?.merged_at && isClosingPr; - }); -} -export async function collectLinkedPulls(issue: IssueParams) { - // this one was created to help with tests, but probably should not be used in the main code - const issueLinkEvents = await getLinkedEvents(issue); - const onlyConnected = eliminateDisconnects(issueLinkEvents); - return onlyConnected.filter((event) => isGitHubLinkEvent(event) && event.source.issue.pull_request); -} - -function eliminateDisconnects(issueLinkEvents: GitHubLinkEvent[]) { - // Track connections and disconnections - const connections = new Map(); // Use issue/pr number as key for easy access - const disconnections = new Map(); // Track disconnections - - issueLinkEvents.forEach((issueEvent: GitHubLinkEvent) => { - const issueNumber = issueEvent.source.issue.number as number; - - if (issueEvent.event === "connected" || issueEvent.event === "cross-referenced") { - // Only add to connections if there is no corresponding disconnected event - if (!disconnections.has(issueNumber)) { - connections.set(issueNumber, issueEvent); - } - } else if (issueEvent.event === "disconnected") { - disconnections.set(issueNumber, issueEvent); - // If a disconnected event is found, remove the corresponding connected event - if (connections.has(issueNumber)) { - connections.delete(issueNumber); - } - } - }); - - return Array.from(connections.values()); -} - -async function getLinkedEvents(params: IssueParams): Promise { - const issueEvents = await getAllTimelineEvents(params); - return issueEvents.filter(isGitHubLinkEvent); -} diff --git a/src/issue-activity.ts b/src/issue-activity.ts index 510e6d81..3e2ec213 100644 --- a/src/issue-activity.ts +++ b/src/issue-activity.ts @@ -1,7 +1,7 @@ import { CommentAssociation, CommentKind } from "./configuration/comment-types"; import configuration from "./configuration/config-reader"; import { DataCollectionConfiguration } from "./configuration/data-collection-config"; -import { collectLinkedMergedPulls2 } from "./data-collection/collect-linked-pulls"; +import { collectLinkedMergedPulls } from "./data-collection/collect-linked-pulls"; import { GitHubIssue, GitHubIssueComment, @@ -47,7 +47,7 @@ export class IssueActivity { private async _getLinkedReviews(): Promise { logger.debug("Trying to fetch linked pull-requests for", this._issueParams); - const pulls = await collectLinkedMergedPulls2(this._issueParams); + const pulls = await collectLinkedMergedPulls(this._issueParams); logger.debug("Collected linked pull-requests", { pulls }); const promises = pulls .map(async (pull) => { From 06220db8f46c44794e4a121e1d6e52ade40d14ce Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Mon, 26 Aug 2024 02:09:58 +0900 Subject: [PATCH 08/18] chore: fixed knip --- src/github-types.ts | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/src/github-types.ts b/src/github-types.ts index 69fcbd65..58d15799 100644 --- a/src/github-types.ts +++ b/src/github-types.ts @@ -3,8 +3,6 @@ import { RestEndpointMethodTypes } from "@octokit/rest"; export type GitHubIssue = RestEndpointMethodTypes["issues"]["get"]["response"]["data"]; export type GitHubPullRequest = RestEndpointMethodTypes["pulls"]["get"]["response"]["data"]; export type GitHubIssueComment = RestEndpointMethodTypes["issues"]["listComments"]["response"]["data"][0]; -// eslint-disable-next-line @typescript-eslint/no-unused-vars -type GitHubLabel = RestEndpointMethodTypes["issues"]["listLabelsOnIssue"]["response"]["data"][0]; export type GitHubIssueEvent = RestEndpointMethodTypes["issues"]["listEvents"]["response"]["data"][0]; export type GitHubTimelineEvent = RestEndpointMethodTypes["issues"]["listEventsForTimeline"]["response"]["data"][0]; export type GitHubRepository = RestEndpointMethodTypes["repos"]["get"]["response"]["data"]; @@ -12,23 +10,3 @@ export type GitHubUser = RestEndpointMethodTypes["users"]["getByUsername"]["resp export type GitHubPullRequestReviewState = RestEndpointMethodTypes["pulls"]["listReviews"]["response"]["data"][0]; export type GitHubPullRequestReviewComment = RestEndpointMethodTypes["pulls"]["listReviewComments"]["response"]["data"][0]; - -type LinkPullRequestDetail = { - url: "https://api.github.com/repos/ubiquibot/comment-incentives/pulls/25"; - html_url: "https://github.com/ubiquibot/comment-incentives/pull/25"; - diff_url: "https://github.com/ubiquibot/comment-incentives/pull/25.diff"; - patch_url: "https://github.com/ubiquibot/comment-incentives/pull/25.patch"; - merged_at: "2024-02-16T19:22:01Z"; -}; - -type SourceIssueWithPullRequest = - | GitHubIssue - | ((GitHubPullRequest & { pull_request: LinkPullRequestDetail }) & { repository: GitHubRepository }); - -export type GitHubLinkEvent = RestEndpointMethodTypes["issues"]["listEventsForTimeline"]["response"]["data"][0] & { - event: "connected" | "disconnected" | "cross-referenced"; - source: { issue: SourceIssueWithPullRequest }; -}; -export function isGitHubLinkEvent(event: GitHubTimelineEvent): event is GitHubLinkEvent { - return "source" in event; -} From 59924d5138e90f98719aca537684a9549eb463ee Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 13:03:32 +0900 Subject: [PATCH 09/18] chore: test fix (WIP) --- jest.config.ts | 1 + package.json | 2 +- src/data-collection/collect-linked-pulls.ts | 42 +- src/github-types.ts | 20 + src/types/requests.ts | 1 + tests/collect-linked-pulls.test.ts | 161 ------- tests/parser/permit-generation-module.test.ts | 2 + yarn.lock | 426 ++++++++++++------ 8 files changed, 349 insertions(+), 306 deletions(-) delete mode 100644 tests/collect-linked-pulls.test.ts diff --git a/jest.config.ts b/jest.config.ts index dd1e97b7..f5e03491 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -11,6 +11,7 @@ const cfg: Config = { reporters: ["default", "jest-junit", "jest-md-dashboard"], coverageDirectory: "coverage", testTimeout: 10000, + roots: ["", "tests"], }; export default cfg; diff --git a/package.json b/package.json index a8d2b50b..66b8801a 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@octokit/webhooks": "13.2.7", "@sinclair/typebox": "0.32.23", "@supabase/supabase-js": "2.42.0", - "@ubiquibot/permit-generation": "1.3.1", + "@ubiquibot/permit-generation": "1.4.1", "@ubiquity-dao/rpc-handler": "1.2.3", "@ubiquity-dao/ubiquibot-logger": "1.3.0", "decimal.js": "10.4.3", diff --git a/src/data-collection/collect-linked-pulls.ts b/src/data-collection/collect-linked-pulls.ts index e8e6f8c8..6509467a 100644 --- a/src/data-collection/collect-linked-pulls.ts +++ b/src/data-collection/collect-linked-pulls.ts @@ -1,7 +1,8 @@ -import { IssueParams } from "../start"; +import { PullRequest, Repository, User } from "@octokit/graphql-schema"; +import { GitHubLinkEvent, isGitHubLinkEvent } from "../github-types"; import { getOctokitInstance } from "../octokit"; +import { getAllTimelineEvents, IssueParams } from "../start"; import { LINKED_PULL_REQUESTS } from "../types/requests"; -import { PullRequest, Repository, User } from "@octokit/graphql-schema"; type ClosedByPullRequestsReferences = { node: Pick & { @@ -32,3 +33,40 @@ export async function collectLinkedMergedPulls(issue: IssueParams) { return result.repository.issue.closedByPullRequestsReferences.edges.map((edge) => edge.node); } + +export async function collectLinkedPulls(issue: IssueParams) { + // this one was created to help with tests, but probably should not be used in the main code + const issueLinkEvents = await getLinkedEvents(issue); + const onlyConnected = eliminateDisconnects(issueLinkEvents); + return onlyConnected.filter((event) => isGitHubLinkEvent(event) && event.source.issue.pull_request); +} + +function eliminateDisconnects(issueLinkEvents: GitHubLinkEvent[]) { + // Track connections and disconnections + const connections = new Map(); // Use issue/pr number as key for easy access + const disconnections = new Map(); // Track disconnections + + issueLinkEvents.forEach((issueEvent: GitHubLinkEvent) => { + const issueNumber = issueEvent.source.issue.number as number; + + if (issueEvent.event === "connected" || issueEvent.event === "cross-referenced") { + // Only add to connections if there is no corresponding disconnected event + if (!disconnections.has(issueNumber)) { + connections.set(issueNumber, issueEvent); + } + } else if (issueEvent.event === "disconnected") { + disconnections.set(issueNumber, issueEvent); + // If a disconnected event is found, remove the corresponding connected event + if (connections.has(issueNumber)) { + connections.delete(issueNumber); + } + } + }); + + return Array.from(connections.values()); +} + +async function getLinkedEvents(params: IssueParams): Promise { + const issueEvents = await getAllTimelineEvents(params); + return issueEvents.filter(isGitHubLinkEvent); +} diff --git a/src/github-types.ts b/src/github-types.ts index 58d15799..6d424a8f 100644 --- a/src/github-types.ts +++ b/src/github-types.ts @@ -10,3 +10,23 @@ export type GitHubUser = RestEndpointMethodTypes["users"]["getByUsername"]["resp export type GitHubPullRequestReviewState = RestEndpointMethodTypes["pulls"]["listReviews"]["response"]["data"][0]; export type GitHubPullRequestReviewComment = RestEndpointMethodTypes["pulls"]["listReviewComments"]["response"]["data"][0]; + +type LinkPullRequestDetail = { + url: "https://api.github.com/repos/ubiquibot/comment-incentives/pulls/25"; + html_url: "https://github.com/ubiquibot/comment-incentives/pull/25"; + diff_url: "https://github.com/ubiquibot/comment-incentives/pull/25.diff"; + patch_url: "https://github.com/ubiquibot/comment-incentives/pull/25.patch"; + merged_at: "2024-02-16T19:22:01Z"; +}; + +type SourceIssueWithPullRequest = + | GitHubIssue + | ((GitHubPullRequest & { pull_request: LinkPullRequestDetail }) & { repository: GitHubRepository }); + +export type GitHubLinkEvent = RestEndpointMethodTypes["issues"]["listEventsForTimeline"]["response"]["data"][0] & { + event: "connected" | "disconnected" | "cross-referenced"; + source: { issue: SourceIssueWithPullRequest }; +}; +export function isGitHubLinkEvent(event: GitHubTimelineEvent): event is GitHubLinkEvent { + return "source" in event; +} diff --git a/src/types/requests.ts b/src/types/requests.ts index eab21bff..a209a45d 100644 --- a/src/types/requests.ts +++ b/src/types/requests.ts @@ -9,6 +9,7 @@ export const LINKED_PULL_REQUESTS = /* GraphQL */ ` id title number + url author { login ... on User { diff --git a/tests/collect-linked-pulls.test.ts b/tests/collect-linked-pulls.test.ts deleted file mode 100644 index c34d10fd..00000000 --- a/tests/collect-linked-pulls.test.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { IssueParams, parseGitHubUrl } from "../src/start"; - -import ISSUE_CROSS_REPO_LINK from "../src/data-collection/fixtures/issue-89.json"; // pr188 is linked to this issue -import ISSUE_SAME_REPO_LINK from "../src/data-collection/fixtures/issue-90.json"; // pr91 is linked to this issue -import ISSUE_NO_LINK from "../src/data-collection/fixtures/issue-92.json"; // no link - -import { collectLinkedMergedPulls, collectLinkedPulls } from "../src/data-collection/collect-linked-pulls"; -import PR_CROSS_REPO_LINK from "../src/data-collection/fixtures/pr-188.json"; -import PR_SAME_REPO_LINK from "../src/data-collection/fixtures/pr-91.json"; - -const PARAMS_ISSUE_CROSS_REPO_LINK: IssueParams = parseGitHubUrl(ISSUE_CROSS_REPO_LINK.html_url); // cross repo link -const PARAMS_ISSUE_SAME_REPO_LINK: IssueParams = parseGitHubUrl(ISSUE_SAME_REPO_LINK.html_url); // same repo link -const PARAMS_ISSUE_NO_LINK: IssueParams = parseGitHubUrl(ISSUE_NO_LINK.html_url); // no link -// const PARAMS_PR_CROSS_REPO_LINK: IssueParams = parseGitHubUrl(PR_CROSS_REPO_LINK.html_url); -// const PARAMS_PR_SAME_REPO_LINK: IssueParams = parseGitHubUrl(PR_SAME_REPO_LINK.html_url); - -jest.mock("../src/parser/command-line", () => { - // Require is needed because mock cannot access elements out of scope - // eslint-disable-next-line @typescript-eslint/no-var-requires - const cfg = require("./__mocks__/results/valid-configuration.json"); - // eslint-disable-next-line @typescript-eslint/no-var-requires - const dotenv = require("dotenv"); - dotenv.config(); - return { - stateId: 1, - eventName: "issues.closed", - authToken: process.env.GITHUB_TOKEN, - ref: "", - eventPayload: JSON.stringify(cfg), - }; -}); - -describe("Artificial scenarios for linking pull requests to issues", () => { - it("should return an empty array when the issue does not have any associated link events", async () => { - const result = await collectLinkedMergedPulls(PARAMS_ISSUE_NO_LINK); - expect(result).toEqual([]); - }); - - it("should identify and return the merged, linked pull requests that originate from the same issue within the same repository", async () => { - const result = await collectLinkedMergedPulls(PARAMS_ISSUE_SAME_REPO_LINK); - const expectedUrl = PR_SAME_REPO_LINK.html_url; - const matchingLinks = result.filter((link) => link.source.issue.html_url === expectedUrl); - expect(matchingLinks.length).toBe(1); - }); - - it("should identify and return the merged, linked pull requests that originate from a specific issue, regardless of the repository they are located in within the organization", async () => { - const result = await collectLinkedMergedPulls(PARAMS_ISSUE_CROSS_REPO_LINK); - const expectedUrl = PR_CROSS_REPO_LINK.html_url; - const matchingLinks = result.filter((link) => link.source.issue.html_url === expectedUrl); - expect(matchingLinks.length).toBe(1); - }); -}); - -describe("Real-world scenarios for linking pull requests to issues", () => { - it("For the issue 'ubiquibot/comment-incentives/issues/22', the test should identify and return all the merged, linked pull requests that originate from this issue within the same repository 'ubiquibot/comment-incentives'", async () => { - const result = await collectLinkedMergedPulls( - parseGitHubUrl("https://github.com/ubiquibot/comment-incentives/issues/22") - ); - const expectedUrl = "https://github.com/ubiquibot/comment-incentives/pull/25"; - result.forEach((res) => expect(res.source.issue.html_url).toMatch(/\/pull\/\d+$/)); - const matchingLinks = result.filter((res) => res.source.issue.html_url === expectedUrl); - expect(matchingLinks.length).toBeGreaterThan(0); - }); - - it("For the issue 'ubiquity/pay.ubq.fi/issues/138', the test should identify and return all the linked pull requests that originate from this issue within the same repository 'ubiquity/pay.ubq.fi'", async () => { - const result = await collectLinkedPulls(parseGitHubUrl("https://github.com/ubiquity/pay.ubq.fi/issues/138")); - const expectedUrl = "https://github.com/ubiquity/pay.ubq.fi/pull/173"; - result.forEach((res) => expect(res.source.issue.html_url).toMatch(/\/pull\/\d+$/)); - const matchingLinks = result.filter((res) => res.source.issue.html_url === expectedUrl); - expect(matchingLinks.length).toBeGreaterThan(0); - }); - - it("For the issue 'ubiquibot/comment-incentives/issues/3', the test should identify and return all the merged, linked pull requests that originate from this issue within the same repository 'ubiquibot/comment-incentives'", async () => { - const result = await collectLinkedMergedPulls( - parseGitHubUrl("https://github.com/ubiquibot/comment-incentives/issues/3") - ); - const expectedUrl = "https://github.com/ubiquibot/comment-incentives/pull/4"; - result.forEach((res) => expect(res.source.issue.html_url).toMatch(/\/pull\/\d+$/)); - const matchingLinks = result.filter((res) => res.source.issue.html_url === expectedUrl); - expect(matchingLinks.length).toBeGreaterThan(0); - }); - - it("For the issue 'ubiquibot/comment-incentives/issues/15', the test should identify and return all the merged, linked pull requests that originate from this issue within the same repository 'ubiquibot/comment-incentives'", async () => { - const result = await collectLinkedMergedPulls( - parseGitHubUrl("https://github.com/ubiquibot/comment-incentives/issues/15") - ); - const expectedUrl = "https://github.com/ubiquibot/comment-incentives/pull/16"; - result.forEach((res) => expect(res.source.issue.html_url).toMatch(/\/pull\/\d+$/)); - const matchingLinks = result.filter((res) => res.source.issue.html_url === expectedUrl); - expect(matchingLinks.length).toBeGreaterThan(0); - }); - - it("For the issue 'ubiquibot/comment-incentives/issues/19', the test should identify and return all the merged, linked pull requests that originate from this issue within the same repository 'ubiquibot/comment-incentives'", async () => { - const result = await collectLinkedMergedPulls( - parseGitHubUrl("https://github.com/ubiquibot/comment-incentives/issues/19") - ); - const expectedUrls = [ - "https://github.com/ubiquibot/comment-incentives/pull/21", - "https://github.com/ubiquibot/comment-incentives/pull/23", - ]; - expectedUrls.forEach((url) => { - const matchingLinks = result.filter((res) => res.source.issue.html_url === url); - expect(matchingLinks.length).toBeGreaterThan(0); - }); - }); -}); - -// @DEV: no need to over-engineer. We only need to link the pull request from the issue, not the other way around. - -// it("should find the linked ISSUE, starting from the PULL REQUEST, in the SAME REPOSITORY", async () => { -// const result = await linkPulls(PARAMS_PR_SAME_REPO_LINK); - -// const expected = [{ issue: { node_id: ISSUE_SAME_REPO_LINK.node_id } }]; -// expect(result).toMatchObject(expected); -// }); - -// it("should find the linked ISSUE, starting from the PULL REQUEST, across ANY REPOSITORY (within the organization)", async () => { -// const result = await linkPulls(PARAMS_PR_CROSS_REPO_LINK); -// const expected = [{ issue: { node_id: ISSUE_CROSS_REPO_LINK.node_id } }]; -// expect(result).toMatchObject(expected); -// }); - -// describe("Collect activity from issue 'https://github.com/ubiquibot/production/issues/92'", () => { -// const ISSUE_92_URL = "https://github.com/ubiquibot/production/issues/92"; - -// // it("should collect all user activity from the issue and linked pull requests", async () => { -// // const issueParams = parseGitHubUrl("https://github.com/ubiquibot/production/issues/92"); -// // const issueEvents = await getIssueEvents(issueParams); -// // const userEvents = issueEvents.filter((event) => event.user?.type === "User" || event.actor?.type === "User"); -// // console.dir(userEvents, { depth: null , colors: true }); -// // }); - -// it("should collect the issue", async () => { -// const issueParams = parseGitHubUrl(ISSUE_92_URL); -// const issue = await getIssue(issueParams); -// console.dir(issue, { depth: null, colors: true }); -// }); - -// it("should collect the issue events", async () => { -// const issueParams = parseGitHubUrl(ISSUE_92_URL); -// const issueEvents = await getIssueEvents(issueParams); -// console.dir(issueEvents, { depth: null, colors: true }); -// }); - -// it("should collect the issue comments", async () => { -// const issueParams = parseGitHubUrl(ISSUE_92_URL); -// const issueComments = await getIssueComments(issueParams); -// console.dir(issueComments, { depth: null, colors: true }); -// }); -// }); - -// describe("Categorize users based on their contributions", () => { -// const ISSUE_92_URL = "https://github.com/ubiquibot/production/issues/92"; - -// it("should categorize users based on their contributions to the issue and linked pull requests", async () => { -// const issueParams = parseGitHubUrl(ISSUE_92_URL); -// const issueEvents = await getIssueEvents(issueParams); -// const userEvents = issueEvents.filter((event) => event.user?.type === "User" || event.actor?.type === "User"); -// console.dir(userEvents, { depth: null, colors: true }); -// }); -// }); diff --git a/tests/parser/permit-generation-module.test.ts b/tests/parser/permit-generation-module.test.ts index 283235bf..8fea339b 100644 --- a/tests/parser/permit-generation-module.test.ts +++ b/tests/parser/permit-generation-module.test.ts @@ -64,6 +64,7 @@ const resultOriginal: Result = { userId: 1, comments: [ { + id: 57, content: "comment 3", url: "https://github.com/user-org/test-repo/issues/57#issuecomment-2172704421", type: CommentKind.ISSUE, @@ -82,6 +83,7 @@ const resultOriginal: Result = { userId: 1, comments: [ { + id: 57, content: "comment 3", url: "https://github.com/user-org/test-repo/issues/57#issuecomment-2172704421", type: CommentKind.ISSUE, diff --git a/yarn.lock b/yarn.lock index b04cadb7..e474b051 100644 --- a/yarn.lock +++ b/yarn.lock @@ -49,7 +49,12 @@ "@babel/highlight" "^7.24.7" picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.7": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.25.2": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" + integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== + +"@babel/compat-data@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== @@ -96,7 +101,17 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6", "@babel/generator@^7.24.7", "@babel/generator@^7.7.2": +"@babel/generator@^7.23.6", "@babel/generator@^7.25.4": + version "7.25.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.5.tgz#b31cf05b3fe8c32d206b6dad03bb0aacbde73450" + integrity sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w== + dependencies: + "@babel/types" "^7.25.4" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/generator@^7.24.7", "@babel/generator@^7.7.2": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== @@ -121,7 +136,18 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6", "@babel/helper-compilation-targets@^7.24.7": +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" + integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-compilation-targets@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9" integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== @@ -132,25 +158,23 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz#2eaed36b3a1c11c53bdf80d53838b293c52f5b3b" - integrity sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg== +"@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14" + integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" "@babel/helper-optimise-call-expression" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/traverse" "^7.25.4" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz#be4f435a80dc2b053c76eeb4b7d16dd22cfc89da" - integrity sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" + integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" regexpu-core "^5.3.1" @@ -200,13 +224,13 @@ dependencies: "@babel/types" "^7.24.7" -"@babel/helper-member-expression-to-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz#67613d068615a70e4ed5101099affc7a41c5225f" - integrity sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w== +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.8" "@babel/helper-module-imports@^7.24.7": version "7.24.7" @@ -216,7 +240,17 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.7": +"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + +"@babel/helper-module-transforms@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8" integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== @@ -234,28 +268,33 @@ dependencies: "@babel/types" "^7.24.7" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0" integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== -"@babel/helper-remap-async-to-generator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz#b3f0f203628522713849d49403f1a414468be4c7" - integrity sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA== +"@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e" + integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-wrap-function" "^7.24.7" + "@babel/helper-wrap-function" "^7.25.0" + "@babel/traverse" "^7.25.0" -"@babel/helper-replace-supers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz#f933b7eed81a1c0265740edc91491ce51250f765" - integrity sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg== +"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" "@babel/helper-simple-access@^7.24.7": version "7.24.7" @@ -285,27 +324,44 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + "@babel/helper-validator-identifier@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== -"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5", "@babel/helper-validator-option@^7.24.7": +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5", "@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helper-validator-option@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6" integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== -"@babel/helper-wrap-function@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz#52d893af7e42edca7c6d2c6764549826336aae1f" - integrity sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw== +"@babel/helper-wrap-function@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" + integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== dependencies: - "@babel/helper-function-name" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/helpers@^7.23.9": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a" + integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" -"@babel/helpers@^7.23.9", "@babel/helpers@^7.24.7": +"@babel/helpers@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416" integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg== @@ -328,12 +384,19 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== +"@babel/parser@^7.25.0", "@babel/parser@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.4.tgz#af4f2df7d02440286b7de57b1c21acfb2a6f257a" + integrity sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA== + dependencies: + "@babel/types" "^7.25.4" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz#468096ca44bbcbe8fcc570574e12eb1950e18107" - integrity sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg== + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73" + integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": version "7.24.7" @@ -345,12 +408,12 @@ "@babel/plugin-transform-optional-chaining" "^7.24.7" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz#71b21bb0286d5810e63a1538aa901c58e87375ec" - integrity sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg== + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb" + integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -490,7 +553,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.24.7", "@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.24.7": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" + integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-syntax-typescript@^7.7.2": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== @@ -513,14 +583,14 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-async-generator-functions@^7.23.9": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz#7330a5c50e05181ca52351b8fd01642000c96cfd" - integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz#2afd4e639e2d055776c9f091b6c0c180ed8cf083" + integrity sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-remap-async-to-generator" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-remap-async-to-generator" "^7.25.0" "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/traverse" "^7.25.4" "@babel/plugin-transform-async-to-generator@^7.23.3": version "7.24.7" @@ -539,19 +609,19 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-block-scoping@^7.23.4": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz#42063e4deb850c7bd7c55e626bf4e7ab48e6ce02" - integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac" + integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-class-properties@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" - integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz#bae7dbfcdcc2e8667355cd1fb5eda298f05189fd" + integrity sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.4" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-class-static-block@^7.23.4": version "7.24.7" @@ -563,17 +633,15 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-transform-classes@^7.23.8": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz#4ae6ef43a12492134138c1e45913f7c46c41b4bf" - integrity sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz#d29dbb6a72d79f359952ad0b66d88518d65ef89a" + integrity sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/traverse" "^7.25.4" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.23.3": @@ -585,11 +653,11 @@ "@babel/template" "^7.24.7" "@babel/plugin-transform-destructuring@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz#a097f25292defb6e6cc16d6333a4cfc1e3c72d9e" - integrity sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw== + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550" + integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-dotall-regex@^7.23.3": version "7.24.7" @@ -639,13 +707,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" "@babel/plugin-transform-function-name@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz#6d8601fbffe665c894440ab4470bc721dd9131d6" - integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37" + integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA== dependencies: - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.1" "@babel/plugin-transform-json-strings@^7.23.4": version "7.24.7" @@ -656,11 +724,11 @@ "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-transform-literals@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz#36b505c1e655151a9d7607799a9988fc5467d06c" - integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ== + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3" + integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-logical-assignment-operators@^7.23.4": version "7.24.7" @@ -686,23 +754,23 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-modules-commonjs@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz#9fd5f7fdadee9085886b183f1ad13d1ab260f4ab" - integrity sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ== + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" + integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== dependencies: - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-simple-access" "^7.24.7" "@babel/plugin-transform-modules-systemjs@^7.23.9": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz#f8012316c5098f6e8dee6ecd58e2bc6f003d0ce7" - integrity sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw== + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33" + integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw== dependencies: - "@babel/helper-hoist-variables" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-module-transforms" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.0" "@babel/plugin-transform-modules-umd@^7.23.3": version "7.24.7" @@ -770,11 +838,11 @@ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-transform-optional-chaining@^7.23.4", "@babel/plugin-transform-optional-chaining@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz#b8f6848a80cf2da98a8a204429bec04756c6d454" - integrity sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ== + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" + integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" "@babel/plugin-syntax-optional-chaining" "^7.8.3" @@ -786,12 +854,12 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-private-methods@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" - integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz#9bbefbe3649f470d681997e0b64a4b254d877242" + integrity sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.4" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-private-property-in-object@^7.23.4": version "7.24.7" @@ -855,20 +923,21 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-typeof-symbol@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz#f074be466580d47d6e6b27473a840c9f9ca08fb0" - integrity sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg== + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c" + integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-typescript@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz#b006b3e0094bf0813d505e0c5485679eeaf4a881" - integrity sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw== + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add" + integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" "@babel/plugin-syntax-typescript" "^7.24.7" "@babel/plugin-transform-unicode-escapes@^7.23.3": @@ -895,12 +964,12 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-unicode-sets-regex@^7.23.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" - integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz#be664c2a0697ffacd3423595d5edef6049e8946c" + integrity sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/preset-env@7.23.9": version "7.23.9" @@ -1013,14 +1082,30 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.21.0": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.23.9", "@babel/template@^7.24.7", "@babel/template@^7.3.3": +"@babel/runtime@^7.8.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.4.tgz#6ef37d678428306e7d75f054d5b1bdb8cf8aa8ee" + integrity sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.23.9", "@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/template@^7.24.7", "@babel/template@^7.3.3": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== @@ -1029,7 +1114,20 @@ "@babel/parser" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/traverse@^7.23.9", "@babel/traverse@^7.24.7": +"@babel/traverse@^7.23.9", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.4.tgz#648678046990f2957407e3086e97044f13c3e18e" + integrity sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.4" + "@babel/parser" "^7.25.4" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.4" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/traverse@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== @@ -1045,7 +1143,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.23.9", "@babel/types@^7.24.7", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.3.3": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== @@ -1054,6 +1152,15 @@ "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" +"@babel/types@^7.23.9", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.4", "@babel/types@^7.4.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.4.tgz#6bcb46c72fdf1012a209d016c07f769e10adcb5f" + integrity sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -3321,10 +3428,10 @@ "@typescript-eslint/types" "6.21.0" eslint-visitor-keys "^3.4.1" -"@ubiquibot/permit-generation@1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@ubiquibot/permit-generation/-/permit-generation-1.3.1.tgz#d162fbd9e2f3f05a0000d7a3e154bcf4e4f9fd9e" - integrity sha512-iBopgqCeUXHRIsbGKqvmxdD01fzWBProYrWLpqZuhpStHo1PRt17CU4lPu98YkMC3ZfFslxxj/8SExroAx/+2g== +"@ubiquibot/permit-generation@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@ubiquibot/permit-generation/-/permit-generation-1.4.1.tgz#1492f2608e36bcd845cfb1574d20b044e5f25fc1" + integrity sha512-Ek9vw2Lsc+57rVh0bdA9fkwbE8dthqqQfyLV+sx6jCwUnqZvopKwJtDZuS2wL7Dkl1fIFodVxNo37biNu5gCpw== dependencies: "@actions/core" "^1.10.1" "@actions/github" "^6.0.0" @@ -3332,6 +3439,7 @@ "@octokit/webhooks" "^13.1.0" "@sinclair/typebox" "^0.32.5" "@supabase/supabase-js" "2.42.0" + "@ubiquity-dao/rpc-handler" "^1.1.0" "@uniswap/permit2-sdk" "^1.2.0" dotenv "^16.4.4" ethers "6.11.1" @@ -3346,6 +3454,15 @@ axios "^1.7.1" node-fetch "^3.3.2" +"@ubiquity-dao/rpc-handler@^1.1.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ubiquity-dao/rpc-handler/-/rpc-handler-1.3.0.tgz#d6d26dda525a572539e969353070562c4cc0237c" + integrity sha512-BoN3IENjJWaMHSk3tC2I48e0Bz8NbwmjymLQ9EamN3lMf9djTEdWbmD2baRr9pIZJ6Sh5HzgYdCN+i7I1lZbVw== + dependencies: + "@ethersproject/providers" "5.7.2" + axios "^1.7.1" + node-fetch "^3.3.2" + "@ubiquity-dao/ubiquibot-logger@1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@ubiquity-dao/ubiquibot-logger/-/ubiquibot-logger-1.3.0.tgz#b07364658be95b3be3876305c66b2adc906e9590" @@ -3778,7 +3895,7 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserslist@^4.22.2, browserslist@^4.23.0: +browserslist@^4.22.2: version "4.23.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== @@ -3788,6 +3905,16 @@ browserslist@^4.22.2, browserslist@^4.23.0: node-releases "^2.0.14" update-browserslist-db "^1.0.16" +browserslist@^4.23.1, browserslist@^4.23.3: + version "4.23.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== + dependencies: + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -3847,6 +3974,11 @@ caniuse-lite@^1.0.30001629: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz#32c467d4bf1f1a0faa63fc793c2ba81169e7652f" integrity sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA== +caniuse-lite@^1.0.30001646: + version "1.0.30001653" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz#b8af452f8f33b1c77f122780a4aecebea0caca56" + integrity sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw== + chalk-template@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" @@ -4093,11 +4225,11 @@ cookie@^0.5.0: integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-js-compat@^3.31.0, core-js-compat@^3.34.0: - version "3.37.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.1.tgz#c844310c7852f4bdf49b8d339730b97e17ff09ee" - integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" + integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.3" core-util-is@^1.0.3: version "1.0.3" @@ -4521,6 +4653,11 @@ electron-to-chromium@^1.4.796: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.819.tgz#b1bf73d71748a44c3b719cfe7b351d75268c9044" integrity sha512-8RwI6gKUokbHWcN3iRij/qpvf/wCbIVY5slODi85werwqUQwpFXM+dvUBND93Qh7SB0pW3Hlq3/wZsqQ3M9Jaw== +electron-to-chromium@^1.5.4: + version "1.5.13" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" + integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== + elliptic@6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -7027,6 +7164,11 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -8584,7 +8726,7 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -update-browserslist-db@^1.0.16: +update-browserslist-db@^1.0.16, update-browserslist-db@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== From 5ae0febb7a5c995375960140a7aebeeeaa5b9983 Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 13:37:55 +0900 Subject: [PATCH 10/18] chore: test fix (WIP) --- .../@octokit/plugin-paginate-graphql.js | 19 +++++++++ tests/rewards.test.ts | 41 ++++++++++++++++++- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 tests/__mocks__/@octokit/plugin-paginate-graphql.js diff --git a/tests/__mocks__/@octokit/plugin-paginate-graphql.js b/tests/__mocks__/@octokit/plugin-paginate-graphql.js new file mode 100644 index 00000000..f2b2980a --- /dev/null +++ b/tests/__mocks__/@octokit/plugin-paginate-graphql.js @@ -0,0 +1,19 @@ +module.exports = { + paginateGraphQL() { + return { + graphql: { + paginate(query, args) { + return { + repository: { + issue: { + closedByPullRequestsReferences: { + edges: [], + }, + }, + }, + }; + }, + }, + }; + }, +}; diff --git a/tests/rewards.test.ts b/tests/rewards.test.ts index 27e45aaf..da8fc1d2 100644 --- a/tests/rewards.test.ts +++ b/tests/rewards.test.ts @@ -41,6 +41,45 @@ jest.mock("@actions/github", () => ({ }, })); +jest.mock("@octokit/plugin-paginate-graphql", () => ({ + paginateGraphQL() { + return { + graphql: { + paginate() { + return { + repository: { + issue: { + closedByPullRequestsReferences: { + edges: [ + { + node: { + id: "PR_kwDOKzVPS85zXUoj", + title: "fix: add state to sorting manager for bottom and top", + number: 70, + url: "https://github.com/ubiquity/work.ubq.fi/pull/70", + author: { + login: "0x4007", + id: 4975670, + }, + repository: { + owner: { + login: "ubiquity", + }, + name: "work.ubq.fi", + }, + }, + }, + ], + }, + }, + }, + }; + }, + }, + }; + }, +})); + jest.mock("@ubiquibot/permit-generation/core", () => { const originalModule = jest.requireActual("@ubiquibot/permit-generation/core"); @@ -60,7 +99,7 @@ jest.mock("@ubiquibot/permit-generation/core", () => { }, }); if (!wallet) { - return Promise.resolve(null); + return Promise.resolve(`[mock] Could not find wallet for user ${userId}`); } return Promise.resolve(wallet.address); }), From 2cdb4274c9c528304078b3e3a534225b8b903228 Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 14:44:55 +0900 Subject: [PATCH 11/18] chore: test fix (WIP) --- package.json | 6 +- src/data-collection/collect-linked-pulls.ts | 40 +- src/github-types.ts | 20 - tests/process.issue.test.ts | 39 + yarn.lock | 758 +++++++++----------- 5 files changed, 364 insertions(+), 499 deletions(-) diff --git a/package.json b/package.json index 51b238e2..77695c0b 100644 --- a/package.json +++ b/package.json @@ -34,9 +34,9 @@ "@octokit/webhooks": "13.2.7", "@sinclair/typebox": "0.32.23", "@supabase/supabase-js": "2.42.0", - "@ubiquibot/permit-generation": "1.4.1", - "@ubiquity-dao/rpc-handler": "1.2.3", - "@ubiquity-dao/ubiquibot-logger": "1.3.0", + "@ubiquibot/permit-generation": "1.4.2", + "@ubiquity-dao/rpc-handler": "1.3.0", + "@ubiquity-dao/ubiquibot-logger": "1.3.1", "decimal.js": "10.4.3", "dotenv": "16.4.5", "ethers": "^6.13.0", diff --git a/src/data-collection/collect-linked-pulls.ts b/src/data-collection/collect-linked-pulls.ts index 6509467a..df0d4061 100644 --- a/src/data-collection/collect-linked-pulls.ts +++ b/src/data-collection/collect-linked-pulls.ts @@ -1,7 +1,6 @@ import { PullRequest, Repository, User } from "@octokit/graphql-schema"; -import { GitHubLinkEvent, isGitHubLinkEvent } from "../github-types"; import { getOctokitInstance } from "../octokit"; -import { getAllTimelineEvents, IssueParams } from "../start"; +import { IssueParams } from "../start"; import { LINKED_PULL_REQUESTS } from "../types/requests"; type ClosedByPullRequestsReferences = { @@ -33,40 +32,3 @@ export async function collectLinkedMergedPulls(issue: IssueParams) { return result.repository.issue.closedByPullRequestsReferences.edges.map((edge) => edge.node); } - -export async function collectLinkedPulls(issue: IssueParams) { - // this one was created to help with tests, but probably should not be used in the main code - const issueLinkEvents = await getLinkedEvents(issue); - const onlyConnected = eliminateDisconnects(issueLinkEvents); - return onlyConnected.filter((event) => isGitHubLinkEvent(event) && event.source.issue.pull_request); -} - -function eliminateDisconnects(issueLinkEvents: GitHubLinkEvent[]) { - // Track connections and disconnections - const connections = new Map(); // Use issue/pr number as key for easy access - const disconnections = new Map(); // Track disconnections - - issueLinkEvents.forEach((issueEvent: GitHubLinkEvent) => { - const issueNumber = issueEvent.source.issue.number as number; - - if (issueEvent.event === "connected" || issueEvent.event === "cross-referenced") { - // Only add to connections if there is no corresponding disconnected event - if (!disconnections.has(issueNumber)) { - connections.set(issueNumber, issueEvent); - } - } else if (issueEvent.event === "disconnected") { - disconnections.set(issueNumber, issueEvent); - // If a disconnected event is found, remove the corresponding connected event - if (connections.has(issueNumber)) { - connections.delete(issueNumber); - } - } - }); - - return Array.from(connections.values()); -} - -async function getLinkedEvents(params: IssueParams): Promise { - const issueEvents = await getAllTimelineEvents(params); - return issueEvents.filter(isGitHubLinkEvent); -} diff --git a/src/github-types.ts b/src/github-types.ts index 6d424a8f..58d15799 100644 --- a/src/github-types.ts +++ b/src/github-types.ts @@ -10,23 +10,3 @@ export type GitHubUser = RestEndpointMethodTypes["users"]["getByUsername"]["resp export type GitHubPullRequestReviewState = RestEndpointMethodTypes["pulls"]["listReviews"]["response"]["data"][0]; export type GitHubPullRequestReviewComment = RestEndpointMethodTypes["pulls"]["listReviewComments"]["response"]["data"][0]; - -type LinkPullRequestDetail = { - url: "https://api.github.com/repos/ubiquibot/comment-incentives/pulls/25"; - html_url: "https://github.com/ubiquibot/comment-incentives/pull/25"; - diff_url: "https://github.com/ubiquibot/comment-incentives/pull/25.diff"; - patch_url: "https://github.com/ubiquibot/comment-incentives/pull/25.patch"; - merged_at: "2024-02-16T19:22:01Z"; -}; - -type SourceIssueWithPullRequest = - | GitHubIssue - | ((GitHubPullRequest & { pull_request: LinkPullRequestDetail }) & { repository: GitHubRepository }); - -export type GitHubLinkEvent = RestEndpointMethodTypes["issues"]["listEventsForTimeline"]["response"]["data"][0] & { - event: "connected" | "disconnected" | "cross-referenced"; - source: { issue: SourceIssueWithPullRequest }; -}; -export function isGitHubLinkEvent(event: GitHubTimelineEvent): event is GitHubLinkEvent { - return "source" in event; -} diff --git a/tests/process.issue.test.ts b/tests/process.issue.test.ts index 69b452d5..f1aac0f0 100644 --- a/tests/process.issue.test.ts +++ b/tests/process.issue.test.ts @@ -126,6 +126,45 @@ jest.mock("@supabase/supabase-js", () => { }; }); +jest.mock("@octokit/plugin-paginate-graphql", () => ({ + paginateGraphQL() { + return { + graphql: { + paginate() { + return { + repository: { + issue: { + closedByPullRequestsReferences: { + edges: [ + { + node: { + id: "PR_kwDOK87YcM5nHc9o", + title: "chore: add new shared evmPrivateKeyEncrypted", + number: 25, + url: "https://github.com/ubiquibot/comment-incentives/pull/25", + author: { + login: "gitcoindev", + id: 88761781, + }, + repository: { + owner: { + login: "ubiquibot", + }, + name: "comment-incentives", + }, + }, + }, + ], + }, + }, + }, + }; + }, + }, + }; + }, +})); + beforeAll(() => server.listen()); afterEach(() => server.resetHandlers()); afterAll(() => server.close()); diff --git a/yarn.lock b/yarn.lock index ec4106ee..363d01af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,9 +21,9 @@ "@octokit/plugin-rest-endpoint-methods" "^10.0.0" "@actions/http-client@^2.0.1", "@actions/http-client@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.1.tgz#ed3fe7a5a6d317ac1d39886b0bb999ded229bb38" - integrity sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw== + version "2.2.3" + resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.3.tgz#31fc0b25c0e665754ed39a9f19a8611fc6dab674" + integrity sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA== dependencies: tunnel "^0.0.6" undici "^5.25.4" @@ -54,11 +54,6 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== -"@babel/compat-data@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" - integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== - "@babel/core@7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" @@ -81,27 +76,27 @@ semver "^6.3.1" "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" - integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" + integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helpers" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-module-transforms" "^7.25.2" + "@babel/helpers" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.2" + "@babel/types" "^7.25.2" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6", "@babel/generator@^7.25.4": +"@babel/generator@^7.23.6", "@babel/generator@^7.25.0", "@babel/generator@^7.25.4", "@babel/generator@^7.7.2": version "7.25.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.5.tgz#b31cf05b3fe8c32d206b6dad03bb0aacbde73450" integrity sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w== @@ -111,16 +106,6 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/generator@^7.24.7", "@babel/generator@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" - integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== - dependencies: - "@babel/types" "^7.24.7" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - "@babel/helper-annotate-as-pure@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" @@ -136,7 +121,7 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": version "7.25.2" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== @@ -147,17 +132,6 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-compilation-targets@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9" - integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== - dependencies: - "@babel/compat-data" "^7.24.7" - "@babel/helper-validator-option" "^7.24.7" - browserslist "^4.22.2" - lru-cache "^5.1.1" - semver "^6.3.1" - "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4": version "7.25.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14" @@ -202,28 +176,6 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" - integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== - dependencies: - "@babel/types" "^7.24.7" - -"@babel/helper-function-name@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" - integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== - dependencies: - "@babel/template" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-hoist-variables@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" - integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== - dependencies: - "@babel/types" "^7.24.7" - "@babel/helper-member-expression-to-functions@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" @@ -240,7 +192,7 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0": +"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2": version "7.25.2" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== @@ -250,17 +202,6 @@ "@babel/helper-validator-identifier" "^7.24.7" "@babel/traverse" "^7.25.2" -"@babel/helper-module-transforms@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8" - integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== - dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - "@babel/helper-optimise-call-expression@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" @@ -268,12 +209,7 @@ dependencies: "@babel/types" "^7.24.7" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0" - integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== - -"@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== @@ -312,18 +248,6 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-split-export-declaration@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" - integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== - dependencies: - "@babel/types" "^7.24.7" - -"@babel/helper-string-parser@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" - integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== - "@babel/helper-string-parser@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" @@ -339,11 +263,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== -"@babel/helper-validator-option@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6" - integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== - "@babel/helper-wrap-function@^7.25.0": version "7.25.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" @@ -353,7 +272,7 @@ "@babel/traverse" "^7.25.0" "@babel/types" "^7.25.0" -"@babel/helpers@^7.23.9": +"@babel/helpers@^7.23.9", "@babel/helpers@^7.25.0": version "7.25.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a" integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== @@ -361,14 +280,6 @@ "@babel/template" "^7.25.0" "@babel/types" "^7.25.0" -"@babel/helpers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416" - integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg== - dependencies: - "@babel/template" "^7.24.7" - "@babel/types" "^7.24.7" - "@babel/highlight@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" @@ -379,12 +290,7 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" - integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== - -"@babel/parser@^7.25.0", "@babel/parser@^7.25.4": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.4": version "7.25.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.4.tgz#af4f2df7d02440286b7de57b1c21acfb2a6f257a" integrity sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA== @@ -434,7 +340,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -469,14 +375,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-attributes@^7.23.3": +"@babel/plugin-syntax-import-attributes@^7.23.3", "@babel/plugin-syntax-import-attributes@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -497,7 +403,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -511,7 +417,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -546,27 +452,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.24.7": +"@babel/plugin-syntax-typescript@^7.24.7", "@babel/plugin-syntax-typescript@^7.7.2": version "7.25.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== dependencies: "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" - integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== - dependencies: - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" @@ -1082,21 +981,14 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.21.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" - integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.8.4": +"@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4": version "7.25.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.4.tgz#6ef37d678428306e7d75f054d5b1bdb8cf8aa8ee" integrity sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.23.9", "@babel/template@^7.25.0": +"@babel/template@^7.23.9", "@babel/template@^7.24.7", "@babel/template@^7.25.0", "@babel/template@^7.3.3": version "7.25.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== @@ -1105,16 +997,7 @@ "@babel/parser" "^7.25.0" "@babel/types" "^7.25.0" -"@babel/template@^7.24.7", "@babel/template@^7.3.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" - integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/traverse@^7.23.9", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.4": +"@babel/traverse@^7.23.9", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.4": version "7.25.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.4.tgz#648678046990f2957407e3086e97044f13c3e18e" integrity sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg== @@ -1127,32 +1010,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/traverse@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" - integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-hoist-variables" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/types" "^7.24.7" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.3.3": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" - integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== - dependencies: - "@babel/helper-string-parser" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.23.9", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.4", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.23.9", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.25.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.4.tgz#6bcb46c72fdf1012a209d016c07f769e10adcb5f" integrity sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ== @@ -1180,6 +1038,14 @@ dependencies: statuses "^2.0.1" +"@bundled-es-modules/tough-cookie@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz#fa9cd3cedfeecd6783e8b0d378b4a99e52bde5d3" + integrity sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw== + dependencies: + "@types/tough-cookie" "^4.0.5" + tough-cookie "^4.1.4" + "@commitlint/cli@18.6.1": version "18.6.1" resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-18.6.1.tgz#78bffdfa00d6f01425d53096954993d83f2b343d" @@ -1437,14 +1303,14 @@ integrity sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw== "@cspell/dict-companies@^3.0.29": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.1.2.tgz#b335fe5b8847a23673bc4b964ca584339ca669a2" - integrity sha512-OwR5i1xbYuJX7FtHQySmTy3iJtPV1rZQ3jFCxFGwrA1xRQ4rtRcDQ+sTXBCIAoJHkXa84f9J3zsngOKmMGyS/w== + version "3.1.4" + resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.1.4.tgz#2e7094416432b8547ec335683f5aac9a49dce47e" + integrity sha512-y9e0amzEK36EiiKx3VAA+SHQJPpf2Qv5cCt5eTUSggpTkiFkCh6gRKQ97rVlrKh5GJrqinDwYIJtTsxuh2vy2Q== "@cspell/dict-cpp@^5.0.10": - version "5.1.10" - resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-5.1.10.tgz#457881ad9425ea0af71e4c1f9b108677a555fe79" - integrity sha512-BmIF0sAz2BgGEOwzYIeEm9ALneDjd1tcTbFbo+A1Hcq3zOKP8yViSgxS9CEN30KOZIyph6Tldp531UPEpoEl0Q== + version "5.1.15" + resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-5.1.15.tgz#c65ebaa84ed4898c14b7ef6ea2506018b49a6470" + integrity sha512-5X8SouN/qIUrBTcDEevnKU6G3cRSm3Vm7dQEcjHaptIWp+/2YMknIfYbnhKeR1G9V/sbQaY4CVsVAKEaehY+7Q== "@cspell/dict-cryptocurrencies@^5.0.0": version "5.0.0" @@ -1457,9 +1323,9 @@ integrity sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g== "@cspell/dict-css@^4.0.12": - version "4.0.12" - resolved "https://registry.yarnpkg.com/@cspell/dict-css/-/dict-css-4.0.12.tgz#59abf3512ae729835c933c38f64a3d8a5f09ce3d" - integrity sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw== + version "4.0.13" + resolved "https://registry.yarnpkg.com/@cspell/dict-css/-/dict-css-4.0.13.tgz#b95310ba67694d25bcb055786dde65e091621d14" + integrity sha512-WfOQkqlAJTo8eIQeztaH0N0P+iF5hsJVKFuhy4jmARPISy8Efcv8QXk2/IVbmjJH0/ZV7dKRdnY5JFVXuVz37g== "@cspell/dict-dart@^2.0.3": version "2.0.3" @@ -1482,9 +1348,9 @@ integrity sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A== "@cspell/dict-dotnet@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@cspell/dict-dotnet/-/dict-dotnet-5.0.2.tgz#d89ca8fa2e546b5e1b1f1288746d26bb627d9f38" - integrity sha512-UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ== + version "5.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-dotnet/-/dict-dotnet-5.0.3.tgz#4d8c267f75eab5f4acee0695212aba3d6a26e2cd" + integrity sha512-q8+b8YWYv+9Q+AbU3mH/RHE9aovhCuGtMuNSsx+YnTofEhVQkJR3vdrYjhOBg3epIiZVUS83VP0vxPLPa+UTug== "@cspell/dict-elixir@^4.0.3": version "4.0.3" @@ -1492,9 +1358,9 @@ integrity sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q== "@cspell/dict-en-common-misspellings@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.3.tgz#705d7a271fbd35f9ee3ce5bd5ff0d38454a61927" - integrity sha512-8nF1z9nUiSgMyikL66HTbDO7jCGtB24TxKBasXIBwkBKMDZgA2M883iXdeByy6m1JJUcCGFkSftVYp2W0bUgjw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.4.tgz#725c5b2c83faff71fcd2183dd04a154c78eed674" + integrity sha512-lvOiRjV/FG4pAGZL3PN2GCVHSTCE92cwhfLGGkOsQtxSmef6WCHfHwp9auafkBlX0yFQSKDfq6/TlpQbjbJBtQ== "@cspell/dict-en-gb@1.1.33": version "1.1.33" @@ -1522,9 +1388,9 @@ integrity sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ== "@cspell/dict-fullstack@^3.1.5": - version "3.1.8" - resolved "https://registry.yarnpkg.com/@cspell/dict-fullstack/-/dict-fullstack-3.1.8.tgz#1bbfa0a165346f6eff9894cf965bf3ce26552797" - integrity sha512-YRlZupL7uqMCtEBK0bDP9BrcPnjDhz7m4GBqCc1EYqfXauHbLmDT8ELha7T/E7wsFKniHSjzwDZzhNXo2lusRQ== + version "3.2.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-fullstack/-/dict-fullstack-3.2.0.tgz#16dd2bd3f03166c8f48600ef032ae1ce184c7b8e" + integrity sha512-sIGQwU6G3rLTo+nx0GKyirR5dQSFeTIzFTOrURw51ISf+jKG9a3OmvsVtc2OANfvEAOLOC9Wfd8WYhmsO8KRDQ== "@cspell/dict-gaming-terms@^1.0.4": version "1.0.5" @@ -1537,9 +1403,9 @@ integrity sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw== "@cspell/dict-golang@^6.0.5": - version "6.0.9" - resolved "https://registry.yarnpkg.com/@cspell/dict-golang/-/dict-golang-6.0.9.tgz#b26ee13fb34a8cd40fb22380de8a46b25739fcab" - integrity sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg== + version "6.0.11" + resolved "https://registry.yarnpkg.com/@cspell/dict-golang/-/dict-golang-6.0.11.tgz#e28ed5d92af0d1aca0792a0323bb39cdf6d96134" + integrity sha512-BMFIDGh1HaFUe1cYBT1dotqyIQG2j3VkNntGQTBa/7i0aBnC5PBJDiAXnUeBHi0AVrz0hyAc7xtcK5KyKCEzwg== "@cspell/dict-haskell@^4.0.1": version "4.0.1" @@ -1562,9 +1428,9 @@ integrity sha512-ejQ9iJXYIq7R09BScU2y5OUGrSqwcD+J5mHFOKbduuQ5s/Eh/duz45KOzykeMLI6KHPVxhBKpUPBWIsfewECpQ== "@cspell/dict-k8s@^1.0.2": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-k8s/-/dict-k8s-1.0.5.tgz#4a4011d9f2f3ab628658573c5f16c0e6dbe30c29" - integrity sha512-Cj+/ZV4S+MKlwfocSJZqe/2UAd/sY8YtlZjbK25VN1nCnrsKrBjfkX29vclwSj1U9aJg4Z9jw/uMjoaKu9ZrpQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-k8s/-/dict-k8s-1.0.6.tgz#d46c97136f1504b65dfb6a188005d4ac81d3f461" + integrity sha512-srhVDtwrd799uxMpsPOQqeDJY+gEocgZpoK06EFrb4GRYGhv7lXo9Fb+xQMyQytzOW9dw4DNOEck++nacDuymg== "@cspell/dict-latex@^4.0.0": version "4.0.0" @@ -1592,9 +1458,9 @@ integrity sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg== "@cspell/dict-npm@^5.0.14": - version "5.0.16" - resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.0.16.tgz#696883918a9876ffd20d5f975bde74a03d27d80e" - integrity sha512-ZWPnLAziEcSCvV0c8k9Qj88pfMu+wZwM5Qks87ShsfBgI8uLZ9tGHravA7gmjH1Gd7Bgxy2ulvXtSqIWPh1lew== + version "5.0.18" + resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.0.18.tgz#7ec5640c97bd25a64de0c9e74eb19dda86fba025" + integrity sha512-weMTyxWpzz19q4wv9n183BtFvdD5fCjtze+bFKpl+4rO/YlPhHL2cXLAeexJz/VDSBecwX4ybTZYoknd1h2J4w== "@cspell/dict-php@^4.0.5": version "4.0.8" @@ -1602,19 +1468,19 @@ integrity sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA== "@cspell/dict-powershell@^5.0.3": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.4.tgz#db2bc6a86700a2f829dc1b3b04f6cb3a916fd928" - integrity sha512-eosDShapDgBWN9ULF7+sRNdUtzRnUdsfEdBSchDm8FZA4HOqxUSZy3b/cX/Rdw0Fnw0AKgk0kzgXw7tS6vwJMQ== + version "5.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.5.tgz#3319d2fbad740e164a78386d711668bfe335c1f2" + integrity sha512-3JVyvMoDJesAATYGOxcUWPbQPUvpZmkinV3m8HL1w1RrjeMVXXuK7U1jhopSneBtLhkU+9HKFwgh9l9xL9mY2Q== "@cspell/dict-public-licenses@^2.0.5": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.7.tgz#ccd67a91a6bd5ed4b5117c2f34e9361accebfcb7" - integrity sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ== + version "2.0.8" + resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.8.tgz#ed8c3b5b22f28129cf3517821740599f05733b68" + integrity sha512-Sup+tFS7cDV0fgpoKtUqEZ6+fA/H+XUgBiqQ/Fbs6vUE3WCjJHOIVsP+udHuyMH7iBfJ4UFYOYeORcY4EaKdMg== "@cspell/dict-python@^4.1.11": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.2.1.tgz#ef0c4cc1b6d096e8ff65faee3fe15eaf6457a92e" - integrity sha512-9X2jRgyM0cxBoFQRo4Zc8oacyWnXi+0/bMI5FGibZNZV4y/o9UoFEr6agjU260/cXHTjIdkX233nN7eb7dtyRg== + version "4.2.4" + resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.2.4.tgz#add81749939c6f123dbd0662385153506be951e0" + integrity sha512-sCtLBqMreb+8zRW2bXvFsfSnRUVU6IFm4mT6Dc4xbz0YajprbaPPh/kOUTw5IJRP8Uh+FFb7Xp2iH03CNWRq/A== dependencies: "@cspell/dict-data-science" "^2.0.1" @@ -1629,14 +1495,14 @@ integrity sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g== "@cspell/dict-rust@^4.0.1": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-rust/-/dict-rust-4.0.4.tgz#72f21d18aa46288b7da00e7d91b3ed4a23b386e8" - integrity sha512-v9/LcZknt/Xq7m1jdTWiQEtmkVVKdE1etAfGL2sgcWpZYewEa459HeWndNA0gfzQrpWX9sYay18mt7pqClJEdA== + version "4.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-rust/-/dict-rust-4.0.5.tgz#41f3e26fdd3d121c3a24c122d4a703abbb48c4c3" + integrity sha512-DIvlPRDemjKQy8rCqftAgGNZxY5Bg+Ps7qAIJjxkSjmMETyDgl0KTVuaJPt7EK4jJt6uCZ4ILy96npsHDPwoXA== "@cspell/dict-scala@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.2.tgz#d732ab24610cc9f6916fb8148f6ef5bdd945fc47" - integrity sha512-v97ClgidZt99JUm7OjhQugDHmhx4U8fcgunHvD/BsXWjXNj4cTr0m0YjofyZoL44WpICsNuFV9F/sv9OM5HUEw== + version "5.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.3.tgz#85a469b2d139766b6307befc89243928e3d82b39" + integrity sha512-4yGb4AInT99rqprxVNT9TYb1YSpq58Owzq7zi3ZS5T0u899Y4VsxsBiOgHnQ/4W+ygi+sp+oqef8w8nABR2lkg== "@cspell/dict-software-terms@3.3.18": version "3.3.18" @@ -1649,9 +1515,9 @@ integrity sha512-S5S2sz98v4GWJ9TMo62Vp4L5RM/329e5UQfFn7yJfieTcrfXRH4IweVdz34rZcK9o5coGptgBUIv/Jcrd4cMpg== "@cspell/dict-sql@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.3.tgz#8d9666a82e35b310d0be4064032c0d891fbd2702" - integrity sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ== + version "2.1.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.5.tgz#068c7a8840d75418fd46a0b062c0ed2d5742f2b8" + integrity sha512-FmxanytHXss7GAWAXmgaxl3icTCW7YxlimyOSPNfm+njqeUDjw3kEv4mFNDDObBJv8Ec5AWCbUDkWIpkE3IpKg== "@cspell/dict-svelte@^1.0.2": version "1.0.2" @@ -1669,9 +1535,9 @@ integrity sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA== "@cspell/dict-typescript@^3.1.2": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.5.tgz#15bd74651fb2cf0eff1150f07afee9543206bfab" - integrity sha512-EkIwwNV/xqEoBPJml2S16RXj65h1kvly8dfDLgXerrKw6puybZdvAHerAph6/uPTYdtLcsPyJYkPt5ISOJYrtw== + version "3.1.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.6.tgz#2d5351786787bf3609da65ba17d9bc345995a36d" + integrity sha512-1beC6O4P/j23VuxX+i0+F7XqPVc3hhiAzGJHEKqnWf5cWAXQtg0xz3xQJ5MvYx2a7iLaSa+lu7+05vG9UHyu9Q== "@cspell/dict-vue@^3.0.0": version "3.0.0" @@ -2236,22 +2102,22 @@ integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@inquirer/confirm@^3.0.0": - version "3.1.14" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.14.tgz#b50a156f2cc0a6f874f2d2ab1739e988fbf950f4" - integrity sha512-nbLSX37b2dGPtKWL3rPuR/5hOuD30S+pqJ/MuFiUEgN6GiMs8UMxiurKAMDzKt6C95ltjupa8zH6+3csXNHWpA== + version "3.1.22" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.22.tgz#23990624c11f60c6f7a5b0558c7505c35076a037" + integrity sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg== dependencies: - "@inquirer/core" "^9.0.2" - "@inquirer/type" "^1.4.0" + "@inquirer/core" "^9.0.10" + "@inquirer/type" "^1.5.2" -"@inquirer/core@^9.0.2": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.0.2.tgz#8be8782266f00129acb5c804537d1231b2fe3ac6" - integrity sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA== +"@inquirer/core@^9.0.10": + version "9.0.10" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.0.10.tgz#4270191e2ad3bea6223530a093dd9479bcbc7dd0" + integrity sha512-TdESOKSVwf6+YWDz8GhS6nKscwzkIyakEzCLJ5Vh6O3Co2ClhCJ0A4MG909MUWfaWdpJm7DE45ii51/2Kat9tA== dependencies: - "@inquirer/figures" "^1.0.3" - "@inquirer/type" "^1.4.0" + "@inquirer/figures" "^1.0.5" + "@inquirer/type" "^1.5.2" "@types/mute-stream" "^0.0.4" - "@types/node" "^20.14.9" + "@types/node" "^22.1.0" "@types/wrap-ansi" "^3.0.0" ansi-escapes "^4.3.2" cli-spinners "^2.9.2" @@ -2262,15 +2128,15 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.2" -"@inquirer/figures@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.3.tgz#1227cc980f88e6d6ab85abadbf164f5038041edd" - integrity sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw== +"@inquirer/figures@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.5.tgz#57f9a996d64d3e3345d2a3ca04d36912e94f8790" + integrity sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA== -"@inquirer/type@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.4.0.tgz#3dd0c8f78c0548bbc18b9c07af16a86c4007e1f0" - integrity sha512-AjOqykVyjdJQvtfkNDGUyMYGF8xN50VUxftCQWsOyIo4DFRLr6VQhW0VItGI1JIyQGCGgIpKa7hMMwNhZb4OIw== +"@inquirer/type@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.2.tgz#15f5e4a4dae02c4203650cb07c8a000cdd423939" + integrity sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA== dependencies: mute-stream "^1.0.0" @@ -2514,9 +2380,9 @@ integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" @@ -2639,11 +2505,12 @@ fastq "^1.6.0" "@npmcli/git@^5.0.0": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.7.tgz#7ff675e33b4dc0b0adb1f0c4aa302109efc06463" - integrity sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA== + version "5.0.8" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.8.tgz#8ba3ff8724192d9ccb2735a2aa5380a992c5d3d1" + integrity sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ== dependencies: "@npmcli/promise-spawn" "^7.0.0" + ini "^4.1.3" lru-cache "^10.0.1" npm-pick-manifest "^9.0.0" proc-log "^4.0.0" @@ -2745,6 +2612,11 @@ resolved "https://registry.yarnpkg.com/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-8.2.1.tgz#08b974f1e83a75c4d3ce23f798c7667b433bf4cd" integrity sha512-msAU1oTSm0ZmvAE0xDemuF4tVs5i0xNnNGtNmr4EuATi+1Rn8cZDetj6NXioSf5LwnxEc209COa/WOSbjuhLUA== +"@octokit/openapi-webhooks-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-8.3.0.tgz#a7a4da00c0f27f7f5708eb3fcebefa08f8d51125" + integrity sha512-vKLsoR4xQxg4Z+6rU/F65ItTUz/EXbD+j/d4mlq2GW8TsA4Tc8Kdma2JTAAJ5hrKWUQzkR/Esn2fjsqiVRYaQg== + "@octokit/plugin-paginate-graphql@5.2.2": version "5.2.2" resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-5.2.2.tgz#54e2afef55bb204eb945a891b85a169b9ddad1f8" @@ -2802,9 +2674,9 @@ once "^1.4.0" "@octokit/request-error@^6.0.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-6.1.1.tgz#bed1b5f52ce7fefb1077a92bf42124ff36f73f2c" - integrity sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg== + version "6.1.4" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-6.1.4.tgz#ad96e29148d19edc2ba8009fc2b5a24a36c90f16" + integrity sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg== dependencies: "@octokit/types" "^13.0.0" @@ -2857,7 +2729,7 @@ resolved "https://registry.yarnpkg.com/@octokit/webhooks-methods/-/webhooks-methods-5.1.0.tgz#13b6c08f89902c1ab0ddf31c6eeeec9c2772cfe6" integrity sha512-yFZa3UH11VIxYnnoOYCVoJ3q4ChuSOk2IVBBQ0O3xtKX4x9bmKb/1t+Mxixv2iUhzMdOl1qeWJqEhouXXzB3rQ== -"@octokit/webhooks@13.2.7", "@octokit/webhooks@^13.1.0": +"@octokit/webhooks@13.2.7": version "13.2.7" resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-13.2.7.tgz#03f89b278cd63f271eba3062f0b75ddd18a82252" integrity sha512-sPHCyi9uZuCs1gg0yF53FFocM+GsiiBEhQQV/itGzzQ8gjyv2GMJ1YvgdDY4lC0ePZeiV3juEw4GbS6w1VHhRw== @@ -2867,6 +2739,15 @@ "@octokit/webhooks-methods" "^5.0.0" aggregate-error "^5.0.0" +"@octokit/webhooks@^13.1.0": + version "13.3.0" + resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-13.3.0.tgz#fd5d54d47c789c75d60a00eb04e982152d7c654a" + integrity sha512-TUkJLtI163Bz5+JK0O+zDkQpn4gKwN+BovclUvCj6pI/6RXrFqQvUMRS2M+Rt8Rv0qR3wjoMoOPmpJKeOh0nBg== + dependencies: + "@octokit/openapi-webhooks-types" "8.3.0" + "@octokit/request-error" "^6.0.1" + "@octokit/webhooks-methods" "^5.0.0" + "@open-draft/deferred-promise@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd" @@ -3009,9 +2890,9 @@ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@sinclair/typebox@^0.32.5": - version "0.32.34" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.32.34.tgz#a1c59d4df30982263cc7aa64c2c853878050838d" - integrity sha512-a3Z3ytYl6R/+7ldxx04PO1semkwWlX/8pTqxsPw4quIcIXDFPZhOc1Wx8azWmkU26ccK3mHwcWenn0avNgAKQg== + version "0.32.35" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.32.35.tgz#41c04473509478df9895800018a3d3ae7d40fb3c" + integrity sha512-Ul3YyOTU++to8cgNkttakC0dWvpERr6RYoHO2W47DLbFvrwBDJUY31B1sImH6JZSYc4Kt4PyHtoPNu+vL2r2dA== "@sinonjs/commons@^3.0.0": version "3.0.1" @@ -3205,9 +3086,9 @@ integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== "@types/lodash@^4.14.172": - version "4.17.6" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.6.tgz#193ced6a40c8006cfc1ca3f4553444fb38f0e543" - integrity sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA== + version "4.17.7" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== "@types/markdown-it@13.0.7": version "13.0.7" @@ -3247,12 +3128,12 @@ "@types/node" "*" form-data "^4.0.0" -"@types/node@*", "@types/node@^20.14.9": - version "20.14.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.10.tgz#a1a218290f1b6428682e3af044785e5874db469a" - integrity sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ== +"@types/node@*", "@types/node@^22.1.0": + version "22.5.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.0.tgz#10f01fe9465166b4cab72e75f60d8b99d019f958" + integrity sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg== dependencies: - undici-types "~5.26.4" + undici-types "~6.19.2" "@types/node@18.15.13": version "18.15.13" @@ -3267,9 +3148,9 @@ undici-types "~5.26.4" "@types/node@^18.11.18": - version "18.19.39" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.39.tgz#c316340a5b4adca3aee9dcbf05de385978590593" - integrity sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ== + version "18.19.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.45.tgz#a9ebfe4c316a356be7ca11f753ecb2feda6d6bdf" + integrity sha512-VZxPKNNhjKmaC1SUYowuXSRSMGyQGmQjvvA1xE4QZ0xce2kLtEhPDS+kqpCPBZYgqblCLQ2DAjSzmgCM5auvhA== dependencies: undici-types "~5.26.4" @@ -3308,7 +3189,7 @@ resolved "https://registry.yarnpkg.com/@types/statuses/-/statuses-2.0.5.tgz#f61ab46d5352fd73c863a1ea4e1cef3b0b51ae63" integrity sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A== -"@types/tough-cookie@*": +"@types/tough-cookie@*", "@types/tough-cookie@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== @@ -3324,9 +3205,9 @@ integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== "@types/ws@^8.5.10": - version "8.5.10" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== + version "8.5.12" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== dependencies: "@types/node" "*" @@ -3336,9 +3217,9 @@ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== dependencies: "@types/yargs-parser" "*" @@ -3428,10 +3309,10 @@ "@typescript-eslint/types" "6.21.0" eslint-visitor-keys "^3.4.1" -"@ubiquibot/permit-generation@1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@ubiquibot/permit-generation/-/permit-generation-1.4.1.tgz#1492f2608e36bcd845cfb1574d20b044e5f25fc1" - integrity sha512-Ek9vw2Lsc+57rVh0bdA9fkwbE8dthqqQfyLV+sx6jCwUnqZvopKwJtDZuS2wL7Dkl1fIFodVxNo37biNu5gCpw== +"@ubiquibot/permit-generation@1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@ubiquibot/permit-generation/-/permit-generation-1.4.2.tgz#213be0f6cc1d9ca9775da915d69706fb562c456c" + integrity sha512-3gcYlApQWC1iKxiqVt+tQk5hqxovM1EGlkSNCAOZ7WPhmVWfoKvRI8On5AJz3Drr0VML4TjJxYklV40ar5go+A== dependencies: "@actions/core" "^1.10.1" "@actions/github" "^6.0.0" @@ -3445,16 +3326,7 @@ ethers "6.11.1" libsodium-wrappers "^0.7.13" -"@ubiquity-dao/rpc-handler@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@ubiquity-dao/rpc-handler/-/rpc-handler-1.2.3.tgz#1bc87c9cee84307412fdce70cfc089e25067d9cc" - integrity sha512-StbfiAlJzC0+mX1amYsCE71Do/hRgVy/5caIAKIite36EodwUU7Nk12BCzYB39BdjbeN/2QGBC9RWJJepqO51g== - dependencies: - "@ethersproject/providers" "5.7.2" - axios "^1.7.1" - node-fetch "^3.3.2" - -"@ubiquity-dao/rpc-handler@^1.1.0": +"@ubiquity-dao/rpc-handler@1.3.0", "@ubiquity-dao/rpc-handler@^1.1.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@ubiquity-dao/rpc-handler/-/rpc-handler-1.3.0.tgz#d6d26dda525a572539e969353070562c4cc0237c" integrity sha512-BoN3IENjJWaMHSk3tC2I48e0Bz8NbwmjymLQ9EamN3lMf9djTEdWbmD2baRr9pIZJ6Sh5HzgYdCN+i7I1lZbVw== @@ -3463,10 +3335,10 @@ axios "^1.7.1" node-fetch "^3.3.2" -"@ubiquity-dao/ubiquibot-logger@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ubiquity-dao/ubiquibot-logger/-/ubiquibot-logger-1.3.0.tgz#b07364658be95b3be3876305c66b2adc906e9590" - integrity sha512-ifkd7fB2OMTSt3OL9L14bCIvCMXV+IHFdJYU5S8FUzE2U88b4xKxuEAYDFX+DX3wwDEswFAVUwx5aP3QcMIRWA== +"@ubiquity-dao/ubiquibot-logger@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@ubiquity-dao/ubiquibot-logger/-/ubiquibot-logger-1.3.1.tgz#c3f45d70014dcc2551442c28101046e1c8ea6886" + integrity sha512-kDLnVP87Y3yZV6NnqIEDAOz+92IW0nIcccML2lUn93uZ5ada78vfdTPtwPJo8tkXl1Z9qMKAqqHkwBMp1Ksnag== "@ungap/structured-clone@^1.2.0": version "1.2.0" @@ -3576,14 +3448,14 @@ ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.11.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4" - integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== dependencies: fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.4.1" ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: version "4.3.2" @@ -3592,10 +3464,12 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: dependencies: type-fest "^0.21.3" -ansi-escapes@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.1.tgz#76c54ce9b081dad39acec4b5d53377913825fb0f" - integrity sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig== +ansi-escapes@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz#00fc19f491bbb18e1d481b97868204f92109bfe7" + integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== + dependencies: + environment "^1.0.0" ansi-regex@^5.0.1: version "5.0.1" @@ -3728,9 +3602,9 @@ available-typed-arrays@^1.0.7: possible-typed-array-names "^1.0.0" axios@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" - integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== + version "1.7.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.5.tgz#21eed340eb5daf47d29b6e002424b3e88c8c54b1" + integrity sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -3795,22 +3669,25 @@ babel-plugin-polyfill-regenerator@^0.5.5: "@babel/helper-define-polyfill-provider" "^0.5.0" babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" babel-preset-jest@^29.6.3: version "29.6.3" @@ -3856,9 +3733,9 @@ bn.js@^5.2.1: integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== bole@^5.0.0: - version "5.0.13" - resolved "https://registry.yarnpkg.com/bole/-/bole-5.0.13.tgz#fbc13cf2611e58aae9a2db5a2b8970aa46d54f68" - integrity sha512-JQ3xWh2nYsVUuJx7ZN4fzU3vHpzceWb7CC06LUXWwdY++Hzd7Wola7zN3Ud5XgmOVoH/6KzrdMmJokol/xtejw== + version "5.0.14" + resolved "https://registry.yarnpkg.com/bole/-/bole-5.0.14.tgz#c71f554cd409de8db951bf2aa3fef481d1496236" + integrity sha512-IFDlSAH1GKiQEp4NUa2Eg8RplcV2oXOFCHD/nfNqVlRNf9RgNRdxtR2g3P+Cz57uP5jAGSrq2bGUqXLQeh/h4w== dependencies: fast-safe-stringify "^2.0.7" individual "^3.0.0" @@ -3895,16 +3772,6 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserslist@^4.22.2: - version "4.23.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" - integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== - dependencies: - caniuse-lite "^1.0.30001629" - electron-to-chromium "^1.4.796" - node-releases "^2.0.14" - update-browserslist-db "^1.0.16" - browserslist@^4.23.1, browserslist@^4.23.3: version "4.23.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" @@ -3969,11 +3836,6 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001629: - version "1.0.30001640" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz#32c467d4bf1f1a0faa63fc793c2ba81169e7652f" - integrity sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA== - caniuse-lite@^1.0.30001646: version "1.0.30001653" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz#b8af452f8f33b1c77f122780a4aecebea0caca56" @@ -4024,9 +3886,9 @@ ci-info@^3.2.0: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c" - integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== + version "1.4.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz#677de7ed7efff67cc40c9bf1897fea79d41b5215" + integrity sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g== clean-git-ref@^2.0.1: version "2.0.1" @@ -4053,12 +3915,12 @@ clear-module@^4.1.2: parent-module "^2.0.0" resolve-from "^5.0.0" -cli-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" - integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== dependencies: - restore-cursor "^4.0.0" + restore-cursor "^5.0.0" cli-spinners@^2.9.2: version "2.9.2" @@ -4149,9 +4011,9 @@ commander@^4.1.1: integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== comment-json@^4.2.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.4.tgz#7d1cfe2e934f0c55ae3c2c2cc0436ba4e8901083" - integrity sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ== + version "4.2.5" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.5.tgz#482e085f759c2704b60bc6f97f55b8c01bc41e70" + integrity sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw== dependencies: array-timsort "^1.0.3" core-util-is "^1.0.3" @@ -4488,9 +4350,9 @@ date-fns@^2.21.1: "@babel/runtime" "^7.21.0" debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== dependencies: ms "2.1.2" @@ -4648,11 +4510,6 @@ easy-table@1.2.0: optionalDependencies: wcwidth "^1.0.1" -electron-to-chromium@^1.4.796: - version "1.4.819" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.819.tgz#b1bf73d71748a44c3b719cfe7b351d75268c9044" - integrity sha512-8RwI6gKUokbHWcN3iRij/qpvf/wCbIVY5slODi85werwqUQwpFXM+dvUBND93Qh7SB0pW3Hlq3/wZsqQ3M9Jaw== - electron-to-chromium@^1.5.4: version "1.5.13" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" @@ -4703,6 +4560,11 @@ entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== + err-code@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" @@ -5008,9 +4870,9 @@ ethers@^5.7.0: "@ethersproject/wordlists" "5.7.0" ethers@^6.13.0: - version "6.13.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.1.tgz#2b9f9c7455cde9d38b30fe6589972eb083652961" - integrity sha512-hdJ2HOxg/xx97Lm9HdCWk949BfYqYWpyw4//78SiwOLgASyfrNszfMUNB2joKjvGUdwhHfaiMMFFwacVVoLR9A== + version "6.13.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" + integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== dependencies: "@adraffy/ens-normalize" "1.10.1" "@noble/curves" "1.2.0" @@ -5112,6 +4974,11 @@ fast-safe-stringify@^2.0.7: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + fastq@^1.15.0, fastq@^1.6.0: version "1.17.1" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" @@ -5226,9 +5093,9 @@ for-each@^0.3.3: is-callable "^1.1.3" foreground-child@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" - integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" @@ -5362,9 +5229,9 @@ get-symbol-description@^1.0.2: get-intrinsic "^1.2.4" get-tsconfig@^4.7.2: - version "4.7.5" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.5.tgz#5e012498579e9a6947511ed0cd403272c7acbbaf" - integrity sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw== + version "4.7.6" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" + integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== dependencies: resolve-pkg-maps "^1.0.0" @@ -5394,9 +5261,9 @@ glob-parent@^6.0.2: is-glob "^4.0.3" glob@^10.2.2: - version "10.4.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.4.tgz#d60943feb6f8140522117e6576a923b715718380" - integrity sha512-XsOKvHsu38Xe19ZQupE6N/HENeHQBA05o3hV8labZZT2zYDg1+emxWHnc/Bm9AcCMPXfD6jt+QC7zC5JSFyumw== + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: foreground-child "^3.1.0" jackspeak "^3.1.2" @@ -5657,9 +5524,9 @@ identity-function@^1.0.0: integrity sha512-kNrgUK0qI+9qLTBidsH85HjDLpZfrrS0ElquKKe/fJFdB3D7VeKdXXEvOPDUHSHOzdZKCAAaQIWWyp0l2yq6pw== ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0, ignore@^5.2.4: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" @@ -5670,9 +5537,9 @@ import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: resolve-from "^4.0.0" import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -5725,6 +5592,11 @@ ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +ini@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795" + integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== + internal-slot@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" @@ -5773,9 +5645,9 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.13.0, is-core-module@^2.5.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1" - integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A== + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: hasown "^2.0.2" @@ -5960,9 +5832,9 @@ isexe@^3.1.1: integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== isomorphic-git@^1.25.6: - version "1.27.0" - resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-1.27.0.tgz#172c403ff2f4280535a5e90a236a2dfd7740a6f4" - integrity sha512-KYhBq8+yWYZsGl/SMfMSESZ5C+P2Sj4O3I4URg3zjqt14ilg8yLUlGg2wAdC45cOer7pybwwfRGLKpAJzjfzYQ== + version "1.27.1" + resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-1.27.1.tgz#a2752fce23a09f04baa590c41cfaf61e973405b3" + integrity sha512-X32ph5zIWfT75QAqW2l3JCIqnx9/GWd17bRRehmn3qmWc34OYbSXY6Cxv0o9bIIY+CWugoN4nQFHNA+2uYf2nA== dependencies: async-lock "^1.4.1" clean-git-ref "^2.0.1" @@ -6035,9 +5907,9 @@ iterable-lookahead@^1.0.0: integrity sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ== jackspeak@^3.1.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.2.tgz#c3d1e00071d52dba8b0dac17cd2a12d0187d2989" - integrity sha512-qH3nOSj8q/8+Eg8LUPOq3C+6HWkpUioIjDsq1+D4zY91oZvpPttw8GwtF1nReRYKXl+1AORyFqtm2f5Q1SB6/Q== + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -6616,16 +6488,16 @@ levn@^0.4.1: type-check "~0.4.0" libsodium-wrappers@^0.7.13: - version "0.7.13" - resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" - integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== + version "0.7.15" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.15.tgz#53f13e483820272a3d55b23be2e34402ac988055" + integrity sha512-E4anqJQwcfiC6+Yrl01C1m8p99wEhLmJSs0VQqST66SbQXXBoaJY0pF4BNjRYa/sOQAxx6lXAaAFIlx+15tXJQ== dependencies: - libsodium "^0.7.13" + libsodium "^0.7.15" -libsodium@^0.7.13: - version "0.7.13" - resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" - integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== +libsodium@^0.7.15: + version "0.7.15" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.15.tgz#ac284e3dcb1c29ae9526c5581cdada6a072f6d20" + integrity sha512-sZwRknt/tUpE2AwzHq3jEyUU5uvIZHtSssktXq7owd++3CSgn8RGrv6UZJJBpP7+iBghBqe7Z06/2M31rI2NKw== lilconfig@3.0.0: version "3.0.0" @@ -6772,20 +6644,20 @@ lodash@^4.17.15, lodash@^4.17.21: integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-update@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.0.0.tgz#0ddeb7ac6ad658c944c1de902993fce7c33f5e59" - integrity sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== + version "6.1.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== dependencies: - ansi-escapes "^6.2.0" - cli-cursor "^4.0.0" - slice-ansi "^7.0.0" + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" strip-ansi "^7.1.0" wrap-ansi "^9.0.0" lru-cache@^10.0.1, lru-cache@^10.0.2, lru-cache@^10.2.0: - version "10.4.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.1.tgz#da9a9cb51aec89fda9b485f5a12b2fdb8f6dbe88" - integrity sha512-8h/JsUc/2+Dm9RPJnBAmObGnUqTMmsIKThxixMLOkrebSihRhTV0wLD/8BSk6OU6Pbj8hiDTbsI3fLjBJSlhDg== + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== lru-cache@^5.1.1: version "5.1.1" @@ -6937,9 +6809,9 @@ micromatch@4.0.5: picomatch "^2.3.1" micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.7" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" - integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" picomatch "^2.3.1" @@ -6971,6 +6843,11 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -7077,14 +6954,14 @@ msw@2.2.14: yargs "^17.7.2" msw@^2.0.8: - version "2.3.1" - resolved "https://registry.yarnpkg.com/msw/-/msw-2.3.1.tgz#bfc73e256ffc2c74ec4381b604abb258df35f32b" - integrity sha512-ocgvBCLn/5l3jpl1lssIb3cniuACJLoOfZu01e3n5dbJrpA5PeeWn28jCLgQDNt6d7QT8tF2fYRzm9JoEHtiig== + version "2.3.5" + resolved "https://registry.yarnpkg.com/msw/-/msw-2.3.5.tgz#424ad91b20a548d6b77fc26aca0c789e5cbc4764" + integrity sha512-+GUI4gX5YC5Bv33epBrD+BGdmDvBg2XGruiWnI3GbIbRmMMBeZ5gs3mJ51OWSGHgJKztZ8AtZeYMMNMVrje2/Q== dependencies: "@bundled-es-modules/cookie" "^2.0.0" "@bundled-es-modules/statuses" "^1.0.1" + "@bundled-es-modules/tough-cookie" "^0.1.6" "@inquirer/confirm" "^3.0.0" - "@mswjs/cookies" "^1.1.0" "@mswjs/interceptors" "^0.29.0" "@open-draft/until" "^2.1.0" "@types/cookie" "^0.6.0" @@ -7159,11 +7036,6 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - node-releases@^2.0.18: version "2.0.18" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" @@ -7216,9 +7088,9 @@ npm-normalize-package-bin@^3.0.0: integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== npm-package-arg@^11.0.0: - version "11.0.2" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.2.tgz#1ef8006c4a9e9204ddde403035f7ff7d718251ca" - integrity sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw== + version "11.0.3" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz#dae0c21199a99feca39ee4bfb074df3adac87e2d" + integrity sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw== dependencies: hosted-git-info "^7.0.0" proc-log "^4.0.0" @@ -7226,9 +7098,9 @@ npm-package-arg@^11.0.0: validate-npm-package-name "^5.0.0" npm-pick-manifest@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz#c90658bd726fe5bca9d2869f3e99359b8fcda046" - integrity sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw== + version "9.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz#83562afde52b0b07cb6244361788d319ce7e8636" + integrity sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA== dependencies: npm-install-checks "^6.0.0" npm-normalize-package-bin "^3.0.0" @@ -7265,9 +7137,9 @@ npm-run-path@^5.1.0: path-key "^4.0.0" nwsapi@^2.2.7: - version "2.2.10" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8" - integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== + version "2.2.12" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.12.tgz#fb6af5c0ec35b27b4581eb3bbad34ec9e5c696f8" + integrity sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w== object-inspect@^1.13.1: version "1.13.2" @@ -7306,7 +7178,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -7320,6 +7192,13 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + openai@4.56.0: version "4.56.0" resolved "https://registry.yarnpkg.com/openai/-/openai-4.56.0.tgz#07d3982544cabd5781127288a8dfcceb7319a4cf" @@ -7872,13 +7751,13 @@ resolve@1.22.8, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -restore-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" - integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" + onetime "^7.0.0" + signal-exit "^4.1.0" retry@^0.12.0: version "0.12.0" @@ -7978,9 +7857,9 @@ semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.4.0, semver@^7.5.3, semver@^7.5.4: - version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== set-function-length@^1.2.1: version "1.2.2" @@ -8098,7 +7977,7 @@ slice-ansi@^5.0.0: ansi-styles "^6.0.0" is-fullwidth-code-point "^4.0.0" -slice-ansi@^7.0.0: +slice-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== @@ -8146,9 +8025,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.18" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" - integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== + version "3.0.20" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" + integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== split2@^3.0.0: version "3.2.2" @@ -8456,7 +8335,7 @@ to-space-case@^1.0.0: dependencies: to-no-case "^1.0.0" -tough-cookie@^4.1.3: +tough-cookie@^4.1.3, tough-cookie@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== @@ -8575,9 +8454,9 @@ type-fest@^1.0.1: integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== type-fest@^4.9.0: - version "4.21.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.21.0.tgz#2eec399d9bda4ac686286314d07c6675fef3fdd8" - integrity sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA== + version "4.25.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.25.0.tgz#b190374f969631866889bbdb01ece17ca424ee60" + integrity sha512-bRkIGlXsnGBRBQRAY56UXBm//9qH4bmJfFvq83gSz41N282df+fjy8ofcEgc1sM8geNt5cl6mC2g9Fht1cs8Aw== typebox-validators@0.3.5: version "0.3.5" @@ -8660,6 +8539,11 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + undici@^5.25.4: version "5.28.4" resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" @@ -8726,7 +8610,7 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -update-browserslist-db@^1.0.16, update-browserslist-db@^1.1.0: +update-browserslist-db@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== @@ -8734,7 +8618,7 @@ update-browserslist-db@^1.0.16, update-browserslist-db@^1.1.0: escalade "^3.1.2" picocolors "^1.0.1" -uri-js@^4.2.2, uri-js@^4.4.1: +uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== @@ -8806,9 +8690,9 @@ vlq@^0.2.1: integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== vscode-languageserver-textdocument@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf" - integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA== + version "1.0.12" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz#457ee04271ab38998a093c68c2342f53f6e4a631" + integrity sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA== vscode-uri@^3.0.8: version "3.0.8" @@ -9066,9 +8950,9 @@ yaml@2.4.1: integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== yaml@^2.3.4: - version "2.4.5" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" - integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== yargs-parser@^20.2.3: version "20.2.9" From ac0c2fea3e2f923c3382b3a7ab823d67776bd7fd Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 15:10:18 +0900 Subject: [PATCH 12/18] chore: test fix (WIP) --- .cspell.json | 2 +- tests/__mocks__/handlers.ts | 14 + .../routes/issue-70-comments-get.json | 217 ++++++++++ tests/__mocks__/routes/issue-70-get.json | 392 ++++++++++++++++++ 4 files changed, 624 insertions(+), 1 deletion(-) create mode 100644 tests/__mocks__/routes/issue-70-comments-get.json create mode 100644 tests/__mocks__/routes/issue-70-get.json diff --git a/.cspell.json b/.cspell.json index e7c4efd5..50f457d2 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "version": "0.2", - "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log", "**/tests/__mocks__"], + "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log", "**/tests/**"], "useGitignore": true, "language": "en", "words": ["dataurl", "devpool", "outdir", "servedir", "ubiquibot", "tiktoken", "typebox", "supabase", "wxdai", "noopener", "knip", "hellip", "mswjs"], diff --git a/tests/__mocks__/handlers.ts b/tests/__mocks__/handlers.ts index 1fa70b4f..404f1da7 100644 --- a/tests/__mocks__/handlers.ts +++ b/tests/__mocks__/handlers.ts @@ -10,8 +10,10 @@ import issueEvents2Get from "./routes/issue-events-2-get.json"; import issueEventsGet from "./routes/issue-events-get.json"; import issueTimelineGet from "./routes/issue-timeline-get.json"; import issue69TimelineGet from "./routes/issue-69-timeline-get.json"; +import issue70CommentsGet from "./routes/issue-70-comments-get.json"; import pullsCommentsGet from "./routes/pulls-comments-get.json"; import pullsGet from "./routes/pulls-get.json"; +import pulls70Get from "./routes/issue-70-get.json"; import pullsReviewsGet from "./routes/pulls-reviews-get.json"; /** @@ -57,6 +59,18 @@ export const handlers = [ http.get("https://api.github.com/repos/ubiquibot/comment-incentives/pulls/25/comments", () => { return HttpResponse.json(pullsCommentsGet); }), + http.get("https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70", () => { + return HttpResponse.json(pulls70Get); + }), + http.get("https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70/reviews", () => { + return HttpResponse.json(pullsReviewsGet); + }), + http.get("https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70/comments", () => { + return HttpResponse.json([]); + }), + http.get("https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70/comments", () => { + return HttpResponse.json(issue70CommentsGet); + }), http.get("https://api.github.com/users/:login", ({ params: { login } }) => { const user = db.users.findFirst({ where: { diff --git a/tests/__mocks__/routes/issue-70-comments-get.json b/tests/__mocks__/routes/issue-70-comments-get.json new file mode 100644 index 00000000..e0ceb26d --- /dev/null +++ b/tests/__mocks__/routes/issue-70-comments-get.json @@ -0,0 +1,217 @@ +[ + { + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments/2186518820", + "html_url": "https://github.com/ubiquity/work.ubq.fi/pull/70#issuecomment-2186518820", + "issue_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70", + "id": 2186518820, + "node_id": "IC_kwDOKzVPS86CU6Ek", + "user": { + "login": "ubiquibot-continuous-deploys[bot]", + "id": 160607723, + "node_id": "BOT_kgDOCZKt6w", + "avatar_url": "https://avatars.githubusercontent.com/u/76412717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D", + "html_url": "https://github.com/apps/ubiquibot-continuous-deploys", + "followers_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/ubiquibot-continuous-deploys%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "created_at": "2024-06-24T12:56:19Z", + "updated_at": "2024-06-24T15:07:18Z", + "author_association": "NONE", + "body": "\n\n\n\n\n\n\n\n\n\n\n\n\n", + "reactions": { + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments/2186518820/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "performed_via_github_app": { + "id": 834196, + "client_id": "Iv1.6a6659bf99f39dbf", + "slug": "ubiquibot-continuous-deploys", + "node_id": "A_kwHOBI33Lc4ADLqU", + "owner": { + "login": "ubiquity", + "id": 76412717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjc2NDEyNzE3", + "avatar_url": "https://avatars.githubusercontent.com/u/76412717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ubiquity", + "html_url": "https://github.com/ubiquity", + "followers_url": "https://api.github.com/users/ubiquity/followers", + "following_url": "https://api.github.com/users/ubiquity/following{/other_user}", + "gists_url": "https://api.github.com/users/ubiquity/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ubiquity/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ubiquity/subscriptions", + "organizations_url": "https://api.github.com/users/ubiquity/orgs", + "repos_url": "https://api.github.com/users/ubiquity/repos", + "events_url": "https://api.github.com/users/ubiquity/events{/privacy}", + "received_events_url": "https://api.github.com/users/ubiquity/received_events", + "type": "Organization", + "site_admin": false + }, + "name": "UbiquiBot Continuous Deploys", + "description": "This helps our reviewers quickly review any pull request opened against our repositories. ", + "external_url": "https://ubq.fi", + "html_url": "https://github.com/apps/ubiquibot-continuous-deploys", + "created_at": "2024-02-20T12:24:12Z", + "updated_at": "2024-02-20T12:24:12Z", + "permissions": { + "issues": "write", + "metadata": "read", + "pull_requests": "write" + }, + "events": [ + + ] + } + }, + { + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments/2186530214", + "html_url": "https://github.com/ubiquity/work.ubq.fi/pull/70#issuecomment-2186530214", + "issue_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70", + "id": 2186530214, + "node_id": "IC_kwDOKzVPS86CU82m", + "user": { + "login": "0x4007", + "id": 4975670, + "node_id": "MDQ6VXNlcjQ5NzU2NzA=", + "avatar_url": "https://avatars.githubusercontent.com/u/4975670?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0x4007", + "html_url": "https://github.com/0x4007", + "followers_url": "https://api.github.com/users/0x4007/followers", + "following_url": "https://api.github.com/users/0x4007/following{/other_user}", + "gists_url": "https://api.github.com/users/0x4007/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0x4007/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0x4007/subscriptions", + "organizations_url": "https://api.github.com/users/0x4007/orgs", + "repos_url": "https://api.github.com/users/0x4007/repos", + "events_url": "https://api.github.com/users/0x4007/events{/privacy}", + "received_events_url": "https://api.github.com/users/0x4007/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2024-06-24T13:01:01Z", + "updated_at": "2024-06-24T13:01:01Z", + "author_association": "MEMBER", + "body": "I always struggle with Cypress", + "reactions": { + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments/2186530214/reactions", + "total_count": 2, + "+1": 0, + "-1": 0, + "laugh": 2, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "performed_via_github_app": null + }, + { + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments/2186798329", + "html_url": "https://github.com/ubiquity/work.ubq.fi/pull/70#issuecomment-2186798329", + "issue_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70", + "id": 2186798329, + "node_id": "IC_kwDOKzVPS86CV-T5", + "user": { + "login": "0x4007", + "id": 4975670, + "node_id": "MDQ6VXNlcjQ5NzU2NzA=", + "avatar_url": "https://avatars.githubusercontent.com/u/4975670?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0x4007", + "html_url": "https://github.com/0x4007", + "followers_url": "https://api.github.com/users/0x4007/followers", + "following_url": "https://api.github.com/users/0x4007/following{/other_user}", + "gists_url": "https://api.github.com/users/0x4007/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0x4007/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0x4007/subscriptions", + "organizations_url": "https://api.github.com/users/0x4007/orgs", + "repos_url": "https://api.github.com/users/0x4007/repos", + "events_url": "https://api.github.com/users/0x4007/events{/privacy}", + "received_events_url": "https://api.github.com/users/0x4007/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2024-06-24T15:05:09Z", + "updated_at": "2024-06-24T15:05:09Z", + "author_association": "MEMBER", + "body": "Only doesn't work on my local, the guess is token expiration after one hour and being logged out, but something in our tests is not handling this. \r\n\r\n[iTerm2 Session Jun 25, 2024 at 00:03:39.rtf.zip](https://github.com/user-attachments/files/15957681/iTerm2.Session.Jun.25.2024.at.00.03.39.rtf.zip)\r\n", + "reactions": { + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments/2186798329/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "performed_via_github_app": null + }, + { + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments/2186914050", + "html_url": "https://github.com/ubiquity/work.ubq.fi/pull/70#issuecomment-2186914050", + "issue_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70", + "id": 2186914050, + "node_id": "IC_kwDOKzVPS86CWakC", + "user": { + "login": "gentlementlegen", + "id": 9807008, + "node_id": "MDQ6VXNlcjk4MDcwMDg=", + "avatar_url": "https://avatars.githubusercontent.com/u/9807008?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/gentlementlegen", + "html_url": "https://github.com/gentlementlegen", + "followers_url": "https://api.github.com/users/gentlementlegen/followers", + "following_url": "https://api.github.com/users/gentlementlegen/following{/other_user}", + "gists_url": "https://api.github.com/users/gentlementlegen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gentlementlegen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gentlementlegen/subscriptions", + "organizations_url": "https://api.github.com/users/gentlementlegen/orgs", + "repos_url": "https://api.github.com/users/gentlementlegen/repos", + "events_url": "https://api.github.com/users/gentlementlegen/events{/privacy}", + "received_events_url": "https://api.github.com/users/gentlementlegen/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2024-06-24T16:02:25Z", + "updated_at": "2024-06-24T16:02:25Z", + "author_association": "MEMBER", + "body": "After token expiration, I could not reproduce the problem and still had all the tests up and running, as well as Action tests. This should be investigated, if someone else encounters the issue it could give us more clues.", + "reactions": { + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments/2186914050/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 1 + }, + "performed_via_github_app": null + } +] diff --git a/tests/__mocks__/routes/issue-70-get.json b/tests/__mocks__/routes/issue-70-get.json new file mode 100644 index 00000000..6f704120 --- /dev/null +++ b/tests/__mocks__/routes/issue-70-get.json @@ -0,0 +1,392 @@ +{ + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70", + "id": 1935493667, + "node_id": "PR_kwDOKzVPS85zXUoj", + "html_url": "https://github.com/ubiquity/work.ubq.fi/pull/70", + "diff_url": "https://github.com/ubiquity/work.ubq.fi/pull/70.diff", + "patch_url": "https://github.com/ubiquity/work.ubq.fi/pull/70.patch", + "issue_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70", + "number": 70, + "state": "closed", + "locked": false, + "title": "fix: add state to sorting manager for bottom and top", + "user": { + "login": "0x4007", + "id": 4975670, + "node_id": "MDQ6VXNlcjQ5NzU2NzA=", + "avatar_url": "https://avatars.githubusercontent.com/u/4975670?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0x4007", + "html_url": "https://github.com/0x4007", + "followers_url": "https://api.github.com/users/0x4007/followers", + "following_url": "https://api.github.com/users/0x4007/following{/other_user}", + "gists_url": "https://api.github.com/users/0x4007/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0x4007/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0x4007/subscriptions", + "organizations_url": "https://api.github.com/users/0x4007/orgs", + "repos_url": "https://api.github.com/users/0x4007/repos", + "events_url": "https://api.github.com/users/0x4007/events{/privacy}", + "received_events_url": "https://api.github.com/users/0x4007/received_events", + "type": "User", + "site_admin": false + }, + "body": "Resolves https://github.com/ubiquity/work.ubq.fi/issues/69\r\n\r\n\r\n", + "created_at": "2024-06-24T12:54:40Z", + "updated_at": "2024-06-24T16:02:27Z", + "closed_at": "2024-06-24T15:05:43Z", + "merged_at": "2024-06-24T15:05:43Z", + "merge_commit_sha": "2d22259b2abe38d2f763893c29efa429113905b8", + "assignee": null, + "assignees": [ + + ], + "requested_reviewers": [ + { + "login": "gentlementlegen", + "id": 9807008, + "node_id": "MDQ6VXNlcjk4MDcwMDg=", + "avatar_url": "https://avatars.githubusercontent.com/u/9807008?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/gentlementlegen", + "html_url": "https://github.com/gentlementlegen", + "followers_url": "https://api.github.com/users/gentlementlegen/followers", + "following_url": "https://api.github.com/users/gentlementlegen/following{/other_user}", + "gists_url": "https://api.github.com/users/gentlementlegen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gentlementlegen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gentlementlegen/subscriptions", + "organizations_url": "https://api.github.com/users/gentlementlegen/orgs", + "repos_url": "https://api.github.com/users/gentlementlegen/repos", + "events_url": "https://api.github.com/users/gentlementlegen/events{/privacy}", + "received_events_url": "https://api.github.com/users/gentlementlegen/received_events", + "type": "User", + "site_admin": false + } + ], + "requested_teams": [ + + ], + "labels": [ + + ], + "milestone": null, + "draft": false, + "commits_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70/commits", + "review_comments_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70/comments", + "review_comment_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70/comments", + "statuses_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/statuses/0bfe0b4f9fd69b8ab22e1afb28920ffc4af43d8a", + "head": { + "label": "0x4007:feat/bottom-sorting-manager", + "ref": "feat/bottom-sorting-manager", + "sha": "0bfe0b4f9fd69b8ab22e1afb28920ffc4af43d8a", + "user": { + "login": "0x4007", + "id": 4975670, + "node_id": "MDQ6VXNlcjQ5NzU2NzA=", + "avatar_url": "https://avatars.githubusercontent.com/u/4975670?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0x4007", + "html_url": "https://github.com/0x4007", + "followers_url": "https://api.github.com/users/0x4007/followers", + "following_url": "https://api.github.com/users/0x4007/following{/other_user}", + "gists_url": "https://api.github.com/users/0x4007/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0x4007/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0x4007/subscriptions", + "organizations_url": "https://api.github.com/users/0x4007/orgs", + "repos_url": "https://api.github.com/users/0x4007/repos", + "events_url": "https://api.github.com/users/0x4007/events{/privacy}", + "received_events_url": "https://api.github.com/users/0x4007/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 758360913, + "node_id": "R_kgDOLTOrUQ", + "name": "work.ubq.fi", + "full_name": "0x4007/work.ubq.fi", + "private": false, + "owner": { + "login": "0x4007", + "id": 4975670, + "node_id": "MDQ6VXNlcjQ5NzU2NzA=", + "avatar_url": "https://avatars.githubusercontent.com/u/4975670?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0x4007", + "html_url": "https://github.com/0x4007", + "followers_url": "https://api.github.com/users/0x4007/followers", + "following_url": "https://api.github.com/users/0x4007/following{/other_user}", + "gists_url": "https://api.github.com/users/0x4007/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0x4007/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0x4007/subscriptions", + "organizations_url": "https://api.github.com/users/0x4007/orgs", + "repos_url": "https://api.github.com/users/0x4007/repos", + "events_url": "https://api.github.com/users/0x4007/events{/privacy}", + "received_events_url": "https://api.github.com/users/0x4007/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/0x4007/work.ubq.fi", + "description": "A user interface for https://github.com/ubiquity/devpool-directory/issues", + "fork": true, + "url": "https://api.github.com/repos/0x4007/work.ubq.fi", + "forks_url": "https://api.github.com/repos/0x4007/work.ubq.fi/forks", + "keys_url": "https://api.github.com/repos/0x4007/work.ubq.fi/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/0x4007/work.ubq.fi/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/0x4007/work.ubq.fi/teams", + "hooks_url": "https://api.github.com/repos/0x4007/work.ubq.fi/hooks", + "issue_events_url": "https://api.github.com/repos/0x4007/work.ubq.fi/issues/events{/number}", + "events_url": "https://api.github.com/repos/0x4007/work.ubq.fi/events", + "assignees_url": "https://api.github.com/repos/0x4007/work.ubq.fi/assignees{/user}", + "branches_url": "https://api.github.com/repos/0x4007/work.ubq.fi/branches{/branch}", + "tags_url": "https://api.github.com/repos/0x4007/work.ubq.fi/tags", + "blobs_url": "https://api.github.com/repos/0x4007/work.ubq.fi/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/0x4007/work.ubq.fi/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/0x4007/work.ubq.fi/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/0x4007/work.ubq.fi/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/0x4007/work.ubq.fi/statuses/{sha}", + "languages_url": "https://api.github.com/repos/0x4007/work.ubq.fi/languages", + "stargazers_url": "https://api.github.com/repos/0x4007/work.ubq.fi/stargazers", + "contributors_url": "https://api.github.com/repos/0x4007/work.ubq.fi/contributors", + "subscribers_url": "https://api.github.com/repos/0x4007/work.ubq.fi/subscribers", + "subscription_url": "https://api.github.com/repos/0x4007/work.ubq.fi/subscription", + "commits_url": "https://api.github.com/repos/0x4007/work.ubq.fi/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/0x4007/work.ubq.fi/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/0x4007/work.ubq.fi/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/0x4007/work.ubq.fi/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/0x4007/work.ubq.fi/contents/{+path}", + "compare_url": "https://api.github.com/repos/0x4007/work.ubq.fi/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/0x4007/work.ubq.fi/merges", + "archive_url": "https://api.github.com/repos/0x4007/work.ubq.fi/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/0x4007/work.ubq.fi/downloads", + "issues_url": "https://api.github.com/repos/0x4007/work.ubq.fi/issues{/number}", + "pulls_url": "https://api.github.com/repos/0x4007/work.ubq.fi/pulls{/number}", + "milestones_url": "https://api.github.com/repos/0x4007/work.ubq.fi/milestones{/number}", + "notifications_url": "https://api.github.com/repos/0x4007/work.ubq.fi/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/0x4007/work.ubq.fi/labels{/name}", + "releases_url": "https://api.github.com/repos/0x4007/work.ubq.fi/releases{/id}", + "deployments_url": "https://api.github.com/repos/0x4007/work.ubq.fi/deployments", + "created_at": "2024-02-16T06:33:39Z", + "updated_at": "2024-06-24T17:07:44Z", + "pushed_at": "2024-06-24T17:07:40Z", + "git_url": "git://github.com/0x4007/work.ubq.fi.git", + "ssh_url": "git@github.com:0x4007/work.ubq.fi.git", + "clone_url": "https://github.com/0x4007/work.ubq.fi.git", + "svn_url": "https://github.com/0x4007/work.ubq.fi", + "homepage": "https://work.ubq.fi", + "size": 1012, + "stargazers_count": 0, + "watchers_count": 0, + "language": "TypeScript", + "has_issues": false, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + + ], + "visibility": "public", + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "development" + } + }, + "base": { + "label": "ubiquity:development", + "ref": "development", + "sha": "c80e1c56cd8659ff95bf86d26fef1327c90448ac", + "user": { + "login": "ubiquity", + "id": 76412717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjc2NDEyNzE3", + "avatar_url": "https://avatars.githubusercontent.com/u/76412717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ubiquity", + "html_url": "https://github.com/ubiquity", + "followers_url": "https://api.github.com/users/ubiquity/followers", + "following_url": "https://api.github.com/users/ubiquity/following{/other_user}", + "gists_url": "https://api.github.com/users/ubiquity/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ubiquity/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ubiquity/subscriptions", + "organizations_url": "https://api.github.com/users/ubiquity/orgs", + "repos_url": "https://api.github.com/users/ubiquity/repos", + "events_url": "https://api.github.com/users/ubiquity/events{/privacy}", + "received_events_url": "https://api.github.com/users/ubiquity/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 724913995, + "node_id": "R_kgDOKzVPSw", + "name": "work.ubq.fi", + "full_name": "ubiquity/work.ubq.fi", + "private": false, + "owner": { + "login": "ubiquity", + "id": 76412717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjc2NDEyNzE3", + "avatar_url": "https://avatars.githubusercontent.com/u/76412717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ubiquity", + "html_url": "https://github.com/ubiquity", + "followers_url": "https://api.github.com/users/ubiquity/followers", + "following_url": "https://api.github.com/users/ubiquity/following{/other_user}", + "gists_url": "https://api.github.com/users/ubiquity/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ubiquity/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ubiquity/subscriptions", + "organizations_url": "https://api.github.com/users/ubiquity/orgs", + "repos_url": "https://api.github.com/users/ubiquity/repos", + "events_url": "https://api.github.com/users/ubiquity/events{/privacy}", + "received_events_url": "https://api.github.com/users/ubiquity/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/ubiquity/work.ubq.fi", + "description": "A user interface for https://github.com/ubiquity/devpool-directory/issues", + "fork": false, + "url": "https://api.github.com/repos/ubiquity/work.ubq.fi", + "forks_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/forks", + "keys_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/teams", + "hooks_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/hooks", + "issue_events_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/events{/number}", + "events_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/events", + "assignees_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/assignees{/user}", + "branches_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/branches{/branch}", + "tags_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/tags", + "blobs_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/languages", + "stargazers_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/stargazers", + "contributors_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/contributors", + "subscribers_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/subscribers", + "subscription_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/subscription", + "commits_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/contents/{+path}", + "compare_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/merges", + "archive_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/downloads", + "issues_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues{/number}", + "pulls_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/labels{/name}", + "releases_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/releases{/id}", + "deployments_url": "https://api.github.com/repos/ubiquity/work.ubq.fi/deployments", + "created_at": "2023-11-29T03:30:57Z", + "updated_at": "2024-08-19T01:38:18Z", + "pushed_at": "2024-08-21T10:53:21Z", + "git_url": "git://github.com/ubiquity/work.ubq.fi.git", + "ssh_url": "git@github.com:ubiquity/work.ubq.fi.git", + "clone_url": "https://github.com/ubiquity/work.ubq.fi.git", + "svn_url": "https://github.com/ubiquity/work.ubq.fi", + "homepage": "https://work.ubq.fi", + "size": 885, + "stargazers_count": 0, + "watchers_count": 0, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": true, + "forks_count": 14, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 12, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + + ], + "visibility": "public", + "forks": 14, + "open_issues": 12, + "watchers": 0, + "default_branch": "development" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70" + }, + "html": { + "href": "https://github.com/ubiquity/work.ubq.fi/pull/70" + }, + "issue": { + "href": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70" + }, + "comments": { + "href": "https://api.github.com/repos/ubiquity/work.ubq.fi/issues/70/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/ubiquity/work.ubq.fi/pulls/70/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/ubiquity/work.ubq.fi/statuses/0bfe0b4f9fd69b8ab22e1afb28920ffc4af43d8a" + } + }, + "author_association": "MEMBER", + "auto_merge": null, + "active_lock_reason": null, + "merged": true, + "mergeable": null, + "rebaseable": null, + "mergeable_state": "unknown", + "merged_by": { + "login": "gentlementlegen", + "id": 9807008, + "node_id": "MDQ6VXNlcjk4MDcwMDg=", + "avatar_url": "https://avatars.githubusercontent.com/u/9807008?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/gentlementlegen", + "html_url": "https://github.com/gentlementlegen", + "followers_url": "https://api.github.com/users/gentlementlegen/followers", + "following_url": "https://api.github.com/users/gentlementlegen/following{/other_user}", + "gists_url": "https://api.github.com/users/gentlementlegen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gentlementlegen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gentlementlegen/subscriptions", + "organizations_url": "https://api.github.com/users/gentlementlegen/orgs", + "repos_url": "https://api.github.com/users/gentlementlegen/repos", + "events_url": "https://api.github.com/users/gentlementlegen/events{/privacy}", + "received_events_url": "https://api.github.com/users/gentlementlegen/received_events", + "type": "User", + "site_admin": false + }, + "comments": 4, + "review_comments": 0, + "maintainer_can_modify": false, + "commits": 14, + "additions": 119, + "deletions": 72, + "changed_files": 7 +} From ada5be8f81c531868431d375be1ed36a9774e1fe Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 15:19:07 +0900 Subject: [PATCH 13/18] chore: test fix (WIP) --- src/parser/content-evaluator-module.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/parser/content-evaluator-module.ts b/src/parser/content-evaluator-module.ts index ec306e5c..53c7c31f 100644 --- a/src/parser/content-evaluator-module.ts +++ b/src/parser/content-evaluator-module.ts @@ -132,6 +132,15 @@ export class ContentEvaluatorModule implements Module { specification: string, comments: { id: number; comment: string }[] ): Promise { + return Promise.resolve( + (() => { + const relevance: { [k: string]: number } = {}; + comments.forEach((comment) => { + relevance[`${comment.id}`] = 0.8; + }); + return relevance; + })() + ); const prompt = this._generatePrompt(specification, comments); const dummyResponse = JSON.stringify(this._generateDummyResponse(comments), null, 2); const maxTokens = this._calculateMaxTokens(dummyResponse); From d63620879873811e116c68b2ee8c657b2077a04a Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 15:37:19 +0900 Subject: [PATCH 14/18] chore: test fix (WIP) --- src/configuration/incentives.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configuration/incentives.ts b/src/configuration/incentives.ts index ac31d884..f8884871 100644 --- a/src/configuration/incentives.ts +++ b/src/configuration/incentives.ts @@ -35,7 +35,7 @@ export const incentivesConfigurationSchema = T.Object( contentEvaluator: T.Union([contentEvaluatorConfigurationType, T.Null()], { default: null }), userExtractor: T.Union([userExtractorConfigurationType, T.Null()], { default: null }), dataPurge: T.Union([dataPurgeConfigurationType, T.Null()], { default: null }), - formattingEvaluator: T.Union([formattingEvaluatorConfigurationType, T.Null()], { default: null }), + formattingEvaluator: formattingEvaluatorConfigurationType, permitGeneration: T.Union([permitGenerationConfigurationType, T.Null()], { default: null }), githubComment: T.Union([githubCommentConfigurationType, T.Null()], { default: null }), }, From 09ada154b3f5849ae65c7303178ee598e0f21ef7 Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:03:42 +0900 Subject: [PATCH 15/18] chore: removed logs and downgraded permit generator --- package.json | 2 +- src/configuration/incentives.ts | 2 +- src/parser/content-evaluator-module.ts | 9 --------- yarn.lock | 11 +++++------ 4 files changed, 7 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 77695c0b..6ff11c4e 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@octokit/webhooks": "13.2.7", "@sinclair/typebox": "0.32.23", "@supabase/supabase-js": "2.42.0", - "@ubiquibot/permit-generation": "1.4.2", + "@ubiquibot/permit-generation": "1.3.1", "@ubiquity-dao/rpc-handler": "1.3.0", "@ubiquity-dao/ubiquibot-logger": "1.3.1", "decimal.js": "10.4.3", diff --git a/src/configuration/incentives.ts b/src/configuration/incentives.ts index f8884871..ac31d884 100644 --- a/src/configuration/incentives.ts +++ b/src/configuration/incentives.ts @@ -35,7 +35,7 @@ export const incentivesConfigurationSchema = T.Object( contentEvaluator: T.Union([contentEvaluatorConfigurationType, T.Null()], { default: null }), userExtractor: T.Union([userExtractorConfigurationType, T.Null()], { default: null }), dataPurge: T.Union([dataPurgeConfigurationType, T.Null()], { default: null }), - formattingEvaluator: formattingEvaluatorConfigurationType, + formattingEvaluator: T.Union([formattingEvaluatorConfigurationType, T.Null()], { default: null }), permitGeneration: T.Union([permitGenerationConfigurationType, T.Null()], { default: null }), githubComment: T.Union([githubCommentConfigurationType, T.Null()], { default: null }), }, diff --git a/src/parser/content-evaluator-module.ts b/src/parser/content-evaluator-module.ts index 53c7c31f..ec306e5c 100644 --- a/src/parser/content-evaluator-module.ts +++ b/src/parser/content-evaluator-module.ts @@ -132,15 +132,6 @@ export class ContentEvaluatorModule implements Module { specification: string, comments: { id: number; comment: string }[] ): Promise { - return Promise.resolve( - (() => { - const relevance: { [k: string]: number } = {}; - comments.forEach((comment) => { - relevance[`${comment.id}`] = 0.8; - }); - return relevance; - })() - ); const prompt = this._generatePrompt(specification, comments); const dummyResponse = JSON.stringify(this._generateDummyResponse(comments), null, 2); const maxTokens = this._calculateMaxTokens(dummyResponse); diff --git a/yarn.lock b/yarn.lock index 363d01af..fa7c37a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3309,10 +3309,10 @@ "@typescript-eslint/types" "6.21.0" eslint-visitor-keys "^3.4.1" -"@ubiquibot/permit-generation@1.4.2": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@ubiquibot/permit-generation/-/permit-generation-1.4.2.tgz#213be0f6cc1d9ca9775da915d69706fb562c456c" - integrity sha512-3gcYlApQWC1iKxiqVt+tQk5hqxovM1EGlkSNCAOZ7WPhmVWfoKvRI8On5AJz3Drr0VML4TjJxYklV40ar5go+A== +"@ubiquibot/permit-generation@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@ubiquibot/permit-generation/-/permit-generation-1.3.1.tgz#d162fbd9e2f3f05a0000d7a3e154bcf4e4f9fd9e" + integrity sha512-iBopgqCeUXHRIsbGKqvmxdD01fzWBProYrWLpqZuhpStHo1PRt17CU4lPu98YkMC3ZfFslxxj/8SExroAx/+2g== dependencies: "@actions/core" "^1.10.1" "@actions/github" "^6.0.0" @@ -3320,13 +3320,12 @@ "@octokit/webhooks" "^13.1.0" "@sinclair/typebox" "^0.32.5" "@supabase/supabase-js" "2.42.0" - "@ubiquity-dao/rpc-handler" "^1.1.0" "@uniswap/permit2-sdk" "^1.2.0" dotenv "^16.4.4" ethers "6.11.1" libsodium-wrappers "^0.7.13" -"@ubiquity-dao/rpc-handler@1.3.0", "@ubiquity-dao/rpc-handler@^1.1.0": +"@ubiquity-dao/rpc-handler@1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@ubiquity-dao/rpc-handler/-/rpc-handler-1.3.0.tgz#d6d26dda525a572539e969353070562c4cc0237c" integrity sha512-BoN3IENjJWaMHSk3tC2I48e0Bz8NbwmjymLQ9EamN3lMf9djTEdWbmD2baRr9pIZJ6Sh5HzgYdCN+i7I1lZbVw== From 0b2bf07c0700d664bd5c8341e7f8985f8b0a4745 Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:14:58 +0900 Subject: [PATCH 16/18] chore: fixed test --- tests/action.test.ts | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tests/action.test.ts b/tests/action.test.ts index 8f1bb0de..afbd0c7f 100644 --- a/tests/action.test.ts +++ b/tests/action.test.ts @@ -22,6 +22,45 @@ afterEach(() => { }); afterAll(() => server.close()); +jest.mock("@octokit/plugin-paginate-graphql", () => ({ + paginateGraphQL() { + return { + graphql: { + paginate() { + return { + repository: { + issue: { + closedByPullRequestsReferences: { + edges: [ + { + node: { + id: "PR_kwDOK87YcM5nHc9o", + title: "chore: add new shared evmPrivateKeyEncrypted", + number: 25, + url: "https://github.com/ubiquibot/comment-incentives/pull/25", + author: { + login: "gitcoindev", + id: 88761781, + }, + repository: { + owner: { + login: "ubiquibot", + }, + name: "comment-incentives", + }, + }, + }, + ], + }, + }, + }, + }; + }, + }, + }; + }, +})); + describe("Action tests", () => { it("Should skip when the issue is closed without the completed status", async () => { jest.mock("../src/parser/command-line", () => { From 313f11b209a3b79a8d4ada2022505a510d253a56 Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 21:15:06 +0900 Subject: [PATCH 17/18] feat: only extracting the last pull request --- src/data-collection/collect-linked-pulls.ts | 2 +- src/issue-activity.ts | 4 ++-- src/types/requests.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/data-collection/collect-linked-pulls.ts b/src/data-collection/collect-linked-pulls.ts index df0d4061..4d077294 100644 --- a/src/data-collection/collect-linked-pulls.ts +++ b/src/data-collection/collect-linked-pulls.ts @@ -20,7 +20,7 @@ type IssueWithClosedByPRs = { }; }; -export async function collectLinkedMergedPulls(issue: IssueParams) { +export async function collectLinkedMergedPull(issue: IssueParams) { const octokit = getOctokitInstance(); const { owner, repo, issue_number } = issue; diff --git a/src/issue-activity.ts b/src/issue-activity.ts index 3e2ec213..e4cc68f9 100644 --- a/src/issue-activity.ts +++ b/src/issue-activity.ts @@ -1,7 +1,7 @@ import { CommentAssociation, CommentKind } from "./configuration/comment-types"; import configuration from "./configuration/config-reader"; import { DataCollectionConfiguration } from "./configuration/data-collection-config"; -import { collectLinkedMergedPulls } from "./data-collection/collect-linked-pulls"; +import { collectLinkedMergedPull } from "./data-collection/collect-linked-pulls"; import { GitHubIssue, GitHubIssueComment, @@ -47,7 +47,7 @@ export class IssueActivity { private async _getLinkedReviews(): Promise { logger.debug("Trying to fetch linked pull-requests for", this._issueParams); - const pulls = await collectLinkedMergedPulls(this._issueParams); + const pulls = await collectLinkedMergedPull(this._issueParams); logger.debug("Collected linked pull-requests", { pulls }); const promises = pulls .map(async (pull) => { diff --git a/src/types/requests.ts b/src/types/requests.ts index a209a45d..910db737 100644 --- a/src/types/requests.ts +++ b/src/types/requests.ts @@ -3,7 +3,7 @@ export const LINKED_PULL_REQUESTS = /* GraphQL */ ` repository(owner: $owner, name: $repo) { issue(number: $issue_number) { id - closedByPullRequestsReferences(first: 10, includeClosedPrs: false, after: $cursor) { + closedByPullRequestsReferences(first: 10, includeClosedPrs: false, after: $cursor, last: 1) { edges { node { id From 67cfc6183b7b94100979eabb5343db4640d6154c Mon Sep 17 00:00:00 2001 From: Mentlegen <9807008+gentlementlegen@users.noreply.github.com> Date: Mon, 26 Aug 2024 21:19:33 +0900 Subject: [PATCH 18/18] chore: fix last pr issue --- src/data-collection/collect-linked-pulls.ts | 2 +- src/types/requests.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data-collection/collect-linked-pulls.ts b/src/data-collection/collect-linked-pulls.ts index 4d077294..63bdbe8c 100644 --- a/src/data-collection/collect-linked-pulls.ts +++ b/src/data-collection/collect-linked-pulls.ts @@ -30,5 +30,5 @@ export async function collectLinkedMergedPull(issue: IssueParams) { issue_number, }); - return result.repository.issue.closedByPullRequestsReferences.edges.map((edge) => edge.node); + return result.repository.issue.closedByPullRequestsReferences.edges.map((edge) => edge.node).slice(-1); } diff --git a/src/types/requests.ts b/src/types/requests.ts index 910db737..a209a45d 100644 --- a/src/types/requests.ts +++ b/src/types/requests.ts @@ -3,7 +3,7 @@ export const LINKED_PULL_REQUESTS = /* GraphQL */ ` repository(owner: $owner, name: $repo) { issue(number: $issue_number) { id - closedByPullRequestsReferences(first: 10, includeClosedPrs: false, after: $cursor, last: 1) { + closedByPullRequestsReferences(first: 10, includeClosedPrs: false, after: $cursor) { edges { node { id