From 0218ca7bbe62c428b5b383c5d6f99cef97fc5da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C5=A1per=20Grom?= Date: Fri, 10 Jan 2025 12:13:15 +0100 Subject: [PATCH 01/30] Github archive shutdown --- .../components/connect/github-connect.vue | 76 +++ .../components/github-connect.vue | 2 +- .../components/github-details-modal.vue | 112 ++++ .../components/github-dropdown.vue | 2 +- .../components/github-params.vue | 76 +++ .../github-settings-add-repository-modal.vue | 4 +- .../settings/github-settings-drawer.vue | 293 +++++++++++ .../settings/github-settings-empty.vue | 0 .../settings/github-settings-mapping.vue | 8 +- .../settings/github-settings-org-item.vue | 4 +- .../settings/github-settings-repo-item.vue | 2 +- ...thub-settings-repositories-bulk-select.vue | 0 .../integrations/github-archive/config.ts | 16 + .../services/github.api.service.ts | 2 +- .../types/GithubSettings.ts | 0 .../github-connect-finishing-modal.vue | 39 ++ .../connect/github-connect-modal.vue | 220 ++++++++ .../components/connect/github-connect.vue | 20 +- .../github/components/github-action.vue | 30 ++ .../github/components/github-status.vue | 23 + .../settings/github-settings-bulk-select.vue | 147 ++++++ .../settings/github-settings-drawer.vue | 487 +++++++++--------- .../src/config/integrations/github/config.ts | 8 +- 23 files changed, 1313 insertions(+), 258 deletions(-) create mode 100644 frontend/src/config/integrations/github-archive/components/connect/github-connect.vue rename frontend/src/config/integrations/{github => github-archive}/components/github-connect.vue (96%) create mode 100644 frontend/src/config/integrations/github-archive/components/github-details-modal.vue rename frontend/src/config/integrations/{github => github-archive}/components/github-dropdown.vue (93%) create mode 100644 frontend/src/config/integrations/github-archive/components/github-params.vue rename frontend/src/config/integrations/{github => github-archive}/components/settings/github-settings-add-repository-modal.vue (98%) create mode 100644 frontend/src/config/integrations/github-archive/components/settings/github-settings-drawer.vue rename frontend/src/config/integrations/{github => github-archive}/components/settings/github-settings-empty.vue (100%) rename frontend/src/config/integrations/{github => github-archive}/components/settings/github-settings-mapping.vue (93%) rename frontend/src/config/integrations/{github => github-archive}/components/settings/github-settings-org-item.vue (96%) rename frontend/src/config/integrations/{github => github-archive}/components/settings/github-settings-repo-item.vue (97%) rename frontend/src/config/integrations/{github => github-archive}/components/settings/github-settings-repositories-bulk-select.vue (100%) create mode 100644 frontend/src/config/integrations/github-archive/config.ts rename frontend/src/config/integrations/{github => github-archive}/services/github.api.service.ts (95%) rename frontend/src/config/integrations/{github => github-archive}/types/GithubSettings.ts (100%) create mode 100644 frontend/src/config/integrations/github/components/connect/github-connect-finishing-modal.vue create mode 100644 frontend/src/config/integrations/github/components/connect/github-connect-modal.vue create mode 100644 frontend/src/config/integrations/github/components/github-action.vue create mode 100644 frontend/src/config/integrations/github/components/github-status.vue create mode 100644 frontend/src/config/integrations/github/components/settings/github-settings-bulk-select.vue diff --git a/frontend/src/config/integrations/github-archive/components/connect/github-connect.vue b/frontend/src/config/integrations/github-archive/components/connect/github-connect.vue new file mode 100644 index 0000000000..fbf455d262 --- /dev/null +++ b/frontend/src/config/integrations/github-archive/components/connect/github-connect.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/frontend/src/config/integrations/github/components/github-connect.vue b/frontend/src/config/integrations/github-archive/components/github-connect.vue similarity index 96% rename from frontend/src/config/integrations/github/components/github-connect.vue rename to frontend/src/config/integrations/github-archive/components/github-connect.vue index ad1ecf5bbd..25a92a6cc6 100644 --- a/frontend/src/config/integrations/github/components/github-connect.vue +++ b/frontend/src/config/integrations/github-archive/components/github-connect.vue @@ -31,7 +31,7 @@ import { ref, computed } from 'vue'; import LfButton from '@/ui-kit/button/Button.vue'; import LfIcon from '@/ui-kit/icon/Icon.vue'; -import LfGithubSettingsDrawer from '@/config/integrations/github/components/settings/github-settings-drawer.vue'; +import LfGithubSettingsDrawer from '@/config/integrations/github-archive/components/settings/github-settings-drawer.vue'; import { isTeamUser } from '@/config/permissions'; import { useAuthStore } from '@/modules/auth/store/auth.store'; import { storeToRefs } from 'pinia'; diff --git a/frontend/src/config/integrations/github-archive/components/github-details-modal.vue b/frontend/src/config/integrations/github-archive/components/github-details-modal.vue new file mode 100644 index 0000000000..29fd10c473 --- /dev/null +++ b/frontend/src/config/integrations/github-archive/components/github-details-modal.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/frontend/src/config/integrations/github/components/github-dropdown.vue b/frontend/src/config/integrations/github-archive/components/github-dropdown.vue similarity index 93% rename from frontend/src/config/integrations/github/components/github-dropdown.vue rename to frontend/src/config/integrations/github-archive/components/github-dropdown.vue index ce508a7b96..7126c09568 100644 --- a/frontend/src/config/integrations/github/components/github-dropdown.vue +++ b/frontend/src/config/integrations/github-archive/components/github-dropdown.vue @@ -16,7 +16,7 @@ import { defineProps, ref } from 'vue'; import LfDropdownItem from '@/ui-kit/dropdown/DropdownItem.vue'; import LfIcon from '@/ui-kit/icon/Icon.vue'; -import LfGithubSettingsDrawer from '@/config/integrations/github/components/settings/github-settings-drawer.vue'; +import LfGithubSettingsDrawer from '@/config/integrations/github-archive/components/settings/github-settings-drawer.vue'; const props = defineProps<{ integration: any, diff --git a/frontend/src/config/integrations/github-archive/components/github-params.vue b/frontend/src/config/integrations/github-archive/components/github-params.vue new file mode 100644 index 0000000000..408f93b475 --- /dev/null +++ b/frontend/src/config/integrations/github-archive/components/github-params.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/frontend/src/config/integrations/github/components/settings/github-settings-add-repository-modal.vue b/frontend/src/config/integrations/github-archive/components/settings/github-settings-add-repository-modal.vue similarity index 98% rename from frontend/src/config/integrations/github/components/settings/github-settings-add-repository-modal.vue rename to frontend/src/config/integrations/github-archive/components/settings/github-settings-add-repository-modal.vue index 771b14d064..19ed448496 100644 --- a/frontend/src/config/integrations/github/components/settings/github-settings-add-repository-modal.vue +++ b/frontend/src/config/integrations/github-archive/components/settings/github-settings-add-repository-modal.vue @@ -160,8 +160,8 @@ import { GitHubOrganization, GitHubRepository, GitHubSettingsRepository, -} from '@/config/integrations/github/types/GithubSettings'; -import { GithubApiService } from '@/config/integrations/github/services/github.api.service'; +} from '@/config/integrations/github-archive/types/GithubSettings'; +import { GithubApiService } from '@/config/integrations/github-archive/services/github.api.service'; import Message from '@/shared/message/message'; import dayjs from 'dayjs'; diff --git a/frontend/src/config/integrations/github-archive/components/settings/github-settings-drawer.vue b/frontend/src/config/integrations/github-archive/components/settings/github-settings-drawer.vue new file mode 100644 index 0000000000..0051b4832a --- /dev/null +++ b/frontend/src/config/integrations/github-archive/components/settings/github-settings-drawer.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/frontend/src/config/integrations/github/components/settings/github-settings-empty.vue b/frontend/src/config/integrations/github-archive/components/settings/github-settings-empty.vue similarity index 100% rename from frontend/src/config/integrations/github/components/settings/github-settings-empty.vue rename to frontend/src/config/integrations/github-archive/components/settings/github-settings-empty.vue diff --git a/frontend/src/config/integrations/github/components/settings/github-settings-mapping.vue b/frontend/src/config/integrations/github-archive/components/settings/github-settings-mapping.vue similarity index 93% rename from frontend/src/config/integrations/github/components/settings/github-settings-mapping.vue rename to frontend/src/config/integrations/github-archive/components/settings/github-settings-mapping.vue index 7b996026aa..07463dbea1 100644 --- a/frontend/src/config/integrations/github/components/settings/github-settings-mapping.vue +++ b/frontend/src/config/integrations/github-archive/components/settings/github-settings-mapping.vue @@ -73,14 +73,14 @@ import LfIcon from '@/ui-kit/icon/Icon.vue'; import { computed, ref } from 'vue'; import LfSearch from '@/ui-kit/search/Search.vue'; import LfGithubSettingsRepositoriesBulkSelect - from '@/config/integrations/github/components/settings/github-settings-repositories-bulk-select.vue'; + from '@/config/integrations/github-archive/components/settings/github-settings-repositories-bulk-select.vue'; import { GitHubOrganization, GitHubSettingsRepository, -} from '@/config/integrations/github/types/GithubSettings'; -import LfGithubSettingsOrgItem from '@/config/integrations/github/components/settings/github-settings-org-item.vue'; +} from '@/config/integrations/github-archive/types/GithubSettings'; +import LfGithubSettingsOrgItem from '@/config/integrations/github-archive/components/settings/github-settings-org-item.vue'; import LfTable from '@/ui-kit/table/Table.vue'; -import LfGithubSettingsRepoItem from '@/config/integrations/github/components/settings/github-settings-repo-item.vue'; +import LfGithubSettingsRepoItem from '@/config/integrations/github-archive/components/settings/github-settings-repo-item.vue'; import LfIconOld from '@/ui-kit/icon/IconOld.vue'; const props = defineProps<{ diff --git a/frontend/src/config/integrations/github/components/settings/github-settings-org-item.vue b/frontend/src/config/integrations/github-archive/components/settings/github-settings-org-item.vue similarity index 96% rename from frontend/src/config/integrations/github/components/settings/github-settings-org-item.vue rename to frontend/src/config/integrations/github-archive/components/settings/github-settings-org-item.vue index a3412a6f8d..7828b191eb 100644 --- a/frontend/src/config/integrations/github/components/settings/github-settings-org-item.vue +++ b/frontend/src/config/integrations/github-archive/components/settings/github-settings-org-item.vue @@ -68,7 +68,7 @@ import { GitHubOrganization, GitHubRepository, GitHubSettingsRepository, -} from '@/config/integrations/github/types/GithubSettings'; +} from '@/config/integrations/github-archive/types/GithubSettings'; import LfAvatar from '@/ui-kit/avatar/Avatar.vue'; import LfIconOld from '@/ui-kit/icon/IconOld.vue'; import LfButton from '@/ui-kit/button/Button.vue'; @@ -78,7 +78,7 @@ import { computed } from 'vue'; import LfDropdown from '@/ui-kit/dropdown/Dropdown.vue'; import LfDropdownItem from '@/ui-kit/dropdown/DropdownItem.vue'; import dayjs from 'dayjs'; -import { GithubApiService } from '@/config/integrations/github/services/github.api.service'; +import { GithubApiService } from '@/config/integrations/github-archive/services/github.api.service'; const props = defineProps<{ organizations: GitHubOrganization[]; diff --git a/frontend/src/config/integrations/github/components/settings/github-settings-repo-item.vue b/frontend/src/config/integrations/github-archive/components/settings/github-settings-repo-item.vue similarity index 97% rename from frontend/src/config/integrations/github/components/settings/github-settings-repo-item.vue rename to frontend/src/config/integrations/github-archive/components/settings/github-settings-repo-item.vue index 22e0a3d719..b3e9785f26 100644 --- a/frontend/src/config/integrations/github/components/settings/github-settings-repo-item.vue +++ b/frontend/src/config/integrations/github-archive/components/settings/github-settings-repo-item.vue @@ -49,7 +49,7 @@ + + diff --git a/frontend/src/config/integrations/github/components/connect/github-connect-modal.vue b/frontend/src/config/integrations/github/components/connect/github-connect-modal.vue new file mode 100644 index 0000000000..41f50df2d7 --- /dev/null +++ b/frontend/src/config/integrations/github/components/connect/github-connect-modal.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/frontend/src/config/integrations/github/components/connect/github-connect.vue b/frontend/src/config/integrations/github/components/connect/github-connect.vue index fbf455d262..bb6a355448 100644 --- a/frontend/src/config/integrations/github/components/connect/github-connect.vue +++ b/frontend/src/config/integrations/github/components/connect/github-connect.vue @@ -5,18 +5,10 @@ - - - - - Connect - - - + + + Connect + + + Map repositories + + + + + + + diff --git a/frontend/src/config/integrations/github/components/github-status.vue b/frontend/src/config/integrations/github/components/github-status.vue new file mode 100644 index 0000000000..66d2b9d4af --- /dev/null +++ b/frontend/src/config/integrations/github/components/github-status.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/frontend/src/config/integrations/github/components/settings/github-settings-bulk-select.vue b/frontend/src/config/integrations/github/components/settings/github-settings-bulk-select.vue new file mode 100644 index 0000000000..4028814ac8 --- /dev/null +++ b/frontend/src/config/integrations/github/components/settings/github-settings-bulk-select.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/frontend/src/config/integrations/github/components/settings/github-settings-drawer.vue b/frontend/src/config/integrations/github/components/settings/github-settings-drawer.vue index 402322270d..d2402ab47f 100644 --- a/frontend/src/config/integrations/github/components/settings/github-settings-drawer.vue +++ b/frontend/src/config/integrations/github/components/settings/github-settings-drawer.vue @@ -1,129 +1,200 @@ + + From fde9b613cfdbe7d3ceadda39b762158bb220be04 Mon Sep 17 00:00:00 2001 From: garrrikkotua Date: Thu, 16 Jan 2025 16:07:03 +0400 Subject: [PATCH 18/30] introduce env and switch libs --- .../config/custom-environment-variables.json | 3 +- .../repositories/githubReposRepository.ts | 19 +- backend/src/services/integrationService.ts | 155 +- .../config/custom-environment-variables.json | 3 +- .../src/service/integrationRunService.ts | 13 +- .../config/custom-environment-variables.json | 3 +- .../src/service/integrationDataService.ts | 13 +- .../src/service/integrationStreamService.ts | 21 +- .../apps/webhook_api/src/routes/github.ts | 14 +- .../src/integrations/activityTypes.ts | 4 +- .../integrations/devto/memberAttributes.ts | 2 +- .../github-old/generateStreams.ts | 94 - .../integrations/github-old/processData.ts | 1524 ----------------- .../integrations/github-old/processStream.ts | 1298 -------------- .../github-old/processWebhookStream.ts | 475 ----- .../{github => github-snowflake}/cap.ts | 0 .../github-snowflake/generateStreams.ts | 43 + .../{github-old => github-snowflake}/grid.ts | 24 - .../{github-old => github-snowflake}/index.ts | 5 +- .../memberAttributes.ts | 7 + .../github-snowflake/processData.ts | 639 +++++++ .../github-snowflake/processStream.ts | 418 +++++ .../github-snowflake/processWebhookStream.ts | 8 + .../{github-old => github-snowflake}/types.ts | 94 +- .../api/graphql/baseQuery.ts | 0 .../api/graphql/discussionComments.ts | 0 .../api/graphql/discussions.ts | 0 .../api/graphql/forks.ts | 0 .../api/graphql/issueComments.ts | 0 .../api/graphql/issues.ts | 0 .../api/graphql/members.ts | 0 .../api/graphql/organizations.ts | 0 .../api/graphql/pullRequestComments.ts | 0 .../api/graphql/pullRequestCommits.ts | 0 .../graphql/pullRequestCommitsNoAdditions.ts | 0 .../pullRequestReviewThreadComments.ts | 0 .../api/graphql/pullRequestReviewThreads.ts | 0 .../api/graphql/pullRequests.ts | 0 .../api/graphql/stargazers.ts | 0 .../api/graphql/teams.ts | 0 .../api/graphql/types.ts | 0 .../api/rest/getAppToken.ts | 0 .../api/rest/getInstalledRepositories.ts | 0 .../integrations/github/generateStreams.ts | 101 +- .../src/integrations/github/grid.ts | 24 + .../src/integrations/github/index.ts | 3 +- .../integrations/github/memberAttributes.ts | 7 - .../src/integrations/github/processData.ts | 1249 ++++++++++++-- .../src/integrations/github/processStream.ts | 1334 ++++++++++++--- .../github/processWebhookStream.ts | 473 ++++- .../{github-old => github}/tokenRotator.ts | 0 .../src/integrations/github/types.ts | 94 +- .../integrations/src/integrations/index.ts | 8 +- .../src/integrations/prettyActivityTypes.ts | 2 +- services/libs/types/src/enums/platforms.ts | 2 +- 55 files changed, 4179 insertions(+), 3997 deletions(-) delete mode 100644 services/libs/integrations/src/integrations/github-old/generateStreams.ts delete mode 100644 services/libs/integrations/src/integrations/github-old/processData.ts delete mode 100644 services/libs/integrations/src/integrations/github-old/processStream.ts delete mode 100644 services/libs/integrations/src/integrations/github-old/processWebhookStream.ts rename services/libs/integrations/src/integrations/{github => github-snowflake}/cap.ts (100%) create mode 100644 services/libs/integrations/src/integrations/github-snowflake/generateStreams.ts rename services/libs/integrations/src/integrations/{github-old => github-snowflake}/grid.ts (66%) rename services/libs/integrations/src/integrations/{github-old => github-snowflake}/index.ts (90%) rename services/libs/integrations/src/integrations/{github-old => github-snowflake}/memberAttributes.ts (88%) create mode 100644 services/libs/integrations/src/integrations/github-snowflake/processData.ts create mode 100644 services/libs/integrations/src/integrations/github-snowflake/processStream.ts create mode 100644 services/libs/integrations/src/integrations/github-snowflake/processWebhookStream.ts rename services/libs/integrations/src/integrations/{github-old => github-snowflake}/types.ts (74%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/baseQuery.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/discussionComments.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/discussions.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/forks.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/issueComments.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/issues.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/members.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/organizations.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/pullRequestComments.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/pullRequestCommits.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/pullRequestCommitsNoAdditions.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/pullRequestReviewThreadComments.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/pullRequestReviewThreads.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/pullRequests.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/stargazers.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/teams.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/graphql/types.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/rest/getAppToken.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/api/rest/getInstalledRepositories.ts (100%) rename services/libs/integrations/src/integrations/{github-old => github}/tokenRotator.ts (100%) diff --git a/backend/config/custom-environment-variables.json b/backend/config/custom-environment-variables.json index 91e5fcf1a8..507593dc73 100644 --- a/backend/config/custom-environment-variables.json +++ b/backend/config/custom-environment-variables.json @@ -104,7 +104,8 @@ "callbackUrl": "CROWD_GITHUB_CALLBACK_URL", "privateKey": "CROWD_GITHUB_PRIVATE_KEY", "webhookSecret": "CROWD_GITHUB_WEBHOOK_SECRET", - "isCommitDataEnabled": "CROWD_GITHUB_IS_COMMIT_DATA_ENABLED" + "isCommitDataEnabled": "CROWD_GITHUB_IS_COMMIT_DATA_ENABLED", + "isSnowflakeEnabled": "CROWD_GITHUB_IS_SNOWFLAKE_ENABLED" }, "githubIssueReporter": { "appId": "CROWD_GITHUB_ISSUE_REPORTER_APP_ID", diff --git a/backend/src/database/repositories/githubReposRepository.ts b/backend/src/database/repositories/githubReposRepository.ts index c53971ac9e..30f0d843b4 100644 --- a/backend/src/database/repositories/githubReposRepository.ts +++ b/backend/src/database/repositories/githubReposRepository.ts @@ -38,7 +38,24 @@ export default class GithubReposRepository { ) } - static async updateMapping( + static async updateMapping(integrationId, mapping, options: IRepositoryOptions) { + const tenantId = options.currentTenant.id + + await GithubReposRepository.bulkInsert( + 'githubRepos', + ['tenantId', 'integrationId', 'segmentId', 'url'], + (idx) => `(:tenantId_${idx}, :integrationId_${idx}, :segmentId_${idx}, :url_${idx})`, + Object.entries(mapping).map(([url, segmentId], idx) => ({ + [`tenantId_${idx}`]: tenantId, + [`integrationId_${idx}`]: integrationId, + [`segmentId_${idx}`]: segmentId, + [`url_${idx}`]: url, + })), + options, + ) + } + + static async updateMappingSnowflake( integrationId, newMapping: Record, oldMapping: { diff --git a/backend/src/services/integrationService.ts b/backend/src/services/integrationService.ts index d8652378c0..512690a999 100644 --- a/backend/src/services/integrationService.ts +++ b/backend/src/services/integrationService.ts @@ -28,7 +28,7 @@ import GitlabReposRepository from '@/database/repositories/gitlabReposRepository import IntegrationProgressRepository from '@/database/repositories/integrationProgressRepository' import MemberSyncRemoteRepository from '@/database/repositories/memberSyncRemoteRepository' import OrganizationSyncRemoteRepository from '@/database/repositories/organizationSyncRemoteRepository' -import { IntegrationProgress } from '@/serverless/integrations/types/regularTypes' +import { IntegrationProgress, Repos } from '@/serverless/integrations/types/regularTypes' import { fetchAllGitlabGroups, fetchGitlabGroupProjects, @@ -520,43 +520,68 @@ export default class IntegrationService { * @param integrationData The integration data to create or update * @param repos The repositories data */ - private async createOrUpdateGithubIntegration(integrationData, repos) { + private async createOrUpdateGithubIntegration(integrationData, repos: Repos) { let integration const transaction = await SequelizeRepository.createTransaction(this.options) - this.options.log.error(repos.length) - try { - // First, create or update the integration without the repos data - integration = await this.createOrUpdate(integrationData, transaction) + // Get the first repo's owner since we know all repos are from same installation + const orgName = repos[0]?.owner + + // Create initial integration with org structure but empty repos + const initialOrg = { + name: orgName, + logo: integrationData.settings.orgAvatar, + url: `https://github.com/${orgName}`, + fullSync: true, + updatedAt: new Date().toISOString(), + repos: [] + } + + integration = await this.createOrUpdate({ + ...integrationData, + settings: { + ...integrationData.settings, + orgs: [initialOrg] + } + }, transaction) await SequelizeRepository.commitTransaction(transaction) + + // Transform repos into the new format + const transformedRepos = repos.map(repo => ({ + name: repo.name, + url: repo.url, + updatedAt: repo.createdAt || new Date().toISOString() + })) + + // Add repos in chunks + const chunkSize = 100 // Process 100 repos at a time + for (let i = 0; i < transformedRepos.length; i += chunkSize) { + const reposChunk = transformedRepos.slice(i, i + chunkSize) + await this.appendGitHubReposToOrg(integration.id, reposChunk) + } + + return integration + } catch (err) { await SequelizeRepository.rollbackTransaction(transaction) throw err } - - // Then, update the repos data in chunks to avoid query timeout - const chunkSize = 100 // Adjust this value based on your specific needs - for (let i = 0; i < repos.length; i += chunkSize) { - const reposChunk = repos.slice(i, i + chunkSize) - await this.upsertGitHubRepos(integration.id, reposChunk) - } - - return integration } - private async upsertGitHubRepos(integrationId, repos) { + private async appendGitHubReposToOrg(integrationId: string, repos: any[]) { const transaction = await SequelizeRepository.createTransaction(this.options) const sequelize = SequelizeRepository.getSequelize(this.options) try { + // Append repos to the first (and only) org's repos array const query = ` UPDATE integrations SET settings = jsonb_set( - COALESCE(settings, '{}'::jsonb), - '{repos}', - COALESCE(settings->'repos', '[]'::jsonb) || ?::jsonb + settings, + '{orgs,0,repos}', + COALESCE(settings->'orgs'->0->'repos', '[]'::jsonb) || ?::jsonb ) WHERE id = ? ` @@ -589,7 +614,7 @@ export default class IntegrationService { try { const oldMapping = await GithubReposRepository.getMapping(integrationId, txOptions) - await GithubReposRepository.updateMapping(integrationId, mapping, oldMapping, txOptions) + await GithubReposRepository.updateMappingSnowflake(integrationId, mapping, oldMapping, txOptions) // add the repos to the git integration if (EDITION === Edition.LFX) { @@ -798,6 +823,96 @@ export default class IntegrationService { } } + async mapGithubRepos(integrationId, mapping, fireOnboarding = true) { + const transaction = await SequelizeRepository.createTransaction(this.options) + + const txOptions = { + ...this.options, + transaction, + } + + try { + await GithubReposRepository.updateMapping(integrationId, mapping, txOptions) + + // add the repos to the git integration + if (EDITION === Edition.LFX) { + const repos: Record = Object.entries(mapping).reduce( + (acc, [url, segmentId]) => { + if (!acc[segmentId as string]) { + acc[segmentId as string] = [] + } + acc[segmentId as string].push(url) + return acc + }, + {}, + ) + + for (const [segmentId, urls] of Object.entries(repos)) { + let isGitintegrationConfigured + const segmentOptions: IRepositoryOptions = { + ...this.options, + currentSegments: [ + { + ...this.options.currentSegments[0], + id: segmentId as string, + }, + ], + } + try { + await IntegrationRepository.findByPlatform(PlatformType.GIT, segmentOptions) + + isGitintegrationConfigured = true + } catch (err) { + isGitintegrationConfigured = false + } + + if (isGitintegrationConfigured) { + const gitInfo = await this.gitGetRemotes(segmentOptions) + const gitRemotes = gitInfo[segmentId as string].remotes + await this.gitConnectOrUpdate( + { + remotes: Array.from(new Set([...gitRemotes, ...urls])), + }, + segmentOptions, + ) + } else { + await this.gitConnectOrUpdate( + { + remotes: urls, + }, + segmentOptions, + ) + } + } + } + + if (fireOnboarding) { + const integration = await IntegrationRepository.update( + integrationId, + { status: 'in-progress' }, + txOptions, + ) + + this.options.log.info( + { tenantId: integration.tenantId }, + 'Sending GitHub message to int-run-worker!', + ) + const emitter = await getIntegrationRunWorkerEmitter() + await emitter.triggerIntegrationRun( + integration.tenantId, + integration.platform, + integration.id, + true, + ) + } + + await SequelizeRepository.commitTransaction(transaction) + } catch (err) { + await SequelizeRepository.rollbackTransaction(transaction) + throw err + } + } + async getGithubRepos(integrationId): Promise { const transaction = await SequelizeRepository.createTransaction(this.options) diff --git a/services/apps/integration_run_worker/config/custom-environment-variables.json b/services/apps/integration_run_worker/config/custom-environment-variables.json index a36d299cf4..881c909be6 100644 --- a/services/apps/integration_run_worker/config/custom-environment-variables.json +++ b/services/apps/integration_run_worker/config/custom-environment-variables.json @@ -30,7 +30,8 @@ "callbackUrl": "CROWD_GITHUB_CALLBACK_URL", "privateKey": "CROWD_GITHUB_PRIVATE_KEY", "webhookSecret": "CROWD_GITHUB_WEBHOOK_SECRET", - "isCommitDataEnabled": "CROWD_GITHUB_IS_COMMIT_DATA_ENABLED" + "isCommitDataEnabled": "CROWD_GITHUB_IS_COMMIT_DATA_ENABLED", + "isSnowflakeEnabled": "CROWD_GITHUB_IS_SNOWFLAKE_ENABLED" }, "searchSyncApi": { "baseUrl": "CROWD_SEARCH_SYNC_API_URL" diff --git a/services/apps/integration_run_worker/src/service/integrationRunService.ts b/services/apps/integration_run_worker/src/service/integrationRunService.ts index f9f5c8dc15..e6f5ca9343 100644 --- a/services/apps/integration_run_worker/src/service/integrationRunService.ts +++ b/services/apps/integration_run_worker/src/service/integrationRunService.ts @@ -16,10 +16,12 @@ import { } from '@crowd/integrations' import { Logger, LoggerBase, getChildLogger } from '@crowd/logging' import { ApiPubSubEmitter, RedisCache, RedisClient } from '@crowd/redis' -import { IntegrationRunState, IntegrationStreamState } from '@crowd/types' +import { IntegrationRunState, IntegrationStreamState, PlatformType } from '@crowd/types' import { NANGO_CONFIG, PLATFORM_CONFIG, WORKER_CONFIG } from '../conf' +const isSnowflakeEnabled = (PLATFORM_CONFIG('github') as any)?.isSnowflakeEnabled === 'true' + export default class IntegrationRunService extends LoggerBase { private readonly repo: IntegrationRunRepository private readonly automationRepo: AutomationRepository @@ -319,11 +321,18 @@ export default class IntegrationRunService extends LoggerBase { return } - const integrationService = singleOrDefault( + let integrationService = singleOrDefault( INTEGRATION_SERVICES, (i) => i.type === runInfo.integrationType, ) + if (isSnowflakeEnabled && runInfo.integrationType === PlatformType.GITHUB) { + integrationService = singleOrDefault( + INTEGRATION_SERVICES, + (i) => i.type === PlatformType.GITHUB_SNOWFLAKE, + ) + } + if (!integrationService) { this.log.error({ type: runInfo.integrationType }, 'Could not find integration service!') await this.triggerRunError( diff --git a/services/apps/integration_stream_worker/config/custom-environment-variables.json b/services/apps/integration_stream_worker/config/custom-environment-variables.json index 4603601cbf..168531f1b5 100644 --- a/services/apps/integration_stream_worker/config/custom-environment-variables.json +++ b/services/apps/integration_stream_worker/config/custom-environment-variables.json @@ -44,7 +44,8 @@ "isCommitDataEnabled": "CROWD_GITHUB_IS_COMMIT_DATA_ENABLED", "personalAccessTokens": "CROWD_GITHUB_PERSONAL_ACCESS_TOKENS", "tgNotifierToken": "CROWD_TG_NOTIFIER_TOKEN", - "tgNotifierChatId": "CROWD_TG_NOTIFIER_CHAT_ID" + "tgNotifierChatId": "CROWD_TG_NOTIFIER_CHAT_ID", + "isSnowflakeEnabled": "CROWD_GITHUB_IS_SNOWFLAKE_ENABLED" }, "gitlab": { "clientId": "CROWD_GITLAB_CLIENT_ID", diff --git a/services/apps/integration_stream_worker/src/service/integrationDataService.ts b/services/apps/integration_stream_worker/src/service/integrationDataService.ts index b3f60b2152..cbdb9fc14c 100644 --- a/services/apps/integration_stream_worker/src/service/integrationDataService.ts +++ b/services/apps/integration_stream_worker/src/service/integrationDataService.ts @@ -6,10 +6,12 @@ import IntegrationStreamRepository from '@crowd/data-access-layer/src/old/apps/i import { INTEGRATION_SERVICES, IProcessDataContext } from '@crowd/integrations' import { Logger, LoggerBase } from '@crowd/logging' import { RedisCache, RedisClient } from '@crowd/redis' -import { IActivityData, IntegrationResultType } from '@crowd/types' +import { IActivityData, IntegrationResultType, PlatformType } from '@crowd/types' import { PLATFORM_CONFIG } from '../conf' +const isSnowflakeEnabled = (PLATFORM_CONFIG('github') as any)?.isSnowflakeEnabled === 'true' + export default class IntegrationDataService extends LoggerBase { private repo: IntegrationStreamRepository @@ -26,11 +28,18 @@ export default class IntegrationDataService extends LoggerBase { } public async processData(data: unknown, stream: IStreamData): Promise { - const integrationService = singleOrDefault( + let integrationService = singleOrDefault( INTEGRATION_SERVICES, (i) => i.type === stream.integrationType, ) + if (isSnowflakeEnabled && stream.integrationType === PlatformType.GITHUB) { + integrationService = singleOrDefault( + INTEGRATION_SERVICES, + (i) => i.type === PlatformType.GITHUB_SNOWFLAKE, + ) + } + if (!integrationService) { this.log.error({ type: stream.integrationType }, 'Could not find integration service!') throw new Error('Could not find integration service to process API data!') diff --git a/services/apps/integration_stream_worker/src/service/integrationStreamService.ts b/services/apps/integration_stream_worker/src/service/integrationStreamService.ts index 41a37e22f5..dd468ef93b 100644 --- a/services/apps/integration_stream_worker/src/service/integrationStreamService.ts +++ b/services/apps/integration_stream_worker/src/service/integrationStreamService.ts @@ -19,6 +19,7 @@ import { IntegrationRunState, IntegrationState, IntegrationStreamType, + PlatformType, RateLimitError, WebhookType, } from '@crowd/types' @@ -27,6 +28,8 @@ import { NANGO_CONFIG, PLATFORM_CONFIG, WORKER_SETTINGS } from '../conf' import IntegrationDataService from './integrationDataService' +const isSnowflakeEnabled = (PLATFORM_CONFIG('github') as any)?.isSnowflakeEnabled === 'true' + export default class IntegrationStreamService extends LoggerBase { private readonly repo: IntegrationStreamRepository private readonly webhookRepo: IncomingWebhookRepository @@ -243,11 +246,18 @@ export default class IntegrationStreamService extends LoggerBase { platform: streamInfo.integrationType, }) - const integrationService = singleOrDefault( + let integrationService = singleOrDefault( INTEGRATION_SERVICES, (i) => i.type === streamInfo.integrationType, ) + if (isSnowflakeEnabled && streamInfo.integrationType === PlatformType.GITHUB) { + integrationService = singleOrDefault( + INTEGRATION_SERVICES, + (i) => i.type === PlatformType.GITHUB_SNOWFLAKE, + ) + } + if (!integrationService) { this.log.error({ type: streamInfo.integrationType }, 'Could not find integration service!') await this.triggerStreamError( @@ -428,11 +438,18 @@ export default class IntegrationStreamService extends LoggerBase { platform: streamInfo.integrationType, }) - const integrationService = singleOrDefault( + let integrationService = singleOrDefault( INTEGRATION_SERVICES, (i) => i.type === streamInfo.integrationType, ) + if (isSnowflakeEnabled && streamInfo.integrationType === PlatformType.GITHUB) { + integrationService = singleOrDefault( + INTEGRATION_SERVICES, + (i) => i.type === PlatformType.GITHUB_SNOWFLAKE, + ) + } + if (!integrationService) { this.log.error({ type: streamInfo.integrationType }, 'Could not find integration service!') await this.triggerStreamError( diff --git a/services/apps/webhook_api/src/routes/github.ts b/services/apps/webhook_api/src/routes/github.ts index cf1e8c28f6..260d98adaa 100644 --- a/services/apps/webhook_api/src/routes/github.ts +++ b/services/apps/webhook_api/src/routes/github.ts @@ -30,7 +30,19 @@ export const installGithubRoutes = async (app: express.Express) => { const identifier = data.installation.id.toString() const repo = new WebhooksRepository(req.dbStore, req.log) - if (event === 'installation') { + if (event === 'installation' && data.action === 'created') { + await repo.addGithubInstallation( + identifier, + data.installation.account.type, + data.installation.account.login, + data.installation.account.avatar_url, + data.repositories.length, + ) + res.sendStatus(204) + return + } + if (event === 'installation' && data.action === 'deleted') { + await repo.deleteGithubInstallation(identifier) res.sendStatus(204) return } diff --git a/services/libs/integrations/src/integrations/activityTypes.ts b/services/libs/integrations/src/integrations/activityTypes.ts index 0d160444c4..0a541431f7 100644 --- a/services/libs/integrations/src/integrations/activityTypes.ts +++ b/services/libs/integrations/src/integrations/activityTypes.ts @@ -10,8 +10,8 @@ import { DISCOURSE_GRID } from './discourse/grid' import { DiscourseActivityType } from './discourse/types' import { GerritActivityType } from './gerrit/types' import { GitActivityType } from './git/types' -import { GITHUB_GRID } from './github-old/grid' -import { GithubActivityType } from './github-old/types' +import { GITHUB_GRID } from './github/grid' +import { GithubActivityType } from './github/types' import { GITLAB_GRID } from './gitlab/grid' import { GitlabActivityType } from './gitlab/types' import { Groupsio_GRID } from './groupsio/grid' diff --git a/services/libs/integrations/src/integrations/devto/memberAttributes.ts b/services/libs/integrations/src/integrations/devto/memberAttributes.ts index 41711a7853..c516e784f5 100644 --- a/services/libs/integrations/src/integrations/devto/memberAttributes.ts +++ b/services/libs/integrations/src/integrations/devto/memberAttributes.ts @@ -6,7 +6,7 @@ import { MemberAttributes, } from '@crowd/types' -import { GITHUB_MEMBER_ATTRIBUTES } from '../github-old/memberAttributes' +import { GITHUB_MEMBER_ATTRIBUTES } from '../github/memberAttributes' import { TWITTER_MEMBER_ATTRIBUTES } from '../twitter/memberAttributes' import { pickAttributes } from '../utils' diff --git a/services/libs/integrations/src/integrations/github-old/generateStreams.ts b/services/libs/integrations/src/integrations/github-old/generateStreams.ts deleted file mode 100644 index 2a6a8bf40f..0000000000 --- a/services/libs/integrations/src/integrations/github-old/generateStreams.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { GenerateStreamsHandler } from '../../types' - -import { - GithubBasicStream, - GithubIntegrationSettings, - GithubManualIntegrationSettings, - GithubManualStreamType, - GithubRootStream, - GithubStreamType, -} from './types' - -const streamToManualStreamMap: Map = new Map([ - [GithubStreamType.STARGAZERS, GithubManualStreamType.STARGAZERS], - [GithubStreamType.FORKS, GithubManualStreamType.FORKS], - [GithubStreamType.PULLS, GithubManualStreamType.PULLS], - [GithubStreamType.ISSUES, GithubManualStreamType.ISSUES], - [GithubStreamType.DISCUSSIONS, GithubManualStreamType.DISCUSSIONS], -]) - -const manualStreamToStreamMap: Map = new Map([ - [GithubManualStreamType.STARGAZERS, GithubStreamType.STARGAZERS], - [GithubManualStreamType.FORKS, GithubStreamType.FORKS], - [GithubManualStreamType.PULLS, GithubStreamType.PULLS], - [GithubManualStreamType.ISSUES, GithubStreamType.ISSUES], - [GithubManualStreamType.DISCUSSIONS, GithubStreamType.DISCUSSIONS], -]) - -const objectToMap = (obj: object): Map> => { - const map = new Map>() - for (const [key, value] of Object.entries(obj)) { - map.set(key, value) - } - return map -} - -const handler: GenerateStreamsHandler = async (ctx) => { - const settings = ctx.integration.settings as GithubIntegrationSettings - const reposToCheck = [...(settings.repos || []), ...(settings.unavailableRepos || [])] - - const isManualRun = ctx.isManualRun - - if (isManualRun) { - const manualSettings = ctx.manualSettings as GithubManualIntegrationSettings - if (!manualSettings) { - ctx.abortRunWithError('isManualRun is true but manualSettings is not set!') - } - - if (manualSettings.repos && manualSettings.manualSettingsType === 'default') { - for (const repo of manualSettings.repos) { - for (const endpoint of [ - GithubStreamType.STARGAZERS, - GithubStreamType.FORKS, - GithubStreamType.PULLS, - GithubStreamType.ISSUES, - GithubStreamType.DISCUSSIONS, - ]) { - if ( - manualSettings.streamType === GithubManualStreamType.ALL || - manualSettings.streamType === streamToManualStreamMap.get(endpoint) - ) { - await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { - repo, - page: '', - }) - } - } - } - } else if (manualSettings.repos && manualSettings.manualSettingsType === 'detailed_map') { - const map = objectToMap(manualSettings.map) - for (const [repoUrl, streams] of map) { - for (const stream of streams) { - const endpoint = manualStreamToStreamMap.get(stream) - if (!endpoint) { - ctx.abortRunWithError(`Invalid stream type: ${stream}`) - } - const repo = manualSettings.repos.find((r) => r.url === repoUrl) - await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { - repo, - page: '', - }) - } - } - } - - return - } - - // not manual run, executing normal run - await ctx.publishStream(GithubStreamType.ROOT, { - reposToCheck, - }) -} - -export default handler diff --git a/services/libs/integrations/src/integrations/github-old/processData.ts b/services/libs/integrations/src/integrations/github-old/processData.ts deleted file mode 100644 index 092471a3e0..0000000000 --- a/services/libs/integrations/src/integrations/github-old/processData.ts +++ /dev/null @@ -1,1524 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -// processStream.ts content -// processData.ts content -import { - IActivityData, - IActivityScoringGrid, - IMemberData, - IOrganization, - MemberAttributeName, - MemberIdentityType, - OrganizationIdentityType, - OrganizationSource, - PlatformType, -} from '@crowd/types' - -import { generateSourceIdHash } from '../../helpers' -import { IProcessDataContext, ProcessDataHandler } from '../../types' - -import { GITHUB_GRID } from './grid' -import { - GithubActivitySubType, - GithubActivityType, - GithubApiData, - GithubIssue, - GithubIssueTimelineItem, - GithubPrepareMemberOutput, - GithubPrepareOrgMemberOutput, - GithubPullRequest, - GithubPullRequestTimelineItem, - GithubWebhookData, - GithubWehookEvent, - INDIRECT_FORK, -} from './types' - -const IS_TEST_ENV: boolean = process.env.NODE_ENV === 'test' - -const parseBotMember = (memberData: GithubPrepareMemberOutput): IMemberData => { - const member: IMemberData = { - identities: [ - { - platform: PlatformType.GITHUB, - value: memberData.memberFromApi.login, - type: MemberIdentityType.USERNAME, - verified: true, - }, - ], - displayName: memberData.memberFromApi.login, - attributes: { - [MemberAttributeName.URL]: { - [PlatformType.GITHUB]: memberData.memberFromApi?.url || '', - }, - [MemberAttributeName.AVATAR_URL]: { - [PlatformType.GITHUB]: memberData.memberFromApi?.avatarUrl || '', - }, - [MemberAttributeName.SOURCE_ID]: { - [PlatformType.GITHUB]: memberData.memberFromApi?.id?.toString() || '', - }, - [MemberAttributeName.IS_BOT]: { - [PlatformType.GITHUB]: true, - }, - }, - } - - return member -} - -const parseDeletedMember = (memberData: GithubPrepareMemberOutput): IMemberData => { - const member: IMemberData = { - identities: [ - { - platform: PlatformType.GITHUB, - value: memberData.memberFromApi.login, - type: MemberIdentityType.USERNAME, - verified: true, - }, - ], - displayName: 'Deleted User', - attributes: { - [MemberAttributeName.URL]: { - [PlatformType.GITHUB]: memberData.memberFromApi?.url || '', - }, - [MemberAttributeName.AVATAR_URL]: { - [PlatformType.GITHUB]: memberData.memberFromApi?.avatarUrl || '', - }, - [MemberAttributeName.BIO]: { - [PlatformType.GITHUB]: - "Hi, I'm @ghost! I take the place of user accounts that have been deleted. :ghost:", - }, - }, - } - - return member -} - -const parseMember = (memberData: GithubPrepareMemberOutput): IMemberData => { - const { email, orgs, memberFromApi } = memberData - - if (memberFromApi.isBot && memberFromApi.isDeleted) { - throw new Error('Member cannot be both bot and deleted') - } - - if (memberFromApi.isBot) { - return parseBotMember(memberData) - } - - if (memberFromApi.isDeleted) { - return parseDeletedMember(memberData) - } - - const member: IMemberData = { - identities: [ - { - platform: PlatformType.GITHUB, - value: memberFromApi.login, - type: MemberIdentityType.USERNAME, - sourceId: memberFromApi.id.toString(), - verified: true, - }, - ], - displayName: memberFromApi?.name?.trim() || memberFromApi.login, - attributes: { - [MemberAttributeName.IS_HIREABLE]: { - [PlatformType.GITHUB]: memberFromApi.isHireable || false, - }, - [MemberAttributeName.URL]: { - [PlatformType.GITHUB]: memberFromApi.url, - }, - [MemberAttributeName.BIO]: { - [PlatformType.GITHUB]: memberFromApi.bio || '', - }, - [MemberAttributeName.LOCATION]: { - [PlatformType.GITHUB]: memberFromApi.location || '', - }, - [MemberAttributeName.AVATAR_URL]: { - [PlatformType.GITHUB]: memberFromApi.avatarUrl || '', - }, - [MemberAttributeName.COMPANY]: { - [PlatformType.GITHUB]: memberFromApi.company || '', - }, - }, - } - - if (email) { - member.identities.push({ - platform: PlatformType.GITHUB, - value: email, - type: MemberIdentityType.EMAIL, - verified: true, - }) - } - - if (memberFromApi?.twitterUsername) { - member.identities.push({ - platform: PlatformType.TWITTER, - value: memberFromApi.twitterUsername, - type: MemberIdentityType.USERNAME, - verified: false, - }) - } - - if (memberFromApi.websiteUrl) { - member.attributes[MemberAttributeName.WEBSITE_URL] = { - [PlatformType.GITHUB]: memberFromApi.websiteUrl, - } - } - - if (memberFromApi.company) { - if (IS_TEST_ENV) { - member.organizations = [ - { - attributes: { - name: { - integration: ['crowd.dev'], - }, - }, - identities: [ - { - value: 'crowd.dev', - platform: PlatformType.GITHUB, - type: OrganizationIdentityType.USERNAME, - verified: true, - }, - ], - source: OrganizationSource.GITHUB, - }, - ] - } else { - const company = memberFromApi.company.replace('@', '').trim() - - if (orgs && company.length > 0) { - const organizationPayload = { - displayName: orgs.name, - names: [orgs.name], - identities: [ - { - platform: PlatformType.GITHUB, - type: OrganizationIdentityType.USERNAME, - value: orgs.url.replace('https://github.com/', ''), - verified: true, - }, - ], - description: orgs.description ?? null, - location: orgs.location ?? null, - logo: orgs.avatarUrl ?? null, - source: OrganizationSource.GITHUB, - } as IOrganization - - if (orgs.websiteUrl) { - organizationPayload.identities.push({ - platform: PlatformType.GITHUB, - type: OrganizationIdentityType.PRIMARY_DOMAIN, - value: orgs.websiteUrl, - verified: false, - }) - } - - if (orgs.twitterUsername) { - organizationPayload.identities.push({ - platform: PlatformType.TWITTER, - type: OrganizationIdentityType.USERNAME, - value: orgs.twitterUsername, - verified: false, - }) - } - - member.organizations = [organizationPayload] - } - } - } - - // if (memberFromApi.followers && memberFromApi.followers.totalCount > 0) { - // member.reach = { [PlatformType.GITHUB]: memberFromApi.followers.totalCount } - // } - - return member -} - -const parseOrgMember = (memberData: GithubPrepareOrgMemberOutput): IMemberData => { - const { orgFromApi } = memberData - - const member: IMemberData = { - identities: [ - { - platform: PlatformType.GITHUB, - value: orgFromApi.login, - type: MemberIdentityType.USERNAME, - verified: true, - }, - ], - displayName: orgFromApi?.name?.trim() || orgFromApi.login, - attributes: { - [MemberAttributeName.URL]: { - [PlatformType.GITHUB]: orgFromApi.url, - }, - [MemberAttributeName.BIO]: { - [PlatformType.GITHUB]: orgFromApi.description || '', - }, - [MemberAttributeName.LOCATION]: { - [PlatformType.GITHUB]: orgFromApi.location || '', - }, - [MemberAttributeName.AVATAR_URL]: { - [PlatformType.GITHUB]: orgFromApi.avatarUrl || '', - }, - }, - } - - if (orgFromApi.email) { - member.identities.push({ - platform: PlatformType.GITHUB, - value: orgFromApi.email, - type: MemberIdentityType.EMAIL, - verified: true, - }) - } - - if (orgFromApi?.twitterUsername) { - member.identities.push({ - platform: PlatformType.TWITTER, - value: orgFromApi.twitterUsername, - type: MemberIdentityType.USERNAME, - verified: false, - }) - } - - if (orgFromApi.websiteUrl) { - member.attributes[MemberAttributeName.WEBSITE_URL] = { - [PlatformType.GITHUB]: orgFromApi.websiteUrl, - } - } - - // mark as organization - member.attributes[MemberAttributeName.IS_ORGANIZATION] = { - [PlatformType.GITHUB]: true, - } - - return member -} - -const parseStar: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.STAR, - sourceId: generateSourceIdHash( - data.node.login, - GithubActivityType.STAR, - Math.floor(new Date(data.starredAt).getTime() / 1000).toString(), - PlatformType.GITHUB, - ), - sourceParentId: '', - timestamp: new Date(data.starredAt).toISOString(), - channel: apiData.repo.url, - member, - score: GITHUB_GRID.star.score, - isContribution: GITHUB_GRID.star.isContribution, - } - - await ctx.publishActivity(activity) -} - -const parseFork: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - - if (apiData.orgMember && !apiData.member) { - await parseForkByOrg(ctx) - return - } else if (apiData.member && apiData.orgMember) { - throw new Error('Both member and orgMember are present') - } else if (!apiData.member && !apiData.orgMember) { - throw new Error('Both member and orgMember are missing') - } - - const data = apiData.data - const relatedData = apiData.relatedData - const memberData = apiData.member - const subType = apiData.subType - - const member = parseMember(memberData) - - if (subType && subType === INDIRECT_FORK) { - const activity: IActivityData = { - type: GithubActivityType.FORK, - sourceId: data.id, - sourceParentId: '', - timestamp: new Date(data.createdAt).toISOString(), - channel: apiData.repo.url, - member, - score: GITHUB_GRID.fork.score, - isContribution: GITHUB_GRID.fork.isContribution, - attributes: { - isIndirectFork: true, - directParent: relatedData.url, - }, - } - - await ctx.publishActivity(activity) - return - } - - const activity: IActivityData = { - type: GithubActivityType.FORK, - sourceId: data.id, - sourceParentId: '', - timestamp: new Date(data.createdAt).toISOString(), - channel: apiData.repo.url, - member, - score: GITHUB_GRID.fork.score, - isContribution: GITHUB_GRID.fork.isContribution, - } - - await ctx.publishActivity(activity) -} - -const parseForkByOrg: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data - const relatedData = apiData.relatedData - const memberData = apiData.orgMember - const subType = apiData.subType - - const member = parseOrgMember(memberData) - - if (subType && subType === INDIRECT_FORK) { - const activity: IActivityData = { - type: GithubActivityType.FORK, - sourceId: data.id, - sourceParentId: '', - timestamp: new Date(data.createdAt).toISOString(), - channel: apiData.repo.url, - member, - score: GITHUB_GRID.fork.score, - isContribution: GITHUB_GRID.fork.isContribution, - attributes: { - isIndirectFork: true, - directParent: relatedData.url, - isForkByOrg: true, - }, - } - - await ctx.publishActivity(activity) - return - } - - const activity: IActivityData = { - type: GithubActivityType.FORK, - sourceId: data.id, - sourceParentId: '', - timestamp: new Date(data.createdAt).toISOString(), - channel: apiData.repo.url, - member, - score: GITHUB_GRID.fork.score, - isContribution: GITHUB_GRID.fork.isContribution, - attributes: { - isForkByOrg: true, - }, - } - - await ctx.publishActivity(activity) -} - -const parsePullRequestOpened: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data as GithubPullRequest - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.PULL_REQUEST_OPENED, - sourceId: data.id, - sourceParentId: '', - timestamp: new Date(data.createdAt).toISOString(), - body: data.bodyText, - url: data.url ? data.url : '', - channel: apiData.repo.url, - title: data.title, - attributes: { - state: data.state.toLowerCase(), - additions: data.additions, - deletions: data.deletions, - changedFiles: data.changedFiles, - authorAssociation: data.authorAssociation, - labels: data.labels?.nodes.map((l) => l.name), - }, - member, - score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_OPENED].score, - isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_OPENED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parsePullRequestClosed: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data as GithubPullRequestTimelineItem - const relatedData = apiData.relatedData as GithubPullRequest - const memberData = apiData.member - const repo = apiData.repo - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.PULL_REQUEST_CLOSED, - sourceId: `gen-CE_${relatedData.id}_${memberData.memberFromApi.login}_${new Date( - data.createdAt, - ).toISOString()}`, - sourceParentId: relatedData.id, - timestamp: new Date(data.createdAt).toISOString(), - body: '', - url: relatedData.url ? relatedData.url : '', - channel: repo.url, - title: '', - attributes: { - state: relatedData.state.toLowerCase(), - additions: relatedData.additions, - deletions: relatedData.deletions, - changedFiles: relatedData.changedFiles, - authorAssociation: relatedData.authorAssociation, - labels: relatedData.labels?.nodes.map((l) => l.name), - }, - member, - score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_CLOSED].score, - isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_CLOSED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parsePullRequestReviewRequested: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data as GithubPullRequestTimelineItem - const relatedData = apiData.relatedData as GithubPullRequest - const memberData = apiData.member - const objectMemberData = apiData.objectMember - - const member = parseMember(memberData) - const objectMember = parseMember(objectMemberData) - - const subType = apiData.subType - - const sourceId = - subType === GithubActivitySubType.PULL_REQUEST_REVIEW_REQUESTED_SINGLE - ? `gen-RRE_${relatedData.id}_${memberData.memberFromApi.login}_${ - objectMemberData.memberFromApi.login - }_${new Date(data.createdAt).toISOString()}` - : `gen-RRE_${relatedData.id}_${memberData.memberFromApi.login}_${ - objectMemberData.memberFromApi.login - }_${new Date(data.createdAt).toISOString()}` - - const activity: IActivityData = { - type: GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED, - sourceId: sourceId, - sourceParentId: relatedData.id, - timestamp: new Date(data.createdAt).toISOString(), - body: '', - url: relatedData.url, - channel: apiData.repo.url, - title: '', - attributes: { - state: relatedData.state.toLowerCase(), - additions: relatedData.additions, - deletions: relatedData.deletions, - changedFiles: relatedData.changedFiles, - authorAssociation: relatedData.authorAssociation, - labels: relatedData.labels?.nodes.map((l) => l.name), - }, - member, - objectMember, - score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED].score, - isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parsePullRequestReviewed: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data as GithubPullRequestTimelineItem - const relatedData = apiData.relatedData as GithubPullRequest - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.PULL_REQUEST_REVIEWED, - sourceId: `gen-PRR_${relatedData.id}_${memberData.memberFromApi.login}_${new Date( - data.submittedAt, - ).toISOString()}`, - sourceParentId: relatedData.id, - timestamp: new Date(data.submittedAt).toISOString(), - url: relatedData.url, - channel: apiData.repo.url, - body: data.body, - title: '', - attributes: { - reviewState: data.state, - state: relatedData.state.toLowerCase(), - additions: relatedData.additions, - deletions: relatedData.deletions, - changedFiles: relatedData.changedFiles, - authorAssociation: relatedData.authorAssociation, - labels: relatedData.labels, - }, - member, - score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEWED].score, - isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEWED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parsePullRequestAssigned: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data as GithubPullRequestTimelineItem - const relatedData = apiData.relatedData as GithubPullRequest - const memberData = apiData.member - const objectMemberData = apiData.objectMember - - const member = parseMember(memberData) - const objectMember = parseMember(objectMemberData) - - const activity: IActivityData = { - type: GithubActivityType.PULL_REQUEST_ASSIGNED, - sourceId: `gen-AE_${relatedData.id}_${memberData.memberFromApi.login}_${ - objectMemberData.memberFromApi.login - }_${new Date(data.createdAt).toISOString()}`, - sourceParentId: relatedData.id, - timestamp: new Date(data.createdAt).toISOString(), - body: '', - url: relatedData.url, - channel: apiData.repo.url, - title: '', - attributes: { - state: relatedData.state.toLowerCase(), - additions: relatedData.additions, - deletions: relatedData.deletions, - changedFiles: relatedData.changedFiles, - authorAssociation: relatedData.authorAssociation, - labels: relatedData.labels?.nodes?.map((l) => l.name), - }, - member, - objectMember, - score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_ASSIGNED].score, - isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_ASSIGNED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parsePullRequestMerged: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data as GithubPullRequestTimelineItem - const relatedData = apiData.relatedData as GithubPullRequest - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.PULL_REQUEST_MERGED, - sourceId: `gen-ME_${relatedData.id}_${memberData.memberFromApi.login}_${new Date( - data.createdAt, - ).toISOString()}`, - sourceParentId: relatedData.id, - timestamp: new Date(data.createdAt).toISOString(), - body: '', - url: relatedData.url, - channel: apiData.repo.url, - title: '', - attributes: { - state: relatedData.state.toLowerCase(), - additions: relatedData.additions, - deletions: relatedData.deletions, - changedFiles: relatedData.changedFiles, - authorAssociation: relatedData.authorAssociation, - labels: relatedData.labels?.nodes.map((l) => l.name), - }, - member, - score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_MERGED].score, - isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_MERGED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parseIssueOpened: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data as GithubIssue - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.ISSUE_OPENED, - sourceId: data.id, - sourceParentId: '', - timestamp: new Date(data.createdAt).toISOString(), - body: data.bodyText, - url: data.url ? data.url : '', - channel: apiData.repo.url, - title: data.title.replace(/\0/g, ''), - attributes: { - state: data.state.toLowerCase(), - }, - member, - score: GITHUB_GRID[GithubActivityType.ISSUE_OPENED].score, - isContribution: GITHUB_GRID[GithubActivityType.ISSUE_OPENED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parseIssueClosed: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data as GithubIssueTimelineItem - const relatedData = apiData.relatedData as GithubIssue - const memberData = apiData.member - const repo = apiData.repo - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.ISSUE_CLOSED, - sourceId: `gen-CE_${relatedData.id}_${memberData.memberFromApi.login}_${new Date( - data.createdAt, - ).toISOString()}`, - sourceParentId: relatedData.id, - timestamp: new Date(data.createdAt).toISOString(), - body: '', - url: relatedData.url ? relatedData.url : '', - channel: repo.url, - title: '', - attributes: { - state: relatedData.state.toLowerCase(), - }, - member, - score: GITHUB_GRID[GithubActivityType.ISSUE_CLOSED].score, - isContribution: GITHUB_GRID[GithubActivityType.ISSUE_CLOSED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parsePullRequestComment: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.PULL_REQUEST_COMMENT, - sourceId: data.id, - sourceParentId: data.pullRequest.id, - timestamp: new Date(data.createdAt).toISOString(), - url: data.url, - body: data.bodyText, - channel: apiData.repo.url, - member, - score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_COMMENT].score, - isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_COMMENT].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parsePullRequestReviewThreadComment: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT, - sourceId: data.id, - sourceParentId: data.pullRequest.id, - timestamp: new Date(data.createdAt).toISOString(), - body: data.bodyText, - url: data.url, - channel: apiData.repo.url, - title: '', - attributes: { - state: data.pullRequest.state.toLowerCase(), - additions: data.pullRequest.additions, - deletions: data.pullRequest.deletions, - changedFiles: data.pullRequest.changedFiles, - authorAssociation: data.pullRequest.authorAssociation, - labels: data.pullRequest.labels?.nodes.map((l) => l.name), - }, - member, - score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT].score, - isContribution: - GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parseIssueComment: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.ISSUE_COMMENT, - sourceId: data.id, - sourceParentId: data.issue.id, - timestamp: new Date(data.createdAt).toISOString(), - url: data.url, - body: data.bodyText, - channel: apiData.repo.url, - member, - score: GITHUB_GRID[GithubActivityType.ISSUE_COMMENT].score, - isContribution: GITHUB_GRID[GithubActivityType.ISSUE_COMMENT].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parseDiscussionComment: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data - const memberData = apiData.member - const sourceParentId = apiData.sourceParentId - - const member = parseMember(memberData) - - const subType = apiData.subType - - let activity: IActivityData - - if (subType === GithubActivitySubType.DISCUSSION_COMMENT_START) { - activity = { - type: GithubActivityType.DISCUSSION_COMMENT, - sourceId: data.id, - sourceParentId: data.discussion.id, - timestamp: new Date(data.createdAt).toISOString(), - url: data.url, - body: data.bodyText, - channel: apiData.repo.url, - attributes: { - isAnswer: data.isAnswer ?? undefined, - }, - member, - score: data.isAnswer - ? GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].score + 2 - : GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].score, - isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].isContribution, - } - } else if (subType === GithubActivitySubType.DISCUSSION_COMMENT_REPLY) { - activity = { - type: GithubActivityType.DISCUSSION_COMMENT, - sourceId: data.id, - sourceParentId, - timestamp: new Date(data.createdAt).toISOString(), - url: data.url, - body: data.bodyText, - channel: apiData.repo.url, - member, - score: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].score, - isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].isContribution, - } - } - - await ctx.publishActivity(activity) -} - -const parseAuthoredCommit: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data - const memberData = apiData.member - - const member = parseMember(memberData) - const sourceParentId = apiData.sourceParentId // this is a pull request id - - const activity: IActivityData = { - channel: apiData.repo.url, - url: `${apiData.repo.url}/commit/${data.commit.oid}`, - body: data.commit.message, - type: 'authored-commit', - sourceId: data.commit.oid, - sourceParentId: `${sourceParentId}`, - timestamp: new Date(data.commit.authoredDate).toISOString(), - attributes: { - insertions: 'additions' in data.commit ? data.commit.additions : 0, - deletions: 'deletions' in data.commit ? data.commit.deletions : 0, - lines: - 'additions' in data.commit && 'deletions' in data.commit - ? data.commit.additions - data.commit.deletions - : 0, - isMerge: data.commit.parents.totalCount > 1, - }, - member, - score: GITHUB_GRID[GithubActivityType.AUTHORED_COMMIT].score, - isContribution: GITHUB_GRID[GithubActivityType.AUTHORED_COMMIT].isContribution, - } - - await ctx.publishActivity(activity) -} - -const parseWebhookIssue = async (ctx: IProcessDataContext) => { - const data = ctx.data as GithubWebhookData - const payload = data.data - const memberData = data.member - - const member = parseMember(memberData) - - let type: GithubActivityType - let scoreGrid: IActivityScoringGrid - let timestamp: string - let sourceId: string - let sourceParentId: string - let body = '' - let title = '' - - switch (payload.action) { - case 'edited': - case 'opened': - case 'reopened': - type = GithubActivityType.ISSUE_OPENED - scoreGrid = GITHUB_GRID[GithubActivityType.ISSUE_OPENED] - timestamp = payload.issue.created_at - sourceParentId = null - sourceId = payload.issue.node_id.toString() - body = payload.issue.body - title = payload.issue.title - break - - case 'closed': - type = GithubActivityType.ISSUE_CLOSED - scoreGrid = GITHUB_GRID[GithubActivityType.ISSUE_CLOSED] - timestamp = payload.issue.closed_at - sourceParentId = payload.issue.node_id.toString() - sourceId = `gen-CE_${payload.issue.node_id.toString()}_${payload.sender.login}_${new Date( - payload.issue.closed_at, - ).toISOString()}` - break - - default: - return - } - - const issue = payload.issue - - if (member) { - const activity: IActivityData = { - member, - type, - timestamp: new Date(timestamp).toISOString(), - sourceId, - sourceParentId, - url: issue.html_url, - title, - channel: payload.repository.html_url, - body, - attributes: { - state: issue.state, - }, - score: scoreGrid.score, - isContribution: scoreGrid.isContribution, - } - - await ctx.publishActivity(activity) - } -} - -const parseWebhookDiscussion = async (ctx: IProcessDataContext) => { - const data = ctx.data as GithubWebhookData - const payload = data.data - const memberData = data.member - - const member = parseMember(memberData) - if (payload.action === 'answered') { - if (member) { - const answer = payload.answer - const activity: IActivityData = { - member, - type: GithubActivityType.DISCUSSION_COMMENT, - timestamp: new Date(answer.created_at).toISOString(), - sourceId: answer.node_id.toString(), - sourceParentId: payload.discussion.node_id.toString(), - attributes: { - isSelectedAnswer: true, - }, - channel: payload.repository.html_url, - body: answer.body, - url: answer.html_url, - score: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].score + 2, - isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].isContribution, - } - - await ctx.publishActivity(activity) - } - } - - if (!['edited', 'created'].includes(payload.action)) { - return - } - - const discussion = payload.discussion - - if (member) { - const activity: IActivityData = { - member, - type: GithubActivityType.DISCUSSION_STARTED, - timestamp: new Date(discussion.created_at).toISOString(), - sourceId: discussion.node_id.toString(), - sourceParentId: null, - url: discussion.html_url, - title: discussion.title, - channel: payload.repository.html_url, - body: discussion.body, - attributes: { - category: { - id: discussion.category.node_id, - isAnswerable: discussion.category.is_answerable, - name: discussion.category.name, - slug: discussion.category.slug, - emoji: discussion.category.emoji, - description: discussion.category.description, - }, - }, - score: GITHUB_GRID[GithubActivityType.DISCUSSION_STARTED].score, - isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_STARTED].isContribution, - } - - await ctx.publishActivity(activity) - } -} - -const parseWebhookPullRequest = async (ctx: IProcessDataContext) => { - const data = ctx.data as GithubWebhookData - const payload = data.data - const memberData = data.member - - const member = parseMember(memberData) - const objectMemberData = data.objectMember - const objectMember = objectMemberData ? parseMember(objectMemberData) : null - - let type: GithubActivityType - let scoreGrid: IActivityScoringGrid - let timestamp: string - let sourceParentId: string - let sourceId: string - let body = '' - let title = '' - - switch (payload.action) { - case 'edited': - case 'opened': - case 'reopened': { - type = GithubActivityType.PULL_REQUEST_OPENED - scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_OPENED] - timestamp = payload.pull_request.created_at - sourceId = payload.pull_request.node_id.toString() - sourceParentId = null - body = payload.pull_request.body - title = payload.pull_request.title - break - } - - case 'closed': { - type = GithubActivityType.PULL_REQUEST_CLOSED - scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_CLOSED] - timestamp = payload.pull_request.closed_at - sourceParentId = payload.pull_request.node_id.toString() - sourceId = `gen-CE_${payload.pull_request.node_id.toString()}_${ - payload.sender.login - }_${new Date(payload.pull_request.closed_at).toISOString()}` - break - } - - case 'assigned': { - type = GithubActivityType.PULL_REQUEST_ASSIGNED - scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_ASSIGNED] - timestamp = payload.pull_request.updated_at - sourceParentId = payload.pull_request.node_id.toString() - sourceId = `gen-AE_${payload.pull_request.node_id.toString()}_${payload.sender.login}_${ - payload.assignee.login - }_${new Date(payload.pull_request.updated_at).toISOString()}` - break - } - - case 'review_requested': { - type = GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED - scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED] - timestamp = payload.pull_request.updated_at - sourceParentId = payload.pull_request.node_id.toString() - sourceId = `gen-RRE_${payload.pull_request.node_id.toString()}_${payload.sender.login}_${ - payload.requested_reviewer.login - }_${new Date(payload.pull_request.updated_at).toISOString()}` - break - } - - case 'merged': { - type = GithubActivityType.PULL_REQUEST_MERGED - scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_MERGED] - timestamp = payload.pull_request.merged_at - sourceParentId = payload.pull_request.node_id.toString() - sourceId = `gen-ME_${payload.pull_request.node_id.toString()}_${ - payload.pull_request.merged_by?.login || member.identities[0].value - }_${new Date(payload.pull_request.merged_at).toISOString()}` - break - } - - default: { - return undefined - } - } - - const pull = payload.pull_request - - if (member) { - const activity: IActivityData = { - member, - objectMember, - type, - timestamp: new Date(timestamp).toISOString(), - sourceId, - sourceParentId, - url: pull.html_url, - title, - channel: payload.repository.html_url, - body, - score: scoreGrid.score, - isContribution: scoreGrid.isContribution, - attributes: { - state: pull.state, - additions: pull.additions, - deletions: pull.deletions, - changedFiles: pull.changed_files, - authorAssociation: pull.author_association, - labels: pull.labels.map((l) => l.name), - }, - } - - await ctx.publishActivity(activity) - } -} - -const parseWebhookPullRequestReview = async (ctx: IProcessDataContext) => { - const data = ctx.data as GithubWebhookData - const payload = data.data - const memberData = data.member - - const member = parseMember(memberData) - - let type: GithubActivityType - let scoreGrid: IActivityScoringGrid - let timestamp: string - let sourceParentId: string - let sourceId: string - let body = '' - - switch (payload.action) { - case 'submitted': { - // additional comments to existing review threads also result in submitted events - // since these will be handled in pull_request_review_comment.created events - // we're ignoring when state is commented and it has no body. - if (payload.review.state === 'commented' && payload.review.body === null) { - return undefined - } - - type = GithubActivityType.PULL_REQUEST_REVIEWED - scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEWED] - timestamp = payload.review.submitted_at - sourceParentId = payload.pull_request.node_id.toString() - sourceId = `gen-PRR_${payload.pull_request.node_id.toString()}_${ - payload.sender.login - }_${new Date(payload.review.submitted_at).toISOString()}` - body = payload.review.body - break - } - default: { - return undefined - } - } - - const pull = payload.pull_request - - if (member) { - const activity: IActivityData = { - member, - type, - timestamp: new Date(timestamp).toISOString(), - sourceId, - sourceParentId, - url: pull.html_url, - title: '', - channel: payload.repository.html_url, - body, - score: scoreGrid.score, - isContribution: scoreGrid.isContribution, - attributes: { - reviewState: (payload.review?.state as string).toUpperCase(), - state: pull.state, - authorAssociation: pull.author_association, - labels: pull.labels.map((l) => l.name), - }, - } - - await ctx.publishActivity(activity) - } -} - -const parseWebhookStar = async (ctx: IProcessDataContext) => { - const data = ctx.data as GithubWebhookData - const payload = data.data - const memberData = data.member - - const member = parseMember(memberData) - - let type: GithubActivityType - switch (payload.action) { - case 'created': { - type = GithubActivityType.STAR - break - } - - case 'deleted': { - type = GithubActivityType.UNSTAR - break - } - - default: { - return - } - } - - if ( - member && - (type === GithubActivityType.UNSTAR || - (type === GithubActivityType.STAR && payload.starred_at !== null)) - ) { - const starredAt = - type === GithubActivityType.STAR ? new Date(payload.starred_at).toISOString() : data.date - - const activity: IActivityData = { - member, - type, - timestamp: starredAt, - sourceId: generateSourceIdHash( - payload.sender.login, - type, - Math.floor(new Date(starredAt).getTime() / 1000).toString(), - PlatformType.GITHUB, - ), - sourceParentId: null, - channel: payload.repository.html_url, - score: - type === 'star' - ? GITHUB_GRID[GithubActivityType.STAR].score - : GITHUB_GRID[GithubActivityType.UNSTAR].score, - isContribution: - type === 'star' - ? GITHUB_GRID[GithubActivityType.STAR].isContribution - : GITHUB_GRID[GithubActivityType.UNSTAR].isContribution, - } - - await ctx.publishActivity(activity) - } -} - -const parseWebhookFork = async (ctx: IProcessDataContext) => { - const data = ctx.data as GithubWebhookData - const payload = data.data - - // this is org member - if (data.orgMember && !data.member) { - const orgMember = parseOrgMember(data.orgMember) - if (orgMember) { - const activity: IActivityData = { - member: orgMember, - type: GithubActivityType.FORK, - timestamp: new Date(payload.forkee.created_at).toISOString(), - sourceId: payload.forkee.node_id.toString(), - sourceParentId: null, - channel: payload.repository.html_url, - score: GITHUB_GRID.fork.score, - isContribution: GITHUB_GRID.fork.isContribution, - } - - await ctx.publishActivity(activity) - } - // this is member - } else if (data.member && !data.orgMember) { - const member = parseMember(data.member) - if (member) { - const activity: IActivityData = { - member, - type: GithubActivityType.FORK, - timestamp: new Date(payload.forkee.created_at).toISOString(), - sourceId: payload.forkee.node_id.toString(), - sourceParentId: null, - channel: payload.repository.html_url, - score: GITHUB_GRID.fork.score, - isContribution: GITHUB_GRID.fork.isContribution, - } - - await ctx.publishActivity(activity) - } else if (data.member && data.orgMember) { - throw new Error('Both member and orgMember are present in webhook fork data') - } else if (!data.member && !data.orgMember) { - throw new Error('Both member and orgMember are missing in webhook fork data') - } - } -} - -const parseWebhookComment = async (ctx: IProcessDataContext) => { - const data = ctx.data as GithubWebhookData - const payload = data.data - const memberData = data.member - - const member = parseMember(memberData) - let type: GithubActivityType - let sourceParentId: string | undefined - - switch (data.webhookType) { - case GithubWehookEvent.DISCUSSION_COMMENT: { - switch (payload.action) { - case 'created': - case 'edited': - type = GithubActivityType.DISCUSSION_COMMENT - sourceParentId = payload.discussion.node_id.toString() - break - default: - return undefined - } - break - } - - case GithubWehookEvent.ISSUE_COMMENT: - case GithubWehookEvent.PULL_REQUEST_COMMENT: { - switch (payload.action) { - case 'created': - case 'edited': { - if ('pull_request' in payload.issue) { - type = GithubActivityType.PULL_REQUEST_COMMENT - } else { - type = GithubActivityType.ISSUE_COMMENT - } - sourceParentId = payload.issue.node_id.toString() - break - } - - default: - return - } - break - } - - default: { - return - } - } - - if (member) { - const comment = payload.comment - const activity: IActivityData = { - member, - type, - timestamp: new Date(comment.created_at).toISOString(), - sourceId: comment.node_id.toString(), - sourceParentId, - url: comment.html_url, - body: comment.body, - channel: payload.repository.html_url, - score: GITHUB_GRID[type].score, - isContribution: GITHUB_GRID[type].isContribution, - } - - await ctx.publishActivity(activity) - } -} - -const parseWebhookPullRequestReviewThreadComment = async (ctx: IProcessDataContext) => { - const data = ctx.data as GithubWebhookData - const payload = data.data - const memberData = data.member - - const member = parseMember(memberData) - - let type: GithubActivityType - let scoreGrid: IActivityScoringGrid - let timestamp: string - let sourceParentId: string - let sourceId: string - let body = '' - - switch (payload.action) { - case 'created': { - type = GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT - scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT] - timestamp = payload.comment.created_at - sourceParentId = payload.pull_request.node_id - sourceId = payload.comment.node_id - body = payload.comment.body - break - } - default: { - return undefined - } - } - - if (member) { - const activity: IActivityData = { - member, - type, - timestamp: new Date(timestamp).toISOString(), - sourceId, - sourceParentId, - url: payload.comment.html_url, - title: '', - channel: payload.repository.html_url, - body, - score: scoreGrid.score, - isContribution: scoreGrid.isContribution, - attributes: { - state: payload.pull_request.state, - authorAssociation: payload.pull_request.author_association, - labels: payload.pull_request.labels.map((l) => l.name), - }, - } - - await ctx.publishActivity(activity) - } -} - -const parseDiscussionStarted: ProcessDataHandler = async (ctx) => { - const apiData = ctx.data as GithubApiData - const data = apiData.data - const memberData = apiData.member - - const member = parseMember(memberData) - - const activity: IActivityData = { - type: GithubActivityType.DISCUSSION_STARTED, - sourceId: data.id, - sourceParentId: '', - timestamp: new Date(data.createdAt).toISOString(), - body: data.bodyText, - url: data.url ? data.url : '', - channel: apiData.repo.url, - title: data.title, - attributes: { - category: { - id: data.category.id, - isAnswerable: data.category.isAnswerable, - name: data.category.name, - slug: data.category.slug, - emoji: data.category.emoji, - description: data.category.description, - }, - }, - member, - score: GITHUB_GRID[GithubActivityType.DISCUSSION_STARTED].score, - isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_STARTED].isContribution, - } - - await ctx.publishActivity(activity) -} - -const handler: ProcessDataHandler = async (ctx) => { - const data = ctx.data as any - - const event = data?.type as GithubActivityType - const webhookEvent = data?.webhookType as GithubWehookEvent - - if (event) { - // parse github api data - switch (event) { - case GithubActivityType.STAR: - await parseStar(ctx) - break - case GithubActivityType.FORK: - await parseFork(ctx) - break - case GithubActivityType.PULL_REQUEST_OPENED: - await parsePullRequestOpened(ctx) - break - case GithubActivityType.PULL_REQUEST_CLOSED: - await parsePullRequestClosed(ctx) - break - case GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED: - await parsePullRequestReviewRequested(ctx) - break - case GithubActivityType.PULL_REQUEST_REVIEWED: - await parsePullRequestReviewed(ctx) - break - case GithubActivityType.PULL_REQUEST_ASSIGNED: - await parsePullRequestAssigned(ctx) - break - case GithubActivityType.PULL_REQUEST_MERGED: - await parsePullRequestMerged(ctx) - break - case GithubActivityType.ISSUE_OPENED: - await parseIssueOpened(ctx) - break - case GithubActivityType.ISSUE_CLOSED: - await parseIssueClosed(ctx) - break - case GithubActivityType.PULL_REQUEST_COMMENT: - await parsePullRequestComment(ctx) - break - case GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT: - await parsePullRequestReviewThreadComment(ctx) - break - case GithubActivityType.ISSUE_COMMENT: - await parseIssueComment(ctx) - break - case GithubActivityType.DISCUSSION_STARTED: - await parseDiscussionStarted(ctx) - break - case GithubActivityType.DISCUSSION_COMMENT: - await parseDiscussionComment(ctx) - break - case GithubActivityType.AUTHORED_COMMIT: - await parseAuthoredCommit(ctx) - break - default: - await ctx.abortWithError(`Event not supported '${event}'!`) - } - } else if (webhookEvent) { - // TODO: implement webhook events - switch (webhookEvent) { - case GithubWehookEvent.ISSUES: - await parseWebhookIssue(ctx) - break - case GithubWehookEvent.DISCUSSION: - await parseWebhookDiscussion(ctx) - break - case GithubWehookEvent.PULL_REQUEST: - await parseWebhookPullRequest(ctx) - break - case GithubWehookEvent.PULL_REQUEST_REVIEW: - await parseWebhookPullRequestReview(ctx) - break - case GithubWehookEvent.STAR: - await parseWebhookStar(ctx) - break - case GithubWehookEvent.FORK: - await parseWebhookFork(ctx) - break - case GithubWehookEvent.DISCUSSION_COMMENT: - case GithubWehookEvent.ISSUE_COMMENT: - case GithubWehookEvent.PULL_REQUEST_COMMENT: - await parseWebhookComment(ctx) - break - case GithubWehookEvent.PULL_REQUEST_REVIEW_COMMENT: - await parseWebhookPullRequestReviewThreadComment(ctx) - break - default: - await ctx.abortWithError(`Webhook event not supported '${webhookEvent}'!`) - } - } -} - -export default handler diff --git a/services/libs/integrations/src/integrations/github-old/processStream.ts b/services/libs/integrations/src/integrations/github-old/processStream.ts deleted file mode 100644 index 0ec8f0c7b7..0000000000 --- a/services/libs/integrations/src/integrations/github-old/processStream.ts +++ /dev/null @@ -1,1298 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -// processStream.ts content -import { createAppAuth } from '@octokit/auth-app' -import { AuthInterface } from '@octokit/auth-app/dist-types/types' - -import { singleOrDefault, timeout } from '@crowd/common' -import { GraphQlQueryResponse, IConcurrentRequestLimiter } from '@crowd/types' - -import { - IProcessStreamContext, - IProcessWebhookStreamContext, - ProcessStreamHandler, -} from '../../types' - -import DiscussionCommentsQuery from './api/graphql/discussionComments' -import DiscussionsQuery from './api/graphql/discussions' -import ForksQuery from './api/graphql/forks' -import IssueCommentsQuery from './api/graphql/issueComments' -import IssuesQuery from './api/graphql/issues' -import getMember from './api/graphql/members' -import getOrganization from './api/graphql/organizations' -import PullRequestCommentsQuery from './api/graphql/pullRequestComments' -import PullRequestCommitsQuery, { PullRequestCommit } from './api/graphql/pullRequestCommits' -import PullRequestCommitsQueryNoAdditions, { - PullRequestCommitNoAdditions, -} from './api/graphql/pullRequestCommitsNoAdditions' -import PullRequestReviewThreadCommentsQuery from './api/graphql/pullRequestReviewThreadComments' -import PullRequestReviewThreadsQuery from './api/graphql/pullRequestReviewThreads' -import PullRequestsQuery from './api/graphql/pullRequests' -import StargazersQuery from './api/graphql/stargazers' -import { GithubTokenRotator } from './tokenRotator' -import { - GithubActivitySubType, - GithubActivityType, - GithubApiData, - GithubBasicStream, - GithubBotMember, - GithubIntegrationSettings, - GithubPlatformSettings, - GithubPrepareMemberOutput, - GithubPrepareOrgMemberOutput, - GithubPullRequestEvents, - GithubRootStream, - GithubStreamType, - INDIRECT_FORK, - Repo, - Repos, -} from './types' - -const IS_TEST_ENV: boolean = process.env.NODE_ENV === 'test' - -const containsHrefAttribute = (htmlSnippet: string) => { - // Constructing the regex using RegExp - const hrefRegex = new RegExp('href\\s*=\\s*["\'][^"\']*["\']', 'i') - return hrefRegex.test(htmlSnippet) -} - -let githubAuthenticator: AuthInterface | undefined = undefined -let concurrentRequestLimiter: IConcurrentRequestLimiter | undefined = undefined -let tokenRotator: GithubTokenRotator | undefined = undefined - -function getAuth(ctx: IProcessStreamContext): AuthInterface | undefined { - const GITHUB_CONFIG = ctx.platformSettings as GithubPlatformSettings - const privateKey = GITHUB_CONFIG.privateKey - ? Buffer.from(GITHUB_CONFIG.privateKey, 'base64').toString('ascii') - : undefined - - if (githubAuthenticator === undefined) { - githubAuthenticator = privateKey - ? createAppAuth({ - appId: GITHUB_CONFIG.appId, - clientId: GITHUB_CONFIG.clientId, - clientSecret: GITHUB_CONFIG.clientSecret, - privateKey, - }) - : undefined - } - return githubAuthenticator -} - -export function getConcurrentRequestLimiter( - ctx: IProcessStreamContext | IProcessWebhookStreamContext, -): IConcurrentRequestLimiter { - if (concurrentRequestLimiter === undefined) { - concurrentRequestLimiter = ctx.getConcurrentRequestLimiter( - 50, // max 2 concurrent requests - 'github-concurrent-request-limiter', - ) - } - return concurrentRequestLimiter -} - -export function getTokenRotator(ctx: IProcessStreamContext): GithubTokenRotator { - const GITHUB_CONFIG = ctx?.platformSettings as GithubPlatformSettings - - // check if we have tokens configured - if (!GITHUB_CONFIG?.personalAccessTokens) { - // if tokenRotator is undefined, API requests won't use it - return undefined - } - - if (tokenRotator === undefined) { - tokenRotator = new GithubTokenRotator( - ctx.globalCache, - GITHUB_CONFIG?.personalAccessTokens?.split(','), - ) - } - return tokenRotator -} - -export async function getGithubToken(ctx: IProcessStreamContext): Promise { - const auth = getAuth(ctx) - if (auth) { - const authResponse = await auth({ - type: 'installation', - installationId: ctx.integration.identifier, - }) - const token = authResponse.token - // this is a real token, not a JWT token - // OctoKit automatically caches it for 1 hour and renews it when needed - return token - } - - throw new Error('GitHub integration is not configured!') -} - -async function getMemberData(ctx: IProcessStreamContext, login: string): Promise { - const appToken = await getGithubToken(ctx) - return getMember(login, appToken, getTokenRotator(ctx), { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }) -} - -async function getOrganizationData(ctx: IProcessStreamContext, company: string): Promise { - if (company === '' || company === null || company === undefined) { - return null - } - - const cache = ctx.globalCache - const prefix = (x: string) => `github-org:${x}` - - const existing = await cache.get(prefix(company)) - if (existing) { - if (existing === 'null') { - return null - } - - return JSON.parse(existing) - } - - const token = await getGithubToken(ctx) - const fromAPI = await getOrganization(company, token, getTokenRotator(ctx), { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }) - - if (fromAPI) { - await cache.set(prefix(company), JSON.stringify(fromAPI), 24 * 60 * 60) - return fromAPI - } - - await cache.set(prefix(company), 'null', 24 * 60 * 60) - return null -} - -async function getMemberEmail(ctx: IProcessStreamContext, login: string): Promise { - if (IS_TEST_ENV) { - return '' - } - - // here we use global cache - it is shared between all integrations - // So in LFX case different integration will have access to the same cache - // But this is fine - const cache = ctx.globalCache - const prefix = (x: string) => `github-login:${x}` - - const existing = await cache.get(prefix(login)) - if (existing) { - if (existing === 'null') { - return '' - } - - return existing - } - - const member = await getMemberData(ctx, login) - const email = (member && member.email ? member.email : '').trim() - if (email && email.length > 0) { - await cache.set(prefix(login), email, 24 * 60 * 60) - return email - } - - await cache.set(prefix(login), 'null', 24 * 60 * 60) - return '' -} - -const publishNextPageStream = async ( - ctx: IProcessStreamContext, - response: GraphQlQueryResponse, -) => { - const data = ctx.stream.data as GithubBasicStream - // the last part of stream identifier is page number (e.g commits:12345:1) - const streamIdentifier = ctx.stream.identifier.split(':').slice(0, -1).join(':') - if (response.hasPreviousPage) { - await ctx.publishStream(`${streamIdentifier}:${response.startCursor}`, { - repo: data.repo, - page: response.startCursor, - }) - } -} - -// this function extracts email and orgs from member data -export const prepareMember = async ( - memberFromApi: any, - ctx: IProcessStreamContext, -): Promise => { - const email = await getMemberEmail(ctx, memberFromApi.login) - - let orgs: any - - if (memberFromApi?.company) { - if (IS_TEST_ENV) { - orgs = [{ name: 'crowd.dev' }] - } else { - const companyHTML = memberFromApi?.companyHTML - // if company is matched againts github org it's html will contain href attribute - if (companyHTML && containsHrefAttribute(companyHTML)) { - const company = memberFromApi.company.replace('@', '').trim() - const fromAPI = await getOrganizationData(ctx, company) - orgs = fromAPI - } else { - orgs = null - } - } - } - - return { - email, - orgs, - memberFromApi, - } -} - -export const prepareBotMember = (bot: GithubBotMember): GithubPrepareMemberOutput => { - return { - email: '', - orgs: [], - memberFromApi: { - login: bot.login, - avatarUrl: bot?.avatarUrl || bot?.avatar_url || '', - url: bot.url, - id: bot.id, - isBot: true, - }, - } -} - -export const prepareDeletedMember = (): GithubPrepareMemberOutput => { - return { - email: '', - orgs: [], - memberFromApi: { - login: 'ghost', - avatarUrl: 'https://avatars.githubusercontent.com/u/10137?v=4', - url: 'https://github.com/ghost', - isDeleted: true, - }, - } -} - -export const prepareMemberFromOrg = (orgFromApi: any): GithubPrepareOrgMemberOutput => { - return { - orgFromApi, - } -} - -/** - * Searches given repository name among installed repositories - * Returns null if given repo is not found. - * @param name The tenant we are working on - * @param context - * @returns Found repo object - */ -function getRepoByName(name: string, ctx: IProcessStreamContext): Repo | null { - const settings = ctx.integration.settings as GithubIntegrationSettings - const availableRepo: Repo | undefined = singleOrDefault(settings.repos, (r) => r.name === name) - if (availableRepo) { - return { ...availableRepo, available: true } - } - - const unavailableRepo: Repo | undefined = singleOrDefault( - settings.unavailableRepos, - (r) => r.name === name, - ) - if (unavailableRepo) { - return { ...unavailableRepo, available: false } - } - - return null -} - -const processRootStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubRootStream - const repos: Repos = [] - const unavailableRepos: Repos = [] - - for (const repo of data.reposToCheck) { - try { - // we don't need to get default 100 item per page, just 1 is enough to check if repo is available - const stargazersQuery = new StargazersQuery(repo, await getGithubToken(ctx), 1) - await stargazersQuery.getSinglePage( - '', - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - repos.push(repo) - } catch (e) { - if (e.rateLimitResetSeconds) { - throw e - } else { - ctx.log.warn( - `Repo ${repo.name} will not be parsed. It is not available with the github token`, - ) - unavailableRepos.push(repo) - } - } - } - - // update integration settings - // this settings will be avaliable in next streams - await ctx.updateIntegrationSettings({ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ...(ctx.integration.settings as any), - repos, - unavailableRepos, - }) - - // now it's time to start streams - for (const repo of repos) { - for (const endpoint of [ - GithubStreamType.STARGAZERS, - GithubStreamType.FORKS, - GithubStreamType.PULLS, - GithubStreamType.ISSUES, - GithubStreamType.DISCUSSIONS, - ]) { - // this firstPage thing is important to avoid duplicate streams and for handleNextPageStream to work - await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { - repo, - page: '', - }) - } - } -} - -const processStargazersStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const stargazersQuery = new StargazersQuery(data.repo, await getGithubToken(ctx)) - - const result = await stargazersQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - // handle next page - await publishNextPageStream(ctx, result) - - for (const record of result.data) { - if (record.node === null) { - throw new Error( - 'Stargazer is not found. This might be a deleted user. Please check the data.', - ) - } - - const member = await prepareMember(record.node, ctx) - - // publish data - await ctx.processData({ - type: GithubActivityType.STAR, - data: record, - member, - repo: data.repo, - isOld: true, - }) - } -} - -const processForksStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const forksQuery = new ForksQuery(data.repo, await getGithubToken(ctx)) - const result = await forksQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - - // handle next page - await publishNextPageStream(ctx, result) - - for (const record of result.data) { - if (record.owner === null) { - throw new Error('Fork owner is not found. This might be a deleted user.') - } - if (record.owner.__typename === 'User') { - const member = await prepareMember(record.owner, ctx) - - // publish data - await ctx.processData({ - type: GithubActivityType.FORK, - data: record, - member, - repo: data.repo, - isOld: true, - }) - } else if (record.owner.__typename === 'Organization') { - const orgMember = prepareMemberFromOrg(record.owner) - - // publish data - await ctx.processData({ - type: GithubActivityType.FORK, - data: record, - orgMember, - repo: data.repo, - isOld: true, - }) - } else { - ctx.log.warn(`Unsupported owner type: ${record.owner.__typename}`) - } - - // traverse through indirect forks - for (const indirectFork of record.indirectForks.nodes) { - if (indirectFork.owner === null) { - throw new Error('Fork owner is not found. This might be a deleted user.') - } - if (indirectFork.owner.__typename === 'User') { - const member = await prepareMember(indirectFork.owner, ctx) - - // publish data - await ctx.processData({ - type: GithubActivityType.FORK, - subType: INDIRECT_FORK, - data: indirectFork, - relatedData: record, - member, - repo: data.repo, - isOld: true, - }) - } else if (indirectFork.owner.__typename === 'Organization') { - const orgMember = prepareMemberFromOrg(indirectFork.owner) - - // publish data - await ctx.processData({ - type: GithubActivityType.FORK, - subType: INDIRECT_FORK, - data: indirectFork, - relatedData: record, - orgMember, - repo: data.repo, - isOld: true, - }) - } else { - ctx.log.warn(`Unsupported owner type: ${indirectFork.owner.__typename}`) - } - } - } -} - -const processPullsStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const forksQuery = new PullRequestsQuery(data.repo, await getGithubToken(ctx)) - const result = await forksQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - - // handle next page - await publishNextPageStream(ctx, result) - - for (const pull of result.data) { - let member: GithubPrepareMemberOutput - if (pull.author?.login) { - member = await prepareMember(pull.author, ctx) - } else if (pull.authorBot?.login) { - member = prepareBotMember(pull.authorBot) - } else if (pull.author === null && pull.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn('Pull request author is not found. This pull request will not be parsed.') - continue - } - - // publish data - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_OPENED, - data: pull, - member, - repo: data.repo, - isOld: true, - }) - - // now we need to parse pullRequestEvents - for (const pullEvent of pull.timelineItems.nodes) { - switch (pullEvent.__typename) { - case GithubPullRequestEvents.ASSIGN: { - let member: GithubPrepareMemberOutput - let objectMember: GithubPrepareMemberOutput - - if (pullEvent?.actor?.login) { - member = await prepareMember(pullEvent.actor, ctx) - } else if (pullEvent?.actorBot?.login) { - member = prepareBotMember(pullEvent.actorBot) - } else if (pullEvent.actor === null && pullEvent.actorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request author is not found. This pull request event will not be parsed.', - ) - continue - } - - if (pullEvent?.assignee?.login) { - objectMember = await prepareMember(pullEvent.assignee, ctx) - } else if (pullEvent?.assigneeBot?.login) { - objectMember = prepareBotMember(pullEvent.assigneeBot) - } else if (pullEvent.assignee === null && pullEvent.assigneeBot === null) { - objectMember = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request assignee is not found. This pull request assignee event will not be parsed.', - ) - continue - } - - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_ASSIGNED, - data: pullEvent, - relatedData: pull, - member, - objectMember, - repo: data.repo, - isOld: true, - }) - - break - } - case GithubPullRequestEvents.REQUEST_REVIEW: { - // Requested review from single member - if (pullEvent?.requestedReviewer?.login || pullEvent?.requestedReviewerBot?.login) { - let member: GithubPrepareMemberOutput - let objectMember: GithubPrepareMemberOutput - - if (pullEvent?.actor?.login) { - member = await prepareMember(pullEvent.actor, ctx) - } else if (pullEvent?.actorBot?.login) { - member = prepareBotMember(pullEvent.actorBot) - } else if (pullEvent.actor === null && pullEvent.actorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request author is not found. This pull request event will not be parsed.', - ) - continue - } - - if (pullEvent?.requestedReviewer?.login) { - objectMember = await prepareMember(pullEvent.requestedReviewer, ctx) - } else if (pullEvent?.requestedReviewerBot?.login) { - objectMember = prepareBotMember(pullEvent.requestedReviewerBot) - } else if ( - pullEvent.requestedReviewer === null && - pullEvent.requestedReviewerBot === null - ) { - objectMember = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request requested reviewer is not found. This pull request requested reviewer event will not be parsed.', - ) - continue - } - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED, - data: pullEvent, - subType: GithubActivitySubType.PULL_REQUEST_REVIEW_REQUESTED_SINGLE, - relatedData: pull, - member, - objectMember, - repo: data.repo, - isOld: true, - }) - // Requested review from multiple members - } else if (pullEvent?.requestedReviewer?.members) { - let member: GithubPrepareMemberOutput - if (pullEvent?.actor?.login) { - member = await prepareMember(pullEvent.actor, ctx) - } else if (pullEvent?.actorBot?.login) { - member = prepareBotMember(pullEvent.actorBot) - } else if (pullEvent.actor === null && pullEvent.actorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request author is not found. This pull request event will not be parsed.', - ) - continue - } - - for (const teamMember of pullEvent.requestedReviewer.members.nodes) { - const objectMember = await prepareMember(teamMember, ctx) - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED, - data: pullEvent, - subType: GithubActivitySubType.PULL_REQUEST_REVIEW_REQUESTED_MULTIPLE, - relatedData: pull, - member, - objectMember, - repo: data.repo, - isOld: true, - }) - } - } - - break - } - case GithubPullRequestEvents.REVIEW: { - if ((pullEvent?.author?.login || pullEvent?.authorBot?.login) && pullEvent?.submittedAt) { - let member: GithubPrepareMemberOutput - if (pullEvent?.author?.login) { - member = await prepareMember(pullEvent.author, ctx) - } else if (pullEvent?.authorBot?.login) { - member = prepareBotMember(pullEvent.authorBot) - } else if (pullEvent.author === null && pullEvent.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request author is not found. This pull request event will not be parsed.', - ) - continue - } - - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_REVIEWED, - data: pullEvent, - relatedData: pull, - member, - repo: data.repo, - isOld: true, - }) - } - break - } - case GithubPullRequestEvents.MERGE: { - let member: GithubPrepareMemberOutput - if (pullEvent?.actor?.login) { - member = await prepareMember(pullEvent.actor, ctx) - } else if (pullEvent?.actorBot?.login) { - member = prepareBotMember(pullEvent.actorBot) - } else if (pullEvent.actor === null && pullEvent.actorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request author is not found. This pull request event will not be parsed.', - ) - continue - } - - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_MERGED, - data: pullEvent, - relatedData: pull, - member, - repo: data.repo, - isOld: true, - }) - - break - } - case GithubPullRequestEvents.CLOSE: { - let member: GithubPrepareMemberOutput - if (pullEvent?.actor?.login) { - member = await prepareMember(pullEvent.actor, ctx) - } else if (pullEvent?.actorBot?.login) { - member = prepareBotMember(pullEvent.actorBot) - } else if (pullEvent.actor === null && pullEvent.actorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request author is not found. This pull request event will not be parsed.', - ) - continue - } - - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_MERGED, - data: pullEvent, - relatedData: pull, - member, - repo: data.repo, - isOld: true, - }) - - break - } - default: - ctx.log.warn( - `Unsupported pull request event: ${pullEvent.__typename}. This event will not be parsed.`, - ) - } - } - } - - const GITHUB_CONFIG = ctx.platformSettings as GithubPlatformSettings - const IS_GITHUB_COMMIT_DATA_ENABLED = GITHUB_CONFIG.isCommitDataEnabled === 'true' - - if (IS_GITHUB_COMMIT_DATA_ENABLED) { - // publish new pull commits streams - // It is very important to keep commits first. Otherwise, we have problems - // creating conversations if the Git integration has already ran for those data points. - for (const pull of result.data) { - await ctx.publishStream( - `${GithubStreamType.PULL_COMMITS}:${pull.number}:firstPage`, - { - repo: data.repo, - page: '', - prNumber: pull.number, - }, - ) - } - } - - // publish new pull comments streams - for (const pull of result.data) { - await ctx.publishStream( - `${GithubStreamType.PULL_COMMENTS}:${pull.number}:firstPage`, - { - repo: data.repo, - page: '', - prNumber: pull.number, - }, - ) - } - - // publish new pull review threads streams - for (const pull of result.data) { - await ctx.publishStream( - `${GithubStreamType.PULL_REVIEW_THREADS}:${pull.number}:firstPage`, - { - repo: data.repo, - page: '', - prNumber: pull.number, - }, - ) - } -} - -const processPullCommentsStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const pullRequestNumber = data.prNumber - const pullRequestCommentsQuery = new PullRequestCommentsQuery( - data.repo, - pullRequestNumber, - await getGithubToken(ctx), - ) - - const result = await pullRequestCommentsQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - - // handle next page - await publishNextPageStream(ctx, result) - - // get member info for each comment - for (const record of result.data) { - let member: GithubPrepareMemberOutput - if (record.author?.login) { - member = await prepareMember(record.author, ctx) - } else if (record.authorBot?.login) { - member = prepareBotMember(record.authorBot) - } else if (record.author === null && record.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request comment author is not found. This pull request comment will not be parsed.', - ) - continue - } - - // publish data - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_COMMENT, - data: record, - member, - repo: data.repo, - isOld: true, - }) - } -} - -const processPullReviewThreadsStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const pullRequestNumber = data.prNumber - const pullRequestReviewThreadsQuery = new PullRequestReviewThreadsQuery( - data.repo, - pullRequestNumber, - await getGithubToken(ctx), - ) - - const result = await pullRequestReviewThreadsQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - - // handle next page - await publishNextPageStream(ctx, result) - - // no data to publish, just add new streams for comments inside - // add each review thread as separate stream for comments inside - for (const thread of result.data) { - await ctx.publishStream( - `${GithubStreamType.PULL_REVIEW_THREAD_COMMENTS}:${thread.id}:firstPage`, - { - repo: data.repo, - page: '', - reviewThreadId: thread.id, - }, - ) - } -} - -const processPullReviewThreadCommentsStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const reviewThreadId = data.reviewThreadId - const pullRequestReviewThreadCommentsQuery = new PullRequestReviewThreadCommentsQuery( - data.repo, - reviewThreadId, - await getGithubToken(ctx), - ) - - const result = await pullRequestReviewThreadCommentsQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - - // handle next page - await publishNextPageStream(ctx, result) - - // get additional member info for each comment - for (const record of result.data) { - let member: GithubPrepareMemberOutput - if (record.author?.login) { - member = await prepareMember(record.author, ctx) - } else if (record.authorBot?.login) { - member = prepareBotMember(record.authorBot) - } else if (record.author === null && record.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Pull request review thread comment author is not found. This pull request review thread comment will not be parsed.', - ) - continue - } - - // publish data - await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT, - data: record, - member, - repo: data.repo, - isOld: true, - }) - } -} - -export const processPullCommitsStream: ProcessStreamHandler = async (ctx) => { - let result: GraphQlQueryResponse - - const data = ctx.stream.data as GithubBasicStream - const pullRequestNumber = data.prNumber - - const token = await getGithubToken(ctx) - - const pullRequestCommitsQuery = new PullRequestCommitsQuery(data.repo, pullRequestNumber, token) - - try { - result = await pullRequestCommitsQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - } catch (err) { - ctx.log.warn( - { - err, - repo: data.repo, - pullRequestNumber, - }, - 'Error while fetching pull request commits. Trying again without additions.', - ) - const pullRequestCommitsQueryNoAdditions = new PullRequestCommitsQueryNoAdditions( - data.repo, - pullRequestNumber, - await getGithubToken(ctx), - ) - result = await pullRequestCommitsQueryNoAdditions.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - } - - // handle next page - await publishNextPageStream(ctx, result) - - // getting additional member info for each commit - { - const response = result.data[0] as PullRequestCommit | PullRequestCommitNoAdditions - const commits = response.repository.pullRequest.commits.nodes - - for (const record of commits) { - for (const author of record.commit.authors.nodes) { - if (!author || !author?.user || !author?.user?.login) { - // eslint-disable-next-line no-continue - continue - } - const member = await prepareMember(author.user, ctx) - - // publish data - await ctx.processData({ - type: GithubActivityType.AUTHORED_COMMIT, - data: record, - sourceParentId: response.repository.pullRequest.id, - member, - repo: data.repo, - isOld: true, - }) - } - } - } -} - -const processIssuesStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const issuesQuery = new IssuesQuery(data.repo, await getGithubToken(ctx)) - const result = await issuesQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - - // handle next page - await publishNextPageStream(ctx, result) - - for (const issue of result.data) { - let member: GithubPrepareMemberOutput - if (issue.author?.login) { - member = await prepareMember(issue.author, ctx) - } else if (issue.authorBot?.login) { - member = prepareBotMember(issue.authorBot) - } else if (issue.author === null && issue.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn('Issue author is not found. This issue will not be parsed.') - continue - } - - await ctx.processData({ - type: GithubActivityType.ISSUE_OPENED, - data: issue, - member, - repo: data.repo, - isOld: true, - }) - - // now need to parse issue events - for (const issueEvent of issue.timelineItems.nodes) { - switch (issueEvent.__typename) { - case GithubPullRequestEvents.CLOSE: { - let member: GithubPrepareMemberOutput - if (issueEvent.actor?.login) { - member = await prepareMember(issueEvent.actor, ctx) - } else if (issueEvent.actorBot?.login) { - member = prepareBotMember(issueEvent.actorBot) - } else if (issueEvent.actor === null && issueEvent.actorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn('Issue event author is not found. This issue event will not be parsed.') - continue - } - await ctx.processData({ - type: GithubActivityType.ISSUE_CLOSED, - data: issueEvent, - relatedData: issue, - member, - repo: data.repo, - isOld: true, - }) - - break - } - default: - ctx.log.warn( - `Unsupported issue event: ${issueEvent.__typename}. This event will not be parsed.`, - ) - } - } - } - - // add each issue as separate stream for comments inside - for (const issue of result.data) { - await ctx.publishStream( - `${GithubStreamType.ISSUE_COMMENTS}:${issue.number}:firstPage`, - { - repo: data.repo, - page: '', - issueNumber: issue.number, - }, - ) - } -} - -const processIssueCommentsStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const issueNumber = data.issueNumber - const issueCommentsQuery = new IssueCommentsQuery( - data.repo, - issueNumber, - await getGithubToken(ctx), - ) - const result = await issueCommentsQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - // handle next page - await publishNextPageStream(ctx, result) - - // get additional member info for each comment - for (const record of result.data) { - let member: GithubPrepareMemberOutput - if (record.author?.login) { - member = await prepareMember(record.author, ctx) - } else if (record.authorBot?.login) { - member = prepareBotMember(record.authorBot) - } else if (record.author === null && record.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn('Issue comment author is not found. This issue comment will not be parsed.') - continue - } - - // publish data - await ctx.processData({ - type: GithubActivityType.ISSUE_COMMENT, - data: record, - member, - repo: data.repo, - isOld: true, - }) - } -} - -const processDiscussionsStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const discussionsQuery = new DiscussionsQuery(data.repo, await getGithubToken(ctx)) - const result = await discussionsQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - // handle next page - await publishNextPageStream(ctx, result) - - // get additional member info for each comment - for (const discussion of result.data) { - let member: GithubPrepareMemberOutput - if (discussion.author?.login) { - member = await prepareMember(discussion.author, ctx) - } else if (discussion.authorBot?.login) { - member = prepareBotMember(discussion.authorBot) - } else if (discussion.author === null && discussion.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn('Discussion author is not found. This discussion will not be parsed.') - continue - } - - // publish data - await ctx.processData({ - type: GithubActivityType.DISCUSSION_STARTED, - data: discussion, - member, - repo: data.repo, - isOld: true, - }) - } - - // add each discussion as separate stream for comments inside - for (const d of result.data.filter((d) => d.comments.totalCount > 0)) { - await ctx.publishStream( - `${GithubStreamType.DISCUSSION_COMMENTS}:${d.id}:firstPage`, - { - repo: data.repo, - page: '', - discussionNumber: d.number, - }, - ) - } -} - -const processDiscussionCommentsStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const discussionCommentsQuery = new DiscussionCommentsQuery( - data.repo, - data.discussionNumber, - await getGithubToken(ctx), - ) - const result = await discussionCommentsQuery.getSinglePage( - data.page, - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) - // handle next page - await publishNextPageStream(ctx, result) - - for (const record of result.data) { - let member: GithubPrepareMemberOutput - if (record.author?.login) { - member = await prepareMember(record.author, ctx) - } else if (record.authorBot?.login) { - member = prepareBotMember(record.authorBot) - } else if (record.author === null && record.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Discussion comment author is not found. This discussion comment will not be parsed.', - ) - continue - } - const commentId = record.id - - // publish data - await ctx.processData({ - type: GithubActivityType.DISCUSSION_COMMENT, - subType: GithubActivitySubType.DISCUSSION_COMMENT_START, - data: record, - member, - repo: data.repo, - isOld: true, - }) - - // going through replies - for (const reply of record.replies.nodes) { - let member: GithubPrepareMemberOutput - if (reply.author?.login) { - member = await prepareMember(reply.author, ctx) - } else if (reply.authorBot?.login) { - member = prepareBotMember(reply.authorBot) - } else if (reply.author === null && reply.authorBot === null) { - member = prepareDeletedMember() - } else { - ctx.log.warn( - 'Discussion comment reply author is not found. This discussion comment reply will not be parsed.', - ) - continue - } - - // publish data - await ctx.processData({ - type: GithubActivityType.DISCUSSION_COMMENT, - subType: GithubActivitySubType.DISCUSSION_COMMENT_REPLY, - data: reply, - member, - sourceParentId: commentId, - repo: data.repo, - isOld: true, - }) - } - } -} - -const handler: ProcessStreamHandler = async (ctx) => { - await timeout(1000) - const streamIdentifier = ctx.stream.identifier - if (streamIdentifier.startsWith(GithubStreamType.ROOT)) { - await processRootStream(ctx) - } else { - const data = ctx.stream.data as GithubBasicStream - const repo = getRepoByName(data.repo.name, ctx) - - if (repo === null) { - await ctx.abortWithError( - `Stream ${ctx.stream.identifier} can't be processed since repo ${data.repo.name} is not found!`, - { - repoName: data.repo.name, - streamIdentifier: ctx.stream.identifier, - }, - ) - } - - if (!repo.available) { - await ctx.abortWithError( - `Stream ${ctx.stream.identifier} can't be processed since repo ${data.repo.name} is not available!`, - { - repoName: data.repo.name, - streamIdentifier: ctx.stream.identifier, - }, - ) - } - - // if all checks are passed, we can start processing - - // Extract the stream type from the identifier - const streamType = streamIdentifier.split(':')[0] - - switch (streamType) { - case GithubStreamType.STARGAZERS: - await processStargazersStream(ctx) - break - case GithubStreamType.FORKS: - await processForksStream(ctx) - break - case GithubStreamType.PULLS: - await processPullsStream(ctx) - break - case GithubStreamType.PULL_COMMENTS: - await processPullCommentsStream(ctx) - break - case GithubStreamType.PULL_REVIEW_THREADS: - await processPullReviewThreadsStream(ctx) - break - case GithubStreamType.PULL_REVIEW_THREAD_COMMENTS: - await processPullReviewThreadCommentsStream(ctx) - break - case GithubStreamType.PULL_COMMITS: - await processPullCommitsStream(ctx) - break - case GithubStreamType.ISSUES: - await processIssuesStream(ctx) - break - case GithubStreamType.ISSUE_COMMENTS: - await processIssueCommentsStream(ctx) - break - case GithubStreamType.DISCUSSIONS: - await processDiscussionsStream(ctx) - break - case GithubStreamType.DISCUSSION_COMMENTS: - await processDiscussionCommentsStream(ctx) - break - default: - console.error(`No matching process function for streamType: ${streamType}`) - } - } -} - -export default handler diff --git a/services/libs/integrations/src/integrations/github-old/processWebhookStream.ts b/services/libs/integrations/src/integrations/github-old/processWebhookStream.ts deleted file mode 100644 index ae82b8cab8..0000000000 --- a/services/libs/integrations/src/integrations/github-old/processWebhookStream.ts +++ /dev/null @@ -1,475 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import verifyGithubWebhook from 'verify-github-webhook' - -import { - IProcessStreamContext, - IProcessWebhookStreamContext, - ProcessWebhookStreamHandler, -} from '../../types' - -import getMember from './api/graphql/members' -import getOrganization from './api/graphql/organizations' -import TeamsQuery from './api/graphql/teams' -import { GithubWebhookTeam } from './api/graphql/types' -import { prepareBotMember, prepareMember } from './processStream' -import { - getConcurrentRequestLimiter, - getGithubToken, - processPullCommitsStream, -} from './processStream' -import { - GithubBasicStream, - GithubPlatformSettings, - GithubPrepareMemberOutput, - GithubPrepareOrgMemberOutput, - GithubStreamType, - GithubWebhookData, - GithubWebhookPayload, - GithubWebhookSubType, - GithubWehookEvent, - Repo, -} from './types' - -const IS_TEST_ENV: boolean = process.env.NODE_ENV === 'test' - -const handleWebhookSender = async ( - sender: any, - ctx: IProcessWebhookStreamContext, -): Promise => { - if (!sender) { - return undefined - } - if (!sender.type) { - ctx.log.error('Sender type is not defined in handleWebhookSender') - throw new Error('Sender type is not defined in handleWebhookSender') - } - if (sender.type === 'Bot') { - return prepareBotMember(sender) - } else if (sender.type === 'User') { - return prepareWebhookMember(sender.login, ctx) - } else { - ctx.log.error('Sender type is not supported in handleWebhookSender') - throw new Error('Sender type is not supported in handleWebhookSender') - } -} - -const handleWebhookOrgSender = async ( - sender: any, - ctx: IProcessWebhookStreamContext, -): Promise => { - if (sender.type !== 'Organization') { - ctx.log.error('Sender is not an organization in handleWebhookOrgSender') - throw new Error('Sender is not an organization in handleWebhookOrgSender') - } - const token = await getGithubToken(ctx as IProcessStreamContext) - const orgFromApi = await getOrganization(sender.login, token) - if (!orgFromApi) { - ctx.log.warn( - { org: sender.login }, - `Organization ${sender.login} not found in GitHub while fetching it from webhook data, skipping!`, - ) - return null - } - return { - orgFromApi, - } -} - -const prepareWebhookMember = async ( - login: string, - ctx: IProcessWebhookStreamContext, -): Promise => { - if (IS_TEST_ENV) { - return { - memberFromApi: { - login: 'testMember', - name: 'testMember', - }, - email: '', - orgs: [], - } - } - - if (!login) { - ctx.log.warn('No login in webhook, skipping!') - return null - } - - const token = await getGithubToken(ctx as IProcessStreamContext) - const member = await getMember(login, token) - - if (!member) { - ctx.log.warn( - { login }, - `Member ${login} not found in GitHub while fetching it from webhook data, skipping!`, - ) - return null - } - - const preparedMember = await prepareMember(member, ctx as IProcessStreamContext) - return preparedMember -} - -async function verifyWebhookSignature( - signature: string, - data: any, - ctx: IProcessWebhookStreamContext, -): Promise { - if (IS_TEST_ENV) { - return - } - - const GITHUB_CONFIG = ctx.platformSettings as GithubPlatformSettings - const secret = GITHUB_CONFIG.webhookSecret - - let isVerified: boolean - try { - isVerified = verifyGithubWebhook(signature, JSON.stringify(data), secret) // Returns true if verification succeeds; otherwise, false. - } catch (err) { - await ctx.abortWithError(`Error during Github webhook verificaion\n${err}`) - } - - if (!isVerified) { - await ctx.abortWithError('Github webhook not verified') - } -} - -const parseWebhookIssue = async (payload: any, ctx: IProcessWebhookStreamContext) => { - const member = await handleWebhookSender(payload?.sender, ctx) - - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.ISSUES, - data: payload, - member, - }) - } -} - -const parseWebhookDiscussion = async (payload: any, ctx: IProcessWebhookStreamContext) => { - let member: GithubPrepareMemberOutput | undefined - if (payload.action === 'answered') { - member = await handleWebhookSender(payload?.sender, ctx) - - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.DISCUSSION, - subType: GithubWebhookSubType.DISCUSSION_COMMENT_REPLY, - data: payload, - member, - }) - } - } - - if (!['edited', 'created'].includes(payload.action)) { - return - } - - const discussion = payload.discussion - member = await handleWebhookSender(discussion?.user, ctx) - - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.DISCUSSION, - subType: GithubWebhookSubType.DISCUSSION_COMMENT_START, - data: payload, - member, - }) - } -} - -const parseWebhookPullRequestEvents = async ( - payload: any, - ctx: IProcessWebhookStreamContext, -): Promise => { - const member = await handleWebhookSender(payload?.sender, ctx) - let objectMember: GithubPrepareMemberOutput | undefined - - const GITHUB_CONFIG = ctx.platformSettings as GithubPlatformSettings - const IS_GITHUB_COMMIT_DATA_ENABLED = GITHUB_CONFIG.isCommitDataEnabled === 'true' - - switch (payload.action) { - case 'edited': - case 'opened': - case 'reopened': - case 'closed': - case 'merged': { - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.PULL_REQUEST, - data: payload, - member, - }) - } - break - } - case 'assigned': { - objectMember = await handleWebhookSender(payload?.requested_reviewer, ctx) - - if (member && objectMember) { - await ctx.processData({ - webhookType: GithubWehookEvent.PULL_REQUEST, - data: payload, - member, - objectMember, - }) - } - break - } - case 'review_requested': { - objectMember = await handleWebhookSender(payload?.requested_reviewers?.[0], ctx) - - if (member && objectMember) { - await ctx.processData({ - webhookType: GithubWehookEvent.PULL_REQUEST, - data: payload, - member, - objectMember, - }) - } - break - } - case 'synchronize': { - if (IS_GITHUB_COMMIT_DATA_ENABLED) { - const prNumber = payload.number - const repo: Repo = { - name: payload?.repository?.name, - owner: payload?.repository?.owner?.login, - url: payload?.repository?.html_url, - createdAt: payload?.repository?.created_at, - } - - // this will create a CROWD_GENERATED webhook and stream for it - // this way we don't need integration run to publish new streams - await ctx.publishStream( - `${GithubStreamType.PULL_COMMITS}:${prNumber}:firstPage`, - { - repo, - page: '', - prNumber, - }, - ) - } - break - } - } -} - -const parseWebhookPullRequest = async (payload: any, ctx: IProcessWebhookStreamContext) => { - // handle case of multiple reviewers (by assigning a team as a reviewer) - if (payload.action === 'review_requested' && payload.requested_team) { - // a team sent as reviewer, first we need to find members in this team - const team: GithubWebhookTeam = payload.requested_team - const token = await getGithubToken(ctx as IProcessStreamContext) - const teamMembers = await new TeamsQuery(team.node_id, token).getSinglePage('', { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }) - - for (const teamMember of teamMembers.data) { - await parseWebhookPullRequestEvents({ ...payload, requested_reviewer: teamMember }, ctx) - } - - return - } - - if (payload.action === 'closed' && payload.pull_request.merged) { - const revisedPayload = { ...payload, action: 'merged' } - revisedPayload.pull_request.state = 'merged' - - await parseWebhookPullRequestEvents(revisedPayload, ctx) - - return - } - - await parseWebhookPullRequestEvents(payload, ctx) -} - -const parseWebhookPullRequestReview = async ( - payload: any, - ctx: IProcessWebhookStreamContext, -): Promise => { - if (payload.action === 'submitted') { - // additional comments to existing review threads also result in submitted events - // since these will be handled in pull_request_review_comment.created events - // we're ignoring when state is commented and it has no body. - if (payload.review.state === 'commented' && payload.review.body === null) { - return - } - - const member = await handleWebhookSender(payload?.sender, ctx) - - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.PULL_REQUEST_REVIEW, - data: payload, - member, - }) - } - } -} - -const parseWebhookStar = async (payload: any, ctx: IProcessWebhookStreamContext, date: string) => { - if (payload.action === 'created' || payload.action === 'deleted') { - const member = await handleWebhookSender(payload?.sender, ctx) - - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.STAR, - data: payload, - member, - date, - }) - } - } -} - -const parseWebhookFork = async (payload: any, ctx: IProcessWebhookStreamContext) => { - if (payload?.sender?.type === 'Organization') { - const member = await handleWebhookOrgSender(payload?.sender, ctx) - - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.FORK, - data: payload, - orgMember: member, - }) - } - return - } - - const member = await handleWebhookSender(payload?.sender, ctx) - - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.FORK, - data: payload, - member, - }) - } -} - -const parseWebhookComment = async ( - event: string, - payload: any, - ctx: IProcessWebhookStreamContext, -) => { - let type: GithubWehookEvent - let sourceParentId: string - - switch (event) { - case 'discussion_comment': { - switch (payload.action) { - case 'created': - case 'edited': - type = GithubWehookEvent.DISCUSSION_COMMENT - sourceParentId = payload.discussion.node_id.toString() - break - default: - return undefined - } - break - } - - case 'issue_comment': { - switch (payload.action) { - case 'created': - case 'edited': { - if ('pull_request' in payload.issue) { - type = GithubWehookEvent.PULL_REQUEST_COMMENT - } else { - type = GithubWehookEvent.ISSUE_COMMENT - } - sourceParentId = payload.issue.node_id.toString() - break - } - - default: - return - } - break - } - - default: { - return - } - } - - const member = await handleWebhookSender(payload?.sender, ctx) - - if (member) { - await ctx.processData({ - webhookType: type, - data: payload, - member, - sourceParentId, - }) - } -} - -const parseWebhookPullRequestReviewComment = async ( - payload: any, - ctx: IProcessWebhookStreamContext, -) => { - if (payload.action === 'created') { - const member = await handleWebhookSender(payload?.comment?.user, ctx) - - if (member) { - await ctx.processData({ - webhookType: GithubWehookEvent.PULL_REQUEST_REVIEW_COMMENT, - data: payload, - member, - }) - } - } -} - -const handler: ProcessWebhookStreamHandler = async (ctx) => { - const identifier = ctx.stream.identifier - const webhookCreatedAt = ctx.stream.webhookCreatedAt - - // this is for pull request commits which are published during runtime - if (identifier.startsWith(GithubStreamType.PULL_COMMITS)) { - // we are reusing code here with another type of context - // everything should work except for ctx.aborRuntWithError - await processPullCommitsStream(ctx as IProcessStreamContext) - } else { - // this is for normal weqbook events - const { signature, event, data } = ctx.stream.data as GithubWebhookPayload - - await verifyWebhookSignature(signature, data, ctx) - - switch (event) { - case GithubWehookEvent.ISSUES: - await parseWebhookIssue(data, ctx) - break - case GithubWehookEvent.DISCUSSION: - await parseWebhookDiscussion(data, ctx) - break - case GithubWehookEvent.PULL_REQUEST: - await parseWebhookPullRequest(data, ctx) - break - case GithubWehookEvent.PULL_REQUEST_REVIEW: - await parseWebhookPullRequestReview(data, ctx) - break - case GithubWehookEvent.STAR: - await parseWebhookStar(data, ctx, webhookCreatedAt) - break - case GithubWehookEvent.FORK: - await parseWebhookFork(data, ctx) - break - case GithubWehookEvent.DISCUSSION_COMMENT: - case GithubWehookEvent.ISSUE_COMMENT: - await parseWebhookComment(event, data, ctx) - break - case GithubWehookEvent.PULL_REQUEST_REVIEW_COMMENT: - await parseWebhookPullRequestReviewComment(data, ctx) - break - default: - ctx.log.debug({ event }, 'Unknown Github webhook event!') - return - } - } -} - -export default handler diff --git a/services/libs/integrations/src/integrations/github/cap.ts b/services/libs/integrations/src/integrations/github-snowflake/cap.ts similarity index 100% rename from services/libs/integrations/src/integrations/github/cap.ts rename to services/libs/integrations/src/integrations/github-snowflake/cap.ts diff --git a/services/libs/integrations/src/integrations/github-snowflake/generateStreams.ts b/services/libs/integrations/src/integrations/github-snowflake/generateStreams.ts new file mode 100644 index 0000000000..2b0455c9bb --- /dev/null +++ b/services/libs/integrations/src/integrations/github-snowflake/generateStreams.ts @@ -0,0 +1,43 @@ +import { GenerateStreamsHandler } from '../../types' + +import { GithubIntegrationSettings, GithubRootStream, GithubStreamType, Repo } from './types' + +const NEW_REPO_THRESHOLD_MS = 20000 // 20 seconds in milliseconds + +interface AdditionalInfo { + messageSentAt: string +} + +const isRepoRecentlyUpdated = (repo: Repo, messageSentAt?: Date): boolean => { + if (!repo.updatedAt) return true // If no updatedAt, process it to be safe + + if (messageSentAt) { + // For newly added repos, check if they were updated within 20 seconds of the message + const repoUpdateTime = new Date(repo.updatedAt).getTime() + const messageTime = messageSentAt.getTime() + return Math.abs(repoUpdateTime - messageTime) < NEW_REPO_THRESHOLD_MS + } + + return true +} + +const handler: GenerateStreamsHandler = async (ctx) => { + const messageSentAt = (ctx.additionalInfo as AdditionalInfo)?.messageSentAt + ? new Date((ctx.additionalInfo as AdditionalInfo).messageSentAt) + : undefined + const settings = ctx.integration.settings as GithubIntegrationSettings + const reposToCheck = ctx.onboarding + ? settings.orgs + .flatMap((org) => org.repos) + .filter((repo) => isRepoRecentlyUpdated(repo, messageSentAt)) + : // for onboarding runs, we only check recently added repos. This needed when integration updated + settings.orgs.flatMap((org) => org.repos) // for non-onboarding runs, we check all repos + + ctx.log.info(`${messageSentAt ? messageSentAt.toISOString() : 'Checking all repos'}`) + + await ctx.publishStream(GithubStreamType.ROOT, { + reposToCheck, + }) +} + +export default handler diff --git a/services/libs/integrations/src/integrations/github-old/grid.ts b/services/libs/integrations/src/integrations/github-snowflake/grid.ts similarity index 66% rename from services/libs/integrations/src/integrations/github-old/grid.ts rename to services/libs/integrations/src/integrations/github-snowflake/grid.ts index 8bc78e95b5..935d7394d3 100644 --- a/services/libs/integrations/src/integrations/github-old/grid.ts +++ b/services/libs/integrations/src/integrations/github-snowflake/grid.ts @@ -3,14 +3,6 @@ import { IActivityScoringGrid } from '@crowd/types' import { GithubActivityType } from './types' export const GITHUB_GRID: Record = { - [GithubActivityType.DISCUSSION_STARTED]: { - score: 8, - isContribution: true, - }, - [GithubActivityType.DISCUSSION_COMMENT]: { - score: 6, - isContribution: true, - }, [GithubActivityType.FORK]: { score: 4, isContribution: false, @@ -43,30 +35,14 @@ export const GITHUB_GRID: Record = { score: 2, isContribution: false, }, - [GithubActivityType.UNSTAR]: { - score: -2, - isContribution: false, - }, [GithubActivityType.PULL_REQUEST_MERGED]: { score: 6, isContribution: true, }, - [GithubActivityType.PULL_REQUEST_ASSIGNED]: { - score: 2, - isContribution: false, - }, [GithubActivityType.PULL_REQUEST_REVIEWED]: { score: 8, isContribution: true, }, - [GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED]: { - score: 2, - isContribution: false, - }, - [GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT]: { - score: 6, - isContribution: true, - }, [GithubActivityType.AUTHORED_COMMIT]: { score: 2, isContribution: true, diff --git a/services/libs/integrations/src/integrations/github-old/index.ts b/services/libs/integrations/src/integrations/github-snowflake/index.ts similarity index 90% rename from services/libs/integrations/src/integrations/github-old/index.ts rename to services/libs/integrations/src/integrations/github-snowflake/index.ts index 4be45d94de..0304d07142 100644 --- a/services/libs/integrations/src/integrations/github-old/index.ts +++ b/services/libs/integrations/src/integrations/github-snowflake/index.ts @@ -10,12 +10,13 @@ import processStream from './processStream' import processWebhookStream from './processWebhookStream' const descriptor: IIntegrationDescriptor = { - type: PlatformType.GITHUB_OLD, + type: PlatformType.GITHUB_SNOWFLAKE, memberAttributes: GITHUB_MEMBER_ATTRIBUTES, + checkEvery: 24 * 60, // 24 hours generateStreams, processStream, - processWebhookStream, processData, + processWebhookStream, // eslint-disable-next-line @typescript-eslint/no-explicit-any postProcess: (settings: any) => { return settings diff --git a/services/libs/integrations/src/integrations/github-old/memberAttributes.ts b/services/libs/integrations/src/integrations/github-snowflake/memberAttributes.ts similarity index 88% rename from services/libs/integrations/src/integrations/github-old/memberAttributes.ts rename to services/libs/integrations/src/integrations/github-snowflake/memberAttributes.ts index 8ad671c37e..ea05cb7d1e 100644 --- a/services/libs/integrations/src/integrations/github-old/memberAttributes.ts +++ b/services/libs/integrations/src/integrations/github-snowflake/memberAttributes.ts @@ -55,4 +55,11 @@ export const GITHUB_MEMBER_ATTRIBUTES: IMemberAttribute[] = [ canDelete: false, show: true, }, + { + name: MemberAttributes[MemberAttributeName.IS_BOT].name, + label: MemberAttributes[MemberAttributeName.IS_BOT].label, + type: MemberAttributeType.BOOLEAN, + canDelete: false, + show: true, + }, ] diff --git a/services/libs/integrations/src/integrations/github-snowflake/processData.ts b/services/libs/integrations/src/integrations/github-snowflake/processData.ts new file mode 100644 index 0000000000..0737b80555 --- /dev/null +++ b/services/libs/integrations/src/integrations/github-snowflake/processData.ts @@ -0,0 +1,639 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +// processStream.ts content +// processData.ts content +import { + type IGetRepoForksResult, + type IGetRepoIssueCommentsResult, + type IGetRepoIssuesResult, + type IGetRepoPullRequestReviewCommentsResult, + type IGetRepoPullRequestReviewsResult, + type IGetRepoPullRequestsResult, + type IGetRepoPushesResult, + type IGetRepoStargazersResult, +} from '@crowd/snowflake' +import { + IActivityData, + IMemberData, + IOrganization, + MemberAttributeName, + MemberIdentityType, + OrganizationIdentityType, + OrganizationSource, + PlatformType, +} from '@crowd/types' + +import { generateSourceIdHash } from '../../helpers' +import { ProcessDataHandler } from '../../types' +import { default as oldHandler } from '../github/processData' + +import { GITHUB_GRID } from './grid' +import { GithubActivityType, GithubApiData, GithubPrepareMemberOutput } from './types' + +const IS_TEST_ENV: boolean = process.env.NODE_ENV === 'test' + +const parseBotMember = (memberData: GithubPrepareMemberOutput): IMemberData => { + const member: IMemberData = { + identities: [ + { + platform: PlatformType.GITHUB, + value: memberData.memberFromApi.login, + type: MemberIdentityType.USERNAME, + verified: true, + }, + ], + displayName: memberData.memberFromApi.login, + attributes: { + [MemberAttributeName.URL]: { + [PlatformType.GITHUB]: memberData.memberFromApi?.url || '', + }, + [MemberAttributeName.AVATAR_URL]: { + [PlatformType.GITHUB]: memberData.memberFromApi?.avatarUrl || '', + }, + [MemberAttributeName.SOURCE_ID]: { + [PlatformType.GITHUB]: memberData.memberFromApi?.id?.toString() || '', + }, + [MemberAttributeName.IS_BOT]: { + [PlatformType.GITHUB]: true, + }, + }, + } + + return member +} + +const parseDeletedMember = (memberData: GithubPrepareMemberOutput): IMemberData => { + const member: IMemberData = { + identities: [ + { + platform: PlatformType.GITHUB, + value: memberData.memberFromApi.login, + type: MemberIdentityType.USERNAME, + verified: true, + }, + ], + displayName: 'Deleted User', + attributes: { + [MemberAttributeName.URL]: { + [PlatformType.GITHUB]: memberData.memberFromApi?.url || '', + }, + [MemberAttributeName.AVATAR_URL]: { + [PlatformType.GITHUB]: memberData.memberFromApi?.avatarUrl || '', + }, + [MemberAttributeName.BIO]: { + [PlatformType.GITHUB]: + "Hi, I'm @ghost! I take the place of user accounts that have been deleted. :ghost:", + }, + }, + } + + return member +} + +const parseMember = ( + memberData: GithubPrepareMemberOutput, + additionalEmails?: string[], +): IMemberData => { + const { email, org, memberFromApi } = memberData + + if (memberFromApi.isBot && memberFromApi.isDeleted) { + throw new Error('Member cannot be both bot and deleted') + } + + if (memberFromApi.isBot) { + return parseBotMember(memberData) + } + + if (memberFromApi.isDeleted) { + return parseDeletedMember(memberData) + } + + const member: IMemberData = { + identities: [ + { + platform: PlatformType.GITHUB, + value: memberFromApi.login, + type: MemberIdentityType.USERNAME, + sourceId: memberFromApi.id.toString(), + verified: true, + }, + ], + displayName: memberFromApi?.name?.trim() || memberFromApi.login, + attributes: { + [MemberAttributeName.IS_HIREABLE]: { + [PlatformType.GITHUB]: memberFromApi.isHireable || false, + }, + [MemberAttributeName.URL]: { + [PlatformType.GITHUB]: memberFromApi.url, + }, + [MemberAttributeName.BIO]: { + [PlatformType.GITHUB]: memberFromApi.bio || '', + }, + [MemberAttributeName.LOCATION]: { + [PlatformType.GITHUB]: memberFromApi.location || '', + }, + [MemberAttributeName.AVATAR_URL]: { + [PlatformType.GITHUB]: memberFromApi.avatarUrl || '', + }, + [MemberAttributeName.COMPANY]: { + [PlatformType.GITHUB]: memberFromApi.company || '', + }, + }, + } + + if (email) { + member.identities.push({ + platform: PlatformType.GITHUB, + value: email, + type: MemberIdentityType.EMAIL, + verified: true, + }) + } + + if (additionalEmails) { + additionalEmails + .filter((email) => email.trim() && email.includes('@')) + .forEach((email) => { + member.identities.push({ + platform: PlatformType.GITHUB, + value: email, + type: MemberIdentityType.EMAIL, + verified: true, + }) + }) + } + + if (memberFromApi?.twitterUsername) { + member.identities.push({ + platform: PlatformType.TWITTER, + value: memberFromApi.twitterUsername, + type: MemberIdentityType.USERNAME, + verified: false, + }) + } + + if (memberFromApi.websiteUrl) { + member.attributes[MemberAttributeName.WEBSITE_URL] = { + [PlatformType.GITHUB]: memberFromApi.websiteUrl, + } + } + + if (memberFromApi.company) { + if (IS_TEST_ENV) { + member.organizations = [ + { + attributes: { + name: { + integration: ['crowd.dev'], + }, + }, + identities: [ + { + value: 'crowd.dev', + platform: PlatformType.GITHUB, + type: OrganizationIdentityType.USERNAME, + verified: true, + }, + ], + source: OrganizationSource.GITHUB, + }, + ] + } else { + const company = memberFromApi.company.replace('@', '').trim() + + if (org && company.length > 0) { + const organizationPayload: IOrganization = { + displayName: org.login, + identities: [ + { + platform: PlatformType.GITHUB, + type: OrganizationIdentityType.USERNAME, + value: org.login, + verified: true, + }, + ], + logo: org.avatarUrl ?? null, + source: OrganizationSource.GITHUB, + } + + member.organizations = [organizationPayload] + } + } + } + + return member +} + +const parseStar: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoStargazersResult + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.STAR, + sourceId: generateSourceIdHash( + data.actorLogin, + GithubActivityType.STAR, + Math.floor(new Date(data.timestamp).getTime() / 1000).toString(), + PlatformType.GITHUB, + ), + sourceParentId: '', + timestamp: new Date(data.timestamp).toISOString(), + channel: apiData.repo.url, + member, + score: GITHUB_GRID.star.score, + isContribution: GITHUB_GRID.star.isContribution, + } + + await ctx.publishActivity(activity) +} + +const parseFork: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + + // if (apiData.orgMember && !apiData.member) { + // await parseForkByOrg(ctx) + // return + // } else if (apiData.member && apiData.orgMember) { + // throw new Error('Both member and orgMember are present') + // } else if (!apiData.member && !apiData.orgMember) { + // throw new Error('Both member and orgMember are missing') + // } + + const data = apiData.data as IGetRepoForksResult + // const relatedData = apiData.relatedData + const memberData = apiData.member + // const subType = apiData.subType + + const member = parseMember(memberData) + + // if (subType && subType === INDIRECT_FORK) { + // const activity: IActivityData = { + // type: GithubActivityType.FORK, + // sourceId: data.id, + // sourceParentId: '', + // timestamp: new Date(data.createdAt).toISOString(), + // channel: apiData.repo.url, + // member, + // score: GITHUB_GRID.fork.score, + // isContribution: GITHUB_GRID.fork.isContribution, + // attributes: { + // isIndirectFork: true, + // directParent: relatedData.url, + // }, + // } + + // await ctx.publishActivity(activity) + // return + // } + + const activity: IActivityData = { + type: GithubActivityType.FORK, + sourceId: data.payload.forkee.node_id, + sourceParentId: '', + timestamp: new Date(data.timestamp).toISOString(), + channel: apiData.repo.url, + member, + score: GITHUB_GRID.fork.score, + isContribution: GITHUB_GRID.fork.isContribution, + } + + await ctx.publishActivity(activity) +} + +const parsePullRequestOpened: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoPullRequestsResult + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.PULL_REQUEST_OPENED, + sourceId: data.payload.pull_request.node_id, + sourceParentId: '', + timestamp: new Date(data.timestamp).toISOString(), + body: data.payload.pull_request.body, + url: data.payload.pull_request._links.html.href, + channel: apiData.repo.url, + title: data.payload.pull_request.title, + attributes: { + state: data.payload.pull_request.state.toLowerCase(), + additions: data.payload.pull_request.additions, + deletions: data.payload.pull_request.deletions, + changedFiles: data.payload.pull_request.changed_files, + authorAssociation: data.payload.pull_request.author_association, + labels: data.payload.pull_request.labels?.map((l) => (l as any)?.name), + sha: data.payload.pull_request.head.sha, + }, + member, + score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_OPENED].score, + isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_OPENED].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parsePullRequestClosed: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoPullRequestsResult + const memberData = apiData.member + const repo = apiData.repo + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.PULL_REQUEST_CLOSED, + sourceId: `gen-CE_${data.payload.pull_request.node_id}_${memberData.memberFromApi.login}_${new Date( + data.timestamp, + ).toISOString()}`, + sourceParentId: data.payload.pull_request.node_id, + timestamp: new Date(data.timestamp).toISOString(), + body: '', + url: data.payload.pull_request._links.html.href, + channel: repo.url, + title: '', + attributes: { + state: data.payload.pull_request.state.toLowerCase(), + additions: data.payload.pull_request.additions, + deletions: data.payload.pull_request.deletions, + changedFiles: data.payload.pull_request.changed_files, + authorAssociation: data.payload.pull_request.author_association, + labels: data.payload.pull_request.labels?.map((l) => (l as any)?.name), + }, + member, + score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_CLOSED].score, + isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_CLOSED].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parsePullRequestReviewed: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoPullRequestReviewsResult + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.PULL_REQUEST_REVIEWED, + sourceId: `gen-PRR_${data.payload.pull_request.node_id}_${memberData.memberFromApi.login}_${new Date( + data.timestamp, + ).toISOString()}`, + sourceParentId: data.payload.pull_request.node_id, + timestamp: new Date(data.timestamp).toISOString(), + url: data.payload.pull_request._links.html.href, + channel: apiData.repo.url, + body: '', + title: '', + attributes: { + reviewState: data.state, + state: data.payload.pull_request.state.toLowerCase(), + authorAssociation: data.payload.pull_request.author_association, + labels: data.payload.pull_request.labels?.map((l) => (l as any)?.name), + }, + member, + score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEWED].score, + isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEWED].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parsePullRequestMerged: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoPullRequestsResult + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.PULL_REQUEST_MERGED, + sourceId: `gen-ME_${data.payload.pull_request.node_id}_${memberData.memberFromApi.login}_${new Date( + data.timestamp, + ).toISOString()}`, + sourceParentId: data.payload.pull_request.node_id, + timestamp: new Date(data.timestamp).toISOString(), + body: '', + url: data.payload.pull_request.html_url, + channel: apiData.repo.url, + title: '', + attributes: { + state: data.payload.pull_request.state.toLowerCase(), + additions: data.payload.pull_request.additions, + deletions: data.payload.pull_request.deletions, + changedFiles: data.payload.pull_request.changed_files, + authorAssociation: data.payload.pull_request.author_association, + labels: data.payload.pull_request.labels?.map((l) => l.name), + }, + member, + score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_MERGED].score, + isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_MERGED].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parseIssueOpened: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoIssuesResult + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.ISSUE_OPENED, + sourceId: data.payload.issue.node_id, + sourceParentId: '', + timestamp: new Date(data.timestamp).toISOString(), + body: data.payload.issue.body, + url: data.payload.issue.html_url, + channel: apiData.repo.url, + title: data.payload.issue.title, + attributes: { + state: data.payload.issue.state.toLowerCase(), + }, + member, + score: GITHUB_GRID[GithubActivityType.ISSUE_OPENED].score, + isContribution: GITHUB_GRID[GithubActivityType.ISSUE_OPENED].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parseIssueClosed: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoIssuesResult + const memberData = apiData.member + const repo = apiData.repo + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.ISSUE_CLOSED, + sourceId: `gen-CE_${data.payload.issue.node_id}_${memberData.memberFromApi.login}_${new Date( + data.timestamp, + ).toISOString()}`, + sourceParentId: data.payload.issue.node_id, + timestamp: new Date(data.timestamp).toISOString(), + body: '', + url: data.payload.issue.html_url, + channel: repo.url, + title: '', + attributes: { + state: data.payload.issue.state.toLowerCase(), + }, + member, + score: GITHUB_GRID[GithubActivityType.ISSUE_CLOSED].score, + isContribution: GITHUB_GRID[GithubActivityType.ISSUE_CLOSED].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parsePullRequestComment: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoPullRequestReviewCommentsResult + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.PULL_REQUEST_COMMENT, + sourceId: data.payload.comment.node_id, + sourceParentId: data.payload.pull_request.node_id, + timestamp: new Date(data.timestamp).toISOString(), + url: data.payload.comment._links.html.href, + body: data.payload.comment.body, + channel: apiData.repo.url, + member, + score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_COMMENT].score, + isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_COMMENT].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parseIssueComment: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoIssueCommentsResult + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.ISSUE_COMMENT, + sourceId: data.payload.comment.node_id, + sourceParentId: data.payload.issue.node_id, + timestamp: new Date(data.timestamp).toISOString(), + url: data.payload.comment.html_url, + body: data.payload.comment.body, + channel: apiData.repo.url, + member, + score: GITHUB_GRID[GithubActivityType.ISSUE_COMMENT].score, + isContribution: GITHUB_GRID[GithubActivityType.ISSUE_COMMENT].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parseAuthoredCommit: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as IGetRepoPushesResult + const memberData = apiData.member + + for (const commit of data.payload.commits.filter((c) => c.distinct)) { + const activity: IActivityData = { + channel: apiData.repo.url, + url: `${apiData.repo.url}/commit/${commit.sha}`, + body: commit.message, + type: 'authored-commit', + sourceId: commit.sha, + timestamp: new Date(data.timestamp).toISOString(), + attributes: { + prSha: data.payloadHead, + }, + // attributes: { + // insertions: 'additions' in data.commit ? data.commit.additions : 0, + // deletions: 'deletions' in data.commit ? data.commit.deletions : 0, + // lines: + // 'additions' in data.commit && 'deletions' in data.commit + // ? data.commit.additions - data.commit.deletions + // : 0, + // isMerge: data.commit.parents.totalCount > 1, + // }, + member: parseMember(memberData, [commit.author.email]), + score: GITHUB_GRID[GithubActivityType.AUTHORED_COMMIT].score, + isContribution: GITHUB_GRID[GithubActivityType.AUTHORED_COMMIT].isContribution, + } + + await ctx.publishActivity(activity) + } +} + +const handler: ProcessDataHandler = async (ctx) => { + const data = ctx.data as any + + const event = data?.type as GithubActivityType + + // for webhoks we are using old code + const webhookEvent = data?.webhookType + + const isOld = data?.isOld + + // this is for old events that don't have pullRequestNodeId + // generated during webhooks for pull requests + if (event === GithubActivityType.AUTHORED_COMMIT && (isOld || 'sourceParentId' in data)) { + await oldHandler(ctx) + return + } + + if (event) { + // parse github api data + switch (event) { + case GithubActivityType.STAR: + await parseStar(ctx) + break + case GithubActivityType.FORK: + await parseFork(ctx) + break + case GithubActivityType.PULL_REQUEST_OPENED: + await parsePullRequestOpened(ctx) + break + case GithubActivityType.PULL_REQUEST_CLOSED: + await parsePullRequestClosed(ctx) + break + case GithubActivityType.PULL_REQUEST_COMMENT: + await parsePullRequestComment(ctx) + break + case GithubActivityType.PULL_REQUEST_REVIEWED: + await parsePullRequestReviewed(ctx) + break + case GithubActivityType.PULL_REQUEST_MERGED: + await parsePullRequestMerged(ctx) + break + case GithubActivityType.ISSUE_OPENED: + await parseIssueOpened(ctx) + break + case GithubActivityType.ISSUE_CLOSED: + await parseIssueClosed(ctx) + break + case GithubActivityType.ISSUE_COMMENT: + await parseIssueComment(ctx) + break + case GithubActivityType.AUTHORED_COMMIT: + await parseAuthoredCommit(ctx) + break + default: + await ctx.abortWithError(`Event not supported '${event}'!`) + } + } else if (webhookEvent) { + await oldHandler(ctx) + } else { + await ctx.abortWithError('No event type found in data!') + } +} + +export default handler diff --git a/services/libs/integrations/src/integrations/github-snowflake/processStream.ts b/services/libs/integrations/src/integrations/github-snowflake/processStream.ts new file mode 100644 index 0000000000..bc8ed5f67a --- /dev/null +++ b/services/libs/integrations/src/integrations/github-snowflake/processStream.ts @@ -0,0 +1,418 @@ +// processStream.ts content +import { + GithubSnowflakeClient, + IBasicResponse, + IGetResponse, + SnowflakeClient, +} from '@crowd/snowflake' + +import { IProcessStreamContext, ProcessStreamHandler } from '../../types' + +import { capGithubArchive } from './cap' +import { + GithubActivityType, + GithubApiData, + GithubBasicStream, + GithubPlatformSettings, + GithubPrepareMemberOutput, + GithubRootStream, + GithubStreamType, +} from './types' + +let sf: SnowflakeClient | undefined = undefined +let gh: GithubSnowflakeClient | undefined = undefined + +let sfIncremental: SnowflakeClient | undefined = undefined +let ghIncremental: GithubSnowflakeClient | undefined = undefined + +const initClient = (ctx: IProcessStreamContext) => { + const settings = ctx.platformSettings as GithubPlatformSettings + sf = new SnowflakeClient({ + privateKeyString: settings.sfPrivateKey, + account: settings.sfAccount, + username: settings.sfUsername, + database: settings.sfDatabase, + warehouse: settings.sfWarehouse, + role: settings.sfRole, + }) + gh = new GithubSnowflakeClient(sf) +} + +const initIncrementalClient = (ctx: IProcessStreamContext) => { + const settings = ctx.platformSettings as GithubPlatformSettings + sfIncremental = new SnowflakeClient({ + privateKeyString: settings.sfPrivateKey, + account: settings.sfAccount, + username: settings.sfUsername, + database: settings.sfDatabase, + warehouse: settings.sfIncrementalWarehouse, + role: settings.sfRole, + }) + ghIncremental = new GithubSnowflakeClient(sfIncremental) +} + +const getClient = ( + ctx: IProcessStreamContext, +): { sf: SnowflakeClient; gh: GithubSnowflakeClient } => { + if (ctx.onboarding) { + if (!sf) { + initClient(ctx) + } + return { sf, gh } + } else { + if (!sfIncremental) { + initIncrementalClient(ctx) + } + return { sf: sfIncremental, gh: ghIncremental } + } +} + +const prepareMember = (data: IBasicResponse): GithubPrepareMemberOutput => { + const isBot = data.actorLogin.endsWith('[bot]') + return { + memberFromApi: { + id: data.actorId.toString(), + login: data.actorLogin, + avatarUrl: data.actorAvatarUrl, + ...(isBot ? { isBot: true } : {}), + }, + org: { + id: data.orgId?.toString(), + login: data.orgLogin, + avatarUrl: data.orgAvatarUrl, + }, + email: '', + } +} + +const publishNextPageStream = async (ctx: IProcessStreamContext, response: IGetResponse) => { + const data = ctx.stream.data as GithubBasicStream + // the last part of stream identifier is page number (e.g commits:12345:1) + const streamIdentifier = ctx.stream.identifier.split(':').slice(0, -1).join(':') + if (response.hasNextPage) { + await ctx.publishStream(`${streamIdentifier}:${response.nextPage}`, { + repo: data.repo, + sf_repo_id: data.sf_repo_id, + page: response.nextPage, + }) + return true + } + return false +} + +const processStargazersStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const { gh } = getClient(ctx) + + const since_days_ago = ctx.onboarding ? undefined : '2' + + const result = await gh.getRepoStargazers({ + sf_repo_id: data.sf_repo_id, + page: data.page, + since_days_ago, + }) + + for (const record of result.data) { + const member = prepareMember(record) + + // publish data + await ctx.processData({ + type: GithubActivityType.STAR, + data: record, + member, + repo: data.repo, + }) + } + + await publishNextPageStream(ctx, result) +} + +const processForksStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const { gh } = getClient(ctx) + + const since_days_ago = ctx.onboarding ? undefined : '2' + + const result = await gh.getRepoForks({ + sf_repo_id: data.sf_repo_id, + page: data.page, + since_days_ago, + }) + + for (const record of result.data) { + const member = prepareMember(record) + + // publish data + await ctx.processData({ + type: GithubActivityType.FORK, + data: record, + member, + repo: data.repo, + }) + } + + await publishNextPageStream(ctx, result) +} + +const processPullsStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const { gh } = getClient(ctx) + + const since_days_ago = ctx.onboarding ? undefined : '2' + + const result = await gh.getRepoPullRequests({ + sf_repo_id: data.sf_repo_id, + page: data.page, + since_days_ago, + }) + + for (const record of result.data) { + const member = prepareMember(record) + const action = record.action + + if (action === 'opened') { + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_OPENED, + data: record, + member, + repo: data.repo, + }) + } else if (action === 'closed') { + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_CLOSED, + data: record, + member, + repo: data.repo, + }) + + // additionall check if this PR is merged + if (record.payload.pull_request.merged) { + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_MERGED, + data: record, + member, + repo: data.repo, + }) + } + } else { + ctx.log.debug(`Unsupported pull request action: ${action}`) + } + } + + await publishNextPageStream(ctx, result) +} + +const processPullCommentsStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const { gh } = getClient(ctx) + + const since_days_ago = ctx.onboarding ? undefined : '2' + + const result = await gh.getRepoPullRequestReviewComments({ + sf_repo_id: data.sf_repo_id, + page: data.page, + since_days_ago, + }) + + for (const record of result.data) { + const member = prepareMember(record) + + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_COMMENT, + data: record, + member, + repo: data.repo, + }) + } + + await publishNextPageStream(ctx, result) +} + +const processIssuesStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const { gh } = getClient(ctx) + + const since_days_ago = ctx.onboarding ? undefined : '2' + + const result = await gh.getRepoIssues({ + sf_repo_id: data.sf_repo_id, + page: data.page, + since_days_ago, + }) + + for (const record of result.data) { + const member = prepareMember(record) + + const action = record.action + + if (action === 'opened') { + await ctx.processData({ + type: GithubActivityType.ISSUE_OPENED, + data: record, + member, + repo: data.repo, + }) + } else if (action === 'closed') { + await ctx.processData({ + type: GithubActivityType.ISSUE_CLOSED, + data: record, + member, + repo: data.repo, + }) + } + } + + await publishNextPageStream(ctx, result) +} + +const processIssueCommentsStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const { gh } = getClient(ctx) + + const since_days_ago = ctx.onboarding ? undefined : '2' + + const result = await gh.getRepoIssueComments({ + sf_repo_id: data.sf_repo_id, + page: data.page, + since_days_ago, + }) + + for (const record of result.data) { + const member = prepareMember(record) + + await ctx.processData({ + type: GithubActivityType.ISSUE_COMMENT, + data: record, + member, + repo: data.repo, + }) + } + + await publishNextPageStream(ctx, result) +} + +const processPullCommitsStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const { gh } = getClient(ctx) + + const result = await gh.getRepoPushes({ + sf_repo_id: data.sf_repo_id, + page: data.page, + }) + + for (const record of result.data) { + const member = prepareMember(record) + + await ctx.processData({ + type: GithubActivityType.AUTHORED_COMMIT, + data: record, + member, + repo: data.repo, + }) + } + + await publishNextPageStream(ctx, result) +} + +const processPullReviewsStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const { gh } = getClient(ctx) + + const result = await gh.getRepoPullRequestReviews({ + sf_repo_id: data.sf_repo_id, + page: data.page, + }) + + for (const record of result.data) { + const member = prepareMember(record) + + // ignore commented reviews with no body + if (record.payload.review.state === 'commented' && record.payload.review.body === null) { + continue + } + + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_REVIEWED, + data: record, + member, + repo: data.repo, + }) + } + + await publishNextPageStream(ctx, result) +} + +const processRootStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubRootStream + const repos = data.reposToCheck + + if (ctx.onboarding) { + await capGithubArchive(ctx, repos) + } + + const { gh } = getClient(ctx) + + // now it's time to start streams + // derivative streams should be started later, otherwise conversations can't be created correctly + for (const repo of repos) { + const repoId = await gh.getRepoId({ repo: repo.url }) + for (const endpoint of [ + GithubStreamType.STARGAZERS, + GithubStreamType.FORKS, + GithubStreamType.PULLS, + GithubStreamType.ISSUES, + GithubStreamType.PULL_COMMITS, + GithubStreamType.PULL_REVIEWS, + GithubStreamType.PULL_COMMENTS, + GithubStreamType.ISSUE_COMMENTS, + ]) { + // this firstPage thing is important to avoid duplicate streams and for handleNextPageStream to work + await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { + repo, + sf_repo_id: repoId, + page: 1, + }) + } + } +} + +const handler: ProcessStreamHandler = async (ctx) => { + const streamIdentifier = ctx.stream.identifier + + if (streamIdentifier.startsWith(GithubStreamType.ROOT)) { + await processRootStream(ctx) + } else { + const streamType = streamIdentifier.split(':')[0] + + switch (streamType) { + case GithubStreamType.STARGAZERS: + await processStargazersStream(ctx) + break + case GithubStreamType.FORKS: + await processForksStream(ctx) + break + case GithubStreamType.PULLS: + await processPullsStream(ctx) + break + case GithubStreamType.PULL_COMMENTS: + await processPullCommentsStream(ctx) + break + case GithubStreamType.PULL_COMMITS: + await processPullCommitsStream(ctx) + break + case GithubStreamType.PULL_REVIEWS: + await processPullReviewsStream(ctx) + break + case GithubStreamType.ISSUES: + await processIssuesStream(ctx) + break + case GithubStreamType.ISSUE_COMMENTS: + await processIssueCommentsStream(ctx) + break + default: + ctx.log.error(`No matching process function for streamType: ${streamType}`) + } + } +} + +export default handler diff --git a/services/libs/integrations/src/integrations/github-snowflake/processWebhookStream.ts b/services/libs/integrations/src/integrations/github-snowflake/processWebhookStream.ts new file mode 100644 index 0000000000..6a5bb0efa2 --- /dev/null +++ b/services/libs/integrations/src/integrations/github-snowflake/processWebhookStream.ts @@ -0,0 +1,8 @@ +import { ProcessWebhookStreamHandler } from '../../types' +import { default as oldHandler } from '../github/processWebhookStream' + +const handler: ProcessWebhookStreamHandler = async (ctx) => { + await oldHandler(ctx) +} + +export default handler diff --git a/services/libs/integrations/src/integrations/github-old/types.ts b/services/libs/integrations/src/integrations/github-snowflake/types.ts similarity index 74% rename from services/libs/integrations/src/integrations/github-old/types.ts rename to services/libs/integrations/src/integrations/github-snowflake/types.ts index 7177870eb4..9df0b3b5ef 100644 --- a/services/libs/integrations/src/integrations/github-old/types.ts +++ b/services/libs/integrations/src/integrations/github-snowflake/types.ts @@ -1,21 +1,18 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ export enum GithubActivityType { - DISCUSSION_STARTED = 'discussion-started', PULL_REQUEST_OPENED = 'pull_request-opened', PULL_REQUEST_CLOSED = 'pull_request-closed', - PULL_REQUEST_REVIEW_REQUESTED = 'pull_request-review-requested', + // PULL_REQUEST_REVIEW_REQUESTED = 'pull_request-review-requested', PULL_REQUEST_REVIEWED = 'pull_request-reviewed', - PULL_REQUEST_ASSIGNED = 'pull_request-assigned', + // PULL_REQUEST_ASSIGNED = 'pull_request-assigned', PULL_REQUEST_MERGED = 'pull_request-merged', ISSUE_OPENED = 'issues-opened', ISSUE_CLOSED = 'issues-closed', FORK = 'fork', STAR = 'star', - UNSTAR = 'unstar', PULL_REQUEST_COMMENT = 'pull_request-comment', - PULL_REQUEST_REVIEW_THREAD_COMMENT = 'pull_request-review-thread-comment', + // PULL_REQUEST_REVIEW_THREAD_COMMENT = 'pull_request-review-thread-comment', ISSUE_COMMENT = 'issue-comment', - DISCUSSION_COMMENT = 'discussion-comment', AUTHORED_COMMIT = 'authored-commit', } @@ -82,32 +79,16 @@ export enum GithubWebhookSubType { DISCUSSION_COMMENT_REPLY = 'discussion-comment-reply', } -export enum GithubWehookEvent { - ISSUES = 'issues', - DISCUSSION = 'discussion', - PULL_REQUEST = 'pull_request', - PULL_REQUEST_REVIEW = 'pull_request_review', - STAR = 'star', - FORK = 'fork', - DISCUSSION_COMMENT = 'discussion_comment', - PULL_REQUEST_REVIEW_COMMENT = 'pull_request_review_comment', - ISSUE_COMMENT = 'issue_comment', - PULL_REQUEST_COMMENT = 'pull_request_comment', -} - export enum GithubStreamType { ROOT = 'root', STARGAZERS = 'stargazers', FORKS = 'forks', PULLS = 'pulls', PULL_COMMENTS = 'pull-comments', - PULL_REVIEW_THREADS = 'pull-review-threads', - PULL_REVIEW_THREAD_COMMENTS = 'pull-review-thread-comments', PULL_COMMITS = 'pull-commits', + PULL_REVIEWS = 'pull-reviews', ISSUES = 'issues', ISSUE_COMMENTS = 'issue-comments', - DISCUSSIONS = 'discussions', - DISCUSSION_COMMENTS = 'discussion-comments', } export enum GithubManualStreamType { @@ -116,7 +97,6 @@ export enum GithubManualStreamType { FORKS = 'forks', PULLS = 'pulls', ISSUES = 'issues', - DISCUSSIONS = 'discussions', } export const INDIRECT_FORK = 'indirect-fork' @@ -131,19 +111,6 @@ export interface GithubApiData { objectMember?: GithubPrepareMemberOutput sourceParentId?: string repo: Repo - isOld: boolean -} - -export interface GithubWebhookData { - webhookType: GithubWehookEvent - subType?: string - data: any[] | any - relatedData?: any | any[] - member?: GithubPrepareMemberOutput - orgMember?: GithubPrepareOrgMemberOutput - objectMember?: GithubPrepareMemberOutput - sourceParentId?: string - date?: string } export interface GithubRootStream { @@ -152,7 +119,8 @@ export interface GithubRootStream { export interface GithubBasicStream { repo: Repo - page: string + sf_repo_id: string + page: number prNumber?: string reviewThreadId?: string issueNumber?: string @@ -160,6 +128,13 @@ export interface GithubBasicStream { } export interface GithubPlatformSettings { + sfPrivateKey: string + sfAccount: string + sfUsername: string + sfDatabase: string + sfWarehouse: string + sfIncrementalWarehouse: string + sfRole: string appId: string clientId: string clientSecret: string @@ -169,11 +144,19 @@ export interface GithubPlatformSettings { globalLimit?: number callbackUrl: string personalAccessTokens: string + tgNotifierToken: string + tgNotifierChatId: string } export interface GithubIntegrationSettings { - repos: Repos - unavailableRepos: Repos + orgs: Array<{ + name: string + logo: string + url: string + fullSync: boolean + updatedAt: string + repos: Array + }> } export interface GitHubManualIntegrationSettingsDefault extends GithubIntegrationSettings { @@ -199,14 +182,9 @@ export enum GithubPullRequestEvents { } export type Repo = { - url: string name: string - createdAt: string - owner: string - available?: boolean - fork?: boolean - private?: boolean - cloneUrl?: string + url: string + updatedAt: string } export type Repos = Array @@ -228,8 +206,26 @@ export interface AppTokenResponse { export interface GithubPrepareMemberOutput { email: string - orgs: any - memberFromApi: any + org: { + id: string + login: string + avatarUrl: string + } + memberFromApi: { + id: string + login: string + avatarUrl: string + isBot?: boolean + isDeleted?: boolean + name?: string + bio?: string + location?: string + company?: string + url?: string + isHireable?: boolean + twitterUsername?: string + websiteUrl?: string + } } export interface GithubBotMember { diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/baseQuery.ts b/services/libs/integrations/src/integrations/github/api/graphql/baseQuery.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/baseQuery.ts rename to services/libs/integrations/src/integrations/github/api/graphql/baseQuery.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/discussionComments.ts b/services/libs/integrations/src/integrations/github/api/graphql/discussionComments.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/discussionComments.ts rename to services/libs/integrations/src/integrations/github/api/graphql/discussionComments.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/discussions.ts b/services/libs/integrations/src/integrations/github/api/graphql/discussions.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/discussions.ts rename to services/libs/integrations/src/integrations/github/api/graphql/discussions.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/forks.ts b/services/libs/integrations/src/integrations/github/api/graphql/forks.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/forks.ts rename to services/libs/integrations/src/integrations/github/api/graphql/forks.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/issueComments.ts b/services/libs/integrations/src/integrations/github/api/graphql/issueComments.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/issueComments.ts rename to services/libs/integrations/src/integrations/github/api/graphql/issueComments.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/issues.ts b/services/libs/integrations/src/integrations/github/api/graphql/issues.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/issues.ts rename to services/libs/integrations/src/integrations/github/api/graphql/issues.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/members.ts b/services/libs/integrations/src/integrations/github/api/graphql/members.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/members.ts rename to services/libs/integrations/src/integrations/github/api/graphql/members.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/organizations.ts b/services/libs/integrations/src/integrations/github/api/graphql/organizations.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/organizations.ts rename to services/libs/integrations/src/integrations/github/api/graphql/organizations.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestComments.ts b/services/libs/integrations/src/integrations/github/api/graphql/pullRequestComments.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestComments.ts rename to services/libs/integrations/src/integrations/github/api/graphql/pullRequestComments.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestCommits.ts b/services/libs/integrations/src/integrations/github/api/graphql/pullRequestCommits.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestCommits.ts rename to services/libs/integrations/src/integrations/github/api/graphql/pullRequestCommits.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestCommitsNoAdditions.ts b/services/libs/integrations/src/integrations/github/api/graphql/pullRequestCommitsNoAdditions.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestCommitsNoAdditions.ts rename to services/libs/integrations/src/integrations/github/api/graphql/pullRequestCommitsNoAdditions.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestReviewThreadComments.ts b/services/libs/integrations/src/integrations/github/api/graphql/pullRequestReviewThreadComments.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestReviewThreadComments.ts rename to services/libs/integrations/src/integrations/github/api/graphql/pullRequestReviewThreadComments.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestReviewThreads.ts b/services/libs/integrations/src/integrations/github/api/graphql/pullRequestReviewThreads.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/pullRequestReviewThreads.ts rename to services/libs/integrations/src/integrations/github/api/graphql/pullRequestReviewThreads.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/pullRequests.ts b/services/libs/integrations/src/integrations/github/api/graphql/pullRequests.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/pullRequests.ts rename to services/libs/integrations/src/integrations/github/api/graphql/pullRequests.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/stargazers.ts b/services/libs/integrations/src/integrations/github/api/graphql/stargazers.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/stargazers.ts rename to services/libs/integrations/src/integrations/github/api/graphql/stargazers.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/teams.ts b/services/libs/integrations/src/integrations/github/api/graphql/teams.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/teams.ts rename to services/libs/integrations/src/integrations/github/api/graphql/teams.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/graphql/types.ts b/services/libs/integrations/src/integrations/github/api/graphql/types.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/graphql/types.ts rename to services/libs/integrations/src/integrations/github/api/graphql/types.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/rest/getAppToken.ts b/services/libs/integrations/src/integrations/github/api/rest/getAppToken.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/rest/getAppToken.ts rename to services/libs/integrations/src/integrations/github/api/rest/getAppToken.ts diff --git a/services/libs/integrations/src/integrations/github-old/api/rest/getInstalledRepositories.ts b/services/libs/integrations/src/integrations/github/api/rest/getInstalledRepositories.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/api/rest/getInstalledRepositories.ts rename to services/libs/integrations/src/integrations/github/api/rest/getInstalledRepositories.ts diff --git a/services/libs/integrations/src/integrations/github/generateStreams.ts b/services/libs/integrations/src/integrations/github/generateStreams.ts index 2b0455c9bb..2a6a8bf40f 100644 --- a/services/libs/integrations/src/integrations/github/generateStreams.ts +++ b/services/libs/integrations/src/integrations/github/generateStreams.ts @@ -1,40 +1,91 @@ import { GenerateStreamsHandler } from '../../types' -import { GithubIntegrationSettings, GithubRootStream, GithubStreamType, Repo } from './types' +import { + GithubBasicStream, + GithubIntegrationSettings, + GithubManualIntegrationSettings, + GithubManualStreamType, + GithubRootStream, + GithubStreamType, +} from './types' -const NEW_REPO_THRESHOLD_MS = 20000 // 20 seconds in milliseconds +const streamToManualStreamMap: Map = new Map([ + [GithubStreamType.STARGAZERS, GithubManualStreamType.STARGAZERS], + [GithubStreamType.FORKS, GithubManualStreamType.FORKS], + [GithubStreamType.PULLS, GithubManualStreamType.PULLS], + [GithubStreamType.ISSUES, GithubManualStreamType.ISSUES], + [GithubStreamType.DISCUSSIONS, GithubManualStreamType.DISCUSSIONS], +]) -interface AdditionalInfo { - messageSentAt: string -} - -const isRepoRecentlyUpdated = (repo: Repo, messageSentAt?: Date): boolean => { - if (!repo.updatedAt) return true // If no updatedAt, process it to be safe +const manualStreamToStreamMap: Map = new Map([ + [GithubManualStreamType.STARGAZERS, GithubStreamType.STARGAZERS], + [GithubManualStreamType.FORKS, GithubStreamType.FORKS], + [GithubManualStreamType.PULLS, GithubStreamType.PULLS], + [GithubManualStreamType.ISSUES, GithubStreamType.ISSUES], + [GithubManualStreamType.DISCUSSIONS, GithubStreamType.DISCUSSIONS], +]) - if (messageSentAt) { - // For newly added repos, check if they were updated within 20 seconds of the message - const repoUpdateTime = new Date(repo.updatedAt).getTime() - const messageTime = messageSentAt.getTime() - return Math.abs(repoUpdateTime - messageTime) < NEW_REPO_THRESHOLD_MS +const objectToMap = (obj: object): Map> => { + const map = new Map>() + for (const [key, value] of Object.entries(obj)) { + map.set(key, value) } - - return true + return map } const handler: GenerateStreamsHandler = async (ctx) => { - const messageSentAt = (ctx.additionalInfo as AdditionalInfo)?.messageSentAt - ? new Date((ctx.additionalInfo as AdditionalInfo).messageSentAt) - : undefined const settings = ctx.integration.settings as GithubIntegrationSettings - const reposToCheck = ctx.onboarding - ? settings.orgs - .flatMap((org) => org.repos) - .filter((repo) => isRepoRecentlyUpdated(repo, messageSentAt)) - : // for onboarding runs, we only check recently added repos. This needed when integration updated - settings.orgs.flatMap((org) => org.repos) // for non-onboarding runs, we check all repos + const reposToCheck = [...(settings.repos || []), ...(settings.unavailableRepos || [])] + + const isManualRun = ctx.isManualRun - ctx.log.info(`${messageSentAt ? messageSentAt.toISOString() : 'Checking all repos'}`) + if (isManualRun) { + const manualSettings = ctx.manualSettings as GithubManualIntegrationSettings + if (!manualSettings) { + ctx.abortRunWithError('isManualRun is true but manualSettings is not set!') + } + + if (manualSettings.repos && manualSettings.manualSettingsType === 'default') { + for (const repo of manualSettings.repos) { + for (const endpoint of [ + GithubStreamType.STARGAZERS, + GithubStreamType.FORKS, + GithubStreamType.PULLS, + GithubStreamType.ISSUES, + GithubStreamType.DISCUSSIONS, + ]) { + if ( + manualSettings.streamType === GithubManualStreamType.ALL || + manualSettings.streamType === streamToManualStreamMap.get(endpoint) + ) { + await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { + repo, + page: '', + }) + } + } + } + } else if (manualSettings.repos && manualSettings.manualSettingsType === 'detailed_map') { + const map = objectToMap(manualSettings.map) + for (const [repoUrl, streams] of map) { + for (const stream of streams) { + const endpoint = manualStreamToStreamMap.get(stream) + if (!endpoint) { + ctx.abortRunWithError(`Invalid stream type: ${stream}`) + } + const repo = manualSettings.repos.find((r) => r.url === repoUrl) + await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { + repo, + page: '', + }) + } + } + } + + return + } + // not manual run, executing normal run await ctx.publishStream(GithubStreamType.ROOT, { reposToCheck, }) diff --git a/services/libs/integrations/src/integrations/github/grid.ts b/services/libs/integrations/src/integrations/github/grid.ts index 935d7394d3..8bc78e95b5 100644 --- a/services/libs/integrations/src/integrations/github/grid.ts +++ b/services/libs/integrations/src/integrations/github/grid.ts @@ -3,6 +3,14 @@ import { IActivityScoringGrid } from '@crowd/types' import { GithubActivityType } from './types' export const GITHUB_GRID: Record = { + [GithubActivityType.DISCUSSION_STARTED]: { + score: 8, + isContribution: true, + }, + [GithubActivityType.DISCUSSION_COMMENT]: { + score: 6, + isContribution: true, + }, [GithubActivityType.FORK]: { score: 4, isContribution: false, @@ -35,14 +43,30 @@ export const GITHUB_GRID: Record = { score: 2, isContribution: false, }, + [GithubActivityType.UNSTAR]: { + score: -2, + isContribution: false, + }, [GithubActivityType.PULL_REQUEST_MERGED]: { score: 6, isContribution: true, }, + [GithubActivityType.PULL_REQUEST_ASSIGNED]: { + score: 2, + isContribution: false, + }, [GithubActivityType.PULL_REQUEST_REVIEWED]: { score: 8, isContribution: true, }, + [GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED]: { + score: 2, + isContribution: false, + }, + [GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT]: { + score: 6, + isContribution: true, + }, [GithubActivityType.AUTHORED_COMMIT]: { score: 2, isContribution: true, diff --git a/services/libs/integrations/src/integrations/github/index.ts b/services/libs/integrations/src/integrations/github/index.ts index 6e978f0125..7b028eefda 100644 --- a/services/libs/integrations/src/integrations/github/index.ts +++ b/services/libs/integrations/src/integrations/github/index.ts @@ -12,11 +12,10 @@ import processWebhookStream from './processWebhookStream' const descriptor: IIntegrationDescriptor = { type: PlatformType.GITHUB, memberAttributes: GITHUB_MEMBER_ATTRIBUTES, - checkEvery: 24 * 60, // 24 hours generateStreams, processStream, - processData, processWebhookStream, + processData, // eslint-disable-next-line @typescript-eslint/no-explicit-any postProcess: (settings: any) => { return settings diff --git a/services/libs/integrations/src/integrations/github/memberAttributes.ts b/services/libs/integrations/src/integrations/github/memberAttributes.ts index ea05cb7d1e..8ad671c37e 100644 --- a/services/libs/integrations/src/integrations/github/memberAttributes.ts +++ b/services/libs/integrations/src/integrations/github/memberAttributes.ts @@ -55,11 +55,4 @@ export const GITHUB_MEMBER_ATTRIBUTES: IMemberAttribute[] = [ canDelete: false, show: true, }, - { - name: MemberAttributes[MemberAttributeName.IS_BOT].name, - label: MemberAttributes[MemberAttributeName.IS_BOT].label, - type: MemberAttributeType.BOOLEAN, - canDelete: false, - show: true, - }, ] diff --git a/services/libs/integrations/src/integrations/github/processData.ts b/services/libs/integrations/src/integrations/github/processData.ts index 96f746f300..b7314ed833 100644 --- a/services/libs/integrations/src/integrations/github/processData.ts +++ b/services/libs/integrations/src/integrations/github/processData.ts @@ -1,18 +1,9 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ // processStream.ts content // processData.ts content -import { - type IGetRepoForksResult, - type IGetRepoIssueCommentsResult, - type IGetRepoIssuesResult, - type IGetRepoPullRequestReviewCommentsResult, - type IGetRepoPullRequestReviewsResult, - type IGetRepoPullRequestsResult, - type IGetRepoPushesResult, - type IGetRepoStargazersResult, -} from '@crowd/snowflake' import { IActivityData, + IActivityScoringGrid, IMemberData, IOrganization, MemberAttributeName, @@ -23,11 +14,23 @@ import { } from '@crowd/types' import { generateSourceIdHash } from '../../helpers' -import { ProcessDataHandler } from '../../types' -import { default as oldHandler } from '../github-old/processData' +import { IProcessDataContext, ProcessDataHandler } from '../../types' import { GITHUB_GRID } from './grid' -import { GithubActivityType, GithubApiData, GithubPrepareMemberOutput } from './types' +import { + GithubActivitySubType, + GithubActivityType, + GithubApiData, + GithubIssue, + GithubIssueTimelineItem, + GithubPrepareMemberOutput, + GithubPrepareOrgMemberOutput,./processData + GithubPullRequest, + GithubPullRequestTimelineItem, + GithubWebhookData, + GithubWehookEvent, + INDIRECT_FORK, +} from './types' const IS_TEST_ENV: boolean = process.env.NODE_ENV === 'test' @@ -89,11 +92,8 @@ const parseDeletedMember = (memberData: GithubPrepareMemberOutput): IMemberData return member } -const parseMember = ( - memberData: GithubPrepareMemberOutput, - additionalEmails?: string[], -): IMemberData => { - const { email, org, memberFromApi } = memberData +const parseMember = (memberData: GithubPrepareMemberOutput): IMemberData => { + const { email, orgs, memberFromApi } = memberData if (memberFromApi.isBot && memberFromApi.isDeleted) { throw new Error('Member cannot be both bot and deleted') @@ -149,19 +149,6 @@ const parseMember = ( }) } - if (additionalEmails) { - additionalEmails - .filter((email) => email.trim() && email.includes('@')) - .forEach((email) => { - member.identities.push({ - platform: PlatformType.GITHUB, - value: email, - type: MemberIdentityType.EMAIL, - verified: true, - }) - }) - } - if (memberFromApi?.twitterUsername) { member.identities.push({ platform: PlatformType.TWITTER, @@ -200,19 +187,40 @@ const parseMember = ( } else { const company = memberFromApi.company.replace('@', '').trim() - if (org && company.length > 0) { - const organizationPayload: IOrganization = { - displayName: org.login, + if (orgs && company.length > 0) { + const organizationPayload = { + displayName: orgs.name, + names: [orgs.name], identities: [ { platform: PlatformType.GITHUB, type: OrganizationIdentityType.USERNAME, - value: org.login, + value: orgs.url.replace('https://github.com/', ''), verified: true, }, ], - logo: org.avatarUrl ?? null, + description: orgs.description ?? null, + location: orgs.location ?? null, + logo: orgs.avatarUrl ?? null, source: OrganizationSource.GITHUB, + } as IOrganization + + if (orgs.websiteUrl) { + organizationPayload.identities.push({ + platform: PlatformType.GITHUB, + type: OrganizationIdentityType.PRIMARY_DOMAIN, + value: orgs.websiteUrl, + verified: false, + }) + } + + if (orgs.twitterUsername) { + organizationPayload.identities.push({ + platform: PlatformType.TWITTER, + type: OrganizationIdentityType.USERNAME, + value: orgs.twitterUsername, + verified: false, + }) } member.organizations = [organizationPayload] @@ -220,12 +228,77 @@ const parseMember = ( } } + // if (memberFromApi.followers && memberFromApi.followers.totalCount > 0) { + // member.reach = { [PlatformType.GITHUB]: memberFromApi.followers.totalCount } + // } + + return member +} + +const parseOrgMember = (memberData: GithubPrepareOrgMemberOutput): IMemberData => { + const { orgFromApi } = memberData + + const member: IMemberData = { + identities: [ + { + platform: PlatformType.GITHUB, + value: orgFromApi.login, + type: MemberIdentityType.USERNAME, + verified: true, + }, + ], + displayName: orgFromApi?.name?.trim() || orgFromApi.login, + attributes: { + [MemberAttributeName.URL]: { + [PlatformType.GITHUB]: orgFromApi.url, + }, + [MemberAttributeName.BIO]: { + [PlatformType.GITHUB]: orgFromApi.description || '', + }, + [MemberAttributeName.LOCATION]: { + [PlatformType.GITHUB]: orgFromApi.location || '', + }, + [MemberAttributeName.AVATAR_URL]: { + [PlatformType.GITHUB]: orgFromApi.avatarUrl || '', + }, + }, + } + + if (orgFromApi.email) { + member.identities.push({ + platform: PlatformType.GITHUB, + value: orgFromApi.email, + type: MemberIdentityType.EMAIL, + verified: true, + }) + } + + if (orgFromApi?.twitterUsername) { + member.identities.push({ + platform: PlatformType.TWITTER, + value: orgFromApi.twitterUsername, + type: MemberIdentityType.USERNAME, + verified: false, + }) + } + + if (orgFromApi.websiteUrl) { + member.attributes[MemberAttributeName.WEBSITE_URL] = { + [PlatformType.GITHUB]: orgFromApi.websiteUrl, + } + } + + // mark as organization + member.attributes[MemberAttributeName.IS_ORGANIZATION] = { + [PlatformType.GITHUB]: true, + } + return member } const parseStar: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoStargazersResult + const data = apiData.data const memberData = apiData.member const member = parseMember(memberData) @@ -233,13 +306,13 @@ const parseStar: ProcessDataHandler = async (ctx) => { const activity: IActivityData = { type: GithubActivityType.STAR, sourceId: generateSourceIdHash( - data.actorLogin, + data.node.login, GithubActivityType.STAR, - Math.floor(new Date(data.timestamp).getTime() / 1000).toString(), + Math.floor(new Date(data.starredAt).getTime() / 1000).toString(), PlatformType.GITHUB, ), sourceParentId: '', - timestamp: new Date(data.timestamp).toISOString(), + timestamp: new Date(data.starredAt).toISOString(), channel: apiData.repo.url, member, score: GITHUB_GRID.star.score, @@ -252,47 +325,47 @@ const parseStar: ProcessDataHandler = async (ctx) => { const parseFork: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - // if (apiData.orgMember && !apiData.member) { - // await parseForkByOrg(ctx) - // return - // } else if (apiData.member && apiData.orgMember) { - // throw new Error('Both member and orgMember are present') - // } else if (!apiData.member && !apiData.orgMember) { - // throw new Error('Both member and orgMember are missing') - // } + if (apiData.orgMember && !apiData.member) { + await parseForkByOrg(ctx) + return + } else if (apiData.member && apiData.orgMember) { + throw new Error('Both member and orgMember are present') + } else if (!apiData.member && !apiData.orgMember) { + throw new Error('Both member and orgMember are missing') + } - const data = apiData.data as IGetRepoForksResult - // const relatedData = apiData.relatedData + const data = apiData.data + const relatedData = apiData.relatedData const memberData = apiData.member - // const subType = apiData.subType + const subType = apiData.subType const member = parseMember(memberData) - // if (subType && subType === INDIRECT_FORK) { - // const activity: IActivityData = { - // type: GithubActivityType.FORK, - // sourceId: data.id, - // sourceParentId: '', - // timestamp: new Date(data.createdAt).toISOString(), - // channel: apiData.repo.url, - // member, - // score: GITHUB_GRID.fork.score, - // isContribution: GITHUB_GRID.fork.isContribution, - // attributes: { - // isIndirectFork: true, - // directParent: relatedData.url, - // }, - // } - - // await ctx.publishActivity(activity) - // return - // } + if (subType && subType === INDIRECT_FORK) { + const activity: IActivityData = { + type: GithubActivityType.FORK, + sourceId: data.id, + sourceParentId: '', + timestamp: new Date(data.createdAt).toISOString(), + channel: apiData.repo.url, + member, + score: GITHUB_GRID.fork.score, + isContribution: GITHUB_GRID.fork.isContribution, + attributes: { + isIndirectFork: true, + directParent: relatedData.url, + }, + } + + await ctx.publishActivity(activity) + return + } const activity: IActivityData = { type: GithubActivityType.FORK, - sourceId: data.payload.forkee.node_id, + sourceId: data.id, sourceParentId: '', - timestamp: new Date(data.timestamp).toISOString(), + timestamp: new Date(data.createdAt).toISOString(), channel: apiData.repo.url, member, score: GITHUB_GRID.fork.score, @@ -302,30 +375,76 @@ const parseFork: ProcessDataHandler = async (ctx) => { await ctx.publishActivity(activity) } +const parseForkByOrg: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data + const relatedData = apiData.relatedData + const memberData = apiData.orgMember + const subType = apiData.subType + + const member = parseOrgMember(memberData) + + if (subType && subType === INDIRECT_FORK) { + const activity: IActivityData = { + type: GithubActivityType.FORK, + sourceId: data.id, + sourceParentId: '', + timestamp: new Date(data.createdAt).toISOString(), + channel: apiData.repo.url, + member, + score: GITHUB_GRID.fork.score, + isContribution: GITHUB_GRID.fork.isContribution, + attributes: { + isIndirectFork: true, + directParent: relatedData.url, + isForkByOrg: true, + }, + } + + await ctx.publishActivity(activity) + return + } + + const activity: IActivityData = { + type: GithubActivityType.FORK, + sourceId: data.id, + sourceParentId: '', + timestamp: new Date(data.createdAt).toISOString(), + channel: apiData.repo.url, + member, + score: GITHUB_GRID.fork.score, + isContribution: GITHUB_GRID.fork.isContribution, + attributes: { + isForkByOrg: true, + }, + } + + await ctx.publishActivity(activity) +} + const parsePullRequestOpened: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoPullRequestsResult + const data = apiData.data as GithubPullRequest const memberData = apiData.member const member = parseMember(memberData) const activity: IActivityData = { type: GithubActivityType.PULL_REQUEST_OPENED, - sourceId: data.payload.pull_request.node_id, + sourceId: data.id, sourceParentId: '', - timestamp: new Date(data.timestamp).toISOString(), - body: data.payload.pull_request.body, - url: data.payload.pull_request._links.html.href, + timestamp: new Date(data.createdAt).toISOString(), + body: data.bodyText, + url: data.url ? data.url : '', channel: apiData.repo.url, - title: data.payload.pull_request.title, + title: data.title, attributes: { - state: data.payload.pull_request.state.toLowerCase(), - additions: data.payload.pull_request.additions, - deletions: data.payload.pull_request.deletions, - changedFiles: data.payload.pull_request.changed_files, - authorAssociation: data.payload.pull_request.author_association, - labels: data.payload.pull_request.labels?.map((l) => (l as any)?.name), - sha: data.payload.pull_request.head.sha, + state: data.state.toLowerCase(), + additions: data.additions, + deletions: data.deletions, + changedFiles: data.changedFiles, + authorAssociation: data.authorAssociation, + labels: data.labels?.nodes.map((l) => l.name), }, member, score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_OPENED].score, @@ -337,7 +456,8 @@ const parsePullRequestOpened: ProcessDataHandler = async (ctx) => { const parsePullRequestClosed: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoPullRequestsResult + const data = apiData.data as GithubPullRequestTimelineItem + const relatedData = apiData.relatedData as GithubPullRequest const memberData = apiData.member const repo = apiData.repo @@ -345,22 +465,22 @@ const parsePullRequestClosed: ProcessDataHandler = async (ctx) => { const activity: IActivityData = { type: GithubActivityType.PULL_REQUEST_CLOSED, - sourceId: `gen-CE_${data.payload.pull_request.node_id}_${memberData.memberFromApi.login}_${new Date( - data.timestamp, + sourceId: `gen-CE_${relatedData.id}_${memberData.memberFromApi.login}_${new Date( + data.createdAt, ).toISOString()}`, - sourceParentId: data.payload.pull_request.node_id, - timestamp: new Date(data.timestamp).toISOString(), + sourceParentId: relatedData.id, + timestamp: new Date(data.createdAt).toISOString(), body: '', - url: data.payload.pull_request._links.html.href, + url: relatedData.url ? relatedData.url : '', channel: repo.url, title: '', attributes: { - state: data.payload.pull_request.state.toLowerCase(), - additions: data.payload.pull_request.additions, - deletions: data.payload.pull_request.deletions, - changedFiles: data.payload.pull_request.changed_files, - authorAssociation: data.payload.pull_request.author_association, - labels: data.payload.pull_request.labels?.map((l) => (l as any)?.name), + state: relatedData.state.toLowerCase(), + additions: relatedData.additions, + deletions: relatedData.deletions, + changedFiles: relatedData.changedFiles, + authorAssociation: relatedData.authorAssociation, + labels: relatedData.labels?.nodes.map((l) => l.name), }, member, score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_CLOSED].score, @@ -370,29 +490,80 @@ const parsePullRequestClosed: ProcessDataHandler = async (ctx) => { await ctx.publishActivity(activity) } +const parsePullRequestReviewRequested: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as GithubPullRequestTimelineItem + const relatedData = apiData.relatedData as GithubPullRequest + const memberData = apiData.member + const objectMemberData = apiData.objectMember + + const member = parseMember(memberData) + const objectMember = parseMember(objectMemberData) + + const subType = apiData.subType + + const sourceId = + subType === GithubActivitySubType.PULL_REQUEST_REVIEW_REQUESTED_SINGLE + ? `gen-RRE_${relatedData.id}_${memberData.memberFromApi.login}_${ + objectMemberData.memberFromApi.login + }_${new Date(data.createdAt).toISOString()}` + : `gen-RRE_${relatedData.id}_${memberData.memberFromApi.login}_${ + objectMemberData.memberFromApi.login + }_${new Date(data.createdAt).toISOString()}` + + const activity: IActivityData = { + type: GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED, + sourceId: sourceId, + sourceParentId: relatedData.id, + timestamp: new Date(data.createdAt).toISOString(), + body: '', + url: relatedData.url, + channel: apiData.repo.url, + title: '', + attributes: { + state: relatedData.state.toLowerCase(), + additions: relatedData.additions, + deletions: relatedData.deletions, + changedFiles: relatedData.changedFiles, + authorAssociation: relatedData.authorAssociation, + labels: relatedData.labels?.nodes.map((l) => l.name), + }, + member, + objectMember, + score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED].score, + isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED].isContribution, + } + + await ctx.publishActivity(activity) +} + const parsePullRequestReviewed: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoPullRequestReviewsResult + const data = apiData.data as GithubPullRequestTimelineItem + const relatedData = apiData.relatedData as GithubPullRequest const memberData = apiData.member const member = parseMember(memberData) const activity: IActivityData = { type: GithubActivityType.PULL_REQUEST_REVIEWED, - sourceId: `gen-PRR_${data.payload.pull_request.node_id}_${memberData.memberFromApi.login}_${new Date( - data.timestamp, + sourceId: `gen-PRR_${relatedData.id}_${memberData.memberFromApi.login}_${new Date( + data.submittedAt, ).toISOString()}`, - sourceParentId: data.payload.pull_request.node_id, - timestamp: new Date(data.timestamp).toISOString(), - url: data.payload.pull_request._links.html.href, + sourceParentId: relatedData.id, + timestamp: new Date(data.submittedAt).toISOString(), + url: relatedData.url, channel: apiData.repo.url, - body: '', + body: data.body, title: '', attributes: { reviewState: data.state, - state: data.payload.pull_request.state.toLowerCase(), - authorAssociation: data.payload.pull_request.author_association, - labels: data.payload.pull_request.labels?.map((l) => (l as any)?.name), + state: relatedData.state.toLowerCase(), + additions: relatedData.additions, + deletions: relatedData.deletions, + changedFiles: relatedData.changedFiles, + authorAssociation: relatedData.authorAssociation, + labels: relatedData.labels, }, member, score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEWED].score, @@ -402,31 +573,70 @@ const parsePullRequestReviewed: ProcessDataHandler = async (ctx) => { await ctx.publishActivity(activity) } +const parsePullRequestAssigned: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data as GithubPullRequestTimelineItem + const relatedData = apiData.relatedData as GithubPullRequest + const memberData = apiData.member + const objectMemberData = apiData.objectMember + + const member = parseMember(memberData) + const objectMember = parseMember(objectMemberData) + + const activity: IActivityData = { + type: GithubActivityType.PULL_REQUEST_ASSIGNED, + sourceId: `gen-AE_${relatedData.id}_${memberData.memberFromApi.login}_${ + objectMemberData.memberFromApi.login + }_${new Date(data.createdAt).toISOString()}`, + sourceParentId: relatedData.id, + timestamp: new Date(data.createdAt).toISOString(), + body: '', + url: relatedData.url, + channel: apiData.repo.url, + title: '', + attributes: { + state: relatedData.state.toLowerCase(), + additions: relatedData.additions, + deletions: relatedData.deletions, + changedFiles: relatedData.changedFiles, + authorAssociation: relatedData.authorAssociation, + labels: relatedData.labels?.nodes?.map((l) => l.name), + }, + member, + objectMember, + score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_ASSIGNED].score, + isContribution: GITHUB_GRID[GithubActivityType.PULL_REQUEST_ASSIGNED].isContribution, + } + + await ctx.publishActivity(activity) +} + const parsePullRequestMerged: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoPullRequestsResult + const data = apiData.data as GithubPullRequestTimelineItem + const relatedData = apiData.relatedData as GithubPullRequest const memberData = apiData.member const member = parseMember(memberData) const activity: IActivityData = { type: GithubActivityType.PULL_REQUEST_MERGED, - sourceId: `gen-ME_${data.payload.pull_request.node_id}_${memberData.memberFromApi.login}_${new Date( - data.timestamp, + sourceId: `gen-ME_${relatedData.id}_${memberData.memberFromApi.login}_${new Date( + data.createdAt, ).toISOString()}`, - sourceParentId: data.payload.pull_request.node_id, - timestamp: new Date(data.timestamp).toISOString(), + sourceParentId: relatedData.id, + timestamp: new Date(data.createdAt).toISOString(), body: '', - url: data.payload.pull_request.html_url, + url: relatedData.url, channel: apiData.repo.url, title: '', attributes: { - state: data.payload.pull_request.state.toLowerCase(), - additions: data.payload.pull_request.additions, - deletions: data.payload.pull_request.deletions, - changedFiles: data.payload.pull_request.changed_files, - authorAssociation: data.payload.pull_request.author_association, - labels: data.payload.pull_request.labels?.map((l) => l.name), + state: relatedData.state.toLowerCase(), + additions: relatedData.additions, + deletions: relatedData.deletions, + changedFiles: relatedData.changedFiles, + authorAssociation: relatedData.authorAssociation, + labels: relatedData.labels?.nodes.map((l) => l.name), }, member, score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_MERGED].score, @@ -438,22 +648,22 @@ const parsePullRequestMerged: ProcessDataHandler = async (ctx) => { const parseIssueOpened: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoIssuesResult + const data = apiData.data as GithubIssue const memberData = apiData.member const member = parseMember(memberData) const activity: IActivityData = { type: GithubActivityType.ISSUE_OPENED, - sourceId: data.payload.issue.node_id, + sourceId: data.id, sourceParentId: '', - timestamp: new Date(data.timestamp).toISOString(), - body: data.payload.issue.body, - url: data.payload.issue.html_url, + timestamp: new Date(data.createdAt).toISOString(), + body: data.bodyText, + url: data.url ? data.url : '', channel: apiData.repo.url, - title: data.payload.issue.title, + title: data.title.replace(/\0/g, ''), attributes: { - state: data.payload.issue.state.toLowerCase(), + state: data.state.toLowerCase(), }, member, score: GITHUB_GRID[GithubActivityType.ISSUE_OPENED].score, @@ -465,7 +675,8 @@ const parseIssueOpened: ProcessDataHandler = async (ctx) => { const parseIssueClosed: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoIssuesResult + const data = apiData.data as GithubIssueTimelineItem + const relatedData = apiData.relatedData as GithubIssue const memberData = apiData.member const repo = apiData.repo @@ -473,17 +684,17 @@ const parseIssueClosed: ProcessDataHandler = async (ctx) => { const activity: IActivityData = { type: GithubActivityType.ISSUE_CLOSED, - sourceId: `gen-CE_${data.payload.issue.node_id}_${memberData.memberFromApi.login}_${new Date( - data.timestamp, + sourceId: `gen-CE_${relatedData.id}_${memberData.memberFromApi.login}_${new Date( + data.createdAt, ).toISOString()}`, - sourceParentId: data.payload.issue.node_id, - timestamp: new Date(data.timestamp).toISOString(), + sourceParentId: relatedData.id, + timestamp: new Date(data.createdAt).toISOString(), body: '', - url: data.payload.issue.html_url, + url: relatedData.url ? relatedData.url : '', channel: repo.url, title: '', attributes: { - state: data.payload.issue.state.toLowerCase(), + state: relatedData.state.toLowerCase(), }, member, score: GITHUB_GRID[GithubActivityType.ISSUE_CLOSED].score, @@ -495,18 +706,18 @@ const parseIssueClosed: ProcessDataHandler = async (ctx) => { const parsePullRequestComment: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoPullRequestReviewCommentsResult + const data = apiData.data const memberData = apiData.member const member = parseMember(memberData) const activity: IActivityData = { type: GithubActivityType.PULL_REQUEST_COMMENT, - sourceId: data.payload.comment.node_id, - sourceParentId: data.payload.pull_request.node_id, - timestamp: new Date(data.timestamp).toISOString(), - url: data.payload.comment._links.html.href, - body: data.payload.comment.body, + sourceId: data.id, + sourceParentId: data.pullRequest.id, + timestamp: new Date(data.createdAt).toISOString(), + url: data.url, + body: data.bodyText, channel: apiData.repo.url, member, score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_COMMENT].score, @@ -516,20 +727,53 @@ const parsePullRequestComment: ProcessDataHandler = async (ctx) => { await ctx.publishActivity(activity) } +const parsePullRequestReviewThreadComment: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT, + sourceId: data.id, + sourceParentId: data.pullRequest.id, + timestamp: new Date(data.createdAt).toISOString(), + body: data.bodyText, + url: data.url, + channel: apiData.repo.url, + title: '', + attributes: { + state: data.pullRequest.state.toLowerCase(), + additions: data.pullRequest.additions, + deletions: data.pullRequest.deletions, + changedFiles: data.pullRequest.changedFiles, + authorAssociation: data.pullRequest.authorAssociation, + labels: data.pullRequest.labels?.nodes.map((l) => l.name), + }, + member, + score: GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT].score, + isContribution: + GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT].isContribution, + } + + await ctx.publishActivity(activity) +} + const parseIssueComment: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoIssueCommentsResult + const data = apiData.data const memberData = apiData.member const member = parseMember(memberData) const activity: IActivityData = { type: GithubActivityType.ISSUE_COMMENT, - sourceId: data.payload.comment.node_id, - sourceParentId: data.payload.issue.node_id, - timestamp: new Date(data.timestamp).toISOString(), - url: data.payload.comment.html_url, - body: data.payload.comment.body, + sourceId: data.id, + sourceParentId: data.issue.id, + timestamp: new Date(data.createdAt).toISOString(), + url: data.url, + body: data.bodyText, channel: apiData.repo.url, member, score: GITHUB_GRID[GithubActivityType.ISSUE_COMMENT].score, @@ -539,57 +783,655 @@ const parseIssueComment: ProcessDataHandler = async (ctx) => { await ctx.publishActivity(activity) } +const parseDiscussionComment: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data + const memberData = apiData.member + const sourceParentId = apiData.sourceParentId + + const member = parseMember(memberData) + + const subType = apiData.subType + + let activity: IActivityData + + if (subType === GithubActivitySubType.DISCUSSION_COMMENT_START) { + activity = { + type: GithubActivityType.DISCUSSION_COMMENT, + sourceId: data.id, + sourceParentId: data.discussion.id, + timestamp: new Date(data.createdAt).toISOString(), + url: data.url, + body: data.bodyText, + channel: apiData.repo.url, + attributes: { + isAnswer: data.isAnswer ?? undefined, + }, + member, + score: data.isAnswer + ? GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].score + 2 + : GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].score, + isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].isContribution, + } + } else if (subType === GithubActivitySubType.DISCUSSION_COMMENT_REPLY) { + activity = { + type: GithubActivityType.DISCUSSION_COMMENT, + sourceId: data.id, + sourceParentId, + timestamp: new Date(data.createdAt).toISOString(), + url: data.url, + body: data.bodyText, + channel: apiData.repo.url, + member, + score: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].score, + isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].isContribution, + } + } + + await ctx.publishActivity(activity) +} + const parseAuthoredCommit: ProcessDataHandler = async (ctx) => { const apiData = ctx.data as GithubApiData - const data = apiData.data as IGetRepoPushesResult + const data = apiData.data const memberData = apiData.member - for (const commit of data.payload.commits.filter((c) => c.distinct)) { + const member = parseMember(memberData) + const sourceParentId = apiData.sourceParentId // this is a pull request id + + const activity: IActivityData = { + channel: apiData.repo.url, + url: `${apiData.repo.url}/commit/${data.commit.oid}`, + body: data.commit.message, + type: 'authored-commit', + sourceId: data.commit.oid, + sourceParentId: `${sourceParentId}`, + timestamp: new Date(data.commit.authoredDate).toISOString(), + attributes: { + insertions: 'additions' in data.commit ? data.commit.additions : 0, + deletions: 'deletions' in data.commit ? data.commit.deletions : 0, + lines: + 'additions' in data.commit && 'deletions' in data.commit + ? data.commit.additions - data.commit.deletions + : 0, + isMerge: data.commit.parents.totalCount > 1, + }, + member, + score: GITHUB_GRID[GithubActivityType.AUTHORED_COMMIT].score, + isContribution: GITHUB_GRID[GithubActivityType.AUTHORED_COMMIT].isContribution, + } + + await ctx.publishActivity(activity) +} + +const parseWebhookIssue = async (ctx: IProcessDataContext) => { + const data = ctx.data as GithubWebhookData + const payload = data.data + const memberData = data.member + + const member = parseMember(memberData) + + let type: GithubActivityType + let scoreGrid: IActivityScoringGrid + let timestamp: string + let sourceId: string + let sourceParentId: string + let body = '' + let title = '' + + switch (payload.action) { + case 'edited': + case 'opened': + case 'reopened': + type = GithubActivityType.ISSUE_OPENED + scoreGrid = GITHUB_GRID[GithubActivityType.ISSUE_OPENED] + timestamp = payload.issue.created_at + sourceParentId = null + sourceId = payload.issue.node_id.toString() + body = payload.issue.body + title = payload.issue.title + break + + case 'closed': + type = GithubActivityType.ISSUE_CLOSED + scoreGrid = GITHUB_GRID[GithubActivityType.ISSUE_CLOSED] + timestamp = payload.issue.closed_at + sourceParentId = payload.issue.node_id.toString() + sourceId = `gen-CE_${payload.issue.node_id.toString()}_${payload.sender.login}_${new Date( + payload.issue.closed_at, + ).toISOString()}` + break + + default: + return + } + + const issue = payload.issue + + if (member) { const activity: IActivityData = { - channel: apiData.repo.url, - url: `${apiData.repo.url}/commit/${commit.sha}`, - body: commit.message, - type: 'authored-commit', - sourceId: commit.sha, - timestamp: new Date(data.timestamp).toISOString(), + member, + type, + timestamp: new Date(timestamp).toISOString(), + sourceId, + sourceParentId, + url: issue.html_url, + title, + channel: payload.repository.html_url, + body, attributes: { - prSha: data.payloadHead, + state: issue.state, }, - // attributes: { - // insertions: 'additions' in data.commit ? data.commit.additions : 0, - // deletions: 'deletions' in data.commit ? data.commit.deletions : 0, - // lines: - // 'additions' in data.commit && 'deletions' in data.commit - // ? data.commit.additions - data.commit.deletions - // : 0, - // isMerge: data.commit.parents.totalCount > 1, - // }, - member: parseMember(memberData, [commit.author.email]), - score: GITHUB_GRID[GithubActivityType.AUTHORED_COMMIT].score, - isContribution: GITHUB_GRID[GithubActivityType.AUTHORED_COMMIT].isContribution, + score: scoreGrid.score, + isContribution: scoreGrid.isContribution, } await ctx.publishActivity(activity) } } -const handler: ProcessDataHandler = async (ctx) => { - const data = ctx.data as any - - const event = data?.type as GithubActivityType +const parseWebhookDiscussion = async (ctx: IProcessDataContext) => { + const data = ctx.data as GithubWebhookData + const payload = data.data + const memberData = data.member - // for webhoks we are using old code - const webhookEvent = data?.webhookType + const member = parseMember(memberData) + if (payload.action === 'answered') { + if (member) { + const answer = payload.answer + const activity: IActivityData = { + member, + type: GithubActivityType.DISCUSSION_COMMENT, + timestamp: new Date(answer.created_at).toISOString(), + sourceId: answer.node_id.toString(), + sourceParentId: payload.discussion.node_id.toString(), + attributes: { + isSelectedAnswer: true, + }, + channel: payload.repository.html_url, + body: answer.body, + url: answer.html_url, + score: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].score + 2, + isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_COMMENT].isContribution, + } - const isOld = data?.isOld + await ctx.publishActivity(activity) + } + } - // this is for old events that don't have pullRequestNodeId - // generated during webhooks for pull requests - if (event === GithubActivityType.AUTHORED_COMMIT && (isOld || 'sourceParentId' in data)) { - await oldHandler(ctx) + if (!['edited', 'created'].includes(payload.action)) { return } + const discussion = payload.discussion + + if (member) { + const activity: IActivityData = { + member, + type: GithubActivityType.DISCUSSION_STARTED, + timestamp: new Date(discussion.created_at).toISOString(), + sourceId: discussion.node_id.toString(), + sourceParentId: null, + url: discussion.html_url, + title: discussion.title, + channel: payload.repository.html_url, + body: discussion.body, + attributes: { + category: { + id: discussion.category.node_id, + isAnswerable: discussion.category.is_answerable, + name: discussion.category.name, + slug: discussion.category.slug, + emoji: discussion.category.emoji, + description: discussion.category.description, + }, + }, + score: GITHUB_GRID[GithubActivityType.DISCUSSION_STARTED].score, + isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_STARTED].isContribution, + } + + await ctx.publishActivity(activity) + } +} + +const parseWebhookPullRequest = async (ctx: IProcessDataContext) => { + const data = ctx.data as GithubWebhookData + const payload = data.data + const memberData = data.member + + const member = parseMember(memberData) + const objectMemberData = data.objectMember + const objectMember = objectMemberData ? parseMember(objectMemberData) : null + + let type: GithubActivityType + let scoreGrid: IActivityScoringGrid + let timestamp: string + let sourceParentId: string + let sourceId: string + let body = '' + let title = '' + + switch (payload.action) { + case 'edited': + case 'opened': + case 'reopened': { + type = GithubActivityType.PULL_REQUEST_OPENED + scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_OPENED] + timestamp = payload.pull_request.created_at + sourceId = payload.pull_request.node_id.toString() + sourceParentId = null + body = payload.pull_request.body + title = payload.pull_request.title + break + } + + case 'closed': { + type = GithubActivityType.PULL_REQUEST_CLOSED + scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_CLOSED] + timestamp = payload.pull_request.closed_at + sourceParentId = payload.pull_request.node_id.toString() + sourceId = `gen-CE_${payload.pull_request.node_id.toString()}_${ + payload.sender.login + }_${new Date(payload.pull_request.closed_at).toISOString()}` + break + } + + case 'assigned': { + type = GithubActivityType.PULL_REQUEST_ASSIGNED + scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_ASSIGNED] + timestamp = payload.pull_request.updated_at + sourceParentId = payload.pull_request.node_id.toString() + sourceId = `gen-AE_${payload.pull_request.node_id.toString()}_${payload.sender.login}_${ + payload.assignee.login + }_${new Date(payload.pull_request.updated_at).toISOString()}` + break + } + + case 'review_requested': { + type = GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED + scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED] + timestamp = payload.pull_request.updated_at + sourceParentId = payload.pull_request.node_id.toString() + sourceId = `gen-RRE_${payload.pull_request.node_id.toString()}_${payload.sender.login}_${ + payload.requested_reviewer.login + }_${new Date(payload.pull_request.updated_at).toISOString()}` + break + } + + case 'merged': { + type = GithubActivityType.PULL_REQUEST_MERGED + scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_MERGED] + timestamp = payload.pull_request.merged_at + sourceParentId = payload.pull_request.node_id.toString() + sourceId = `gen-ME_${payload.pull_request.node_id.toString()}_${ + payload.pull_request.merged_by?.login || member.identities[0].value + }_${new Date(payload.pull_request.merged_at).toISOString()}` + break + } + + default: { + return undefined + } + } + + const pull = payload.pull_request + + if (member) { + const activity: IActivityData = { + member, + objectMember, + type, + timestamp: new Date(timestamp).toISOString(), + sourceId, + sourceParentId, + url: pull.html_url, + title, + channel: payload.repository.html_url, + body, + score: scoreGrid.score, + isContribution: scoreGrid.isContribution, + attributes: { + state: pull.state, + additions: pull.additions, + deletions: pull.deletions, + changedFiles: pull.changed_files, + authorAssociation: pull.author_association, + labels: pull.labels.map((l) => l.name), + }, + } + + await ctx.publishActivity(activity) + } +} + +const parseWebhookPullRequestReview = async (ctx: IProcessDataContext) => { + const data = ctx.data as GithubWebhookData + const payload = data.data + const memberData = data.member + + const member = parseMember(memberData) + + let type: GithubActivityType + let scoreGrid: IActivityScoringGrid + let timestamp: string + let sourceParentId: string + let sourceId: string + let body = '' + + switch (payload.action) { + case 'submitted': { + // additional comments to existing review threads also result in submitted events + // since these will be handled in pull_request_review_comment.created events + // we're ignoring when state is commented and it has no body. + if (payload.review.state === 'commented' && payload.review.body === null) { + return undefined + } + + type = GithubActivityType.PULL_REQUEST_REVIEWED + scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEWED] + timestamp = payload.review.submitted_at + sourceParentId = payload.pull_request.node_id.toString() + sourceId = `gen-PRR_${payload.pull_request.node_id.toString()}_${ + payload.sender.login + }_${new Date(payload.review.submitted_at).toISOString()}` + body = payload.review.body + break + } + default: { + return undefined + } + } + + const pull = payload.pull_request + + if (member) { + const activity: IActivityData = { + member, + type, + timestamp: new Date(timestamp).toISOString(), + sourceId, + sourceParentId, + url: pull.html_url, + title: '', + channel: payload.repository.html_url, + body, + score: scoreGrid.score, + isContribution: scoreGrid.isContribution, + attributes: { + reviewState: (payload.review?.state as string).toUpperCase(), + state: pull.state, + authorAssociation: pull.author_association, + labels: pull.labels.map((l) => l.name), + }, + } + + await ctx.publishActivity(activity) + } +} + +const parseWebhookStar = async (ctx: IProcessDataContext) => { + const data = ctx.data as GithubWebhookData + const payload = data.data + const memberData = data.member + + const member = parseMember(memberData) + + let type: GithubActivityType + switch (payload.action) { + case 'created': { + type = GithubActivityType.STAR + break + } + + case 'deleted': { + type = GithubActivityType.UNSTAR + break + } + + default: { + return + } + } + + if ( + member && + (type === GithubActivityType.UNSTAR || + (type === GithubActivityType.STAR && payload.starred_at !== null)) + ) { + const starredAt = + type === GithubActivityType.STAR ? new Date(payload.starred_at).toISOString() : data.date + + const activity: IActivityData = { + member, + type, + timestamp: starredAt, + sourceId: generateSourceIdHash( + payload.sender.login, + type, + Math.floor(new Date(starredAt).getTime() / 1000).toString(), + PlatformType.GITHUB, + ), + sourceParentId: null, + channel: payload.repository.html_url, + score: + type === 'star' + ? GITHUB_GRID[GithubActivityType.STAR].score + : GITHUB_GRID[GithubActivityType.UNSTAR].score, + isContribution: + type === 'star' + ? GITHUB_GRID[GithubActivityType.STAR].isContribution + : GITHUB_GRID[GithubActivityType.UNSTAR].isContribution, + } + + await ctx.publishActivity(activity) + } +} + +const parseWebhookFork = async (ctx: IProcessDataContext) => { + const data = ctx.data as GithubWebhookData + const payload = data.data + + // this is org member + if (data.orgMember && !data.member) { + const orgMember = parseOrgMember(data.orgMember) + if (orgMember) { + const activity: IActivityData = { + member: orgMember, + type: GithubActivityType.FORK, + timestamp: new Date(payload.forkee.created_at).toISOString(), + sourceId: payload.forkee.node_id.toString(), + sourceParentId: null, + channel: payload.repository.html_url, + score: GITHUB_GRID.fork.score, + isContribution: GITHUB_GRID.fork.isContribution, + } + + await ctx.publishActivity(activity) + } + // this is member + } else if (data.member && !data.orgMember) { + const member = parseMember(data.member) + if (member) { + const activity: IActivityData = { + member, + type: GithubActivityType.FORK, + timestamp: new Date(payload.forkee.created_at).toISOString(), + sourceId: payload.forkee.node_id.toString(), + sourceParentId: null, + channel: payload.repository.html_url, + score: GITHUB_GRID.fork.score, + isContribution: GITHUB_GRID.fork.isContribution, + } + + await ctx.publishActivity(activity) + } else if (data.member && data.orgMember) { + throw new Error('Both member and orgMember are present in webhook fork data') + } else if (!data.member && !data.orgMember) { + throw new Error('Both member and orgMember are missing in webhook fork data') + } + } +} + +const parseWebhookComment = async (ctx: IProcessDataContext) => { + const data = ctx.data as GithubWebhookData + const payload = data.data + const memberData = data.member + + const member = parseMember(memberData) + let type: GithubActivityType + let sourceParentId: string | undefined + + switch (data.webhookType) { + case GithubWehookEvent.DISCUSSION_COMMENT: { + switch (payload.action) { + case 'created': + case 'edited': + type = GithubActivityType.DISCUSSION_COMMENT + sourceParentId = payload.discussion.node_id.toString() + break + default: + return undefined + } + break + } + + case GithubWehookEvent.ISSUE_COMMENT: + case GithubWehookEvent.PULL_REQUEST_COMMENT: { + switch (payload.action) { + case 'created': + case 'edited': { + if ('pull_request' in payload.issue) { + type = GithubActivityType.PULL_REQUEST_COMMENT + } else { + type = GithubActivityType.ISSUE_COMMENT + } + sourceParentId = payload.issue.node_id.toString() + break + } + + default: + return + } + break + } + + default: { + return + } + } + + if (member) { + const comment = payload.comment + const activity: IActivityData = { + member, + type, + timestamp: new Date(comment.created_at).toISOString(), + sourceId: comment.node_id.toString(), + sourceParentId, + url: comment.html_url, + body: comment.body, + channel: payload.repository.html_url, + score: GITHUB_GRID[type].score, + isContribution: GITHUB_GRID[type].isContribution, + } + + await ctx.publishActivity(activity) + } +} + +const parseWebhookPullRequestReviewThreadComment = async (ctx: IProcessDataContext) => { + const data = ctx.data as GithubWebhookData + const payload = data.data + const memberData = data.member + + const member = parseMember(memberData) + + let type: GithubActivityType + let scoreGrid: IActivityScoringGrid + let timestamp: string + let sourceParentId: string + let sourceId: string + let body = '' + + switch (payload.action) { + case 'created': { + type = GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT + scoreGrid = GITHUB_GRID[GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT] + timestamp = payload.comment.created_at + sourceParentId = payload.pull_request.node_id + sourceId = payload.comment.node_id + body = payload.comment.body + break + } + default: { + return undefined + } + } + + if (member) { + const activity: IActivityData = { + member, + type, + timestamp: new Date(timestamp).toISOString(), + sourceId, + sourceParentId, + url: payload.comment.html_url, + title: '', + channel: payload.repository.html_url, + body, + score: scoreGrid.score, + isContribution: scoreGrid.isContribution, + attributes: { + state: payload.pull_request.state, + authorAssociation: payload.pull_request.author_association, + labels: payload.pull_request.labels.map((l) => l.name), + }, + } + + await ctx.publishActivity(activity) + } +} + +const parseDiscussionStarted: ProcessDataHandler = async (ctx) => { + const apiData = ctx.data as GithubApiData + const data = apiData.data + const memberData = apiData.member + + const member = parseMember(memberData) + + const activity: IActivityData = { + type: GithubActivityType.DISCUSSION_STARTED, + sourceId: data.id, + sourceParentId: '', + timestamp: new Date(data.createdAt).toISOString(), + body: data.bodyText, + url: data.url ? data.url : '', + channel: apiData.repo.url, + title: data.title, + attributes: { + category: { + id: data.category.id, + isAnswerable: data.category.isAnswerable, + name: data.category.name, + slug: data.category.slug, + emoji: data.category.emoji, + description: data.category.description, + }, + }, + member, + score: GITHUB_GRID[GithubActivityType.DISCUSSION_STARTED].score, + isContribution: GITHUB_GRID[GithubActivityType.DISCUSSION_STARTED].isContribution, + } + + await ctx.publishActivity(activity) +} + +const handler: ProcessDataHandler = async (ctx) => { + const data = ctx.data as any + + const event = data?.type as GithubActivityType + const webhookEvent = data?.webhookType as GithubWehookEvent + if (event) { // parse github api data switch (event) { @@ -605,12 +1447,15 @@ const handler: ProcessDataHandler = async (ctx) => { case GithubActivityType.PULL_REQUEST_CLOSED: await parsePullRequestClosed(ctx) break - case GithubActivityType.PULL_REQUEST_COMMENT: - await parsePullRequestComment(ctx) + case GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED: + await parsePullRequestReviewRequested(ctx) break case GithubActivityType.PULL_REQUEST_REVIEWED: await parsePullRequestReviewed(ctx) break + case GithubActivityType.PULL_REQUEST_ASSIGNED: + await parsePullRequestAssigned(ctx) + break case GithubActivityType.PULL_REQUEST_MERGED: await parsePullRequestMerged(ctx) break @@ -620,9 +1465,21 @@ const handler: ProcessDataHandler = async (ctx) => { case GithubActivityType.ISSUE_CLOSED: await parseIssueClosed(ctx) break + case GithubActivityType.PULL_REQUEST_COMMENT: + await parsePullRequestComment(ctx) + break + case GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT: + await parsePullRequestReviewThreadComment(ctx) + break case GithubActivityType.ISSUE_COMMENT: await parseIssueComment(ctx) break + case GithubActivityType.DISCUSSION_STARTED: + await parseDiscussionStarted(ctx) + break + case GithubActivityType.DISCUSSION_COMMENT: + await parseDiscussionComment(ctx) + break case GithubActivityType.AUTHORED_COMMIT: await parseAuthoredCommit(ctx) break @@ -630,9 +1487,37 @@ const handler: ProcessDataHandler = async (ctx) => { await ctx.abortWithError(`Event not supported '${event}'!`) } } else if (webhookEvent) { - await oldHandler(ctx) - } else { - await ctx.abortWithError('No event type found in data!') + // TODO: implement webhook events + switch (webhookEvent) { + case GithubWehookEvent.ISSUES: + await parseWebhookIssue(ctx) + break + case GithubWehookEvent.DISCUSSION: + await parseWebhookDiscussion(ctx) + break + case GithubWehookEvent.PULL_REQUEST: + await parseWebhookPullRequest(ctx) + break + case GithubWehookEvent.PULL_REQUEST_REVIEW: + await parseWebhookPullRequestReview(ctx) + break + case GithubWehookEvent.STAR: + await parseWebhookStar(ctx) + break + case GithubWehookEvent.FORK: + await parseWebhookFork(ctx) + break + case GithubWehookEvent.DISCUSSION_COMMENT: + case GithubWehookEvent.ISSUE_COMMENT: + case GithubWehookEvent.PULL_REQUEST_COMMENT: + await parseWebhookComment(ctx) + break + case GithubWehookEvent.PULL_REQUEST_REVIEW_COMMENT: + await parseWebhookPullRequestReviewThreadComment(ctx) + break + default: + await ctx.abortWithError(`Webhook event not supported '${webhookEvent}'!`) + } } } diff --git a/services/libs/integrations/src/integrations/github/processStream.ts b/services/libs/integrations/src/integrations/github/processStream.ts index bc8ed5f67a..0ec8f0c7b7 100644 --- a/services/libs/integrations/src/integrations/github/processStream.ts +++ b/services/libs/integrations/src/integrations/github/processStream.ts @@ -1,387 +1,1258 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ // processStream.ts content -import { - GithubSnowflakeClient, - IBasicResponse, - IGetResponse, - SnowflakeClient, -} from '@crowd/snowflake' +import { createAppAuth } from '@octokit/auth-app' +import { AuthInterface } from '@octokit/auth-app/dist-types/types' -import { IProcessStreamContext, ProcessStreamHandler } from '../../types' +import { singleOrDefault, timeout } from '@crowd/common' +import { GraphQlQueryResponse, IConcurrentRequestLimiter } from '@crowd/types' -import { capGithubArchive } from './cap' import { + IProcessStreamContext, + IProcessWebhookStreamContext, + ProcessStreamHandler, +} from '../../types' + +import DiscussionCommentsQuery from './api/graphql/discussionComments' +import DiscussionsQuery from './api/graphql/discussions' +import ForksQuery from './api/graphql/forks' +import IssueCommentsQuery from './api/graphql/issueComments' +import IssuesQuery from './api/graphql/issues' +import getMember from './api/graphql/members' +import getOrganization from './api/graphql/organizations' +import PullRequestCommentsQuery from './api/graphql/pullRequestComments' +import PullRequestCommitsQuery, { PullRequestCommit } from './api/graphql/pullRequestCommits' +import PullRequestCommitsQueryNoAdditions, { + PullRequestCommitNoAdditions, +} from './api/graphql/pullRequestCommitsNoAdditions' +import PullRequestReviewThreadCommentsQuery from './api/graphql/pullRequestReviewThreadComments' +import PullRequestReviewThreadsQuery from './api/graphql/pullRequestReviewThreads' +import PullRequestsQuery from './api/graphql/pullRequests' +import StargazersQuery from './api/graphql/stargazers' +import { GithubTokenRotator } from './tokenRotator' +import { + GithubActivitySubType, GithubActivityType, GithubApiData, GithubBasicStream, + GithubBotMember, + GithubIntegrationSettings, GithubPlatformSettings, GithubPrepareMemberOutput, + GithubPrepareOrgMemberOutput, + GithubPullRequestEvents, GithubRootStream, GithubStreamType, + INDIRECT_FORK, + Repo, + Repos, } from './types' -let sf: SnowflakeClient | undefined = undefined -let gh: GithubSnowflakeClient | undefined = undefined - -let sfIncremental: SnowflakeClient | undefined = undefined -let ghIncremental: GithubSnowflakeClient | undefined = undefined - -const initClient = (ctx: IProcessStreamContext) => { - const settings = ctx.platformSettings as GithubPlatformSettings - sf = new SnowflakeClient({ - privateKeyString: settings.sfPrivateKey, - account: settings.sfAccount, - username: settings.sfUsername, - database: settings.sfDatabase, - warehouse: settings.sfWarehouse, - role: settings.sfRole, - }) - gh = new GithubSnowflakeClient(sf) +const IS_TEST_ENV: boolean = process.env.NODE_ENV === 'test' + +const containsHrefAttribute = (htmlSnippet: string) => { + // Constructing the regex using RegExp + const hrefRegex = new RegExp('href\\s*=\\s*["\'][^"\']*["\']', 'i') + return hrefRegex.test(htmlSnippet) +} + +let githubAuthenticator: AuthInterface | undefined = undefined +let concurrentRequestLimiter: IConcurrentRequestLimiter | undefined = undefined +let tokenRotator: GithubTokenRotator | undefined = undefined + +function getAuth(ctx: IProcessStreamContext): AuthInterface | undefined { + const GITHUB_CONFIG = ctx.platformSettings as GithubPlatformSettings + const privateKey = GITHUB_CONFIG.privateKey + ? Buffer.from(GITHUB_CONFIG.privateKey, 'base64').toString('ascii') + : undefined + + if (githubAuthenticator === undefined) { + githubAuthenticator = privateKey + ? createAppAuth({ + appId: GITHUB_CONFIG.appId, + clientId: GITHUB_CONFIG.clientId, + clientSecret: GITHUB_CONFIG.clientSecret, + privateKey, + }) + : undefined + } + return githubAuthenticator +} + +export function getConcurrentRequestLimiter( + ctx: IProcessStreamContext | IProcessWebhookStreamContext, +): IConcurrentRequestLimiter { + if (concurrentRequestLimiter === undefined) { + concurrentRequestLimiter = ctx.getConcurrentRequestLimiter( + 50, // max 2 concurrent requests + 'github-concurrent-request-limiter', + ) + } + return concurrentRequestLimiter +} + +export function getTokenRotator(ctx: IProcessStreamContext): GithubTokenRotator { + const GITHUB_CONFIG = ctx?.platformSettings as GithubPlatformSettings + + // check if we have tokens configured + if (!GITHUB_CONFIG?.personalAccessTokens) { + // if tokenRotator is undefined, API requests won't use it + return undefined + } + + if (tokenRotator === undefined) { + tokenRotator = new GithubTokenRotator( + ctx.globalCache, + GITHUB_CONFIG?.personalAccessTokens?.split(','), + ) + } + return tokenRotator } -const initIncrementalClient = (ctx: IProcessStreamContext) => { - const settings = ctx.platformSettings as GithubPlatformSettings - sfIncremental = new SnowflakeClient({ - privateKeyString: settings.sfPrivateKey, - account: settings.sfAccount, - username: settings.sfUsername, - database: settings.sfDatabase, - warehouse: settings.sfIncrementalWarehouse, - role: settings.sfRole, +export async function getGithubToken(ctx: IProcessStreamContext): Promise { + const auth = getAuth(ctx) + if (auth) { + const authResponse = await auth({ + type: 'installation', + installationId: ctx.integration.identifier, + }) + const token = authResponse.token + // this is a real token, not a JWT token + // OctoKit automatically caches it for 1 hour and renews it when needed + return token + } + + throw new Error('GitHub integration is not configured!') +} + +async function getMemberData(ctx: IProcessStreamContext, login: string): Promise { + const appToken = await getGithubToken(ctx) + return getMember(login, appToken, getTokenRotator(ctx), { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, }) - ghIncremental = new GithubSnowflakeClient(sfIncremental) } -const getClient = ( - ctx: IProcessStreamContext, -): { sf: SnowflakeClient; gh: GithubSnowflakeClient } => { - if (ctx.onboarding) { - if (!sf) { - initClient(ctx) - } - return { sf, gh } - } else { - if (!sfIncremental) { - initIncrementalClient(ctx) +async function getOrganizationData(ctx: IProcessStreamContext, company: string): Promise { + if (company === '' || company === null || company === undefined) { + return null + } + + const cache = ctx.globalCache + const prefix = (x: string) => `github-org:${x}` + + const existing = await cache.get(prefix(company)) + if (existing) { + if (existing === 'null') { + return null } - return { sf: sfIncremental, gh: ghIncremental } + + return JSON.parse(existing) } + + const token = await getGithubToken(ctx) + const fromAPI = await getOrganization(company, token, getTokenRotator(ctx), { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }) + + if (fromAPI) { + await cache.set(prefix(company), JSON.stringify(fromAPI), 24 * 60 * 60) + return fromAPI + } + + await cache.set(prefix(company), 'null', 24 * 60 * 60) + return null } -const prepareMember = (data: IBasicResponse): GithubPrepareMemberOutput => { - const isBot = data.actorLogin.endsWith('[bot]') - return { - memberFromApi: { - id: data.actorId.toString(), - login: data.actorLogin, - avatarUrl: data.actorAvatarUrl, - ...(isBot ? { isBot: true } : {}), - }, - org: { - id: data.orgId?.toString(), - login: data.orgLogin, - avatarUrl: data.orgAvatarUrl, - }, - email: '', +async function getMemberEmail(ctx: IProcessStreamContext, login: string): Promise { + if (IS_TEST_ENV) { + return '' } + + // here we use global cache - it is shared between all integrations + // So in LFX case different integration will have access to the same cache + // But this is fine + const cache = ctx.globalCache + const prefix = (x: string) => `github-login:${x}` + + const existing = await cache.get(prefix(login)) + if (existing) { + if (existing === 'null') { + return '' + } + + return existing + } + + const member = await getMemberData(ctx, login) + const email = (member && member.email ? member.email : '').trim() + if (email && email.length > 0) { + await cache.set(prefix(login), email, 24 * 60 * 60) + return email + } + + await cache.set(prefix(login), 'null', 24 * 60 * 60) + return '' } -const publishNextPageStream = async (ctx: IProcessStreamContext, response: IGetResponse) => { +const publishNextPageStream = async ( + ctx: IProcessStreamContext, + response: GraphQlQueryResponse, +) => { const data = ctx.stream.data as GithubBasicStream // the last part of stream identifier is page number (e.g commits:12345:1) const streamIdentifier = ctx.stream.identifier.split(':').slice(0, -1).join(':') - if (response.hasNextPage) { - await ctx.publishStream(`${streamIdentifier}:${response.nextPage}`, { + if (response.hasPreviousPage) { + await ctx.publishStream(`${streamIdentifier}:${response.startCursor}`, { repo: data.repo, - sf_repo_id: data.sf_repo_id, - page: response.nextPage, + page: response.startCursor, }) - return true } - return false } -const processStargazersStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const { gh } = getClient(ctx) +// this function extracts email and orgs from member data +export const prepareMember = async ( + memberFromApi: any, + ctx: IProcessStreamContext, +): Promise => { + const email = await getMemberEmail(ctx, memberFromApi.login) - const since_days_ago = ctx.onboarding ? undefined : '2' + let orgs: any - const result = await gh.getRepoStargazers({ - sf_repo_id: data.sf_repo_id, - page: data.page, - since_days_ago, - }) + if (memberFromApi?.company) { + if (IS_TEST_ENV) { + orgs = [{ name: 'crowd.dev' }] + } else { + const companyHTML = memberFromApi?.companyHTML + // if company is matched againts github org it's html will contain href attribute + if (companyHTML && containsHrefAttribute(companyHTML)) { + const company = memberFromApi.company.replace('@', '').trim() + const fromAPI = await getOrganizationData(ctx, company) + orgs = fromAPI + } else { + orgs = null + } + } + } - for (const record of result.data) { - const member = prepareMember(record) + return { + email, + orgs, + memberFromApi, + } +} - // publish data - await ctx.processData({ - type: GithubActivityType.STAR, - data: record, - member, - repo: data.repo, - }) +export const prepareBotMember = (bot: GithubBotMember): GithubPrepareMemberOutput => { + return { + email: '', + orgs: [], + memberFromApi: { + login: bot.login, + avatarUrl: bot?.avatarUrl || bot?.avatar_url || '', + url: bot.url, + id: bot.id, + isBot: true, + }, } +} - await publishNextPageStream(ctx, result) +export const prepareDeletedMember = (): GithubPrepareMemberOutput => { + return { + email: '', + orgs: [], + memberFromApi: { + login: 'ghost', + avatarUrl: 'https://avatars.githubusercontent.com/u/10137?v=4', + url: 'https://github.com/ghost', + isDeleted: true, + }, + } } -const processForksStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubBasicStream - const { gh } = getClient(ctx) +export const prepareMemberFromOrg = (orgFromApi: any): GithubPrepareOrgMemberOutput => { + return { + orgFromApi, + } +} + +/** + * Searches given repository name among installed repositories + * Returns null if given repo is not found. + * @param name The tenant we are working on + * @param context + * @returns Found repo object + */ +function getRepoByName(name: string, ctx: IProcessStreamContext): Repo | null { + const settings = ctx.integration.settings as GithubIntegrationSettings + const availableRepo: Repo | undefined = singleOrDefault(settings.repos, (r) => r.name === name) + if (availableRepo) { + return { ...availableRepo, available: true } + } + + const unavailableRepo: Repo | undefined = singleOrDefault( + settings.unavailableRepos, + (r) => r.name === name, + ) + if (unavailableRepo) { + return { ...unavailableRepo, available: false } + } - const since_days_ago = ctx.onboarding ? undefined : '2' + return null +} + +const processRootStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubRootStream + const repos: Repos = [] + const unavailableRepos: Repos = [] + + for (const repo of data.reposToCheck) { + try { + // we don't need to get default 100 item per page, just 1 is enough to check if repo is available + const stargazersQuery = new StargazersQuery(repo, await getGithubToken(ctx), 1) + await stargazersQuery.getSinglePage( + '', + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) + repos.push(repo) + } catch (e) { + if (e.rateLimitResetSeconds) { + throw e + } else { + ctx.log.warn( + `Repo ${repo.name} will not be parsed. It is not available with the github token`, + ) + unavailableRepos.push(repo) + } + } + } - const result = await gh.getRepoForks({ - sf_repo_id: data.sf_repo_id, - page: data.page, - since_days_ago, + // update integration settings + // this settings will be avaliable in next streams + await ctx.updateIntegrationSettings({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ...(ctx.integration.settings as any), + repos, + unavailableRepos, }) + // now it's time to start streams + for (const repo of repos) { + for (const endpoint of [ + GithubStreamType.STARGAZERS, + GithubStreamType.FORKS, + GithubStreamType.PULLS, + GithubStreamType.ISSUES, + GithubStreamType.DISCUSSIONS, + ]) { + // this firstPage thing is important to avoid duplicate streams and for handleNextPageStream to work + await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { + repo, + page: '', + }) + } + } +} + +const processStargazersStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const stargazersQuery = new StargazersQuery(data.repo, await getGithubToken(ctx)) + + const result = await stargazersQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) + // handle next page + await publishNextPageStream(ctx, result) + for (const record of result.data) { - const member = prepareMember(record) + if (record.node === null) { + throw new Error( + 'Stargazer is not found. This might be a deleted user. Please check the data.', + ) + } + + const member = await prepareMember(record.node, ctx) // publish data await ctx.processData({ - type: GithubActivityType.FORK, + type: GithubActivityType.STAR, data: record, member, repo: data.repo, + isOld: true, }) } - - await publishNextPageStream(ctx, result) } -const processPullsStream: ProcessStreamHandler = async (ctx) => { +const processForksStream: ProcessStreamHandler = async (ctx) => { const data = ctx.stream.data as GithubBasicStream - const { gh } = getClient(ctx) - - const since_days_ago = ctx.onboarding ? undefined : '2' + const forksQuery = new ForksQuery(data.repo, await getGithubToken(ctx)) + const result = await forksQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) - const result = await gh.getRepoPullRequests({ - sf_repo_id: data.sf_repo_id, - page: data.page, - since_days_ago, - }) + // handle next page + await publishNextPageStream(ctx, result) for (const record of result.data) { - const member = prepareMember(record) - const action = record.action + if (record.owner === null) { + throw new Error('Fork owner is not found. This might be a deleted user.') + } + if (record.owner.__typename === 'User') { + const member = await prepareMember(record.owner, ctx) - if (action === 'opened') { + // publish data await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_OPENED, + type: GithubActivityType.FORK, data: record, member, repo: data.repo, + isOld: true, }) - } else if (action === 'closed') { + } else if (record.owner.__typename === 'Organization') { + const orgMember = prepareMemberFromOrg(record.owner) + + // publish data await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_CLOSED, + type: GithubActivityType.FORK, data: record, - member, + orgMember, repo: data.repo, + isOld: true, }) + } else { + ctx.log.warn(`Unsupported owner type: ${record.owner.__typename}`) + } + + // traverse through indirect forks + for (const indirectFork of record.indirectForks.nodes) { + if (indirectFork.owner === null) { + throw new Error('Fork owner is not found. This might be a deleted user.') + } + if (indirectFork.owner.__typename === 'User') { + const member = await prepareMember(indirectFork.owner, ctx) - // additionall check if this PR is merged - if (record.payload.pull_request.merged) { + // publish data await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_MERGED, - data: record, + type: GithubActivityType.FORK, + subType: INDIRECT_FORK, + data: indirectFork, + relatedData: record, member, repo: data.repo, + isOld: true, }) + } else if (indirectFork.owner.__typename === 'Organization') { + const orgMember = prepareMemberFromOrg(indirectFork.owner) + + // publish data + await ctx.processData({ + type: GithubActivityType.FORK, + subType: INDIRECT_FORK, + data: indirectFork, + relatedData: record, + orgMember, + repo: data.repo, + isOld: true, + }) + } else { + ctx.log.warn(`Unsupported owner type: ${indirectFork.owner.__typename}`) } - } else { - ctx.log.debug(`Unsupported pull request action: ${action}`) } } +} + +const processPullsStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const forksQuery = new PullRequestsQuery(data.repo, await getGithubToken(ctx)) + const result = await forksQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) + // handle next page await publishNextPageStream(ctx, result) + + for (const pull of result.data) { + let member: GithubPrepareMemberOutput + if (pull.author?.login) { + member = await prepareMember(pull.author, ctx) + } else if (pull.authorBot?.login) { + member = prepareBotMember(pull.authorBot) + } else if (pull.author === null && pull.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn('Pull request author is not found. This pull request will not be parsed.') + continue + } + + // publish data + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_OPENED, + data: pull, + member, + repo: data.repo, + isOld: true, + }) + + // now we need to parse pullRequestEvents + for (const pullEvent of pull.timelineItems.nodes) { + switch (pullEvent.__typename) { + case GithubPullRequestEvents.ASSIGN: { + let member: GithubPrepareMemberOutput + let objectMember: GithubPrepareMemberOutput + + if (pullEvent?.actor?.login) { + member = await prepareMember(pullEvent.actor, ctx) + } else if (pullEvent?.actorBot?.login) { + member = prepareBotMember(pullEvent.actorBot) + } else if (pullEvent.actor === null && pullEvent.actorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request author is not found. This pull request event will not be parsed.', + ) + continue + } + + if (pullEvent?.assignee?.login) { + objectMember = await prepareMember(pullEvent.assignee, ctx) + } else if (pullEvent?.assigneeBot?.login) { + objectMember = prepareBotMember(pullEvent.assigneeBot) + } else if (pullEvent.assignee === null && pullEvent.assigneeBot === null) { + objectMember = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request assignee is not found. This pull request assignee event will not be parsed.', + ) + continue + } + + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_ASSIGNED, + data: pullEvent, + relatedData: pull, + member, + objectMember, + repo: data.repo, + isOld: true, + }) + + break + } + case GithubPullRequestEvents.REQUEST_REVIEW: { + // Requested review from single member + if (pullEvent?.requestedReviewer?.login || pullEvent?.requestedReviewerBot?.login) { + let member: GithubPrepareMemberOutput + let objectMember: GithubPrepareMemberOutput + + if (pullEvent?.actor?.login) { + member = await prepareMember(pullEvent.actor, ctx) + } else if (pullEvent?.actorBot?.login) { + member = prepareBotMember(pullEvent.actorBot) + } else if (pullEvent.actor === null && pullEvent.actorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request author is not found. This pull request event will not be parsed.', + ) + continue + } + + if (pullEvent?.requestedReviewer?.login) { + objectMember = await prepareMember(pullEvent.requestedReviewer, ctx) + } else if (pullEvent?.requestedReviewerBot?.login) { + objectMember = prepareBotMember(pullEvent.requestedReviewerBot) + } else if ( + pullEvent.requestedReviewer === null && + pullEvent.requestedReviewerBot === null + ) { + objectMember = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request requested reviewer is not found. This pull request requested reviewer event will not be parsed.', + ) + continue + } + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED, + data: pullEvent, + subType: GithubActivitySubType.PULL_REQUEST_REVIEW_REQUESTED_SINGLE, + relatedData: pull, + member, + objectMember, + repo: data.repo, + isOld: true, + }) + // Requested review from multiple members + } else if (pullEvent?.requestedReviewer?.members) { + let member: GithubPrepareMemberOutput + if (pullEvent?.actor?.login) { + member = await prepareMember(pullEvent.actor, ctx) + } else if (pullEvent?.actorBot?.login) { + member = prepareBotMember(pullEvent.actorBot) + } else if (pullEvent.actor === null && pullEvent.actorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request author is not found. This pull request event will not be parsed.', + ) + continue + } + + for (const teamMember of pullEvent.requestedReviewer.members.nodes) { + const objectMember = await prepareMember(teamMember, ctx) + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_REVIEW_REQUESTED, + data: pullEvent, + subType: GithubActivitySubType.PULL_REQUEST_REVIEW_REQUESTED_MULTIPLE, + relatedData: pull, + member, + objectMember, + repo: data.repo, + isOld: true, + }) + } + } + + break + } + case GithubPullRequestEvents.REVIEW: { + if ((pullEvent?.author?.login || pullEvent?.authorBot?.login) && pullEvent?.submittedAt) { + let member: GithubPrepareMemberOutput + if (pullEvent?.author?.login) { + member = await prepareMember(pullEvent.author, ctx) + } else if (pullEvent?.authorBot?.login) { + member = prepareBotMember(pullEvent.authorBot) + } else if (pullEvent.author === null && pullEvent.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request author is not found. This pull request event will not be parsed.', + ) + continue + } + + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_REVIEWED, + data: pullEvent, + relatedData: pull, + member, + repo: data.repo, + isOld: true, + }) + } + break + } + case GithubPullRequestEvents.MERGE: { + let member: GithubPrepareMemberOutput + if (pullEvent?.actor?.login) { + member = await prepareMember(pullEvent.actor, ctx) + } else if (pullEvent?.actorBot?.login) { + member = prepareBotMember(pullEvent.actorBot) + } else if (pullEvent.actor === null && pullEvent.actorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request author is not found. This pull request event will not be parsed.', + ) + continue + } + + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_MERGED, + data: pullEvent, + relatedData: pull, + member, + repo: data.repo, + isOld: true, + }) + + break + } + case GithubPullRequestEvents.CLOSE: { + let member: GithubPrepareMemberOutput + if (pullEvent?.actor?.login) { + member = await prepareMember(pullEvent.actor, ctx) + } else if (pullEvent?.actorBot?.login) { + member = prepareBotMember(pullEvent.actorBot) + } else if (pullEvent.actor === null && pullEvent.actorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request author is not found. This pull request event will not be parsed.', + ) + continue + } + + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_MERGED, + data: pullEvent, + relatedData: pull, + member, + repo: data.repo, + isOld: true, + }) + + break + } + default: + ctx.log.warn( + `Unsupported pull request event: ${pullEvent.__typename}. This event will not be parsed.`, + ) + } + } + } + + const GITHUB_CONFIG = ctx.platformSettings as GithubPlatformSettings + const IS_GITHUB_COMMIT_DATA_ENABLED = GITHUB_CONFIG.isCommitDataEnabled === 'true' + + if (IS_GITHUB_COMMIT_DATA_ENABLED) { + // publish new pull commits streams + // It is very important to keep commits first. Otherwise, we have problems + // creating conversations if the Git integration has already ran for those data points. + for (const pull of result.data) { + await ctx.publishStream( + `${GithubStreamType.PULL_COMMITS}:${pull.number}:firstPage`, + { + repo: data.repo, + page: '', + prNumber: pull.number, + }, + ) + } + } + + // publish new pull comments streams + for (const pull of result.data) { + await ctx.publishStream( + `${GithubStreamType.PULL_COMMENTS}:${pull.number}:firstPage`, + { + repo: data.repo, + page: '', + prNumber: pull.number, + }, + ) + } + + // publish new pull review threads streams + for (const pull of result.data) { + await ctx.publishStream( + `${GithubStreamType.PULL_REVIEW_THREADS}:${pull.number}:firstPage`, + { + repo: data.repo, + page: '', + prNumber: pull.number, + }, + ) + } } const processPullCommentsStream: ProcessStreamHandler = async (ctx) => { const data = ctx.stream.data as GithubBasicStream - const { gh } = getClient(ctx) - - const since_days_ago = ctx.onboarding ? undefined : '2' + const pullRequestNumber = data.prNumber + const pullRequestCommentsQuery = new PullRequestCommentsQuery( + data.repo, + pullRequestNumber, + await getGithubToken(ctx), + ) + + const result = await pullRequestCommentsQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) - const result = await gh.getRepoPullRequestReviewComments({ - sf_repo_id: data.sf_repo_id, - page: data.page, - since_days_ago, - }) + // handle next page + await publishNextPageStream(ctx, result) + // get member info for each comment for (const record of result.data) { - const member = prepareMember(record) + let member: GithubPrepareMemberOutput + if (record.author?.login) { + member = await prepareMember(record.author, ctx) + } else if (record.authorBot?.login) { + member = prepareBotMember(record.authorBot) + } else if (record.author === null && record.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request comment author is not found. This pull request comment will not be parsed.', + ) + continue + } + // publish data await ctx.processData({ type: GithubActivityType.PULL_REQUEST_COMMENT, data: record, member, repo: data.repo, + isOld: true, }) } +} + +const processPullReviewThreadsStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const pullRequestNumber = data.prNumber + const pullRequestReviewThreadsQuery = new PullRequestReviewThreadsQuery( + data.repo, + pullRequestNumber, + await getGithubToken(ctx), + ) + + const result = await pullRequestReviewThreadsQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) + // handle next page await publishNextPageStream(ctx, result) + + // no data to publish, just add new streams for comments inside + // add each review thread as separate stream for comments inside + for (const thread of result.data) { + await ctx.publishStream( + `${GithubStreamType.PULL_REVIEW_THREAD_COMMENTS}:${thread.id}:firstPage`, + { + repo: data.repo, + page: '', + reviewThreadId: thread.id, + }, + ) + } } -const processIssuesStream: ProcessStreamHandler = async (ctx) => { +const processPullReviewThreadCommentsStream: ProcessStreamHandler = async (ctx) => { const data = ctx.stream.data as GithubBasicStream - const { gh } = getClient(ctx) - - const since_days_ago = ctx.onboarding ? undefined : '2' + const reviewThreadId = data.reviewThreadId + const pullRequestReviewThreadCommentsQuery = new PullRequestReviewThreadCommentsQuery( + data.repo, + reviewThreadId, + await getGithubToken(ctx), + ) + + const result = await pullRequestReviewThreadCommentsQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) - const result = await gh.getRepoIssues({ - sf_repo_id: data.sf_repo_id, - page: data.page, - since_days_ago, - }) + // handle next page + await publishNextPageStream(ctx, result) + // get additional member info for each comment for (const record of result.data) { - const member = prepareMember(record) + let member: GithubPrepareMemberOutput + if (record.author?.login) { + member = await prepareMember(record.author, ctx) + } else if (record.authorBot?.login) { + member = prepareBotMember(record.authorBot) + } else if (record.author === null && record.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Pull request review thread comment author is not found. This pull request review thread comment will not be parsed.', + ) + continue + } - const action = record.action + // publish data + await ctx.processData({ + type: GithubActivityType.PULL_REQUEST_REVIEW_THREAD_COMMENT, + data: record, + member, + repo: data.repo, + isOld: true, + }) + } +} - if (action === 'opened') { - await ctx.processData({ - type: GithubActivityType.ISSUE_OPENED, - data: record, - member, - repo: data.repo, - }) - } else if (action === 'closed') { - await ctx.processData({ - type: GithubActivityType.ISSUE_CLOSED, - data: record, - member, +export const processPullCommitsStream: ProcessStreamHandler = async (ctx) => { + let result: GraphQlQueryResponse + + const data = ctx.stream.data as GithubBasicStream + const pullRequestNumber = data.prNumber + + const token = await getGithubToken(ctx) + + const pullRequestCommitsQuery = new PullRequestCommitsQuery(data.repo, pullRequestNumber, token) + + try { + result = await pullRequestCommitsQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) + } catch (err) { + ctx.log.warn( + { + err, repo: data.repo, - }) - } + pullRequestNumber, + }, + 'Error while fetching pull request commits. Trying again without additions.', + ) + const pullRequestCommitsQueryNoAdditions = new PullRequestCommitsQueryNoAdditions( + data.repo, + pullRequestNumber, + await getGithubToken(ctx), + ) + result = await pullRequestCommitsQueryNoAdditions.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) } + // handle next page await publishNextPageStream(ctx, result) + + // getting additional member info for each commit + { + const response = result.data[0] as PullRequestCommit | PullRequestCommitNoAdditions + const commits = response.repository.pullRequest.commits.nodes + + for (const record of commits) { + for (const author of record.commit.authors.nodes) { + if (!author || !author?.user || !author?.user?.login) { + // eslint-disable-next-line no-continue + continue + } + const member = await prepareMember(author.user, ctx) + + // publish data + await ctx.processData({ + type: GithubActivityType.AUTHORED_COMMIT, + data: record, + sourceParentId: response.repository.pullRequest.id, + member, + repo: data.repo, + isOld: true, + }) + } + } + } } -const processIssueCommentsStream: ProcessStreamHandler = async (ctx) => { +const processIssuesStream: ProcessStreamHandler = async (ctx) => { const data = ctx.stream.data as GithubBasicStream - const { gh } = getClient(ctx) - - const since_days_ago = ctx.onboarding ? undefined : '2' + const issuesQuery = new IssuesQuery(data.repo, await getGithubToken(ctx)) + const result = await issuesQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) - const result = await gh.getRepoIssueComments({ - sf_repo_id: data.sf_repo_id, - page: data.page, - since_days_ago, - }) + // handle next page + await publishNextPageStream(ctx, result) - for (const record of result.data) { - const member = prepareMember(record) + for (const issue of result.data) { + let member: GithubPrepareMemberOutput + if (issue.author?.login) { + member = await prepareMember(issue.author, ctx) + } else if (issue.authorBot?.login) { + member = prepareBotMember(issue.authorBot) + } else if (issue.author === null && issue.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn('Issue author is not found. This issue will not be parsed.') + continue + } await ctx.processData({ - type: GithubActivityType.ISSUE_COMMENT, - data: record, + type: GithubActivityType.ISSUE_OPENED, + data: issue, member, repo: data.repo, + isOld: true, }) + + // now need to parse issue events + for (const issueEvent of issue.timelineItems.nodes) { + switch (issueEvent.__typename) { + case GithubPullRequestEvents.CLOSE: { + let member: GithubPrepareMemberOutput + if (issueEvent.actor?.login) { + member = await prepareMember(issueEvent.actor, ctx) + } else if (issueEvent.actorBot?.login) { + member = prepareBotMember(issueEvent.actorBot) + } else if (issueEvent.actor === null && issueEvent.actorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn('Issue event author is not found. This issue event will not be parsed.') + continue + } + await ctx.processData({ + type: GithubActivityType.ISSUE_CLOSED, + data: issueEvent, + relatedData: issue, + member, + repo: data.repo, + isOld: true, + }) + + break + } + default: + ctx.log.warn( + `Unsupported issue event: ${issueEvent.__typename}. This event will not be parsed.`, + ) + } + } } - await publishNextPageStream(ctx, result) + // add each issue as separate stream for comments inside + for (const issue of result.data) { + await ctx.publishStream( + `${GithubStreamType.ISSUE_COMMENTS}:${issue.number}:firstPage`, + { + repo: data.repo, + page: '', + issueNumber: issue.number, + }, + ) + } } -const processPullCommitsStream: ProcessStreamHandler = async (ctx) => { +const processIssueCommentsStream: ProcessStreamHandler = async (ctx) => { const data = ctx.stream.data as GithubBasicStream - const { gh } = getClient(ctx) - - const result = await gh.getRepoPushes({ - sf_repo_id: data.sf_repo_id, - page: data.page, - }) + const issueNumber = data.issueNumber + const issueCommentsQuery = new IssueCommentsQuery( + data.repo, + issueNumber, + await getGithubToken(ctx), + ) + const result = await issueCommentsQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) + // handle next page + await publishNextPageStream(ctx, result) + // get additional member info for each comment for (const record of result.data) { - const member = prepareMember(record) + let member: GithubPrepareMemberOutput + if (record.author?.login) { + member = await prepareMember(record.author, ctx) + } else if (record.authorBot?.login) { + member = prepareBotMember(record.authorBot) + } else if (record.author === null && record.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn('Issue comment author is not found. This issue comment will not be parsed.') + continue + } + // publish data await ctx.processData({ - type: GithubActivityType.AUTHORED_COMMIT, + type: GithubActivityType.ISSUE_COMMENT, data: record, member, repo: data.repo, + isOld: true, }) } - - await publishNextPageStream(ctx, result) } -const processPullReviewsStream: ProcessStreamHandler = async (ctx) => { +const processDiscussionsStream: ProcessStreamHandler = async (ctx) => { const data = ctx.stream.data as GithubBasicStream - const { gh } = getClient(ctx) - - const result = await gh.getRepoPullRequestReviews({ - sf_repo_id: data.sf_repo_id, - page: data.page, - }) - - for (const record of result.data) { - const member = prepareMember(record) + const discussionsQuery = new DiscussionsQuery(data.repo, await getGithubToken(ctx)) + const result = await discussionsQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) + // handle next page + await publishNextPageStream(ctx, result) - // ignore commented reviews with no body - if (record.payload.review.state === 'commented' && record.payload.review.body === null) { + // get additional member info for each comment + for (const discussion of result.data) { + let member: GithubPrepareMemberOutput + if (discussion.author?.login) { + member = await prepareMember(discussion.author, ctx) + } else if (discussion.authorBot?.login) { + member = prepareBotMember(discussion.authorBot) + } else if (discussion.author === null && discussion.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn('Discussion author is not found. This discussion will not be parsed.') continue } + // publish data await ctx.processData({ - type: GithubActivityType.PULL_REQUEST_REVIEWED, - data: record, + type: GithubActivityType.DISCUSSION_STARTED, + data: discussion, member, repo: data.repo, + isOld: true, }) } - await publishNextPageStream(ctx, result) + // add each discussion as separate stream for comments inside + for (const d of result.data.filter((d) => d.comments.totalCount > 0)) { + await ctx.publishStream( + `${GithubStreamType.DISCUSSION_COMMENTS}:${d.id}:firstPage`, + { + repo: data.repo, + page: '', + discussionNumber: d.number, + }, + ) + } } -const processRootStream: ProcessStreamHandler = async (ctx) => { - const data = ctx.stream.data as GithubRootStream - const repos = data.reposToCheck +const processDiscussionCommentsStream: ProcessStreamHandler = async (ctx) => { + const data = ctx.stream.data as GithubBasicStream + const discussionCommentsQuery = new DiscussionCommentsQuery( + data.repo, + data.discussionNumber, + await getGithubToken(ctx), + ) + const result = await discussionCommentsQuery.getSinglePage( + data.page, + { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }, + getTokenRotator(ctx), + ) + // handle next page + await publishNextPageStream(ctx, result) - if (ctx.onboarding) { - await capGithubArchive(ctx, repos) - } + for (const record of result.data) { + let member: GithubPrepareMemberOutput + if (record.author?.login) { + member = await prepareMember(record.author, ctx) + } else if (record.authorBot?.login) { + member = prepareBotMember(record.authorBot) + } else if (record.author === null && record.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Discussion comment author is not found. This discussion comment will not be parsed.', + ) + continue + } + const commentId = record.id - const { gh } = getClient(ctx) + // publish data + await ctx.processData({ + type: GithubActivityType.DISCUSSION_COMMENT, + subType: GithubActivitySubType.DISCUSSION_COMMENT_START, + data: record, + member, + repo: data.repo, + isOld: true, + }) - // now it's time to start streams - // derivative streams should be started later, otherwise conversations can't be created correctly - for (const repo of repos) { - const repoId = await gh.getRepoId({ repo: repo.url }) - for (const endpoint of [ - GithubStreamType.STARGAZERS, - GithubStreamType.FORKS, - GithubStreamType.PULLS, - GithubStreamType.ISSUES, - GithubStreamType.PULL_COMMITS, - GithubStreamType.PULL_REVIEWS, - GithubStreamType.PULL_COMMENTS, - GithubStreamType.ISSUE_COMMENTS, - ]) { - // this firstPage thing is important to avoid duplicate streams and for handleNextPageStream to work - await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { - repo, - sf_repo_id: repoId, - page: 1, + // going through replies + for (const reply of record.replies.nodes) { + let member: GithubPrepareMemberOutput + if (reply.author?.login) { + member = await prepareMember(reply.author, ctx) + } else if (reply.authorBot?.login) { + member = prepareBotMember(reply.authorBot) + } else if (reply.author === null && reply.authorBot === null) { + member = prepareDeletedMember() + } else { + ctx.log.warn( + 'Discussion comment reply author is not found. This discussion comment reply will not be parsed.', + ) + continue + } + + // publish data + await ctx.processData({ + type: GithubActivityType.DISCUSSION_COMMENT, + subType: GithubActivitySubType.DISCUSSION_COMMENT_REPLY, + data: reply, + member, + sourceParentId: commentId, + repo: data.repo, + isOld: true, }) } } } const handler: ProcessStreamHandler = async (ctx) => { + await timeout(1000) const streamIdentifier = ctx.stream.identifier - if (streamIdentifier.startsWith(GithubStreamType.ROOT)) { await processRootStream(ctx) } else { + const data = ctx.stream.data as GithubBasicStream + const repo = getRepoByName(data.repo.name, ctx) + + if (repo === null) { + await ctx.abortWithError( + `Stream ${ctx.stream.identifier} can't be processed since repo ${data.repo.name} is not found!`, + { + repoName: data.repo.name, + streamIdentifier: ctx.stream.identifier, + }, + ) + } + + if (!repo.available) { + await ctx.abortWithError( + `Stream ${ctx.stream.identifier} can't be processed since repo ${data.repo.name} is not available!`, + { + repoName: data.repo.name, + streamIdentifier: ctx.stream.identifier, + }, + ) + } + + // if all checks are passed, we can start processing + + // Extract the stream type from the identifier const streamType = streamIdentifier.split(':')[0] switch (streamType) { @@ -397,20 +1268,29 @@ const handler: ProcessStreamHandler = async (ctx) => { case GithubStreamType.PULL_COMMENTS: await processPullCommentsStream(ctx) break + case GithubStreamType.PULL_REVIEW_THREADS: + await processPullReviewThreadsStream(ctx) + break + case GithubStreamType.PULL_REVIEW_THREAD_COMMENTS: + await processPullReviewThreadCommentsStream(ctx) + break case GithubStreamType.PULL_COMMITS: await processPullCommitsStream(ctx) break - case GithubStreamType.PULL_REVIEWS: - await processPullReviewsStream(ctx) - break case GithubStreamType.ISSUES: await processIssuesStream(ctx) break case GithubStreamType.ISSUE_COMMENTS: await processIssueCommentsStream(ctx) break + case GithubStreamType.DISCUSSIONS: + await processDiscussionsStream(ctx) + break + case GithubStreamType.DISCUSSION_COMMENTS: + await processDiscussionCommentsStream(ctx) + break default: - ctx.log.error(`No matching process function for streamType: ${streamType}`) + console.error(`No matching process function for streamType: ${streamType}`) } } } diff --git a/services/libs/integrations/src/integrations/github/processWebhookStream.ts b/services/libs/integrations/src/integrations/github/processWebhookStream.ts index 9372a68102..3389fddfa5 100644 --- a/services/libs/integrations/src/integrations/github/processWebhookStream.ts +++ b/services/libs/integrations/src/integrations/github/processWebhookStream.ts @@ -1,8 +1,475 @@ -import { ProcessWebhookStreamHandler } from '../../types' -import { default as oldHandler } from '../github-old/processWebhookStream' +/* eslint-disable @typescript-eslint/no-explicit-any */ +import verifyGithubWebhook from 'verify./processWebhookStream + +import { + IProcessStreamContext, + IProcessWebhookStreamContext, + ProcessWebhookStreamHandler, +} from '../../types' + +import getMember from './api/graphql/members' +import getOrganization from './api/graphql/organizations' +import TeamsQuery from './api/graphql/teams' +import { GithubWebhookTeam } from './api/graphql/types' +import { prepareBotMember, prepareMember } from './processStream' +import { + getConcurrentRequestLimiter, + getGithubToken, + processPullCommitsStream, +} from './processStream' +import { + GithubBasicStream, + GithubPlatformSettings, + GithubPrepareMemberOutput, + GithubPrepareOrgMemberOutput, + GithubStreamType, + GithubWebhookData, + GithubWebhookPayload, + GithubWebhookSubType, + GithubWehookEvent, + Repo, +} from './types' + +const IS_TEST_ENV: boolean = process.env.NODE_ENV === 'test' + +const handleWebhookSender = async ( + sender: any, + ctx: IProcessWebhookStreamContext, +): Promise => { + if (!sender) { + return undefined + } + if (!sender.type) { + ctx.log.error('Sender type is not defined in handleWebhookSender') + throw new Error('Sender type is not defined in handleWebhookSender') + } + if (sender.type === 'Bot') { + return prepareBotMember(sender) + } else if (sender.type === 'User') { + return prepareWebhookMember(sender.login, ctx) + } else { + ctx.log.error('Sender type is not supported in handleWebhookSender') + throw new Error('Sender type is not supported in handleWebhookSender') + } +} + +const handleWebhookOrgSender = async ( + sender: any, + ctx: IProcessWebhookStreamContext, +): Promise => { + if (sender.type !== 'Organization') { + ctx.log.error('Sender is not an organization in handleWebhookOrgSender') + throw new Error('Sender is not an organization in handleWebhookOrgSender') + } + const token = await getGithubToken(ctx as IProcessStreamContext) + const orgFromApi = await getOrganization(sender.login, token) + if (!orgFromApi) { + ctx.log.warn( + { org: sender.login }, + `Organization ${sender.login} not found in GitHub while fetching it from webhook data, skipping!`, + ) + return null + } + return { + orgFromApi, + } +} + +const prepareWebhookMember = async ( + login: string, + ctx: IProcessWebhookStreamContext, +): Promise => { + if (IS_TEST_ENV) { + return { + memberFromApi: { + login: 'testMember', + name: 'testMember', + }, + email: '', + orgs: [], + } + } + + if (!login) { + ctx.log.warn('No login in webhook, skipping!') + return null + } + + const token = await getGithubToken(ctx as IProcessStreamContext) + const member = await getMember(login, token) + + if (!member) { + ctx.log.warn( + { login }, + `Member ${login} not found in GitHub while fetching it from webhook data, skipping!`, + ) + return null + } + + const preparedMember = await prepareMember(member, ctx as IProcessStreamContext) + return preparedMember +} + +async function verifyWebhookSignature( + signature: string, + data: any, + ctx: IProcessWebhookStreamContext, +): Promise { + if (IS_TEST_ENV) { + return + } + + const GITHUB_CONFIG = ctx.platformSettings as GithubPlatformSettings + const secret = GITHUB_CONFIG.webhookSecret + + let isVerified: boolean + try { + isVerified = verifyGithubWebhook(signature, JSON.stringify(data), secret) // Returns true if verification succeeds; otherwise, false. + } catch (err) { + await ctx.abortWithError(`Error during Github webhook verificaion\n${err}`) + } + + if (!isVerified) { + await ctx.abortWithError('Github webhook not verified') + } +} + +const parseWebhookIssue = async (payload: any, ctx: IProcessWebhookStreamContext) => { + const member = await handleWebhookSender(payload?.sender, ctx) + + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.ISSUES, + data: payload, + member, + }) + } +} + +const parseWebhookDiscussion = async (payload: any, ctx: IProcessWebhookStreamContext) => { + let member: GithubPrepareMemberOutput | undefined + if (payload.action === 'answered') { + member = await handleWebhookSender(payload?.sender, ctx) + + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.DISCUSSION, + subType: GithubWebhookSubType.DISCUSSION_COMMENT_REPLY, + data: payload, + member, + }) + } + } + + if (!['edited', 'created'].includes(payload.action)) { + return + } + + const discussion = payload.discussion + member = await handleWebhookSender(discussion?.user, ctx) + + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.DISCUSSION, + subType: GithubWebhookSubType.DISCUSSION_COMMENT_START, + data: payload, + member, + }) + } +} + +const parseWebhookPullRequestEvents = async ( + payload: any, + ctx: IProcessWebhookStreamContext, +): Promise => { + const member = await handleWebhookSender(payload?.sender, ctx) + let objectMember: GithubPrepareMemberOutput | undefined + + const GITHUB_CONFIG = ctx.platformSettings as GithubPlatformSettings + const IS_GITHUB_COMMIT_DATA_ENABLED = GITHUB_CONFIG.isCommitDataEnabled === 'true' + + switch (payload.action) { + case 'edited': + case 'opened': + case 'reopened': + case 'closed': + case 'merged': { + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.PULL_REQUEST, + data: payload, + member, + }) + } + break + } + case 'assigned': { + objectMember = await handleWebhookSender(payload?.requested_reviewer, ctx) + + if (member && objectMember) { + await ctx.processData({ + webhookType: GithubWehookEvent.PULL_REQUEST, + data: payload, + member, + objectMember, + }) + } + break + } + case 'review_requested': { + objectMember = await handleWebhookSender(payload?.requested_reviewers?.[0], ctx) + + if (member && objectMember) { + await ctx.processData({ + webhookType: GithubWehookEvent.PULL_REQUEST, + data: payload, + member, + objectMember, + }) + } + break + } + case 'synchronize': { + if (IS_GITHUB_COMMIT_DATA_ENABLED) { + const prNumber = payload.number + const repo: Repo = { + name: payload?.repository?.name, + owner: payload?.repository?.owner?.login, + url: payload?.repository?.html_url, + createdAt: payload?.repository?.created_at, + } + + // this will create a CROWD_GENERATED webhook and stream for it + // this way we don't need integration run to publish new streams + await ctx.publishStream( + `${GithubStreamType.PULL_COMMITS}:${prNumber}:firstPage`, + { + repo, + page: '', + prNumber, + }, + ) + } + break + } + } +} + +const parseWebhookPullRequest = async (payload: any, ctx: IProcessWebhookStreamContext) => { + // handle case of multiple reviewers (by assigning a team as a reviewer) + if (payload.action === 'review_requested' && payload.requested_team) { + // a team sent as reviewer, first we need to find members in this team + const team: GithubWebhookTeam = payload.requested_team + const token = await getGithubToken(ctx as IProcessStreamContext) + const teamMembers = await new TeamsQuery(team.node_id, token).getSinglePage('', { + concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), + integrationId: ctx.integration.id, + }) + + for (const teamMember of teamMembers.data) { + await parseWebhookPullRequestEvents({ ...payload, requested_reviewer: teamMember }, ctx) + } + + return + } + + if (payload.action === 'closed' && payload.pull_request.merged) { + const revisedPayload = { ...payload, action: 'merged' } + revisedPayload.pull_request.state = 'merged' + + await parseWebhookPullRequestEvents(revisedPayload, ctx) + + return + } + + await parseWebhookPullRequestEvents(payload, ctx) +} + +const parseWebhookPullRequestReview = async ( + payload: any, + ctx: IProcessWebhookStreamContext, +): Promise => { + if (payload.action === 'submitted') { + // additional comments to existing review threads also result in submitted events + // since these will be handled in pull_request_review_comment.created events + // we're ignoring when state is commented and it has no body. + if (payload.review.state === 'commented' && payload.review.body === null) { + return + } + + const member = await handleWebhookSender(payload?.sender, ctx) + + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.PULL_REQUEST_REVIEW, + data: payload, + member, + }) + } + } +} + +const parseWebhookStar = async (payload: any, ctx: IProcessWebhookStreamContext, date: string) => { + if (payload.action === 'created' || payload.action === 'deleted') { + const member = await handleWebhookSender(payload?.sender, ctx) + + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.STAR, + data: payload, + member, + date, + }) + } + } +} + +const parseWebhookFork = async (payload: any, ctx: IProcessWebhookStreamContext) => { + if (payload?.sender?.type === 'Organization') { + const member = await handleWebhookOrgSender(payload?.sender, ctx) + + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.FORK, + data: payload, + orgMember: member, + }) + } + return + } + + const member = await handleWebhookSender(payload?.sender, ctx) + + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.FORK, + data: payload, + member, + }) + } +} + +const parseWebhookComment = async ( + event: string, + payload: any, + ctx: IProcessWebhookStreamContext, +) => { + let type: GithubWehookEvent + let sourceParentId: string + + switch (event) { + case 'discussion_comment': { + switch (payload.action) { + case 'created': + case 'edited': + type = GithubWehookEvent.DISCUSSION_COMMENT + sourceParentId = payload.discussion.node_id.toString() + break + default: + return undefined + } + break + } + + case 'issue_comment': { + switch (payload.action) { + case 'created': + case 'edited': { + if ('pull_request' in payload.issue) { + type = GithubWehookEvent.PULL_REQUEST_COMMENT + } else { + type = GithubWehookEvent.ISSUE_COMMENT + } + sourceParentId = payload.issue.node_id.toString() + break + } + + default: + return + } + break + } + + default: { + return + } + } + + const member = await handleWebhookSender(payload?.sender, ctx) + + if (member) { + await ctx.processData({ + webhookType: type, + data: payload, + member, + sourceParentId, + }) + } +} + +const parseWebhookPullRequestReviewComment = async ( + payload: any, + ctx: IProcessWebhookStreamContext, +) => { + if (payload.action === 'created') { + const member = await handleWebhookSender(payload?.comment?.user, ctx) + + if (member) { + await ctx.processData({ + webhookType: GithubWehookEvent.PULL_REQUEST_REVIEW_COMMENT, + data: payload, + member, + }) + } + } +} const handler: ProcessWebhookStreamHandler = async (ctx) => { - await oldHandler(ctx) + const identifier = ctx.stream.identifier + const webhookCreatedAt = ctx.stream.webhookCreatedAt + + // this is for pull request commits which are published during runtime + if (identifier.startsWith(GithubStreamType.PULL_COMMITS)) { + // we are reusing code here with another type of context + // everything should work except for ctx.aborRuntWithError + await processPullCommitsStream(ctx as IProcessStreamContext) + } else { + // this is for normal weqbook events + const { signature, event, data } = ctx.stream.data as GithubWebhookPayload + + await verifyWebhookSignature(signature, data, ctx) + + switch (event) { + case GithubWehookEvent.ISSUES: + await parseWebhookIssue(data, ctx) + break + case GithubWehookEvent.DISCUSSION: + await parseWebhookDiscussion(data, ctx) + break + case GithubWehookEvent.PULL_REQUEST: + await parseWebhookPullRequest(data, ctx) + break + case GithubWehookEvent.PULL_REQUEST_REVIEW: + await parseWebhookPullRequestReview(data, ctx) + break + case GithubWehookEvent.STAR: + await parseWebhookStar(data, ctx, webhookCreatedAt) + break + case GithubWehookEvent.FORK: + await parseWebhookFork(data, ctx) + break + case GithubWehookEvent.DISCUSSION_COMMENT: + case GithubWehookEvent.ISSUE_COMMENT: + await parseWebhookComment(event, data, ctx) + break + case GithubWehookEvent.PULL_REQUEST_REVIEW_COMMENT: + await parseWebhookPullRequestReviewComment(data, ctx) + break + default: + ctx.log.debug({ event }, 'Unknown Github webhook event!') + return + } + } } export default handler diff --git a/services/libs/integrations/src/integrations/github-old/tokenRotator.ts b/services/libs/integrations/src/integrations/github/tokenRotator.ts similarity index 100% rename from services/libs/integrations/src/integrations/github-old/tokenRotator.ts rename to services/libs/integrations/src/integrations/github/tokenRotator.ts diff --git a/services/libs/integrations/src/integrations/github/types.ts b/services/libs/integrations/src/integrations/github/types.ts index 9df0b3b5ef..7177870eb4 100644 --- a/services/libs/integrations/src/integrations/github/types.ts +++ b/services/libs/integrations/src/integrations/github/types.ts @@ -1,18 +1,21 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ export enum GithubActivityType { + DISCUSSION_STARTED = 'discussion-started', PULL_REQUEST_OPENED = 'pull_request-opened', PULL_REQUEST_CLOSED = 'pull_request-closed', - // PULL_REQUEST_REVIEW_REQUESTED = 'pull_request-review-requested', + PULL_REQUEST_REVIEW_REQUESTED = 'pull_request-review-requested', PULL_REQUEST_REVIEWED = 'pull_request-reviewed', - // PULL_REQUEST_ASSIGNED = 'pull_request-assigned', + PULL_REQUEST_ASSIGNED = 'pull_request-assigned', PULL_REQUEST_MERGED = 'pull_request-merged', ISSUE_OPENED = 'issues-opened', ISSUE_CLOSED = 'issues-closed', FORK = 'fork', STAR = 'star', + UNSTAR = 'unstar', PULL_REQUEST_COMMENT = 'pull_request-comment', - // PULL_REQUEST_REVIEW_THREAD_COMMENT = 'pull_request-review-thread-comment', + PULL_REQUEST_REVIEW_THREAD_COMMENT = 'pull_request-review-thread-comment', ISSUE_COMMENT = 'issue-comment', + DISCUSSION_COMMENT = 'discussion-comment', AUTHORED_COMMIT = 'authored-commit', } @@ -79,16 +82,32 @@ export enum GithubWebhookSubType { DISCUSSION_COMMENT_REPLY = 'discussion-comment-reply', } +export enum GithubWehookEvent { + ISSUES = 'issues', + DISCUSSION = 'discussion', + PULL_REQUEST = 'pull_request', + PULL_REQUEST_REVIEW = 'pull_request_review', + STAR = 'star', + FORK = 'fork', + DISCUSSION_COMMENT = 'discussion_comment', + PULL_REQUEST_REVIEW_COMMENT = 'pull_request_review_comment', + ISSUE_COMMENT = 'issue_comment', + PULL_REQUEST_COMMENT = 'pull_request_comment', +} + export enum GithubStreamType { ROOT = 'root', STARGAZERS = 'stargazers', FORKS = 'forks', PULLS = 'pulls', PULL_COMMENTS = 'pull-comments', + PULL_REVIEW_THREADS = 'pull-review-threads', + PULL_REVIEW_THREAD_COMMENTS = 'pull-review-thread-comments', PULL_COMMITS = 'pull-commits', - PULL_REVIEWS = 'pull-reviews', ISSUES = 'issues', ISSUE_COMMENTS = 'issue-comments', + DISCUSSIONS = 'discussions', + DISCUSSION_COMMENTS = 'discussion-comments', } export enum GithubManualStreamType { @@ -97,6 +116,7 @@ export enum GithubManualStreamType { FORKS = 'forks', PULLS = 'pulls', ISSUES = 'issues', + DISCUSSIONS = 'discussions', } export const INDIRECT_FORK = 'indirect-fork' @@ -111,6 +131,19 @@ export interface GithubApiData { objectMember?: GithubPrepareMemberOutput sourceParentId?: string repo: Repo + isOld: boolean +} + +export interface GithubWebhookData { + webhookType: GithubWehookEvent + subType?: string + data: any[] | any + relatedData?: any | any[] + member?: GithubPrepareMemberOutput + orgMember?: GithubPrepareOrgMemberOutput + objectMember?: GithubPrepareMemberOutput + sourceParentId?: string + date?: string } export interface GithubRootStream { @@ -119,8 +152,7 @@ export interface GithubRootStream { export interface GithubBasicStream { repo: Repo - sf_repo_id: string - page: number + page: string prNumber?: string reviewThreadId?: string issueNumber?: string @@ -128,13 +160,6 @@ export interface GithubBasicStream { } export interface GithubPlatformSettings { - sfPrivateKey: string - sfAccount: string - sfUsername: string - sfDatabase: string - sfWarehouse: string - sfIncrementalWarehouse: string - sfRole: string appId: string clientId: string clientSecret: string @@ -144,19 +169,11 @@ export interface GithubPlatformSettings { globalLimit?: number callbackUrl: string personalAccessTokens: string - tgNotifierToken: string - tgNotifierChatId: string } export interface GithubIntegrationSettings { - orgs: Array<{ - name: string - logo: string - url: string - fullSync: boolean - updatedAt: string - repos: Array - }> + repos: Repos + unavailableRepos: Repos } export interface GitHubManualIntegrationSettingsDefault extends GithubIntegrationSettings { @@ -182,9 +199,14 @@ export enum GithubPullRequestEvents { } export type Repo = { - name: string url: string - updatedAt: string + name: string + createdAt: string + owner: string + available?: boolean + fork?: boolean + private?: boolean + cloneUrl?: string } export type Repos = Array @@ -206,26 +228,8 @@ export interface AppTokenResponse { export interface GithubPrepareMemberOutput { email: string - org: { - id: string - login: string - avatarUrl: string - } - memberFromApi: { - id: string - login: string - avatarUrl: string - isBot?: boolean - isDeleted?: boolean - name?: string - bio?: string - location?: string - company?: string - url?: string - isHireable?: boolean - twitterUsername?: string - websiteUrl?: string - } + orgs: any + memberFromApi: any } export interface GithubBotMember { diff --git a/services/libs/integrations/src/integrations/index.ts b/services/libs/integrations/src/integrations/index.ts index 99508139b3..736bd77581 100644 --- a/services/libs/integrations/src/integrations/index.ts +++ b/services/libs/integrations/src/integrations/index.ts @@ -15,10 +15,10 @@ export * from './discourse/grid' export * from './discourse/types' export * from './discourse/memberAttributes' -export * from './github-old/grid' -export * from './github-old/types' -export * from './github-old/memberAttributes' -export * from './github-old/tokenRotator' +export * from './github/grid' +export * from './github/types' +export * from './github/memberAttributes' +export * from './github/tokenRotator' export * from './hackernews/grid' export * from './hackernews/types' diff --git a/services/libs/integrations/src/integrations/prettyActivityTypes.ts b/services/libs/integrations/src/integrations/prettyActivityTypes.ts index 3dc21f12fe..ddfdbd04ff 100644 --- a/services/libs/integrations/src/integrations/prettyActivityTypes.ts +++ b/services/libs/integrations/src/integrations/prettyActivityTypes.ts @@ -1,6 +1,6 @@ import { PlatformType } from '@crowd/types' -import { GithubActivityType } from './github-old/types' +import { GithubActivityType } from './github/types' import { HackerNewsActivityType } from './hackernews/types' import { RedditActivityType } from './reddit/types' diff --git a/services/libs/types/src/enums/platforms.ts b/services/libs/types/src/enums/platforms.ts index 8f1b44487d..b3a016b3f4 100644 --- a/services/libs/types/src/enums/platforms.ts +++ b/services/libs/types/src/enums/platforms.ts @@ -3,7 +3,7 @@ export enum PlatformType { SLACK = 'slack', DISCORD = 'discord', GITHUB = 'github', - GITHUB_OLD = 'github-old', + GITHUB_SNOWFLAKE = 'github-snowflake', TWITTER = 'twitter', REDDIT = 'reddit', HACKERNEWS = 'hackernews', From 33e3ca8ac29d40dcec769edc84c6204434d0c48e Mon Sep 17 00:00:00 2001 From: garrrikkotua Date: Thu, 16 Jan 2025 23:33:01 +0400 Subject: [PATCH 19/30] kinda workds --- .../helpers/githubConnectInstallation.ts | 9 +++ .../helpers/githubGetInstallations.ts | 9 +++ .../api/integration/helpers/githubMapRepos.ts | 25 ++++-- backend/src/api/integration/index.ts | 10 +++ backend/src/conf/configTypes.ts | 1 + .../usecases/github/rest/getRemoteStats.ts | 80 +++++++++++-------- .../connect/github-connect-modal.vue | 1 + .../settings/github-settings-drawer.vue | 6 +- .../integrations/github/generateStreams.ts | 13 +-- .../src/integrations/github/processData.ts | 2 +- .../src/integrations/github/processStream.ts | 7 +- .../github/processWebhookStream.ts | 2 +- .../src/integrations/github/types.ts | 9 ++- 13 files changed, 120 insertions(+), 54 deletions(-) create mode 100644 backend/src/api/integration/helpers/githubConnectInstallation.ts create mode 100644 backend/src/api/integration/helpers/githubGetInstallations.ts diff --git a/backend/src/api/integration/helpers/githubConnectInstallation.ts b/backend/src/api/integration/helpers/githubConnectInstallation.ts new file mode 100644 index 0000000000..982186c927 --- /dev/null +++ b/backend/src/api/integration/helpers/githubConnectInstallation.ts @@ -0,0 +1,9 @@ +import Permissions from '../../../security/permissions' +import IntegrationService from '../../../services/integrationService' +import PermissionChecker from '../../../services/user/permissionChecker' + +export default async (req, res) => { + new PermissionChecker(req).validateHas(Permissions.values.tenantEdit) + const payload = await new IntegrationService(req).connectGithubInstallation(req.body.installId) + await req.responseHandler.success(req, res, payload) +} \ No newline at end of file diff --git a/backend/src/api/integration/helpers/githubGetInstallations.ts b/backend/src/api/integration/helpers/githubGetInstallations.ts new file mode 100644 index 0000000000..bcd4499424 --- /dev/null +++ b/backend/src/api/integration/helpers/githubGetInstallations.ts @@ -0,0 +1,9 @@ +import Permissions from '../../../security/permissions' +import IntegrationService from '../../../services/integrationService' +import PermissionChecker from '../../../services/user/permissionChecker' + +export default async (req, res) => { + new PermissionChecker(req).validateHas(Permissions.values.tenantEdit) + const payload = await new IntegrationService(req).getGithubInstallations() + await req.responseHandler.success(req, res, payload) +} \ No newline at end of file diff --git a/backend/src/api/integration/helpers/githubMapRepos.ts b/backend/src/api/integration/helpers/githubMapRepos.ts index b76e43da7b..33487b15b3 100644 --- a/backend/src/api/integration/helpers/githubMapRepos.ts +++ b/backend/src/api/integration/helpers/githubMapRepos.ts @@ -1,14 +1,27 @@ +import { GITHUB_CONFIG } from '@/conf' + import Permissions from '../../../security/permissions' import IntegrationService from '../../../services/integrationService' import PermissionChecker from '../../../services/user/permissionChecker' +const isSnowflakeEnabled = GITHUB_CONFIG.isSnowflakeEnabled === 'true' + export default async (req, res) => { new PermissionChecker(req).validateHas(Permissions.values.tenantEdit) - const payload = await new IntegrationService(req).mapGithubRepos( - req.params.id, - req.body.mapping, - true, - req.body?.isUpdateTransaction ?? false, - ) + let payload + if (isSnowflakeEnabled) { + payload = await new IntegrationService(req).mapGithubReposSnowflake( + req.params.id, + req.body.mapping, + true, + req.body?.isUpdateTransaction ?? false, + ) + } else { + payload = await new IntegrationService(req).mapGithubRepos( + req.params.id, + req.body.mapping, + true, + ) + } await req.responseHandler.success(req, res, payload) } diff --git a/backend/src/api/integration/index.ts b/backend/src/api/integration/index.ts index 85c7b12d22..7475c5693c 100644 --- a/backend/src/api/integration/index.ts +++ b/backend/src/api/integration/index.ts @@ -34,6 +34,16 @@ export default (app) => { app.get(`/tenant/:tenantId/integration`, safeWrap(require('./integrationList').default)) app.get(`/tenant/:tenantId/integration/:id`, safeWrap(require('./integrationFind').default)) + app.get( + '/tenant/:tenantId/github-installations', + safeWrap(require('./helpers/githubGetInstallations').default), + ) + + app.post( + '/tenant/:tenantId/github-connect-installation', + safeWrap(require('./helpers/githubConnectInstallation').default), + ) + app.put( `/tenant/:tenantId/integration/:id/github/repos`, safeWrap(require('./helpers/githubMapRepos').default), diff --git a/backend/src/conf/configTypes.ts b/backend/src/conf/configTypes.ts index 47bf548c4b..7b1f0f209e 100644 --- a/backend/src/conf/configTypes.ts +++ b/backend/src/conf/configTypes.ts @@ -127,6 +127,7 @@ export interface GithubConfiguration { privateKey: string webhookSecret: string isCommitDataEnabled: string + isSnowflakeEnabled: string globalLimit?: number callbackUrl: string } diff --git a/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts b/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts index 4071dd5cc2..2059254988 100644 --- a/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts +++ b/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts @@ -28,9 +28,10 @@ const checkHeaders = (response: AxiosResponse, defaultValue = 0): number => } const getStatsForRepo = async (repoUrl: string, token: string): Promise => { - const [owner, repo] = repoUrl.split('/').slice(-2) + try { + const [owner, repo] = repoUrl.split('/').slice(-2) - const query = ` + const query = ` query { repository(owner: "${owner}", name: "${repo}") { starCount: stargazers { @@ -49,44 +50,53 @@ const getStatsForRepo = async (repoUrl: string, token: string): Promise { IntegrationService.getGithubInstallations() .then((res: GithubInstallation[]) => { installations.value = res; + console.log(res); }); }; diff --git a/frontend/src/config/integrations/github/components/settings/github-settings-drawer.vue b/frontend/src/config/integrations/github/components/settings/github-settings-drawer.vue index d2402ab47f..1b1da42452 100644 --- a/frontend/src/config/integrations/github/components/settings/github-settings-drawer.vue +++ b/frontend/src/config/integrations/github/components/settings/github-settings-drawer.vue @@ -222,11 +222,11 @@ const bulkApply = (data: Record) => { }; // Display data -const repos = computed(() => props.integration?.settings?.repos || []); +const repos = computed(() => props.integration?.settings?.orgs[0]?.repos || []); const owner = computed<{name: string, logo?: string} | null>(() => (repos.value.length > 0 ? { - name: repos.value[0].owner, - logo: props.integration?.settings?.orgAvatar, + name: props.integration?.settings?.orgs[0]?.name, + logo: props.integration?.settings?.orgs[0]?.logo, } : null)); // Static github details diff --git a/services/libs/integrations/src/integrations/github/generateStreams.ts b/services/libs/integrations/src/integrations/github/generateStreams.ts index 2a6a8bf40f..8d8f8554a4 100644 --- a/services/libs/integrations/src/integrations/github/generateStreams.ts +++ b/services/libs/integrations/src/integrations/github/generateStreams.ts @@ -35,7 +35,10 @@ const objectToMap = (obj: object): Map> => const handler: GenerateStreamsHandler = async (ctx) => { const settings = ctx.integration.settings as GithubIntegrationSettings - const reposToCheck = [...(settings.repos || []), ...(settings.unavailableRepos || [])] + const reposToCheck = [ + ...(settings?.orgs?.flatMap((o) => o.repos) || []), + ...(settings?.unavailableRepos || []), + ] const isManualRun = ctx.isManualRun @@ -45,8 +48,8 @@ const handler: GenerateStreamsHandler = async (ctx) => { ctx.abortRunWithError('isManualRun is true but manualSettings is not set!') } - if (manualSettings.repos && manualSettings.manualSettingsType === 'default') { - for (const repo of manualSettings.repos) { + if (manualSettings.orgs && manualSettings.manualSettingsType === 'default') { + for (const repo of manualSettings.orgs.flatMap((o) => o.repos)) { for (const endpoint of [ GithubStreamType.STARGAZERS, GithubStreamType.FORKS, @@ -65,7 +68,7 @@ const handler: GenerateStreamsHandler = async (ctx) => { } } } - } else if (manualSettings.repos && manualSettings.manualSettingsType === 'detailed_map') { + } else if (manualSettings.orgs && manualSettings.manualSettingsType === 'detailed_map') { const map = objectToMap(manualSettings.map) for (const [repoUrl, streams] of map) { for (const stream of streams) { @@ -73,7 +76,7 @@ const handler: GenerateStreamsHandler = async (ctx) => { if (!endpoint) { ctx.abortRunWithError(`Invalid stream type: ${stream}`) } - const repo = manualSettings.repos.find((r) => r.url === repoUrl) + const repo = manualSettings.orgs.flatMap((o) => o.repos).find((r) => r.url === repoUrl) await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { repo, page: '', diff --git a/services/libs/integrations/src/integrations/github/processData.ts b/services/libs/integrations/src/integrations/github/processData.ts index b7314ed833..092471a3e0 100644 --- a/services/libs/integrations/src/integrations/github/processData.ts +++ b/services/libs/integrations/src/integrations/github/processData.ts @@ -24,7 +24,7 @@ import { GithubIssue, GithubIssueTimelineItem, GithubPrepareMemberOutput, - GithubPrepareOrgMemberOutput,./processData + GithubPrepareOrgMemberOutput, GithubPullRequest, GithubPullRequestTimelineItem, GithubWebhookData, diff --git a/services/libs/integrations/src/integrations/github/processStream.ts b/services/libs/integrations/src/integrations/github/processStream.ts index 0ec8f0c7b7..46a9397fa1 100644 --- a/services/libs/integrations/src/integrations/github/processStream.ts +++ b/services/libs/integrations/src/integrations/github/processStream.ts @@ -284,13 +284,16 @@ export const prepareMemberFromOrg = (orgFromApi: any): GithubPrepareOrgMemberOut */ function getRepoByName(name: string, ctx: IProcessStreamContext): Repo | null { const settings = ctx.integration.settings as GithubIntegrationSettings - const availableRepo: Repo | undefined = singleOrDefault(settings.repos, (r) => r.name === name) + const availableRepo: Repo | undefined = singleOrDefault( + settings?.orgs?.flatMap((o) => o.repos), + (r) => r.name === name, + ) if (availableRepo) { return { ...availableRepo, available: true } } const unavailableRepo: Repo | undefined = singleOrDefault( - settings.unavailableRepos, + settings?.unavailableRepos, (r) => r.name === name, ) if (unavailableRepo) { diff --git a/services/libs/integrations/src/integrations/github/processWebhookStream.ts b/services/libs/integrations/src/integrations/github/processWebhookStream.ts index 3389fddfa5..ae82b8cab8 100644 --- a/services/libs/integrations/src/integrations/github/processWebhookStream.ts +++ b/services/libs/integrations/src/integrations/github/processWebhookStream.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import verifyGithubWebhook from 'verify./processWebhookStream +import verifyGithubWebhook from 'verify-github-webhook' import { IProcessStreamContext, diff --git a/services/libs/integrations/src/integrations/github/types.ts b/services/libs/integrations/src/integrations/github/types.ts index 7177870eb4..1d0eef68fd 100644 --- a/services/libs/integrations/src/integrations/github/types.ts +++ b/services/libs/integrations/src/integrations/github/types.ts @@ -172,7 +172,14 @@ export interface GithubPlatformSettings { } export interface GithubIntegrationSettings { - repos: Repos + orgs: Array<{ + name: string + logo: string + url: string + fullSync: boolean + updatedAt: string + repos: Array + }> unavailableRepos: Repos } From a0473d3997e805a1d4db24e06cfbe0ecf5a3c5a2 Mon Sep 17 00:00:00 2001 From: garrrikkotua Date: Mon, 20 Jan 2025 18:49:47 +0400 Subject: [PATCH 20/30] update pnpm lock --- pnpm-lock.yaml | 9737 ++++++++++++++++++++++++++---------------------- 1 file changed, 5374 insertions(+), 4363 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30e5ccefc0..90de0b5ed9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@actions/core': specifier: ^1.10.1 - version: 1.11.1 + version: 1.10.1 '@actions/exec': specifier: ^1.1.1 version: 1.1.1 @@ -23,40 +23,40 @@ importers: devDependencies: '@types/node': specifier: ^20.10.6 - version: 20.17.12 + version: 20.12.7 '@typescript-eslint/eslint-plugin': specifier: ^6.7.4 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^6.7.4 - version: 6.21.0(eslint@8.57.1)(typescript@5.7.2) + version: 6.21.0(eslint@8.57.0)(typescript@5.6.3) '@vercel/ncc': specifier: ^0.38.1 - version: 0.38.3 + version: 0.38.1 eslint: specifier: ^8.50.0 - version: 8.57.1 + version: 8.57.0 eslint-config-prettier: specifier: ^9.0.0 - version: 9.1.0(eslint@8.57.1) + version: 9.1.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.0.0 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.4.2) + version: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) prettier: specifier: ^3.0.3 - version: 3.4.2 + version: 3.2.5 ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.10.4)(@types/node@20.17.12)(typescript@5.7.2) + version: 10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.6.3) typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 backend: dependencies: '@aws-sdk/client-comprehend': specifier: ^3.159.0 - version: 3.723.0 + version: 3.564.0 '@aws-sdk/hash-node': specifier: ^3.226.0 version: 3.374.0 @@ -65,13 +65,13 @@ importers: version: 3.374.0 '@aws-sdk/s3-request-presigner': specifier: ^3.229.0 - version: 3.723.0 + version: 3.564.0 '@aws-sdk/url-parser': specifier: ^3.226.0 version: 3.374.0 '@aws-sdk/util-format-url': specifier: ^3.226.0 - version: 3.723.0 + version: 3.535.0 '@crowd/audit-logs': specifier: workspace:* version: link:../services/libs/audit-logs @@ -116,28 +116,28 @@ importers: version: link:../services/libs/types '@google-cloud/storage': specifier: 5.3.0 - version: 5.3.0 + version: 5.3.0(encoding@0.1.13) '@octokit/auth-app': specifier: ^3.6.1 - version: 3.6.1 + version: 3.6.1(encoding@0.1.13) '@octokit/core': specifier: ^6.1.2 - version: 6.1.3 + version: 6.1.2 '@octokit/graphql': specifier: ^4.8.0 - version: 4.8.0 + version: 4.8.0(encoding@0.1.13) '@octokit/request': specifier: ^5.6.3 - version: 5.6.3 + version: 5.6.3(encoding@0.1.13) '@opensearch-project/opensearch': specifier: ^2.11.0 - version: 2.13.0 + version: 2.11.0 '@slack/web-api': specifier: ^6.7.2 - version: 6.13.0 + version: 6.12.0 '@superfaceai/one-sdk': specifier: ^1.3.0 - version: 1.5.2 + version: 1.5.2(encoding@0.1.13) '@superfaceai/passport-twitter-oauth2': specifier: ^1.0.0 version: 1.2.4 @@ -155,10 +155,10 @@ importers: version: 5.0.0 body-parser: specifier: ^1.20.1 - version: 1.20.3 + version: 1.20.2 bufferutil: specifier: ^4.0.7 - version: 4.0.9 + version: 4.0.8 bunyan: specifier: ^1.8.15 version: 1.8.15 @@ -182,7 +182,7 @@ importers: version: 6.1.3 config: specifier: ^3.3.8 - version: 3.3.12 + version: 3.3.11 cors: specifier: 2.8.5 version: 2.8.5 @@ -200,10 +200,10 @@ importers: version: 4.2.0 csv-parse: specifier: ^5.5.6 - version: 5.6.0 + version: 5.5.6 discord.js: specifier: ^14.7.1 - version: 14.17.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + version: 14.14.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) dotenv: specifier: 8.2.0 version: 8.2.0 @@ -257,13 +257,13 @@ importers: version: 2.29.4 moment-timezone: specifier: ^0.5.34 - version: 0.5.46 + version: 0.5.45 mv: specifier: 2.1.1 version: 2.1.1 node-fetch: specifier: ^2.6.7 - version: 2.7.0 + version: 2.7.0(encoding@0.1.13) omit-deep-by-values: specifier: ^1.0.2 version: 1.0.2 @@ -290,16 +290,16 @@ importers: version: 6.1.5 pg: specifier: ^8.7.3 - version: 8.13.1 + version: 8.11.5 pg-promise: specifier: ^11.4.3 - version: 11.10.2(pg-query-stream@4.7.1(pg@8.13.1)) + version: 11.6.0 sanitize-html: specifier: ^2.7.1 - version: 2.14.0 + version: 2.13.0 sequelize: specifier: 6.21.2 - version: 6.21.2(pg@8.13.1) + version: 6.21.2(pg@8.11.5) sequelize-cli-typescript: specifier: ^3.2.0-c version: 3.2.0-c @@ -308,7 +308,7 @@ importers: version: 2.8.0 socket.io: specifier: ^4.5.4 - version: 4.8.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + version: 4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) superagent: specifier: ^8.0.0 version: 8.1.2 @@ -323,7 +323,7 @@ importers: version: 9.0.1 validator: specifier: ^13.7.0 - version: 13.12.0 + version: 13.11.0 verify-github-webhook: specifier: ^1.0.1 version: 1.0.1 @@ -333,16 +333,16 @@ importers: devDependencies: '@babel/core': specifier: ^7.21.8 - version: 7.26.0 + version: 7.24.4 '@babel/preset-env': specifier: ^7.21.5 - version: 7.26.0(@babel/core@7.26.0) + version: 7.24.4(@babel/core@7.24.4) '@babel/preset-typescript': specifier: ^7.21.5 - version: 7.26.0(@babel/core@7.26.0) + version: 7.24.1(@babel/core@7.24.4) '@trivago/prettier-plugin-sort-imports': specifier: ^4.3.0 - version: 4.3.0(prettier@3.4.2) + version: 4.3.0(prettier@3.3.3) '@types/bunyan': specifier: ^1.8.8 version: 1.8.11 @@ -351,10 +351,10 @@ importers: version: 0.2.9 '@types/config': specifier: ^3.3.0 - version: 3.3.5 + version: 3.3.4 '@types/cron': specifier: ^2.0.0 - version: 2.4.3 + version: 2.4.0 '@types/html-to-text': specifier: ^8.1.1 version: 8.1.1 @@ -363,7 +363,7 @@ importers: version: 18.0.6 '@types/sanitize-html': specifier: ^2.6.2 - version: 2.13.0 + version: 2.11.0 '@types/superagent': specifier: ^4.1.15 version: 4.1.24 @@ -372,10 +372,10 @@ importers: version: 9.0.8 '@typescript-eslint/eslint-plugin': specifier: ^5.17.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) + version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^5.17.0 - version: 5.62.0(eslint@8.57.1)(typescript@5.7.2) + version: 5.62.0(eslint@8.57.0)(typescript@5.6.3) copyfiles: specifier: 2.4.1 version: 2.4.1 @@ -387,19 +387,19 @@ importers: version: 1.1.9 eslint: specifier: ^8.12.0 - version: 8.57.1 + version: 8.57.0 eslint-config-airbnb-base: specifier: ^15.0.0 - version: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1))(eslint@8.57.1) + version: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0))(eslint@8.57.0) eslint-config-airbnb-typescript: specifier: ^16.1.4 - version: 16.2.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1))(eslint@8.57.1) + version: 16.2.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3))(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0))(eslint@8.57.0) eslint-config-prettier: specifier: ^8.5.0 - version: 8.10.0(eslint@8.57.1) + version: 8.10.0(eslint@8.57.0) eslint-plugin-import: specifier: ^2.25.4 - version: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1) + version: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0) node-mocks-http: specifier: 1.9.0 version: 1.9.0 @@ -408,43 +408,43 @@ importers: version: 2.0.4 prettier: specifier: ^3.3.3 - version: 3.4.2 + version: 3.3.3 rdme: specifier: ^7.2.0 - version: 7.5.0(openapi-types@12.1.3) + version: 7.5.0(encoding@0.1.13)(openapi-types@12.1.3) supertest: specifier: ^6.2.2 version: 6.3.4 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services: devDependencies: '@trivago/prettier-plugin-sort-imports': specifier: ^4.3.0 - version: 4.3.0(prettier@3.4.2) + version: 4.3.0(prettier@3.3.3) '@typescript-eslint/eslint-plugin': specifier: ^5.59.2 - version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) + version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^5.59.2 - version: 5.62.0(eslint@8.57.1)(typescript@5.7.2) + version: 5.62.0(eslint@8.57.0)(typescript@5.6.3) eslint: specifier: ^8.39.0 - version: 8.57.1 + version: 8.57.0 eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.0(eslint@8.57.1) + version: 8.10.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.4.2) + version: 5.2.1(@types/eslint@8.56.10)(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3) prettier: specifier: ^3.3.3 - version: 3.4.2 + version: 3.3.3 services/apps/activities_worker: dependencies: @@ -465,87 +465,29 @@ importers: version: link:../../libs/types '@temporalio/activity': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/client': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 html-to-text: specifier: ^9.0.5 version: 9.0.5 tsx: specifier: ^4.7.1 - version: 4.19.2 - typescript: - specifier: ^5.6.3 - version: 5.7.2 - devDependencies: - '@types/node': - specifier: ^20.8.2 - version: 20.17.12 - nodemon: - specifier: ^3.0.1 - version: 3.1.9 - - services/apps/automations_worker: - dependencies: - '@crowd/archetype-standard': - specifier: workspace:* - version: link:../../archetypes/standard - '@crowd/archetype-worker': - specifier: workspace:* - version: link:../../archetypes/worker - '@crowd/common': - specifier: workspace:* - version: link:../../libs/common - '@crowd/data-access-layer': - specifier: workspace:* - version: link:../../libs/data-access-layer - '@crowd/integrations': - specifier: workspace:* - version: link:../../libs/integrations - '@crowd/logging': - specifier: workspace:* - version: link:../../libs/logging - '@crowd/redis': - specifier: workspace:* - version: link:../../libs/redis - '@crowd/types': - specifier: workspace:* - version: link:../../libs/types - '@temporalio/workflow': - specifier: ~1.11.1 - version: 1.11.5 - html-to-mrkdwn-ts: - specifier: ^1.1.0 - version: 1.1.0 - lodash.clonedeep: - specifier: ^4.5.0 - version: 4.5.0 - lodash.merge: - specifier: ^4.6.2 - version: 4.6.2 - superagent: - specifier: ^8.1.2 - version: 8.1.2 - tsx: - specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 - '@types/superagent': - specifier: ^4.1.20 - version: 4.1.24 + version: 20.12.7 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/cache_worker: dependencies: @@ -572,26 +514,26 @@ importers: version: link:../../libs/types '@temporalio/client': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 moment: specifier: ~2.29.4 version: 2.29.4 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/data_sink_worker: dependencies: @@ -633,13 +575,13 @@ importers: version: link:../../libs/types '@types/config': specifier: ^3.3.0 - version: 3.3.5 + version: 3.3.4 '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 config: specifier: ^3.3.9 - version: 3.3.12 + version: 3.3.11 crowd-sentiment: specifier: ^1.1.7 version: 1.1.7 @@ -654,13 +596,13 @@ importers: version: 4.7.0 moment-timezone: specifier: ^0.5.34 - version: 0.5.46 + version: 0.5.45 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: nodemon: specifier: ^2.0.22 @@ -688,20 +630,20 @@ importers: version: link:../../libs/types '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/exports_worker: dependencies: @@ -713,13 +655,13 @@ importers: version: 3.374.0 '@aws-sdk/s3-request-presigner': specifier: ^3.229.0 - version: 3.723.0 + version: 3.564.0 '@aws-sdk/url-parser': specifier: ^3.226.0 version: 3.374.0 '@aws-sdk/util-format-url': specifier: ^3.226.0 - version: 3.723.0 + version: 3.535.0 '@crowd/archetype-standard': specifier: workspace:* version: link:../../archetypes/standard @@ -743,10 +685,10 @@ importers: version: link:../../libs/types '@sendgrid/mail': specifier: ~8.1.0 - version: 8.1.4 + version: 8.1.3 '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 aws-sdk: specifier: 2.814.0 version: 2.814.0 @@ -761,20 +703,20 @@ importers: version: 2.30.1 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 '@types/uuid': specifier: ~9.0.6 version: 9.0.8 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/integration_run_worker: dependencies: @@ -810,20 +752,20 @@ importers: version: 1.6.8 config: specifier: ^3.3.9 - version: 3.3.12 + version: 3.3.11 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/config': specifier: ^3.3.0 - version: 3.3.5 + version: 3.3.4 '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 nodemon: specifier: ^2.0.22 version: 2.0.22 @@ -856,66 +798,20 @@ importers: version: link:../../libs/types config: specifier: ^3.3.9 - version: 3.3.12 - tsx: - specifier: ^4.7.1 - version: 4.19.2 - typescript: - specifier: ^5.6.3 - version: 5.7.2 - devDependencies: - '@types/config': - specifier: ^3.3.0 - version: 3.3.5 - '@types/node': - specifier: ^18.16.3 - version: 18.19.70 - nodemon: - specifier: ^2.0.22 - version: 2.0.22 - - services/apps/integration_sync_worker: - dependencies: - '@crowd/common': - specifier: workspace:* - version: link:../../libs/common - '@crowd/data-access-layer': - specifier: workspace:* - version: link:../../libs/data-access-layer - '@crowd/integrations': - specifier: workspace:* - version: link:../../libs/integrations - '@crowd/logging': - specifier: workspace:* - version: link:../../libs/logging - '@crowd/opensearch': - specifier: workspace:* - version: link:../../libs/opensearch - '@crowd/queue': - specifier: workspace:* - version: link:../../libs/queue - '@crowd/types': - specifier: workspace:* - version: link:../../libs/types - '@opensearch-project/opensearch': - specifier: ^2.11.0 - version: 2.13.0 - config: - specifier: ^3.3.9 - version: 3.3.12 + version: 3.3.11 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/config': specifier: ^3.3.0 - version: 3.3.5 + version: 3.3.4 '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 nodemon: specifier: ^2.0.22 version: 2.0.22 @@ -954,13 +850,13 @@ importers: version: link:../../libs/types '@temporalio/client': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 auth0: specifier: ^4.3.1 - version: 4.15.0 + version: 4.3.1 axios: specifier: ~1.6.2 version: 1.6.8 @@ -972,26 +868,26 @@ importers: version: 2.29.4 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 '@types/uuid': specifier: ~9.0.6 version: 9.0.8 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/merge_suggestions_worker: dependencies: '@aws-sdk/client-bedrock-runtime': specifier: ^3.572.0 - version: 3.723.0 + version: 3.572.0 '@crowd/archetype-standard': specifier: workspace:* version: link:../../archetypes/standard @@ -1015,10 +911,10 @@ importers: version: link:../../libs/types '@temporalio/client': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 axios: specifier: ^1.6.8 version: 1.6.8 @@ -1027,17 +923,17 @@ importers: version: 3.0.0 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/organizations_enrichment_worker: dependencies: @@ -1067,29 +963,29 @@ importers: version: link:../../libs/types '@temporalio/client': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 peopledatalabs: specifier: ~6.1.5 version: 6.1.5 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 '@types/uuid': specifier: ~9.0.6 version: 9.0.8 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/profiles_worker: dependencies: @@ -1113,26 +1009,26 @@ importers: version: link:../../libs/types '@temporalio/client': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 '@types/uuid': specifier: ~9.0.6 version: 9.0.8 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/script_executor_worker: dependencies: @@ -1156,7 +1052,7 @@ importers: version: link:../../libs/types '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 axios: specifier: ^1.6.8 version: 1.6.8 @@ -1165,17 +1061,17 @@ importers: version: 2.29.4 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/search_sync_api: dependencies: @@ -1205,7 +1101,7 @@ importers: version: 1.0.2 config: specifier: ^3.3.9 - version: 3.3.12 + version: 3.3.11 cors: specifier: ^2.8.5 version: 2.8.5 @@ -1214,20 +1110,20 @@ importers: version: 4.18.3 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/config': specifier: ^3.3.0 - version: 3.3.5 + version: 3.3.4 '@types/express': specifier: ^4.17.17 version: 4.17.21 '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 nodemon: specifier: ^2.0.22 version: 2.0.22 @@ -1260,20 +1156,20 @@ importers: version: link:../../libs/types config: specifier: ^3.3.9 - version: 3.3.12 + version: 3.3.11 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/config': specifier: ^3.3.0 - version: 3.3.5 + version: 3.3.4 '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 nodemon: specifier: ^2.0.22 version: 2.0.22 @@ -1288,17 +1184,17 @@ importers: version: link:../../archetypes/standard tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/template_worker: dependencies: @@ -1310,20 +1206,20 @@ importers: version: link:../../archetypes/worker '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/temporal_codec_server: dependencies: @@ -1335,7 +1231,7 @@ importers: version: link:../../libs/temporal '@temporalio/proto': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 cors: specifier: ~2.8.5 version: 2.8.5 @@ -1344,17 +1240,17 @@ importers: version: 4.18.3 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 devDependencies: '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 nodemon: specifier: ^3.0.1 - version: 3.1.9 + version: 3.1.0 services/apps/webhook_api: dependencies: @@ -1384,19 +1280,19 @@ importers: version: link:../../libs/types '@types/config': specifier: ^3.3.0 - version: 3.3.5 + version: 3.3.4 '@types/express': specifier: ^4.17.17 version: 4.17.21 '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 bunyan-middleware: specifier: ^1.0.2 version: 1.0.2 config: specifier: ^3.3.9 - version: 3.3.12 + version: 3.3.11 cors: specifier: ^2.8.5 version: 2.8.5 @@ -1405,10 +1301,10 @@ importers: version: 4.18.3 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 verify-github-webhook: specifier: ^1.0.1 version: 1.0.1 @@ -1428,13 +1324,13 @@ importers: devDependencies: '@types/config': specifier: ^3.3.1 - version: 3.3.5 + version: 3.3.4 '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/archetypes/standard: dependencies: @@ -1467,17 +1363,17 @@ importers: version: 2.2.4 pg-promise: specifier: ^11.4.3 - version: 11.10.2(pg-query-stream@4.7.1(pg@8.13.1)) + version: 11.6.0 devDependencies: '@types/config': specifier: ^3.3.1 - version: 3.3.5 + version: 3.3.4 '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/archetypes/worker: dependencies: @@ -1507,23 +1403,23 @@ importers: version: link:../../libs/temporal '@temporalio/activity': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/worker': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/workflow': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 devDependencies: '@types/config': specifier: ^3.3.1 - version: 3.3.5 + version: 3.3.4 '@types/node': specifier: ^20.8.2 - version: 20.17.12 + version: 20.12.7 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/audit-logs: dependencies: @@ -1536,10 +1432,10 @@ importers: devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/common: dependencies: @@ -1551,26 +1447,26 @@ importers: version: 4.4.2 moment-timezone: specifier: ^0.5.34 - version: 0.5.46 + version: 0.5.45 tldts: specifier: ^6.1.11 - version: 6.1.71 + version: 6.1.18 uuid: specifier: ^9.0.0 version: 9.0.1 devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/common_services: dependencies: '@aws-sdk/client-bedrock-runtime': specifier: ^3.572.0 - version: 3.723.0 + version: 3.572.0 '@crowd/common': specifier: workspace:* version: link:../common @@ -1592,10 +1488,10 @@ importers: devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/data-access-layer: dependencies: @@ -1643,26 +1539,26 @@ importers: version: 2.29.4 pg-promise: specifier: ^11.4.3 - version: 11.10.2(pg-query-stream@4.7.1(pg@8.13.1)) + version: 11.6.0 pg-query-stream: specifier: ^4.7.0 - version: 4.7.1(pg@8.13.1) + version: 4.7.0(pg@8.11.5) uuid: specifier: ^9.0.1 version: 9.0.1 validator: specifier: ^13.7.0 - version: 13.12.0 + version: 13.11.0 devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 sequelize: specifier: 6.21.2 - version: 6.21.2(pg@8.13.1) + version: 6.21.2(pg@8.11.5) typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/database: dependencies: @@ -1674,14 +1570,14 @@ importers: version: link:../logging pg-promise: specifier: ^11.4.3 - version: 11.10.2(pg-query-stream@4.7.1(pg@8.13.1)) + version: 11.6.0 devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/integrations: dependencies: @@ -1705,13 +1601,13 @@ importers: version: link:../types '@gitbeaker/rest': specifier: ^40.1.2 - version: 40.6.0 + version: 40.2.1 '@octokit/auth-app': specifier: ^4.0.13 - version: 4.0.13 + version: 4.0.13(encoding@0.1.13) '@octokit/graphql': specifier: ^5.0.6 - version: 5.0.6 + version: 5.0.6(encoding@0.1.13) axios: specifier: ^1.4.0 version: 1.6.8 @@ -1726,7 +1622,7 @@ importers: version: 4.6.2 sanitize-html: specifier: ^2.10.0 - version: 2.14.0 + version: 2.13.0 verify-github-webhook: specifier: ^1.0.1 version: 1.0.1 @@ -1736,13 +1632,13 @@ importers: version: 1.2.3 '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 '@types/sanitize-html': specifier: ^2.9.0 - version: 2.13.0 + version: 2.11.0 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/logging: dependencies: @@ -1764,10 +1660,10 @@ importers: version: 0.2.9 '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/opensearch: dependencies: @@ -1797,7 +1693,7 @@ importers: version: link:../types '@opensearch-project/opensearch': specifier: ^2.11.0 - version: 2.13.0 + version: 2.11.0 axios: specifier: ^1.6.0 version: 1.6.8 @@ -1807,10 +1703,10 @@ importers: devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/questdb: dependencies: @@ -1828,20 +1724,20 @@ importers: version: 3.0.0 pg-promise: specifier: ^11.4.3 - version: 11.10.2(pg-query-stream@4.7.1(pg@8.13.1)) + version: 11.6.0 devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/queue: dependencies: '@aws-sdk/client-sqs': specifier: ^3.332.0 - version: 3.723.0 + version: 3.564.0 '@crowd/common': specifier: workspace:* version: link:../common @@ -1857,10 +1753,10 @@ importers: devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/redis: dependencies: @@ -1875,14 +1771,14 @@ importers: version: link:../types redis: specifier: ^4.6.6 - version: 4.7.0 + version: 4.6.13 devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/snowflake: dependencies: @@ -1891,17 +1787,17 @@ importers: version: link:../logging snowflake-sdk: specifier: ^1.14.0 - version: 1.15.0(asn1.js@5.4.1) + version: 1.15.0(asn1.js@5.4.1)(encoding@0.1.13) devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 tsx: specifier: ^4.7.1 - version: 4.19.2 + version: 4.7.3 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/telemetry: dependencies: @@ -1910,14 +1806,14 @@ importers: version: link:../logging dd-trace: specifier: ^4.38.0 - version: 4.54.0 + version: 4.38.0 devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/temporal: dependencies: @@ -1926,40 +1822,40 @@ importers: version: link:../logging '@temporalio/client': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/common': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 '@temporalio/proto': specifier: ~1.11.1 - version: 1.11.5 + version: 1.11.1 devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 services/libs/types: devDependencies: '@types/node': specifier: ^18.16.3 - version: 18.19.70 + version: 18.19.31 typescript: specifier: ^5.6.3 - version: 5.7.2 + version: 5.6.3 packages: - '@actions/core@1.11.1': - resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} + '@actions/core@1.10.1': + resolution: {integrity: sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==} '@actions/exec@1.1.1': resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} - '@actions/http-client@2.2.3': - resolution: {integrity: sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==} + '@actions/http-client@2.2.1': + resolution: {integrity: sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==} '@actions/io@1.1.3': resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} @@ -1968,9 +1864,16 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@apidevtools/openapi-schemas@2.1.0': + resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} + engines: {node: '>=10'} + '@apidevtools/swagger-methods@3.0.2': resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} + '@aws-crypto/crc32@3.0.0': + resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} + '@aws-crypto/crc32@5.2.0': resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} engines: {node: '>=16.0.0'} @@ -1978,210 +1881,420 @@ packages: '@aws-crypto/crc32c@5.2.0': resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + '@aws-crypto/ie11-detection@3.0.0': + resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} + '@aws-crypto/sha1-browser@5.2.0': resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + '@aws-crypto/sha256-browser@3.0.0': + resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} + '@aws-crypto/sha256-browser@5.2.0': resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + '@aws-crypto/sha256-js@3.0.0': + resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} + '@aws-crypto/sha256-js@5.2.0': resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} engines: {node: '>=16.0.0'} + '@aws-crypto/supports-web-crypto@3.0.0': + resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} + '@aws-crypto/supports-web-crypto@5.2.0': resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + '@aws-crypto/util@3.0.0': + resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} + '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-bedrock-runtime@3.723.0': - resolution: {integrity: sha512-yt4Sw6AA3L4zExZxq3hAIiGyfWuW1097QUZVWkX8oPUvz+/+Uw9Jk29uutFo4I4HE92PiI7G7G1BgQHiWWk5kA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-bedrock-runtime@3.572.0': + resolution: {integrity: sha512-wEMlBSZIsy1tesdyGeKCIZlhtW6CPl6Jzuj30MFAliSo98bqENPN4nldeiwdw1Lfop7/NKxueIFODnb/SgmtOA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/client-comprehend@3.723.0': - resolution: {integrity: sha512-l38rZMThU/Va7r1FwfE6T7R2v5NUpnw0AR46FEPizMwRj1xh5IBn/uFKrm7yooMAVk9GMqSpJXZA5BYDDE31Gw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-comprehend@3.564.0': + resolution: {integrity: sha512-P5d7hSgM2PMkYU4yomh6PE23eRj2sXQjMWh/gSSq2hyroJHPXFvx17C8zNfTTTrJ4xvc3fdYm6KS2iwXimwQZQ==} + engines: {node: '>=14.0.0'} - '@aws-sdk/client-s3@3.723.0': - resolution: {integrity: sha512-uJkSBWeAbEORApCSc8ZlD8nmmJVZnklauSR+GLnG19ZiHQl3ib6IzT4zdnMHrrIXqVttwkyC8eT703ZUDVaacw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-s3@3.689.0': + resolution: {integrity: sha512-qYD1GJEPeLM6H3x8BuAAMXZltvVce5vGiwtZc9uMkBBo3HyFnmPitIPTPfaD1q8LOn/7KFdkY4MJ4e8D3YpV9g==} + engines: {node: '>=16.0.0'} - '@aws-sdk/client-sqs@3.723.0': - resolution: {integrity: sha512-jsTHOrcRp4yW6mrd3bEdb9RQbNFbcAIGbTHUlRek3/UbWYt+jZNBtTqXQd8dTHwLGS4ttWPBqlhxMdShEhBY2Q==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sqs@3.564.0': + resolution: {integrity: sha512-597lRdhqkS4xIwKnvrt7mB2cJzxBL7joJhLj0ZAo9MycK5MBhyaBsWU/1CGlZlWuuSRXtt6y/MBEJmdXSm5MPQ==} + engines: {node: '>=14.0.0'} - '@aws-sdk/client-sso-oidc@3.723.0': - resolution: {integrity: sha512-9IH90m4bnHogBctVna2FnXaIGVORncfdxcqeEIovOxjIJJyHDmEAtA7B91dAM4sruddTbVzOYnqfPVst3odCbA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso-oidc@3.564.0': + resolution: {integrity: sha512-LWBXiwA0qlGhpJx3fbFQagVEyVPoecGtJh3+5hoc+CTVnT00J7T0jLe3kgemvEI9kjhIyDW+MFkq1jCttrGNJw==} + engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.723.0 + '@aws-sdk/credential-provider-node': ^3.564.0 - '@aws-sdk/client-sso@3.723.0': - resolution: {integrity: sha512-r1ddZDb8yPmdofX1gQ4m8oqKozgkgVONLlAuSprGObbyMy8bYt1Psxu+GjnwMmgVu3vlF069PHyW1ndrBiL1zA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso-oidc@3.572.0': + resolution: {integrity: sha512-S6C/S6xYesDakEuzYvlY1DMMKLtKQxdbbygq3hfeG2R0jUt9KpRLsQXK8qrBuVCKa3WcnjN/30hp4g/iUWFU/w==} + engines: {node: '>=16.0.0'} - '@aws-sdk/client-sts@3.723.0': - resolution: {integrity: sha512-YyN8x4MI/jMb4LpHsLf+VYqvbColMK8aZeGWVk2fTFsmt8lpTYGaGC1yybSwGX42mZ4W8ucu8SAYSbUraJZEjA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso-oidc@3.687.0': + resolution: {integrity: sha512-Rdd8kLeTeh+L5ZuG4WQnWgYgdv7NorytKdZsGjiag1D8Wv3PcJvPqqWdgnI0Og717BSXVoaTYaN34FyqFYSx6Q==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.687.0 - '@aws-sdk/core@3.723.0': - resolution: {integrity: sha512-UraXNmvqj3vScSsTkjMwQkhei30BhXlW5WxX6JacMKVtl95c7z0qOXquTWeTalYkFfulfdirUhvSZrl+hcyqTw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso@3.556.0': + resolution: {integrity: sha512-unXdWS7uvHqCcOyC1de+Fr8m3F2vMg2m24GPea0bg7rVGTYmiyn9mhUX11VCt+ozydrw+F50FQwL6OqoqPocmw==} + engines: {node: '>=14.0.0'} - '@aws-sdk/credential-provider-env@3.723.0': - resolution: {integrity: sha512-OuH2yULYUHTVDUotBoP/9AEUIJPn81GQ/YBtZLoo2QyezRJ2QiO/1epVtbJlhNZRwXrToLEDmQGA2QfC8c7pbA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso@3.572.0': + resolution: {integrity: sha512-S+xhScao5MD79AkrcHmFpEDk+CgoiuB/31WFcTcnrTio5TOUONAaT0QyscOIwRp7BZ7Aez7TBM+loTteJ+TQvg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-http@3.723.0': - resolution: {integrity: sha512-DTsKC6xo/kz/ZSs1IcdbQMTgiYbpGTGEd83kngFc1bzmw7AmK92DBZKNZpumf8R/UfSpTcj9zzUUmrWz1kD0eQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso@3.687.0': + resolution: {integrity: sha512-dfj0y9fQyX4kFill/ZG0BqBTLQILKlL7+O5M4F9xlsh2WNuV2St6WtcOg14Y1j5UODPJiJs//pO+mD1lihT5Kw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-ini@3.723.0': - resolution: {integrity: sha512-fWRLksuSG851e7Iu+ltMrQTM7C/5iI9OkxAmCYblcCetAzjTRmMB2arku0Z83D8edIZEQtOJMt5oQ9KNg43pzg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sts@3.556.0': + resolution: {integrity: sha512-TsK3js7Suh9xEmC886aY+bv0KdLLYtzrcmVt6sJ/W6EnDXYQhBuKYFhp03NrN2+vSvMGpqJwR62DyfKe1G0QzQ==} + engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.723.0 + '@aws-sdk/credential-provider-node': ^3.556.0 - '@aws-sdk/credential-provider-node@3.723.0': - resolution: {integrity: sha512-OyLHt+aY+rkuRejigcxviS5RLUBcqbxhDTSNfP8dp9I+1SP610qRLpTIROvtKwXZssFcATpPfgikFtVYRrihXQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sts@3.572.0': + resolution: {integrity: sha512-jCQuH2qkbWoSY4wckLSfzf3OPh7zc7ZckEbIGGVUQar/JVff6EIbpQ+uNG29DDEOpdPPd8rrJsVuUlA/nvJdXA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-process@3.723.0': - resolution: {integrity: sha512-fgupvUjz1+jeoCBA7GMv0L6xEk92IN6VdF4YcFhsgRHlHvNgm7ayaoKQg7pz2JAAhG/3jPX6fp0ASNy+xOhmPA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sts@3.687.0': + resolution: {integrity: sha512-SQjDH8O4XCTtouuCVYggB0cCCrIaTzUZIkgJUpOsIEJBLlTbNOb/BZqUShAQw2o9vxr2rCeOGjAQOYPysW/Pmg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-sso@3.723.0': - resolution: {integrity: sha512-laCnxrk0pgUegU+ib6rj1/Uv51wei+cH8crvBJddybc8EDn7Qht61tCvBwf3o33qUDC+ZWZZewlpSebf+J+tBw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/core@3.556.0': + resolution: {integrity: sha512-vJaSaHw2kPQlo11j/Rzuz0gk1tEaKdz+2ser0f0qZ5vwFlANjt08m/frU17ctnVKC1s58bxpctO/1P894fHLrA==} + engines: {node: '>=14.0.0'} - '@aws-sdk/credential-provider-web-identity@3.723.0': - resolution: {integrity: sha512-tl7pojbFbr3qLcOE6xWaNCf1zEfZrIdSJtOPeSXfV/thFMMAvIjgf3YN6Zo1a6cxGee8zrV/C8PgOH33n+Ev/A==} - engines: {node: '>=18.0.0'} - peerDependencies: - '@aws-sdk/client-sts': ^3.723.0 + '@aws-sdk/core@3.572.0': + resolution: {integrity: sha512-DBmf94qfN0dfaLl5EnNcq6TakWfOtVXYifHoTbX+VBwESj3rlY4W+W4mAnvBgAqDjlLFy7bBljmx+vnjnV73lg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/hash-node@3.374.0': - resolution: {integrity: sha512-5GmU64bwoQhkebMv7NzHa+Mw+p7ZmrKz9e3A6hKClxVGeZFE/+jME46gMuFYzO0iz3WqX4CCzUVOhNbS0x8EMQ==} + '@aws-sdk/core@3.686.0': + resolution: {integrity: sha512-Xt3DV4DnAT3v2WURwzTxWQK34Ew+iiLzoUoguvLaZrVMFOqMMrwVjP+sizqIaHp1j7rGmFcN5I8saXnsDLuQLA==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/credential-provider-env@3.535.0': + resolution: {integrity: sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==} engines: {node: '>=14.0.0'} - deprecated: This package has moved to @smithy/hash-node - '@aws-sdk/middleware-bucket-endpoint@3.723.0': - resolution: {integrity: sha512-OmKSXwSlXyW+zg+xq4hUf7V4VF5/fa4LHu1JzeBlomrKX3/NnqhnJn7760GXoDr16AT+dP7nvv35Ofp91umEAg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-env@3.568.0': + resolution: {integrity: sha512-MVTQoZwPnP1Ev5A7LG+KzeU6sCB8BcGkZeDT1z1V5Wt7GPq0MgFQTSSjhImnB9jqRSZkl1079Bt3PbO6lfIS8g==} + engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-expect-continue@3.723.0': - resolution: {integrity: sha512-w/O0EkIzkiqvGu7U8Ke7tue0V0HYM5dZQrz6nVU+R8T2LddWJ+njEIHU4Wh8aHPLQXdZA5NQumv0xLPdEutykw==} - engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-expect-continue@3.723.0': - resolution: {integrity: sha512-w/O0EkIzkiqvGu7U8Ke7tue0V0HYM5dZQrz6nVU+R8T2LddWJ+njEIHU4Wh8aHPLQXdZA5NQumv0xLPdEutykw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-env@3.686.0': + resolution: {integrity: sha512-osD7lPO8OREkgxPiTWmA1i6XEmOth1uW9HWWj/+A2YGCj1G/t2sHu931w4Qj9NWHYZtbTTXQYVRg+TErALV7nQ==} + engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.723.0': - resolution: {integrity: sha512-JY76mrUCLa0FHeMZp8X9+KK6uEuZaRZaQrlgq6zkXX/3udukH0T3YdFC+Y9uw5ddbiwZ5+KwgmlhnPpiXKfP4g==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.552.0': + resolution: {integrity: sha512-vsmu7Cz1i45pFEqzVb4JcFmAmVnWFNLsGheZc8SCptlqCO5voETrZZILHYIl4cjKkSDk3pblBOf0PhyjqWW6WQ==} + engines: {node: '>=14.0.0'} - '@aws-sdk/middleware-host-header@3.723.0': - resolution: {integrity: sha512-LLVzLvk299pd7v4jN9yOSaWDZDfH0SnBPb6q+FDPaOCMGBY8kuwQso7e/ozIKSmZHRMGO3IZrflasHM+rI+2YQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.568.0': + resolution: {integrity: sha512-gL0NlyI2eW17hnCrh45hZV+qjtBquB+Bckiip9R6DIVRKqYcoILyiFhuOgf2bXeF23gVh6j18pvUvIoTaFWs5w==} + engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-location-constraint@3.723.0': - resolution: {integrity: sha512-inp9tyrdRWjGOMu1rzli8i2gTo0P4X6L7nNRXNTKfyPNZcBimZ4H0H1B671JofSI5isaklVy5r4pvv2VjjLSHw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.686.0': + resolution: {integrity: sha512-xyGAD/f3vR/wssUiZrNFWQWXZvI4zRm2wpHhoHA1cC2fbRMNFYtFn365yw6dU7l00ZLcdFB1H119AYIUZS7xbw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-logger@3.723.0': - resolution: {integrity: sha512-chASQfDG5NJ8s5smydOEnNK7N0gDMyuPbx7dYYcm1t/PKtnVfvWF+DHCTrRC2Ej76gLJVCVizlAJKM8v8Kg3cg==} - engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-logger@3.723.0': - resolution: {integrity: sha512-chASQfDG5NJ8s5smydOEnNK7N0gDMyuPbx7dYYcm1t/PKtnVfvWF+DHCTrRC2Ej76gLJVCVizlAJKM8v8Kg3cg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.564.0': + resolution: {integrity: sha512-kiEfBoKRcbX7I/rjhVGJrTUQ0895ANhPu6KE1GRZW7wc1gIGgKGJ+0tvAqRtQjYX0U9pivEDb0dh16OF9PBFFw==} + engines: {node: '>=14.0.0'} - '@aws-sdk/middleware-recursion-detection@3.723.0': - resolution: {integrity: sha512-7usZMtoynT9/jxL/rkuDOFQ0C2mhXl4yCm67Rg7GNTstl67u7w5WN1aIRImMeztaKlw8ExjoTyo6WTs1Kceh7A==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.572.0': + resolution: {integrity: sha512-05KzbAp77fEiQXqMeodXeMbT83FOqSyBrfSEMz6U8uBXeJCy8zPUjN3acqcbG55/HNJHUvg1cftqzy+fUz71gA==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': 3.572.0 - '@aws-sdk/middleware-sdk-s3@3.723.0': - resolution: {integrity: sha512-wfjOvNJVp8LDWhq4wO5jtSMb8Vgf4tNlR7QTEQfoYc6AGU3WlK5xyUQcpfcpwytEhQTN9u0cJLQpSyXDO+qSCw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.687.0': + resolution: {integrity: sha512-6d5ZJeZch+ZosJccksN0PuXv7OSnYEmanGCnbhUqmUSz9uaVX6knZZfHCZJRgNcfSqg9QC0zsFA/51W5HCUqSQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.687.0 - '@aws-sdk/middleware-sdk-sqs@3.723.0': - resolution: {integrity: sha512-CnOCbwq5VRSawX4FIWO9gb00iEoOKuD0ygbPQZLADNgeMimmJXIEa3eSYUtBYaXafwPIiMh2vffd2mGhx5rVWQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.564.0': + resolution: {integrity: sha512-HXD5ZCXzfcd6cJ/pW8frh8DuYlKaCd/JKmwzuCRUxgxZwbLEeNmyRYvF+D7osETJJZ4VIwgVbpEw1yLqRz1onw==} + engines: {node: '>=14.0.0'} - '@aws-sdk/middleware-ssec@3.723.0': - resolution: {integrity: sha512-Bs+8RAeSMik6ZYCGSDJzJieGsDDh2fRbh1HQG94T8kpwBXVxMYihm6e9Xp2cyl+w9fyyCnh0IdCKChP/DvrdhA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.572.0': + resolution: {integrity: sha512-anlYZnpmVkfp9Gan+LcEkQvmRf/m0KcbR11th8sBEyI5lxMaHKXhnAtC/hEGT7e3L6rgNOrFYTPuSvllITD/Pg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-user-agent@3.723.0': - resolution: {integrity: sha512-AY5H2vD3IRElplBO4DCyRMNnOG/4/cb0tsHyLe1HJy0hdUF6eY5z/VVjKJoKbbDk7ui9euyOBWslXxDyLmyPWg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.687.0': + resolution: {integrity: sha512-Pqld8Nx11NYaBUrVk3bYiGGpLCxkz8iTONlpQWoVWFhSOzlO7zloNOaYbD2XgFjjqhjlKzE91drs/f41uGeCTA==} + engines: {node: '>=16.0.0'} - '@aws-sdk/node-http-handler@3.374.0': - resolution: {integrity: sha512-v1Z6m0wwkf65/tKuhwrtPRqVoOtNkDTRn2MBMtxCwEw+8V8Q+YRFqVgGN+J1n53ktE0G5OYVBux/NHiAjJHReQ==} + '@aws-sdk/credential-provider-process@3.535.0': + resolution: {integrity: sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==} engines: {node: '>=14.0.0'} - deprecated: This package has moved to @smithy/node-http-handler - '@aws-sdk/protocol-http@3.374.0': - resolution: {integrity: sha512-9WpRUbINdGroV3HiZZIBoJvL2ndoWk39OfwxWs2otxByppJZNN14bg/lvCx5e8ggHUti7IBk5rb0nqQZ4m05pg==} - engines: {node: '>=14.0.0'} - deprecated: This package has moved to @smithy/protocol-http + '@aws-sdk/credential-provider-process@3.572.0': + resolution: {integrity: sha512-hXcOytf0BadSm/MMy7MV8mmY0+Jv3mkavsHNBx0R82hw5ollD0I3JyOAaCtdUpztF0I72F8K+q8SpJQZ+EwArw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/region-config-resolver@3.723.0': - resolution: {integrity: sha512-tGF/Cvch3uQjZIj34LY2mg8M2Dr4kYG8VU8Yd0dFnB1ybOEOveIK/9ypUo9ycZpB9oO6q01KRe5ijBaxNueUQg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-process@3.686.0': + resolution: {integrity: sha512-sXqaAgyzMOc+dm4CnzAR5Q6S9OWVHyZjLfW6IQkmGjqeQXmZl24c4E82+w64C+CTkJrFLzH1VNOYp1Hy5gE6Qw==} + engines: {node: '>=16.0.0'} - '@aws-sdk/s3-request-presigner@3.723.0': - resolution: {integrity: sha512-aA/Tfppwa6LzOSsvHxnY2Oc1J3tUUHlltt1HVvMWeBa0xh5kpH/0orCsTpGREBJPDJv0Y7VNRJrmv4rDz0gMGQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.564.0': + resolution: {integrity: sha512-Wv0NV8tDwtydEpsp/kVZ22Z+40bsSBDYgYZ1Uxx+KR8a1PvT6B5FnEtccWTJ371sQG/uqLum7dXSbJq1Qqze1w==} + engines: {node: '>=14.0.0'} - '@aws-sdk/signature-v4-multi-region@3.723.0': - resolution: {integrity: sha512-lJlVAa5Sl589qO8lwMLVUtnlF1Q7I+6k1Iomv2goY9d1bRl4q2N5Pit2qJVr2AMW0sceQXeh23i2a/CKOqVAdg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.572.0': + resolution: {integrity: sha512-iIlnpJiDXFp3XC4hJNSiNurnU24mr3iLB3HoNa9efr944bo6XBl9FQdk3NssIkqzSmgyoB2CEUx/daBHz4XSow==} + engines: {node: '>=16.0.0'} - '@aws-sdk/token-providers@3.723.0': - resolution: {integrity: sha512-hniWi1x4JHVwKElANh9afKIMUhAutHVBRD8zo6usr0PAoj+Waf220+1ULS74GXtLXAPCiNXl5Og+PHA7xT8ElQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.687.0': + resolution: {integrity: sha512-N1YCoE7DovIRF2ReyRrA4PZzF0WNi4ObPwdQQkVxhvSm7PwjbWxrfq7rpYB+6YB1Uq3QPzgVwUFONE36rdpxUQ==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.556.0': + resolution: {integrity: sha512-R/YAL8Uh8i+dzVjzMnbcWLIGeeRi2mioHVGnVF+minmaIkCiQMZg2HPrdlKm49El+RljT28Nl5YHRuiqzEIwMA==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.568.0': + resolution: {integrity: sha512-ZJSmTmoIdg6WqAULjYzaJ3XcbgBzVy36lir6Y0UBMRGaxDgos1AARuX6EcYzXOl+ksLvxt/xMQ+3aYh1LWfKSw==} + engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.723.0 + '@aws-sdk/client-sts': ^3.568.0 - '@aws-sdk/types@3.723.0': - resolution: {integrity: sha512-LmK3kwiMZG1y5g3LGihT9mNkeNOmwEyPk6HGcJqh0wOSV4QpWoKu2epyKE4MLQNUUlz2kOVbVbOrwmI6ZcteuA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-web-identity@3.686.0': + resolution: {integrity: sha512-40UqCpPxyHCXDP7CGd9JIOZDgDZf+u1OyLaGBpjQJlz1HYuEsIWnnbTe29Yg3Ah/Zc3g4NBWcUdlGVotlnpnDg==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.686.0 + + '@aws-sdk/hash-node@3.374.0': + resolution: {integrity: sha512-5GmU64bwoQhkebMv7NzHa+Mw+p7ZmrKz9e3A6hKClxVGeZFE/+jME46gMuFYzO0iz3WqX4CCzUVOhNbS0x8EMQ==} + engines: {node: '>=14.0.0'} + deprecated: This package has moved to @smithy/hash-node + + '@aws-sdk/middleware-bucket-endpoint@3.686.0': + resolution: {integrity: sha512-6qCoWI73/HDzQE745MHQUYz46cAQxHCgy1You8MZQX9vHAQwqBnkcsb2hGp7S6fnQY5bNsiZkMWVQ/LVd2MNjg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-expect-continue@3.686.0': + resolution: {integrity: sha512-5yYqIbyhLhH29vn4sHiTj7sU6GttvLMk3XwCmBXjo2k2j3zHqFUwh9RyFGF9VY6Z392Drf/E/cl+qOGypwULpg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-flexible-checksums@3.689.0': + resolution: {integrity: sha512-6VxMOf3mgmAgg6SMagwKj5pAe+putcx2F2odOAWviLcobFpdM/xK9vNry7p6kY+RDNmSlBvcji9wnU59fjV74Q==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-host-header@3.535.0': + resolution: {integrity: sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-host-header@3.567.0': + resolution: {integrity: sha512-zQHHj2N3in9duKghH7AuRNrOMLnKhW6lnmb7dznou068DJtDr76w475sHp2TF0XELsOGENbbBsOlN/S5QBFBVQ==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-host-header@3.686.0': + resolution: {integrity: sha512-+Yc6rO02z+yhFbHmRZGvEw1vmzf/ifS9a4aBjJGeVVU+ZxaUvnk+IUZWrj4YQopUQ+bSujmMUzJLXSkbDq7yuw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-location-constraint@3.686.0': + resolution: {integrity: sha512-pCLeZzt5zUGY3NbW4J/5x3kaHyJEji4yqtoQcUlJmkoEInhSxJ0OE8sTxAfyL3nIOF4yr6L2xdaLCqYgQT8Aog==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-logger@3.535.0': + resolution: {integrity: sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-logger@3.568.0': + resolution: {integrity: sha512-BinH72RG7K3DHHC1/tCulocFv+ZlQ9SrPF9zYT0T1OT95JXuHhB7fH8gEABrc6DAtOdJJh2fgxQjPy5tzPtsrA==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-logger@3.686.0': + resolution: {integrity: sha512-cX43ODfA2+SPdX7VRxu6gXk4t4bdVJ9pkktbfnkE5t27OlwNfvSGGhnHrQL8xTOFeyQ+3T+oowf26gf1OI+vIg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.535.0': + resolution: {integrity: sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.567.0': + resolution: {integrity: sha512-rFk3QhdT4IL6O/UWHmNdjJiURutBCy+ogGqaNHf/RELxgXH3KmYorLwCe0eFb5hq8f6vr3zl4/iH7YtsUOuo1w==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.686.0': + resolution: {integrity: sha512-jF9hQ162xLgp9zZ/3w5RUNhmwVnXDBlABEUX8jCgzaFpaa742qR/KKtjjZQ6jMbQnP+8fOCSXFAVNMU+s6v81w==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.556.0': + resolution: {integrity: sha512-4W/dnxqj1B6/uS/5Z+3UHaqDDGjNPgEVlqf5d3ToOFZ31ZfpANwhcCmyX39JklC4aolCEi9renQ5wHnTCC8K8g==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.687.0': + resolution: {integrity: sha512-YGHYqiyRiNNucmvLrfx3QxIkjSDWR/+cc72bn0lPvqFUQBRHZgmYQLxVYrVZSmRzzkH2FQ1HsZcXhOafLbq4vQ==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-sdk-sqs@3.552.0': + resolution: {integrity: sha512-s3xy3FJSj5Bpxfk8o48SQ8DCDqZ03V3nlpblrFpCbOfdMFkxkdFkTE3F+bx+uAL+iFfW46lHvsukTb95AZJzZQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-ssec@3.686.0': + resolution: {integrity: sha512-zJXml/CpVHFUdlGQqja87vNQ3rPB5SlDbfdwxlj1KBbjnRRwpBtxxmOlWRShg8lnVV6aIMGv95QmpIFy4ayqnQ==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-user-agent@3.540.0': + resolution: {integrity: sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-user-agent@3.572.0': + resolution: {integrity: sha512-R4bBbLp1ywtF1kJoOX1juDMztKPWeQHNj6XuTvtruFDn1RdfnBlbM3+9rguRfH5s4V+xfl8SSWchnyo2cI00xg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-user-agent@3.687.0': + resolution: {integrity: sha512-nUgsKiEinyA50CaDXojAkOasAU3Apdg7Qox6IjNUC4ZjgOu7QWsCDB5N28AYMUt06cNYeYQdfMX1aEzG85a1Mg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/node-http-handler@3.374.0': + resolution: {integrity: sha512-v1Z6m0wwkf65/tKuhwrtPRqVoOtNkDTRn2MBMtxCwEw+8V8Q+YRFqVgGN+J1n53ktE0G5OYVBux/NHiAjJHReQ==} + engines: {node: '>=14.0.0'} + deprecated: This package has moved to @smithy/node-http-handler + + '@aws-sdk/protocol-http@3.374.0': + resolution: {integrity: sha512-9WpRUbINdGroV3HiZZIBoJvL2ndoWk39OfwxWs2otxByppJZNN14bg/lvCx5e8ggHUti7IBk5rb0nqQZ4m05pg==} + engines: {node: '>=14.0.0'} + deprecated: This package has moved to @smithy/protocol-http + + '@aws-sdk/region-config-resolver@3.535.0': + resolution: {integrity: sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/region-config-resolver@3.572.0': + resolution: {integrity: sha512-xkZMIxek44F4YW5r9otD1O5Y/kDkgAb6JNJePkP1qPVojrkCmin3OFYAOZgGm+T4DZAQ5rWhpaqTAWmnRumYfw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/region-config-resolver@3.686.0': + resolution: {integrity: sha512-6zXD3bSD8tcsMAVVwO1gO7rI1uy2fCD3czgawuPGPopeLiPpo6/3FoUWCQzk2nvEhj7p9Z4BbjwZGSlRkVrXTw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/s3-request-presigner@3.564.0': + resolution: {integrity: sha512-SLsh0pIYeFqzyG5VBdBM8mtXUsj1ZF2TTA1XABb/gP6WGthePVmDkKklmsmhIyJs91DxwrU6X2HH1d6RFYwQ9A==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.556.0': + resolution: {integrity: sha512-bWDSK0ggK7QzAOmPZGv29UAIZocL1MNY7XyOvm3P3P1U3tFMoIBilQQBLabXyHoZ9J3Ik0Vv4n95htUhRQ35ow==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.687.0': + resolution: {integrity: sha512-vdOQHCRHJPX9mT8BM6xOseazHD6NodvHl9cyF5UjNtLn+gERRJEItIA9hf0hlt62odGD8Fqp+rFRuqdmbNkcNw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/token-providers@3.564.0': + resolution: {integrity: sha512-Kk5ixcl9HjqwzfBJZGQAtsqwKa7Z8P7Mdug837BG8zCJbhf7wwNsmItzXTiAlpVrDZyT8P1yWIxsLOS1YUtmow==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/token-providers@3.572.0': + resolution: {integrity: sha512-IkSu8p32tQZhKqwmfLZLGfYwNhsS/HUQBLnDMHJlr9VifmDqlTurcr+DwMCaMimuFhcLeb45vqTymKf/ro/OBw==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sso-oidc': 3.572.0 + + '@aws-sdk/token-providers@3.686.0': + resolution: {integrity: sha512-9oL4kTCSePFmyKPskibeiOXV6qavPZ63/kXM9Wh9V6dTSvBtLeNnMxqGvENGKJcTdIgtoqyqA6ET9u0PJ5IRIg==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sso-oidc': ^3.686.0 + + '@aws-sdk/types@3.535.0': + resolution: {integrity: sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/types@3.567.0': + resolution: {integrity: sha512-JBznu45cdgQb8+T/Zab7WpBmfEAh77gsk99xuF4biIb2Sw1mdseONdoGDjEJX57a25TzIv/WUJ2oABWumckz1A==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/types@3.686.0': + resolution: {integrity: sha512-xFnrb3wxOoJcW2Xrh63ZgFo5buIu9DF7bOHnwoUxHdNpUXicUh0AHw85TjXxyxIAd0d1psY/DU7QHoNI3OswgQ==} + engines: {node: '>=16.0.0'} '@aws-sdk/url-parser@3.374.0': resolution: {integrity: sha512-RC3yEj4iqw5vbCmR4IQ3rhmFQilwHtWO1mZ9kRTUxfJCge3TVlrZzj9PRW3hxlYKdu3xZjSvCgX3ip8SFKXtbw==} deprecated: This package has moved to @smithy/url-parser - '@aws-sdk/util-arn-parser@3.723.0': - resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-arn-parser@3.535.0': + resolution: {integrity: sha512-smVo29nUPAOprp8Z5Y3GHuhiOtw6c8/EtLCm5AVMtRsTPw4V414ZXL2H66tzmb5kEeSzQlbfBSBEdIFZoxO9kg==} + engines: {node: '>=14.0.0'} - '@aws-sdk/util-endpoints@3.723.0': - resolution: {integrity: sha512-vR1ZfAUvrTtdA1Q78QxgR8TFgi2gzk+N4EmNjbyR5hHmeOXuaKRdhbNQAzLPYVe1aNUpoiy9cl8mWkg9SrNHBw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-arn-parser@3.679.0': + resolution: {integrity: sha512-CwzEbU8R8rq9bqUFryO50RFBlkfufV9UfMArHPWlo+lmsC+NlSluHQALoj6Jkq3zf5ppn1CN0c1DDLrEqdQUXg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-format-url@3.723.0': - resolution: {integrity: sha512-70+xUrdcnencPlCdV9XkRqmgj0vLDb8vm4mcEsgabg5QQ3S80KM0GEuhBAIGMkBWwNQTzCgQy2s7xOUlJPbu+g==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-endpoints@3.540.0': + resolution: {integrity: sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw==} + engines: {node: '>=14.0.0'} - '@aws-sdk/util-locate-window@3.723.0': - resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-endpoints@3.572.0': + resolution: {integrity: sha512-AIEC7ItIWBqkJLtqcSd0HG8tvdh3zVwqnKPHNrcfFay0Xonqx3p/qTCDwGosh5CM5hDGzyOSRA5PkacEDBTz9w==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/util-endpoints@3.686.0': + resolution: {integrity: sha512-7msZE2oYl+6QYeeRBjlDgxQUhq/XRky3cXE0FqLFs2muLS7XSuQEXkpOXB3R782ygAP6JX0kmBxPTLurRTikZg==} + engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-browser@3.723.0': - resolution: {integrity: sha512-Wh9I6j2jLhNFq6fmXydIpqD1WyQLyTfSxjW9B+PXSnPyk3jtQW8AKQur7p97rO8LAUzVI0bv8kb3ZzDEVbquIg==} + '@aws-sdk/util-format-url@3.535.0': + resolution: {integrity: sha512-ElbNkm0bddu53CuW44Iuux1ZbTV50fydbSh/4ypW3LrmUvHx193ogj0HXQ7X26kmmo9rXcsrLdM92yIeTjidVg==} + engines: {node: '>=14.0.0'} - '@aws-sdk/util-user-agent-node@3.723.0': - resolution: {integrity: sha512-uCtW5sGq8jCwA9w57TvVRIwNnPbSDD1lJaTIgotf7Jit2bTrYR64thgMy/drL5yU5aHOdFIQljqn/5aDXLtTJw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-locate-window@3.535.0': + resolution: {integrity: sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/util-user-agent-browser@3.535.0': + resolution: {integrity: sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==} + + '@aws-sdk/util-user-agent-browser@3.567.0': + resolution: {integrity: sha512-cqP0uXtZ7m7hRysf3fRyJwcY1jCgQTpJy7BHB5VpsE7DXlXHD5+Ur5L42CY7UrRPrB6lc6YGFqaAOs5ghMcLyA==} + + '@aws-sdk/util-user-agent-browser@3.686.0': + resolution: {integrity: sha512-YiQXeGYZegF1b7B2GOR61orhgv79qmI0z7+Agm3NXLO6hGfVV3kFUJbXnjtH1BgWo5hbZYW7HQ2omGb3dnb6Lg==} + + '@aws-sdk/util-user-agent-node@3.535.0': + resolution: {integrity: sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==} + engines: {node: '>=14.0.0'} peerDependencies: aws-crt: '>=1.0.0' peerDependenciesMeta: aws-crt: optional: true - '@aws-sdk/xml-builder@3.723.0': - resolution: {integrity: sha512-5xK2SqGU1mzzsOeemy7cy3fGKxR1sEpUs4pEiIjaT0OIvU+fZaDVUEYWOqsgns6wI90XZEQJlXtI8uAHX/do5Q==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-user-agent-node@3.568.0': + resolution: {integrity: sha512-NVoZoLnKF+eXPBvXg+KqixgJkPSrerR6Gqmbjwqbv14Ini+0KNKB0/MXas1mDGvvEgtNkHI/Cb9zlJ3KXpti2A==} + engines: {node: '>=16.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/util-user-agent-node@3.687.0': + resolution: {integrity: sha512-idkP6ojSTZ4ek1pJ8wIN7r9U3KR5dn0IkJn3KQBXQ58LWjkRqLtft2vxzdsktWwhPKjjmIKl1S0kbvqLawf8XQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/util-utf8-browser@3.259.0': + resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} + + '@aws-sdk/xml-builder@3.686.0': + resolution: {integrity: sha512-k0z5b5dkYSuOHY0AOZ4iyjcGBeVL9lWsQNF4+c+1oK3OW4fRWl/bNa1soMRMpangsHPzgyn/QkzuDbl7qR4qrw==} + engines: {node: '>=16.0.0'} '@azure/abort-controller@1.1.0': resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} @@ -2195,14 +2308,10 @@ packages: resolution: {integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==} engines: {node: '>=18.0.0'} - '@azure/core-http@3.0.5': - resolution: {integrity: sha512-T8r2q/c3DxNu6mEJfPuJtptUVqwchxzjj32gKcnMi06rdiVONS9rar7kT9T2Am+XvER7uOzpsP79WsqNbdgdWg==} - engines: {node: '>=18.0.0'} - deprecated: This package is no longer supported. Please refer to https://github.com/Azure/azure-sdk-for-js/blob/490ce4dfc5b98ba290dee3b33a6d0876c5f138e2/sdk/core/README.md - '@azure/core-http@3.0.5': - resolution: {integrity: sha512-T8r2q/c3DxNu6mEJfPuJtptUVqwchxzjj32gKcnMi06rdiVONS9rar7kT9T2Am+XvER7uOzpsP79WsqNbdgdWg==} - engines: {node: '>=18.0.0'} - deprecated: This package is no longer supported. Please refer to https://github.com/Azure/azure-sdk-for-js/blob/490ce4dfc5b98ba290dee3b33a6d0876c5f138e2/sdk/core/README.md + '@azure/core-http@3.0.4': + resolution: {integrity: sha512-Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==} + engines: {node: '>=14.0.0'} + deprecated: This package is no longer supported. Please migrate to use @azure/core-rest-pipeline '@azure/core-lro@2.7.2': resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} @@ -2228,156 +2337,162 @@ packages: resolution: {integrity: sha512-BzBZJobMoDyjJsPRMLNHvqHycTGrT8R/dtcTx9qUFcqwSRfGVK9A/cZ7Nx38UQydT9usZGbaDCN75QRNjezSAA==} engines: {node: '>=14.0.0'} - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + '@babel/code-frame@7.24.2': + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.3': - resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} + '@babel/compat-data@7.24.4': + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + '@babel/core@7.24.4': + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} '@babel/generator@7.17.7': resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.3': - resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} + '@babel/generator@7.24.4': + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + '@babel/helper-annotate-as-pure@7.22.5': + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.9': - resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} + '@babel/helper-compilation-targets@7.23.6': + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.24.4': + resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.26.3': - resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} + '@babel/helper-create-regexp-features-plugin@7.22.15': + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + '@babel/helper-define-polyfill-provider@0.6.2': + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + '@babel/helper-member-expression-to-functions@7.23.0': + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-module-imports@7.24.3': + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + '@babel/helper-module-transforms@7.23.3': + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + '@babel/helper-optimise-call-expression@7.22.5': + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + '@babel/helper-plugin-utils@7.24.0': + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} + '@babel/helper-remap-async-to-generator@7.22.20': + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.9': - resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} + '@babel/helper-replace-supers@7.24.1': + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} + '@babel/helper-simple-access@7.22.5': + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-split-export-declaration@7.22.6': + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-identifier@7.22.20': + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} + '@babel/helper-validator-option@7.23.5': + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + '@babel/helper-wrap-function@7.22.20': + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.3': - resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} - engines: {node: '>=6.0.0'} - hasBin: true + '@babel/helpers@7.24.4': + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + engines: {node: '>=6.9.0'} - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} + '@babel/highlight@7.24.2': + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} + '@babel/parser@7.24.4': + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4': + resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2388,26 +2503,104 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3': + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.24.1': + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.24.1': + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.24.1': + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + '@babel/plugin-syntax-typescript@7.24.1': + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2418,314 +2611,302 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} + '@babel/plugin-transform-arrow-functions@7.24.1': + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.25.9': - resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} + '@babel/plugin-transform-async-generator-functions@7.24.3': + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} + '@babel/plugin-transform-async-to-generator@7.24.1': + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.25.9': - resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} + '@babel/plugin-transform-block-scoped-functions@7.24.1': + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} + '@babel/plugin-transform-block-scoping@7.24.4': + resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} + '@babel/plugin-transform-class-properties@7.24.1': + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} + '@babel/plugin-transform-class-static-block@7.24.4': + resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.25.9': - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} + '@babel/plugin-transform-classes@7.24.1': + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} + '@babel/plugin-transform-computed-properties@7.24.1': + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.25.9': - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} + '@babel/plugin-transform-destructuring@7.24.1': + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} + '@babel/plugin-transform-dotall-regex@7.24.1': + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} + '@babel/plugin-transform-duplicate-keys@7.24.1': + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} + '@babel/plugin-transform-dynamic-import@7.24.1': + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} + '@babel/plugin-transform-exponentiation-operator@7.24.1': + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} + '@babel/plugin-transform-export-namespace-from@7.24.1': + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.25.9': - resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} + '@babel/plugin-transform-for-of@7.24.1': + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} + '@babel/plugin-transform-function-name@7.24.1': + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.25.9': - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} + '@babel/plugin-transform-json-strings@7.24.1': + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + '@babel/plugin-transform-literals@7.24.1': + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} + '@babel/plugin-transform-logical-assignment-operators@7.24.1': + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} + '@babel/plugin-transform-member-expression-literals@7.24.1': + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} + '@babel/plugin-transform-modules-amd@7.24.1': + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.26.3': - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} + '@babel/plugin-transform-modules-commonjs@7.24.1': + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} + '@babel/plugin-transform-modules-systemjs@7.24.1': + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} + '@babel/plugin-transform-modules-umd@7.24.1': + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.25.9': - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} + '@babel/plugin-transform-new-target@7.24.1': + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': - resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + '@babel/plugin-transform-numeric-separator@7.24.1': + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + '@babel/plugin-transform-object-rest-spread@7.24.1': + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.25.9': - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} + '@babel/plugin-transform-object-super@7.24.1': + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + '@babel/plugin-transform-optional-catch-binding@7.24.1': + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + '@babel/plugin-transform-optional-chaining@7.24.1': + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.25.9': - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + '@babel/plugin-transform-parameters@7.24.1': + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.9': - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + '@babel/plugin-transform-private-methods@7.24.1': + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.25.9': - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + '@babel/plugin-transform-private-property-in-object@7.24.1': + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.25.9': - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} + '@babel/plugin-transform-property-literals@7.24.1': + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.25.9': - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + '@babel/plugin-transform-regenerator@7.24.1': + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} + '@babel/plugin-transform-reserved-words@7.24.1': + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + '@babel/plugin-transform-shorthand-properties@7.24.1': + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.25.9': - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + '@babel/plugin-transform-spread@7.24.1': + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + '@babel/plugin-transform-sticky-regex@7.24.1': + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.25.9': - resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} + '@babel/plugin-transform-template-literals@7.24.1': + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.25.9': - resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} + '@babel/plugin-transform-typeof-symbol@7.24.1': + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.26.3': - resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==} + '@babel/plugin-transform-typescript@7.24.4': + resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} + '@babel/plugin-transform-unicode-escapes@7.24.1': + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} + '@babel/plugin-transform-unicode-property-regex@7.24.1': + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + '@babel/plugin-transform-unicode-regex@7.24.1': + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} + '@babel/plugin-transform-unicode-sets-regex@7.24.1': + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.26.0': - resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} + '@babel/preset-env@7.24.4': + resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2735,34 +2916,37 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-typescript@7.26.0': - resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} + '@babel/preset-typescript@7.24.1': + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.26.0': - resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + '@babel/regjsgen@0.8.0': + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + + '@babel/runtime@7.24.4': + resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + '@babel/template@7.24.0': + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} '@babel/traverse@7.23.2': resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.4': - resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} + '@babel/traverse@7.24.1': + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} '@babel/types@7.17.0': resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.3': - resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + '@babel/types@7.24.0': + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} '@colors/colors@1.6.0': @@ -2776,219 +2960,210 @@ packages: '@dabh/diagnostics@2.0.3': resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - '@datadog/libdatadog@0.3.0': - resolution: {integrity: sha512-TbP8+WyXfh285T17FnLeLUOPl4SbkRYMqKgcmknID2mXHNrbt5XJgW9bnDgsrrtu31Q7FjWWw2WolgRLWyzLRA==} - - '@datadog/native-appsec@8.3.0': - resolution: {integrity: sha512-RYHbSJ/MwJcJaLzaCaZvUyNLUKFbMshayIiv4ckpFpQJDiq1T8t9iM2k7008s75g1vRuXfsRNX7MaLn4aoFuWA==} - engines: {node: '>=16'} + '@datadog/native-appsec@7.1.1': + resolution: {integrity: sha512-1XVrCY4g1ArN79SQANMtiIkaxKSPfgdAGv0VAM4Pz+NQuxKfl+2xQPXjQPm87LI1KQIO6MU6qzv3sUUSesb9lA==} + engines: {node: '>=14'} - '@datadog/native-iast-rewriter@2.6.1': - resolution: {integrity: sha512-zv7cr/MzHg560jhAnHcO7f9pLi4qaYrBEcB+Gla0xkVouYSDsp8cGXIGG4fiGdAMHdt7SpDNS6+NcEAqD/v8Ig==} + '@datadog/native-iast-rewriter@2.3.1': + resolution: {integrity: sha512-3pmt5G1Ai/+MPyxP7wBerIu/zH/BnAHxEu/EAMr+77IMpK5m7THPDUoWrPRCWcgFBfn0pK5DR7gRItG0wX3e0g==} engines: {node: '>= 10'} - '@datadog/native-iast-taint-tracking@3.2.0': - resolution: {integrity: sha512-Mc6FzCoyvU5yXLMsMS9yKnEqJMWoImAukJXolNWCTm+JQYCMf2yMsJ8pBAm7KyZKliamM9rCn7h7Tr2H3lXwjA==} + '@datadog/native-iast-taint-tracking@2.1.0': + resolution: {integrity: sha512-DjZ6itJcjLrTdKk2vP96hak2xS0ABd0NIB8poZG3OBQU5efkzu8JOQoxbIKMklG/0P2zh7EquvGP88PdVXT9aA==} - '@datadog/native-metrics@3.1.0': - resolution: {integrity: sha512-yOBi4x0OQRaGNPZ2bx9TGvDIgEdQ8fkudLTFAe7gEM1nAlvFmbE5YfpH8WenEtTSEBwojSau06m2q7axtEEmCg==} - engines: {node: '>=16'} + '@datadog/native-metrics@2.0.0': + resolution: {integrity: sha512-YklGVwUtmKGYqFf1MNZuOHvTYdKuR4+Af1XkWcMD8BwOAjxmd9Z+97328rCOY8TFUJzlGUPaXzB8j2qgG/BMwA==} + engines: {node: '>=12'} - '@datadog/pprof@5.4.1': - resolution: {integrity: sha512-IvpL96e/cuh8ugP5O8Czdup7XQOLHeIDgM5pac5W7Lc1YzGe5zTtebKFpitvb1CPw1YY+1qFx0pWGgKP2kOfHg==} - engines: {node: '>=16'} + '@datadog/pprof@5.3.0': + resolution: {integrity: sha512-53z2Q3K92T6Pf4vz4Ezh8kfkVEvLzbnVqacZGgcbkP//q0joFzO8q00Etw1S6NdnCX0XmX08ULaF4rUI5r14mw==} + engines: {node: '>=14'} '@datadog/sketches-js@2.1.1': resolution: {integrity: sha512-d5RjycE+MObE/hU+8OM5Zp4VjTwiPLRa8299fj7muOmR16fb942z8byoMbCErnGh0lBevvgkGrLclQDvINbIyg==} - '@discordjs/builders@1.10.0': - resolution: {integrity: sha512-ikVZsZP+3shmVJ5S1oM+7SveUCK3L9fTyfA8aJ7uD9cNQlTqF+3Irbk2Y22KXTb3C3RNUahRkSInClJMkHrINg==} + '@discordjs/builders@1.7.0': + resolution: {integrity: sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw==} engines: {node: '>=16.11.0'} '@discordjs/collection@1.5.3': resolution: {integrity: sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==} engines: {node: '>=16.11.0'} - '@discordjs/collection@2.1.1': - resolution: {integrity: sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==} + '@discordjs/collection@2.0.0': + resolution: {integrity: sha512-YTWIXLrf5FsrLMycpMM9Q6vnZoR/lN2AWX23/Cuo8uOOtS8eHB2dyQaaGnaF8aZPYnttf2bkLMcXn/j6JUOi3w==} engines: {node: '>=18'} - '@discordjs/formatters@0.6.0': - resolution: {integrity: sha512-YIruKw4UILt/ivO4uISmrGq2GdMY6EkoTtD0oS0GvkJFRZbTSdPhzYiUILbJ/QslsvC9H9nTgGgnarnIl4jMfw==} + '@discordjs/formatters@0.3.3': + resolution: {integrity: sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w==} engines: {node: '>=16.11.0'} - '@discordjs/rest@2.4.2': - resolution: {integrity: sha512-9bOvXYLQd5IBg/kKGuEFq3cstVxAMJ6wMxO2U3wjrgO+lHv8oNCT+BBRpuzVQh7BoXKvk/gpajceGvQUiRoJ8g==} - engines: {node: '>=18'} + '@discordjs/rest@2.2.0': + resolution: {integrity: sha512-nXm9wT8oqrYFRMEqTXQx9DUTeEtXUDMmnUKIhZn6O2EeDY9VCdwj23XCPq7fkqMPKdF7ldAfeVKyxxFdbZl59A==} + engines: {node: '>=16.11.0'} - '@discordjs/util@1.1.1': - resolution: {integrity: sha512-eddz6UnOBEB1oITPinyrB2Pttej49M9FZQY8NxgEvc3tq6ZICZ19m70RsmzRdDHk80O9NoYN/25AqJl8vPVf/g==} - engines: {node: '>=18'} + '@discordjs/util@1.0.2': + resolution: {integrity: sha512-IRNbimrmfb75GMNEjyznqM1tkI7HrZOf14njX7tCAAUetyZM1Pr8hX/EK2lxBCOgWDRmigbp24fD1hdMfQK5lw==} + engines: {node: '>=16.11.0'} - '@discordjs/ws@1.2.0': - resolution: {integrity: sha512-QH5CAFe3wHDiedbO+EI3OOiyipwWd+Q6BdoFZUw/Wf2fw5Cv2fgU/9UEtJRmJa9RecI+TAhdGPadMaEIur5yJg==} + '@discordjs/ws@1.0.2': + resolution: {integrity: sha512-+XI82Rm2hKnFwAySXEep4A7Kfoowt6weO6381jgW+wVdTpMS/56qCvoXyFRY0slcv7c/U8My2PwIB2/wEaAh7Q==} engines: {node: '>=16.11.0'} - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} - engines: {node: '>=18'} + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} - engines: {node: '>=18'} + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} - engines: {node: '>=18'} + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} - engines: {node: '>=18'} + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} - engines: {node: '>=18'} + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} - engines: {node: '>=18'} + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} - engines: {node: '>=18'} + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} - engines: {node: '>=18'} + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} - engines: {node: '>=18'} + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} - engines: {node: '>=18'} + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} - engines: {node: '>=18'} + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} - engines: {node: '>=18'} + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} - engines: {node: '>=18'} + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} - engines: {node: '>=18'} + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} - engines: {node: '>=18'} + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} - engines: {node: '>=18'} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} - engines: {node: '>=18'} + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} - engines: {node: '>=18'} + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} - engines: {node: '>=18'} + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} - engines: {node: '>=18'} + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} - engines: {node: '>=18'} + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} - engines: {node: '>=18'} + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@exodus/schemasafe@1.3.0': @@ -2998,16 +3173,16 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@gitbeaker/core@40.6.0': - resolution: {integrity: sha512-tVVm8ZPrS9YCHEcuPV8vD1IcEf9POpdygWo+kPvkK7LcC36EERVcXagb8snEaGgGLfUaVQh8qP4iDZgPnP3YBQ==} + '@gitbeaker/core@40.2.1': + resolution: {integrity: sha512-4RPpip70/NPo/3fx5TDrF88AwQxqK4OxzsheZnadhFM5O7YBp0lfkIH2c6zeMEwIRn2M5PleNK5mAe3qr00RQg==} engines: {node: '>=18.20.0'} - '@gitbeaker/requester-utils@40.6.0': - resolution: {integrity: sha512-DQu2l3iXtB+8e1Ye2ekeUHABt4mGMRTLtuVWtFqf74sqJnerHNOxVOjPn19qu/nKdvKR3ZLwSRTtPzEsxgcShg==} + '@gitbeaker/requester-utils@40.2.1': + resolution: {integrity: sha512-GMawAsDEDioDxT4g5hFvzx7bwQq89s8vrf/jffRi35mcWgbtT1yr1m2QzURALsmsNC+H3ktRUCm7f9XtieNDwg==} engines: {node: '>=18.20.0'} - '@gitbeaker/rest@40.6.0': - resolution: {integrity: sha512-sAwYJclU3NlB/gdxqhH6Hnmy5LWzvW7D3W33eShQEnxMhM0VjnFHPHcgJLQCIux3hMiub1uGtTw1hBJTxDc2mQ==} + '@gitbeaker/rest@40.2.1': + resolution: {integrity: sha512-XVaNKa9ahqppSvyNsSayC6TILe4FvBla8zxytCpxZMjrLYLxMt7ny/QCltp9tP8ElDSITALsrKo/wLjab36YEQ==} engines: {node: '>=18.20.0'} '@google-cloud/common@3.10.0': @@ -3042,12 +3217,12 @@ packages: resolution: {integrity: sha512-3t5UF3SZ14Bw2kcBHubCai6EIugU2GnQOstYWVSFuoO8IJ94RAaIOPq/dtexvQbUTpBTAGpd5smVR9WPL1mJVw==} engines: {node: '>=10'} - '@google-cloud/storage@7.15.0': - resolution: {integrity: sha512-/j/+8DFuEOo33fbdX0V5wjooOoFahEaMEdImHBmM2tH9MPHJYNtmXOf2sGUmZmiufSukmBEvdlzYgDkkgeBiVQ==} + '@google-cloud/storage@7.14.0': + resolution: {integrity: sha512-H41bPL2cMfSi4EEnFzKvg7XSb7T67ocSXrmF7MPjfgFB0L6CKGzfIYJheAZi1iqXjz6XaCT1OBf6HCG5vDBTOQ==} engines: {node: '>=14'} - '@grpc/grpc-js@1.12.5': - resolution: {integrity: sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==} + '@grpc/grpc-js@1.11.3': + resolution: {integrity: sha512-i9UraDzFHMR+Iz/MhFLljT+fCpgxZ3O6CxwGJ8YuNYHJItIHUzKJpW2LvoFZNnGPwqc9iWy9RAucxV0JoR9aUQ==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -3055,8 +3230,8 @@ packages: engines: {node: '>=6'} hasBin: true - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead @@ -3076,12 +3251,8 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@isaacs/ttlcache@1.4.1': - resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} - engines: {node: '>=12'} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -3095,8 +3266,8 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -3116,14 +3287,14 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.1.1': - resolution: {integrity: sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==} + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/util@1.5.0': - resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + '@jsonjoy.com/util@1.3.0': + resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -3172,12 +3343,12 @@ packages: resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} engines: {node: '>= 18'} - '@octokit/core@6.1.3': - resolution: {integrity: sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==} + '@octokit/core@6.1.2': + resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} engines: {node: '>= 18'} - '@octokit/endpoint@10.1.2': - resolution: {integrity: sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==} + '@octokit/endpoint@10.1.1': + resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} engines: {node: '>= 18'} '@octokit/endpoint@6.0.12': @@ -3194,8 +3365,8 @@ packages: resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} engines: {node: '>= 14'} - '@octokit/graphql@8.1.2': - resolution: {integrity: sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==} + '@octokit/graphql@8.1.1': + resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} engines: {node: '>= 18'} '@octokit/oauth-authorization-url@4.3.3': @@ -3228,8 +3399,8 @@ packages: resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} engines: {node: '>= 14'} - '@octokit/request-error@6.1.6': - resolution: {integrity: sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==} + '@octokit/request-error@6.1.4': + resolution: {integrity: sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==} engines: {node: '>= 18'} '@octokit/request@5.6.3': @@ -3239,12 +3410,12 @@ packages: resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} engines: {node: '>= 14'} - '@octokit/request@9.1.4': - resolution: {integrity: sha512-tMbOwGm6wDII6vygP3wUVqFTw3Aoo0FnVQyhihh8vVq12uO3P+vQZeo2CKMpWtPSogpACD0yyZAlVlQnjW71DA==} + '@octokit/request@9.1.3': + resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} engines: {node: '>= 18'} - '@octokit/types@13.6.2': - resolution: {integrity: sha512-WpbZfZUcZU77DrSW4wbsSgTPfKcp286q3ItaIgvSbBpZJlu6mnYXAkjZz6LVZPXkEvLIM8McanyZejKTYUHipA==} + '@octokit/types@13.5.0': + resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} '@octokit/types@6.41.0': resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} @@ -3255,26 +3426,22 @@ packages: '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} - '@opensearch-project/opensearch@2.13.0': - resolution: {integrity: sha512-Bu3jJ7pKzumbMMeefu7/npAWAvFu5W9SlbBow1ulhluqUpqc7QoXe0KidDrMy7Dy3BQrkI6llR3cWL4lQTZOFw==} + '@opensearch-project/opensearch@2.11.0': + resolution: {integrity: sha512-G+SZwtWRDv90IrtTSNnCt0MQjHVyqrcIXcpwN68vjHnfbun2+RHn+ux4K7dnG+s/KwWzVKIpPFoRjg2gfFX0Mw==} engines: {node: '>=10', yarn: ^1.22.10} - '@opentelemetry/api@1.8.0': - resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==} + '@opentelemetry/api@1.6.0': + resolution: {integrity: sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==} engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - - '@opentelemetry/core@1.30.0': - resolution: {integrity: sha512-Q/3u/K73KUjTCnFUP97ZY+pBjQ1kPEgjOfXj/bJl8zW7GbXdkw6cwuyZk6ZTXkVgCBsYRYUzx4fvYK1jxdb9MA==} + '@opentelemetry/core@1.24.0': + resolution: {integrity: sha512-FP2oN7mVPqcdxJDTTnKExj4mi91EH+DNuArKfHTjPuJWe2K1JfMIVXNfahw1h3onJxQnxS8K0stKkogX05s+Aw==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/semantic-conventions@1.28.0': - resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + '@opentelemetry/semantic-conventions@1.24.0': + resolution: {integrity: sha512-yL0jI6Ltuz8R+Opj7jClGrul6pOoYrdfVmzQS4SITXRPH7I5IRZbrwe/6/v8v4WYMa6MYZG480S1+uc/IGfqsA==} engines: {node: '>=14'} '@pkgjs/parseargs@0.11.0': @@ -3327,23 +3494,19 @@ packages: '@readme/json-schema-ref-parser@1.2.0': resolution: {integrity: sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==} - '@readme/openapi-parser@2.6.0': - resolution: {integrity: sha512-pyFJXezWj9WI1O+gdp95CoxfY+i+Uq3kKk4zXIFuRAZi9YnHpHOpjumWWr67wkmRTw19Hskh9spyY0Iyikf3fA==} + '@readme/openapi-parser@2.5.1': + resolution: {integrity: sha512-p9ndWhwjtP+DEiOOF6jeNMpdmYIPM4nl+JEIdnQNdq7b68esI024x7HiYACZpaYaSvISDSyKc7aiRJx4K4IDhg==} engines: {node: '>=18'} peerDependencies: openapi-types: '>=7' - '@readme/openapi-schemas@3.1.0': - resolution: {integrity: sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw==} - engines: {node: '>=18'} - '@redis/bloom@1.2.0': resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} peerDependencies: '@redis/client': ^1.0.0 - '@redis/client@1.6.0': - resolution: {integrity: sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==} + '@redis/client@1.5.14': + resolution: {integrity: sha512-YGn0GqsRBFUQxklhY7v562VMOP0DcmlrHHs3IV1mFE3cbxe31IITUkqhBcIhVSI/2JqtWAJXg5mjV4aU+zD0HA==} engines: {node: '>=14'} '@redis/graph@1.1.1': @@ -3351,34 +3514,31 @@ packages: peerDependencies: '@redis/client': ^1.0.0 - '@redis/json@1.0.7': - resolution: {integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==} + '@redis/json@1.0.6': + resolution: {integrity: sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==} peerDependencies: '@redis/client': ^1.0.0 - '@redis/search@1.2.0': - resolution: {integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==} + '@redis/search@1.1.6': + resolution: {integrity: sha512-mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==} peerDependencies: '@redis/client': ^1.0.0 - '@redis/time-series@1.1.0': - resolution: {integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==} + '@redis/time-series@1.0.5': + resolution: {integrity: sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==} peerDependencies: '@redis/client': ^1.0.0 - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - - '@sapphire/async-queue@1.5.5': - resolution: {integrity: sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg==} + '@sapphire/async-queue@1.5.2': + resolution: {integrity: sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} - '@sapphire/shapeshift@4.0.0': - resolution: {integrity: sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg==} + '@sapphire/shapeshift@3.9.7': + resolution: {integrity: sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==} engines: {node: '>=v16'} - '@sapphire/snowflake@3.5.3': - resolution: {integrity: sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==} + '@sapphire/snowflake@3.5.1': + resolution: {integrity: sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} '@segment/loosely-validate-event@2.0.0': @@ -3390,16 +3550,16 @@ packages: '@selderee/plugin-htmlparser2@0.6.0': resolution: {integrity: sha512-J3jpy002TyBjd4N/p6s+s90eX42H2eRhK3SbsZuvTDv977/E8p2U3zikdiehyJja66do7FlxLomZLPlvl2/xaA==} - '@sendgrid/client@8.1.4': - resolution: {integrity: sha512-VxZoQ82MpxmjSXLR3ZAE2OWxvQIW2k2G24UeRPr/SYX8HqWLV/8UBN15T2WmjjnEb5XSmFImTJOKDzzSeKr9YQ==} + '@sendgrid/client@8.1.3': + resolution: {integrity: sha512-mRwTticRZIdUTsnyzvlK6dMu3jni9ci9J+dW/6fMMFpGRAJdCJlivFVYQvqk8kRS3RnFzS7sf6BSmhLl1ldDhA==} engines: {node: '>=12.*'} '@sendgrid/helpers@8.0.0': resolution: {integrity: sha512-Ze7WuW2Xzy5GT5WRx+yEv89fsg/pgy3T1E3FS0QEx0/VvRmigMZ5qyVGhJz4SxomegDkzXv/i0aFPpHKN8qdAA==} engines: {node: '>= 12.0.0'} - '@sendgrid/mail@8.1.4': - resolution: {integrity: sha512-MUpIZykD9ARie8LElYCqbcBhGGMaA/E6I7fEcG7Hc2An26QJyLtwOaKQ3taGp8xO8BICPJrSKuYV4bDeAJKFGQ==} + '@sendgrid/mail@8.1.3': + resolution: {integrity: sha512-Wg5iKSUOER83/cfY6rbPa+o3ChnYzWwv1OcsR8gCV8SKi+sUPIMroildimlnb72DBkQxcbylxng1W7f0RIX7MQ==} engines: {node: '>=12.*'} '@sindresorhus/is@0.14.0': @@ -3410,85 +3570,124 @@ packages: resolution: {integrity: sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA==} engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} - '@slack/types@2.14.0': - resolution: {integrity: sha512-n0EGm7ENQRxlXbgKSrQZL69grzg1gHLAVd+GlRVQJ1NSORo0FrApR7wql/gaKdu2n4TO83Sq/AmeUOqD60aXUA==} + '@slack/types@2.11.0': + resolution: {integrity: sha512-UlIrDWvuLaDly3QZhCPnwUSI/KYmV1N9LyhuH6EDKCRS1HWZhyTG3Ja46T3D0rYfqdltKYFXbJSSRPwZpwO0cQ==} engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} - '@slack/web-api@6.13.0': - resolution: {integrity: sha512-dv65crIgdh9ZYHrevLU6XFHTQwTyDmNqEqzuIrV+Vqe/vgiG6w37oex5ePDU1RGm2IJ90H8iOvHFvzdEO/vB+g==} + '@slack/web-api@6.12.0': + resolution: {integrity: sha512-RPw6F8rWfGveGkZEJ4+4jUin5iazxRK2q3FpQDz/FvdgzC3nZmPyLx8WRzc6nh0w3MBjEbphNnp2VZksfhpBIQ==} engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} '@smithy/abort-controller@1.1.0': resolution: {integrity: sha512-5imgGUlZL4dW4YWdMYAKLmal9ny/tlenM81QZY7xYyb76z9Z/QOg7oM5Ak9HQl8QfFTlGVWwcMXl+54jroRgEQ==} engines: {node: '>=14.0.0'} - '@smithy/abort-controller@4.0.0': - resolution: {integrity: sha512-xFNL1ZfluscKiVI0qlPEnu7pL1UgNNIzQdjTPkaO7JCJtIkbArPYNtqbxohuNaQdksJ01Tn1wLbDA5oIp62P8w==} - engines: {node: '>=18.0.0'} + '@smithy/abort-controller@2.2.0': + resolution: {integrity: sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==} + engines: {node: '>=14.0.0'} - '@smithy/chunked-blob-reader-native@4.0.0': - resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} - engines: {node: '>=18.0.0'} + '@smithy/abort-controller@3.1.6': + resolution: {integrity: sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ==} + engines: {node: '>=16.0.0'} - '@smithy/chunked-blob-reader@5.0.0': - resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} - engines: {node: '>=18.0.0'} + '@smithy/chunked-blob-reader-native@3.0.1': + resolution: {integrity: sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ==} - '@smithy/config-resolver@4.0.0': - resolution: {integrity: sha512-29pIDlUY/a9+ChJPAarPiD9cU8fBtBh0wFnmnhj7j5AhgMzc+uyXdfzmziH6xx2jzw54waSP3HfnFkTANZuPYA==} - engines: {node: '>=18.0.0'} + '@smithy/chunked-blob-reader@4.0.0': + resolution: {integrity: sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==} - '@smithy/core@3.0.0': - resolution: {integrity: sha512-pKaas7RWvPljJ8uByCeBa10rtbVJCy4N/Fr7OSPxFezcyG0SQuXWnESZqzXj7m2+A+kPzG6fKyP4wrKidl2Ikg==} - engines: {node: '>=18.0.0'} + '@smithy/config-resolver@2.2.0': + resolution: {integrity: sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==} + engines: {node: '>=14.0.0'} - '@smithy/credential-provider-imds@4.0.0': - resolution: {integrity: sha512-+hTShyZHiq2AVFOxJja3k6O17DKU6TaZbwr2y1OH5HQtUw2a+7O3mMR+10LVmc39ef72SAj+uFX0IW9rJGaLQQ==} - engines: {node: '>=18.0.0'} + '@smithy/config-resolver@3.0.10': + resolution: {integrity: sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw==} + engines: {node: '>=16.0.0'} - '@smithy/eventstream-codec@4.0.0': - resolution: {integrity: sha512-YvKUUOo3qehqOxNrkax3YKXF1v0ff475FhDgbBmF8Bo0oOOpsXZyltjQnwBzIeTYo446ZPV85KM3kY4YoxUNOg==} - engines: {node: '>=18.0.0'} + '@smithy/core@1.4.2': + resolution: {integrity: sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA==} + engines: {node: '>=14.0.0'} - '@smithy/eventstream-serde-browser@4.0.0': - resolution: {integrity: sha512-YRwsVPJU/DN1VshH8tKs4CxY66HLhmDSw6oZDM2LVIgHODsqpJBcRdEfcnb97ULmgyFrWxTjL9UXpyKPuJXQRA==} - engines: {node: '>=18.0.0'} + '@smithy/core@2.5.1': + resolution: {integrity: sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg==} + engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-config-resolver@4.0.0': - resolution: {integrity: sha512-OZ/aK9LHsZch0VZ6bnf+dPD80kJripnZnkc36QNymnej49VkHJLSNJxsM0pwt53FA6+fUYYMMT0DVDTH1Msq2g==} - engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@2.3.0': + resolution: {integrity: sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==} + engines: {node: '>=14.0.0'} - '@smithy/eventstream-serde-node@4.0.0': - resolution: {integrity: sha512-10b4F+zXbzxZHKuP+m2st/C+rEGK7FUut1dNSRw6DQCCfaTUecJGCoHPCmk2CRvuMTzunVpS1BKLMk839318VQ==} - engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@3.2.5': + resolution: {integrity: sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg==} + engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-universal@4.0.0': - resolution: {integrity: sha512-HEhZpf731J3oFYJtaKO3dnV6stIjA+lJwXuXGu/WbSgicDWGAOITUwTt9ynldEFsnFkNu9b/C4ebXnJA16xSCA==} - engines: {node: '>=18.0.0'} + '@smithy/eventstream-codec@2.2.0': + resolution: {integrity: sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==} - '@smithy/fetch-http-handler@5.0.0': - resolution: {integrity: sha512-jUEq+4056uqsDLRqQb1fm48rrSMBYcBxVvODfiP37ORcV5n9xWJQsINWcIffyYxWTM5K0Y/GOfhSQGDtWpAPpQ==} - engines: {node: '>=18.0.0'} + '@smithy/eventstream-codec@3.1.7': + resolution: {integrity: sha512-kVSXScIiRN7q+s1x7BrQtZ1Aa9hvvP9FeCqCdBxv37GimIHgBCOnZ5Ip80HLt0DhnAKpiobFdGqTFgbaJNrazA==} - '@smithy/hash-blob-browser@4.0.0': - resolution: {integrity: sha512-JBXNC2YCDlm9uqP/eQJbK6auahAaq4HndJC2PURxWPRUDjbXDRJS5Npfi+7zSxKOSOWxXCG/3dLE5D8znI9l/w==} - engines: {node: '>=18.0.0'} + '@smithy/eventstream-serde-browser@2.2.0': + resolution: {integrity: sha512-UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw==} + engines: {node: '>=14.0.0'} + + '@smithy/eventstream-serde-browser@3.0.11': + resolution: {integrity: sha512-Pd1Wnq3CQ/v2SxRifDUihvpXzirJYbbtXfEnnLV/z0OGCTx/btVX74P86IgrZkjOydOASBGXdPpupYQI+iO/6A==} + engines: {node: '>=16.0.0'} + + '@smithy/eventstream-serde-config-resolver@2.2.0': + resolution: {integrity: sha512-RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA==} + engines: {node: '>=14.0.0'} + + '@smithy/eventstream-serde-config-resolver@3.0.8': + resolution: {integrity: sha512-zkFIG2i1BLbfoGQnf1qEeMqX0h5qAznzaZmMVNnvPZz9J5AWBPkOMckZWPedGUPcVITacwIdQXoPcdIQq5FRcg==} + engines: {node: '>=16.0.0'} + + '@smithy/eventstream-serde-node@2.2.0': + resolution: {integrity: sha512-zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA==} + engines: {node: '>=14.0.0'} + + '@smithy/eventstream-serde-node@3.0.10': + resolution: {integrity: sha512-hjpU1tIsJ9qpcoZq9zGHBJPBOeBGYt+n8vfhDwnITPhEre6APrvqq/y3XMDEGUT2cWQ4ramNqBPRbx3qn55rhw==} + engines: {node: '>=16.0.0'} + + '@smithy/eventstream-serde-universal@2.2.0': + resolution: {integrity: sha512-pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA==} + engines: {node: '>=14.0.0'} + + '@smithy/eventstream-serde-universal@3.0.10': + resolution: {integrity: sha512-ewG1GHbbqsFZ4asaq40KmxCmXO+AFSM1b+DcO2C03dyJj/ZH71CiTg853FSE/3SHK9q3jiYQIFjlGSwfxQ9kww==} + engines: {node: '>=16.0.0'} + + '@smithy/fetch-http-handler@2.5.0': + resolution: {integrity: sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==} + + '@smithy/fetch-http-handler@4.0.0': + resolution: {integrity: sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g==} + + '@smithy/hash-blob-browser@3.1.7': + resolution: {integrity: sha512-4yNlxVNJifPM5ThaA5HKnHkn7JhctFUHvcaz6YXxHlYOSIrzI6VKQPTN8Gs1iN5nqq9iFcwIR9THqchUCouIfg==} '@smithy/hash-node@1.1.0': resolution: {integrity: sha512-yiNKDGMzrQjnpnbLfkYKo+HwIxmBAsv0AI++QIJwvhfkLpUTBylelkv6oo78/YqZZS6h+bGfl0gILJsKE2wAKQ==} engines: {node: '>=14.0.0'} - '@smithy/hash-node@4.0.0': - resolution: {integrity: sha512-25OxGYGnG3JPEOTk4iFE03bfmoC6GXUQ4L13z4cNdsS3mkncH22AGSDRfKwwEqutNUxXQZWVy9f72Fm59C9qlg==} - engines: {node: '>=18.0.0'} + '@smithy/hash-node@2.2.0': + resolution: {integrity: sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==} + engines: {node: '>=14.0.0'} - '@smithy/hash-stream-node@4.0.0': - resolution: {integrity: sha512-MRgYnr9atik1c02mdgjjJkNK5A8IvRRlpa/zOdA8PxmQtBCwjODKzobyI166uamxrL20wg7vuKoVSAjQU4IXfw==} - engines: {node: '>=18.0.0'} + '@smithy/hash-node@3.0.8': + resolution: {integrity: sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng==} + engines: {node: '>=16.0.0'} - '@smithy/invalid-dependency@4.0.0': - resolution: {integrity: sha512-0GTyet02HX/sPctEhOExY+3HI7hwkVwOoJg0XnItTJ+Xw7JMuL9FOxALTmKVIV6+wg0kF6veLeg72hVSbD9UCw==} - engines: {node: '>=18.0.0'} + '@smithy/hash-stream-node@3.1.7': + resolution: {integrity: sha512-xMAsvJ3hLG63lsBVi1Hl6BBSfhd8/Qnp8fC06kjOpJvyyCEXdwHITa5Kvdsk6gaAXLhbZMhQMIGvgUbfnJDP6Q==} + engines: {node: '>=16.0.0'} + + '@smithy/invalid-dependency@2.2.0': + resolution: {integrity: sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==} + + '@smithy/invalid-dependency@3.0.8': + resolution: {integrity: sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q==} '@smithy/is-array-buffer@1.1.0': resolution: {integrity: sha512-twpQ/n+3OWZJ7Z+xu43MJErmhB/WO/mMTnqR6PwWQShvSJ/emx5d1N59LQZk6ZpTAeuRWrc+eHhkzTp9NFjNRQ==} @@ -3498,125 +3697,194 @@ packages: resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} - '@smithy/is-array-buffer@4.0.0': - resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} - engines: {node: '>=18.0.0'} - '@smithy/is-array-buffer@4.0.0': - resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} - engines: {node: '>=18.0.0'} + '@smithy/is-array-buffer@3.0.0': + resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} + engines: {node: '>=16.0.0'} - '@smithy/md5-js@4.0.0': - resolution: {integrity: sha512-NUjbK+M1RNd0J/mM3eh4Yw5SfUrJBsIAea/H5dvc8tirxWFHFDUHJ/CK40/vtY3niiYnygWjZZ+ISydray6Raw==} - engines: {node: '>=18.0.0'} + '@smithy/md5-js@2.2.0': + resolution: {integrity: sha512-M26XTtt9IIusVMOWEAhIvFIr9jYj4ISPPGJROqw6vXngO3IYJCnVVSMFn4Tx1rUTG5BiKJNg9u2nxmBiZC5IlQ==} - '@smithy/middleware-content-length@4.0.0': - resolution: {integrity: sha512-nM1RJqLwkSCidumGK8WwNEZ0a0D/4LkwqdPna+QmHrdPoAK6WGLyZFosdMpsAW1OIbDLWGa+r37Mo4Vth4S4kQ==} - engines: {node: '>=18.0.0'} + '@smithy/md5-js@3.0.8': + resolution: {integrity: sha512-LwApfTK0OJ/tCyNUXqnWCKoE2b4rDSr4BJlDAVCkiWYeHESr+y+d5zlAanuLW6fnitVJRD/7d9/kN/ZM9Su4mA==} - '@smithy/middleware-endpoint@4.0.0': - resolution: {integrity: sha512-/f6z5SqUurmqemhBZNhM0c+C7QW0AY/zJpic//sbdu26q98HSPAI/xvzStjYq+UhtWeAe/jaX6gamdL/2r3W1g==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-content-length@2.2.0': + resolution: {integrity: sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==} + engines: {node: '>=14.0.0'} - '@smithy/middleware-retry@4.0.0': - resolution: {integrity: sha512-K6tsFp3Ik44H3694a+LWoXLV8mqy8zn6/vTw2feU72MaIzi51EHMVNNxxpL6e2GI6oxw8FFRGWgGn8+wQRrHZQ==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-content-length@3.0.10': + resolution: {integrity: sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg==} + engines: {node: '>=16.0.0'} - '@smithy/middleware-serde@4.0.0': - resolution: {integrity: sha512-aW4Zo8Cm988RCvhysErzqrQ4YPKgZFhajvgPoZnsWIDaZfT419J17Ahr13Lul3kqGad2dCz7YOrXd7r+UAEj/w==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@2.5.1': + resolution: {integrity: sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==} + engines: {node: '>=14.0.0'} - '@smithy/middleware-stack@4.0.0': - resolution: {integrity: sha512-4NFaX88RmgVrCyJv/3RsSdqMwxzI/EQa8nvhUDVxmLUMRS2JUdHnliD6IwKuqIwIzz+E1aZK3EhSHUM4HXp3ww==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@3.2.1': + resolution: {integrity: sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA==} + engines: {node: '>=16.0.0'} - '@smithy/node-config-provider@4.0.0': - resolution: {integrity: sha512-Crp9rg1ewjqgM2i7pWSpNhfbBa0usyKGDVQLEXTOpu6trFqq3BFLLCgbCE1S18h6mxqKnOqUONq3nWOxUk75XA==} - engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@2.3.1': + resolution: {integrity: sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-retry@3.0.25': + resolution: {integrity: sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg==} + engines: {node: '>=16.0.0'} + + '@smithy/middleware-serde@2.3.0': + resolution: {integrity: sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-serde@3.0.8': + resolution: {integrity: sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA==} + engines: {node: '>=16.0.0'} + + '@smithy/middleware-stack@2.2.0': + resolution: {integrity: sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-stack@3.0.8': + resolution: {integrity: sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA==} + engines: {node: '>=16.0.0'} + + '@smithy/node-config-provider@2.3.0': + resolution: {integrity: sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==} + engines: {node: '>=14.0.0'} + + '@smithy/node-config-provider@3.1.9': + resolution: {integrity: sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==} + engines: {node: '>=16.0.0'} '@smithy/node-http-handler@1.1.0': resolution: {integrity: sha512-d3kRriEgaIiGXLziAM8bjnaLn1fthCJeTLZIwEIpzQqe6yPX0a+yQoLCTyjb2fvdLwkMoG4p7THIIB5cj5lkbg==} engines: {node: '>=14.0.0'} - '@smithy/node-http-handler@4.0.0': - resolution: {integrity: sha512-WvumtEaFyxaI95zmj6eYlF/vCFCKNyru3P/UUHCUS9BjvajUtNckH2cY3bBfi+qqMPX5gha4g26lcOlE/wPz/Q==} - engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@2.5.0': + resolution: {integrity: sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==} + engines: {node: '>=14.0.0'} - '@smithy/property-provider@4.0.0': - resolution: {integrity: sha512-AJSvY1k3SdM0stGrIjL8/FIjXO7X9I7KkznXDmr76RGz+yvaDHLsLm2hSHyzAlmwEQnHaafSU2dwaV0JcnR/4w==} - engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@3.2.5': + resolution: {integrity: sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w==} + engines: {node: '>=16.0.0'} + + '@smithy/property-provider@2.2.0': + resolution: {integrity: sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==} + engines: {node: '>=14.0.0'} + + '@smithy/property-provider@3.1.8': + resolution: {integrity: sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA==} + engines: {node: '>=16.0.0'} '@smithy/protocol-http@1.2.0': resolution: {integrity: sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==} engines: {node: '>=14.0.0'} - '@smithy/protocol-http@5.0.0': - resolution: {integrity: sha512-laAcIHWq9GQ5VdAS71DUrCj5HUHZ/89Ee+HRTLhFR5/E3toBlnZfPG+kqBajwfEB5aSdRuKslfzl5Dzrn3pr8A==} - engines: {node: '>=18.0.0'} + '@smithy/protocol-http@3.3.0': + resolution: {integrity: sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==} + engines: {node: '>=14.0.0'} + + '@smithy/protocol-http@4.1.5': + resolution: {integrity: sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg==} + engines: {node: '>=16.0.0'} '@smithy/querystring-builder@1.1.0': resolution: {integrity: sha512-gDEi4LxIGLbdfjrjiY45QNbuDmpkwh9DX4xzrR2AzjjXpxwGyfSpbJaYhXARw9p17VH0h9UewnNQXNwaQyYMDA==} engines: {node: '>=14.0.0'} - '@smithy/querystring-builder@4.0.0': - resolution: {integrity: sha512-kMqPDRf+/hwm+Dmk8AQCaYTJxNWWpNdJJteeMm0jwDbmRDqSqHQ7oLEVzvOnbWJu1poVtOhv6v7jsbyx9JASsw==} - engines: {node: '>=18.0.0'} + '@smithy/querystring-builder@2.2.0': + resolution: {integrity: sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==} + engines: {node: '>=14.0.0'} + + '@smithy/querystring-builder@3.0.8': + resolution: {integrity: sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA==} + engines: {node: '>=16.0.0'} '@smithy/querystring-parser@1.1.0': resolution: {integrity: sha512-Lm/FZu2qW3XX+kZ4WPwr+7aAeHf1Lm84UjNkKyBu16XbmEV7ukfhXni2aIwS2rcVf8Yv5E7wchGGpOFldj9V4Q==} engines: {node: '>=14.0.0'} - '@smithy/querystring-parser@4.0.0': - resolution: {integrity: sha512-SbogL1PNEmm28ya0eK2S0EZEbYwe0qpaqSGrODm+uYS6dQ7pekPLVNXjBRuuLIAT26ZF2wTsp6X7AVRBNZd8qw==} - engines: {node: '>=18.0.0'} + '@smithy/querystring-parser@2.2.0': + resolution: {integrity: sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==} + engines: {node: '>=14.0.0'} - '@smithy/service-error-classification@4.0.0': - resolution: {integrity: sha512-hIZreT6aXSG0PK/psT1S+kfeGTnYnRRlf7rU3yDmH/crSVjTbS/5h5w2J7eO2ODrQb3xfhJcYxQBREdwsZk6TA==} - engines: {node: '>=18.0.0'} + '@smithy/querystring-parser@3.0.8': + resolution: {integrity: sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg==} + engines: {node: '>=16.0.0'} - '@smithy/shared-ini-file-loader@4.0.0': - resolution: {integrity: sha512-Ktupe8msp2GPaKKVfiz3NNUNnslJiGGRoVh3BDpm/RChkQ5INQpqmTc2taE0XChNYumNynLfb3keekIPaiaZeg==} - engines: {node: '>=18.0.0'} + '@smithy/service-error-classification@2.1.5': + resolution: {integrity: sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==} + engines: {node: '>=14.0.0'} - '@smithy/signature-v4@5.0.0': - resolution: {integrity: sha512-zqcOR1sZTuoA6K3PBNwzu4YgT1pmIwz47tYpgaJjBTfGUIMtcjUaXKtuSKEScdv+0wx45/PbXz0//hk80fky3w==} - engines: {node: '>=18.0.0'} + '@smithy/service-error-classification@3.0.8': + resolution: {integrity: sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g==} + engines: {node: '>=16.0.0'} - '@smithy/smithy-client@4.0.0': - resolution: {integrity: sha512-AgcZ6B+JuqArYioAbaYrCpTCjYsD3/1hPSXntbN2ipsfc4hE+72RFZevUPYgsKxpy3G+QxuLfqm11i3+oX4oSA==} - engines: {node: '>=18.0.0'} + '@smithy/shared-ini-file-loader@2.4.0': + resolution: {integrity: sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==} + engines: {node: '>=14.0.0'} + + '@smithy/shared-ini-file-loader@3.1.9': + resolution: {integrity: sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==} + engines: {node: '>=16.0.0'} + + '@smithy/signature-v4@2.3.0': + resolution: {integrity: sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==} + engines: {node: '>=14.0.0'} + + '@smithy/signature-v4@4.2.1': + resolution: {integrity: sha512-NsV1jF4EvmO5wqmaSzlnTVetemBS3FZHdyc5CExbDljcyJCEEkJr8ANu2JvtNbVg/9MvKAWV44kTrGS+Pi4INg==} + engines: {node: '>=16.0.0'} + + '@smithy/smithy-client@2.5.1': + resolution: {integrity: sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==} + engines: {node: '>=14.0.0'} + + '@smithy/smithy-client@3.4.2': + resolution: {integrity: sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA==} + engines: {node: '>=16.0.0'} '@smithy/types@1.2.0': resolution: {integrity: sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==} engines: {node: '>=14.0.0'} - '@smithy/types@4.0.0': - resolution: {integrity: sha512-aNwIGSOgDOhtTRY/rrn2aeuQeKw/IFrQ998yK5l6Ah853WeWIEmFPs/EO4OpfADEdcK+igWnZytm/oUgkLgUYg==} - engines: {node: '>=18.0.0'} + '@smithy/types@2.12.0': + resolution: {integrity: sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==} + engines: {node: '>=14.0.0'} + + '@smithy/types@3.6.0': + resolution: {integrity: sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w==} + engines: {node: '>=16.0.0'} '@smithy/url-parser@1.1.0': resolution: {integrity: sha512-tpvi761kzboiLNGEWczuybMPCJh6WHB3cz9gWAG95mSyaKXmmX8ZcMxoV+irZfxDqLwZVJ22XTumu32S7Ow8aQ==} - '@smithy/url-parser@4.0.0': - resolution: {integrity: sha512-2iPpuLoH0hCKpLtqVgilHtpPKsmHihbkwBm3h3RPuEctdmuiOlFRZ2ZI8IHSwl0o4ff5IdyyJ0yu/2tS9KpUug==} - engines: {node: '>=18.0.0'} + '@smithy/url-parser@2.2.0': + resolution: {integrity: sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==} - '@smithy/util-base64@4.0.0': - resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} - engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.0.0': - resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} - engines: {node: '>=18.0.0'} + '@smithy/url-parser@3.0.8': + resolution: {integrity: sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg==} - '@smithy/util-body-length-browser@4.0.0': - resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} - engines: {node: '>=18.0.0'} + '@smithy/util-base64@2.3.0': + resolution: {integrity: sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==} + engines: {node: '>=14.0.0'} - '@smithy/util-body-length-node@4.0.0': - resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} - engines: {node: '>=18.0.0'} - '@smithy/util-body-length-node@4.0.0': - resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} - engines: {node: '>=18.0.0'} + '@smithy/util-base64@3.0.0': + resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} + engines: {node: '>=16.0.0'} + + '@smithy/util-body-length-browser@2.2.0': + resolution: {integrity: sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==} + + '@smithy/util-body-length-browser@3.0.0': + resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} + + '@smithy/util-body-length-node@2.3.0': + resolution: {integrity: sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-body-length-node@3.0.0': + resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} + engines: {node: '>=16.0.0'} '@smithy/util-buffer-from@1.1.0': resolution: {integrity: sha512-9m6NXE0ww+ra5HKHCHig20T+FAwxBAm7DIdwc/767uGWbRcY720ybgPacQNB96JMOI7xVr/CDa3oMzKmW4a+kw==} @@ -3626,52 +3894,85 @@ packages: resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} - '@smithy/util-buffer-from@4.0.0': - resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} - engines: {node: '>=18.0.0'} - '@smithy/util-buffer-from@4.0.0': - resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} - engines: {node: '>=18.0.0'} + '@smithy/util-buffer-from@3.0.0': + resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} + engines: {node: '>=16.0.0'} - '@smithy/util-config-provider@4.0.0': - resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} - engines: {node: '>=18.0.0'} + '@smithy/util-config-provider@2.3.0': + resolution: {integrity: sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==} + engines: {node: '>=14.0.0'} - '@smithy/util-defaults-mode-browser@4.0.0': - resolution: {integrity: sha512-7wqsXkzaJkpSqV+Ca95pN9yQutXvhaKeCxGGmjWnRGXY1fW/yR7wr1ouNnUYCJuTS8MvmB61xp5Qdj8YMgIA2Q==} - engines: {node: '>=18.0.0'} + '@smithy/util-config-provider@3.0.0': + resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} + engines: {node: '>=16.0.0'} - '@smithy/util-defaults-mode-node@4.0.0': - resolution: {integrity: sha512-P8VK885kiRT6TEtvcQvz+L/+xIhrDhCmM664ToUtrshFSBhwGYaJWlQNAH9fXlMhwnNvR+tmh1KngKJIgQP6bw==} - engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@2.2.1': + resolution: {integrity: sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==} + engines: {node: '>= 10.0.0'} - '@smithy/util-endpoints@3.0.0': - resolution: {integrity: sha512-kyOKbkg77lsIVN2jC08uEWm3s16eK1YdVDyi/nKeBDbUnjR30dmTEga79E5tiu5OEgTAdngNswA9V+L6xa65sA==} - engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@3.0.25': + resolution: {integrity: sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA==} + engines: {node: '>= 10.0.0'} - '@smithy/util-hex-encoding@4.0.0': - resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} - engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@2.3.1': + resolution: {integrity: sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==} + engines: {node: '>= 10.0.0'} - '@smithy/util-middleware@4.0.0': - resolution: {integrity: sha512-ncuvK6ekpDqtASHg7jx3d3nrkD2BsTzUmeVgvtepuHGxtySY8qUlb4SiNRdxHYcv3pL2SwdXs70RwKBU0edW5w==} - engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@3.0.25': + resolution: {integrity: sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g==} + engines: {node: '>= 10.0.0'} - '@smithy/util-retry@4.0.0': - resolution: {integrity: sha512-64WFoC19NVuHh3HQO2QbGw+n6GzQ6VH/drxwXLOU3GDLKxUUzIR9XNm9aTVqh8/7R+y+DgITiv5LpX5XdOy73A==} - engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@1.2.0': + resolution: {integrity: sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==} + engines: {node: '>= 14.0.0'} - '@smithy/util-stream@4.0.0': - resolution: {integrity: sha512-ctcLq8Ogi2FQuGy2RxJXGGrozhFEb4p9FawB5SpTNAkNQWbNHcwrGcVSVI3FtdQtkNAINLiEdMnrx+UN/mafvw==} - engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@2.1.4': + resolution: {integrity: sha512-kPt8j4emm7rdMWQyL0F89o92q10gvCUa6sBkBtDJ7nV2+P7wpXczzOfoDJ49CKXe5CCqb8dc1W+ZdLlrKzSAnQ==} + engines: {node: '>=16.0.0'} + + '@smithy/util-hex-encoding@2.2.0': + resolution: {integrity: sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==} + engines: {node: '>=14.0.0'} + + '@smithy/util-hex-encoding@3.0.0': + resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} + engines: {node: '>=16.0.0'} + + '@smithy/util-middleware@2.2.0': + resolution: {integrity: sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-middleware@3.0.8': + resolution: {integrity: sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA==} + engines: {node: '>=16.0.0'} + + '@smithy/util-retry@2.2.0': + resolution: {integrity: sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==} + engines: {node: '>= 14.0.0'} + + '@smithy/util-retry@3.0.8': + resolution: {integrity: sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow==} + engines: {node: '>=16.0.0'} + + '@smithy/util-stream@2.2.0': + resolution: {integrity: sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-stream@3.2.1': + resolution: {integrity: sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A==} + engines: {node: '>=16.0.0'} '@smithy/util-uri-escape@1.1.0': resolution: {integrity: sha512-/jL/V1xdVRt5XppwiaEU8Etp5WHZj609n0xMTuehmCqdoOFbId1M+aEeDWZsQ+8JbEB/BJ6ynY2SlYmOaKtt8w==} engines: {node: '>=14.0.0'} - '@smithy/util-uri-escape@4.0.0': - resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} - engines: {node: '>=18.0.0'} + '@smithy/util-uri-escape@2.2.0': + resolution: {integrity: sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-uri-escape@3.0.0': + resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} + engines: {node: '>=16.0.0'} '@smithy/util-utf8@1.1.0': resolution: {integrity: sha512-p/MYV+JmqmPyjdgyN2UxAeYDj9cBqCjp0C/NsTWnnjoZUVqoeZ6IrW915L9CAKWVECgv9lVQGc4u/yz26/bI1A==} @@ -3681,16 +3982,13 @@ packages: resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} - '@smithy/util-utf8@4.0.0': - resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} - engines: {node: '>=18.0.0'} - '@smithy/util-utf8@4.0.0': - resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} - engines: {node: '>=18.0.0'} + '@smithy/util-utf8@3.0.0': + resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} + engines: {node: '>=16.0.0'} - '@smithy/util-waiter@4.0.0': - resolution: {integrity: sha512-C8dSfGmZH0ecrmnJOw4aDXJ47krihnUtee8eDZ2fA+28wTjD4TVM3L/bBQYnBBlDVWcYzldLV7loPRsPc1kERg==} - engines: {node: '>=18.0.0'} + '@smithy/util-waiter@3.1.7': + resolution: {integrity: sha512-d5yGlQtmN/z5eoTtIYgkvOw27US2Ous4VycnXatyoImIF9tzlcpnKqQ/V7qhvJmb2p6xZne1NopCLakdTnkBBQ==} + engines: {node: '>=16.0.0'} '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} @@ -3707,71 +4005,71 @@ packages: '@superfaceai/passport-twitter-oauth2@1.2.4': resolution: {integrity: sha512-f2P4X1HqBHJuAnQefINpgJvMGLHx+nT9APbfJzN/CCBcazvP9NOD9IiENHMZMXEgfcHU40V3KwKiIZTBH5Q4Wg==} - '@swc/core-darwin-arm64@1.10.4': - resolution: {integrity: sha512-sV/eurLhkjn/197y48bxKP19oqcLydSel42Qsy2zepBltqUx+/zZ8+/IS0Bi7kaWVFxerbW1IPB09uq8Zuvm3g==} + '@swc/core-darwin-arm64@1.4.17': + resolution: {integrity: sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.10.4': - resolution: {integrity: sha512-gjYNU6vrAUO4+FuovEo9ofnVosTFXkF0VDuo1MKPItz6e2pxc2ale4FGzLw0Nf7JB1sX4a8h06CN16/pLJ8Q2w==} + '@swc/core-darwin-x64@1.4.17': + resolution: {integrity: sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.10.4': - resolution: {integrity: sha512-zd7fXH5w8s+Sfvn2oO464KDWl+ZX1MJiVmE4Pdk46N3PEaNwE0koTfgx2vQRqRG4vBBobzVvzICC3618WcefOA==} + '@swc/core-linux-arm-gnueabihf@1.4.17': + resolution: {integrity: sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.10.4': - resolution: {integrity: sha512-+UGfoHDxsMZgFD3tABKLeEZHqLNOkxStu+qCG7atGBhS4Slri6h6zijVvf4yI5X3kbXdvc44XV/hrP/Klnui2A==} + '@swc/core-linux-arm64-gnu@1.4.17': + resolution: {integrity: sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.10.4': - resolution: {integrity: sha512-cDDj2/uYsOH0pgAnDkovLZvKJpFmBMyXkxEG6Q4yw99HbzO6QzZ5HDGWGWVq/6dLgYKlnnmpjZCPPQIu01mXEg==} + '@swc/core-linux-arm64-musl@1.4.17': + resolution: {integrity: sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.10.4': - resolution: {integrity: sha512-qJXh9D6Kf5xSdGWPINpLGixAbB5JX8JcbEJpRamhlDBoOcQC79dYfOMEIxWPhTS1DGLyFakAx2FX/b2VmQmj0g==} + '@swc/core-linux-x64-gnu@1.4.17': + resolution: {integrity: sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.10.4': - resolution: {integrity: sha512-A76lIAeyQnHCVt0RL/pG+0er8Qk9+acGJqSZOZm67Ve3B0oqMd871kPtaHBM0BW3OZAhoILgfHW3Op9Q3mx3Cw==} + '@swc/core-linux-x64-musl@1.4.17': + resolution: {integrity: sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.10.4': - resolution: {integrity: sha512-e6j5kBu4fIY7fFxFxnZI0MlEovRvp50Lg59Fw+DVbtqHk3C85dckcy5xKP+UoXeuEmFceauQDczUcGs19SRGSQ==} + '@swc/core-win32-arm64-msvc@1.4.17': + resolution: {integrity: sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.10.4': - resolution: {integrity: sha512-RSYHfdKgNXV/amY5Tqk1EWVsyQnhlsM//jeqMLw5Fy9rfxP592W9UTumNikNRPdjI8wKKzNMXDb1U29tQjN0dg==} + '@swc/core-win32-ia32-msvc@1.4.17': + resolution: {integrity: sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.10.4': - resolution: {integrity: sha512-1ujYpaqfqNPYdwKBlvJnOqcl+Syn3UrQ4XE0Txz6zMYgyh6cdU6a3pxqLqIUSJ12MtXRA9ZUhEz1ekU3LfLWXw==} + '@swc/core-win32-x64-msvc@1.4.17': + resolution: {integrity: sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.10.4': - resolution: {integrity: sha512-ut3zfiTLORMxhr6y/GBxkHmzcGuVpwJYX4qyXWuBKkpw/0g0S5iO1/wW7RnLnZbAi8wS/n0atRZoaZlXWBkeJg==} + '@swc/core@1.4.17': + resolution: {integrity: sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==} engines: {node: '>=10'} peerDependencies: - '@swc/helpers': '*' + '@swc/helpers': ^0.5.0 peerDependenciesMeta: '@swc/helpers': optional: true @@ -3779,8 +4077,8 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/types@0.1.17': - resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} + '@swc/types@0.1.6': + resolution: {integrity: sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==} '@szmarczak/http-timer@1.1.2': resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} @@ -3789,27 +4087,27 @@ packages: '@techteamer/ocsp@1.0.1': resolution: {integrity: sha512-q4pW5wAC6Pc3JI8UePwE37CkLQ5gDGZMgjSX4MEEm4D4Di59auDQ8UNIDzC4gRnPNmmcwjpPxozq8p5pjiOmOw==} - '@temporalio/activity@1.11.5': - resolution: {integrity: sha512-IHvaADrKhxYyhuybnMt5JX3rxK94DstENwO2jq5qjsS2p5jr1qjU72pRDUSXAha1endqgsyjqIyxqrEOsqzuyg==} + '@temporalio/activity@1.11.1': + resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} - '@temporalio/client@1.11.5': - resolution: {integrity: sha512-Q8hFqxyf41MQmCeyxcGpbiMyuxhilvG8FScFwSbFs8ZZPZykNcpr5o+TOowLWzGWAL5f2bIKETh/eXDZpZvY7g==} + '@temporalio/client@1.11.1': + resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} - '@temporalio/common@1.11.5': - resolution: {integrity: sha512-6cgGTAT+jSKKwCPOoUDIseJuDroP7cEIAX/pYpNBRGvfj+lpU8GitSVsPEZTVoMQ400otzBa1n80aH8bnOLVTw==} + '@temporalio/common@1.11.1': + resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} - '@temporalio/core-bridge@1.11.5': - resolution: {integrity: sha512-1IzxtPrndR99golP1yZnvsOHU9QP5o9KdNtM/W5VxChFc0ihmeZpisptgfYyqa9VaO/Bs9wEoSmH6fCSB9knTQ==} + '@temporalio/core-bridge@1.11.1': + resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} - '@temporalio/proto@1.11.5': - resolution: {integrity: sha512-LjRGQdLRpRxDp2NSyNyhCp7JLaUlMY2T+hAeGfueR5cOVZxHXTO8TXnnjimi0UM1knyA6sW3yNJCNieKlCcASg==} + '@temporalio/proto@1.11.1': + resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} - '@temporalio/worker@1.11.5': - resolution: {integrity: sha512-WeIK/2ZQMCFVz89FeSa081kMDeHbyL0yZf335Rn0my2l0TcWWoHjVI9kQGuEAuP6fke/sCCQxpcxJ8EvEMHX8w==} + '@temporalio/worker@1.11.1': + resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} engines: {node: '>= 16.0.0'} - '@temporalio/workflow@1.11.5': - resolution: {integrity: sha512-U0kGoQ6bttEiT59km+cpeSxVr2Bq8ZHmlurP2N+9nQdxa10RsMqrp5YQrJQfg7KrfrYbeY1HyJBQ7Ljy1FrOtQ==} + '@temporalio/workflow@1.11.1': + resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} @@ -3851,8 +4149,8 @@ packages: '@types/caseless@0.12.5': resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} - '@types/config@3.3.5': - resolution: {integrity: sha512-itq2HtXQBrNUKwMNZnb9mBRE3T99VYCdl1gjST9rq+9kFaB1iMMGuDeZnP88qid73DnpAMKH9ZolqDpS1Lz7+w==} + '@types/config@3.3.4': + resolution: {integrity: sha512-qFiTLnWy+TdPSMIXFHP+87lFXFRM4SXjRS+CSB66+56TrpLNw003y1sh7DGaaC1NGesxgKoT5FDy6dyA1Xju/g==} '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -3866,8 +4164,8 @@ packages: '@types/cors@2.8.17': resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} - '@types/cron@2.4.3': - resolution: {integrity: sha512-ViRBkoZD9Rk0hGeMdd2GHGaOaZuH9mDmwsE5/Zo53Ftwcvh7h9VJc8lIt2wdgEwS4EW5lbtTX6vlE0idCLPOyA==} + '@types/cron@2.4.0': + resolution: {integrity: sha512-5bBaAkqvSFBX8JMi/xCofNzG5E594TNsApMz68dLd/sQYz/HGQqgcxGHTRjOvD4G3Y+YF1Oo3S7QdCvKt1KAJQ==} deprecated: This is a stub types definition. cron provides its own type definitions, so you do not need this installed. '@types/debug@4.1.12': @@ -3876,14 +4174,14 @@ packages: '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.19.6': - resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + '@types/express-serve-static-core@4.19.0': + resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -3906,8 +4204,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/jsonwebtoken@9.0.7': - resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==} + '@types/jsonwebtoken@9.0.6': + resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==} '@types/keyv@3.1.4': resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} @@ -3930,23 +4228,23 @@ packages: '@types/node@18.0.6': resolution: {integrity: sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==} - '@types/node@18.19.70': - resolution: {integrity: sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==} + '@types/node@18.19.31': + resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} - '@types/node@20.17.12': - resolution: {integrity: sha512-vo/wmBgMIiEA23A/knMfn/cf37VnuF52nZh5ZoW0GWt4e4sxNquibrMRJ7UQsA06+MBx9r/H1jsI9grYjQCQlw==} + '@types/node@20.12.7': + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} - '@types/oauth@0.9.6': - resolution: {integrity: sha512-H9TRCVKBNOhZZmyHLqFt9drPM9l+ShWiqqJijU1B8P3DX3ub84NjxDuy+Hjrz+fEca5Kwip3qPMKNyiLgNJtIA==} + '@types/oauth@0.9.4': + resolution: {integrity: sha512-qk9orhti499fq5XxKCCEbd0OzdPZuancneyse3KtR+vgMiHRbh+mn8M4G6t64ob/Fg+GZGpa565MF/2dKWY32A==} - '@types/passport-oauth2@1.4.17': - resolution: {integrity: sha512-ODiAHvso6JcWJ6ZkHHroVp05EHGhqQN533PtFNBkg8Fy5mERDqsr030AX81M0D69ZcaMvhF92SRckEk2B0HYYg==} + '@types/passport-oauth2@1.4.15': + resolution: {integrity: sha512-9cUTP/HStNSZmhxXGuRrBJfEWzIEJRub2eyJu3CvkA+8HAMc9W3aKdFhVq+Qz1hi42qn+GvSAnz3zwacDSYWpw==} - '@types/passport@1.0.17': - resolution: {integrity: sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==} + '@types/passport@1.0.16': + resolution: {integrity: sha512-FD0qD5hbPWQzaM0wHUnJ/T0BBCJBxCeemtnCwc/ThhTg3x9jfrAcRUmj5Dopza+MfFS9acTe3wk7rcVnRIp/0A==} - '@types/qs@6.9.17': - resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -3960,8 +4258,8 @@ packages: '@types/retry@0.12.0': resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - '@types/sanitize-html@2.13.0': - resolution: {integrity: sha512-X31WxbvW9TjIhZZNyNBZ/p5ax4ti7qsNDBDEnH4zAgmEh35YnFD1UiS6z9Cd34kKm0LslFW0KPmTQzu/oGtsqQ==} + '@types/sanitize-html@2.11.0': + resolution: {integrity: sha512-7oxPGNQHXLHE48r/r/qjn7q0hlrs3kL7oZnGj0Wf/h9tj/6ibFyRkNbsDxaBBZ4XUZ0Dx5LGCyDJ04ytSofacQ==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -3987,11 +4285,11 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@types/validator@13.12.2': - resolution: {integrity: sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==} + '@types/validator@13.11.9': + resolution: {integrity: sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==} - '@types/ws@8.5.13': - resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} + '@types/ws@8.5.9': + resolution: {integrity: sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==} '@typescript-eslint/eslint-plugin@5.62.0': resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} @@ -4109,61 +4407,61 @@ packages: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} - '@ungap/structured-clone@1.2.1': - resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vercel/ncc@0.38.3': - resolution: {integrity: sha512-rnK6hJBS6mwc+Bkab+PGPs9OiS0i/3kdTO+CkI8V0/VrW3vmz7O2Pxjw/owOlmo6PKEIxRSeZKv/kuL9itnpYA==} + '@vercel/ncc@0.38.1': + resolution: {integrity: sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==} hasBin: true - '@vladfrangu/async_event_emitter@2.4.6': - resolution: {integrity: sha512-RaI5qZo6D2CVS6sTHFKg1v5Ohq/+Bo2LZ5gzUEwZ/WkHhwtGTCB/sVLw8ijOkAUxasZ+WshN/Rzj4ywsABJ5ZA==} + '@vladfrangu/async_event_emitter@2.2.4': + resolution: {integrity: sha512-ButUPz9E9cXMLgvAW8aLAKKJJsPu1dY1/l/E8xzLFuysowXygs6GBcyunK9rnGC4zTsnIc2mQo71rGw9U+Ykug==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -4186,6 +4484,11 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + acorn-import-assertions@1.9.0: + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -4196,12 +4499,12 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true @@ -4209,8 +4512,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} ajv-draft-04@1.0.0: @@ -4234,16 +4537,11 @@ packages: peerDependencies: ajv: ^6.9.1 - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} analytics-node@6.2.0: resolution: {integrity: sha512-NLU4tCHlWt0tzEaFQL7NIoWhq2KmQSmz0JvyS2lYn6fc4fEjTMSabhJUx8H1r5995FX8fE3rZ15uIHU6u+ovlQ==} @@ -4268,8 +4566,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} ansi-styles@3.2.1: @@ -4324,8 +4622,8 @@ packages: resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} engines: {node: '>=8'} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} array-flatten@1.1.1: @@ -4343,16 +4641,16 @@ packages: resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} arrify@2.0.1: @@ -4373,21 +4671,21 @@ packages: asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} - assert-options@0.8.2: - resolution: {integrity: sha512-XaXoMxY0zuwAb0YuZjxIm8FeWvNq0aWNIbrzHhFjme8Smxw4JlPoyrAKQ6808k5UvQdhvnWqHZCphq5mXd4TDA==} + assert-options@0.8.1: + resolution: {integrity: sha512-5lNGRB5g5i2bGIzb+J1QQE1iKU/WEMVBReFIc5pPDWjcPj23otPL0eI6PB2v7QPi0qU6Mhym5D3y0ZiSIOf3GA==} engines: {node: '>=10.0.0'} async-retry@1.3.3: resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - auth0@4.15.0: - resolution: {integrity: sha512-GPJJcDxk0sMnpbTZf9QWHXJrdPoSTG9eG5q9Un7X+eNKhZVPEzr3sSK3/EToRP4fNIPKbCWjXa2+HM3GnY3F4g==} + auth0@4.3.1: + resolution: {integrity: sha512-VuR/PdNHwXD9QiYUZf8UN0qiv07yJWHKfF2yEhePaPCrpwbEm6lHM6dkN7ylOdseogCkGmvchxYGMga0IPNrCA==} engines: {node: '>=18'} available-typed-arrays@1.0.7: @@ -4398,8 +4696,8 @@ packages: resolution: {integrity: sha512-empd1m/J/MAkL6d9OeRpmg9thobULu0wk4v8W3JToaxGi2TD7PIdvE6yliZKyOVAdJINhBWEBhxR4OUIHhcGbQ==} engines: {node: '>= 0.8.0'} - aws4@1.13.2: - resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} axios-retry@3.2.0: resolution: {integrity: sha512-RK2cLMgIsAQBDhlIsJR5dOhODPigvel18XUv1dDXW+4k1FzebyfRk+C+orot6WPZOYFKSfhLwHPwVmTVOODQ5w==} @@ -4410,21 +4708,18 @@ packages: axios@1.6.8: resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} - axios@1.7.9: - resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} - - babel-plugin-polyfill-corejs2@0.4.12: - resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + babel-plugin-polyfill-corejs2@0.4.11: + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + babel-plugin-polyfill-corejs3@0.10.4: + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.3: - resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + babel-plugin-polyfill-regenerator@0.6.2: + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -4489,10 +4784,6 @@ packages: resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -4513,16 +4804,16 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} browser-request@0.3.3: resolution: {integrity: sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==} engines: {'0': node} - browserslist@4.24.3: - resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4541,8 +4832,8 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - bufferutil@4.0.9: - resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} bunyan-format@0.2.1: @@ -4568,16 +4859,8 @@ packages: resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} engines: {node: '>=8'} - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} call-me-maybe@1.0.2: @@ -4599,11 +4882,11 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001690: - resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} + caniuse-lite@1.0.30001614: + resolution: {integrity: sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==} - cargo-cp-artifact@0.1.9: - resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} + cargo-cp-artifact@0.1.8: + resolution: {integrity: sha512-3j4DaoTrsCD1MRkTF2Soacii0Nx7UHCce0EwUf4fHnggwiE4fbmF2AbnfzayR36DF8KGadfh7M/Yfy625kgPlA==} hasBin: true chalk@2.4.2: @@ -4628,15 +4911,15 @@ packages: chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - cjs-module-lexer@1.4.1: - resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} + cjs-module-lexer@1.3.1: + resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} clearbit@1.3.5: resolution: {integrity: sha512-tlzF6XzgrT22+9tobCPnlJ1575QIy/wuAoVLUe/7Y6/Y4ZCbXSmVms5l9lbcrGqwmaiTZmhB/EQnimkt/m5ViQ==} @@ -4766,8 +5049,8 @@ packages: config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - config@3.3.12: - resolution: {integrity: sha512-Vmx389R/QVM3foxqBzXO8t2tUikYZP64Q6vQxGrsMpREeJc/aWRnPRERXWsYzOHAumx/AOoILWe6nU3ZJL+6Sw==} + config@3.3.11: + resolution: {integrity: sha512-Dhn63ZoWCW5EMg4P0Sl/XNsj/7RLiUIA1x1npCy+m2cRwRHzLnt3UtYtxRDMZW/6oOMdWhCzaGYkOcajGgrAOA==} engines: {node: '>= 10.0.0'} configstore@5.0.1: @@ -4802,12 +5085,12 @@ packages: resolution: {integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==} engines: {node: '>= 0.6'} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} cookiejar@2.1.4: @@ -4821,8 +5104,8 @@ packages: resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} hasBin: true - core-js-compat@3.39.0: - resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} + core-js-compat@3.37.0: + resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4848,14 +5131,14 @@ packages: engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true - cross-fetch@3.2.0: - resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} crowd-sentiment@1.1.7: @@ -4881,34 +5164,34 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - csv-parse@5.6.0: - resolution: {integrity: sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==} + csv-parse@5.5.6: + resolution: {integrity: sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==} d@1.0.2: resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} engines: {node: '>=0.12'} - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} date-and-time@0.14.2: resolution: {integrity: sha512-EFTCh9zRSEpGPmJaexg7HTuzZHh6cnJj1ui7IGCFNXzd2QdpsNh05Db5TF3xzJm30YN+A8/6xHSuRcQqoc3kFA==} - dc-polyfill@0.1.6: - resolution: {integrity: sha512-UV33cugmCC49a5uWAApM+6Ev9ZdvIUMTrtCO9fj96TPGOQiea54oeO3tiEVdVeo3J9N2UdJEmbS4zOkkEA35uQ==} + dc-polyfill@0.1.4: + resolution: {integrity: sha512-8iwEduR2jR9wWYggeaYtYZWRiUe3XZPyAQtMTL1otv8X3kfR8xUIVb4l5awHEeyDrH6Je7N324lKzMKlMMN6Yw==} engines: {node: '>=12.17'} - dd-trace@4.54.0: - resolution: {integrity: sha512-4yVnl3m0F0t/6PFQSurIOfNCD/Y0otl/UKmadsHGlrbnrzYKBmvUuMPofMbWur1sHf3/Y7LRwLGaFzSdot40KA==} + dd-trace@4.38.0: + resolution: {integrity: sha512-tEcCFz3drKoifSo4U7EyT+PDg0TXBBjl07z51NkouIou7eiKK/vGWQ5zKBDmt0qCPLnvNuNFT3T6ErSoLZNSOw==} engines: {node: '>=16'} debug@2.6.9: @@ -4927,8 +5210,8 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -4936,8 +5219,8 @@ packages: supports-color: optional: true - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -5037,12 +5320,12 @@ packages: discontinuous-range@1.0.0: resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - discord-api-types@0.37.115: - resolution: {integrity: sha512-ivPnJotSMrXW8HLjFu+0iCVs8zP6KSliMelhr7HgcB2ki1QzpORkb26m71l1pzSnnGfm7gb5n/VtRTtpw8kXFA==} + discord-api-types@0.37.61: + resolution: {integrity: sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw==} - discord.js@14.17.2: - resolution: {integrity: sha512-mrH6ziLVtNtId4bV4bsaUt5jE6NUaiHMPqO5VsSw1VVhFnjFi9duD8ctlo90/6cUH+8uyKBkoq9mSJ35SuuZ7Q==} - engines: {node: '>=18'} + discord.js@14.14.1: + resolution: {integrity: sha512-/hUVzkIerxKHyRKopJy5xejp4MYKDPTszAnpYxzVVv4qJYf+Tkt+jnT2N29PIPschicaEEpXwF2ARrTYHYwQ5w==} + engines: {node: '>=16.11.0'} doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} @@ -5072,8 +5355,8 @@ packages: domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} @@ -5094,10 +5377,6 @@ packages: resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} engines: {node: '>=0.10'} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - duplexer3@0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} @@ -5124,8 +5403,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.78: - resolution: {integrity: sha512-UmwIt7HRKN1rsJfddG5UG7rCTCTAKoS9JeOy/R0zSenAyaZ8SU3RuXlwcratxhdxGRNpk03iq8O7BA3W7ibLVw==} + electron-to-chromium@1.4.750: + resolution: {integrity: sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==} emoji-chars@1.0.12: resolution: {integrity: sha512-1t7WbkKzQ1hV4dHWM4u8g0SFHSAbxx+8o/lvXisDLTesljSFaxl2wLgMtx4wH922sNcIuLbFty/AuqUDJORd1A==} @@ -5158,28 +5437,30 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - engine.io-parser@5.2.3: - resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engine.io-parser@5.2.2: + resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} engines: {node: '>=10.0.0'} - engine.io@6.6.2: - resolution: {integrity: sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==} + engine.io@6.5.4: + resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} engines: {node: '>=10.2.0'} - enhanced-resolve@5.18.0: - resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} - ent@2.2.2: - resolution: {integrity: sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==} - engines: {node: '>= 0.4'} + ent@2.2.0: + resolution: {integrity: sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==} entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -5194,34 +5475,34 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.6.0: - resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + es-module-lexer@1.5.2: + resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} es5-ext@0.10.64: @@ -5241,13 +5522,13 @@ packages: es6-weak-map@2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} - engines: {node: '>=18'} + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} hasBin: true - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} escape-goat@2.1.1: @@ -5295,8 +5576,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + eslint-module-utils@2.8.1: + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -5316,16 +5597,30 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + eslint-plugin-import@2.29.1: + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: '@typescript-eslint/parser': optional: true + eslint-plugin-prettier@5.1.3: + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + eslint-plugin-prettier@5.2.1: resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5352,8 +5647,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true @@ -5371,8 +5666,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -5398,6 +5693,9 @@ packages: event-emitter@0.3.5: resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + event-lite@0.1.3: + resolution: {integrity: sha512-8qz9nOz5VeD2z96elrEKD2U433+L3DWdUdDkOINLGOJvx1GsMBbMn0aCeu28y8/e85A6mCigBiFlYMnTBEGlSw==} + event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -5448,17 +5746,14 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - fast-content-type-parse@2.0.1: - resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: @@ -5476,25 +5771,24 @@ packages: fast-text-encoding@1.0.6: resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==} - fast-uri@3.0.5: - resolution: {integrity: sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==} + fast-xml-parser@4.2.5: + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} + hasBin: true fast-xml-parser@4.4.1: resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} hasBin: true - fast-xml-parser@4.5.1: - resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} - fast-xml-parser@4.5.1: - resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} + fast-xml-parser@4.5.0: + resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==} hasBin: true fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.18.0: - resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -5506,8 +5800,8 @@ packages: file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} finalhandler@1.1.2: @@ -5538,14 +5832,14 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -5556,16 +5850,16 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} - form-data@2.5.2: - resolution: {integrity: sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==} + form-data@2.5.1: + resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} engines: {node: '>= 0.12'} - form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} formidable-serverless@1.1.1: @@ -5592,8 +5886,8 @@ packages: fs-minipass@1.2.7: resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -5606,8 +5900,8 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -5658,12 +5952,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} get-stream@3.0.0: @@ -5678,12 +5968,12 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.8.1: - resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -5696,8 +5986,9 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true glob@6.0.4: @@ -5724,8 +6015,8 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} globby@11.1.0: @@ -5736,10 +6027,8 @@ packages: resolution: {integrity: sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==} engines: {node: '>=10'} - google-auth-library@9.15.0: - resolution: {integrity: sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==} - google-auth-library@9.15.0: - resolution: {integrity: sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==} + google-auth-library@9.14.2: + resolution: {integrity: sha512-R+FRIfk1GBo3RdlRYWPdwk8nmtVUOn6+BkDomAC46KoU8kzXzE1HLmOasSCbWUByMMAGkknVF0G5kQ69Vj7dlA==} engines: {node: '>=14'} google-p12-pem@3.1.4: @@ -5748,9 +6037,8 @@ packages: deprecated: Package is no longer maintained hasBin: true - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} got@9.6.0: resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} @@ -5777,9 +6065,8 @@ packages: resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} engines: {node: '>=14.0.0'} - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -5792,12 +6079,12 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} has-tostringtag@1.0.2: @@ -5822,8 +6109,8 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - heap-js@2.6.0: - resolution: {integrity: sha512-trFMIq3PATiFRiQmNNeHtsrkwYRByIXUbYNbotiY9RLVfMkdwZdd2eQ38mGt7BRiCKBaj1DyBAIHmm7mmXPuuw==} + heap-js@2.5.0: + resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} engines: {node: '>=10.0.0'} helmet@4.1.1: @@ -5896,8 +6183,8 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} hyperdyperid@1.2.0: @@ -5924,16 +6211,16 @@ packages: ignore-walk@3.0.4: resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-in-the-middle@1.11.2: - resolution: {integrity: sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==} + import-in-the-middle@1.8.1: + resolution: {integrity: sha512-yhRwoHtiLGvmSozNOALgjRPFI6uYsds60EoMqqnXyyv+JOIW/BrrLejuTGBt+bq0T5tLzOHrN0T7xYTm4Qt/ng==} import-lazy@2.1.0: resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} @@ -5967,8 +6254,11 @@ packages: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + int64-buffer@0.1.10: + resolution: {integrity: sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} invert-kv@1.0.0: @@ -5979,8 +6269,12 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} is-arrayish@0.2.1: @@ -5989,20 +6283,15 @@ packages: is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.1.0: - resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} is-buffer@1.1.6: @@ -6016,16 +6305,15 @@ packages: resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} engines: {node: '>= 0.4'} - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} is-docker@2.2.1: @@ -6044,10 +6332,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@1.0.0: resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} engines: {node: '>=0.10.0'} @@ -6060,10 +6344,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -6080,8 +6360,8 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} is-npm@4.0.0: @@ -6092,8 +6372,8 @@ packages: resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} engines: {node: '>=10'} - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} is-number@7.0.0: @@ -6115,20 +6395,16 @@ packages: is-promise@2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} is-retry-allowed@1.2.0: resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} engines: {node: '>=0.10.0'} - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} is-stream@1.1.0: @@ -6139,16 +6415,16 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} is-typedarray@1.0.0: @@ -6158,17 +6434,8 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} @@ -6211,8 +6478,9 @@ packages: iterate-object@1.3.4: resolution: {integrity: sha512-4dG1D1x/7g8PwHS9aK6QV5V94+ZvyP4+d19qDv43EzImmrndysIl4prmJ1hWWIGCqrZHyaHBm6BSEWHOLnpoNw==} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} javascript-natural-sort@0.7.1: resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} @@ -6232,8 +6500,8 @@ packages: join-component@1.1.0: resolution: {integrity: sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==} - jose@4.15.9: - resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + jose@4.15.5: + resolution: {integrity: sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==} js-beautify@1.15.1: resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} @@ -6255,21 +6523,15 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - json-bigint@1.0.0: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} @@ -6295,8 +6557,8 @@ packages: resolution: {integrity: sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==} engines: {node: '>= 4'} - json11@2.0.0: - resolution: {integrity: sha512-VuKJKUSPEJape+daTm70Nx7vdcdorf4S6LCyN2z0jUVH4UrQ4ftXo2kC0bnHpCREmxHuHqCNVPA75BjI3CB6Ag==} + json11@1.1.2: + resolution: {integrity: sha512-5r1RHT1/Gr/jsI/XZZj/P6F11BKM8xvTaftRuiLkQI9Z2PFDukM82Ysxw8yDszb3NJP/NKnRlSGmhUdG99rlBw==} hasBin: true json2csv@5.0.7: @@ -6491,8 +6753,12 @@ packages: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + + lru-cache@4.0.2: + resolution: {integrity: sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==} lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -6512,8 +6778,8 @@ packages: resolution: {integrity: sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==} engines: {node: 14 || >=16.14} - lru-memoizer@2.3.0: - resolution: {integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==} + lru-memoizer@2.2.0: + resolution: {integrity: sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==} lru-queue@0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} @@ -6535,10 +6801,6 @@ packages: map-o@2.0.10: resolution: {integrity: sha512-BxazE81fVByHWasyXhqKeo2m7bFKYu+ZbEfiuexMOnklXW+tzDvnlTi/JaklEeuuwqcqJzPaf9q+TWptSGXeLg==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - md5@2.3.0: resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} @@ -6550,13 +6812,12 @@ packages: resolution: {integrity: sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==} engines: {node: '>=4'} - memfs@4.15.3: - resolution: {integrity: sha512-vR/g1SgqvKJgAyYla+06G4p/EOcEmwhYuVb1yc1ixcKf8o/sh7Zngv63957ZSNd1xrZJoinmNyDf2LzuP8WJXw==} + memfs@4.11.1: + resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} engines: {node: '>= 4.0.0'} - memoizee@0.4.17: - resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} - engines: {node: '>=0.12'} + memoizee@0.4.15: + resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} @@ -6575,18 +6836,14 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} - engines: {node: '>= 0.6'} - mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -6632,8 +6889,8 @@ packages: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: @@ -6642,8 +6899,8 @@ packages: minipass@2.9.0: resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} minizlib@1.3.3: @@ -6661,8 +6918,8 @@ packages: module-details-from-path@1.0.3: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} - moment-timezone@0.5.46: - resolution: {integrity: sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==} + moment-timezone@0.5.45: + resolution: {integrity: sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==} moment@2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} @@ -6679,6 +6936,9 @@ packages: ms@2.1.1: resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -6686,6 +6946,10 @@ packages: resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} engines: {node: '>=12.13'} + msgpack-lite@0.1.26: + resolution: {integrity: sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==} + hasBin: true + mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} @@ -6696,11 +6960,11 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.22.0: - resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} + nan@2.19.0: + resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -6739,6 +7003,9 @@ packages: next-tick@1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + node-addon-api@3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} @@ -6766,8 +7033,8 @@ packages: resolution: {integrity: sha512-zLcTg6P4AbcHPq465ZMFNXx7XpKKJh+7kkN699NiQWisR2uWYOWNWqRHAmbnmKiL4e9aLSlmy5U7rEMUXV59+A==} hasBin: true - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + node-gyp-build@4.8.0: + resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} hasBin: true node-html-markdown@1.3.0: @@ -6789,8 +7056,8 @@ packages: node-readfiles@0.2.0: resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} nodemon@2.0.22: resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} @@ -6802,20 +7069,24 @@ packages: engines: {node: '>=8.10.0'} hasBin: true - nodemon@3.1.9: - resolution: {integrity: sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==} + nodemon@3.1.0: + resolution: {integrity: sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==} engines: {node: '>=10'} hasBin: true noms@0.0.0: resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} + nopt@1.0.10: + resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} + hasBin: true + nopt@4.0.3: resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==} hasBin: true - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} + nopt@7.2.0: + resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true @@ -6884,9 +7155,8 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} - engines: {node: '>= 0.4'} + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} object-keys@0.4.0: resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==} @@ -6895,8 +7165,8 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} object.entries@1.1.8: @@ -6911,8 +7181,8 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} omit-deep-by-values@1.0.2: @@ -6976,10 +7246,6 @@ packages: resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} deprecated: This package is no longer supported. - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - p-cancelable@1.1.0: resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} @@ -7032,9 +7298,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-json@6.5.0: resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} engines: {node: '>=8'} @@ -7143,16 +7406,16 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-to-regexp@0.1.8: + resolution: {integrity: sha512-EErxvEqTuliG5GCVHNt3K3UmfKhlOM26QtiJZ6XBnZgCd7n+P5aHNV37wFHGJSpbjN4danT+1CpOFT4giETmRQ==} + path-type@2.0.0: resolution: {integrity: sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==} engines: {node: '>=4'} @@ -7173,11 +7436,11 @@ packages: pg-cloudflare@1.1.1: resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} - pg-connection-string@2.7.0: - resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} + pg-connection-string@2.6.4: + resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} - pg-cursor@2.12.1: - resolution: {integrity: sha512-V13tEaA9Oq1w+V6Q3UBIB/blxJrwbbr35/dY54r/86soBJ7xkP236bXaORUTVXUPt9B6Ql2BQu+uwQiuMfRVgg==} + pg-cursor@2.12.0: + resolution: {integrity: sha512-rppw54OnuYZfMUjiJI2zJMwAjjt2V9EtLUb+t7V5tqwSE5Jxod+7vA7Y0FI6Nq976jNLciA0hoVkwvjjB8qzEw==} peerDependencies: pg: ^8 @@ -7185,26 +7448,24 @@ packages: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - pg-minify@1.6.5: - resolution: {integrity: sha512-u0UE8veaCnMfJmoklqneeBBopOAPG3/6DHqGVHYAhz8DkJXh9dnjPlz25fRxn4e+6XVzdOp7kau63Rp52fZ3WQ==} - engines: {node: '>=14.0.0'} + pg-minify@1.6.3: + resolution: {integrity: sha512-NoSsPqXxbkD8RIe+peQCqiea4QzXgosdTKY8p7PsbbGsh2F8TifDj/vJxfuR8qJwNYrijdSs7uf0tAe6WOyCsQ==} + engines: {node: '>=12.0.0'} - pg-pool@3.7.0: - resolution: {integrity: sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==} + pg-pool@3.6.2: + resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} peerDependencies: pg: '>=8.0' - pg-promise@11.10.2: - resolution: {integrity: sha512-wK4yjxZdfxBmAMcs40q6IsC1SOzdLilc1yNvJqlbOjtm2syayqLDCt1JQ9lhS6yNSgVlGOQZT88yb/SADJmEBw==} + pg-promise@11.6.0: + resolution: {integrity: sha512-NDRPMfkv3ia89suWlJ4iGvP6X5YFrLJ2+9AIVISeBFFZ29Eb4FNXX9JaVb1p1OrpQkE2yT7igmXPL7UYQhk+6A==} engines: {node: '>=14.0'} - peerDependencies: - pg-query-stream: 4.7.1 - pg-protocol@1.7.0: - resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} + pg-protocol@1.6.1: + resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} - pg-query-stream@4.7.1: - resolution: {integrity: sha512-UMgsgn/pOIYsIifRySp59vwlpTpLADMK9HWJtq5ff0Z3MxBnPMGnCQeaQl5VuL+7ov4F96mSzIRIcz+Duo6OiQ==} + pg-query-stream@4.7.0: + resolution: {integrity: sha512-aQpK8yfFTvOzvPmhXEzWfkwM24lv2Y3TfFY0HJYwx0YM/2fL4DhqpBhLni2Kd+l9p/XoDEi+HFvEvOCm7oqaLg==} peerDependencies: pg: ^8 @@ -7212,8 +7473,8 @@ packages: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg@8.13.1: - resolution: {integrity: sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==} + pg@8.11.5: + resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -7224,8 +7485,8 @@ packages: pgpass@1.0.5: resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} picomatch-browser@2.2.6: resolution: {integrity: sha512-0ypsOQt9D4e3hziV8O4elD9uN0z/jtUEfxVRtNaAAtXIyUx9m/SzlO020i8YNL2aL/E6blOvvHQcin6HZlFy/w==} @@ -7247,8 +7508,8 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -7282,8 +7543,13 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@3.4.2: - resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -7301,8 +7567,8 @@ packages: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} - protobufjs@7.4.0: - resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + protobufjs@7.2.6: + resolution: {integrity: sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==} engines: {node: '>=12.0.0'} proxy-addr@2.0.7: @@ -7318,8 +7584,8 @@ packages: pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} pumpify@2.0.1: resolution: {integrity: sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==} @@ -7327,9 +7593,6 @@ packages: punycode@1.3.2: resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -7345,12 +7608,12 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + qs@6.12.1: + resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} engines: {node: '>=0.6'} - qs@6.13.1: - resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} qs@6.7.0: @@ -7425,22 +7688,18 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - redis@4.7.0: - resolution: {integrity: sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==} + redis@4.6.13: + resolution: {integrity: sha512-MHgkS4B+sPjCXpf+HfdetBwbRz6vCtsceTmw1pHNYJAsYxrfpOP6dz+piJWGos8wqG7qb3vj/Rrc5qOlmInUuA==} reduce-flatten@2.0.0: resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} engines: {node: '>=6'} - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - reftools@1.1.9: resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==} - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} + regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} regenerate@1.4.2: @@ -7452,12 +7711,12 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} - regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} + regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} registry-auth-token@4.2.2: @@ -7468,11 +7727,8 @@ packages: resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} engines: {node: '>=8'} - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true remove-trailing-slash@0.1.1: @@ -7499,9 +7755,8 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true responselike@1.0.2: @@ -7534,9 +7789,6 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@2.4.5: resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -7558,8 +7810,8 @@ packages: rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -7571,12 +7823,8 @@ packages: safe-json-stringify@1.2.0: resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==} - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} safe-stable-stringify@2.5.0: @@ -7586,23 +7834,19 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sanitize-html@2.14.0: - resolution: {integrity: sha512-CafX+IUPxZshXqqRaG9ZClSlfPVjSxI0td7n07hk8QO2oO+9JDnlcL8iM8TWeOXOIBFgIOx6zioTzM53AOMn3g==} + sanitize-html@2.13.0: + resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} sax@1.2.1: resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} - schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} - engines: {node: '>= 10.13.0'} - section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -7632,8 +7876,8 @@ packages: resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true @@ -7706,10 +7950,6 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - setprototypeof@1.1.1: resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} @@ -7732,9 +7972,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.2: - resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} - engines: {node: '>= 0.4'} + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} should-equal@2.0.0: resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} @@ -7754,20 +7993,8 @@ packages: should@13.2.3: resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} signal-exit@3.0.7: @@ -7806,19 +8033,19 @@ packages: peerDependencies: asn1.js: ^5.4.1 - socket.io-adapter@2.5.5: - resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + socket.io-adapter@2.5.4: + resolution: {integrity: sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==} socket.io-parser@4.2.4: resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} engines: {node: '>=10.0.0'} - socket.io@4.8.1: - resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} + socket.io@4.7.5: + resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==} engines: {node: '>=10.2.0'} - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} source-map-loader@4.0.2: @@ -7851,12 +8078,12 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.20: - resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - spex@3.4.0: - resolution: {integrity: sha512-8JeZJ7QlEBnSj1W1fKXgbB2KUPA8k4BxFMf6lZX/c1ZagU/1b9uZWZK0yD6yjfzqAIuTNG4YlRmtMpQiXuohsg==} - engines: {node: '>=14.0.0'} + spex@3.3.0: + resolution: {integrity: sha512-VNiXjFp6R4ldPbVRYbpxlD35yRHceecVXlct1J4/X80KuuPnW2AXMq3sGwhnJOhKkUsOxAT6nRGfGE5pocVw5w==} + engines: {node: '>=10.0.0'} split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} @@ -7898,13 +8125,12 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} @@ -7996,6 +8222,10 @@ packages: '@swc/core': ^1.2.147 webpack: '>=2' + synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.9.2: resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -8024,8 +8254,8 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - terser-webpack-plugin@5.3.11: - resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -8040,8 +8270,8 @@ packages: uglify-js: optional: true - terser@5.37.0: - resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} + terser@5.30.4: + resolution: {integrity: sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==} engines: {node: '>=10'} hasBin: true @@ -8067,15 +8297,14 @@ packages: through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - timers-ext@0.1.8: - resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} - engines: {node: '>=0.12'} + timers-ext@0.1.7: + resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} - tldts-core@6.1.71: - resolution: {integrity: sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg==} + tldts-core@6.1.18: + resolution: {integrity: sha512-e4wx32F/7dMBSZyKAx825Yte3U0PQtZZ0bkWxYQiwLteRVnQ5zM40fEbi0IyNtwQssgJAk3GCr7Q+w39hX0VKA==} - tldts@6.1.71: - resolution: {integrity: sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw==} + tldts@6.1.18: + resolution: {integrity: sha512-F+6zjPFnFxZ0h6uGb8neQWwHQm8u3orZVFribsGq4eBgEVrzSkHxzWS2l6aKr19T1vXiOMFjqfff4fQt+WgJFg==} hasBin: true tlhunter-sorted-set@0.1.0: @@ -8114,8 +8343,8 @@ packages: toposort-class@1.0.1: resolution: {integrity: sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==} - touch@3.1.1: - resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + touch@3.1.0: + resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} hasBin: true tr46@0.0.3: @@ -8131,8 +8360,8 @@ packages: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -8164,8 +8393,8 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -8173,8 +8402,8 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tsx@4.19.2: - resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + tsx@4.7.3: + resolution: {integrity: sha512-+fQnMqIp/jxZEXLcj6WzYy9FhcS5/Dfk8y4AtzJ6ejKcKqmfTF8Gso/jtrzDggCF2zTU20gJa6n8XqPYwDAUYQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -8198,23 +8427,23 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - type@2.7.3: - resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} + type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} typedarray-to-buffer@3.1.5: @@ -8228,8 +8457,8 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - typescript@5.7.2: - resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -8248,9 +8477,8 @@ packages: resolution: {integrity: sha512-Z274K+e8goZK8QJxmbRPhl89HPO1K+ORFtm6rySPhFKfKc5GHhqdzD0SGhSWHkzoXasqJuItdhorSvY7/Cgflw==} engines: {node: '>=6.0.0'} - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} undefsafe@2.0.5: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} @@ -8258,30 +8486,24 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici@5.27.2: + resolution: {integrity: sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==} + engines: {node: '>=14.0'} undici@5.28.4: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} - undici@6.19.8: - resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} - engines: {node: '>=18.17'} - - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} engines: {node: '>=4'} unicode-property-aliases-ecmascript@2.1.0: @@ -8295,8 +8517,8 @@ packages: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} - universal-github-app-jwt@1.2.0: - resolution: {integrity: sha512-dncpMpnsKBk0eetwfN8D8OUHGfiDhhJ+mtsbMl+7PfW7mYjiH8LIcqRmYMtzYLgSh47HjfdBtrBwIQ/gizKR3g==} + universal-github-app-jwt@1.1.2: + resolution: {integrity: sha512-t1iB2FmLFE+yyJY9+3wMx0ejB+MQpEVkH0gQv7dR6FZyltyq+ZZO0uDpbopxhrZ3SLEO4dCEkIujOMldEQ2iOA==} universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} @@ -8316,8 +8538,8 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -8370,8 +8592,8 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validator@13.12.0: - resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} engines: {node: '>= 0.10'} vary@1.1.2: @@ -8387,8 +8609,8 @@ packages: deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm. hasBin: true - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} wcwidth@1.0.1: @@ -8401,8 +8623,8 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.97.1: - resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} + webpack@5.91.0: + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -8414,23 +8636,14 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} which@1.3.1: @@ -8495,20 +8708,20 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + ws@8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + utf-8-validate: ^5.0.2 peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + ws@8.14.2: + resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -8615,16 +8828,16 @@ packages: snapshots: - '@actions/core@1.11.1': + '@actions/core@1.10.1': dependencies: - '@actions/exec': 1.1.1 - '@actions/http-client': 2.2.3 + '@actions/http-client': 2.2.1 + uuid: 8.3.2 '@actions/exec@1.1.1': dependencies: '@actions/io': 1.1.3 - '@actions/http-client@2.2.3': + '@actions/http-client@2.2.1': dependencies: tunnel: 0.0.6 undici: 5.28.4 @@ -8633,731 +8846,1390 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@apidevtools/openapi-schemas@2.1.0': {} + '@apidevtools/swagger-methods@3.0.2': {} + '@aws-crypto/crc32@3.0.0': + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.567.0 + tslib: 1.14.1 + '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.723.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.686.0 + tslib: 2.6.2 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.723.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.686.0 + tslib: 2.6.2 + + '@aws-crypto/ie11-detection@3.0.0': + dependencies: + tslib: 1.14.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-locate-window': 3.723.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-locate-window': 3.535.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@aws-crypto/sha256-browser@3.0.0': + dependencies: + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.567.0 + '@aws-sdk/util-locate-window': 3.535.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 '@aws-crypto/sha256-browser@5.2.0': dependencies: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-locate-window': 3.723.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-locate-window': 3.535.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@aws-crypto/sha256-js@3.0.0': + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.567.0 + tslib: 1.14.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.723.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.686.0 + tslib: 2.6.2 + + '@aws-crypto/supports-web-crypto@3.0.0': + dependencies: + tslib: 1.14.1 '@aws-crypto/supports-web-crypto@5.2.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 - '@aws-crypto/util@5.2.0': + '@aws-crypto/util@3.0.0': dependencies: - '@aws-sdk/types': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.567.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 - '@aws-sdk/client-bedrock-runtime@3.723.0': + '@aws-crypto/util@5.2.0': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.723.0(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/client-sts': 3.723.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/credential-provider-node': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/middleware-host-header': 3.723.0 - '@aws-sdk/middleware-logger': 3.723.0 - '@aws-sdk/middleware-recursion-detection': 3.723.0 - '@aws-sdk/middleware-user-agent': 3.723.0 - '@aws-sdk/region-config-resolver': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-endpoints': 3.723.0 - '@aws-sdk/util-user-agent-browser': 3.723.0 - '@aws-sdk/util-user-agent-node': 3.723.0 - '@smithy/config-resolver': 4.0.0 - '@smithy/core': 3.0.0 - '@smithy/eventstream-serde-browser': 4.0.0 - '@smithy/eventstream-serde-config-resolver': 4.0.0 - '@smithy/eventstream-serde-node': 4.0.0 - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/hash-node': 4.0.0 - '@smithy/invalid-dependency': 4.0.0 - '@smithy/middleware-content-length': 4.0.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/middleware-retry': 4.0.0 - '@smithy/middleware-serde': 4.0.0 - '@smithy/middleware-stack': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.0 - '@smithy/util-defaults-mode-node': 4.0.0 - '@smithy/util-endpoints': 3.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-retry': 4.0.0 - '@smithy/util-stream': 4.0.0 - '@smithy/util-utf8': 4.0.0 - '@types/uuid': 9.0.8 - tslib: 2.8.1 - uuid: 9.0.1 + '@aws-sdk/types': 3.686.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 + + '@aws-sdk/client-bedrock-runtime@3.572.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sso-oidc': 3.572.0(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/client-sts': 3.572.0 + '@aws-sdk/core': 3.572.0 + '@aws-sdk/credential-provider-node': 3.572.0(@aws-sdk/client-sso-oidc@3.572.0)(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/middleware-host-header': 3.567.0 + '@aws-sdk/middleware-logger': 3.568.0 + '@aws-sdk/middleware-recursion-detection': 3.567.0 + '@aws-sdk/middleware-user-agent': 3.572.0 + '@aws-sdk/region-config-resolver': 3.572.0 + '@aws-sdk/types': 3.567.0 + '@aws-sdk/util-endpoints': 3.572.0 + '@aws-sdk/util-user-agent-browser': 3.567.0 + '@aws-sdk/util-user-agent-node': 3.568.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/eventstream-serde-browser': 2.2.0 + '@smithy/eventstream-serde-config-resolver': 2.2.0 + '@smithy/eventstream-serde-node': 2.2.0 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-stream': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-comprehend@3.723.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.723.0(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/client-sts': 3.723.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/credential-provider-node': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/middleware-host-header': 3.723.0 - '@aws-sdk/middleware-logger': 3.723.0 - '@aws-sdk/middleware-recursion-detection': 3.723.0 - '@aws-sdk/middleware-user-agent': 3.723.0 - '@aws-sdk/region-config-resolver': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-endpoints': 3.723.0 - '@aws-sdk/util-user-agent-browser': 3.723.0 - '@aws-sdk/util-user-agent-node': 3.723.0 - '@smithy/config-resolver': 4.0.0 - '@smithy/core': 3.0.0 - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/hash-node': 4.0.0 - '@smithy/invalid-dependency': 4.0.0 - '@smithy/middleware-content-length': 4.0.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/middleware-retry': 4.0.0 - '@smithy/middleware-serde': 4.0.0 - '@smithy/middleware-stack': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.0 - '@smithy/util-defaults-mode-node': 4.0.0 - '@smithy/util-endpoints': 3.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-retry': 4.0.0 - '@smithy/util-utf8': 4.0.0 - '@types/uuid': 9.0.8 - tslib: 2.8.1 + '@aws-sdk/client-comprehend@3.564.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.556.0 + '@aws-sdk/credential-provider-node': 3.564.0 + '@aws-sdk/middleware-host-header': 3.535.0 + '@aws-sdk/middleware-logger': 3.535.0 + '@aws-sdk/middleware-recursion-detection': 3.535.0 + '@aws-sdk/middleware-user-agent': 3.540.0 + '@aws-sdk/region-config-resolver': 3.535.0 + '@aws-sdk/types': 3.535.0 + '@aws-sdk/util-endpoints': 3.540.0 + '@aws-sdk/util-user-agent-browser': 3.535.0 + '@aws-sdk/util-user-agent-node': 3.535.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 uuid: 9.0.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.723.0': + '@aws-sdk/client-s3@3.689.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.723.0(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/client-sts': 3.723.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/credential-provider-node': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/middleware-bucket-endpoint': 3.723.0 - '@aws-sdk/middleware-expect-continue': 3.723.0 - '@aws-sdk/middleware-flexible-checksums': 3.723.0 - '@aws-sdk/middleware-host-header': 3.723.0 - '@aws-sdk/middleware-location-constraint': 3.723.0 - '@aws-sdk/middleware-logger': 3.723.0 - '@aws-sdk/middleware-recursion-detection': 3.723.0 - '@aws-sdk/middleware-sdk-s3': 3.723.0 - '@aws-sdk/middleware-ssec': 3.723.0 - '@aws-sdk/middleware-user-agent': 3.723.0 - '@aws-sdk/region-config-resolver': 3.723.0 - '@aws-sdk/signature-v4-multi-region': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-endpoints': 3.723.0 - '@aws-sdk/util-user-agent-browser': 3.723.0 - '@aws-sdk/util-user-agent-node': 3.723.0 - '@aws-sdk/xml-builder': 3.723.0 - '@smithy/config-resolver': 4.0.0 - '@smithy/core': 3.0.0 - '@smithy/eventstream-serde-browser': 4.0.0 - '@smithy/eventstream-serde-config-resolver': 4.0.0 - '@smithy/eventstream-serde-node': 4.0.0 - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/hash-blob-browser': 4.0.0 - '@smithy/hash-node': 4.0.0 - '@smithy/hash-stream-node': 4.0.0 - '@smithy/invalid-dependency': 4.0.0 - '@smithy/md5-js': 4.0.0 - '@smithy/middleware-content-length': 4.0.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/middleware-retry': 4.0.0 - '@smithy/middleware-serde': 4.0.0 - '@smithy/middleware-stack': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.0 - '@smithy/util-defaults-mode-node': 4.0.0 - '@smithy/util-endpoints': 3.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-retry': 4.0.0 - '@smithy/util-stream': 4.0.0 - '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-bucket-endpoint': 3.686.0 + '@aws-sdk/middleware-expect-continue': 3.686.0 + '@aws-sdk/middleware-flexible-checksums': 3.689.0 + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-location-constraint': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-sdk-s3': 3.687.0 + '@aws-sdk/middleware-ssec': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/signature-v4-multi-region': 3.687.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@aws-sdk/xml-builder': 3.686.0 + '@smithy/config-resolver': 3.0.10 + '@smithy/core': 2.5.1 + '@smithy/eventstream-serde-browser': 3.0.11 + '@smithy/eventstream-serde-config-resolver': 3.0.8 + '@smithy/eventstream-serde-node': 3.0.10 + '@smithy/fetch-http-handler': 4.0.0 + '@smithy/hash-blob-browser': 3.1.7 + '@smithy/hash-node': 3.0.8 + '@smithy/hash-stream-node': 3.1.7 + '@smithy/invalid-dependency': 3.0.8 + '@smithy/md5-js': 3.0.8 + '@smithy/middleware-content-length': 3.0.10 + '@smithy/middleware-endpoint': 3.2.1 + '@smithy/middleware-retry': 3.0.25 + '@smithy/middleware-serde': 3.0.8 + '@smithy/middleware-stack': 3.0.8 + '@smithy/node-config-provider': 3.1.9 + '@smithy/node-http-handler': 3.2.5 + '@smithy/protocol-http': 4.1.5 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + '@smithy/url-parser': 3.0.8 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.25 + '@smithy/util-defaults-mode-node': 3.0.25 + '@smithy/util-endpoints': 2.1.4 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-retry': 3.0.8 + '@smithy/util-stream': 3.2.1 + '@smithy/util-utf8': 3.0.0 + '@smithy/util-waiter': 3.1.7 + tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sqs@3.723.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.723.0(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/client-sts': 3.723.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/credential-provider-node': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/middleware-host-header': 3.723.0 - '@aws-sdk/middleware-logger': 3.723.0 - '@aws-sdk/middleware-recursion-detection': 3.723.0 - '@aws-sdk/middleware-sdk-sqs': 3.723.0 - '@aws-sdk/middleware-user-agent': 3.723.0 - '@aws-sdk/region-config-resolver': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-endpoints': 3.723.0 - '@aws-sdk/util-user-agent-browser': 3.723.0 - '@aws-sdk/util-user-agent-node': 3.723.0 - '@smithy/config-resolver': 4.0.0 - '@smithy/core': 3.0.0 - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/hash-node': 4.0.0 - '@smithy/invalid-dependency': 4.0.0 - '@smithy/md5-js': 4.0.0 - '@smithy/middleware-content-length': 4.0.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/middleware-retry': 4.0.0 - '@smithy/middleware-serde': 4.0.0 - '@smithy/middleware-stack': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.0 - '@smithy/util-defaults-mode-node': 4.0.0 - '@smithy/util-endpoints': 3.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-retry': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/client-sqs@3.564.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.556.0 + '@aws-sdk/credential-provider-node': 3.564.0 + '@aws-sdk/middleware-host-header': 3.535.0 + '@aws-sdk/middleware-logger': 3.535.0 + '@aws-sdk/middleware-recursion-detection': 3.535.0 + '@aws-sdk/middleware-sdk-sqs': 3.552.0 + '@aws-sdk/middleware-user-agent': 3.540.0 + '@aws-sdk/region-config-resolver': 3.535.0 + '@aws-sdk/types': 3.535.0 + '@aws-sdk/util-endpoints': 3.540.0 + '@aws-sdk/util-user-agent-browser': 3.535.0 + '@aws-sdk/util-user-agent-node': 3.535.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/md5-js': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso-oidc@3.564.0(@aws-sdk/credential-provider-node@3.564.0)': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.556.0 + '@aws-sdk/credential-provider-node': 3.564.0 + '@aws-sdk/middleware-host-header': 3.535.0 + '@aws-sdk/middleware-logger': 3.535.0 + '@aws-sdk/middleware-recursion-detection': 3.535.0 + '@aws-sdk/middleware-user-agent': 3.540.0 + '@aws-sdk/region-config-resolver': 3.535.0 + '@aws-sdk/types': 3.535.0 + '@aws-sdk/util-endpoints': 3.540.0 + '@aws-sdk/util-user-agent-browser': 3.535.0 + '@aws-sdk/util-user-agent-node': 3.535.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso-oidc@3.572.0(@aws-sdk/client-sts@3.572.0)': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.572.0 + '@aws-sdk/core': 3.572.0 + '@aws-sdk/credential-provider-node': 3.572.0(@aws-sdk/client-sso-oidc@3.572.0)(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/middleware-host-header': 3.567.0 + '@aws-sdk/middleware-logger': 3.568.0 + '@aws-sdk/middleware-recursion-detection': 3.567.0 + '@aws-sdk/middleware-user-agent': 3.572.0 + '@aws-sdk/region-config-resolver': 3.572.0 + '@aws-sdk/types': 3.567.0 + '@aws-sdk/util-endpoints': 3.572.0 + '@aws-sdk/util-user-agent-browser': 3.567.0 + '@aws-sdk/util-user-agent-node': 3.568.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 transitivePeerDependencies: + - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0)': + '@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.723.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/credential-provider-node': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/middleware-host-header': 3.723.0 - '@aws-sdk/middleware-logger': 3.723.0 - '@aws-sdk/middleware-recursion-detection': 3.723.0 - '@aws-sdk/middleware-user-agent': 3.723.0 - '@aws-sdk/region-config-resolver': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-endpoints': 3.723.0 - '@aws-sdk/util-user-agent-browser': 3.723.0 - '@aws-sdk/util-user-agent-node': 3.723.0 - '@smithy/config-resolver': 4.0.0 - '@smithy/core': 3.0.0 - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/hash-node': 4.0.0 - '@smithy/invalid-dependency': 4.0.0 - '@smithy/middleware-content-length': 4.0.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/middleware-retry': 4.0.0 - '@smithy/middleware-serde': 4.0.0 - '@smithy/middleware-stack': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.0 - '@smithy/util-defaults-mode-node': 4.0.0 - '@smithy/util-endpoints': 3.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-retry': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.10 + '@smithy/core': 2.5.1 + '@smithy/fetch-http-handler': 4.0.0 + '@smithy/hash-node': 3.0.8 + '@smithy/invalid-dependency': 3.0.8 + '@smithy/middleware-content-length': 3.0.10 + '@smithy/middleware-endpoint': 3.2.1 + '@smithy/middleware-retry': 3.0.25 + '@smithy/middleware-serde': 3.0.8 + '@smithy/middleware-stack': 3.0.8 + '@smithy/node-config-provider': 3.1.9 + '@smithy/node-http-handler': 3.2.5 + '@smithy/protocol-http': 4.1.5 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + '@smithy/url-parser': 3.0.8 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.25 + '@smithy/util-defaults-mode-node': 3.0.25 + '@smithy/util-endpoints': 2.1.4 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-retry': 3.0.8 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.556.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.556.0 + '@aws-sdk/middleware-host-header': 3.535.0 + '@aws-sdk/middleware-logger': 3.535.0 + '@aws-sdk/middleware-recursion-detection': 3.535.0 + '@aws-sdk/middleware-user-agent': 3.540.0 + '@aws-sdk/region-config-resolver': 3.535.0 + '@aws-sdk/types': 3.535.0 + '@aws-sdk/util-endpoints': 3.540.0 + '@aws-sdk/util-user-agent-browser': 3.535.0 + '@aws-sdk/util-user-agent-node': 3.535.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.572.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.572.0 + '@aws-sdk/middleware-host-header': 3.567.0 + '@aws-sdk/middleware-logger': 3.568.0 + '@aws-sdk/middleware-recursion-detection': 3.567.0 + '@aws-sdk/middleware-user-agent': 3.572.0 + '@aws-sdk/region-config-resolver': 3.572.0 + '@aws-sdk/types': 3.567.0 + '@aws-sdk/util-endpoints': 3.572.0 + '@aws-sdk/util-user-agent-browser': 3.567.0 + '@aws-sdk/util-user-agent-node': 3.568.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.723.0': + '@aws-sdk/client-sso@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/middleware-host-header': 3.723.0 - '@aws-sdk/middleware-logger': 3.723.0 - '@aws-sdk/middleware-recursion-detection': 3.723.0 - '@aws-sdk/middleware-user-agent': 3.723.0 - '@aws-sdk/region-config-resolver': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-endpoints': 3.723.0 - '@aws-sdk/util-user-agent-browser': 3.723.0 - '@aws-sdk/util-user-agent-node': 3.723.0 - '@smithy/config-resolver': 4.0.0 - '@smithy/core': 3.0.0 - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/hash-node': 4.0.0 - '@smithy/invalid-dependency': 4.0.0 - '@smithy/middleware-content-length': 4.0.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/middleware-retry': 4.0.0 - '@smithy/middleware-serde': 4.0.0 - '@smithy/middleware-stack': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.0 - '@smithy/util-defaults-mode-node': 4.0.0 - '@smithy/util-endpoints': 3.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-retry': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.10 + '@smithy/core': 2.5.1 + '@smithy/fetch-http-handler': 4.0.0 + '@smithy/hash-node': 3.0.8 + '@smithy/invalid-dependency': 3.0.8 + '@smithy/middleware-content-length': 3.0.10 + '@smithy/middleware-endpoint': 3.2.1 + '@smithy/middleware-retry': 3.0.25 + '@smithy/middleware-serde': 3.0.8 + '@smithy/middleware-stack': 3.0.8 + '@smithy/node-config-provider': 3.1.9 + '@smithy/node-http-handler': 3.2.5 + '@smithy/protocol-http': 4.1.5 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + '@smithy/url-parser': 3.0.8 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.25 + '@smithy/util-defaults-mode-node': 3.0.25 + '@smithy/util-endpoints': 2.1.4 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-retry': 3.0.8 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sts@3.556.0(@aws-sdk/credential-provider-node@3.564.0)': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.556.0 + '@aws-sdk/credential-provider-node': 3.564.0 + '@aws-sdk/middleware-host-header': 3.535.0 + '@aws-sdk/middleware-logger': 3.535.0 + '@aws-sdk/middleware-recursion-detection': 3.535.0 + '@aws-sdk/middleware-user-agent': 3.540.0 + '@aws-sdk/region-config-resolver': 3.535.0 + '@aws-sdk/types': 3.535.0 + '@aws-sdk/util-endpoints': 3.540.0 + '@aws-sdk/util-user-agent-browser': 3.535.0 + '@aws-sdk/util-user-agent-node': 3.535.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sts@3.572.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sso-oidc': 3.572.0(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/core': 3.572.0 + '@aws-sdk/credential-provider-node': 3.572.0(@aws-sdk/client-sso-oidc@3.572.0)(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/middleware-host-header': 3.567.0 + '@aws-sdk/middleware-logger': 3.568.0 + '@aws-sdk/middleware-recursion-detection': 3.567.0 + '@aws-sdk/middleware-user-agent': 3.572.0 + '@aws-sdk/region-config-resolver': 3.572.0 + '@aws-sdk/types': 3.567.0 + '@aws-sdk/util-endpoints': 3.572.0 + '@aws-sdk/util-user-agent-browser': 3.567.0 + '@aws-sdk/util-user-agent-node': 3.568.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.723.0': + '@aws-sdk/client-sts@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.723.0(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/core': 3.723.0 - '@aws-sdk/credential-provider-node': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/middleware-host-header': 3.723.0 - '@aws-sdk/middleware-logger': 3.723.0 - '@aws-sdk/middleware-recursion-detection': 3.723.0 - '@aws-sdk/middleware-user-agent': 3.723.0 - '@aws-sdk/region-config-resolver': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-endpoints': 3.723.0 - '@aws-sdk/util-user-agent-browser': 3.723.0 - '@aws-sdk/util-user-agent-node': 3.723.0 - '@smithy/config-resolver': 4.0.0 - '@smithy/core': 3.0.0 - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/hash-node': 4.0.0 - '@smithy/invalid-dependency': 4.0.0 - '@smithy/middleware-content-length': 4.0.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/middleware-retry': 4.0.0 - '@smithy/middleware-serde': 4.0.0 - '@smithy/middleware-stack': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.0 - '@smithy/util-defaults-mode-node': 4.0.0 - '@smithy/util-endpoints': 3.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-retry': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.10 + '@smithy/core': 2.5.1 + '@smithy/fetch-http-handler': 4.0.0 + '@smithy/hash-node': 3.0.8 + '@smithy/invalid-dependency': 3.0.8 + '@smithy/middleware-content-length': 3.0.10 + '@smithy/middleware-endpoint': 3.2.1 + '@smithy/middleware-retry': 3.0.25 + '@smithy/middleware-serde': 3.0.8 + '@smithy/middleware-stack': 3.0.8 + '@smithy/node-config-provider': 3.1.9 + '@smithy/node-http-handler': 3.2.5 + '@smithy/protocol-http': 4.1.5 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + '@smithy/url-parser': 3.0.8 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.25 + '@smithy/util-defaults-mode-node': 3.0.25 + '@smithy/util-endpoints': 2.1.4 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-retry': 3.0.8 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.723.0': - dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/core': 3.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/property-provider': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/signature-v4': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-middleware': 4.0.0 + '@aws-sdk/core@3.556.0': + dependencies: + '@smithy/core': 1.4.2 + '@smithy/protocol-http': 3.3.0 + '@smithy/signature-v4': 2.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + fast-xml-parser: 4.2.5 + tslib: 2.6.2 + + '@aws-sdk/core@3.572.0': + dependencies: + '@smithy/core': 1.4.2 + '@smithy/protocol-http': 3.3.0 + '@smithy/signature-v4': 2.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + fast-xml-parser: 4.2.5 + tslib: 2.6.2 + + '@aws-sdk/core@3.686.0': + dependencies: + '@aws-sdk/types': 3.686.0 + '@smithy/core': 2.5.1 + '@smithy/node-config-provider': 3.1.9 + '@smithy/property-provider': 3.1.8 + '@smithy/protocol-http': 4.1.5 + '@smithy/signature-v4': 4.2.1 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + '@smithy/util-middleware': 3.0.8 fast-xml-parser: 4.4.1 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-env@3.723.0': - dependencies: - '@aws-sdk/core': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@smithy/property-provider': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.723.0': - dependencies: - '@aws-sdk/core': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/property-provider': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-stream': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0)': - dependencies: - '@aws-sdk/client-sts': 3.723.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/credential-provider-env': 3.723.0 - '@aws-sdk/credential-provider-http': 3.723.0 - '@aws-sdk/credential-provider-process': 3.723.0 - '@aws-sdk/credential-provider-sso': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0)) - '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/types': 3.723.0 - '@smithy/credential-provider-imds': 4.0.0 - '@smithy/property-provider': 4.0.0 - '@smithy/shared-ini-file-loader': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-env@3.535.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-env@3.568.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-env@3.686.0': + dependencies: + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.8 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-http@3.552.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/property-provider': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-stream': 2.2.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-http@3.568.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/property-provider': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-stream': 2.2.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-http@3.686.0': + dependencies: + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/fetch-http-handler': 4.0.0 + '@smithy/node-http-handler': 3.2.5 + '@smithy/property-provider': 3.1.8 + '@smithy/protocol-http': 4.1.5 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + '@smithy/util-stream': 3.2.1 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-ini@3.564.0(@aws-sdk/credential-provider-node@3.564.0)': + dependencies: + '@aws-sdk/client-sts': 3.556.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/credential-provider-env': 3.535.0 + '@aws-sdk/credential-provider-process': 3.535.0 + '@aws-sdk/credential-provider-sso': 3.564.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/credential-provider-web-identity': 3.556.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/types': 3.535.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - aws-crt + + '@aws-sdk/credential-provider-ini@3.572.0(@aws-sdk/client-sso-oidc@3.572.0)(@aws-sdk/client-sts@3.572.0)': + dependencies: + '@aws-sdk/client-sts': 3.572.0 + '@aws-sdk/credential-provider-env': 3.568.0 + '@aws-sdk/credential-provider-process': 3.572.0 + '@aws-sdk/credential-provider-sso': 3.572.0(@aws-sdk/client-sso-oidc@3.572.0) + '@aws-sdk/credential-provider-web-identity': 3.568.0(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/types': 3.567.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + + '@aws-sdk/credential-provider-ini@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0)': + dependencies: + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-env': 3.686.0 + '@aws-sdk/credential-provider-http': 3.686.0 + '@aws-sdk/credential-provider-process': 3.686.0 + '@aws-sdk/credential-provider-sso': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)) + '@aws-sdk/credential-provider-web-identity': 3.686.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/types': 3.686.0 + '@smithy/credential-provider-imds': 3.2.5 + '@smithy/property-provider': 3.1.8 + '@smithy/shared-ini-file-loader': 3.1.9 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + + '@aws-sdk/credential-provider-node@3.564.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.535.0 + '@aws-sdk/credential-provider-http': 3.552.0 + '@aws-sdk/credential-provider-ini': 3.564.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/credential-provider-process': 3.535.0 + '@aws-sdk/credential-provider-sso': 3.564.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/credential-provider-web-identity': 3.556.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/types': 3.535.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.572.0(@aws-sdk/client-sso-oidc@3.572.0)(@aws-sdk/client-sts@3.572.0)': + dependencies: + '@aws-sdk/credential-provider-env': 3.568.0 + '@aws-sdk/credential-provider-http': 3.568.0 + '@aws-sdk/credential-provider-ini': 3.572.0(@aws-sdk/client-sso-oidc@3.572.0)(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/credential-provider-process': 3.572.0 + '@aws-sdk/credential-provider-sso': 3.572.0(@aws-sdk/client-sso-oidc@3.572.0) + '@aws-sdk/credential-provider-web-identity': 3.568.0(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/types': 3.567.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' + - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-node@3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0)': - dependencies: - '@aws-sdk/credential-provider-env': 3.723.0 - '@aws-sdk/credential-provider-http': 3.723.0 - '@aws-sdk/credential-provider-ini': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/credential-provider-process': 3.723.0 - '@aws-sdk/credential-provider-sso': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0)) - '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/types': 3.723.0 - '@smithy/credential-provider-imds': 4.0.0 - '@smithy/property-provider': 4.0.0 - '@smithy/shared-ini-file-loader': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/credential-provider-node@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0)': + dependencies: + '@aws-sdk/credential-provider-env': 3.686.0 + '@aws-sdk/credential-provider-http': 3.686.0 + '@aws-sdk/credential-provider-ini': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/credential-provider-process': 3.686.0 + '@aws-sdk/credential-provider-sso': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)) + '@aws-sdk/credential-provider-web-identity': 3.686.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/types': 3.686.0 + '@smithy/credential-provider-imds': 3.2.5 + '@smithy/property-provider': 3.1.8 + '@smithy/shared-ini-file-loader': 3.1.9 + '@smithy/types': 3.6.0 + tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-process@3.723.0': - dependencies: - '@aws-sdk/core': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@smithy/property-provider': 4.0.0 - '@smithy/shared-ini-file-loader': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))': - dependencies: - '@aws-sdk/client-sso': 3.723.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/token-providers': 3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0)) - '@aws-sdk/types': 3.723.0 - '@smithy/property-provider': 4.0.0 - '@smithy/shared-ini-file-loader': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.535.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-process@3.572.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-process@3.686.0': + dependencies: + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.8 + '@smithy/shared-ini-file-loader': 3.1.9 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-sso@3.564.0(@aws-sdk/credential-provider-node@3.564.0)': + dependencies: + '@aws-sdk/client-sso': 3.556.0 + '@aws-sdk/token-providers': 3.564.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/types': 3.535.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - aws-crt + + '@aws-sdk/credential-provider-sso@3.572.0(@aws-sdk/client-sso-oidc@3.572.0)': + dependencies: + '@aws-sdk/client-sso': 3.572.0 + '@aws-sdk/token-providers': 3.572.0(@aws-sdk/client-sso-oidc@3.572.0) + '@aws-sdk/types': 3.567.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + + '@aws-sdk/credential-provider-sso@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))': + dependencies: + '@aws-sdk/client-sso': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/token-providers': 3.686.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)) + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.8 + '@smithy/shared-ini-file-loader': 3.1.9 + '@smithy/types': 3.6.0 + tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.723.0(@aws-sdk/client-sts@3.723.0)': + '@aws-sdk/credential-provider-web-identity@3.556.0(@aws-sdk/credential-provider-node@3.564.0)': + dependencies: + '@aws-sdk/client-sts': 3.556.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/types': 3.535.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - aws-crt + + '@aws-sdk/credential-provider-web-identity@3.568.0(@aws-sdk/client-sts@3.572.0)': + dependencies: + '@aws-sdk/client-sts': 3.572.0 + '@aws-sdk/types': 3.567.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-web-identity@3.686.0(@aws-sdk/client-sts@3.687.0)': dependencies: - '@aws-sdk/client-sts': 3.723.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@smithy/property-provider': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.8 + '@smithy/types': 3.6.0 + tslib: 2.6.2 '@aws-sdk/hash-node@3.374.0': dependencies: '@smithy/hash-node': 1.1.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@aws-sdk/middleware-bucket-endpoint@3.723.0': + '@aws-sdk/middleware-bucket-endpoint@3.686.0': dependencies: - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-arn-parser': 3.723.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-config-provider': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-arn-parser': 3.679.0 + '@smithy/node-config-provider': 3.1.9 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + '@smithy/util-config-provider': 3.0.0 + tslib: 2.6.2 - '@aws-sdk/middleware-expect-continue@3.723.0': - '@aws-sdk/middleware-expect-continue@3.723.0': + '@aws-sdk/middleware-expect-continue@3.686.0': dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.686.0 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@aws-sdk/middleware-flexible-checksums@3.723.0': - '@aws-sdk/middleware-flexible-checksums@3.723.0': + '@aws-sdk/middleware-flexible-checksums@3.689.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@smithy/is-array-buffer': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-stream': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-host-header@3.723.0': - dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-location-constraint@3.723.0': - dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-logger@3.723.0': - dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-recursion-detection@3.723.0': - dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-s3@3.723.0': - dependencies: - '@aws-sdk/core': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-arn-parser': 3.723.0 - '@smithy/core': 3.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/signature-v4': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-stream': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-sqs@3.723.0': - dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-ssec@3.723.0': - dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-user-agent@3.723.0': - dependencies: - '@aws-sdk/core': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-endpoints': 3.723.0 - '@smithy/core': 3.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/is-array-buffer': 3.0.0 + '@smithy/node-config-provider': 3.1.9 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-stream': 3.2.1 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-host-header@3.535.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-host-header@3.567.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-host-header@3.686.0': + dependencies: + '@aws-sdk/types': 3.686.0 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-location-constraint@3.686.0': + dependencies: + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-logger@3.535.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-logger@3.568.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-logger@3.686.0': + dependencies: + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-recursion-detection@3.535.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-recursion-detection@3.567.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-recursion-detection@3.686.0': + dependencies: + '@aws-sdk/types': 3.686.0 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-sdk-s3@3.556.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@aws-sdk/util-arn-parser': 3.535.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/signature-v4': 2.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-config-provider': 2.3.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-sdk-s3@3.687.0': + dependencies: + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-arn-parser': 3.679.0 + '@smithy/core': 2.5.1 + '@smithy/node-config-provider': 3.1.9 + '@smithy/protocol-http': 4.1.5 + '@smithy/signature-v4': 4.2.1 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-stream': 3.2.1 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-sdk-sqs@3.552.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-hex-encoding': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-ssec@3.686.0': + dependencies: + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-user-agent@3.540.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@aws-sdk/util-endpoints': 3.540.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-user-agent@3.572.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@aws-sdk/util-endpoints': 3.572.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-user-agent@3.687.0': + dependencies: + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@smithy/core': 2.5.1 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + tslib: 2.6.2 '@aws-sdk/node-http-handler@3.374.0': dependencies: '@smithy/node-http-handler': 1.1.0 - tslib: 2.8.1 + tslib: 2.6.2 '@aws-sdk/protocol-http@3.374.0': dependencies: '@smithy/protocol-http': 1.2.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@aws-sdk/region-config-resolver@3.535.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-config-provider': 2.3.0 + '@smithy/util-middleware': 2.2.0 + tslib: 2.6.2 + + '@aws-sdk/region-config-resolver@3.572.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-config-provider': 2.3.0 + '@smithy/util-middleware': 2.2.0 + tslib: 2.6.2 + + '@aws-sdk/region-config-resolver@3.686.0': + dependencies: + '@aws-sdk/types': 3.686.0 + '@smithy/node-config-provider': 3.1.9 + '@smithy/types': 3.6.0 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.8 + tslib: 2.6.2 + + '@aws-sdk/s3-request-presigner@3.564.0': + dependencies: + '@aws-sdk/signature-v4-multi-region': 3.556.0 + '@aws-sdk/types': 3.535.0 + '@aws-sdk/util-format-url': 3.535.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/signature-v4-multi-region@3.556.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.556.0 + '@aws-sdk/types': 3.535.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/signature-v4': 2.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/signature-v4-multi-region@3.687.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.687.0 + '@aws-sdk/types': 3.686.0 + '@smithy/protocol-http': 4.1.5 + '@smithy/signature-v4': 4.2.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/token-providers@3.564.0(@aws-sdk/credential-provider-node@3.564.0)': + dependencies: + '@aws-sdk/client-sso-oidc': 3.564.0(@aws-sdk/credential-provider-node@3.564.0) + '@aws-sdk/types': 3.535.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - aws-crt - '@aws-sdk/region-config-resolver@3.723.0': + '@aws-sdk/token-providers@3.572.0(@aws-sdk/client-sso-oidc@3.572.0)': dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/client-sso-oidc': 3.572.0(@aws-sdk/client-sts@3.572.0) + '@aws-sdk/types': 3.567.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@aws-sdk/s3-request-presigner@3.723.0': + '@aws-sdk/token-providers@3.686.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))': dependencies: - '@aws-sdk/signature-v4-multi-region': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@aws-sdk/util-format-url': 3.723.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.8 + '@smithy/shared-ini-file-loader': 3.1.9 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@aws-sdk/signature-v4-multi-region@3.723.0': + '@aws-sdk/types@3.535.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/signature-v4': 5.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@aws-sdk/token-providers@3.723.0(@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0))': + '@aws-sdk/types@3.567.0': dependencies: - '@aws-sdk/client-sso-oidc': 3.723.0(@aws-sdk/client-sts@3.723.0) - '@aws-sdk/types': 3.723.0 - '@smithy/property-provider': 4.0.0 - '@smithy/shared-ini-file-loader': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@aws-sdk/types@3.723.0': + '@aws-sdk/types@3.686.0': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 '@aws-sdk/url-parser@3.374.0': dependencies: '@smithy/url-parser': 1.1.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@aws-sdk/util-arn-parser@3.535.0': + dependencies: + tslib: 2.6.2 + + '@aws-sdk/util-arn-parser@3.679.0': + dependencies: + tslib: 2.6.2 - '@aws-sdk/util-arn-parser@3.723.0': + '@aws-sdk/util-endpoints@3.540.0': dependencies: - tslib: 2.8.1 + '@aws-sdk/types': 3.535.0 + '@smithy/types': 2.12.0 + '@smithy/util-endpoints': 1.2.0 + tslib: 2.6.2 - '@aws-sdk/util-endpoints@3.723.0': + '@aws-sdk/util-endpoints@3.572.0': dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/types': 4.0.0 - '@smithy/util-endpoints': 3.0.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.567.0 + '@smithy/types': 2.12.0 + '@smithy/util-endpoints': 1.2.0 + tslib: 2.6.2 - '@aws-sdk/util-format-url@3.723.0': + '@aws-sdk/util-endpoints@3.686.0': dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/querystring-builder': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.6.0 + '@smithy/util-endpoints': 2.1.4 + tslib: 2.6.2 - '@aws-sdk/util-locate-window@3.723.0': + '@aws-sdk/util-format-url@3.535.0': dependencies: - tslib: 2.8.1 + '@aws-sdk/types': 3.535.0 + '@smithy/querystring-builder': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/util-locate-window@3.535.0': + dependencies: + tslib: 2.6.2 + + '@aws-sdk/util-user-agent-browser@3.535.0': + dependencies: + '@aws-sdk/types': 3.535.0 + '@smithy/types': 2.12.0 + bowser: 2.11.0 + tslib: 2.6.2 + + '@aws-sdk/util-user-agent-browser@3.567.0': + dependencies: + '@aws-sdk/types': 3.567.0 + '@smithy/types': 2.12.0 + bowser: 2.11.0 + tslib: 2.6.2 - '@aws-sdk/util-user-agent-browser@3.723.0': + '@aws-sdk/util-user-agent-browser@3.686.0': dependencies: - '@aws-sdk/types': 3.723.0 - '@smithy/types': 4.0.0 + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.6.0 bowser: 2.11.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@aws-sdk/util-user-agent-node@3.723.0': + '@aws-sdk/util-user-agent-node@3.535.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.723.0 - '@aws-sdk/types': 3.723.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.535.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@aws-sdk/xml-builder@3.723.0': + '@aws-sdk/util-user-agent-node@3.568.0': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@aws-sdk/types': 3.567.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@aws-sdk/util-user-agent-node@3.687.0': + dependencies: + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/types': 3.686.0 + '@smithy/node-config-provider': 3.1.9 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@aws-sdk/util-utf8-browser@3.259.0': + dependencies: + tslib: 2.6.2 + + '@aws-sdk/xml-builder@3.686.0': + dependencies: + '@smithy/types': 3.6.0 + tslib: 2.6.2 '@azure/abort-controller@1.1.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@azure/abort-controller@2.1.2': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@azure/core-auth@1.9.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.11.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@azure/core-http@3.0.5': + '@azure/core-http@3.0.4(encoding@0.1.13)': dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.9.0 @@ -9366,10 +10238,10 @@ snapshots: '@azure/logger': 1.1.4 '@types/node-fetch': 2.6.12 '@types/tunnel': 0.0.3 - form-data: 4.0.1 - node-fetch: 2.7.0 + form-data: 4.0.0 + node-fetch: 2.7.0(encoding@0.1.13) process: 0.11.10 - tslib: 2.8.1 + tslib: 2.6.2 tunnel: 0.0.6 uuid: 8.3.2 xml2js: 0.5.0 @@ -9381,61 +10253,60 @@ snapshots: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 - tslib: 2.8.1 + tslib: 2.6.2 '@azure/core-paging@1.6.2': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@azure/core-tracing@1.0.0-preview.13': dependencies: - '@opentelemetry/api': 1.9.0 - tslib: 2.8.1 + '@opentelemetry/api': 1.6.0 + tslib: 2.6.2 '@azure/core-util@1.11.0': dependencies: '@azure/abort-controller': 2.1.2 - tslib: 2.8.1 + tslib: 2.6.2 '@azure/logger@1.1.4': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 - '@azure/storage-blob@12.18.0': + '@azure/storage-blob@12.18.0(encoding@0.1.13)': dependencies: '@azure/abort-controller': 1.1.0 - '@azure/core-http': 3.0.5 + '@azure/core-http': 3.0.4(encoding@0.1.13) '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 '@azure/core-tracing': 1.0.0-preview.13 '@azure/logger': 1.1.4 events: 3.3.0 - tslib: 2.8.1 + tslib: 2.6.2 transitivePeerDependencies: - encoding - '@babel/code-frame@7.26.2': + '@babel/code-frame@7.24.2': dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 - '@babel/compat-data@7.26.3': {} + '@babel/compat-data@7.24.4': {} - '@babel/core@7.26.0': + '@babel/core@7.24.4': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9444,689 +10315,738 @@ snapshots: '@babel/generator@7.17.7': dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.24.0 jsesc: 2.5.2 source-map: 0.5.7 - '@babel/generator@7.26.3': + '@babel/generator@7.24.4': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.8 + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.22.5': + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-annotate-as-pure@7.25.9': + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.24.0 - '@babel/helper-compilation-targets@7.25.9': + '@babel/helper-compilation-targets@7.23.6': dependencies: - '@babel/compat-data': 7.26.3 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.3 + '@babel/compat-data': 7.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - debug: 4.4.0(supports-color@5.5.0) + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.24.7': + '@babel/helper-environment-visitor@7.22.20': {} + + '@babel/helper-function-name@7.23.0': dependencies: - '@babel/types': 7.26.3 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 - '@babel/helper-function-name@7.24.7': + '@babel/helper-hoist-variables@7.22.5': dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/types': 7.24.0 - '@babel/helper-hoist-variables@7.24.7': + '@babel/helper-member-expression-to-functions@7.23.0': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.24.0 - '@babel/helper-member-expression-to-functions@7.25.9': + '@babel/helper-module-imports@7.24.3': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 - '@babel/helper-module-imports@7.25.9': + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + '@babel/helper-optimise-call-expression@7.22.5': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 + + '@babel/helper-plugin-utils@7.24.0': {} + + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 - '@babel/helper-optimise-call-expression@7.25.9': + '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/types': 7.26.3 + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils@7.25.9': {} + '@babel/helper-simple-access@7.22.5': + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': + '@babel/helper-split-export-declaration@7.22.6': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 + + '@babel/helper-string-parser@7.24.1': {} + + '@babel/helper-validator-identifier@7.22.20': {} - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + '@babel/helper-validator-option@7.23.5': {} + + '@babel/helper-wrap-function@7.22.20': + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + + '@babel/helpers@7.24.4': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.7': + '@babel/highlight@7.24.2': dependencies: - '@babel/types': 7.26.3 + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 - '@babel/helper-string-parser@7.25.9': {} + '@babel/parser@7.24.4': + dependencies: + '@babel/types': 7.24.0 - '@babel/helper-validator-identifier@7.25.9': {} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option@7.25.9': {} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-wrap-function@7.25.9': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) - '@babel/helpers@7.26.0': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/parser@7.26.3': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4)': dependencies: - '@babel/types': 7.26.3 + '@babel/core': 7.24.4 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': + '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-identifier': 7.22.20 - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': + '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + regenerator-transform: 0.15.2 - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/preset-env@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 + '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + + '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/preset-env@7.24.4(@babel/core@7.24.4)': + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.4) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.4) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.4) + core-js-compat: 3.37.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.3 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/types': 7.24.0 esutils: 2.0.3 - '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': + '@babel/preset-typescript@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) - '@babel/runtime@7.26.0': + '@babel/regjsgen@0.8.0': {} + + '@babel/runtime@7.24.4': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.9': + '@babel/template@7.24.0': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 '@babel/traverse@7.23.2': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@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.26.3 - '@babel/types': 7.26.3 - debug: 4.4.0(supports-color@5.5.0) + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.26.4': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 - debug: 4.4.0(supports-color@5.5.0) + '@babel/traverse@7.24.1': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color '@babel/types@7.17.0': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - '@babel/types@7.26.3': + '@babel/types@7.24.0': dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 '@colors/colors@1.6.0': {} @@ -10140,27 +11060,25 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@datadog/libdatadog@0.3.0': {} - - '@datadog/native-appsec@8.3.0': + '@datadog/native-appsec@7.1.1': dependencies: node-gyp-build: 3.9.0 - '@datadog/native-iast-rewriter@2.6.1': + '@datadog/native-iast-rewriter@2.3.1': dependencies: lru-cache: 7.18.3 - node-gyp-build: 4.8.4 + node-gyp-build: 4.8.0 - '@datadog/native-iast-taint-tracking@3.2.0': + '@datadog/native-iast-taint-tracking@2.1.0': dependencies: node-gyp-build: 3.9.0 - '@datadog/native-metrics@3.1.0': + '@datadog/native-metrics@2.0.0': dependencies: node-addon-api: 6.1.0 node-gyp-build: 3.9.0 - '@datadog/pprof@5.4.1': + '@datadog/pprof@5.3.0': dependencies: delay: 5.0.0 node-gyp-build: 3.9.0 @@ -10170,139 +11088,136 @@ snapshots: '@datadog/sketches-js@2.1.1': {} - '@discordjs/builders@1.10.0': + '@discordjs/builders@1.7.0': dependencies: - '@discordjs/formatters': 0.6.0 - '@discordjs/util': 1.1.1 - '@sapphire/shapeshift': 4.0.0 - discord-api-types: 0.37.115 + '@discordjs/formatters': 0.3.3 + '@discordjs/util': 1.0.2 + '@sapphire/shapeshift': 3.9.7 + discord-api-types: 0.37.61 fast-deep-equal: 3.1.3 ts-mixer: 6.0.4 - tslib: 2.8.1 + tslib: 2.6.2 '@discordjs/collection@1.5.3': {} - '@discordjs/collection@2.1.1': {} + '@discordjs/collection@2.0.0': {} - '@discordjs/formatters@0.6.0': + '@discordjs/formatters@0.3.3': dependencies: - discord-api-types: 0.37.115 + discord-api-types: 0.37.61 - '@discordjs/rest@2.4.2': + '@discordjs/rest@2.2.0': dependencies: - '@discordjs/collection': 2.1.1 - '@discordjs/util': 1.1.1 - '@sapphire/async-queue': 1.5.5 - '@sapphire/snowflake': 3.5.3 - '@vladfrangu/async_event_emitter': 2.4.6 - discord-api-types: 0.37.115 + '@discordjs/collection': 2.0.0 + '@discordjs/util': 1.0.2 + '@sapphire/async-queue': 1.5.2 + '@sapphire/snowflake': 3.5.1 + '@vladfrangu/async_event_emitter': 2.2.4 + discord-api-types: 0.37.61 magic-bytes.js: 1.10.0 - tslib: 2.8.1 - undici: 6.19.8 - - '@discordjs/util@1.1.1': {} - - '@discordjs/ws@1.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': - dependencies: - '@discordjs/collection': 2.1.1 - '@discordjs/rest': 2.4.2 - '@discordjs/util': 1.1.1 - '@sapphire/async-queue': 1.5.5 - '@types/ws': 8.5.13 - '@vladfrangu/async_event_emitter': 2.4.6 - discord-api-types: 0.37.115 - tslib: 2.8.1 - ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + tslib: 2.6.2 + undici: 5.27.2 + + '@discordjs/util@1.0.2': {} + + '@discordjs/ws@1.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@discordjs/collection': 2.0.0 + '@discordjs/rest': 2.2.0 + '@discordjs/util': 1.0.2 + '@sapphire/async-queue': 1.5.2 + '@types/ws': 8.5.9 + '@vladfrangu/async_event_emitter': 2.2.4 + discord-api-types: 0.37.61 + tslib: 2.6.2 + ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - '@esbuild/aix-ppc64@0.23.1': + '@esbuild/aix-ppc64@0.19.12': optional: true - '@esbuild/android-arm64@0.23.1': + '@esbuild/android-arm64@0.19.12': optional: true - '@esbuild/android-arm@0.23.1': + '@esbuild/android-arm@0.19.12': optional: true - '@esbuild/android-x64@0.23.1': + '@esbuild/android-x64@0.19.12': optional: true - '@esbuild/darwin-arm64@0.23.1': + '@esbuild/darwin-arm64@0.19.12': optional: true - '@esbuild/darwin-x64@0.23.1': + '@esbuild/darwin-x64@0.19.12': optional: true - '@esbuild/freebsd-arm64@0.23.1': + '@esbuild/freebsd-arm64@0.19.12': optional: true - '@esbuild/freebsd-x64@0.23.1': + '@esbuild/freebsd-x64@0.19.12': optional: true - '@esbuild/linux-arm64@0.23.1': + '@esbuild/linux-arm64@0.19.12': optional: true - '@esbuild/linux-arm@0.23.1': + '@esbuild/linux-arm@0.19.12': optional: true - '@esbuild/linux-ia32@0.23.1': + '@esbuild/linux-ia32@0.19.12': optional: true - '@esbuild/linux-loong64@0.23.1': + '@esbuild/linux-loong64@0.19.12': optional: true - '@esbuild/linux-mips64el@0.23.1': + '@esbuild/linux-mips64el@0.19.12': optional: true - '@esbuild/linux-ppc64@0.23.1': + '@esbuild/linux-ppc64@0.19.12': optional: true - '@esbuild/linux-riscv64@0.23.1': + '@esbuild/linux-riscv64@0.19.12': optional: true - '@esbuild/linux-s390x@0.23.1': + '@esbuild/linux-s390x@0.19.12': optional: true - '@esbuild/linux-x64@0.23.1': + '@esbuild/linux-x64@0.19.12': optional: true - '@esbuild/netbsd-x64@0.23.1': + '@esbuild/netbsd-x64@0.19.12': optional: true - '@esbuild/openbsd-arm64@0.23.1': + '@esbuild/openbsd-x64@0.19.12': optional: true - '@esbuild/openbsd-x64@0.23.1': + '@esbuild/sunos-x64@0.19.12': optional: true - '@esbuild/sunos-x64@0.23.1': + '@esbuild/win32-arm64@0.19.12': optional: true - '@esbuild/win32-arm64@0.23.1': + '@esbuild/win32-ia32@0.19.12': optional: true - '@esbuild/win32-ia32@0.23.1': + '@esbuild/win32-x64@0.19.12': optional: true - '@esbuild/win32-x64@0.23.1': - optional: true - - '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: - eslint: 8.57.1 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.10.0': {} '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.2 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -10310,41 +11225,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@8.57.0': {} '@exodus/schemasafe@1.3.0': {} '@fastify/busboy@2.1.1': {} - '@gitbeaker/core@40.6.0': + '@gitbeaker/core@40.2.1': dependencies: - '@gitbeaker/requester-utils': 40.6.0 - qs: 6.13.1 + '@gitbeaker/requester-utils': 40.2.1 + qs: 6.13.0 xcase: 2.0.1 - '@gitbeaker/requester-utils@40.6.0': + '@gitbeaker/requester-utils@40.2.1': dependencies: picomatch-browser: 2.2.6 - qs: 6.13.1 + qs: 6.13.0 rate-limiter-flexible: 4.0.1 xcase: 2.0.1 - '@gitbeaker/rest@40.6.0': + '@gitbeaker/rest@40.2.1': dependencies: - '@gitbeaker/core': 40.6.0 - '@gitbeaker/requester-utils': 40.6.0 + '@gitbeaker/core': 40.2.1 + '@gitbeaker/requester-utils': 40.2.1 - '@google-cloud/common@3.10.0': + '@google-cloud/common@3.10.0(encoding@0.1.13)': dependencies: '@google-cloud/projectify': 2.1.1 '@google-cloud/promisify': 2.0.4 arrify: 2.0.1 duplexify: 4.1.3 - ent: 2.2.2 + ent: 2.2.0 extend: 3.0.2 - google-auth-library: 7.14.1 + google-auth-library: 7.14.1(encoding@0.1.13) retry-request: 4.2.2 - teeny-request: 7.2.0 + teeny-request: 7.2.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color @@ -10367,9 +11282,9 @@ snapshots: '@google-cloud/promisify@4.0.0': {} - '@google-cloud/storage@5.3.0': + '@google-cloud/storage@5.3.0(encoding@0.1.13)': dependencies: - '@google-cloud/common': 3.10.0 + '@google-cloud/common': 3.10.0(encoding@0.1.13) '@google-cloud/paginator': 3.0.7 '@google-cloud/promisify': 2.0.4 arrify: 2.0.1 @@ -10378,8 +11293,8 @@ snapshots: date-and-time: 0.14.2 duplexify: 3.7.1 extend: 3.0.2 - gaxios: 3.2.0 - gcs-resumable-upload: 3.6.0 + gaxios: 3.2.0(encoding@0.1.13) + gcs-resumable-upload: 3.6.0(encoding@0.1.13) hash-stream-validation: 0.2.4 mime: 2.6.0 mime-types: 2.1.35 @@ -10393,7 +11308,7 @@ snapshots: - encoding - supports-color - '@google-cloud/storage@7.14.0': + '@google-cloud/storage@7.14.0(encoding@0.1.13)': dependencies: '@google-cloud/paginator': 5.0.2 '@google-cloud/projectify': 4.0.0 @@ -10401,20 +11316,20 @@ snapshots: abort-controller: 3.0.0 async-retry: 1.3.3 duplexify: 4.1.3 - fast-xml-parser: 4.5.1 - gaxios: 6.7.1 - google-auth-library: 9.15.0 + fast-xml-parser: 4.5.0 + gaxios: 6.7.1(encoding@0.1.13) + google-auth-library: 9.14.2(encoding@0.1.13) html-entities: 2.5.2 mime: 3.0.0 p-limit: 3.1.0 - retry-request: 7.0.2 - teeny-request: 9.0.0 + retry-request: 7.0.2(encoding@0.1.13) + teeny-request: 9.0.0(encoding@0.1.13) uuid: 8.3.2 transitivePeerDependencies: - encoding - supports-color - '@grpc/grpc-js@1.12.5': + '@grpc/grpc-js@1.11.3': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -10423,13 +11338,13 @@ snapshots: dependencies: lodash.camelcase: 4.3.0 long: 5.2.3 - protobufjs: 7.4.0 + protobufjs: 7.2.6 yargs: 17.7.2 - '@humanwhocodes/config-array@0.13.0': + '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10449,12 +11364,10 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/ttlcache@1.4.1': {} - - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -10463,40 +11376,40 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.4.15': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@js-sdsl/ordered-map@4.4.2': {} '@jsdevtools/ono@7.1.3': {} - '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + '@jsonjoy.com/base64@1.1.2(tslib@2.6.2)': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 - '@jsonjoy.com/json-pack@1.1.1(tslib@2.8.1)': + '@jsonjoy.com/json-pack@1.1.0(tslib@2.6.2)': dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + '@jsonjoy.com/base64': 1.1.2(tslib@2.6.2) + '@jsonjoy.com/util': 1.3.0(tslib@2.6.2) hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.8.1) - tslib: 2.8.1 + thingies: 1.21.0(tslib@2.6.2) + tslib: 2.6.2 - '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': + '@jsonjoy.com/util@1.3.0(tslib@2.6.2)': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -10508,42 +11421,42 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.18.0 + fastq: 1.17.1 - '@octokit/auth-app@3.6.1': + '@octokit/auth-app@3.6.1(encoding@0.1.13)': dependencies: - '@octokit/auth-oauth-app': 4.3.4 - '@octokit/auth-oauth-user': 1.3.0 - '@octokit/request': 5.6.3 + '@octokit/auth-oauth-app': 4.3.4(encoding@0.1.13) + '@octokit/auth-oauth-user': 1.3.0(encoding@0.1.13) + '@octokit/request': 5.6.3(encoding@0.1.13) '@octokit/request-error': 2.1.0 '@octokit/types': 6.41.0 '@types/lru-cache': 5.1.1 deprecation: 2.3.1 lru-cache: 6.0.0 - universal-github-app-jwt: 1.2.0 + universal-github-app-jwt: 1.1.2 universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/auth-app@4.0.13': + '@octokit/auth-app@4.0.13(encoding@0.1.13)': dependencies: - '@octokit/auth-oauth-app': 5.0.6 - '@octokit/auth-oauth-user': 2.1.2 - '@octokit/request': 6.2.8 + '@octokit/auth-oauth-app': 5.0.6(encoding@0.1.13) + '@octokit/auth-oauth-user': 2.1.2(encoding@0.1.13) + '@octokit/request': 6.2.8(encoding@0.1.13) '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 deprecation: 2.3.1 lru-cache: 9.1.2 - universal-github-app-jwt: 1.2.0 + universal-github-app-jwt: 1.1.2 universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/auth-oauth-app@4.3.4': + '@octokit/auth-oauth-app@4.3.4(encoding@0.1.13)': dependencies: - '@octokit/auth-oauth-device': 3.1.4 - '@octokit/auth-oauth-user': 2.1.2 - '@octokit/request': 5.6.3 + '@octokit/auth-oauth-device': 3.1.4(encoding@0.1.13) + '@octokit/auth-oauth-user': 2.1.2(encoding@0.1.13) + '@octokit/request': 5.6.3(encoding@0.1.13) '@octokit/types': 6.41.0 '@types/btoa-lite': 1.0.2 btoa-lite: 1.0.0 @@ -10551,11 +11464,11 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/auth-oauth-app@5.0.6': + '@octokit/auth-oauth-app@5.0.6(encoding@0.1.13)': dependencies: - '@octokit/auth-oauth-device': 4.0.5 - '@octokit/auth-oauth-user': 2.1.2 - '@octokit/request': 6.2.8 + '@octokit/auth-oauth-device': 4.0.5(encoding@0.1.13) + '@octokit/auth-oauth-user': 2.1.2(encoding@0.1.13) + '@octokit/request': 6.2.8(encoding@0.1.13) '@octokit/types': 9.3.2 '@types/btoa-lite': 1.0.2 btoa-lite: 1.0.0 @@ -10563,40 +11476,40 @@ snapshots: transitivePeerDependencies: - encoding - '@octokit/auth-oauth-device@3.1.4': + '@octokit/auth-oauth-device@3.1.4(encoding@0.1.13)': dependencies: - '@octokit/oauth-methods': 2.0.6 - '@octokit/request': 6.2.8 + '@octokit/oauth-methods': 2.0.6(encoding@0.1.13) + '@octokit/request': 6.2.8(encoding@0.1.13) '@octokit/types': 6.41.0 universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/auth-oauth-device@4.0.5': + '@octokit/auth-oauth-device@4.0.5(encoding@0.1.13)': dependencies: - '@octokit/oauth-methods': 2.0.6 - '@octokit/request': 6.2.8 + '@octokit/oauth-methods': 2.0.6(encoding@0.1.13) + '@octokit/request': 6.2.8(encoding@0.1.13) '@octokit/types': 9.3.2 universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/auth-oauth-user@1.3.0': + '@octokit/auth-oauth-user@1.3.0(encoding@0.1.13)': dependencies: - '@octokit/auth-oauth-device': 3.1.4 - '@octokit/oauth-methods': 1.2.6 - '@octokit/request': 5.6.3 + '@octokit/auth-oauth-device': 3.1.4(encoding@0.1.13) + '@octokit/oauth-methods': 1.2.6(encoding@0.1.13) + '@octokit/request': 5.6.3(encoding@0.1.13) '@octokit/types': 6.41.0 btoa-lite: 1.0.0 universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/auth-oauth-user@2.1.2': + '@octokit/auth-oauth-user@2.1.2(encoding@0.1.13)': dependencies: - '@octokit/auth-oauth-device': 4.0.5 - '@octokit/oauth-methods': 2.0.6 - '@octokit/request': 6.2.8 + '@octokit/auth-oauth-device': 4.0.5(encoding@0.1.13) + '@octokit/oauth-methods': 2.0.6(encoding@0.1.13) + '@octokit/request': 6.2.8(encoding@0.1.13) '@octokit/types': 9.3.2 btoa-lite: 1.0.0 universal-user-agent: 6.0.1 @@ -10605,19 +11518,19 @@ snapshots: '@octokit/auth-token@5.1.1': {} - '@octokit/core@6.1.3': + '@octokit/core@6.1.2': dependencies: '@octokit/auth-token': 5.1.1 - '@octokit/graphql': 8.1.2 - '@octokit/request': 9.1.4 - '@octokit/request-error': 6.1.6 - '@octokit/types': 13.6.2 + '@octokit/graphql': 8.1.1 + '@octokit/request': 9.1.3 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 - '@octokit/endpoint@10.1.2': + '@octokit/endpoint@10.1.1': dependencies: - '@octokit/types': 13.6.2 + '@octokit/types': 13.5.0 universal-user-agent: 7.0.2 '@octokit/endpoint@6.0.12': @@ -10632,46 +11545,46 @@ snapshots: is-plain-object: 5.0.0 universal-user-agent: 6.0.1 - '@octokit/graphql@4.8.0': + '@octokit/graphql@4.8.0(encoding@0.1.13)': dependencies: - '@octokit/request': 5.6.3 + '@octokit/request': 5.6.3(encoding@0.1.13) '@octokit/types': 6.41.0 universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/graphql@5.0.6': + '@octokit/graphql@5.0.6(encoding@0.1.13)': dependencies: - '@octokit/request': 6.2.8 + '@octokit/request': 6.2.8(encoding@0.1.13) '@octokit/types': 9.3.2 universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/graphql@8.1.2': + '@octokit/graphql@8.1.1': dependencies: - '@octokit/request': 9.1.4 - '@octokit/types': 13.6.2 + '@octokit/request': 9.1.3 + '@octokit/types': 13.5.0 universal-user-agent: 7.0.2 '@octokit/oauth-authorization-url@4.3.3': {} '@octokit/oauth-authorization-url@5.0.0': {} - '@octokit/oauth-methods@1.2.6': + '@octokit/oauth-methods@1.2.6(encoding@0.1.13)': dependencies: '@octokit/oauth-authorization-url': 4.3.3 - '@octokit/request': 5.6.3 + '@octokit/request': 5.6.3(encoding@0.1.13) '@octokit/request-error': 2.1.0 '@octokit/types': 6.41.0 btoa-lite: 1.0.0 transitivePeerDependencies: - encoding - '@octokit/oauth-methods@2.0.6': + '@octokit/oauth-methods@2.0.6(encoding@0.1.13)': dependencies: '@octokit/oauth-authorization-url': 5.0.0 - '@octokit/request': 6.2.8 + '@octokit/request': 6.2.8(encoding@0.1.13) '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 btoa-lite: 1.0.0 @@ -10696,41 +11609,40 @@ snapshots: deprecation: 2.3.1 once: 1.4.0 - '@octokit/request-error@6.1.6': + '@octokit/request-error@6.1.4': dependencies: - '@octokit/types': 13.6.2 + '@octokit/types': 13.5.0 - '@octokit/request@5.6.3': + '@octokit/request@5.6.3(encoding@0.1.13)': dependencies: '@octokit/endpoint': 6.0.12 '@octokit/request-error': 2.1.0 '@octokit/types': 6.41.0 is-plain-object: 5.0.0 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/request@6.2.8': + '@octokit/request@6.2.8(encoding@0.1.13)': dependencies: '@octokit/endpoint': 7.0.6 '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 is-plain-object: 5.0.0 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - '@octokit/request@9.1.4': + '@octokit/request@9.1.3': dependencies: - '@octokit/endpoint': 10.1.2 - '@octokit/request-error': 6.1.6 - '@octokit/types': 13.6.2 - fast-content-type-parse: 2.0.1 + '@octokit/endpoint': 10.1.1 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 universal-user-agent: 7.0.2 - '@octokit/types@13.6.2': + '@octokit/types@13.5.0': dependencies: '@octokit/openapi-types': 22.2.0 @@ -10744,27 +11656,25 @@ snapshots: '@one-ini/wasm@0.1.1': {} - '@opensearch-project/opensearch@2.13.0': + '@opensearch-project/opensearch@2.11.0': dependencies: - aws4: 1.13.2 - debug: 4.4.0(supports-color@5.5.0) + aws4: 1.12.0 + debug: 4.3.4(supports-color@5.5.0) hpagent: 1.2.0 - json11: 2.0.0 + json11: 1.1.2 ms: 2.1.3 secure-json-parse: 2.7.0 transitivePeerDependencies: - supports-color - '@opentelemetry/api@1.8.0': {} + '@opentelemetry/api@1.6.0': {} - '@opentelemetry/api@1.9.0': {} - - '@opentelemetry/core@1.30.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/core@1.24.0(@opentelemetry/api@1.6.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/api': 1.6.0 + '@opentelemetry/semantic-conventions': 1.24.0 - '@opentelemetry/semantic-conventions@1.28.0': {} + '@opentelemetry/semantic-conventions@1.24.0': {} '@pkgjs/parseargs@0.11.0': optional: true @@ -10796,12 +11706,12 @@ snapshots: '@questdb/nodejs-client@3.0.0': {} - '@readme/better-ajv-errors@1.6.0(ajv@8.17.1)': + '@readme/better-ajv-errors@1.6.0(ajv@8.12.0)': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.26.0 + '@babel/code-frame': 7.24.2 + '@babel/runtime': 7.24.4 '@humanwhocodes/momoa': 2.0.4 - ajv: 8.17.1 + ajv: 8.12.0 chalk: 4.1.2 json-to-ast: 2.1.0 jsonpointer: 5.0.1 @@ -10814,56 +11724,52 @@ snapshots: call-me-maybe: 1.0.2 js-yaml: 4.1.0 - '@readme/openapi-parser@2.6.0(openapi-types@12.1.3)': + '@readme/openapi-parser@2.5.1(openapi-types@12.1.3)': dependencies: + '@apidevtools/openapi-schemas': 2.1.0 '@apidevtools/swagger-methods': 3.0.2 '@jsdevtools/ono': 7.1.3 - '@readme/better-ajv-errors': 1.6.0(ajv@8.17.1) + '@readme/better-ajv-errors': 1.6.0(ajv@8.12.0) '@readme/json-schema-ref-parser': 1.2.0 - '@readme/openapi-schemas': 3.1.0 - ajv: 8.17.1 - ajv-draft-04: 1.0.0(ajv@8.17.1) + ajv: 8.12.0 + ajv-draft-04: 1.0.0(ajv@8.12.0) call-me-maybe: 1.0.2 openapi-types: 12.1.3 - '@readme/openapi-schemas@3.1.0': {} - - '@redis/bloom@1.2.0(@redis/client@1.6.0)': + '@redis/bloom@1.2.0(@redis/client@1.5.14)': dependencies: - '@redis/client': 1.6.0 + '@redis/client': 1.5.14 - '@redis/client@1.6.0': + '@redis/client@1.5.14': dependencies: cluster-key-slot: 1.1.2 generic-pool: 3.9.0 yallist: 4.0.0 - '@redis/graph@1.1.1(@redis/client@1.6.0)': + '@redis/graph@1.1.1(@redis/client@1.5.14)': dependencies: - '@redis/client': 1.6.0 + '@redis/client': 1.5.14 - '@redis/json@1.0.7(@redis/client@1.6.0)': + '@redis/json@1.0.6(@redis/client@1.5.14)': dependencies: - '@redis/client': 1.6.0 + '@redis/client': 1.5.14 - '@redis/search@1.2.0(@redis/client@1.6.0)': + '@redis/search@1.1.6(@redis/client@1.5.14)': dependencies: - '@redis/client': 1.6.0 + '@redis/client': 1.5.14 - '@redis/time-series@1.1.0(@redis/client@1.6.0)': + '@redis/time-series@1.0.5(@redis/client@1.5.14)': dependencies: - '@redis/client': 1.6.0 + '@redis/client': 1.5.14 - '@rtsao/scc@1.1.0': {} + '@sapphire/async-queue@1.5.2': {} - '@sapphire/async-queue@1.5.5': {} - - '@sapphire/shapeshift@4.0.0': + '@sapphire/shapeshift@3.9.7': dependencies: fast-deep-equal: 3.1.3 lodash: 4.17.21 - '@sapphire/snowflake@3.5.3': {} + '@sapphire/snowflake@3.5.1': {} '@segment/loosely-validate-event@2.0.0': dependencies: @@ -10880,10 +11786,10 @@ snapshots: domhandler: 4.3.1 selderee: 0.6.0 - '@sendgrid/client@8.1.4': + '@sendgrid/client@8.1.3': dependencies: '@sendgrid/helpers': 8.0.0 - axios: 1.7.9 + axios: 1.6.8 transitivePeerDependencies: - debug @@ -10891,9 +11797,9 @@ snapshots: dependencies: deepmerge: 4.3.1 - '@sendgrid/mail@8.1.4': + '@sendgrid/mail@8.1.3': dependencies: - '@sendgrid/client': 8.1.4 + '@sendgrid/client': 8.1.3 '@sendgrid/helpers': 8.0.0 transitivePeerDependencies: - debug @@ -10902,19 +11808,19 @@ snapshots: '@slack/logger@3.0.0': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 - '@slack/types@2.14.0': {} + '@slack/types@2.11.0': {} - '@slack/web-api@6.13.0': + '@slack/web-api@6.12.0': dependencies: '@slack/logger': 3.0.0 - '@slack/types': 2.14.0 + '@slack/types': 2.11.0 '@types/is-stream': 1.1.0 - '@types/node': 20.17.12 - axios: 1.7.9 + '@types/node': 20.12.7 + axios: 1.6.8 eventemitter3: 3.1.2 - form-data: 2.5.2 + form-data: 2.5.1 is-electron: 2.2.2 is-stream: 1.1.0 p-queue: 6.6.2 @@ -10922,186 +11828,318 @@ snapshots: transitivePeerDependencies: - debug - '@smithy/abort-controller@1.1.0': + '@smithy/abort-controller@1.1.0': + dependencies: + '@smithy/types': 1.2.0 + tslib: 2.6.2 + + '@smithy/abort-controller@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/abort-controller@3.1.6': + dependencies: + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@smithy/chunked-blob-reader-native@3.0.1': + dependencies: + '@smithy/util-base64': 3.0.0 + tslib: 2.6.2 + + '@smithy/chunked-blob-reader@4.0.0': + dependencies: + tslib: 2.6.2 + + '@smithy/config-resolver@2.2.0': + dependencies: + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-config-provider': 2.3.0 + '@smithy/util-middleware': 2.2.0 + tslib: 2.6.2 + + '@smithy/config-resolver@3.0.10': + dependencies: + '@smithy/node-config-provider': 3.1.9 + '@smithy/types': 3.6.0 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.8 + tslib: 2.6.2 + + '@smithy/core@1.4.2': + dependencies: + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-middleware': 2.2.0 + tslib: 2.6.2 + + '@smithy/core@2.5.1': + dependencies: + '@smithy/middleware-serde': 3.0.8 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-stream': 3.2.1 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + + '@smithy/credential-provider-imds@2.3.0': + dependencies: + '@smithy/node-config-provider': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + tslib: 2.6.2 + + '@smithy/credential-provider-imds@3.2.5': + dependencies: + '@smithy/node-config-provider': 3.1.9 + '@smithy/property-provider': 3.1.8 + '@smithy/types': 3.6.0 + '@smithy/url-parser': 3.0.8 + tslib: 2.6.2 + + '@smithy/eventstream-codec@2.2.0': + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@smithy/types': 2.12.0 + '@smithy/util-hex-encoding': 2.2.0 + tslib: 2.6.2 + + '@smithy/eventstream-codec@3.1.7': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 3.6.0 + '@smithy/util-hex-encoding': 3.0.0 + tslib: 2.6.2 + + '@smithy/eventstream-serde-browser@2.2.0': + dependencies: + '@smithy/eventstream-serde-universal': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/eventstream-serde-browser@3.0.11': + dependencies: + '@smithy/eventstream-serde-universal': 3.0.10 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@smithy/eventstream-serde-config-resolver@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/eventstream-serde-config-resolver@3.0.8': + dependencies: + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@smithy/eventstream-serde-node@2.2.0': + dependencies: + '@smithy/eventstream-serde-universal': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/eventstream-serde-node@3.0.10': + dependencies: + '@smithy/eventstream-serde-universal': 3.0.10 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@smithy/eventstream-serde-universal@2.2.0': dependencies: - '@smithy/types': 1.2.0 - tslib: 2.8.1 + '@smithy/eventstream-codec': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/abort-controller@4.0.0': + '@smithy/eventstream-serde-universal@3.0.10': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/eventstream-codec': 3.1.7 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/chunked-blob-reader-native@4.0.0': + '@smithy/fetch-http-handler@2.5.0': dependencies: - '@smithy/util-base64': 4.0.0 - tslib: 2.8.1 + '@smithy/protocol-http': 3.3.0 + '@smithy/querystring-builder': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/util-base64': 2.3.0 + tslib: 2.6.2 - '@smithy/chunked-blob-reader@5.0.0': + '@smithy/fetch-http-handler@4.0.0': dependencies: - tslib: 2.8.1 + '@smithy/protocol-http': 4.1.5 + '@smithy/querystring-builder': 3.0.8 + '@smithy/types': 3.6.0 + '@smithy/util-base64': 3.0.0 + tslib: 2.6.2 - '@smithy/config-resolver@4.0.0': + '@smithy/hash-blob-browser@3.1.7': dependencies: - '@smithy/node-config-provider': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.0 - tslib: 2.8.1 + '@smithy/chunked-blob-reader': 4.0.0 + '@smithy/chunked-blob-reader-native': 3.0.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/core@3.0.0': + '@smithy/hash-node@1.1.0': dependencies: - '@smithy/middleware-serde': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-stream': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 1.2.0 + '@smithy/util-buffer-from': 1.1.0 + '@smithy/util-utf8': 1.1.0 + tslib: 2.6.2 - '@smithy/credential-provider-imds@4.0.0': + '@smithy/hash-node@2.2.0': dependencies: - '@smithy/node-config-provider': 4.0.0 - '@smithy/property-provider': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 - '@smithy/eventstream-codec@4.0.0': + '@smithy/hash-node@3.0.8': dependencies: - '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.0.0 - '@smithy/util-hex-encoding': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 - '@smithy/eventstream-serde-browser@4.0.0': + '@smithy/hash-stream-node@3.1.7': dependencies: - '@smithy/eventstream-serde-universal': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 - '@smithy/eventstream-serde-config-resolver@4.0.0': + '@smithy/invalid-dependency@2.2.0': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/eventstream-serde-node@4.0.0': + '@smithy/invalid-dependency@3.0.8': dependencies: - '@smithy/eventstream-serde-universal': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/eventstream-serde-universal@4.0.0': + '@smithy/is-array-buffer@1.1.0': dependencies: - '@smithy/eventstream-codec': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@smithy/fetch-http-handler@5.0.0': + '@smithy/is-array-buffer@2.2.0': dependencies: - '@smithy/protocol-http': 5.0.0 - '@smithy/querystring-builder': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-base64': 4.0.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@smithy/hash-blob-browser@4.0.0': + '@smithy/is-array-buffer@3.0.0': dependencies: - '@smithy/chunked-blob-reader': 5.0.0 - '@smithy/chunked-blob-reader-native': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@smithy/hash-node@1.1.0': + '@smithy/md5-js@2.2.0': dependencies: - '@smithy/types': 1.2.0 - '@smithy/util-buffer-from': 1.1.0 - '@smithy/util-utf8': 1.1.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 - '@smithy/hash-node@4.0.0': + '@smithy/md5-js@3.0.8': dependencies: - '@smithy/types': 4.0.0 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 - '@smithy/hash-stream-node@4.0.0': + '@smithy/middleware-content-length@2.2.0': dependencies: - '@smithy/types': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/invalid-dependency@4.0.0': + '@smithy/middleware-content-length@3.0.10': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/is-array-buffer@1.1.0': + '@smithy/middleware-endpoint@2.5.1': dependencies: - tslib: 2.8.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-middleware': 2.2.0 + tslib: 2.6.2 - '@smithy/is-array-buffer@2.2.0': + '@smithy/middleware-endpoint@3.2.1': dependencies: - tslib: 2.8.1 + '@smithy/core': 2.5.1 + '@smithy/middleware-serde': 3.0.8 + '@smithy/node-config-provider': 3.1.9 + '@smithy/shared-ini-file-loader': 3.1.9 + '@smithy/types': 3.6.0 + '@smithy/url-parser': 3.0.8 + '@smithy/util-middleware': 3.0.8 + tslib: 2.6.2 - '@smithy/is-array-buffer@4.0.0': - '@smithy/is-array-buffer@4.0.0': + '@smithy/middleware-retry@2.3.1': dependencies: - tslib: 2.8.1 + '@smithy/node-config-provider': 2.3.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/service-error-classification': 2.1.5 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + tslib: 2.6.2 + uuid: 9.0.1 - '@smithy/md5-js@4.0.0': + '@smithy/middleware-retry@3.0.25': dependencies: - '@smithy/types': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@smithy/node-config-provider': 3.1.9 + '@smithy/protocol-http': 4.1.5 + '@smithy/service-error-classification': 3.0.8 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-retry': 3.0.8 + tslib: 2.6.2 + uuid: 9.0.1 - '@smithy/middleware-content-length@4.0.0': + '@smithy/middleware-serde@2.3.0': dependencies: - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/middleware-endpoint@4.0.0': + '@smithy/middleware-serde@3.0.8': dependencies: - '@smithy/core': 3.0.0 - '@smithy/middleware-serde': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/shared-ini-file-loader': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/url-parser': 4.0.0 - '@smithy/util-middleware': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/middleware-retry@4.0.0': + '@smithy/middleware-stack@2.2.0': dependencies: - '@smithy/node-config-provider': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/service-error-classification': 4.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-retry': 4.0.0 - tslib: 2.8.1 - uuid: 9.0.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/middleware-serde@4.0.0': + '@smithy/middleware-stack@3.0.8': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/middleware-stack@4.0.0': + '@smithy/node-config-provider@2.3.0': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/node-config-provider@4.0.0': + '@smithy/node-config-provider@3.1.9': dependencies: - '@smithy/property-provider': 4.0.0 - '@smithy/shared-ini-file-loader': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/property-provider': 3.1.8 + '@smithy/shared-ini-file-loader': 3.1.9 + '@smithy/types': 3.6.0 + tslib: 2.6.2 '@smithy/node-http-handler@1.1.0': dependencies: @@ -11109,231 +12147,368 @@ snapshots: '@smithy/protocol-http': 1.2.0 '@smithy/querystring-builder': 1.1.0 '@smithy/types': 1.2.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/node-http-handler@2.5.0': + dependencies: + '@smithy/abort-controller': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/querystring-builder': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/node-http-handler@3.2.5': + dependencies: + '@smithy/abort-controller': 3.1.6 + '@smithy/protocol-http': 4.1.5 + '@smithy/querystring-builder': 3.0.8 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/node-http-handler@4.0.0': + '@smithy/property-provider@2.2.0': dependencies: - '@smithy/abort-controller': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/querystring-builder': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/property-provider@4.0.0': + '@smithy/property-provider@3.1.8': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 '@smithy/protocol-http@1.2.0': dependencies: '@smithy/types': 1.2.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/protocol-http@3.3.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/protocol-http@5.0.0': + '@smithy/protocol-http@4.1.5': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 '@smithy/querystring-builder@1.1.0': dependencies: '@smithy/types': 1.2.0 '@smithy/util-uri-escape': 1.1.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/querystring-builder@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + '@smithy/util-uri-escape': 2.2.0 + tslib: 2.6.2 - '@smithy/querystring-builder@4.0.0': + '@smithy/querystring-builder@3.0.8': dependencies: - '@smithy/types': 4.0.0 - '@smithy/util-uri-escape': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + '@smithy/util-uri-escape': 3.0.0 + tslib: 2.6.2 '@smithy/querystring-parser@1.1.0': dependencies: '@smithy/types': 1.2.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/querystring-parser@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/querystring-parser@3.0.8': + dependencies: + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/querystring-parser@4.0.0': + '@smithy/service-error-classification@2.1.5': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 - '@smithy/service-error-classification@4.0.0': + '@smithy/service-error-classification@3.0.8': dependencies: - '@smithy/types': 4.0.0 + '@smithy/types': 3.6.0 - '@smithy/shared-ini-file-loader@4.0.0': + '@smithy/shared-ini-file-loader@2.4.0': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/signature-v4@5.0.0': + '@smithy/shared-ini-file-loader@3.1.9': dependencies: - '@smithy/is-array-buffer': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-middleware': 4.0.0 - '@smithy/util-uri-escape': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/smithy-client@4.0.0': + '@smithy/signature-v4@2.3.0': dependencies: - '@smithy/core': 3.0.0 - '@smithy/middleware-endpoint': 4.0.0 - '@smithy/middleware-stack': 4.0.0 - '@smithy/protocol-http': 5.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-stream': 4.0.0 - tslib: 2.8.1 + '@smithy/is-array-buffer': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/util-hex-encoding': 2.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-uri-escape': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 + + '@smithy/signature-v4@4.2.1': + dependencies: + '@smithy/is-array-buffer': 3.0.0 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-middleware': 3.0.8 + '@smithy/util-uri-escape': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + + '@smithy/smithy-client@2.5.1': + dependencies: + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-stack': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-stream': 2.2.0 + tslib: 2.6.2 + + '@smithy/smithy-client@3.4.2': + dependencies: + '@smithy/core': 2.5.1 + '@smithy/middleware-endpoint': 3.2.1 + '@smithy/middleware-stack': 3.0.8 + '@smithy/protocol-http': 4.1.5 + '@smithy/types': 3.6.0 + '@smithy/util-stream': 3.2.1 + tslib: 2.6.2 '@smithy/types@1.2.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/types@2.12.0': + dependencies: + tslib: 2.6.2 - '@smithy/types@4.0.0': + '@smithy/types@3.6.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/url-parser@1.1.0': dependencies: '@smithy/querystring-parser': 1.1.0 '@smithy/types': 1.2.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/url-parser@2.2.0': + dependencies: + '@smithy/querystring-parser': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/url-parser@3.0.8': + dependencies: + '@smithy/querystring-parser': 3.0.8 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@smithy/util-base64@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 + + '@smithy/util-base64@3.0.0': + dependencies: + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 - '@smithy/url-parser@4.0.0': + '@smithy/util-body-length-browser@2.2.0': dependencies: - '@smithy/querystring-parser': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@smithy/util-base64@4.0.0': + '@smithy/util-body-length-browser@3.0.0': dependencies: - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@smithy/util-body-length-browser@4.0.0': + '@smithy/util-body-length-node@2.3.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 - '@smithy/util-body-length-node@4.0.0': + '@smithy/util-body-length-node@3.0.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/util-buffer-from@1.1.0': dependencies: '@smithy/is-array-buffer': 1.1.0 - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/util-buffer-from@3.0.0': + dependencies: + '@smithy/is-array-buffer': 3.0.0 + tslib: 2.6.2 + + '@smithy/util-config-provider@2.3.0': + dependencies: + tslib: 2.6.2 - '@smithy/util-buffer-from@4.0.0': - '@smithy/util-buffer-from@4.0.0': + '@smithy/util-config-provider@3.0.0': dependencies: - '@smithy/is-array-buffer': 4.0.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@smithy/util-config-provider@4.0.0': + '@smithy/util-defaults-mode-browser@2.2.1': dependencies: - tslib: 2.8.1 + '@smithy/property-provider': 2.2.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + bowser: 2.11.0 + tslib: 2.6.2 - '@smithy/util-defaults-mode-browser@4.0.0': + '@smithy/util-defaults-mode-browser@3.0.25': dependencies: - '@smithy/property-provider': 4.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 + '@smithy/property-provider': 3.1.8 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 bowser: 2.11.0 - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/util-defaults-mode-node@2.3.1': + dependencies: + '@smithy/config-resolver': 2.2.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/util-defaults-mode-node@3.0.25': + dependencies: + '@smithy/config-resolver': 3.0.10 + '@smithy/credential-provider-imds': 3.2.5 + '@smithy/node-config-provider': 3.1.9 + '@smithy/property-provider': 3.1.8 + '@smithy/smithy-client': 3.4.2 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@smithy/util-endpoints@1.2.0': + dependencies: + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + tslib: 2.6.2 + + '@smithy/util-endpoints@2.1.4': + dependencies: + '@smithy/node-config-provider': 3.1.9 + '@smithy/types': 3.6.0 + tslib: 2.6.2 + + '@smithy/util-hex-encoding@2.2.0': + dependencies: + tslib: 2.6.2 + + '@smithy/util-hex-encoding@3.0.0': + dependencies: + tslib: 2.6.2 - '@smithy/util-defaults-mode-node@4.0.0': + '@smithy/util-middleware@2.2.0': dependencies: - '@smithy/config-resolver': 4.0.0 - '@smithy/credential-provider-imds': 4.0.0 - '@smithy/node-config-provider': 4.0.0 - '@smithy/property-provider': 4.0.0 - '@smithy/smithy-client': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/util-endpoints@3.0.0': + '@smithy/util-middleware@3.0.8': dependencies: - '@smithy/node-config-provider': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/util-hex-encoding@4.0.0': + '@smithy/util-retry@2.2.0': dependencies: - tslib: 2.8.1 + '@smithy/service-error-classification': 2.1.5 + '@smithy/types': 2.12.0 + tslib: 2.6.2 - '@smithy/util-middleware@4.0.0': + '@smithy/util-retry@3.0.8': dependencies: - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/service-error-classification': 3.0.8 + '@smithy/types': 3.6.0 + tslib: 2.6.2 - '@smithy/util-retry@4.0.0': + '@smithy/util-stream@2.2.0': dependencies: - '@smithy/service-error-classification': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/types': 2.12.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-hex-encoding': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.6.2 - '@smithy/util-stream@4.0.0': + '@smithy/util-stream@3.2.1': dependencies: - '@smithy/fetch-http-handler': 5.0.0 - '@smithy/node-http-handler': 4.0.0 - '@smithy/types': 4.0.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@smithy/fetch-http-handler': 4.0.0 + '@smithy/node-http-handler': 3.2.5 + '@smithy/types': 3.6.0 + '@smithy/util-base64': 3.0.0 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 '@smithy/util-uri-escape@1.1.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 + + '@smithy/util-uri-escape@2.2.0': + dependencies: + tslib: 2.6.2 - '@smithy/util-uri-escape@4.0.0': + '@smithy/util-uri-escape@3.0.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/util-utf8@1.1.0': dependencies: '@smithy/util-buffer-from': 1.1.0 - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/util-utf8@2.3.0': dependencies: '@smithy/util-buffer-from': 2.2.0 - tslib: 2.8.1 + tslib: 2.6.2 - '@smithy/util-utf8@4.0.0': - '@smithy/util-utf8@4.0.0': + '@smithy/util-utf8@3.0.0': dependencies: - '@smithy/util-buffer-from': 4.0.0 - tslib: 2.8.1 + '@smithy/util-buffer-from': 3.0.0 + tslib: 2.6.2 - '@smithy/util-waiter@4.0.0': + '@smithy/util-waiter@3.1.7': dependencies: - '@smithy/abort-controller': 4.0.0 - '@smithy/types': 4.0.0 - tslib: 2.8.1 + '@smithy/abort-controller': 3.1.6 + '@smithy/types': 3.6.0 + tslib: 2.6.2 '@socket.io/component-emitter@3.1.2': {} '@superfaceai/ast@1.2.0': dependencies: - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) - '@superfaceai/one-sdk@1.5.2': + '@superfaceai/one-sdk@1.5.2(encoding@0.1.13)': dependencies: '@superfaceai/ast': 1.2.0 '@superfaceai/parser': 1.2.0 abort-controller: 3.0.0 - cross-fetch: 3.2.0 - debug: 4.4.0(supports-color@5.5.0) + cross-fetch: 3.1.8(encoding@0.1.13) + debug: 4.3.4(supports-color@5.5.0) isomorphic-form-data: 2.0.0 vm2: 3.9.19 transitivePeerDependencies: @@ -11344,7 +12519,7 @@ snapshots: dependencies: '@superfaceai/ast': 1.2.0 '@types/debug': 4.1.12 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -11353,58 +12528,58 @@ snapshots: dependencies: passport-oauth2: 1.8.0 optionalDependencies: - '@types/passport': 1.0.17 - '@types/passport-oauth2': 1.4.17 + '@types/passport': 1.0.16 + '@types/passport-oauth2': 1.4.15 - '@swc/core-darwin-arm64@1.10.4': + '@swc/core-darwin-arm64@1.4.17': optional: true - '@swc/core-darwin-x64@1.10.4': + '@swc/core-darwin-x64@1.4.17': optional: true - '@swc/core-linux-arm-gnueabihf@1.10.4': + '@swc/core-linux-arm-gnueabihf@1.4.17': optional: true - '@swc/core-linux-arm64-gnu@1.10.4': + '@swc/core-linux-arm64-gnu@1.4.17': optional: true - '@swc/core-linux-arm64-musl@1.10.4': + '@swc/core-linux-arm64-musl@1.4.17': optional: true - '@swc/core-linux-x64-gnu@1.10.4': + '@swc/core-linux-x64-gnu@1.4.17': optional: true - '@swc/core-linux-x64-musl@1.10.4': + '@swc/core-linux-x64-musl@1.4.17': optional: true - '@swc/core-win32-arm64-msvc@1.10.4': + '@swc/core-win32-arm64-msvc@1.4.17': optional: true - '@swc/core-win32-ia32-msvc@1.10.4': + '@swc/core-win32-ia32-msvc@1.4.17': optional: true - '@swc/core-win32-x64-msvc@1.10.4': + '@swc/core-win32-x64-msvc@1.4.17': optional: true - '@swc/core@1.10.4': + '@swc/core@1.4.17': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.17 + '@swc/types': 0.1.6 optionalDependencies: - '@swc/core-darwin-arm64': 1.10.4 - '@swc/core-darwin-x64': 1.10.4 - '@swc/core-linux-arm-gnueabihf': 1.10.4 - '@swc/core-linux-arm64-gnu': 1.10.4 - '@swc/core-linux-arm64-musl': 1.10.4 - '@swc/core-linux-x64-gnu': 1.10.4 - '@swc/core-linux-x64-musl': 1.10.4 - '@swc/core-win32-arm64-msvc': 1.10.4 - '@swc/core-win32-ia32-msvc': 1.10.4 - '@swc/core-win32-x64-msvc': 1.10.4 + '@swc/core-darwin-arm64': 1.4.17 + '@swc/core-darwin-x64': 1.4.17 + '@swc/core-linux-arm-gnueabihf': 1.4.17 + '@swc/core-linux-arm64-gnu': 1.4.17 + '@swc/core-linux-arm64-musl': 1.4.17 + '@swc/core-linux-x64-gnu': 1.4.17 + '@swc/core-linux-x64-musl': 1.4.17 + '@swc/core-win32-arm64-msvc': 1.4.17 + '@swc/core-win32-ia32-msvc': 1.4.17 + '@swc/core-win32-x64-msvc': 1.4.17 '@swc/counter@0.1.3': {} - '@swc/types@0.1.17': + '@swc/types@0.1.6': dependencies: '@swc/counter': 0.1.3 @@ -11417,83 +12592,83 @@ snapshots: asn1.js: 5.4.1 asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1) asn1.js-rfc5280: 3.0.0 - async: 3.2.6 + async: 3.2.5 simple-lru-cache: 0.0.2 - '@temporalio/activity@1.11.5': + '@temporalio/activity@1.11.1': dependencies: - '@temporalio/common': 1.11.5 + '@temporalio/common': 1.11.1 abort-controller: 3.0.0 - '@temporalio/client@1.11.5': + '@temporalio/client@1.11.1': dependencies: - '@grpc/grpc-js': 1.12.5 - '@temporalio/common': 1.11.5 - '@temporalio/proto': 1.11.5 + '@grpc/grpc-js': 1.11.3 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 abort-controller: 3.0.0 long: 5.2.3 uuid: 9.0.1 - '@temporalio/common@1.11.5': + '@temporalio/common@1.11.1': dependencies: - '@temporalio/proto': 1.11.5 + '@temporalio/proto': 1.11.1 long: 5.2.3 ms: 3.0.0-canary.1 proto3-json-serializer: 2.0.2 - '@temporalio/core-bridge@1.11.5': + '@temporalio/core-bridge@1.11.1': dependencies: - '@temporalio/common': 1.11.5 + '@temporalio/common': 1.11.1 arg: 5.0.2 - cargo-cp-artifact: 0.1.9 + cargo-cp-artifact: 0.1.8 which: 4.0.0 - '@temporalio/proto@1.11.5': + '@temporalio/proto@1.11.1': dependencies: long: 5.2.3 - protobufjs: 7.4.0 + protobufjs: 7.2.6 - '@temporalio/worker@1.11.5': + '@temporalio/worker@1.11.1': dependencies: - '@swc/core': 1.10.4 - '@temporalio/activity': 1.11.5 - '@temporalio/client': 1.11.5 - '@temporalio/common': 1.11.5 - '@temporalio/core-bridge': 1.11.5 - '@temporalio/proto': 1.11.5 - '@temporalio/workflow': 1.11.5 + '@swc/core': 1.4.17 + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/common': 1.11.1 + '@temporalio/core-bridge': 1.11.1 + '@temporalio/proto': 1.11.1 + '@temporalio/workflow': 1.11.1 abort-controller: 3.0.0 - heap-js: 2.6.0 - memfs: 4.15.3 + heap-js: 2.5.0 + memfs: 4.11.1 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.97.1(@swc/core@1.10.4)) + source-map-loader: 4.0.2(webpack@5.91.0(@swc/core@1.4.17)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.10.4)(webpack@5.97.1(@swc/core@1.10.4)) + swc-loader: 0.2.6(@swc/core@1.4.17)(webpack@5.91.0(@swc/core@1.4.17)) unionfs: 4.5.4 - webpack: 5.97.1(@swc/core@1.10.4) + webpack: 5.91.0(@swc/core@1.4.17) transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli - '@temporalio/workflow@1.11.5': + '@temporalio/workflow@1.11.1': dependencies: - '@temporalio/common': 1.11.5 - '@temporalio/proto': 1.11.5 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 '@tootallnate/once@2.0.0': {} - '@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.4.2)': + '@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.3.3)': dependencies: '@babel/generator': 7.17.7 - '@babel/parser': 7.26.3 + '@babel/parser': 7.24.4 '@babel/traverse': 7.23.2 '@babel/types': 7.17.0 javascript-natural-sort: 0.7.1 lodash: 4.17.21 - prettier: 3.4.2 + prettier: 3.3.3 transitivePeerDependencies: - supports-color @@ -11508,25 +12683,25 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/btoa-lite@1.0.2': {} '@types/bunyan-format@0.2.9': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/bunyan@1.8.11': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/caseless@0.12.5': {} - '@types/config@3.3.5': {} + '@types/config@3.3.4': {} '@types/connect@3.4.38': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/cookie@0.4.1': {} @@ -11534,9 +12709,9 @@ snapshots: '@types/cors@2.8.17': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 - '@types/cron@2.4.3': + '@types/cron@2.4.0': dependencies: cron: 2.4.4 @@ -11546,28 +12721,28 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.6 + '@types/eslint': 8.56.10 + '@types/estree': 1.0.5 - '@types/eslint@9.6.1': + '@types/eslint@8.56.10': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - '@types/estree@1.0.6': {} + '@types/estree@1.0.5': {} - '@types/express-serve-static-core@4.19.6': + '@types/express-serve-static-core@4.19.0': dependencies: - '@types/node': 20.17.12 - '@types/qs': 6.9.17 + '@types/node': 20.12.7 + '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.9.17 + '@types/express-serve-static-core': 4.19.0 + '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 '@types/he@1.2.3': {} @@ -11578,19 +12753,19 @@ snapshots: '@types/is-stream@1.1.0': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} - '@types/jsonwebtoken@9.0.7': + '@types/jsonwebtoken@9.0.6': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/keyv@3.1.4': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/lru-cache@5.1.1': {} @@ -11602,54 +12777,54 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 20.17.12 - form-data: 4.0.1 + '@types/node': 20.12.7 + form-data: 4.0.0 '@types/node@18.0.6': {} - '@types/node@18.19.70': + '@types/node@18.19.31': dependencies: undici-types: 5.26.5 - '@types/node@20.17.12': + '@types/node@20.12.7': dependencies: - undici-types: 6.19.8 + undici-types: 5.26.5 - '@types/oauth@0.9.6': + '@types/oauth@0.9.4': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 optional: true - '@types/passport-oauth2@1.4.17': + '@types/passport-oauth2@1.4.15': dependencies: '@types/express': 4.17.21 - '@types/oauth': 0.9.6 - '@types/passport': 1.0.17 + '@types/oauth': 0.9.4 + '@types/passport': 1.0.16 optional: true - '@types/passport@1.0.17': + '@types/passport@1.0.16': dependencies: '@types/express': 4.17.21 optional: true - '@types/qs@6.9.17': {} + '@types/qs@6.9.15': {} '@types/range-parser@1.2.7': {} '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/tough-cookie': 4.0.5 - form-data: 2.5.2 + form-data: 2.5.1 '@types/responselike@1.0.3': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/retry@0.12.0': {} - '@types/sanitize-html@2.13.0': + '@types/sanitize-html@2.11.0': dependencies: htmlparser2: 8.0.2 @@ -11658,18 +12833,18 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/send': 0.17.4 '@types/superagent@4.1.24': dependencies: '@types/cookiejar': 2.1.5 - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/tough-cookie@4.0.5': {} @@ -11677,77 +12852,77 @@ snapshots: '@types/tunnel@0.0.3': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 '@types/uuid@9.0.8': {} - '@types/validator@13.12.2': {} + '@types/validator@13.11.9': {} - '@types/ws@8.5.13': + '@types/ws@8.5.9': dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2) + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.6.3) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.7.2) - debug: 4.4.0(supports-color@5.5.0) - eslint: 8.57.1 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.6.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.6.3) + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 5.3.1 natural-compare-lite: 1.4.0 - semver: 7.6.3 - tsutils: 3.21.0(typescript@5.7.2) + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.6.3) optionalDependencies: - typescript: 5.7.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.2) + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.6.3) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.6.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.6.3) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0(supports-color@5.5.0) - eslint: 8.57.1 + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.7.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.7.2) - debug: 4.4.0(supports-color@5.5.0) - eslint: 8.57.1 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.57.0 optionalDependencies: - typescript: 5.7.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0(supports-color@5.5.0) - eslint: 8.57.1 + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.57.0 optionalDependencies: - typescript: 5.7.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -11761,27 +12936,27 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.7.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.7.2) - debug: 4.4.0(supports-color@5.5.0) - eslint: 8.57.1 - tsutils: 3.21.0(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.6.3) + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.57.0 + tsutils: 3.21.0(typescript@5.6.3) optionalDependencies: - typescript: 5.7.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.7.2) - debug: 4.4.0(supports-color@5.5.0) - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.6.3) + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.7.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -11789,60 +12964,60 @@ snapshots: '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.3 - tsutils: 3.21.0(typescript@5.7.2) + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.6.3) optionalDependencies: - typescript: 5.7.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.7.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.7.2) - eslint: 8.57.1 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) + eslint: 8.57.0 eslint-scope: 5.1.1 - semver: 7.6.3 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) - eslint: 8.57.1 - semver: 7.6.3 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) + eslint: 8.57.0 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -11857,86 +13032,86 @@ snapshots: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.1': {} + '@ungap/structured-clone@1.2.0': {} - '@vercel/ncc@0.38.3': {} + '@vercel/ncc@0.38.1': {} - '@vladfrangu/async_event_emitter@2.4.6': {} + '@vladfrangu/async_event_emitter@2.2.4': {} - '@webassemblyjs/ast@1.14.1': + '@webassemblyjs/ast@1.12.1': dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - '@webassemblyjs/helper-api-error@1.13.2': {} + '@webassemblyjs/helper-api-error@1.11.6': {} - '@webassemblyjs/helper-buffer@1.14.1': {} + '@webassemblyjs/helper-buffer@1.12.1': {} - '@webassemblyjs/helper-numbers@1.13.2': + '@webassemblyjs/helper-numbers@1.11.6': dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - '@webassemblyjs/helper-wasm-section@1.14.1': + '@webassemblyjs/helper-wasm-section@1.12.1': dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/ieee754@1.13.2': + '@webassemblyjs/ieee754@1.11.6': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.13.2': + '@webassemblyjs/leb128@1.11.6': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.13.2': {} + '@webassemblyjs/utf8@1.11.6': {} - '@webassemblyjs/wasm-edit@1.14.1': + '@webassemblyjs/wasm-edit@1.12.1': dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 - '@webassemblyjs/wasm-gen@1.14.1': + '@webassemblyjs/wasm-gen@1.12.1': dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wasm-opt@1.14.1': + '@webassemblyjs/wasm-opt@1.12.1': dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wasm-parser@1.14.1': + '@webassemblyjs/wasm-parser@1.12.1': dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wast-printer@1.14.1': + '@webassemblyjs/wast-printer@1.12.1': dependencies: - '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 '@xtuc/ieee754@1.2.0': {} @@ -11956,45 +13131,46 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.14.0): + acorn-import-assertions@1.9.0(acorn@8.11.3): dependencies: - acorn: 8.14.0 + acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-import-attributes@1.9.5(acorn@8.11.3): dependencies: - acorn: 8.14.0 + acorn: 8.11.3 - acorn-walk@8.3.4: + acorn-jsx@5.3.2(acorn@8.11.3): dependencies: - acorn: 8.14.0 + acorn: 8.11.3 - acorn@8.14.0: {} + acorn-walk@8.3.2: {} + + acorn@8.11.3: {} agent-base@6.0.2: dependencies: - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.7 transitivePeerDependencies: - supports-color - agent-base@7.1.3: {} + agent-base@7.1.1: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color - ajv-draft-04@1.0.0(ajv@8.17.1): + ajv-draft-04@1.0.0(ajv@8.12.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.12.0 - ajv-formats@2.1.1(ajv@8.17.1): + ajv-formats@2.1.1(ajv@8.12.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.12.0 ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - ajv-keywords@5.1.0(ajv@8.17.1): - dependencies: - ajv: 8.17.1 - fast-deep-equal: 3.1.3 - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -12002,12 +13178,12 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.17.1: + ajv@8.12.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.5 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + uri-js: 4.4.1 analytics-node@6.2.0: dependencies: @@ -12034,7 +13210,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} + ansi-regex@6.0.1: {} ansi-styles@3.2.1: dependencies: @@ -12078,56 +13254,57 @@ snapshots: array-back@4.0.2: {} - array-buffer-byte-length@1.0.2: + array-buffer-byte-length@1.0.1: dependencies: - call-bound: 1.0.3 - is-array-buffer: 3.0.5 + call-bind: 1.0.7 + is-array-buffer: 3.0.4 array-flatten@1.1.1: {} array-includes@3.1.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 - is-string: 1.1.1 + get-intrinsic: 1.2.4 + is-string: 1.0.7 array-union@2.1.0: {} array.prototype.findlastindex@1.2.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.3 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - array.prototype.flat@1.3.3: + array.prototype.flat@1.3.2: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - array.prototype.flatmap@1.3.3: + array.prototype.flatmap@1.3.2: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.4: + arraybuffer.prototype.slice@1.0.3: dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.3 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - is-array-buffer: 3.0.5 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 arrify@2.0.1: {} @@ -12149,20 +13326,19 @@ snapshots: minimalistic-assert: 1.0.1 safer-buffer: 2.1.2 - assert-options@0.8.2: {} + assert-options@0.8.1: {} async-retry@1.3.3: dependencies: retry: 0.13.1 - async@3.2.6: {} + async@3.2.5: {} asynckit@0.4.0: {} - auth0@4.15.0: + auth0@4.3.1: dependencies: - jose: 4.15.9 - undici-types: 6.21.0 + jose: 4.15.5 uuid: 9.0.1 available-typed-arrays@1.0.7: @@ -12181,7 +13357,7 @@ snapshots: uuid: 3.3.2 xml2js: 0.4.19 - aws4@1.13.2: {} + aws4@1.12.0: {} axios-retry@3.2.0: dependencies: @@ -12189,48 +13365,40 @@ snapshots: axios@0.27.2: dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 + follow-redirects: 1.15.6 + form-data: 4.0.0 transitivePeerDependencies: - debug axios@1.6.8: dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 + follow-redirects: 1.15.6 + form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - axios@1.7.9: + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.4): dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.4) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.4): dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.4) + core-js-compat: 3.37.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.4): dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.4) transitivePeerDependencies: - supports-color @@ -12309,23 +13477,6 @@ snapshots: transitivePeerDependencies: - supports-color - body-parser@1.20.3: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - boolbase@1.0.0: {} bowser@2.11.0: {} @@ -12361,18 +13512,18 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.3: + braces@3.0.2: dependencies: - fill-range: 7.1.1 + fill-range: 7.0.1 browser-request@0.3.3: {} - browserslist@4.24.3: + browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001690 - electron-to-chromium: 1.5.78 - node-releases: 2.0.19 - update-browserslist-db: 1.1.1(browserslist@4.24.3) + caniuse-lite: 1.0.30001614 + electron-to-chromium: 1.4.750 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) btoa-lite@1.0.0: {} @@ -12391,9 +13542,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bufferutil@4.0.9: + bufferutil@4.0.8: dependencies: - node-gyp-build: 4.8.4 + node-gyp-build: 4.8.0 bunyan-format@0.2.1: dependencies: @@ -12428,23 +13579,14 @@ snapshots: normalize-url: 4.5.1 responselike: 1.0.2 - call-bind-apply-helpers@1.0.1: + call-bind@1.0.7: dependencies: + es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.2.4 set-function-length: 1.2.2 - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 - call-me-maybe@1.0.2: {} callsites@3.1.0: {} @@ -12455,9 +13597,9 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001690: {} + caniuse-lite@1.0.30001614: {} - cargo-cp-artifact@0.1.9: {} + cargo-cp-artifact@0.1.8: {} chalk@2.4.2: dependencies: @@ -12480,7 +13622,7 @@ snapshots: chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.3 + braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -12491,11 +13633,11 @@ snapshots: chownr@1.1.4: {} - chrome-trace-event@1.0.4: {} + chrome-trace-event@1.0.3: {} ci-info@2.0.0: {} - cjs-module-lexer@1.4.1: {} + cjs-module-lexer@1.3.1: {} clearbit@1.3.5: dependencies: @@ -12512,8 +13654,8 @@ snapshots: d: 1.0.2 es5-ext: 0.10.64 es6-iterator: 2.0.3 - memoizee: 0.4.17 - timers-ext: 0.1.8 + memoizee: 0.4.15 + timers-ext: 0.1.7 cli-cursor@3.1.0: dependencies: @@ -12629,7 +13771,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.53.0 + mime-db: 1.52.0 concat-map@0.0.1: {} @@ -12645,7 +13787,7 @@ snapshots: ini: 1.3.8 proto-list: 1.2.4 - config@3.3.12: + config@3.3.11: dependencies: json5: 2.2.3 @@ -12678,9 +13820,9 @@ snapshots: cookie@0.4.0: {} - cookie@0.5.0: {} + cookie@0.4.2: {} - cookie@0.7.2: {} + cookie@0.5.0: {} cookiejar@2.1.4: {} @@ -12698,9 +13840,9 @@ snapshots: untildify: 4.0.0 yargs: 16.2.0 - core-js-compat@3.39.0: + core-js-compat@3.37.0: dependencies: - browserslist: 4.24.3 + browserslist: 4.23.0 core-util-is@1.0.3: {} @@ -12722,11 +13864,11 @@ snapshots: cross-env@7.0.2: dependencies: - cross-spawn: 7.0.6 + cross-spawn: 7.0.3 - cross-fetch@3.2.0: + cross-fetch@3.1.8(encoding@0.1.13): dependencies: - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -12736,7 +13878,7 @@ snapshots: shebang-command: 1.2.0 which: 1.3.1 - cross-spawn@7.0.6: + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -12757,72 +13899,73 @@ snapshots: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 5.0.3 - domutils: 3.2.2 + domutils: 3.1.0 nth-check: 2.1.1 css-what@6.1.0: {} - csv-parse@5.6.0: {} + csv-parse@5.5.6: {} d@1.0.2: dependencies: es5-ext: 0.10.64 - type: 2.7.3 + type: 2.7.2 - data-view-buffer@1.0.2: + data-view-buffer@1.0.1: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 es-errors: 1.3.0 - is-data-view: 1.0.2 + is-data-view: 1.0.1 - data-view-byte-length@1.0.2: + data-view-byte-length@1.0.1: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 es-errors: 1.3.0 - is-data-view: 1.0.2 + is-data-view: 1.0.1 - data-view-byte-offset@1.0.1: + data-view-byte-offset@1.0.0: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 es-errors: 1.3.0 - is-data-view: 1.0.2 + is-data-view: 1.0.1 date-and-time@0.14.2: {} - dc-polyfill@0.1.6: {} + dc-polyfill@0.1.4: {} - dd-trace@4.54.0: + dd-trace@4.38.0: dependencies: - '@datadog/libdatadog': 0.3.0 - '@datadog/native-appsec': 8.3.0 - '@datadog/native-iast-rewriter': 2.6.1 - '@datadog/native-iast-taint-tracking': 3.2.0 - '@datadog/native-metrics': 3.1.0 - '@datadog/pprof': 5.4.1 + '@datadog/native-appsec': 7.1.1 + '@datadog/native-iast-rewriter': 2.3.1 + '@datadog/native-iast-taint-tracking': 2.1.0 + '@datadog/native-metrics': 2.0.0 + '@datadog/pprof': 5.3.0 '@datadog/sketches-js': 2.1.1 - '@isaacs/ttlcache': 1.4.1 - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.24.0(@opentelemetry/api@1.6.0) crypto-randomuuid: 1.0.0 - dc-polyfill: 0.1.6 - ignore: 5.3.2 - import-in-the-middle: 1.11.2 + dc-polyfill: 0.1.4 + ignore: 5.3.1 + import-in-the-middle: 1.8.1 + int64-buffer: 0.1.10 + ipaddr.js: 2.2.0 istanbul-lib-coverage: 3.2.0 jest-docblock: 29.7.0 koalas: 1.0.2 limiter: 1.1.5 lodash.sortby: 4.7.0 lru-cache: 7.18.3 + methods: 1.1.2 module-details-from-path: 1.0.3 + msgpack-lite: 0.1.26 + node-abort-controller: 3.1.1 opentracing: 0.14.7 - path-to-regexp: 0.1.12 + path-to-regexp: 0.1.8 pprof-format: 2.1.0 - protobufjs: 7.4.0 + protobufjs: 7.2.6 retry: 0.13.1 - rfdc: 1.4.1 - semver: 7.6.3 - shell-quote: 1.8.2 - source-map: 0.7.4 + semver: 7.6.0 + shell-quote: 1.8.1 tlhunter-sorted-set: 0.1.0 debug@2.6.9: @@ -12835,15 +13978,15 @@ snapshots: optionalDependencies: supports-color: 5.5.0 - debug@4.3.7: + debug@4.3.4(supports-color@5.5.0): dependencies: - ms: 2.1.3 + ms: 2.1.2 + optionalDependencies: + supports-color: 5.5.0 - debug@4.4.0(supports-color@5.5.0): + debug@4.3.7: dependencies: ms: 2.1.3 - optionalDependencies: - supports-color: 5.5.0 decamelize@1.2.0: {} @@ -12867,9 +14010,9 @@ snapshots: define-data-property@1.1.4: dependencies: - es-define-property: 1.0.1 + es-define-property: 1.0.0 es-errors: 1.3.0 - gopd: 1.2.0 + gopd: 1.0.1 define-lazy-prop@2.0.0: {} @@ -12912,22 +14055,24 @@ snapshots: discontinuous-range@1.0.0: {} - discord-api-types@0.37.115: {} + discord-api-types@0.37.61: {} - discord.js@14.17.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): + discord.js@14.14.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: - '@discordjs/builders': 1.10.0 + '@discordjs/builders': 1.7.0 '@discordjs/collection': 1.5.3 - '@discordjs/formatters': 0.6.0 - '@discordjs/rest': 2.4.2 - '@discordjs/util': 1.1.1 - '@discordjs/ws': 1.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@sapphire/snowflake': 3.5.3 - discord-api-types: 0.37.115 + '@discordjs/formatters': 0.3.3 + '@discordjs/rest': 2.2.0 + '@discordjs/util': 1.0.2 + '@discordjs/ws': 1.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@sapphire/snowflake': 3.5.1 + '@types/ws': 8.5.9 + discord-api-types: 0.37.61 fast-deep-equal: 3.1.3 lodash.snakecase: 4.1.1 - tslib: 2.8.1 - undici: 6.19.8 + tslib: 2.6.2 + undici: 5.27.2 + ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -12968,7 +14113,7 @@ snapshots: domelementtype: 2.3.0 domhandler: 4.3.1 - domutils@3.2.2: + domutils@3.1.0: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -12986,15 +14131,9 @@ snapshots: dtrace-provider@0.8.8: dependencies: - nan: 2.22.0 + nan: 2.19.0 optional: true - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - duplexer3@0.1.5: {} duplexify@3.7.1: @@ -13024,11 +14163,11 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.1 - semver: 7.6.3 + semver: 7.6.0 ee-first@1.1.1: {} - electron-to-chromium@1.5.78: {} + electron-to-chromium@1.4.750: {} emoji-chars@1.0.12: dependencies: @@ -13067,30 +14206,35 @@ snapshots: encodeurl@1.0.2: {} + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + end-of-stream@1.4.4: dependencies: once: 1.4.0 - engine.io-parser@5.2.3: {} + engine.io-parser@5.2.2: {} - engine.io@6.6.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): + engine.io@6.5.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.17.12 + '@types/node': 20.12.7 accepts: 1.3.8 base64id: 2.0.0 - cookie: 0.7.2 + cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.7 - engine.io-parser: 5.2.3 - ws: 8.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + debug: 4.3.4(supports-color@5.5.0) + engine.io-parser: 5.2.2 + ws: 8.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - enhanced-resolve@5.18.0: + enhanced-resolve@5.16.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -13100,12 +14244,7 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - ent@2.2.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - punycode: 1.4.1 - safe-regex-test: 1.1.0 + ent@2.2.0: {} entities@2.2.0: {} @@ -13114,80 +14253,76 @@ snapshots: erlpack@0.1.4: dependencies: bindings: 1.5.0 - nan: 2.22.0 + nan: 2.19.0 error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.9: + es-abstract@1.23.3: dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 es-errors: 1.3.0 es-object-atoms: 1.0.0 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 + has-proto: 1.0.3 + has-symbols: 1.0.3 hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.0 - math-intrinsics: 1.1.0 - object-inspect: 1.13.3 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 - es-define-property@1.0.1: {} + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 es-errors@1.3.0: {} - es-module-lexer@1.6.0: {} + es-module-lexer@1.5.2: {} es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.1.0: + es-set-tostringtag@2.0.3: dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -13195,11 +14330,11 @@ snapshots: dependencies: hasown: 2.0.2 - es-to-primitive@1.3.0: + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 + is-date-object: 1.0.5 + is-symbol: 1.0.4 es5-ext@0.10.64: dependencies: @@ -13228,34 +14363,33 @@ snapshots: es6-iterator: 2.0.3 es6-symbol: 3.1.4 - esbuild@0.23.1: + esbuild@0.19.12: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 - - escalade@3.2.0: {} + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + escalade@3.1.2: {} escape-goat@2.1.1: {} @@ -13265,97 +14399,95 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0))(eslint@8.57.0): dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.57.1 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1) - object.assign: 4.1.7 + eslint: 8.57.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0) + object.assign: 4.1.5 object.entries: 1.1.8 semver: 6.3.1 - eslint-config-airbnb-typescript@16.2.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb-typescript@16.2.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3))(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0))(eslint@8.57.0): dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.57.1 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.6.3) + eslint: 8.57.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0) - eslint-config-prettier@8.10.0(eslint@8.57.1): + eslint-config-prettier@8.10.0(eslint@8.57.0): dependencies: - eslint: 8.57.1 + eslint: 8.57.0 - eslint-config-prettier@9.1.0(eslint@8.57.1): + eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: - eslint: 8.57.1 + eslint: 8.57.0 eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7(supports-color@5.5.0) - is-core-module: 2.16.1 - resolve: 1.22.10 + is-core-module: 2.13.1 + resolve: 1.22.8 transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7(supports-color@5.5.0) optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.57.1 + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.6.3) + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0): dependencies: - '@rtsao/scc': 1.1.0 array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@5.5.0) doctrine: 2.1.0 - eslint: 8.57.1 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 - is-core-module: 2.16.1 + is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 object.groupby: 1.0.3 - object.values: 1.2.1 + object.values: 1.2.0 semver: 6.3.1 - string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.4.2): + eslint-plugin-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): dependencies: - eslint: 8.57.1 - prettier: 3.4.2 + eslint: 8.57.0 + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 - synckit: 0.9.2 + synckit: 0.8.8 optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 8.10.0(eslint@8.57.1) + '@types/eslint': 8.56.10 + eslint-config-prettier: 9.1.0(eslint@8.57.0) - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.4.2): + eslint-plugin-prettier@5.2.1(@types/eslint@8.56.10)(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3): dependencies: - eslint: 8.57.1 - prettier: 3.4.2 + eslint: 8.57.0 + prettier: 3.3.3 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@8.57.1) + '@types/eslint': 8.56.10 + eslint-config-prettier: 8.10.0(eslint@8.57.0) eslint-scope@5.1.1: dependencies: @@ -13369,26 +14501,26 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.57.1: + eslint@8.57.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.1 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@5.5.0) + cross-spawn: 7.0.3 + debug: 4.3.4(supports-color@5.5.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.6.0 + esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -13396,7 +14528,7 @@ snapshots: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -13417,17 +14549,17 @@ snapshots: d: 1.0.2 es5-ext: 0.10.64 event-emitter: 0.3.5 - type: 2.7.3 + type: 2.7.2 espree@9.6.1: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} - esquery@1.6.0: + esquery@1.5.0: dependencies: estraverse: 5.3.0 @@ -13448,6 +14580,8 @@ snapshots: d: 1.0.2 es5-ext: 0.10.64 + event-lite@0.1.3: {} + event-target-shim@5.0.1: {} eventemitter3@3.1.2: {} @@ -13549,7 +14683,7 @@ snapshots: ext@1.7.0: dependencies: - type: 2.7.3 + type: 2.7.2 extend-shallow@2.0.1: dependencies: @@ -13557,19 +14691,17 @@ snapshots: extend@3.0.2: {} - fast-content-type-parse@2.0.1: {} - fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} - fast-glob@3.3.3: + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.8 + micromatch: 4.0.5 fast-json-stable-stringify@2.1.0: {} @@ -13583,20 +14715,21 @@ snapshots: fast-text-encoding@1.0.6: {} - fast-uri@3.0.5: {} + fast-xml-parser@4.2.5: + dependencies: + strnum: 1.0.5 fast-xml-parser@4.4.1: dependencies: strnum: 1.0.5 - fast-xml-parser@4.5.1: - fast-xml-parser@4.5.1: + fast-xml-parser@4.5.0: dependencies: strnum: 1.0.5 fastest-levenshtein@1.0.16: {} - fastq@1.18.0: + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -13608,7 +14741,7 @@ snapshots: file-uri-to-path@1.0.0: {} - fill-range@7.1.1: + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 @@ -13656,33 +14789,32 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.2 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - flatted@3.3.2: {} + flatted@3.3.1: {} fn.name@1.1.0: {} - follow-redirects@1.15.9: {} + follow-redirects@1.15.6: {} for-each@0.3.3: dependencies: is-callable: 1.2.7 - foreground-child@3.3.0: + foreground-child@3.1.1: dependencies: - cross-spawn: 7.0.6 + cross-spawn: 7.0.3 signal-exit: 4.1.0 - form-data@2.5.2: + form-data@2.5.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - safe-buffer: 5.2.1 - form-data@4.0.1: + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -13699,7 +14831,7 @@ snapshots: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.13.1 + qs: 6.12.1 forwarded@0.2.0: {} @@ -13715,7 +14847,7 @@ snapshots: dependencies: minipass: 2.9.0 - fs-monkey@1.0.6: {} + fs-monkey@1.0.5: {} fs.realpath@1.0.0: {} @@ -13724,14 +14856,12 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: + function.prototype.name@1.1.6: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 + call-bind: 1.0.7 define-properties: 1.2.1 + es-abstract: 1.23.3 functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -13746,63 +14876,63 @@ snapshots: strip-ansi: 3.0.1 wide-align: 1.1.5 - gaxios@3.2.0: + gaxios@3.2.0(encoding@0.1.13): dependencies: abort-controller: 3.0.0 extend: 3.0.2 https-proxy-agent: 5.0.1 is-stream: 2.0.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color - gaxios@4.3.3: + gaxios@4.3.3(encoding@0.1.13): dependencies: abort-controller: 3.0.0 extend: 3.0.2 https-proxy-agent: 5.0.1 is-stream: 2.0.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color - gaxios@6.7.1: + gaxios@6.7.1(encoding@0.1.13): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.6 + https-proxy-agent: 7.0.4 is-stream: 2.0.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) uuid: 9.0.1 transitivePeerDependencies: - encoding - supports-color - gcp-metadata@4.3.1: + gcp-metadata@4.3.1(encoding@0.1.13): dependencies: - gaxios: 4.3.3 + gaxios: 4.3.3(encoding@0.1.13) json-bigint: 1.0.0 transitivePeerDependencies: - encoding - supports-color - gcp-metadata@6.1.0: + gcp-metadata@6.1.0(encoding@0.1.13): dependencies: - gaxios: 6.7.1 + gaxios: 6.7.1(encoding@0.1.13) json-bigint: 1.0.0 transitivePeerDependencies: - encoding - supports-color - gcs-resumable-upload@3.6.0: + gcs-resumable-upload@3.6.0(encoding@0.1.13): dependencies: abort-controller: 3.0.0 async-retry: 1.3.3 configstore: 5.0.1 extend: 3.0.2 - gaxios: 4.3.3 - google-auth-library: 7.14.1 + gaxios: 4.3.3(encoding@0.1.13) + google-auth-library: 7.14.1(encoding@0.1.13) pumpify: 2.0.1 stream-events: 1.0.5 transitivePeerDependencies: @@ -13817,41 +14947,31 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.7: + get-intrinsic@1.2.4: dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 + has-proto: 1.0.3 + has-symbols: 1.0.3 hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.0.0 get-stream@3.0.0: {} get-stream@4.1.0: dependencies: - pump: 3.0.2 + pump: 3.0.0 get-stream@5.2.0: dependencies: - pump: 3.0.2 + pump: 3.0.0 - get-symbol-description@1.1.0: + get-symbol-description@1.0.2: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.2.4 - get-tsconfig@4.8.1: + get-tsconfig@4.7.3: dependencies: resolve-pkg-maps: 1.0.0 @@ -13865,14 +14985,13 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.4.5: + glob@10.3.12: dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.4 + minipass: 7.0.4 + path-scurry: 1.10.2 glob@6.0.4: dependencies: @@ -13905,42 +15024,41 @@ snapshots: dependencies: type-fest: 0.20.2 - globalthis@1.0.4: + globalthis@1.0.3: dependencies: define-properties: 1.2.1 - gopd: 1.2.0 globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 + fast-glob: 3.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 - google-auth-library@7.14.1: + google-auth-library@7.14.1(encoding@0.1.13): dependencies: arrify: 2.0.1 base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 fast-text-encoding: 1.0.6 - gaxios: 4.3.3 - gcp-metadata: 4.3.1 - gtoken: 5.3.2 + gaxios: 4.3.3(encoding@0.1.13) + gcp-metadata: 4.3.1(encoding@0.1.13) + gtoken: 5.3.2(encoding@0.1.13) jws: 4.0.0 lru-cache: 6.0.0 transitivePeerDependencies: - encoding - supports-color - google-auth-library@9.15.0: + google-auth-library@9.14.2(encoding@0.1.13): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.7.1 - gcp-metadata: 6.1.0 - gtoken: 7.1.0 + gaxios: 6.7.1(encoding@0.1.13) + gcp-metadata: 6.1.0(encoding@0.1.13) + gtoken: 7.1.0(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: - encoding @@ -13950,7 +15068,9 @@ snapshots: dependencies: node-forge: 1.3.1 - gopd@1.2.0: {} + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 got@9.6.0: dependencies: @@ -13981,24 +15101,24 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 - gtoken@5.3.2: + gtoken@5.3.2(encoding@0.1.13): dependencies: - gaxios: 4.3.3 + gaxios: 4.3.3(encoding@0.1.13) google-p12-pem: 3.1.4 jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - gtoken@7.1.0: + gtoken@7.1.0(encoding@0.1.13): dependencies: - gaxios: 6.7.1 + gaxios: 6.7.1(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - has-bigints@1.1.0: {} + has-bigints@1.0.2: {} has-flag@3.0.0: {} @@ -14006,17 +15126,15 @@ snapshots: has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.1 + es-define-property: 1.0.0 - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 + has-proto@1.0.3: {} - has-symbols@1.1.0: {} + has-symbols@1.0.3: {} has-tostringtag@1.0.2: dependencies: - has-symbols: 1.1.0 + has-symbols: 1.0.3 has-unicode@2.0.1: {} @@ -14030,7 +15148,7 @@ snapshots: he@1.2.0: {} - heap-js@2.6.0: {} + heap-js@2.5.0: {} helmet@4.1.1: {} @@ -14080,7 +15198,7 @@ snapshots: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.2.2 + domutils: 3.1.0 entities: 4.5.0 http-cache-semantics@4.1.1: {} @@ -14113,7 +15231,7 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -14122,14 +15240,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6: + https-proxy-agent@7.0.4: dependencies: - agent-base: 7.1.3 - debug: 4.4.0(supports-color@5.5.0) + agent-base: 7.1.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -14153,18 +15271,18 @@ snapshots: dependencies: minimatch: 3.1.2 - ignore@5.3.2: {} + ignore@5.3.1: {} import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@1.11.2: + import-in-the-middle@1.8.1: dependencies: - acorn: 8.14.0 - acorn-import-attributes: 1.9.5(acorn@8.14.0) - cjs-module-lexer: 1.4.1 + acorn: 8.11.3 + acorn-import-attributes: 1.9.5(acorn@8.11.3) + cjs-module-lexer: 1.3.1 module-details-from-path: 1.0.3 import-lazy@2.1.0: {} @@ -14188,44 +15306,40 @@ snapshots: ini@2.0.0: {} - internal-slot@1.1.0: + int64-buffer@0.1.10: {} + + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.1.0 + side-channel: 1.0.6 invert-kv@1.0.0: {} ipaddr.js@1.9.1: {} - is-array-buffer@3.0.5: + ipaddr.js@2.2.0: {} + + is-array-buffer@3.0.4: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-arrayish@0.2.1: {} is-arrayish@0.3.2: {} - is-async-function@2.1.0: + is-bigint@1.0.4: dependencies: - call-bound: 1.0.3 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 + has-bigints: 1.0.2 is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.2.1: + is-boolean-object@1.1.2: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 has-tostringtag: 1.0.2 is-buffer@1.1.6: {} @@ -14236,19 +15350,16 @@ snapshots: dependencies: ci-info: 2.0.0 - is-core-module@2.16.1: + is-core-module@2.13.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.2: + is-data-view@1.0.1: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - is-typed-array: 1.1.15 + is-typed-array: 1.1.13 - is-date-object@1.1.0: + is-date-object@1.0.5: dependencies: - call-bound: 1.0.3 has-tostringtag: 1.0.2 is-docker@2.2.1: {} @@ -14259,10 +15370,6 @@ snapshots: is-extglob@2.1.1: {} - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.3 - is-fullwidth-code-point@1.0.0: dependencies: number-is-nan: 1.0.1 @@ -14271,13 +15378,6 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.3 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -14294,15 +15394,14 @@ snapshots: is-interactive@1.0.0: {} - is-map@2.0.3: {} + is-negative-zero@2.0.3: {} is-npm@4.0.0: {} is-npm@5.0.0: {} - is-number-object@1.1.1: + is-number-object@1.0.7: dependencies: - call-bound: 1.0.3 has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -14315,54 +15414,40 @@ snapshots: is-promise@2.2.2: {} - is-regex@1.2.1: + is-regex@1.1.4: dependencies: - call-bound: 1.0.3 - gopd: 1.2.0 + call-bind: 1.0.7 has-tostringtag: 1.0.2 - hasown: 2.0.2 is-retry-allowed@1.2.0: {} - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: + is-shared-array-buffer@1.0.3: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 is-stream@1.1.0: {} is-stream@2.0.1: {} - is-string@1.1.1: + is-string@1.0.7: dependencies: - call-bound: 1.0.3 has-tostringtag: 1.0.2 - is-symbol@1.1.1: + is-symbol@1.0.4: dependencies: - call-bound: 1.0.3 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 + has-symbols: 1.0.3 - is-typed-array@1.1.15: + is-typed-array@1.1.13: dependencies: - which-typed-array: 1.1.18 + which-typed-array: 1.1.15 is-typedarray@1.0.0: {} is-unicode-supported@0.1.0: {} - is-weakmap@2.0.2: {} - - is-weakref@1.1.0: - dependencies: - call-bound: 1.0.3 - - is-weakset@2.0.4: + is-weakref@1.0.2: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bind: 1.0.7 is-what@4.1.16: {} @@ -14388,13 +15473,13 @@ snapshots: isomorphic-form-data@2.0.0: dependencies: - form-data: 2.5.2 + form-data: 2.5.1 istanbul-lib-coverage@3.2.0: {} iterate-object@1.3.4: {} - jackspeak@3.4.3: + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -14408,7 +15493,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14416,15 +15501,15 @@ snapshots: join-component@1.1.0: {} - jose@4.15.9: {} + jose@4.15.5: {} js-beautify@1.15.1: dependencies: config-chain: 1.1.13 editorconfig: 1.0.4 - glob: 10.4.5 + glob: 10.3.12 js-cookie: 3.0.5 - nopt: 7.2.1 + nopt: 7.2.0 js-cookie@3.0.5: {} @@ -14439,11 +15524,9 @@ snapshots: dependencies: argparse: 2.0.1 - jsesc@2.5.2: {} - - jsesc@3.0.2: {} + jsesc@0.5.0: {} - jsesc@3.1.0: {} + jsesc@2.5.2: {} json-bigint@1.0.0: dependencies: @@ -14466,7 +15549,7 @@ snapshots: code-error-fragment: 0.0.230 grapheme-splitter: 1.0.4 - json11@2.0.0: {} + json11@1.1.2: {} json2csv@5.0.7: dependencies: @@ -14512,7 +15595,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.6.3 + semver: 7.6.0 jwa@1.4.1: dependencies: @@ -14529,11 +15612,11 @@ snapshots: jwks-rsa@3.1.0: dependencies: '@types/express': 4.17.21 - '@types/jsonwebtoken': 9.0.7 - debug: 4.4.0(supports-color@5.5.0) - jose: 4.15.9 + '@types/jsonwebtoken': 9.0.6 + debug: 4.3.4(supports-color@5.5.0) + jose: 4.15.5 limiter: 1.1.5 - lru-memoizer: 2.3.0 + lru-memoizer: 2.2.0 transitivePeerDependencies: - supports-color @@ -14664,7 +15747,12 @@ snapshots: lowercase-keys@2.0.0: {} - lru-cache@10.4.3: {} + lru-cache@10.2.2: {} + + lru-cache@4.0.2: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 lru-cache@4.1.5: dependencies: @@ -14683,10 +15771,10 @@ snapshots: lru-cache@9.1.2: {} - lru-memoizer@2.3.0: + lru-memoizer@2.2.0: dependencies: lodash.clonedeep: 4.5.0 - lru-cache: 6.0.0 + lru-cache: 4.0.2 lru-queue@0.1.0: dependencies: @@ -14706,8 +15794,6 @@ snapshots: dependencies: iterate-object: 1.3.4 - math-intrinsics@1.1.0: {} - md5@2.3.0: dependencies: charenc: 0.0.2 @@ -14720,14 +15806,14 @@ snapshots: dependencies: mimic-fn: 1.2.0 - memfs@4.15.3: + memfs@4.11.1: dependencies: - '@jsonjoy.com/json-pack': 1.1.1(tslib@2.8.1) - '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) - tree-dump: 1.0.2(tslib@2.8.1) - tslib: 2.8.1 + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.6.2) + '@jsonjoy.com/util': 1.3.0(tslib@2.6.2) + tree-dump: 1.0.2(tslib@2.6.2) + tslib: 2.6.2 - memoizee@0.4.17: + memoizee@0.4.15: dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -14736,7 +15822,7 @@ snapshots: is-promise: 2.2.2 lru-queue: 0.1.0 next-tick: 1.1.0 - timers-ext: 0.1.8 + timers-ext: 0.1.7 merge-descriptors@1.0.1: {} @@ -14748,15 +15834,13 @@ snapshots: methods@1.1.2: {} - micromatch@4.0.8: + micromatch@4.0.5: dependencies: - braces: 3.0.3 + braces: 3.0.2 picomatch: 2.3.1 mime-db@1.52.0: {} - mime-db@1.53.0: {} - mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -14787,7 +15871,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.5: + minimatch@9.0.4: dependencies: brace-expansion: 2.0.1 @@ -14798,7 +15882,7 @@ snapshots: safe-buffer: 5.2.1 yallist: 3.1.1 - minipass@7.1.2: {} + minipass@7.0.4: {} minizlib@1.3.3: dependencies: @@ -14812,7 +15896,7 @@ snapshots: module-details-from-path@1.0.3: {} - moment-timezone@0.5.46: + moment-timezone@0.5.45: dependencies: moment: 2.29.4 @@ -14826,10 +15910,19 @@ snapshots: ms@2.1.1: {} + ms@2.1.2: {} + ms@2.1.3: {} ms@3.0.0-canary.1: {} + msgpack-lite@0.1.26: + dependencies: + event-lite: 0.1.3 + ieee754: 1.2.1 + int64-buffer: 0.1.10 + isarray: 1.0.0 + mute-stream@0.0.8: {} mv@2.1.1: @@ -14844,9 +15937,9 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.22.0: {} + nan@2.19.0: {} - nanoid@3.3.8: {} + nanoid@3.3.7: {} natural-compare-lite@1.4.0: {} @@ -14865,7 +15958,7 @@ snapshots: dependencies: debug: 3.2.7(supports-color@5.5.0) iconv-lite: 0.4.24 - sax: 1.4.1 + sax: 1.3.0 transitivePeerDependencies: - supports-color @@ -14879,6 +15972,8 @@ snapshots: next-tick@1.1.0: {} + node-abort-controller@3.1.1: {} + node-addon-api@3.2.1: {} node-addon-api@6.1.0: {} @@ -14887,15 +15982,17 @@ snapshots: dependencies: http2-client: 1.3.5 - node-fetch@2.7.0: + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 node-forge@1.3.1: {} node-gyp-build@3.9.0: {} - node-gyp-build@4.8.4: {} + node-gyp-build@4.8.0: {} node-html-markdown@1.3.0: dependencies: @@ -14937,7 +16034,7 @@ snapshots: dependencies: es6-promise: 3.3.1 - node-releases@2.0.19: {} + node-releases@2.0.14: {} nodemon@2.0.22: dependencies: @@ -14949,7 +16046,7 @@ snapshots: semver: 5.7.2 simple-update-notifier: 1.1.0 supports-color: 5.5.0 - touch: 3.1.1 + touch: 3.1.0 undefsafe: 2.0.5 nodemon@2.0.4: @@ -14961,21 +16058,21 @@ snapshots: pstree.remy: 1.1.8 semver: 5.7.2 supports-color: 5.5.0 - touch: 3.1.1 + touch: 3.1.0 undefsafe: 2.0.5 update-notifier: 4.1.3 - nodemon@3.1.9: + nodemon@3.1.0: dependencies: chokidar: 3.6.0 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 - semver: 7.6.3 + semver: 7.6.0 simple-update-notifier: 2.0.0 supports-color: 5.5.0 - touch: 3.1.1 + touch: 3.1.0 undefsafe: 2.0.5 noms@0.0.0: @@ -14983,19 +16080,23 @@ snapshots: inherits: 2.0.4 readable-stream: 1.0.34 + nopt@1.0.10: + dependencies: + abbrev: 1.1.1 + nopt@4.0.3: dependencies: abbrev: 1.1.1 osenv: 0.1.5 - nopt@7.2.1: + nopt@7.2.0: dependencies: abbrev: 2.0.0 normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.10 + resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -15042,12 +16143,12 @@ snapshots: should: 13.2.3 yaml: 1.10.2 - oas-normalize@6.0.0(openapi-types@12.1.3): + oas-normalize@6.0.0(encoding@0.1.13)(openapi-types@12.1.3): dependencies: - '@readme/openapi-parser': 2.6.0(openapi-types@12.1.3) + '@readme/openapi-parser': 2.5.1(openapi-types@12.1.3) js-yaml: 4.1.0 - node-fetch: 2.7.0 - swagger2openapi: 7.0.8 + node-fetch: 2.7.0(encoding@0.1.13) + swagger2openapi: 7.0.8(encoding@0.1.13) transitivePeerDependencies: - encoding - openapi-types @@ -15079,44 +16180,41 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.3: {} + object-inspect@1.13.1: {} object-keys@0.4.0: {} object-keys@1.1.1: {} - object.assign@4.1.7: + object.assign@4.1.5: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 + call-bind: 1.0.7 define-properties: 1.2.1 - es-object-atoms: 1.0.0 - has-symbols: 1.1.0 + has-symbols: 1.0.3 object-keys: 1.1.1 object.entries@1.1.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 object.fromentries@2.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 object.groupby@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.3 - object.values@1.2.1: + object.values@1.2.0: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 + call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 @@ -15195,12 +16293,6 @@ snapshots: os-homedir: 1.0.2 os-tmpdir: 1.0.2 - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.2.7 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - p-cancelable@1.1.0: {} p-finally@1.0.0: {} @@ -15247,8 +16339,6 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} - package-json@6.5.0: dependencies: got: 9.6.0 @@ -15361,15 +16451,15 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.11.1: + path-scurry@1.10.2: dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - path-to-regexp@0.1.12: {} + lru-cache: 10.2.2 + minipass: 7.0.4 path-to-regexp@0.1.7: {} + path-to-regexp@0.1.8: {} + path-type@2.0.0: dependencies: pify: 2.3.0 @@ -15390,36 +16480,35 @@ snapshots: pg-cloudflare@1.1.1: optional: true - pg-connection-string@2.7.0: {} + pg-connection-string@2.6.4: {} - pg-cursor@2.12.1(pg@8.13.1): + pg-cursor@2.12.0(pg@8.11.5): dependencies: - pg: 8.13.1 + pg: 8.11.5 pg-int8@1.0.1: {} - pg-minify@1.6.5: {} + pg-minify@1.6.3: {} - pg-pool@3.7.0(pg@8.13.1): + pg-pool@3.6.2(pg@8.11.5): dependencies: - pg: 8.13.1 + pg: 8.11.5 - pg-promise@11.10.2(pg-query-stream@4.7.1(pg@8.13.1)): + pg-promise@11.6.0: dependencies: - assert-options: 0.8.2 - pg: 8.13.1 - pg-minify: 1.6.5 - pg-query-stream: 4.7.1(pg@8.13.1) - spex: 3.4.0 + assert-options: 0.8.1 + pg: 8.11.5 + pg-minify: 1.6.3 + spex: 3.3.0 transitivePeerDependencies: - pg-native - pg-protocol@1.7.0: {} + pg-protocol@1.6.1: {} - pg-query-stream@4.7.1(pg@8.13.1): + pg-query-stream@4.7.0(pg@8.11.5): dependencies: - pg: 8.13.1 - pg-cursor: 2.12.1(pg@8.13.1) + pg: 8.11.5 + pg-cursor: 2.12.0(pg@8.11.5) pg-types@2.2.0: dependencies: @@ -15429,11 +16518,11 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg@8.13.1: + pg@8.11.5: dependencies: - pg-connection-string: 2.7.0 - pg-pool: 3.7.0(pg@8.13.1) - pg-protocol: 1.7.0 + pg-connection-string: 2.6.4 + pg-pool: 3.6.2(pg@8.11.5) + pg-protocol: 1.6.1 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: @@ -15443,7 +16532,7 @@ snapshots: dependencies: split2: 4.2.0 - picocolors@1.1.1: {} + picocolors@1.0.0: {} picomatch-browser@2.2.6: {} @@ -15455,11 +16544,11 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss@8.4.49: + postcss@8.4.38: dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 postgres-array@2.0.0: {} @@ -15481,7 +16570,9 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@3.4.2: {} + prettier@3.2.5: {} + + prettier@3.3.3: {} process-nextick-args@2.0.1: {} @@ -15491,9 +16582,9 @@ snapshots: proto3-json-serializer@2.0.2: dependencies: - protobufjs: 7.4.0 + protobufjs: 7.2.6 - protobufjs@7.4.0: + protobufjs@7.2.6: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -15505,7 +16596,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.17.12 + '@types/node': 20.12.7 long: 5.2.3 proxy-addr@2.0.7: @@ -15519,7 +16610,7 @@ snapshots: pstree.remy@1.1.8: {} - pump@3.0.2: + pump@3.0.0: dependencies: end-of-stream: 1.4.4 once: 1.4.0 @@ -15528,12 +16619,10 @@ snapshots: dependencies: duplexify: 4.1.3 inherits: 2.0.4 - pump: 3.0.2 + pump: 3.0.0 punycode@1.3.2: {} - punycode@1.4.1: {} - punycode@2.3.1: {} pupa@2.1.1: @@ -15546,15 +16635,15 @@ snapshots: qs@6.11.0: dependencies: - side-channel: 1.1.0 + side-channel: 1.0.6 - qs@6.13.0: + qs@6.12.1: dependencies: - side-channel: 1.1.0 + side-channel: 1.0.6 - qs@6.13.1: + qs@6.13.0: dependencies: - side-channel: 1.1.0 + side-channel: 1.0.6 qs@6.7.0: {} @@ -15598,29 +16687,29 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - rdme@7.5.0(openapi-types@12.1.3): + rdme@7.5.0(encoding@0.1.13)(openapi-types@12.1.3): dependencies: - '@actions/core': 1.11.1 + '@actions/core': 1.10.1 chalk: 4.1.2 cli-table: 0.3.11 command-line-args: 5.2.1 command-line-usage: 6.1.3 - config: 3.3.12 + config: 3.3.11 configstore: 5.0.1 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) editor: 1.0.0 enquirer: 2.4.1 - form-data: 4.0.1 + form-data: 4.0.0 gray-matter: 4.0.3 isemail: 3.2.0 mime-types: 2.1.35 - node-fetch: 2.7.0 - oas-normalize: 6.0.0(openapi-types@12.1.3) + node-fetch: 2.7.0(encoding@0.1.13) + oas-normalize: 6.0.0(encoding@0.1.13)(openapi-types@12.1.3) open: 8.4.2 ora: 5.4.1 parse-link-header: 2.0.0 read: 1.0.7 - semver: 7.6.3 + semver: 7.6.0 tmp-promise: 3.0.3 update-notifier: 5.1.0 transitivePeerDependencies: @@ -15670,31 +16759,20 @@ snapshots: dependencies: picomatch: 2.3.1 - redis@4.7.0: + redis@4.6.13: dependencies: - '@redis/bloom': 1.2.0(@redis/client@1.6.0) - '@redis/client': 1.6.0 - '@redis/graph': 1.1.1(@redis/client@1.6.0) - '@redis/json': 1.0.7(@redis/client@1.6.0) - '@redis/search': 1.2.0(@redis/client@1.6.0) - '@redis/time-series': 1.1.0(@redis/client@1.6.0) + '@redis/bloom': 1.2.0(@redis/client@1.5.14) + '@redis/client': 1.5.14 + '@redis/graph': 1.1.1(@redis/client@1.5.14) + '@redis/json': 1.0.6(@redis/client@1.5.14) + '@redis/search': 1.1.6(@redis/client@1.5.14) + '@redis/time-series': 1.0.5(@redis/client@1.5.14) reduce-flatten@2.0.0: {} - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - reftools@1.1.9: {} - regenerate-unicode-properties@10.2.0: + regenerate-unicode-properties@10.1.1: dependencies: regenerate: 1.4.2 @@ -15704,25 +16782,23 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.24.4 - regexp.prototype.flags@1.5.4: + regexp.prototype.flags@1.5.2: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 set-function-name: 2.0.2 - regexpu-core@6.2.0: + regexpu-core@5.3.2: dependencies: + '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.12.0 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 + unicode-match-property-value-ecmascript: 2.1.0 registry-auth-token@4.2.2: dependencies: @@ -15732,11 +16808,9 @@ snapshots: dependencies: rc: 1.2.8 - regjsgen@0.8.0: {} - - regjsparser@0.12.0: + regjsparser@0.9.1: dependencies: - jsesc: 3.0.2 + jsesc: 0.5.0 remove-trailing-slash@0.1.1: {} @@ -15752,9 +16826,9 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.10: + resolve@1.22.8: dependencies: - is-core-module: 2.16.1 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -15773,16 +16847,16 @@ snapshots: retry-request@4.2.2: dependencies: - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) extend: 3.0.2 transitivePeerDependencies: - supports-color - retry-request@7.0.2: + retry-request@7.0.2(encoding@0.1.13): dependencies: '@types/request': 2.48.12 extend: 3.0.2 - teeny-request: 9.0.0 + teeny-request: 9.0.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color @@ -15791,8 +16865,6 @@ snapshots: reusify@1.0.4: {} - rfdc@1.4.1: {} - rimraf@2.4.5: dependencies: glob: 6.0.4 @@ -15811,14 +16883,13 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.8.1 + tslib: 2.6.2 - safe-array-concat@1.1.3: + safe-array-concat@1.1.2: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - has-symbols: 1.1.0 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 isarray: 2.0.5 safe-buffer@5.1.2: {} @@ -15828,33 +16899,28 @@ snapshots: safe-json-stringify@1.2.0: optional: true - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: + safe-regex-test@1.0.3: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 es-errors: 1.3.0 - is-regex: 1.2.1 + is-regex: 1.1.4 safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} - sanitize-html@2.14.0: + sanitize-html@2.13.0: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 htmlparser2: 8.0.2 is-plain-object: 5.0.0 parse-srcset: 1.0.2 - postcss: 8.4.49 + postcss: 8.4.38 sax@1.2.1: {} - sax@1.4.1: {} + sax@1.3.0: {} schema-utils@3.3.0: dependencies: @@ -15862,13 +16928,6 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) - section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -15894,7 +16953,9 @@ snapshots: semver@7.0.0: {} - semver@7.6.3: {} + semver@7.6.0: + dependencies: + lru-cache: 6.0.0 send@0.17.1: dependencies: @@ -15939,32 +17000,32 @@ snapshots: fs-extra: 4.0.3 js-beautify: 1.15.1 lodash: 4.17.21 - resolve: 1.22.10 + resolve: 1.22.8 umzug: 2.3.0 yargs: 8.0.2 sequelize-pool@7.1.0: {} - sequelize@6.21.2(pg@8.13.1): + sequelize@6.21.2(pg@8.11.5): dependencies: '@types/debug': 4.1.12 - '@types/validator': 13.12.2 - debug: 4.4.0(supports-color@5.5.0) + '@types/validator': 13.11.9 + debug: 4.3.4(supports-color@5.5.0) dottie: 2.0.6 inflection: 1.13.4 lodash: 4.17.21 moment: 2.29.4 - moment-timezone: 0.5.46 - pg-connection-string: 2.7.0 + moment-timezone: 0.5.45 + pg-connection-string: 2.6.4 retry-as-promised: 5.0.0 - semver: 7.6.3 + semver: 7.6.0 sequelize-pool: 7.1.0 toposort-class: 1.0.1 uuid: 8.3.2 - validator: 13.12.0 + validator: 13.11.0 wkx: 0.5.0 optionalDependencies: - pg: 8.13.1 + pg: 8.11.5 transitivePeerDependencies: - supports-color @@ -15997,8 +17058,8 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 - gopd: 1.2.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 has-property-descriptors: 1.0.2 set-function-name@2.0.2: @@ -16008,12 +17069,6 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - setprototypeof@1.1.1: {} setprototypeof@1.2.0: {} @@ -16030,7 +17085,7 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.2: {} + shell-quote@1.8.1: {} should-equal@2.0.0: dependencies: @@ -16058,33 +17113,12 @@ snapshots: should-type-adaptors: 1.1.0 should-util: 1.0.1 - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 - - side-channel-weakmap@1.0.2: + side-channel@1.0.6: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 signal-exit@3.0.7: {} @@ -16102,7 +17136,7 @@ snapshots: simple-update-notifier@2.0.0: dependencies: - semver: 7.6.3 + semver: 7.6.0 slack-block-builder@2.8.0: {} @@ -16110,12 +17144,12 @@ snapshots: snakeize@0.1.0: {} - snowflake-sdk@1.15.0(asn1.js@5.4.1): + snowflake-sdk@1.15.0(asn1.js@5.4.1)(encoding@0.1.13): dependencies: - '@aws-sdk/client-s3': 3.723.0 + '@aws-sdk/client-s3': 3.689.0 '@aws-sdk/node-http-handler': 3.374.0 - '@azure/storage-blob': 12.18.0 - '@google-cloud/storage': 7.14.0 + '@azure/storage-blob': 12.18.0(encoding@0.1.13) + '@google-cloud/storage': 7.14.0(encoding@0.1.13) '@techteamer/ocsp': 1.0.1 asn1.js: 5.4.1 asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1) @@ -16127,16 +17161,16 @@ snapshots: bn.js: 5.2.1 browser-request: 0.3.3 expand-tilde: 2.0.2 - fast-xml-parser: 4.5.1 + fast-xml-parser: 4.2.5 fastest-levenshtein: 1.0.16 generic-pool: 3.9.0 - glob: 10.4.5 - https-proxy-agent: 7.0.6 + glob: 10.3.12 + https-proxy-agent: 7.0.4 jsonwebtoken: 9.0.2 mime-types: 2.1.35 mkdirp: 1.0.4 moment: 2.29.4 - moment-timezone: 0.5.46 + moment-timezone: 0.5.45 open: 7.4.2 python-struct: 1.1.3 simple-lru-cache: 0.0.2 @@ -16149,10 +17183,10 @@ snapshots: - encoding - supports-color - socket.io-adapter@2.5.5(bufferutil@4.0.9)(utf-8-validate@5.0.10): + socket.io-adapter@2.5.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: - debug: 4.3.7 - ws: 8.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + debug: 4.3.4(supports-color@5.5.0) + ws: 8.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -16161,31 +17195,31 @@ snapshots: socket.io-parser@4.2.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 + debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - socket.io@4.8.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + socket.io@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.7 - engine.io: 6.6.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) - socket.io-adapter: 2.5.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + debug: 4.3.4(supports-color@5.5.0) + engine.io: 6.5.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + socket.io-adapter: 2.5.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - source-map-js@1.2.1: {} + source-map-js@1.2.0: {} - source-map-loader@4.0.2(webpack@5.97.1(@swc/core@1.10.4)): + source-map-loader@4.0.2(webpack@5.91.0(@swc/core@1.4.17)): dependencies: iconv-lite: 0.6.3 - source-map-js: 1.2.1 - webpack: 5.97.1(@swc/core@1.10.4) + source-map-js: 1.2.0 + webpack: 5.91.0(@swc/core@1.4.17) source-map-support@0.5.21: dependencies: @@ -16201,18 +17235,18 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.20 + spdx-license-ids: 3.0.17 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.20 + spdx-license-ids: 3.0.17 - spdx-license-ids@3.0.20: {} + spdx-license-ids@3.0.17: {} - spex@3.4.0: {} + spex@3.3.0: {} split2@4.2.0: {} @@ -16253,26 +17287,22 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.trim@1.2.10: + string.prototype.trim@1.2.9: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-data-property: 1.1.4 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 - has-property-descriptors: 1.0.2 - string.prototype.trimend@1.0.9: + string.prototype.trimend@1.0.8: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 + call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 @@ -16300,7 +17330,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.1.0 + ansi-regex: 6.0.1 strip-bom-string@1.0.0: {} @@ -16320,14 +17350,14 @@ snapshots: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) fast-safe-stringify: 2.1.1 - form-data: 4.0.1 + form-data: 4.0.0 formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.13.1 - semver: 7.6.3 + qs: 6.12.1 + semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -16352,10 +17382,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swagger2openapi@7.0.8: + swagger2openapi@7.0.8(encoding@0.1.13): dependencies: call-me-maybe: 1.0.2 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) node-fetch-h2: 2.3.0 node-readfiles: 0.2.0 oas-kit-common: 1.0.8 @@ -16368,16 +17398,21 @@ snapshots: transitivePeerDependencies: - encoding - swc-loader@0.2.6(@swc/core@1.10.4)(webpack@5.97.1(@swc/core@1.10.4)): + swc-loader@0.2.6(@swc/core@1.4.17)(webpack@5.91.0(@swc/core@1.4.17)): dependencies: - '@swc/core': 1.10.4 + '@swc/core': 1.4.17 '@swc/counter': 0.1.3 - webpack: 5.97.1(@swc/core@1.10.4) + webpack: 5.91.0(@swc/core@1.4.17) + + synckit@0.8.8: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.2 synckit@0.9.2: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.8.1 + tslib: 2.6.2 table-layout@1.0.2: dependencies: @@ -16398,22 +17433,22 @@ snapshots: safe-buffer: 5.2.1 yallist: 3.1.1 - teeny-request@7.2.0: + teeny-request@7.2.0(encoding@0.1.13): dependencies: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) stream-events: 1.0.5 uuid: 8.3.2 transitivePeerDependencies: - encoding - supports-color - teeny-request@9.0.0: + teeny-request@9.0.0(encoding@0.1.13): dependencies: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) stream-events: 1.0.5 uuid: 9.0.1 transitivePeerDependencies: @@ -16422,21 +17457,21 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.3.11(@swc/core@1.10.4)(webpack@5.97.1(@swc/core@1.10.4)): + terser-webpack-plugin@5.3.10(@swc/core@1.4.17)(webpack@5.91.0(@swc/core@1.4.17)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 - schema-utils: 4.3.0 + schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.37.0 - webpack: 5.97.1(@swc/core@1.10.4) + terser: 5.30.4 + webpack: 5.91.0(@swc/core@1.4.17) optionalDependencies: - '@swc/core': 1.10.4 + '@swc/core': 1.4.17 - terser@5.37.0: + terser@5.30.4: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 @@ -16452,25 +17487,25 @@ snapshots: dependencies: any-promise: 1.3.0 - thingies@1.21.0(tslib@2.8.1): + thingies@1.21.0(tslib@2.6.2): dependencies: - tslib: 2.8.1 + tslib: 2.6.2 through2@2.0.5: dependencies: readable-stream: 2.3.8 xtend: 4.0.2 - timers-ext@0.1.8: + timers-ext@0.1.7: dependencies: es5-ext: 0.10.64 next-tick: 1.1.0 - tldts-core@6.1.71: {} + tldts-core@6.1.18: {} - tldts@6.1.71: + tldts@6.1.18: dependencies: - tldts-core: 6.1.71 + tldts-core: 6.1.18 tlhunter-sorted-set@0.1.0: {} @@ -16496,41 +17531,43 @@ snapshots: toposort-class@1.0.1: {} - touch@3.1.1: {} + touch@3.1.0: + dependencies: + nopt: 1.0.10 tr46@0.0.3: {} - tree-dump@1.0.2(tslib@2.8.1): + tree-dump@1.0.2(tslib@2.6.2): dependencies: - tslib: 2.8.1 + tslib: 2.6.2 triple-beam@1.4.1: {} - ts-api-utils@1.4.3(typescript@5.7.2): + ts-api-utils@1.3.0(typescript@5.6.3): dependencies: - typescript: 5.7.2 + typescript: 5.6.3 ts-mixer@6.0.4: {} - ts-node@10.9.2(@swc/core@1.10.4)(@types/node@20.17.12)(typescript@5.7.2): + ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.12 - acorn: 8.14.0 - acorn-walk: 8.3.4 + '@types/node': 20.12.7 + acorn: 8.11.3 + acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.7.2 + typescript: 5.6.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.10.4 + '@swc/core': 1.4.17 tsconfig-paths@3.15.0: dependencies: @@ -16547,17 +17584,17 @@ snapshots: tslib@1.14.1: {} - tslib@2.8.1: {} + tslib@2.6.2: {} - tsutils@3.21.0(typescript@5.7.2): + tsutils@3.21.0(typescript@5.6.3): dependencies: tslib: 1.14.1 - typescript: 5.7.2 + typescript: 5.6.3 - tsx@4.19.2: + tsx@4.7.3: dependencies: - esbuild: 0.23.1 - get-tsconfig: 4.8.1 + esbuild: 0.19.12 + get-tsconfig: 4.7.3 optionalDependencies: fsevents: 2.3.3 @@ -16576,40 +17613,39 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - type@2.7.3: {} + type@2.7.2: {} - typed-array-buffer@1.0.3: + typed-array-buffer@1.0.2: dependencies: - call-bound: 1.0.3 + call-bind: 1.0.7 es-errors: 1.3.0 - is-typed-array: 1.1.15 + is-typed-array: 1.1.13 - typed-array-byte-length@1.0.3: + typed-array-byte-length@1.0.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typed-array-byte-offset@1.0.4: + typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typed-array-length@1.0.7: + typed-array-length@1.0.6: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.2.0 - is-typed-array: 1.1.15 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.10 typedarray-to-buffer@3.1.5: dependencies: @@ -16619,7 +17655,7 @@ snapshots: typescript@4.9.5: {} - typescript@5.7.2: {} + typescript@5.6.3: {} typical@4.0.0: {} @@ -16631,49 +17667,47 @@ snapshots: dependencies: bluebird: 3.7.2 - unbox-primitive@1.1.0: + unbox-primitive@1.0.2: dependencies: - call-bound: 1.0.3 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 undefsafe@2.0.5: {} undici-types@5.26.5: {} - undici-types@6.19.8: {} - - undici-types@6.21.0: {} + undici@5.27.2: + dependencies: + '@fastify/busboy': 2.1.1 undici@5.28.4: dependencies: '@fastify/busboy': 2.1.1 - undici@6.19.8: {} - - unicode-canonical-property-names-ecmascript@2.0.1: {} + unicode-canonical-property-names-ecmascript@2.0.0: {} unicode-match-property-ecmascript@2.0.0: dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.2.0: {} + unicode-match-property-value-ecmascript@2.1.0: {} unicode-property-aliases-ecmascript@2.1.0: {} unionfs@4.5.4: dependencies: - fs-monkey: 1.0.6 + fs-monkey: 1.0.5 unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 - universal-github-app-jwt@1.2.0: + universal-github-app-jwt@1.1.2: dependencies: - '@types/jsonwebtoken': 9.0.7 + '@types/jsonwebtoken': 9.0.6 jsonwebtoken: 9.0.2 universal-user-agent@6.0.1: {} @@ -16686,11 +17720,11 @@ snapshots: untildify@4.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.3): + update-browserslist-db@1.0.13(browserslist@4.23.0): dependencies: - browserslist: 4.24.3 - escalade: 3.2.0 - picocolors: 1.1.1 + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 update-notifier@4.1.3: dependencies: @@ -16721,7 +17755,7 @@ snapshots: is-yarn-global: 0.3.0 latest-version: 5.1.0 pupa: 2.1.1 - semver: 7.6.3 + semver: 7.6.0 semver-diff: 3.1.1 xdg-basedir: 4.0.0 @@ -16740,7 +17774,7 @@ snapshots: utf-8-validate@5.0.10: dependencies: - node-gyp-build: 4.8.4 + node-gyp-build: 4.8.0 util-deprecate@1.0.2: {} @@ -16759,7 +17793,7 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validator@13.12.0: {} + validator@13.11.0: {} vary@1.1.2: {} @@ -16767,10 +17801,10 @@ snapshots: vm2@3.9.19: dependencies: - acorn: 8.14.0 - acorn-walk: 8.3.4 + acorn: 8.11.3 + acorn-walk: 8.3.2 - watchpack@2.4.2: + watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -16783,18 +17817,19 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.97.1(@swc/core@1.10.4): + webpack@5.91.0(@swc/core@1.4.17): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 - browserslist: 4.24.3 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.0 - es-module-lexer: 1.6.0 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.23.0 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.16.0 + es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -16805,8 +17840,8 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(@swc/core@1.10.4)(webpack@5.97.1(@swc/core@1.10.4)) - watchpack: 2.4.2 + terser-webpack-plugin: 5.3.10(@swc/core@1.4.17)(webpack@5.91.0(@swc/core@1.4.17)) + watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -16818,46 +17853,22 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.1.1: + which-boxed-primitive@1.0.2: dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.1 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.3 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.0 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.0 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.18 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 which-module@2.0.1: {} - which-typed-array@1.1.18: + which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 + call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.2.0 + gopd: 1.0.1 has-tostringtag: 1.0.2 which@1.3.1: @@ -16874,7 +17885,7 @@ snapshots: wide-align@1.1.5: dependencies: - string-width: 1.0.2 + string-width: 4.2.3 widest-line@3.1.0: dependencies: @@ -16890,7 +17901,7 @@ snapshots: dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 - async: 3.2.6 + async: 3.2.5 is-stream: 2.0.1 logform: 2.7.0 one-time: 1.0.0 @@ -16902,7 +17913,7 @@ snapshots: wkx@0.5.0: dependencies: - '@types/node': 20.17.12 + '@types/node': 20.12.7 word-wrap@1.2.5: {} @@ -16943,14 +17954,14 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - ws@8.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + ws@8.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.9 + bufferutil: 4.0.8 utf-8-validate: 5.0.10 - ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + ws@8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.9 + bufferutil: 4.0.8 utf-8-validate: 5.0.10 xcase@2.0.1: {} @@ -16964,7 +17975,7 @@ snapshots: xml2js@0.5.0: dependencies: - sax: 1.4.1 + sax: 1.3.0 xmlbuilder: 11.0.1 xmlbuilder@11.0.1: {} @@ -17021,7 +18032,7 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.2.0 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -17031,7 +18042,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.2.0 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -17060,4 +18071,4 @@ snapshots: zlib-sync@0.1.9: dependencies: - nan: 2.22.0 + nan: 2.19.0 From 4565618f79e7fc77963ba849db4828621e9601dd Mon Sep 17 00:00:00 2001 From: garrrikkotua Date: Mon, 20 Jan 2025 21:04:11 +0400 Subject: [PATCH 21/30] add missing file --- .../github-connect-finishing-modal.vue | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 frontend/src/config/integrations/github/components/connect/github-connect-finishing-modal.vue diff --git a/frontend/src/config/integrations/github/components/connect/github-connect-finishing-modal.vue b/frontend/src/config/integrations/github/components/connect/github-connect-finishing-modal.vue new file mode 100644 index 0000000000..17a33517fa --- /dev/null +++ b/frontend/src/config/integrations/github/components/connect/github-connect-finishing-modal.vue @@ -0,0 +1,38 @@ + + + + + From 88199e0f05abaea39a55a403cca8bc1576987282 Mon Sep 17 00:00:00 2001 From: garrrikkotua Date: Tue, 21 Jan 2025 15:33:57 +0300 Subject: [PATCH 22/30] works --- .../api/integration/helpers/githubAuthenticate.ts | 13 +++++++++++++ backend/src/api/integration/index.ts | 11 +++++++---- .../github/rest/getInstalledRepositories.ts | 2 +- .../usecases/github/rest/getRemoteStats.ts | 5 +++++ .../src/modules/integration/integration-service.js | 4 ++-- .../src/integrations/github/generateStreams.ts | 12 +++++++++--- .../src/integrations/github/processStream.ts | 10 ++-------- 7 files changed, 39 insertions(+), 18 deletions(-) create mode 100644 backend/src/api/integration/helpers/githubAuthenticate.ts diff --git a/backend/src/api/integration/helpers/githubAuthenticate.ts b/backend/src/api/integration/helpers/githubAuthenticate.ts new file mode 100644 index 0000000000..36b3d6e242 --- /dev/null +++ b/backend/src/api/integration/helpers/githubAuthenticate.ts @@ -0,0 +1,13 @@ +import Permissions from '../../../security/permissions' +import IntegrationService from '../../../services/integrationService' +import PermissionChecker from '../../../services/user/permissionChecker' + +export default async (req, res) => { + new PermissionChecker(req).validateHas(Permissions.values.tenantEdit) + const payload = await new IntegrationService(req).connectGithub( + req.params.code, + req.body.installId, + req.body.setupAction, + ) + await req.responseHandler.success(req, res, payload) +} diff --git a/backend/src/api/integration/index.ts b/backend/src/api/integration/index.ts index e65cfd06d0..fbc3f874b4 100644 --- a/backend/src/api/integration/index.ts +++ b/backend/src/api/integration/index.ts @@ -26,19 +26,22 @@ export default (app) => { app.get(`/integration/autocomplete`, safeWrap(require('./integrationAutocomplete').default)) app.get(`/integration/global`, safeWrap(require('./integrationGlobal').default)) app.get(`/integration/global/status`, safeWrap(require('./integrationGlobalStatus').default)) - app.get(`/integration`, safeWrap(require('./integrationList').default)) - app.get(`/integration/:id`, safeWrap(require('./integrationFind').default)) app.get( - '/tenant/:tenantId/github-installations', + '/integration/github-installations', safeWrap(require('./helpers/githubGetInstallations').default), ) app.post( - '/tenant/:tenantId/github-connect-installation', + '/integration/github-connect-installation', safeWrap(require('./helpers/githubConnectInstallation').default), ) + app.get(`/integration`, safeWrap(require('./integrationList').default)) + app.get(`/integration/:id`, safeWrap(require('./integrationFind').default)) + + app.put(`/authenticate/:code`, safeWrap(require('./helpers/githubAuthenticate').default)) + app.put(`/integration/:id/github/repos`, safeWrap(require('./helpers/githubMapRepos').default)) app.get(`/integration/:id/github/repos`, safeWrap(require('./helpers/githubMapReposGet').default)) app.get( diff --git a/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts b/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts index 2bcf4d2867..a6de4f728f 100644 --- a/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts +++ b/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts @@ -59,7 +59,7 @@ export const getInstalledRepositories = async (installToken: string): Promise 0 && data.total_count > repos.length page += 1 } - return repos.filter((repo) => !IS_GITHUB_COMMIT_DATA_ENABLED || !(repo.fork || repo.private)) + return repos.filter((repo) => !repo.private && !repo.fork) } catch (err: any) { log.error(err, 'Error fetching installed repositories!') throw err diff --git a/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts b/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts index 2059254988..a59724b0a4 100644 --- a/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts +++ b/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts @@ -50,6 +50,8 @@ const getStatsForRepo = async (repoUrl: string, token: string): Promise> => const handler: GenerateStreamsHandler = async (ctx) => { const settings = ctx.integration.settings as GithubIntegrationSettings - const reposToCheck = [ + let reposToCheck = [ ...(settings?.orgs?.flatMap((o) => o.repos) || []), ...(settings?.unavailableRepos || []), ] + // repos from settings have only url and name, we need to get owner from url + reposToCheck = reposToCheck.map((repo) => { + const url = new URL(repo.url) + return { ...repo, owner: url.pathname.split('/')[1] } + }) + const isManualRun = ctx.isManualRun if (isManualRun) { @@ -62,7 +68,7 @@ const handler: GenerateStreamsHandler = async (ctx) => { manualSettings.streamType === streamToManualStreamMap.get(endpoint) ) { await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { - repo, + repo: { ...repo, owner: new URL(repo.url).pathname.split('/')[1] }, page: '', }) } @@ -78,7 +84,7 @@ const handler: GenerateStreamsHandler = async (ctx) => { } const repo = manualSettings.orgs.flatMap((o) => o.repos).find((r) => r.url === repoUrl) await ctx.publishStream(`${endpoint}:${repo.name}:firstPage`, { - repo, + repo: { ...repo, owner: new URL(repo.url).pathname.split('/')[1] }, page: '', }) } diff --git a/services/libs/integrations/src/integrations/github/processStream.ts b/services/libs/integrations/src/integrations/github/processStream.ts index 46a9397fa1..474f50053d 100644 --- a/services/libs/integrations/src/integrations/github/processStream.ts +++ b/services/libs/integrations/src/integrations/github/processStream.ts @@ -312,14 +312,7 @@ const processRootStream: ProcessStreamHandler = async (ctx) => { try { // we don't need to get default 100 item per page, just 1 is enough to check if repo is available const stargazersQuery = new StargazersQuery(repo, await getGithubToken(ctx), 1) - await stargazersQuery.getSinglePage( - '', - { - concurrentRequestLimiter: getConcurrentRequestLimiter(ctx), - integrationId: ctx.integration.id, - }, - getTokenRotator(ctx), - ) + await stargazersQuery.getSinglePage('') repos.push(repo) } catch (e) { if (e.rateLimitResetSeconds) { @@ -328,6 +321,7 @@ const processRootStream: ProcessStreamHandler = async (ctx) => { ctx.log.warn( `Repo ${repo.name} will not be parsed. It is not available with the github token`, ) + console.log('e', e) unavailableRepos.push(repo) } } From 5434e97446e6835596d561abff14b4544066d3e0 Mon Sep 17 00:00:00 2001 From: garrrikkotua Date: Tue, 21 Jan 2025 15:39:17 +0300 Subject: [PATCH 23/30] don't push attrs in non sf mode --- .../config/custom-environment-variables.json | 3 +++ .../apps/data_sink_worker/src/conf/index.ts | 12 +++++++++++ .../src/service/activity.service.ts | 21 ++++++++++++------- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/services/apps/data_sink_worker/config/custom-environment-variables.json b/services/apps/data_sink_worker/config/custom-environment-variables.json index 7f0b6cd332..07554b54d9 100644 --- a/services/apps/data_sink_worker/config/custom-environment-variables.json +++ b/services/apps/data_sink_worker/config/custom-environment-variables.json @@ -30,5 +30,8 @@ }, "worker": { "queuePriorityLevel": "QUEUE_PRIORITY_LEVEL" + }, + "github": { + "isSnowflakeEnabled": "CROWD_GITHUB_IS_SNOWFLAKE_ENABLED" } } diff --git a/services/apps/data_sink_worker/src/conf/index.ts b/services/apps/data_sink_worker/src/conf/index.ts index 55759a9f05..ec71246f7b 100644 --- a/services/apps/data_sink_worker/src/conf/index.ts +++ b/services/apps/data_sink_worker/src/conf/index.ts @@ -11,6 +11,10 @@ export interface ISlackAlertingConfig { url: string } +export interface IGithubConfig { + isSnowflakeEnabled: string +} + export interface IWorkerConfig { maxStreamRetries: number queuePriorityLevel: QueuePriorityLevel @@ -68,3 +72,11 @@ export const TEMPORAL_CONFIG = (): ITemporalConfig | undefined => { export const SEARCH_SYNC_API_CONFIG = (): ISearchSyncApiConfig => { return config.get('searchSyncApi') } + +let githubConfig: IGithubConfig +export const GITHUB_CONFIG = (): IGithubConfig => { + if (githubConfig) return githubConfig + + githubConfig = config.get('github') + return githubConfig +} diff --git a/services/apps/data_sink_worker/src/service/activity.service.ts b/services/apps/data_sink_worker/src/service/activity.service.ts index fd73f69832..c415243c68 100644 --- a/services/apps/data_sink_worker/src/service/activity.service.ts +++ b/services/apps/data_sink_worker/src/service/activity.service.ts @@ -44,11 +44,15 @@ import { PlatformType, } from '@crowd/types' +import { GITHUB_CONFIG } from '../conf' + import { IActivityCreateData, IActivityUpdateData, ISentimentActivityInput } from './activity.data' import { UnrepeatableError } from './common' import MemberService from './member.service' import MemberAffiliationService from './memberAffiliation.service' +const IS_GITHUB_SNOWFLAKE_ENABLED = GITHUB_CONFIG().isSnowflakeEnabled === 'true' + export default class ActivityService extends LoggerBase { constructor( private readonly pgStore: DbStore, @@ -1094,13 +1098,16 @@ export default class ActivityService extends LoggerBase { ) } - if (platform === PlatformType.GIT && activity.type === GitActivityType.AUTHORED_COMMIT) { - await this.pushAttributesToMatchingGithubActivity({ tenantId, segmentId, activity }) - } else if ( - platform === PlatformType.GITHUB && - activity.type === GithubActivityType.PULL_REQUEST_OPENED - ) { - await this.pushPRSourceIdToMatchingGithubCommits({ tenantId, activity }) + // if snowflake is enabled, we need to push attributes to matching github activity + if (IS_GITHUB_SNOWFLAKE_ENABLED) { + if (platform === PlatformType.GIT && activity.type === GitActivityType.AUTHORED_COMMIT) { + await this.pushAttributesToMatchingGithubActivity({ tenantId, segmentId, activity }) + } else if ( + platform === PlatformType.GITHUB && + activity.type === GithubActivityType.PULL_REQUEST_OPENED + ) { + await this.pushPRSourceIdToMatchingGithubCommits({ tenantId, activity }) + } } } finally { // release locks matter what From 1ea90e638d9084859a32737084122d764fa44182 Mon Sep 17 00:00:00 2001 From: garrrikkotua Date: Tue, 21 Jan 2025 15:40:33 +0300 Subject: [PATCH 24/30] format back --- .../helpers/githubConnectInstallation.ts | 2 +- .../helpers/githubGetInstallations.ts | 2 +- .../github/rest/getInstalledRepositories.ts | 2 +- .../usecases/github/rest/getRemoteStats.ts | 3 +- backend/src/services/integrationService.ts | 44 ++++++++++++------- 5 files changed, 32 insertions(+), 21 deletions(-) diff --git a/backend/src/api/integration/helpers/githubConnectInstallation.ts b/backend/src/api/integration/helpers/githubConnectInstallation.ts index 982186c927..d7da9b0f43 100644 --- a/backend/src/api/integration/helpers/githubConnectInstallation.ts +++ b/backend/src/api/integration/helpers/githubConnectInstallation.ts @@ -6,4 +6,4 @@ export default async (req, res) => { new PermissionChecker(req).validateHas(Permissions.values.tenantEdit) const payload = await new IntegrationService(req).connectGithubInstallation(req.body.installId) await req.responseHandler.success(req, res, payload) -} \ No newline at end of file +} diff --git a/backend/src/api/integration/helpers/githubGetInstallations.ts b/backend/src/api/integration/helpers/githubGetInstallations.ts index bcd4499424..08448c107d 100644 --- a/backend/src/api/integration/helpers/githubGetInstallations.ts +++ b/backend/src/api/integration/helpers/githubGetInstallations.ts @@ -6,4 +6,4 @@ export default async (req, res) => { new PermissionChecker(req).validateHas(Permissions.values.tenantEdit) const payload = await new IntegrationService(req).getGithubInstallations() await req.responseHandler.success(req, res, payload) -} \ No newline at end of file +} diff --git a/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts b/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts index a6de4f728f..d5c2e5917d 100644 --- a/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts +++ b/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts @@ -64,4 +64,4 @@ export const getInstalledRepositories = async (installToken: string): Promise ({ + const transformedRepos = repos.map((repo) => ({ name: repo.name, url: repo.url, - updatedAt: repo.createdAt || new Date().toISOString() + updatedAt: repo.createdAt || new Date().toISOString(), })) // Add repos in chunks @@ -537,7 +540,6 @@ export default class IntegrationService { } return integration - } catch (err) { await SequelizeRepository.rollbackTransaction(transaction) throw err @@ -574,7 +576,12 @@ export default class IntegrationService { } } - async mapGithubReposSnowflake(integrationId, mapping, fireOnboarding = true, isUpdateTransaction = false) { + async mapGithubReposSnowflake( + integrationId, + mapping, + fireOnboarding = true, + isUpdateTransaction = false, + ) { const transaction = await SequelizeRepository.createTransaction(this.options) const txOptions = { @@ -588,7 +595,12 @@ export default class IntegrationService { try { const oldMapping = await GithubReposRepository.getMapping(integrationId, txOptions) - await GithubReposRepository.updateMappingSnowflake(integrationId, mapping, oldMapping, txOptions) + await GithubReposRepository.updateMappingSnowflake( + integrationId, + mapping, + oldMapping, + txOptions, + ) // add the repos to the git integration if (EDITION === Edition.LFX) { From facbac2e6f93ec4ba7c94ec0dd9b92196bde96a5 Mon Sep 17 00:00:00 2001 From: garrrikkotua Date: Tue, 21 Jan 2025 15:46:33 +0300 Subject: [PATCH 25/30] fix issues --- .../usecases/github/rest/getInstalledRepositories.ts | 3 --- .../integrations/usecases/github/rest/getRemoteStats.ts | 4 ---- .../github-archive/components/github-connect.vue | 8 ++++---- .../github-archive/services/github.api.service.ts | 1 - .../src/integrations/github-snowflake/processStream.ts | 2 ++ 5 files changed, 6 insertions(+), 12 deletions(-) diff --git a/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts b/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts index d5c2e5917d..1e00f75dba 100644 --- a/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts +++ b/backend/src/serverless/integrations/usecases/github/rest/getInstalledRepositories.ts @@ -2,11 +2,8 @@ import axios, { AxiosRequestConfig } from 'axios' import { getServiceChildLogger } from '@crowd/logging' -import { GITHUB_CONFIG } from '../../../../../conf' import { Repos } from '../../../types/regularTypes' -const IS_GITHUB_COMMIT_DATA_ENABLED = GITHUB_CONFIG.isCommitDataEnabled === 'true' - const log = getServiceChildLogger('getInstalledRepositories') const getRepositoriesFromGH = async (page: number, installToken: string): Promise => { diff --git a/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts b/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts index 7661ef3beb..491ada86dc 100644 --- a/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts +++ b/backend/src/serverless/integrations/usecases/github/rest/getRemoteStats.ts @@ -50,8 +50,6 @@ const getStatsForRepo = async (repoUrl: string, token: string): Promise