diff --git a/.gitignore b/.gitignore index 27e25baedc9..17e64e722f4 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,7 @@ dist/ dump.rdb node_modules/ package-lock.json -packages/server/postgres/pg.d.ts +packages/server/postgres/types/pg.d.ts packages/server/postgres/queries/generated packages/server/types/githubTypes.ts packages/server/types/gitlabTypes.ts diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 529b133fdee..54736c81642 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.1.0" + ".": "8.1.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 2620e4b8141..0667de7666f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ This project adheres to [Semantic Versioning](http://semver.org/). This CHANGELOG follows conventions [outlined here](http://keepachangelog.com/). +## [8.1.1](https://github.com/ParabolInc/parabol/compare/v8.1.0...v8.1.1) (2024-10-28) + + +### Fixed + +* increase URL col length for IntegrationProvider ([2c49dce](https://github.com/ParabolInc/parabol/commit/2c49dce82d0b9a8f7b20762bcc2cd903fcc966b0)) +* index on discussionTopicId ([#10423](https://github.com/ParabolInc/parabol/issues/10423)) ([c101e30](https://github.com/ParabolInc/parabol/commit/c101e30350a70056d470d293de9c88cdb18e8f88)) +* support pg tracing in dd-trace-js ([#10424](https://github.com/ParabolInc/parabol/issues/10424)) ([e963369](https://github.com/ParabolInc/parabol/commit/e96336930c4852af0bcdfd70707bd4a8a57ce75e)) + ## [8.1.0](https://github.com/ParabolInc/parabol/compare/v8.0.1...v8.1.0) (2024-10-24) diff --git a/package.json b/package.json index e8d163d2d59..668193a8594 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "An open-source app for building smarter, more agile teams.", "author": "Parabol Inc. (http://github.com/ParabolInc)", "license": "AGPL-3.0", - "version": "8.1.0", + "version": "8.1.1", "repository": { "type": "git", "url": "https://github.com/ParabolInc/parabol" @@ -27,7 +27,7 @@ "clean": "git clean -fdx -e .env", "codegen": "node scripts/codegenGraphQL.js", "pg:build": "pgtyped -c ./packages/server/postgres/pgtypedConfig.js", - "pg:generate": "export $(grep ^POSTGRES_ .env | tr -d \"'\"); yarn kysely-codegen --exclude-pattern \"(PgMigrations|StripeQuantityMismatchLogging)\" --out-file ./packages/server/postgres/pg.d.ts --dialect postgres --url postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB && prettier --write ./packages/server/postgres/pg.d.ts", + "pg:generate": "export $(grep ^POSTGRES_ .env | tr -d \"'\"); yarn kysely-codegen --exclude-pattern \"(PgMigrations|StripeQuantityMismatchLogging)\" --out-file ./packages/server/postgres/types/pg.d.ts --dialect postgres --url postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB && prettier --write ./packages/server/postgres/types/pg.d.ts", "pg:restore": "node ./scripts/toolbox/pgRestore.js", "db:start": "docker compose -f docker/stacks/development/docker-compose.yml up -d", "db:stop": "docker compose -f docker/stacks/development/docker-compose.yml down", diff --git a/packages/chronos/package.json b/packages/chronos/package.json index ea6e5dca2ce..13299544d6a 100644 --- a/packages/chronos/package.json +++ b/packages/chronos/package.json @@ -1,6 +1,6 @@ { "name": "chronos", - "version": "8.1.0", + "version": "8.1.1", "description": "A cron job scheduler", "author": "Matt Krick ", "homepage": "https://github.com/ParabolInc/parabol/tree/master/packages/chronos#readme", @@ -25,6 +25,6 @@ }, "dependencies": { "cron": "^2.3.1", - "parabol-server": "8.1.0" + "parabol-server": "8.1.1" } } diff --git a/packages/client/package.json b/packages/client/package.json index 1198a57b908..edc42595ba0 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -3,7 +3,7 @@ "description": "An open-source app for building smarter, more agile teams.", "author": "Parabol Inc. (http://github.com/ParabolInc)", "license": "AGPL-3.0", - "version": "8.1.0", + "version": "8.1.1", "repository": { "type": "git", "url": "https://github.com/ParabolInc/parabol" @@ -73,7 +73,7 @@ "@mui/icons-material": "^5.8.4", "@mui/material": "^5.9.2", "@mui/x-date-pickers": "^6.3.1", - "@radix-ui/react-alert-dialog": "1.1.1", + "@radix-ui/react-alert-dialog": "1.1.2", "@radix-ui/react-avatar": "^1.0.4", "@radix-ui/react-collapsible": "^1.0.3", "@radix-ui/react-dialog": "^1.0.4", diff --git a/packages/embedder/addEmbeddingsMetadataForMeetingTemplate.ts b/packages/embedder/addEmbeddingsMetadataForMeetingTemplate.ts index e333f1764b4..531e303cc69 100644 --- a/packages/embedder/addEmbeddingsMetadataForMeetingTemplate.ts +++ b/packages/embedder/addEmbeddingsMetadataForMeetingTemplate.ts @@ -1,5 +1,5 @@ import {ExpressionOrFactory, SqlBool, sql} from 'kysely' -import {DB} from 'parabol-server/postgres/pg' +import {DB} from 'parabol-server/postgres/types/pg' import {Logger} from 'parabol-server/utils/Logger' import getKysely from '../server/postgres/getKysely' import {AddEmbeddingsMetadataParams} from './addEmbeddingsMetadata' diff --git a/packages/embedder/addEmbeddingsMetadataForRetrospectiveDiscussionTopic.ts b/packages/embedder/addEmbeddingsMetadataForRetrospectiveDiscussionTopic.ts index 8c4f5b6cd10..dc6c359cfd0 100644 --- a/packages/embedder/addEmbeddingsMetadataForRetrospectiveDiscussionTopic.ts +++ b/packages/embedder/addEmbeddingsMetadataForRetrospectiveDiscussionTopic.ts @@ -1,5 +1,5 @@ import {ExpressionOrFactory, SqlBool, sql} from 'kysely' -import {DB} from 'parabol-server/postgres/pg' +import {DB} from 'parabol-server/postgres/types/pg' import {Logger} from 'parabol-server/utils/Logger' import getKysely from '../server/postgres/getKysely' import {AddEmbeddingsMetadataParams} from './addEmbeddingsMetadata' diff --git a/packages/embedder/ai_models/AbstractEmbeddingsModel.ts b/packages/embedder/ai_models/AbstractEmbeddingsModel.ts index 78bd6e47a3e..838b83dc24e 100644 --- a/packages/embedder/ai_models/AbstractEmbeddingsModel.ts +++ b/packages/embedder/ai_models/AbstractEmbeddingsModel.ts @@ -1,6 +1,6 @@ import {sql} from 'kysely' import getKysely from 'parabol-server/postgres/getKysely' -import {DB} from 'parabol-server/postgres/pg' +import {DB} from 'parabol-server/postgres/types/pg' import isValid from '../../server/graphql/isValid' import {Logger} from '../../server/utils/Logger' import {getEmbedderPriority} from '../getEmbedderPriority' diff --git a/packages/embedder/custom.d.ts b/packages/embedder/custom.d.ts index b051eb3e4b3..3badb7d8d39 100644 --- a/packages/embedder/custom.d.ts +++ b/packages/embedder/custom.d.ts @@ -1,5 +1,5 @@ import {DataLoaderInstance} from '../server/dataloader/RootDataLoader' -import type {DB} from '../server/postgres/pg' +import type {DB} from '../server/postgres/types/pg' import {JobQueueError} from './JobQueueError' export type EmbeddingObjectType = DB['EmbeddingsMetadata']['objectType'] diff --git a/packages/embedder/indexing/createEmbeddingTextFrom.ts b/packages/embedder/indexing/createEmbeddingTextFrom.ts index 83560d35e18..e3a65da6537 100644 --- a/packages/embedder/indexing/createEmbeddingTextFrom.ts +++ b/packages/embedder/indexing/createEmbeddingTextFrom.ts @@ -1,5 +1,5 @@ import {Selectable} from 'kysely' -import {DB} from 'parabol-server/postgres/pg' +import {DB} from 'parabol-server/postgres/types/pg' import {DataLoaderInstance} from '../../server/dataloader/RootDataLoader' import {createTextFromMeetingTemplate} from './meetingTemplate' diff --git a/packages/embedder/package.json b/packages/embedder/package.json index 8d5cbfbb96a..284beb71fe2 100644 --- a/packages/embedder/package.json +++ b/packages/embedder/package.json @@ -1,6 +1,6 @@ { "name": "parabol-embedder", - "version": "8.1.0", + "version": "8.1.1", "description": "A service that computes embedding vectors from Parabol objects", "author": "Jordan Husney ", "homepage": "https://github.com/ParabolInc/parabol/tree/master/packages/embedder#readme", diff --git a/packages/gql-executor/package.json b/packages/gql-executor/package.json index f8747e8ea4a..f5934b11b4b 100644 --- a/packages/gql-executor/package.json +++ b/packages/gql-executor/package.json @@ -1,6 +1,6 @@ { "name": "gql-executor", - "version": "8.1.0", + "version": "8.1.1", "description": "A Stateless GraphQL Executor", "author": "Matt Krick ", "homepage": "https://github.com/ParabolInc/parabol/tree/master/packages/gqlExecutor#readme", @@ -26,8 +26,8 @@ }, "dependencies": { "dd-trace": "^5.0.0", - "parabol-client": "8.1.0", - "parabol-server": "8.1.0", + "parabol-client": "8.1.1", + "parabol-server": "8.1.1", "undici": "^5.26.2" } } diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 65bce2923a5..9a942908a83 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -2,7 +2,7 @@ "name": "integration-tests", "author": "Parabol Inc. (http://github.com/ParabolInc)", "license": "AGPL-3.0", - "version": "8.1.0", + "version": "8.1.1", "description": "", "main": "index.js", "scripts": { diff --git a/packages/server/billing/helpers/adjustUserCount.ts b/packages/server/billing/helpers/adjustUserCount.ts index 68dc6174de8..36623042be4 100644 --- a/packages/server/billing/helpers/adjustUserCount.ts +++ b/packages/server/billing/helpers/adjustUserCount.ts @@ -4,9 +4,9 @@ import generateUID from '../../generateUID' import {DataLoaderWorker} from '../../graphql/graphql' import isValid from '../../graphql/isValid' import getKysely from '../../postgres/getKysely' -import {OrganizationUserAudit} from '../../postgres/pg' import {getUserById} from '../../postgres/queries/getUsersByIds' import IUser from '../../postgres/types/IUser' +import {OrganizationUserAudit} from '../../postgres/types/pg' import {Logger} from '../../utils/Logger' import {analytics} from '../../utils/analytics/analytics' import getActiveDomainForOrgId from '../../utils/getActiveDomainForOrgId' diff --git a/packages/server/database/types/MeetingTemplate.ts b/packages/server/database/types/MeetingTemplate.ts index ebe903bca4f..6a71fa25d77 100644 --- a/packages/server/database/types/MeetingTemplate.ts +++ b/packages/server/database/types/MeetingTemplate.ts @@ -1,7 +1,7 @@ import {Insertable} from 'kysely' import generateUID from '../../generateUID' -import {MeetingTemplate as MeetingTemplateDB} from '../../postgres/pg' import {MeetingTypeEnum} from '../../postgres/types/Meeting' +import {MeetingTemplate as MeetingTemplateDB} from '../../postgres/types/pg' export type SharingScopeEnum = 'ORGANIZATION' | 'PUBLIC' | 'TEAM' | 'USER' diff --git a/packages/server/dataloader/__tests__/isOrgVerified.test.ts b/packages/server/dataloader/__tests__/isOrgVerified.test.ts index 59a304c92ee..f49e31f2de2 100644 --- a/packages/server/dataloader/__tests__/isOrgVerified.test.ts +++ b/packages/server/dataloader/__tests__/isOrgVerified.test.ts @@ -3,8 +3,8 @@ import {Insertable} from 'kysely' import {createPGTables, truncatePGTables} from '../../__tests__/common' import generateUID from '../../generateUID' import getKysely from '../../postgres/getKysely' -import {User} from '../../postgres/pg' import {OrganizationUser} from '../../postgres/types' +import {User} from '../../postgres/types/pg' import RootDataLoader from '../RootDataLoader' const TEST_DB = 'getVerifiedOrgIdsTest' diff --git a/packages/server/dataloader/customLoaderMakers.ts b/packages/server/dataloader/customLoaderMakers.ts index 02ed0349832..e7df1f4a523 100644 --- a/packages/server/dataloader/customLoaderMakers.ts +++ b/packages/server/dataloader/customLoaderMakers.ts @@ -6,7 +6,6 @@ import getFileStoreManager from '../fileStorage/getFileStoreManager' import {ReactableEnum} from '../graphql/public/resolverTypes' import {SAMLSource} from '../graphql/public/types/SAML' import getKysely from '../postgres/getKysely' -import {TeamMeetingTemplate} from '../postgres/pg.d' import {IGetLatestTaskEstimatesQueryResult} from '../postgres/queries/generated/getLatestTaskEstimatesQuery' import getGitHubAuthByUserIdTeamId, { GitHubAuth @@ -29,6 +28,7 @@ import { } from '../postgres/select' import {Insight, MeetingSettings, OrganizationUser, Task, Team} from '../postgres/types' import {AnyMeeting, MeetingTypeEnum} from '../postgres/types/Meeting' +import {TeamMeetingTemplate} from '../postgres/types/pg' import {Logger} from '../utils/Logger' import getRedis from '../utils/getRedis' import isUserVerified from '../utils/isUserVerified' diff --git a/packages/server/dataloader/integrationAuthLoaders.ts b/packages/server/dataloader/integrationAuthLoaders.ts index 04b40f24ea2..8d97ecd77c0 100644 --- a/packages/server/dataloader/integrationAuthLoaders.ts +++ b/packages/server/dataloader/integrationAuthLoaders.ts @@ -3,7 +3,6 @@ import TeamMemberIntegrationAuthId from '../../client/shared/gqlIds/TeamMemberIn import errorFilter from '../graphql/errorFilter' import isValid from '../graphql/isValid' import getKysely from '../postgres/getKysely' -import {TeamMemberIntegrationAuth} from '../postgres/pg' import {IGetBestTeamIntegrationAuthQueryResult} from '../postgres/queries/generated/getBestTeamIntegrationAuthQuery' import {IntegrationProviderServiceEnum} from '../postgres/queries/generated/getIntegrationProvidersByIdsQuery' import {IGetTeamMemberIntegrationAuthQueryResult} from '../postgres/queries/generated/getTeamMemberIntegrationAuthQuery' @@ -14,6 +13,7 @@ import getIntegrationProvidersByIds, { import getTeamMemberIntegrationAuth from '../postgres/queries/getTeamMemberIntegrationAuth' import {selectSlackNotifications} from '../postgres/select' import {SlackAuth, SlackNotification} from '../postgres/types' +import {TeamMemberIntegrationAuth} from '../postgres/types/pg' import NullableDataLoader from './NullableDataLoader' import RootDataLoader from './RootDataLoader' diff --git a/packages/server/graphql/mutations/createTask.ts b/packages/server/graphql/mutations/createTask.ts index 98958388cd4..d0d3f485000 100644 --- a/packages/server/graphql/mutations/createTask.ts +++ b/packages/server/graphql/mutations/createTask.ts @@ -11,8 +11,8 @@ import getTagsFromEntityMap from '../../../client/utils/draftjs/getTagsFromEntit import generateUID from '../../generateUID' import updatePrevUsedRepoIntegrationsCache from '../../integrations/updatePrevUsedRepoIntegrationsCache' import getKysely from '../../postgres/getKysely' -import {Notification} from '../../postgres/pg' import {Task, TaskTag} from '../../postgres/types/index.d' +import {Notification} from '../../postgres/types/pg' import {TaskServiceEnum} from '../../postgres/types/TaskIntegration' import {analytics} from '../../utils/analytics/analytics' import {getUserId, isTeamMember} from '../../utils/authorization' diff --git a/packages/server/graphql/mutations/helpers/addAIGeneratedContentToThreads.ts b/packages/server/graphql/mutations/helpers/addAIGeneratedContentToThreads.ts index 6b18a33ff8b..35237177bec 100644 --- a/packages/server/graphql/mutations/helpers/addAIGeneratedContentToThreads.ts +++ b/packages/server/graphql/mutations/helpers/addAIGeneratedContentToThreads.ts @@ -4,7 +4,7 @@ import extractTextFromDraftString from '../../../../client/utils/draftjs/extract import DiscussStage from '../../../database/types/DiscussStage' import generateUID from '../../../generateUID' import getKysely from '../../../postgres/getKysely' -import {Comment} from '../../../postgres/pg' +import {Comment} from '../../../postgres/types/pg' import {convertHtmlToTaskContent} from '../../../utils/draftjs/convertHtmlToTaskContent' import {DataLoaderWorker} from '../../graphql' diff --git a/packages/server/graphql/mutations/helpers/createNewMeetingPhases.ts b/packages/server/graphql/mutations/helpers/createNewMeetingPhases.ts index f5f7a2e1def..b4523783a84 100644 --- a/packages/server/graphql/mutations/helpers/createNewMeetingPhases.ts +++ b/packages/server/graphql/mutations/helpers/createNewMeetingPhases.ts @@ -24,9 +24,9 @@ import UpdatesPhase from '../../../database/types/UpdatesPhase' import UpdatesStage from '../../../database/types/UpdatesStage' import {DataLoaderInstance} from '../../../dataloader/RootDataLoader' import getKysely from '../../../postgres/getKysely' -import {DB} from '../../../postgres/pg' import {MeetingTypeEnum} from '../../../postgres/types/Meeting' import {NewMeetingPhase, NewMeetingStages} from '../../../postgres/types/NewMeetingPhase' +import {DB} from '../../../postgres/types/pg' import isPhaseAvailable from '../../../utils/isPhaseAvailable' import {DataLoaderWorker} from '../../graphql' import {getFeatureTier} from '../../types/helpers/getFeatureTier' diff --git a/packages/server/graphql/mutations/helpers/notifications/MattermostNotifier.ts b/packages/server/graphql/mutations/helpers/notifications/MattermostNotifier.ts index b0fc2afd35d..65f728d863d 100644 --- a/packages/server/graphql/mutations/helpers/notifications/MattermostNotifier.ts +++ b/packages/server/graphql/mutations/helpers/notifications/MattermostNotifier.ts @@ -4,11 +4,11 @@ import makeAppURL from 'parabol-client/utils/makeAppURL' import findStageById from 'parabol-client/utils/meetings/findStageById' import {phaseLabelLookup} from 'parabol-client/utils/meetings/lookups' import appOrigin from '../../../../appOrigin' -import {TeamMemberIntegrationAuth} from '../../../../postgres/pg' import {IntegrationProviderMattermost} from '../../../../postgres/queries/getIntegrationProvidersByIds' import {SlackNotification, Team} from '../../../../postgres/types' import IUser from '../../../../postgres/types/IUser' import {AnyMeeting, MeetingTypeEnum} from '../../../../postgres/types/Meeting' +import {TeamMemberIntegrationAuth} from '../../../../postgres/types/pg' import MattermostServerManager from '../../../../utils/MattermostServerManager' import {analytics} from '../../../../utils/analytics/analytics' import {toEpochSeconds} from '../../../../utils/epochTime' diff --git a/packages/server/graphql/mutations/helpers/removeScheduledJobs.ts b/packages/server/graphql/mutations/helpers/removeScheduledJobs.ts index 475480467e1..817c965f8ad 100644 --- a/packages/server/graphql/mutations/helpers/removeScheduledJobs.ts +++ b/packages/server/graphql/mutations/helpers/removeScheduledJobs.ts @@ -1,6 +1,6 @@ import {Updateable} from 'kysely' import getKysely from '../../../postgres/getKysely' -import {DB} from '../../../postgres/pg' +import {DB} from '../../../postgres/types/pg' type FilterType = Omit, 'runAt'> diff --git a/packages/server/graphql/mutations/joinMeeting.ts b/packages/server/graphql/mutations/joinMeeting.ts index d904089a878..246b3899e1d 100644 --- a/packages/server/graphql/mutations/joinMeeting.ts +++ b/packages/server/graphql/mutations/joinMeeting.ts @@ -7,10 +7,10 @@ import CheckInStage from '../../database/types/CheckInStage' import TeamPromptResponseStage from '../../database/types/TeamPromptResponseStage' import UpdatesStage from '../../database/types/UpdatesStage' import getKysely from '../../postgres/getKysely' -import {MeetingMember} from '../../postgres/pg' import {TeamMember} from '../../postgres/types' import {AnyMeeting} from '../../postgres/types/Meeting' import {NewMeetingPhase, NewMeetingStages} from '../../postgres/types/NewMeetingPhase' +import {MeetingMember} from '../../postgres/types/pg' import {analytics} from '../../utils/analytics/analytics' import {getUserId, isTeamMember} from '../../utils/authorization' import getPhase from '../../utils/getPhase' diff --git a/packages/server/graphql/mutations/updatePokerScope.ts b/packages/server/graphql/mutations/updatePokerScope.ts index a80913a9d47..cb5ca3d1cac 100644 --- a/packages/server/graphql/mutations/updatePokerScope.ts +++ b/packages/server/graphql/mutations/updatePokerScope.ts @@ -4,13 +4,13 @@ import {SubscriptionChannel, Threshold} from 'parabol-client/types/constEnums' import {ESTIMATE_TASK_SORT_ORDER} from '../../../client/utils/constants' import EstimateStage from '../../database/types/EstimateStage' import getKysely from '../../postgres/getKysely' -import {Discussion} from '../../postgres/pg' +import {Discussion} from '../../postgres/types/pg' import {TaskServiceEnum} from '../../postgres/types/TaskIntegration' -import RedisLockQueue from '../../utils/RedisLockQueue' import {getUserId, isTeamMember} from '../../utils/authorization' import getPhase from '../../utils/getPhase' import getRedis from '../../utils/getRedis' import publish from '../../utils/publish' +import RedisLockQueue from '../../utils/RedisLockQueue' import {GQLContext} from '../graphql' import UpdatePokerScopeItemInput from '../types/UpdatePokerScopeItemInput' import UpdatePokerScopePayload from '../types/UpdatePokerScopePayload' diff --git a/packages/server/graphql/private/mutations/runScheduledJobs.ts b/packages/server/graphql/private/mutations/runScheduledJobs.ts index 465f13bb2df..c579b942c6f 100644 --- a/packages/server/graphql/private/mutations/runScheduledJobs.ts +++ b/packages/server/graphql/private/mutations/runScheduledJobs.ts @@ -5,7 +5,7 @@ import ScheduledTeamLimitsJob from '../../../database/types/ScheduledTeamLimitsJ import processTeamsLimitsJob from '../../../database/types/processTeamsLimitsJob' import generateUID from '../../../generateUID' import getKysely from '../../../postgres/getKysely' -import {DB} from '../../../postgres/pg' +import {DB} from '../../../postgres/types/pg' import {Logger} from '../../../utils/Logger' import publish from '../../../utils/publish' import {DataLoaderWorker} from '../../graphql' diff --git a/packages/server/graphql/public/types/RetroReflectionGroup.ts b/packages/server/graphql/public/types/RetroReflectionGroup.ts index 8a262b491d5..b71ebb39e22 100644 --- a/packages/server/graphql/public/types/RetroReflectionGroup.ts +++ b/packages/server/graphql/public/types/RetroReflectionGroup.ts @@ -1,5 +1,5 @@ import {Selectable} from 'kysely' -import {RetroReflectionGroup as TRetroReflectionGroup} from '../../../postgres/pg' +import {RetroReflectionGroup as TRetroReflectionGroup} from '../../../postgres/types/pg' import {getUserId} from '../../../utils/authorization' import {RetroReflectionGroupResolvers} from '../resolverTypes' diff --git a/packages/server/graphql/public/types/SAML.ts b/packages/server/graphql/public/types/SAML.ts index 24312a433d4..1949f276451 100644 --- a/packages/server/graphql/public/types/SAML.ts +++ b/packages/server/graphql/public/types/SAML.ts @@ -1,5 +1,5 @@ import {Selectable} from 'kysely' -import {SAML as TSAML} from '../../../postgres/pg.d' +import {SAML as TSAML} from '../../../postgres/types/pg' import {SamlResolvers} from '../resolverTypes' export interface SAMLSource extends Selectable { diff --git a/packages/server/package.json b/packages/server/package.json index 2c42bf27cd3..a803ca55381 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -3,7 +3,7 @@ "description": "An open-source app for building smarter, more agile teams.", "author": "Parabol Inc. (http://github.com/ParabolInc)", "license": "AGPL-3.0", - "version": "8.1.0", + "version": "8.1.1", "repository": { "type": "git", "url": "https://github.com/ParabolInc/parabol" @@ -120,7 +120,7 @@ "oauth-1.0a": "^2.2.6", "openai": "^4.53.0", "oy-vey": "^0.12.1", - "parabol-client": "8.1.0", + "parabol-client": "8.1.1", "pg": "^8.5.1", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/packages/server/postgres/getKysely.ts b/packages/server/postgres/getKysely.ts index c7c02a59d16..ff0caa60e71 100644 --- a/packages/server/postgres/getKysely.ts +++ b/packages/server/postgres/getKysely.ts @@ -1,6 +1,6 @@ import {Kysely, PostgresDialect} from 'kysely' import getPg from './getPg' -import {DB} from './pg.d' +import {DB} from './types/pg' let kysely: Kysely | undefined diff --git a/packages/server/postgres/getPg.ts b/packages/server/postgres/getPg.ts index 0e82891eeb7..7ce41879e57 100644 --- a/packages/server/postgres/getPg.ts +++ b/packages/server/postgres/getPg.ts @@ -1,7 +1,17 @@ -import {Pool} from 'pg' +import type {Pool as PGPool} from 'pg' import sleep from '../../client/utils/sleep' import getPgConfig from './getPgConfig' +/* +Force a native `require` so dd-trace-js can monkeypatch the require statement. +In development, the require statement requires `./pg.ts` since require resolves packages by first looking in the same dir +In production, the require statement will resolve to the node_modules found in /dist +*/ +// when used outside of webpack, e.g. kysely.config.js, go vanilla +declare let __non_webpack_require__: typeof require +const pg = + typeof __non_webpack_require__ === 'undefined' ? require('pg') : __non_webpack_require__('pg') +const {Pool} = pg const config = getPgConfig() const graceFullyReconnect = async () => { @@ -21,10 +31,10 @@ const graceFullyReconnect = async () => { } } -let pool: Pool | undefined +let pool: PGPool | undefined const getPg = (schema?: string) => { if (!pool) { - pool = new Pool(config) + pool = new Pool(config) as PGPool pool.on('error', graceFullyReconnect) if (schema) { pool.on('connect', (client) => { diff --git a/packages/server/postgres/migrations/2024-10-24T22:26:35.877Z_integrationProviderUrls.ts b/packages/server/postgres/migrations/2024-10-24T22:26:35.877Z_integrationProviderUrls.ts new file mode 100644 index 00000000000..94a99109905 --- /dev/null +++ b/packages/server/postgres/migrations/2024-10-24T22:26:35.877Z_integrationProviderUrls.ts @@ -0,0 +1,11 @@ +import type {Kysely} from 'kysely' + +export async function up(db: Kysely): Promise { + await db.schema + .alterTable('IntegrationProvider') + .alterColumn('webhookUrl', (ac) => ac.setDataType('varchar(2056)')) + .alterColumn('serverBaseUrl', (ac) => ac.setDataType('varchar(2056)')) + .execute() +} + +export async function down(db: Kysely): Promise {} diff --git a/packages/server/postgres/migrations/2024-10-25T17:36:31.231Z_indexDiscussionTopicId.ts b/packages/server/postgres/migrations/2024-10-25T17:36:31.231Z_indexDiscussionTopicId.ts new file mode 100644 index 00000000000..e97ab8562cd --- /dev/null +++ b/packages/server/postgres/migrations/2024-10-25T17:36:31.231Z_indexDiscussionTopicId.ts @@ -0,0 +1,14 @@ +import type {Kysely} from 'kysely' + +export async function up(db: Kysely): Promise { + await db.schema + .createIndex('idx_Discussion_discussionTopicId') + .ifNotExists() + .on('Discussion') + .column('discussionTopicId') + .execute() +} + +export async function down(db: Kysely): Promise { + await db.schema.dropIndex('idx_Discussion_discussionTopicId').ifExists().execute() +} diff --git a/packages/server/postgres/pg.ts b/packages/server/postgres/pg.ts new file mode 100644 index 00000000000..51dd6b37a40 --- /dev/null +++ b/packages/server/postgres/pg.ts @@ -0,0 +1,2 @@ +// webpack entrypoint forcing pg & all dependencies to get bundled into a standalone file +export {Client, Pool} from 'pg' diff --git a/packages/server/postgres/types/Meeting.d.ts b/packages/server/postgres/types/Meeting.d.ts index 4dfa0d3e4f5..c54aed1dedd 100644 --- a/packages/server/postgres/types/Meeting.d.ts +++ b/packages/server/postgres/types/Meeting.d.ts @@ -1,6 +1,5 @@ import {Selectable} from 'kysely' import {NonNullableProps} from '../../../client/types/generics' -import {NewMeeting as NewMeetingPG} from '../pg.d' import {AutogroupReflectionGroupType, UsedReactjis} from './index.d' import { CheckInMeetingPhase, @@ -9,6 +8,7 @@ import { RetroMeetingPhase, TeamPromptPhase } from './NewMeetingPhase' +import {NewMeeting as NewMeetingPG} from './pg' type NewMeeting = Selectable export type MeetingTypeEnum = NewMeeting['meetingType'] diff --git a/packages/server/postgres/types/Notification.d.ts b/packages/server/postgres/types/Notification.d.ts index 14a71b0700d..08eec0eac1d 100644 --- a/packages/server/postgres/types/Notification.d.ts +++ b/packages/server/postgres/types/Notification.d.ts @@ -1,4 +1,4 @@ -import type {Notification} from '../pg.d' +import type {Notification} from './pg' interface BaseNotification { id: string diff --git a/packages/server/postgres/types/index.d.ts b/packages/server/postgres/types/index.d.ts index a6cf8481192..df219711932 100644 --- a/packages/server/postgres/types/index.d.ts +++ b/packages/server/postgres/types/index.d.ts @@ -1,11 +1,4 @@ import {SelectQueryBuilder, Selectable} from 'kysely' -import { - Discussion as DiscussionPG, - Insight as InsightPG, - OrganizationUser as OrganizationUserPG, - TaskEstimate as TaskEstimatePG, - TeamMember as TeamMemberPG -} from '../pg.d' import { selectAgendaItems, selectComments, @@ -25,6 +18,13 @@ import { selectTemplateScale, selectTemplateScaleRef } from '../select' +import { + Discussion as DiscussionPG, + Insight as InsightPG, + OrganizationUser as OrganizationUserPG, + TaskEstimate as TaskEstimatePG, + TeamMember as TeamMemberPG +} from './pg' type ExtractTypeFromQueryBuilderSelect any> = ReturnType extends SelectQueryBuilder<_, _, infer X> ? X : never diff --git a/packages/server/safeMutations/removeSuggestedAction.ts b/packages/server/safeMutations/removeSuggestedAction.ts index a8481af1f95..efda8b66e27 100644 --- a/packages/server/safeMutations/removeSuggestedAction.ts +++ b/packages/server/safeMutations/removeSuggestedAction.ts @@ -1,6 +1,6 @@ import {sql} from 'kysely' import getKysely from '../postgres/getKysely' -import {SuggestedAction} from '../postgres/pg' +import {SuggestedAction} from '../postgres/types/pg' const removeSuggestedAction = async (userId: string, type: SuggestedAction['type']) => { const removedAction = await getKysely() diff --git a/packages/server/utils/__tests__/isRequestToJoinDomainAllowed.test.ts b/packages/server/utils/__tests__/isRequestToJoinDomainAllowed.test.ts index d518a0ad301..d74fac3d40d 100644 --- a/packages/server/utils/__tests__/isRequestToJoinDomainAllowed.test.ts +++ b/packages/server/utils/__tests__/isRequestToJoinDomainAllowed.test.ts @@ -5,8 +5,8 @@ import RootDataLoader from '../../dataloader/RootDataLoader' import generateUID from '../../generateUID' import {TierEnum} from '../../graphql/public/resolverTypes' import getKysely from '../../postgres/getKysely' -import {User} from '../../postgres/pg' import {OrganizationUser} from '../../postgres/types' +import {User} from '../../postgres/types/pg' import getRedis from '../getRedis' import {getEligibleOrgIdsByDomain} from '../isRequestToJoinDomainAllowed' diff --git a/scripts/prod.js b/scripts/prod.js index bfb8dea036f..58776184dc1 100644 --- a/scripts/prod.js +++ b/scripts/prod.js @@ -13,6 +13,8 @@ const runChild = (cmd) => { } }) build.stderr.pipe(process.stderr) + // enable this for debugging webpack scripts + // build.stdout.pipe(process.stdout) }) } diff --git a/scripts/webpack/prod.servers.config.js b/scripts/webpack/prod.servers.config.js index dd1679a6b4d..4b39f42f4d2 100644 --- a/scripts/webpack/prod.servers.config.js +++ b/scripts/webpack/prod.servers.config.js @@ -44,10 +44,21 @@ module.exports = (config) => { ], pushToCDN: [DOTENV, path.join(PROJECT_ROOT, 'scripts/toolboxSrc/pushToCDN.ts')], migrate: [DOTENV, path.join(PROJECT_ROOT, 'scripts/toolboxSrc/standaloneMigrations.ts')], - assignSURole: [DOTENV, path.join(PROJECT_ROOT, 'scripts/toolboxSrc/assignSURole.ts')] + assignSURole: [DOTENV, path.join(PROJECT_ROOT, 'scripts/toolboxSrc/assignSURole.ts')], + pg: { + // bundle pg with all its dependencies into a single file + // so dd-trace-js can monkeypatch require('pg') + import: [path.join(SERVER_ROOT, 'postgres/pg.ts')], + library: { + type: 'commonjs2' + } + } }, output: { - filename: '[name].js', + filename: (pathData) => { + // trick dd-trace-js into thinking our standalone pg file is a node_module + return pathData.chunk.name === 'pg' ? 'node_modules/pg/lib/index.js' : '[name].js' + }, path: distPath }, resolve: { @@ -104,6 +115,12 @@ module.exports = (config) => { // copy sharp's libvips to the output from: path.resolve(PROJECT_ROOT, 'node_modules', 'sharp', 'vendor'), to: 'vendor' + }, + { + // dd-trace-js has a lookup table for hooks, which includes the key `pg` + // In order for `pg` to get parsed as `pg` and not `pg.js`, we need a package.json to provide the name `pg` + from: path.resolve(PROJECT_ROOT, 'node_modules', 'pg', 'package.json'), + to: 'node_modules/pg/package.json' } ] }) diff --git a/yarn.lock b/yarn.lock index 434ba9a4105..3e85252abe0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6820,15 +6820,15 @@ resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.0.tgz#42ef83b3b56dccad5d703ae8c42919a68798bbe2" integrity sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA== -"@radix-ui/react-alert-dialog@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz#f49c987b9e4f2bf37005b3864933e2b3beac907a" - integrity sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw== +"@radix-ui/react-alert-dialog@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.2.tgz#ac3bb7f71f5cbb595d3d0949bb12b598c2a99981" + integrity sha512-eGSlLzPhKO+TErxkiGcCZGuvbVMnLA1MTnyBksGOeGRGkxHiiJUujsjmNTdWTm4iHVSRaUao9/4Ur671auMghQ== dependencies: "@radix-ui/primitive" "1.1.0" "@radix-ui/react-compose-refs" "1.1.0" - "@radix-ui/react-context" "1.1.0" - "@radix-ui/react-dialog" "1.1.1" + "@radix-ui/react-context" "1.1.1" + "@radix-ui/react-dialog" "1.1.2" "@radix-ui/react-primitive" "2.0.0" "@radix-ui/react-slot" "1.1.0" @@ -6921,30 +6921,30 @@ dependencies: "@babel/runtime" "^7.13.10" -"@radix-ui/react-context@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.0.tgz#6df8d983546cfd1999c8512f3a8ad85a6e7fcee8" - integrity sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A== - -"@radix-ui/react-dialog@1.1.1": +"@radix-ui/react-context@1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz#4906507f7b4ad31e22d7dad69d9330c87c431d44" - integrity sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg== + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.1.tgz#82074aa83a472353bb22e86f11bcbd1c61c4c71a" + integrity sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q== + +"@radix-ui/react-dialog@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz#d9345575211d6f2d13e209e84aec9a8584b54d6c" + integrity sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA== dependencies: "@radix-ui/primitive" "1.1.0" "@radix-ui/react-compose-refs" "1.1.0" - "@radix-ui/react-context" "1.1.0" - "@radix-ui/react-dismissable-layer" "1.1.0" - "@radix-ui/react-focus-guards" "1.1.0" + "@radix-ui/react-context" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.1" + "@radix-ui/react-focus-guards" "1.1.1" "@radix-ui/react-focus-scope" "1.1.0" "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-portal" "1.1.1" - "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-portal" "1.1.2" + "@radix-ui/react-presence" "1.1.1" "@radix-ui/react-primitive" "2.0.0" "@radix-ui/react-slot" "1.1.0" "@radix-ui/react-use-controllable-state" "1.1.0" aria-hidden "^1.1.1" - react-remove-scroll "2.5.7" + react-remove-scroll "2.6.0" "@radix-ui/react-dialog@^1.0.4": version "1.0.4" @@ -7005,10 +7005,10 @@ "@radix-ui/react-use-callback-ref" "1.0.1" "@radix-ui/react-use-escape-keydown" "1.0.3" -"@radix-ui/react-dismissable-layer@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz#2cd0a49a732372513733754e6032d3fb7988834e" - integrity sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig== +"@radix-ui/react-dismissable-layer@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz#cbdcb739c5403382bdde5f9243042ba643883396" + integrity sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ== dependencies: "@radix-ui/primitive" "1.1.0" "@radix-ui/react-compose-refs" "1.1.0" @@ -7051,10 +7051,10 @@ dependencies: "@babel/runtime" "^7.13.10" -"@radix-ui/react-focus-guards@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz#8e9abb472a9a394f59a1b45f3dd26cfe3fc6da13" - integrity sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw== +"@radix-ui/react-focus-guards@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz#8635edd346304f8b42cae86b05912b61aef27afe" + integrity sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg== "@radix-ui/react-focus-scope@1.0.3": version "1.0.3" @@ -7208,10 +7208,10 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-primitive" "1.0.3" -"@radix-ui/react-portal@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.1.tgz#1957f1eb2e1aedfb4a5475bd6867d67b50b1d15f" - integrity sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g== +"@radix-ui/react-portal@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.2.tgz#51eb46dae7505074b306ebcb985bf65cc547d74e" + integrity sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg== dependencies: "@radix-ui/react-primitive" "2.0.0" "@radix-ui/react-use-layout-effect" "1.1.0" @@ -7234,10 +7234,10 @@ "@radix-ui/react-compose-refs" "1.0.1" "@radix-ui/react-use-layout-effect" "1.0.1" -"@radix-ui/react-presence@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.0.tgz#227d84d20ca6bfe7da97104b1a8b48a833bfb478" - integrity sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ== +"@radix-ui/react-presence@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.1.tgz#98aba423dba5e0c687a782c0669dcd99de17f9b1" + integrity sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A== dependencies: "@radix-ui/react-compose-refs" "1.1.0" "@radix-ui/react-use-layout-effect" "1.1.0" @@ -20264,7 +20264,7 @@ react-remove-scroll-bar@^2.3.3: react-style-singleton "^2.2.1" tslib "^2.0.0" -react-remove-scroll-bar@^2.3.4: +react-remove-scroll-bar@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz#3e585e9d163be84a010180b18721e851ac81a29c" integrity sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g== @@ -20283,12 +20283,12 @@ react-remove-scroll@2.5.5: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" -react-remove-scroll@2.5.7: - version "2.5.7" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" - integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== +react-remove-scroll@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz#fb03a0845d7768a4f1519a99fdb84983b793dc07" + integrity sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ== dependencies: - react-remove-scroll-bar "^2.3.4" + react-remove-scroll-bar "^2.3.6" react-style-singleton "^2.2.1" tslib "^2.1.0" use-callback-ref "^1.3.0" @@ -21941,7 +21941,7 @@ string-similarity@^3.0.0: resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-3.0.0.tgz#07b0bc69fae200ad88ceef4983878d03793847c7" integrity sha512-7kS7LyTp56OqOI2BDWQNVnLX/rCxIQn+/5M0op1WV6P8Xx6TZNdajpuqQdiJ7Xx+p1C5CsWMvdiBp9ApMhxzEQ== -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -21959,6 +21959,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.0.tgz#5ab00980cfb29f43e736b113a120a73a0fb569d3" @@ -22030,7 +22039,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -22044,6 +22053,13 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" @@ -23894,7 +23910,7 @@ workbox-window@6.5.4: "@types/trusted-types" "^2.0.2" workbox-core "6.5.4" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -23912,6 +23928,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"