diff --git a/.source b/.source index 017a588801e..1b32c9da605 160000 --- a/.source +++ b/.source @@ -1 +1 @@ -Subproject commit 017a588801e6bd0b78f62141f25cdf36f39e3e0a +Subproject commit 1b32c9da6059c914ca1759b80da7c264a8778c5f diff --git a/apps/api/.mocharc.e2e.json b/apps/api/.mocharc.e2e.json new file mode 100644 index 00000000000..4c3672329c2 --- /dev/null +++ b/apps/api/.mocharc.e2e.json @@ -0,0 +1,6 @@ +{ + "timeout": 35000, + "require": "@swc-node/register", + "file": ["e2e/setup.ts"], + "exit": true +} diff --git a/apps/api/.mocharc.json b/apps/api/.mocharc.json index 9d915c36a16..38230892ffe 100644 --- a/apps/api/.mocharc.json +++ b/apps/api/.mocharc.json @@ -1,8 +1,7 @@ { "timeout": 35000, - "require": "@swc-node/register", - "node-option": ["no-experimental-strip-types"], + "require": ["@swc-node/register", "./src/config/load-test-env.ts"], "file": ["e2e/setup.ts"], "exit": true, - "files": ["e2e/**/*.e2e.ts", "src/**/*.e2e.ts", "src/**/**/*.spec.ts"] + "files": ["e2e/**/*.e2e.ts", "src/**/*.e2e.ts", "src/**/*.spec.ts"] } diff --git a/apps/api/package.json b/apps/api/package.json index 48c7c013935..e9560ee67a8 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -30,9 +30,9 @@ "pretest": "pnpm build:metadata", "generate:swagger": "ts-node exportOpenAPIJSON.ts", "generate:sdk": " (cd ../../libs/internal-sdk && speakeasy run --skip-compile --minimal --skip-versioning) && (cd ../../libs/internal-sdk && pnpm build) ", - "test": "cross-env TS_NODE_PROJECT=tsconfig.spec.json TS_NODE_TRANSPILE_ONLY=true NODE_ENV=test NOVU_ENTERPRISE=true CLERK_ENABLED=true NODE_OPTIONS=--no-experimental-strip-types mocha --timeout 15000 --require ts-node/register --exit 'src/**/*.spec.ts'", - "test:e2e:novu-v0": "cross-env TS_NODE_PROJECT=tsconfig.spec.json NODE_ENV=test NODE_OPTIONS=--no-experimental-strip-types mocha --timeout 15000 --retries 3 --grep '#novu-v0' --require ts-node/register --exit --file e2e/setup.ts src/**/*.e2e{,-ee}.ts", - "test:e2e:novu-v2": "cross-env TS_NODE_PROJECT=tsconfig.spec.json NODE_ENV=test CI_EE_TEST=true CLERK_ENABLED=true NODE_OPTIONS='--max_old_space_size=8192 --no-experimental-strip-types' node scripts/run-novu-v2-e2e-shard.cjs", + "test": "cross-env TS_NODE_PROJECT=tsconfig.spec.json TS_NODE_TRANSPILE_ONLY=true NODE_ENV=test NOVU_ENTERPRISE=true CLERK_ENABLED=true mocha --timeout 15000 --require ts-node/register --require ./src/config/load-test-env.ts --exit 'src/**/*.spec.ts' --ignore 'src/**/e2e/**/*.spec.ts'", + "test:e2e:novu-v0": "cross-env TS_NODE_PROJECT=tsconfig.spec.json NODE_ENV=test mocha --config .mocharc.e2e.json --timeout 15000 --retries 3 --grep '#novu-v0' --require ts-node/register --exit src/**/*.e2e{,-ee}.ts", + "test:e2e:novu-v2": "cross-env TS_NODE_PROJECT=tsconfig.spec.json NODE_ENV=test CI_EE_TEST=true CLERK_ENABLED=true NODE_OPTIONS=--max_old_space_size=8192 node scripts/run-novu-v2-e2e-shard.cjs", "migration": "cross-env NODE_ENV=local MIGRATION=true ts-node --transpileOnly", "seed:clickhouse": "cross-env NODE_ENV=local ts-node --transpileOnly scripts/seed-clickhouse.ts", "seed:triggers": "cross-env NODE_ENV=local ts-node --transpileOnly scripts/seed-triggers.ts", @@ -46,15 +46,15 @@ "@aws-sdk/client-secrets-manager": "^3.971.0", "@godaddy/terminus": "^4.12.1", "@google-cloud/storage": "^6.2.3", - "@nestjs/axios": "3.0.3", - "@nestjs/common": "10.4.18", - "@nestjs/core": "10.4.18", - "@nestjs/jwt": "10.2.0", - "@nestjs/passport": "10.0.3", - "@nestjs/platform-express": "10.4.18", - "@nestjs/swagger": "7.4.0", - "@nestjs/terminus": "10.2.3", - "@nestjs/throttler": "6.2.1", + "@nestjs/axios": "4.0.1", + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18", + "@nestjs/jwt": "11.0.2", + "@nestjs/passport": "11.0.5", + "@nestjs/platform-express": "11.1.18", + "@nestjs/swagger": "11.2.6", + "@nestjs/terminus": "11.1.1", + "@nestjs/throttler": "6.5.0", "@novu/api": "workspace:*", "@novu/application-generic": "workspace:*", "@novu/dal": "workspace:*", @@ -129,9 +129,9 @@ }, "devDependencies": { "@faker-js/faker": "^6.0.0", - "@nestjs/cli": "10.4.5", - "@nestjs/schematics": "10.1.4", - "@nestjs/testing": "10.4.18", + "@nestjs/cli": "11.0.17", + "@nestjs/schematics": "11.0.10", + "@nestjs/testing": "11.1.18", "@stoplight/spectral-cli": "^6.15.0", "@swc-node/register": "1.10.10", "@types/async": "^3.2.1", diff --git a/apps/api/scripts/generate-metadata.ts b/apps/api/scripts/generate-metadata.ts index 30d20d4f26c..76f172c3f84 100644 --- a/apps/api/scripts/generate-metadata.ts +++ b/apps/api/scripts/generate-metadata.ts @@ -8,7 +8,7 @@ */ import fs from 'node:fs'; import path from 'node:path'; -import { PluginMetadataGenerator } from '@nestjs/cli/lib/compiler/plugins'; +import { PluginMetadataGenerator } from '@nestjs/cli/lib/compiler/plugins/plugin-metadata-generator'; import { ReadonlyVisitor } from '@nestjs/swagger/dist/plugin'; const tsconfigPath = 'tsconfig.build.json'; diff --git a/apps/api/scripts/run-novu-v2-e2e-shard.cjs b/apps/api/scripts/run-novu-v2-e2e-shard.cjs index 7396997e65e..d3e9b7fc620 100644 --- a/apps/api/scripts/run-novu-v2-e2e-shard.cjs +++ b/apps/api/scripts/run-novu-v2-e2e-shard.cjs @@ -14,6 +14,8 @@ const DEFAULT_MOCHA_REPORTER = process.env.CI ? 'dot' : 'spec'; const MOCHA_REPORTER = process.env.NOVU_V2_MOCHA_REPORTER || DEFAULT_MOCHA_REPORTER; const MOCHA_ARGS = [ + '--config', + '.mocharc.e2e.json', '--timeout', '30000', '--retries', @@ -23,11 +25,7 @@ const MOCHA_ARGS = [ MOCHA_REPORTER, '--grep', NOVU_V2_TAG, - '--require', - './swc-register.js', '--exit', - '--file', - 'e2e/setup.ts', ]; function toPosixPath(filePath) { @@ -152,7 +150,10 @@ function collectWeightedFiles() { } function isLighterShard(candidate, current) { - return candidate.weight < current.weight || (candidate.weight === current.weight && candidate.files.length < current.files.length); + return ( + candidate.weight < current.weight || + (candidate.weight === current.weight && candidate.files.length < current.files.length) + ); } function pickLightestShard(shards) { @@ -187,7 +188,9 @@ function getShard(weightedFiles, shardIndex, totalShards) { } function printShardSummary(shardIndex, totalShards, shard) { - console.log(`Running Novu V2 E2E shard ${shardIndex}/${totalShards} with ${shard.files.length} files (weight ${shard.weight}).`); + console.log( + `Running Novu V2 E2E shard ${shardIndex}/${totalShards} with ${shard.files.length} files (weight ${shard.weight}).` + ); } function runMocha(filePaths) { diff --git a/apps/api/src/app/auth/framework/community.user.auth.guard.ts b/apps/api/src/app/auth/framework/community.user.auth.guard.ts index a0223ec6c51..93eac1d2c84 100644 --- a/apps/api/src/app/auth/framework/community.user.auth.guard.ts +++ b/apps/api/src/app/auth/framework/community.user.auth.guard.ts @@ -14,7 +14,7 @@ export class CommunityUserAuthGuard extends AuthGuard([PassportStrategyEnum.JWT, this.logger.setContext(this.constructor.name); } - getAuthenticateOptions(context: ExecutionContext): IAuthModuleOptions { + getAuthenticateOptions(context: ExecutionContext): IAuthModuleOptions { const request = context.switchToHttp().getRequest(); const authorizationHeader = request.headers.authorization; diff --git a/apps/api/src/app/auth/services/passport/apikey.strategy.ts b/apps/api/src/app/auth/services/passport/apikey.strategy.ts index 7c455a7d5b1..f13a9704a22 100644 --- a/apps/api/src/app/auth/services/passport/apikey.strategy.ts +++ b/apps/api/src/app/auth/services/passport/apikey.strategy.ts @@ -20,24 +20,25 @@ export class ApiKeyStrategy extends PassportStrategy(HeaderAPIKeyStrategy) { private readonly inMemoryLRUCacheService: InMemoryLRUCacheService ) { super( - { header: HttpRequestHeaderKeysEnum.AUTHORIZATION, prefix: `${ApiAuthSchemeEnum.API_KEY} ` }, - true, - async (apikey: string, verified: (err: Error | null, user?: UserSessionData | false) => void) => { - try { - const user = await this.validateApiKey(apikey); + { + header: HttpRequestHeaderKeysEnum.AUTHORIZATION, + prefix: `${ApiAuthSchemeEnum.API_KEY} `, + }, + false + ); + } - if (!user) { - return verified(null, false); - } + async validate(apiKey: string): Promise { + const user = await this.validateApiKey(apiKey); - addNewRelicTraceAttributes(user); + if (!user) { - return verified(null, user); - } catch (err) { - return verified(err as Error, false); - } - } - ); + return false; + } + + addNewRelicTraceAttributes(user); + + return user; } private async validateApiKey(apiKey: string): Promise { diff --git a/apps/api/src/app/billing/e2e/checkout-session-completed.e2e-ee.ts b/apps/api/src/app/billing/e2e/checkout-session-completed.e2e-ee.ts index 5d236ce2bc9..ca8d189c067 100644 --- a/apps/api/src/app/billing/e2e/checkout-session-completed.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/checkout-session-completed.e2e-ee.ts @@ -1,3 +1,4 @@ +import { CheckoutSessionCompletedHandler, GetPrices, VerifyCustomer } from '@novu/ee-billing'; import { ApiServiceLevelEnum, StripeBillingIntervalEnum } from '@novu/shared'; import { expect } from 'chai'; import sinon from 'sinon'; @@ -147,13 +148,6 @@ describe('webhook event - checkout.session.completed #novu-v2', () => { }, }; - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - - const { CheckoutSessionCompletedHandler, VerifyCustomer, GetPrices } = eeBilling; - let verifyCustomerStub: sinon.SinonStub; let getPricesStub: sinon.SinonStub; const analyticsServiceStub = { diff --git a/apps/api/src/app/billing/e2e/create-checkout-session.e2e-ee.ts b/apps/api/src/app/billing/e2e/create-checkout-session.e2e-ee.ts index f93b92a7256..d4762d2df9a 100644 --- a/apps/api/src/app/billing/e2e/create-checkout-session.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/create-checkout-session.e2e-ee.ts @@ -1,3 +1,4 @@ +import { CreateCheckoutSession } from '@novu/ee-billing'; import { ApiServiceLevelEnum, StripeBillingIntervalEnum } from '@novu/shared'; import { expect } from 'chai'; import sinon from 'sinon'; @@ -23,12 +24,10 @@ const checkoutSessionCreateParamsMock = { }; describe('Create checkout session #novu-v2', async () => { - if (!require('@novu/ee-billing').CreateCheckoutSession) { + if (!CreateCheckoutSession) { throw new Error("CreateCheckoutSession doesn't exist"); } - const { CreateCheckoutSession } = require('@novu/ee-billing'); - const getOrCreateCustomer = { execute: () => Promise.resolve({ id: 'customer_id' }), }; diff --git a/apps/api/src/app/billing/e2e/create-subscription.e2e-ee.ts b/apps/api/src/app/billing/e2e/create-subscription.e2e-ee.ts index 16c60c39664..08826150795 100644 --- a/apps/api/src/app/billing/e2e/create-subscription.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/create-subscription.e2e-ee.ts @@ -1,16 +1,15 @@ +import { + CreateSubscription, + CreateSubscriptionCommand, + GetPrices, + UpdateServiceLevel, +} from '@novu/ee-billing'; +import { StripeSubscriptionStatusEnum, StripeUsageTypeEnum } from '@novu/ee-billing/src/stripe/types'; import { ApiServiceLevelEnum, StripeBillingIntervalEnum } from '@novu/shared'; import { expect } from 'chai'; import sinon from 'sinon'; -const { StripeSubscriptionStatusEnum, StripeUsageTypeEnum } = require('@novu/ee-billing/src/stripe/types'); - describe('CreateSubscription #novu-v2', () => { - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - - const { CreateSubscription, GetPrices, UpdateServiceLevel, CreateSubscriptionCommand } = eeBilling; const stripeStub = { subscriptions: { diff --git a/apps/api/src/app/billing/e2e/create-usage-records.e2e-ee.ts b/apps/api/src/app/billing/e2e/create-usage-records.e2e-ee.ts index 5c58ae49c75..2166265b13d 100644 --- a/apps/api/src/app/billing/e2e/create-usage-records.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/create-usage-records.e2e-ee.ts @@ -1,11 +1,11 @@ // biome-ignore lint/style/noRestrictedImports: import { Logger } from '@nestjs/common'; +import { CreateUsageRecords, CreateUsageRecordsCommand } from '@novu/ee-billing'; +import { StripeUsageTypeEnum } from '@novu/ee-billing/src/stripe/types'; import { ApiServiceLevelEnum, StripeBillingIntervalEnum } from '@novu/shared'; import { expect } from 'chai'; import sinon from 'sinon'; -const { StripeUsageTypeEnum } = require('@novu/ee-billing/src/stripe/types'); - const mockMonthlyBusinessSubscription = { id: 'subscription_id', items: { @@ -23,12 +23,6 @@ const mockMonthlyBusinessSubscription = { }; describe('CreateUsageRecords #novu-v2', () => { - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - const { CreateUsageRecords, CreateUsageRecordsCommand } = eeBilling; - const stripeStub = { subscriptionItems: { createUsageRecord: () => {}, diff --git a/apps/api/src/app/billing/e2e/customer-subscription-created.e2e-ee.ts b/apps/api/src/app/billing/e2e/customer-subscription-created.e2e-ee.ts index d9e9221365e..77249eeddb6 100644 --- a/apps/api/src/app/billing/e2e/customer-subscription-created.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/customer-subscription-created.e2e-ee.ts @@ -1,3 +1,4 @@ +import { CustomerSubscriptionCreatedHandler, UpdateServiceLevel, VerifyCustomer } from '@novu/ee-billing'; import { ApiServiceLevelEnum, StripeBillingIntervalEnum } from '@novu/shared'; import { expect } from 'chai'; import sinon from 'sinon'; @@ -127,13 +128,6 @@ const verifyCustomerMock = { }; describe('webhook event - customer.subscription.created #novu-v2', () => { - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - - const { CustomerSubscriptionCreatedHandler, VerifyCustomer, UpdateServiceLevel } = eeBilling; - let verifyCustomerStub: sinon.SinonStub; let updateServiceLevelStub: sinon.SinonStub; diff --git a/apps/api/src/app/billing/e2e/customer-subscription-deleted.e2e-ee.ts b/apps/api/src/app/billing/e2e/customer-subscription-deleted.e2e-ee.ts index c635db3e389..7a555d79a90 100644 --- a/apps/api/src/app/billing/e2e/customer-subscription-deleted.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/customer-subscription-deleted.e2e-ee.ts @@ -1,3 +1,10 @@ +import { + CreateSubscription, + CustomerSubscriptionDeletedHandler, + UpdateServiceLevel, + UpdateServiceLevelCommand, + VerifyCustomer, +} from '@novu/ee-billing'; import { ApiServiceLevelEnum, StripeBillingIntervalEnum } from '@novu/shared'; import { expect } from 'chai'; import sinon from 'sinon'; @@ -98,19 +105,6 @@ const verifyCustomerMock = { }; describe.skip('webhook event - customer.subscription.deleted #novu-v2', () => { - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - - const { - CustomerSubscriptionDeletedHandler, - VerifyCustomer, - UpdateServiceLevel, - UpdateServiceLevelCommand, - CreateSubscription, - } = eeBilling; - const stripeStub = { customers: { update: sinon.stub(), diff --git a/apps/api/src/app/billing/e2e/get-platform-notification-usage.e2e-ee.ts b/apps/api/src/app/billing/e2e/get-platform-notification-usage.e2e-ee.ts index 5aa17f29437..0acc5761c95 100644 --- a/apps/api/src/app/billing/e2e/get-platform-notification-usage.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/get-platform-notification-usage.e2e-ee.ts @@ -1,4 +1,8 @@ import { PinoLogger } from '@novu/application-generic'; +import { + GetPlatformNotificationUsage, + GetPlatformNotificationUsageCommand, +} from '@novu/ee-billing'; import { CommunityOrganizationRepository, EnvironmentRepository, NotificationRepository } from '@novu/dal'; import { ApiServiceLevelEnum, isClerkEnabled } from '@novu/shared'; import { UserSession } from '@novu/testing'; @@ -6,13 +10,6 @@ import { expect } from 'chai'; import sinon from 'sinon'; describe('GetPlatformNotificationUsage #novu-v2', () => { - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - - const { GetPlatformNotificationUsage, GetPlatformNotificationUsageCommand } = eeBilling; - const environmentRepo = new EnvironmentRepository(); const notificationRepo = new NotificationRepository(); const communityOrganizationRepo = new CommunityOrganizationRepository(); diff --git a/apps/api/src/app/billing/e2e/get-portal-link.e2e-ee.ts b/apps/api/src/app/billing/e2e/get-portal-link.e2e-ee.ts index 403ec34caa4..9fe06ef7c72 100644 --- a/apps/api/src/app/billing/e2e/get-portal-link.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/get-portal-link.e2e-ee.ts @@ -1,3 +1,4 @@ +import { GetPortalLink } from '@novu/ee-billing'; import { expect } from 'chai'; import sinon from 'sinon'; @@ -5,7 +6,7 @@ const dashboardOrigin = process.env.DASHBOARD_URL; describe('Get portal link #novu-v2', async () => { it('Get portal link', async () => { - if (!require('@novu/ee-billing').GetPortalLink) { + if (!GetPortalLink) { throw new Error("GetPortalLink doesn't exist"); } const stubObject = { @@ -27,7 +28,7 @@ describe('Get portal link #novu-v2', async () => { const stub = sinon.stub(stubObject.billingPortal.sessions, 'create').resolves({ url: 'url' }); - const usecase = new (require('@novu/ee-billing').GetPortalLink)(stubObject, getCustomerUsecase); + const usecase = new GetPortalLink(stubObject, getCustomerUsecase); const result = await usecase.execute({ environmentId: 'environment_dd', diff --git a/apps/api/src/app/billing/e2e/get-prices.e2e-ee.ts b/apps/api/src/app/billing/e2e/get-prices.e2e-ee.ts index 0131f1a6549..988c0dd08d0 100644 --- a/apps/api/src/app/billing/e2e/get-prices.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/get-prices.e2e-ee.ts @@ -1,15 +1,9 @@ +import { GetPrices, GetPricesCommand } from '@novu/ee-billing'; import { ApiServiceLevelEnum, StripeBillingIntervalEnum } from '@novu/shared'; import { expect } from 'chai'; import sinon from 'sinon'; describe('GetPrices #novu-v2', () => { - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - - const { GetPrices, GetPricesCommand } = eeBilling; - const stripeStub = { prices: { list: sinon.stub(), diff --git a/apps/api/src/app/billing/e2e/get-subscription.e2e-ee.ts b/apps/api/src/app/billing/e2e/get-subscription.e2e-ee.ts index cbfbb3ff08c..561d88749cb 100644 --- a/apps/api/src/app/billing/e2e/get-subscription.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/get-subscription.e2e-ee.ts @@ -1,3 +1,4 @@ +import { GetPlatformNotificationUsageCommand, GetSubscription, GetSubscriptionCommand } from '@novu/ee-billing'; import { ApiServiceLevelEnum } from '@novu/shared'; import { UserSession } from '@novu/testing'; import { expect } from 'chai'; @@ -56,13 +57,6 @@ const mockedStripeCustomer: DeepPartial = { describe('GetSubscription #novu-v2', async () => { let session: UserSession; - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - - const { GetPlatformNotificationUsageCommand, GetSubscription, GetSubscriptionCommand } = eeBilling; - const communityOrganizationRepo = { findById: () => Promise.resolve({ diff --git a/apps/api/src/app/billing/e2e/verify-customer.e2e-ee.ts b/apps/api/src/app/billing/e2e/verify-customer.e2e-ee.ts index 73b1b20b99e..5e1197ae33e 100644 --- a/apps/api/src/app/billing/e2e/verify-customer.e2e-ee.ts +++ b/apps/api/src/app/billing/e2e/verify-customer.e2e-ee.ts @@ -1,19 +1,12 @@ // biome-ignore lint/style/noRestrictedImports: import { Logger } from '@nestjs/common'; import { CommunityOrganizationRepository } from '@novu/dal'; -import { VerifyCustomerCommand } from '@novu/ee-billing'; +import { VerifyCustomer, VerifyCustomerCommand } from '@novu/ee-billing'; import { ApiServiceLevelEnum } from '@novu/shared'; import { expect } from 'chai'; import sinon from 'sinon'; describe('VerifyCustomer #novu-v2', () => { - const eeBilling = require('@novu/ee-billing'); - if (!eeBilling) { - throw new Error('ee-billing does not exist'); - } - - const { VerifyCustomer } = eeBilling; - const stripeStub = { customers: { retrieve: () => {}, diff --git a/apps/api/src/app/contexts/dtos/create-context-request.dto.ts b/apps/api/src/app/contexts/dtos/create-context-request.dto.ts index a31c5a5ac80..f3fcbffb287 100644 --- a/apps/api/src/app/contexts/dtos/create-context-request.dto.ts +++ b/apps/api/src/app/contexts/dtos/create-context-request.dto.ts @@ -1,4 +1,4 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { IsValidContextData } from '@novu/application-generic'; import { CONTEXT_IDENTIFIER_REGEX, ContextData, ContextId, ContextType } from '@novu/shared'; import { IsDefined, IsOptional, IsString, Matches, MaxLength, MinLength } from 'class-validator'; @@ -37,11 +37,10 @@ export class CreateContextRequestDto { }) id: ContextId; - @ApiProperty({ + @ApiPropertyOptional({ description: 'Optional custom data to associate with this context.', example: { tenantName: 'Acme Corp', region: 'us-east-1', settings: { theme: 'dark' } }, - required: false, - type: 'object', + type: Object, additionalProperties: true, }) @IsOptional() diff --git a/apps/api/src/app/contexts/dtos/update-context-request.dto.ts b/apps/api/src/app/contexts/dtos/update-context-request.dto.ts index 5aaef48ce81..0e585d2ea25 100644 --- a/apps/api/src/app/contexts/dtos/update-context-request.dto.ts +++ b/apps/api/src/app/contexts/dtos/update-context-request.dto.ts @@ -7,8 +7,7 @@ export class UpdateContextRequestDto { @ApiProperty({ description: 'Custom data to associate with this context. Replaces existing data.', example: { tenantName: 'Acme Corp', region: 'us-east-1', settings: { theme: 'dark' } }, - required: true, - type: 'object', + type: Object, additionalProperties: true, }) @IsDefined() diff --git a/apps/api/src/app/environments-v1/dtos/create-environment-request.dto.ts b/apps/api/src/app/environments-v1/dtos/create-environment-request.dto.ts index 318d825825f..098032fe11f 100644 --- a/apps/api/src/app/environments-v1/dtos/create-environment-request.dto.ts +++ b/apps/api/src/app/environments-v1/dtos/create-environment-request.dto.ts @@ -23,7 +23,7 @@ export class CreateEnvironmentRequestDto { @ApiProperty({ type: String, description: 'Hex color code for the environment', - example: '#3498db', + example: '#3498DB', }) @IsDefined({ message: 'Environment color is required' }) @IsHexColor({ message: 'Color must be a valid hex color code' }) diff --git a/apps/api/src/app/events/dtos/trigger-event-request.dto.ts b/apps/api/src/app/events/dtos/trigger-event-request.dto.ts index fd0ebd0dbd8..ca51529bbea 100644 --- a/apps/api/src/app/events/dtos/trigger-event-request.dto.ts +++ b/apps/api/src/app/events/dtos/trigger-event-request.dto.ts @@ -32,14 +32,13 @@ export class WorkflowToStepControlValuesDto { * @type {Record} * @optional */ - @ApiProperty({ + @ApiPropertyOptional({ description: 'A mapping of step IDs to their corresponding data.', - type: 'object', + type: Object, additionalProperties: { type: 'object', additionalProperties: true, }, - required: false, }) steps?: Record>; } @@ -229,12 +228,11 @@ export class TriggerEventRequestDto { @IsDefined() name: string; - @ApiProperty({ + @ApiPropertyOptional({ description: `The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. This data will also be available when fetching the notifications feed from the API to display certain parts of the UI.`, - type: 'object', - required: false, + type: Object, additionalProperties: true, example: { comment_id: 'string', @@ -262,7 +260,6 @@ export class TriggerEventRequestDto { }, }, type: TriggerOverrides, - required: false, }) @IsObject() @IsOptional() @@ -314,14 +311,13 @@ export class TriggerEventRequestDto { @IsOptional() transactionId?: string; - @ApiProperty({ + @ApiPropertyOptional({ description: `It is used to display the Avatar of the provided actor's subscriber id or actor object. If a new actor object is provided, we will create a new subscriber in our system`, oneOf: [ { type: 'string', description: 'Unique identifier of a subscriber in your systems' }, { $ref: getSchemaPath(SubscriberPayloadDto) }, ], - required: false, }) @IsOptional() @ValidateIf((_, value) => typeof value !== 'string') @@ -329,14 +325,13 @@ export class TriggerEventRequestDto { @Type(() => SubscriberPayloadDto) actor?: TriggerRecipientSubscriber; - @ApiProperty({ + @ApiPropertyOptional({ description: `It is used to specify a tenant context during trigger event. Existing tenants will be updated with the provided details.`, oneOf: [ { type: 'string', description: 'Unique identifier of a tenant in your system' }, { $ref: getSchemaPath(TenantPayloadDto) }, ], - required: false, }) @IsOptional() @ValidateIf((_, value) => typeof value !== 'string') diff --git a/apps/api/src/app/events/dtos/trigger-event-to-all-request.dto.ts b/apps/api/src/app/events/dtos/trigger-event-to-all-request.dto.ts index 7c293779b0c..68558e39994 100644 --- a/apps/api/src/app/events/dtos/trigger-event-to-all-request.dto.ts +++ b/apps/api/src/app/events/dtos/trigger-event-to-all-request.dto.ts @@ -21,11 +21,10 @@ export class TriggerEventToAllRequestDto { text: 'string', }, }, - type: 'object', + type: Object, description: `The payload object is used to pass additional information that could be used to render the template, or perform routing rules based on it. For In-App channel, payload data are also available in `, - required: true, additionalProperties: true, }) @IsObject() @@ -45,7 +44,6 @@ export class TriggerEventToAllRequestDto { type: 'object', additionalProperties: true, }, - required: false, }) @IsObject() @IsOptional() diff --git a/apps/api/src/app/layouts-v2/dtos/generate-layout-preview-response.dto.ts b/apps/api/src/app/layouts-v2/dtos/generate-layout-preview-response.dto.ts index b3a971995b3..94bab89925b 100644 --- a/apps/api/src/app/layouts-v2/dtos/generate-layout-preview-response.dto.ts +++ b/apps/api/src/app/layouts-v2/dtos/generate-layout-preview-response.dto.ts @@ -1,4 +1,4 @@ -import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger'; +import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath, type ApiPropertyOptions } from '@nestjs/swagger'; import { ChannelTypeEnum } from '@novu/shared'; import { Type } from 'class-transformer'; import { IsOptional, IsString, ValidateNested } from 'class-validator'; @@ -23,7 +23,7 @@ export class GenerateLayoutPreviewResponseDto { @ApiPropertyOptional({ description: 'The payload schema that was used to generate the preview payload example', - type: 'object', + type: Object, nullable: true, additionalProperties: true, }) @@ -32,7 +32,7 @@ export class GenerateLayoutPreviewResponseDto { @ApiProperty({ description: 'Preview result', - type: 'object', + type: Object, oneOf: [ { properties: { @@ -41,7 +41,7 @@ export class GenerateLayoutPreviewResponseDto { }, }, ], - }) + } as ApiPropertyOptions) result: { type: ChannelTypeEnum.EMAIL; preview?: EmailLayoutRenderOutput; diff --git a/apps/api/src/app/message-template/message-template.module.ts b/apps/api/src/app/message-template/message-template.module.ts index 301fc08e1a5..fcd58489218 100644 --- a/apps/api/src/app/message-template/message-template.module.ts +++ b/apps/api/src/app/message-template/message-template.module.ts @@ -1,11 +1,11 @@ -import { Module } from '@nestjs/common'; +import { forwardRef, Module } from '@nestjs/common'; import { ChangeModule } from '../change/change.module'; import { SharedModule } from '../shared/shared.module'; import { MessageTemplateController } from './message-template.controller'; import { USE_CASES } from './usecases'; @Module({ - imports: [SharedModule, ChangeModule], + imports: [SharedModule, forwardRef(() => ChangeModule)], controllers: [MessageTemplateController], providers: [...USE_CASES], exports: [...USE_CASES], diff --git a/apps/api/src/app/notifications/dtos/activities-response.dto.ts b/apps/api/src/app/notifications/dtos/activities-response.dto.ts index 10f2dc0bbd1..0a114404c45 100644 --- a/apps/api/src/app/notifications/dtos/activities-response.dto.ts +++ b/apps/api/src/app/notifications/dtos/activities-response.dto.ts @@ -254,8 +254,7 @@ export class ActivityNotificationJobResponseDto { @ApiPropertyOptional({ description: 'Optional context object for additional error details.', - type: 'object', - required: false, + type: Object, additionalProperties: true, example: { workflowId: 'some_wf_id', @@ -430,8 +429,7 @@ export class ActivityNotificationResponseDto { @ApiPropertyOptional({ description: 'Payload of the notification', - type: 'object', - required: false, + type: Object, additionalProperties: true, }) payload?: Record; // Added to align with NotificationEntity @@ -444,16 +442,14 @@ export class ActivityNotificationResponseDto { @ApiPropertyOptional({ description: 'Controls associated with the notification', - type: 'object', - required: false, + type: Object, additionalProperties: true, }) controls?: Record; // Added to align with NotificationEntity @ApiPropertyOptional({ description: 'To field for subscriber definition', - type: 'object', - required: false, + type: Object, additionalProperties: true, }) to?: Record; // Added to align with NotificationEntity diff --git a/apps/api/src/app/shared/dtos/subscriptions/create-subscriptions-response.dto.ts b/apps/api/src/app/shared/dtos/subscriptions/create-subscriptions-response.dto.ts index 4d286e965bc..cbe68235ba8 100644 --- a/apps/api/src/app/shared/dtos/subscriptions/create-subscriptions-response.dto.ts +++ b/apps/api/src/app/shared/dtos/subscriptions/create-subscriptions-response.dto.ts @@ -120,8 +120,7 @@ export class SubscriptionPreferenceDto { @ApiPropertyOptional({ description: 'Optional condition using JSON Logic rules', - required: false, - type: 'object', + type: Object, additionalProperties: true, example: { and: [{ '===': [{ var: 'tier' }, 'premium'] }] }, }) diff --git a/apps/api/src/app/shared/dtos/subscriptions/create-subscriptions.dto.ts b/apps/api/src/app/shared/dtos/subscriptions/create-subscriptions.dto.ts index 8d427c022af..1fd29076612 100644 --- a/apps/api/src/app/shared/dtos/subscriptions/create-subscriptions.dto.ts +++ b/apps/api/src/app/shared/dtos/subscriptions/create-subscriptions.dto.ts @@ -39,19 +39,17 @@ export class TopicSubscriberIdentifierDto { } export class BasePreferenceDto { - @ApiProperty({ + @ApiPropertyOptional({ description: 'Whether the preference is enabled. Used when condition is not provided.', - required: false, type: Boolean, example: true, }) @IsOptional() enabled?: boolean; - @ApiProperty({ + @ApiPropertyOptional({ description: 'Optional condition using JSON Logic rules', - required: false, - type: 'object', + type: Object, additionalProperties: true, example: { and: [{ '===': [{ var: 'tier' }, 'premium'] }] }, }) diff --git a/apps/api/src/app/shared/framework/response.interceptor.ts b/apps/api/src/app/shared/framework/response.interceptor.ts index 4d0dac44cd8..c8880a13cb5 100644 --- a/apps/api/src/app/shared/framework/response.interceptor.ts +++ b/apps/api/src/app/shared/framework/response.interceptor.ts @@ -11,7 +11,7 @@ export interface Response { @Injectable() export class ResponseInterceptor implements NestInterceptor> { intercept(context, next: CallHandler): Observable> { - if (context.getType() === 'graphql') return next.handle(); + if ((context.getType() as string) === 'graphql') return next.handle(); return next.handle().pipe( map((data) => { diff --git a/apps/api/src/app/shared/framework/user.decorator.ts b/apps/api/src/app/shared/framework/user.decorator.ts index e0c6eb4f20e..75885cf3aeb 100644 --- a/apps/api/src/app/shared/framework/user.decorator.ts +++ b/apps/api/src/app/shared/framework/user.decorator.ts @@ -14,7 +14,8 @@ export interface SubscriberSession extends SubscriberEntity { } export const SubscriberSession = createParamDecorator((data, ctx) => { - const req = ctx.getType() === 'graphql' ? ctx.getArgs()[2].req : ctx.switchToHttp().getRequest(); + const req = + (ctx.getType() as string) === 'graphql' ? ctx.getArgs()[2].req : ctx.switchToHttp().getRequest(); if (req.user) { return req.user; diff --git a/apps/api/src/app/subscribers-v2/dtos/get-subscriber-notifications-response.dto.ts b/apps/api/src/app/subscribers-v2/dtos/get-subscriber-notifications-response.dto.ts index 382e9dad9f3..1390a6c3599 100644 --- a/apps/api/src/app/subscribers-v2/dtos/get-subscriber-notifications-response.dto.ts +++ b/apps/api/src/app/subscribers-v2/dtos/get-subscriber-notifications-response.dto.ts @@ -1,4 +1,4 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty, type ApiPropertyOptions } from '@nestjs/swagger'; import { InboxNotificationDto } from '../../inbox/dtos/inbox-notification.dto'; import type { NotificationFilter } from '../../inbox/utils/types'; @@ -17,7 +17,7 @@ export class GetSubscriberNotificationsResponseDto { @ApiProperty({ description: 'The filter applied to the notifications', - type: 'object', - }) + type: Object, + } as ApiPropertyOptions) filter: NotificationFilter; } diff --git a/apps/api/src/app/subscribers-v2/dtos/subscriber-notification-action.dto.ts b/apps/api/src/app/subscribers-v2/dtos/subscriber-notification-action.dto.ts index 96cc994fa7c..5e1927da529 100644 --- a/apps/api/src/app/subscribers-v2/dtos/subscriber-notification-action.dto.ts +++ b/apps/api/src/app/subscribers-v2/dtos/subscriber-notification-action.dto.ts @@ -7,8 +7,10 @@ export class SubscriberNotificationActionDto { @IsDefined() @ApiProperty({ description: 'The type of action button (primary or secondary)', - enum: ButtonTypeEnum, - example: ButtonTypeEnum.PRIMARY, + enum: [...Object.values(ButtonTypeEnum)], + enumName: 'ButtonTypeEnum', + type: String, + example: 'primary', }) readonly actionType: ButtonTypeEnum; } diff --git a/apps/api/src/app/subscribers-v2/subscribers.controller.ts b/apps/api/src/app/subscribers-v2/subscribers.controller.ts index 1ebc1e39f85..04913036833 100644 --- a/apps/api/src/app/subscribers-v2/subscribers.controller.ts +++ b/apps/api/src/app/subscribers-v2/subscribers.controller.ts @@ -7,6 +7,7 @@ import { HttpCode, HttpStatus, Param, + ParseEnumPipe, Patch, Post, Query, @@ -738,8 +739,7 @@ export class SubscribersController { @ApiParam({ name: 'actionType', description: 'The type of action (primary or secondary)', - enum: ButtonTypeEnum, - type: String, + enum: [ButtonTypeEnum.PRIMARY, ButtonTypeEnum.SECONDARY], }) @ApiQuery({ name: 'contextKeys', required: false, type: [String], description: 'Context keys for filtering' }) @ApiResponse(InboxNotificationDto, 200, false, false) @@ -750,7 +750,7 @@ export class SubscribersController { @UserSession() user: UserSessionData, @Param('subscriberId') subscriberId: string, @Param('notificationId') notificationId: string, - @Param('actionType') actionType: ButtonTypeEnum, + @Param('actionType', new ParseEnumPipe(ButtonTypeEnum)) actionType: string, @Query() query: ContextKeysQueryDto ): Promise { return await this.updateNotificationActionUsecase.execute( @@ -760,7 +760,7 @@ export class SubscribersController { environmentId: user.environmentId, contextKeys: query.contextKeys, notificationId, - actionType, + actionType: actionType as ButtonTypeEnum, actionStatus: MessageActionStatusEnum.DONE, }) ); @@ -778,8 +778,7 @@ export class SubscribersController { @ApiParam({ name: 'actionType', description: 'The type of action (primary or secondary)', - enum: ButtonTypeEnum, - type: String, + enum: [ButtonTypeEnum.PRIMARY, ButtonTypeEnum.SECONDARY], }) @ApiQuery({ name: 'contextKeys', required: false, type: [String], description: 'Context keys for filtering' }) @ApiResponse(InboxNotificationDto, 200, false, false) @@ -790,7 +789,7 @@ export class SubscribersController { @UserSession() user: UserSessionData, @Param('subscriberId') subscriberId: string, @Param('notificationId') notificationId: string, - @Param('actionType') actionType: ButtonTypeEnum, + @Param('actionType', new ParseEnumPipe(ButtonTypeEnum)) actionType: string, @Query() query: ContextKeysQueryDto ): Promise { return await this.updateNotificationActionUsecase.execute( @@ -800,7 +799,7 @@ export class SubscribersController { environmentId: user.environmentId, contextKeys: query.contextKeys, notificationId, - actionType, + actionType: actionType as ButtonTypeEnum, actionStatus: MessageActionStatusEnum.PENDING, }) ); diff --git a/apps/api/src/app/subscribers/subscribersV1.controller.ts b/apps/api/src/app/subscribers/subscribersV1.controller.ts index 34c4a63166d..3e0f687c5ca 100644 --- a/apps/api/src/app/subscribers/subscribersV1.controller.ts +++ b/apps/api/src/app/subscribers/subscribersV1.controller.ts @@ -8,13 +8,14 @@ import { HttpStatus, NotFoundException, Param, + ParseEnumPipe, Patch, Post, Put, Query, Res, } from '@nestjs/common'; -import { ApiExcludeEndpoint, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; +import { ApiExcludeEndpoint, ApiOperation, ApiParam, ApiQuery, ApiTags } from '@nestjs/swagger'; import { CreateOrUpdateSubscriberCommand, CreateOrUpdateSubscriberUseCase, @@ -753,13 +754,18 @@ export class SubscribersV1Controller { description: `Update in-app (inbox) notification's action status by its unique key identifier **messageId** and type field **type**. **type** field can be **primary** or **secondary**`, }) + @ApiParam({ + name: 'type', + description: 'Action button type: primary or secondary', + enum: [ButtonTypeEnum.PRIMARY, ButtonTypeEnum.SECONDARY], + }) @ApiResponse(MessageResponseDto, 201) @SdkGroupName('Subscribers.Messages') @SdkMethodName('updateAsSeen') async markActionAsSeen( @UserSession() user: UserSessionData, @Param('messageId') messageId: string, - @Param('type') type: ButtonTypeEnum, + @Param('type', new ParseEnumPipe(ButtonTypeEnum)) type: string, @Body() body: MarkMessageActionAsSeenDto, @Param('subscriberId') subscriberId: string ): Promise { @@ -769,7 +775,7 @@ export class SubscribersV1Controller { environmentId: user.environmentId, subscriberId, messageId, - type, + type: type as ButtonTypeEnum, payload: body.payload, status: body.status, }) diff --git a/apps/api/src/app/subscribers/usecases/chat-oauth-callback/is-not-empty.spec.ts b/apps/api/src/app/subscribers/usecases/chat-oauth-callback/is-not-empty.spec.ts index e2683211c29..db5a7dd0703 100644 --- a/apps/api/src/app/subscribers/usecases/chat-oauth-callback/is-not-empty.spec.ts +++ b/apps/api/src/app/subscribers/usecases/chat-oauth-callback/is-not-empty.spec.ts @@ -4,6 +4,16 @@ import { BaseCommand, CommandValidationException } from '@novu/application-gener import { expect } from 'chai'; import { IsNotEmpty } from './chat-oauth-callback.command'; +class IsNotEmptyNameCommand extends BaseCommand { + name?: string; +} + +IsNotEmpty()(IsNotEmptyNameCommand.prototype, 'name'); + +class NameCommand extends BaseCommand { + name: string; +} + function assertCommandValidationError(e: CommandValidationException, fieldName: string, fieldMsg: string) { if (!(e instanceof CommandValidationException)) { throw new Error(e); @@ -22,7 +32,7 @@ describe('@IsNotEmpty() validator', () => { }); it('should throw exception on string null', async () => { - const noValidation = NameCommand.create({ name: 'null' } as any); + NameCommand.create({ name: 'null' } as any); try { IsNotEmptyNameCommand.create({ name: 'null' } as any); @@ -33,10 +43,10 @@ describe('@IsNotEmpty() validator', () => { }); it('should throw exception on undefined', async () => { - const noValidation = NameCommand.create({ name: undefined } as any); + NameCommand.create({ name: undefined } as any); try { - const validateNameCommand = IsNotEmptyNameCommand.create({ name: undefined } as any); + IsNotEmptyNameCommand.create({ name: undefined } as any); throw new Error('should not have passed validation'); } catch (e) { assertCommandValidationError(e, 'name', 'name should not be undefined'); @@ -44,7 +54,7 @@ describe('@IsNotEmpty() validator', () => { }); it('should throw exception on undefined null', async () => { - const noValidation = NameCommand.create({ name: 'undefined' } as any); + NameCommand.create({ name: 'undefined' } as any); try { IsNotEmptyNameCommand.create({ name: 'undefined' } as any); @@ -55,7 +65,7 @@ describe('@IsNotEmpty() validator', () => { }); it('should throw exception on empty string', async () => { - const noValidation = NameCommand.create({ name: '' }); + NameCommand.create({ name: '' }); try { IsNotEmptyNameCommand.create({ name: '' }); @@ -65,12 +75,3 @@ describe('@IsNotEmpty() validator', () => { } }); }); - -export class IsNotEmptyNameCommand extends BaseCommand { - @IsNotEmpty() - name?: string; -} - -export class NameCommand extends BaseCommand { - name: string; -} diff --git a/apps/api/src/app/widgets/dtos/feeds-response.dto.ts b/apps/api/src/app/widgets/dtos/feeds-response.dto.ts index 3ed813c17de..f5586b3765e 100644 --- a/apps/api/src/app/widgets/dtos/feeds-response.dto.ts +++ b/apps/api/src/app/widgets/dtos/feeds-response.dto.ts @@ -17,7 +17,7 @@ class ActorFeedItemDto implements IActor { description: 'The type of the actor, indicating the role in the notification process.', enum: [...Object.values(ActorTypeEnum)], enumName: 'ActorTypeEnum', - type: ActorTypeEnum, + type: String, }) type: ActorTypeEnum; } @@ -160,7 +160,7 @@ export class NotificationFeedItemDto implements INotificationDto { description: 'The channel through which the notification is sent.', enum: [...Object.values(ChannelTypeEnum)], enumName: 'ChannelTypeEnum', - type: ChannelTypeEnum, + type: String, }) channel: ChannelTypeEnum; @@ -207,29 +207,27 @@ export class NotificationFeedItemDto implements INotificationDto { }) status: 'sent' | 'error' | 'warning'; - @ApiProperty({ + @ApiPropertyOptional({ description: 'The payload that was used to send the notification trigger.', - type: 'object', + type: Object, additionalProperties: true, - required: false, example: { key: 'value' }, }) payload?: Record; @ApiPropertyOptional({ description: 'The data sent with the notification.', - type: 'object', + type: Object, nullable: true, example: { key: 'value' }, additionalProperties: true, }) data?: Record | null; - @ApiProperty({ + @ApiPropertyOptional({ description: 'Provider-specific overrides used when triggering the notification.', - type: 'object', + type: Object, additionalProperties: true, - required: false, example: { overrideKey: 'overrideValue' }, }) overrides?: Record; diff --git a/apps/api/src/app/widgets/dtos/message-response.dto.ts b/apps/api/src/app/widgets/dtos/message-response.dto.ts index 9d02f4210ed..f17d15c35bd 100644 --- a/apps/api/src/app/widgets/dtos/message-response.dto.ts +++ b/apps/api/src/app/widgets/dtos/message-response.dto.ts @@ -61,6 +61,7 @@ class MessageActionResult { enum: [...Object.values(ButtonTypeEnum)], enumName: 'ButtonTypeEnum', description: 'Type of button for the action result', + type: String, }) type?: ButtonTypeEnum; } @@ -70,6 +71,7 @@ class MessageButton { enum: [...Object.values(ButtonTypeEnum)], enumName: 'ButtonTypeEnum', description: 'Type of the button', + type: String, }) type: ButtonTypeEnum; diff --git a/apps/api/src/app/widgets/pipes/limit-pipe/limit-pipe.spec.ts b/apps/api/src/app/widgets/pipes/limit-pipe/limit-pipe.spec.ts index 17e19145c8e..76b8c0fdc58 100644 --- a/apps/api/src/app/widgets/pipes/limit-pipe/limit-pipe.spec.ts +++ b/apps/api/src/app/widgets/pipes/limit-pipe/limit-pipe.spec.ts @@ -2,10 +2,10 @@ import { Paramtype } from '@nestjs/common/interfaces/features/paramtype.interfac import { expect } from 'chai'; import { LimitPipe } from './limit-pipe'; -enum MetadataEnum { - DATA = 'limit', - TYPE = 'query', -} +const MetadataEnum = { + DATA: 'limit', + TYPE: 'query', +} as const; describe('LimitPipe', () => { let pipe: LimitPipe; diff --git a/apps/api/src/app/workflows-v2/dtos/create-workflow.dto.ts b/apps/api/src/app/workflows-v2/dtos/create-workflow.dto.ts index 248ab42eead..21531d267b6 100644 --- a/apps/api/src/app/workflows-v2/dtos/create-workflow.dto.ts +++ b/apps/api/src/app/workflows-v2/dtos/create-workflow.dto.ts @@ -138,12 +138,10 @@ export class CreateWorkflowDto extends WorkflowCommonsFields { | HttpRequestStepUpsertDto )[]; - @ApiProperty({ + @ApiPropertyOptional({ description: 'Source of workflow creation', enum: WorkflowCreationSourceEnum, enumName: 'WorkflowCreationSourceEnum', - required: false, - default: WorkflowCreationSourceEnum.EDITOR, }) @IsOptional() @IsEnum(WorkflowCreationSourceEnum) diff --git a/apps/api/src/bootstrap.ts b/apps/api/src/bootstrap.ts index 1096408132b..d941c72f398 100644 --- a/apps/api/src/bootstrap.ts +++ b/apps/api/src/bootstrap.ts @@ -2,6 +2,7 @@ import './instrument'; import { INestApplication, ValidationPipe, VersioningType } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; +import { NestExpressApplication } from '@nestjs/platform-express'; import { BullMqService, getErrorInterceptor, @@ -63,7 +64,11 @@ export async function bootstrap( }; } - const app = await NestFactory.create(AppModule, { bufferLogs: true, ...nestOptions }); + const app = await NestFactory.create(AppModule, { bufferLogs: true, ...nestOptions }); + + // Express v5 defaults to the "simple" query parser; keep Express v4 "extended" (qs) behavior. + // See https://docs.nestjs.com/migration-guide#query-parameters-parsing + app.set('query parser', 'extended'); app.enableVersioning({ type: VersioningType.URI, diff --git a/apps/api/src/config/cors.config.spec.ts b/apps/api/src/config/cors.config.spec.ts index b7d63fb31a2..46f135b7037 100644 --- a/apps/api/src/config/cors.config.spec.ts +++ b/apps/api/src/config/cors.config.spec.ts @@ -1,3 +1,4 @@ +import type { Request } from 'express'; import { expect } from 'chai'; import { spy } from 'sinon'; import { corsOptionsDelegate } from './cors.config'; @@ -19,8 +20,7 @@ describe('CORS Configuration', () => { it('should allow all origins', () => { const callbackSpy = spy(); - // @ts-expect-error - corsOptionsDelegate is not typed correctly - corsOptionsDelegate({ url: '/v1/test' }, callbackSpy); + corsOptionsDelegate({ url: '/v1/test' } as Request, callbackSpy); expect(callbackSpy.calledOnce).to.be.ok; expect(callbackSpy.firstCall.firstArg).to.be.null; @@ -42,14 +42,13 @@ describe('CORS Configuration', () => { process.env.WIDGET_BASE_URL = widgetOrigin; const callbackSpy = spy(); - // @ts-expect-error - corsOptionsDelegate is not typed correctly corsOptionsDelegate( { url: '/v1/test', headers: { origin: dashboardOrigin, }, - }, + } as Request, callbackSpy ); @@ -63,14 +62,13 @@ describe('CORS Configuration', () => { it('should allow for the preview deployments origin', () => { const callbackSpy = spy(); - // @ts-expect-error - corsOptionsDelegate is not typed correctly corsOptionsDelegate( { url: '/v1/test', headers: { origin: previewOrigin, }, - }, + } as Request, callbackSpy ); @@ -83,8 +81,7 @@ describe('CORS Configuration', () => { it('widget routes should be wildcarded', () => { const callbackSpy = spy(); - // @ts-expect-error - corsOptionsDelegate is not typed correctly - corsOptionsDelegate({ url: '/v1/widgets/test' }, callbackSpy); + corsOptionsDelegate({ url: '/v1/widgets/test' } as Request, callbackSpy); expect(callbackSpy.calledOnce).to.be.ok; expect(callbackSpy.firstCall.firstArg).to.be.null; @@ -94,8 +91,7 @@ describe('CORS Configuration', () => { it('inbox routes should be wildcarded', () => { const callbackSpy = spy(); - // @ts-expect-error - corsOptionsDelegate is not typed correctly - corsOptionsDelegate({ url: '/v1/inbox/session' }, callbackSpy); + corsOptionsDelegate({ url: '/v1/inbox/session' } as Request, callbackSpy); expect(callbackSpy.calledOnce).to.be.ok; expect(callbackSpy.firstCall.firstArg).to.be.null; diff --git a/apps/api/src/config/cors.config.ts b/apps/api/src/config/cors.config.ts index f5220cd5228..8af64cf2451 100644 --- a/apps/api/src/config/cors.config.ts +++ b/apps/api/src/config/cors.config.ts @@ -1,10 +1,14 @@ -import { INestApplication } from '@nestjs/common'; +import type { + CorsOptions, + CorsOptionsDelegate, +} from '@nestjs/common/interfaces/external/cors-options.interface'; +import type { Request } from 'express'; import { HttpRequestHeaderKeysEnum } from '@novu/application-generic'; const ALLOWED_ORIGINS_REGEX = new RegExp(process.env.FRONT_BASE_URL || ''); -export const corsOptionsDelegate: Parameters[0] = (req: Request, callback) => { - const corsOptions: Parameters[1] = { +export const corsOptionsDelegate: CorsOptionsDelegate = (req, callback) => { + const corsOptions: CorsOptions = { origin: false as boolean | string | string[], preflightContinue: false, maxAge: 86400, @@ -32,7 +36,7 @@ export const corsOptionsDelegate: Parameters[0] } } - callback(null as unknown as Error, corsOptions); + callback(null, corsOptions); }; function enableWildcard(req: Request): boolean { diff --git a/apps/api/src/config/load-test-env.ts b/apps/api/src/config/load-test-env.ts new file mode 100644 index 00000000000..6873b0845c5 --- /dev/null +++ b/apps/api/src/config/load-test-env.ts @@ -0,0 +1,10 @@ +import path from 'node:path'; +import { getEnvFileNameForNodeEnv } from '@novu/shared'; +import dotenv from 'dotenv'; + +/** + * Loads the same .env file as bootstrap (`env.config.ts`) for Mocha unit tests. + * E2E uses `e2e/setup.ts` → `bootstrap()` which imports `env.config`; unit specs + * import Nest modules directly and must load env before `SharedModule` connects Mongo. + */ +dotenv.config({ path: path.join(__dirname, '..', getEnvFileNameForNodeEnv(process.env.NODE_ENV)) }); diff --git a/apps/api/src/error-dto.ts b/apps/api/src/error-dto.ts index fb5e413880c..00f4044ef67 100644 --- a/apps/api/src/error-dto.ts +++ b/apps/api/src/error-dto.ts @@ -1,4 +1,4 @@ -import { ApiExtraModels, ApiProperty, getSchemaPath } from '@nestjs/swagger'; // Ensure you have the correct import for ApiProperty +import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger'; import { ConstraintValidation } from '@novu/application-generic'; export class ErrorDto { @@ -20,8 +20,7 @@ export class ErrorDto { }) path: string; - @ApiProperty({ - required: false, + @ApiPropertyOptional({ description: 'Value that failed validation', oneOf: [ { type: 'string', nullable: true }, @@ -44,10 +43,9 @@ export class ErrorDto { }) message?: unknown; - @ApiProperty({ + @ApiPropertyOptional({ description: 'Optional context object for additional error details.', - type: 'object', - required: false, + type: Object, additionalProperties: true, example: { workflowId: 'some_wf_id', @@ -59,11 +57,10 @@ export class ErrorDto { /** * Optional unique identifier for the error, useful for tracking using Sentry and New Relic, only available for 500. */ - @ApiProperty({ + @ApiPropertyOptional({ description: `Optional unique identifier for the error, useful for tracking using Sentry and New Relic, only available for 500.`, example: 'abc123', - required: false, }) errorId?: string; } @@ -81,7 +78,7 @@ export class PayloadValidationErrorDto { }) message: string; - @ApiProperty({ + @ApiPropertyOptional({ description: 'The actual value that failed validation', oneOf: [ { type: 'string', nullable: true }, @@ -100,15 +97,13 @@ export class PayloadValidationErrorDto { }, }, ], - required: false, example: { age: 25 }, }) value?: any; - @ApiProperty({ + @ApiPropertyOptional({ description: 'JSON Schema path where the validation failed', example: '#/required', - required: false, }) schemaPath?: string; } @@ -135,10 +130,9 @@ export class PayloadValidationExceptionDto extends ErrorDto { }) errors: PayloadValidationErrorDto[]; - @ApiProperty({ + @ApiPropertyOptional({ description: 'The JSON schema that was used for validation', - type: 'object', - required: false, + type: Object, example: { type: 'object', properties: { @@ -155,7 +149,7 @@ export class PayloadValidationExceptionDto extends ErrorDto { export class ValidationErrorDto extends ErrorDto { @ApiProperty({ description: 'A record of validation errors keyed by field name', - type: 'object', + type: Object, additionalProperties: { $ref: getSchemaPath(ConstraintValidation), }, diff --git a/apps/webhook/src/shared/framework/user.decorator.ts b/apps/webhook/src/shared/framework/user.decorator.ts index c89fdac1a0e..fec9fb8dea7 100644 --- a/apps/webhook/src/shared/framework/user.decorator.ts +++ b/apps/webhook/src/shared/framework/user.decorator.ts @@ -4,7 +4,7 @@ import jwt from 'jsonwebtoken'; export const UserSession = createParamDecorator((data, ctx) => { let req; - if (ctx.getType() === 'graphql') { + if ((ctx.getType() as string) === 'graphql') { req = ctx.getArgs()[2].req; } else { req = ctx.switchToHttp().getRequest(); @@ -31,7 +31,7 @@ export const UserSession = createParamDecorator((data, ctx) => { export const SubscriberSession = createParamDecorator((data, ctx) => { let req; - if (ctx.getType() === 'graphql') { + if ((ctx.getType() as string) === 'graphql') { req = ctx.getArgs()[2].req; } else { req = ctx.switchToHttp().getRequest(); diff --git a/apps/worker/package.json b/apps/worker/package.json index 10fc2959699..0edec1c7574 100644 --- a/apps/worker/package.json +++ b/apps/worker/package.json @@ -24,13 +24,13 @@ "ajv": "^8.18.0", "ajv-formats": "^2.1.1", "@aws-sdk/client-secrets-manager": "^3.971.0", - "@nestjs/axios": "3.0.3", - "@nestjs/common": "10.4.18", - "@nestjs/core": "10.4.18", - "@nestjs/platform-express": "10.4.18", - "@nestjs/schedule": "^4.1.1", - "@nestjs/swagger": "7.4.0", - "@nestjs/terminus": "10.2.3", + "@nestjs/axios": "4.0.1", + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18", + "@nestjs/platform-express": "11.1.18", + "@nestjs/schedule": "6.1.1", + "@nestjs/swagger": "11.2.6", + "@nestjs/terminus": "11.1.1", "@novu/application-generic": "workspace:*", "@novu/dal": "workspace:*", "@novu/framework": "workspace:*", @@ -73,9 +73,9 @@ }, "devDependencies": { "@faker-js/faker": "^6.0.0", - "@nestjs/cli": "10.4.5", - "@nestjs/schematics": "10.1.4", - "@nestjs/testing": "10.4.18", + "@nestjs/cli": "11.0.17", + "@nestjs/schematics": "11.0.10", + "@nestjs/testing": "11.1.18", "@types/bcrypt": "^3.0.0", "@types/chai": "^4.2.11", "@types/express": "4.17.17", diff --git a/apps/worker/src/app/shared/response.interceptor.ts b/apps/worker/src/app/shared/response.interceptor.ts index 6117bf24828..d1acbffa5c1 100644 --- a/apps/worker/src/app/shared/response.interceptor.ts +++ b/apps/worker/src/app/shared/response.interceptor.ts @@ -1,4 +1,4 @@ -import { CallHandler, Injectable, NestInterceptor } from '@nestjs/common'; +import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common'; import { instanceToPlain } from 'class-transformer'; import { isArray, isObject } from 'lodash'; import { Observable } from 'rxjs'; @@ -10,8 +10,8 @@ export interface Response { @Injectable() export class ResponseInterceptor implements NestInterceptor> { - intercept(context, next: CallHandler): Observable> { - if (context.getType() === 'graphql') return next.handle(); + intercept(context: ExecutionContext, next: CallHandler): Observable> { + if ((context.getType() as string) === 'graphql') return next.handle(); return next.handle().pipe( map((data) => { diff --git a/apps/worker/src/bootstrap.ts b/apps/worker/src/bootstrap.ts index c8d35207a87..63f6ce1ab5a 100644 --- a/apps/worker/src/bootstrap.ts +++ b/apps/worker/src/bootstrap.ts @@ -2,6 +2,7 @@ import './instrument'; import { INestApplication, Logger, ValidationPipe } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; +import { NestExpressApplication } from '@nestjs/platform-express'; import { BullMqService, getErrorInterceptor, Logger as PinoLogger } from '@novu/application-generic'; import bodyParser from 'body-parser'; import helmet from 'helmet'; @@ -18,7 +19,11 @@ validateEnv(); export async function bootstrap(): Promise { BullMqService.haveProInstalled(); - const app = await NestFactory.create(AppModule, { bufferLogs: true }); + const app = await NestFactory.create(AppModule, { bufferLogs: true }); + + // Express v5: preserve qs-style nested query parsing (NestJS migration guide). + app.set('query parser', 'extended'); + app.useLogger(app.get(PinoLogger)); app.flushLogs(); diff --git a/apps/ws/package.json b/apps/ws/package.json index 01230c39eaa..ba860ef4636 100644 --- a/apps/ws/package.json +++ b/apps/ws/package.json @@ -22,15 +22,15 @@ "dependencies": { "@aws-sdk/client-secrets-manager": "^3.971.0", "@godaddy/terminus": "^4.3.1", - "@nestjs/common": "10.4.18", - "@nestjs/core": "10.4.18", - "@nestjs/jwt": "10.2.0", - "@nestjs/platform-express": "10.4.18", - "@nestjs/platform-socket.io": "10.4.18", - "@nestjs/serve-static": "4.0.2", - "@nestjs/swagger": "7.4.0", - "@nestjs/terminus": "10.2.3", - "@nestjs/websockets": "10.4.18", + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18", + "@nestjs/jwt": "11.0.2", + "@nestjs/platform-express": "11.1.18", + "@nestjs/platform-socket.io": "11.1.18", + "@nestjs/serve-static": "5.0.4", + "@nestjs/swagger": "11.2.6", + "@nestjs/terminus": "11.1.1", + "@nestjs/websockets": "11.1.18", "@novu/application-generic": "workspace:*", "@novu/dal": "workspace:*", "@novu/shared": "workspace:*", @@ -60,9 +60,9 @@ "socket.io": "^4.7.2" }, "devDependencies": { - "@nestjs/cli": "10.4.5", - "@nestjs/schematics": "10.1.4", - "@nestjs/testing": "10.4.18", + "@nestjs/cli": "11.0.17", + "@nestjs/schematics": "11.0.10", + "@nestjs/testing": "11.1.18", "@types/chai": "^4.2.11", "@types/express": "^4.17.8", "@types/jsonwebtoken": "^8.5.9", diff --git a/apps/ws/src/bootstrap.ts b/apps/ws/src/bootstrap.ts index 092406af54b..755aa503eef 100644 --- a/apps/ws/src/bootstrap.ts +++ b/apps/ws/src/bootstrap.ts @@ -1,5 +1,6 @@ import './instrument'; import { NestFactory } from '@nestjs/core'; +import { NestExpressApplication } from '@nestjs/platform-express'; import { BullMqService, getErrorInterceptor, Logger } from '@novu/application-generic'; import helmet from 'helmet'; import { AppModule } from './app.module'; @@ -12,7 +13,10 @@ validateEnv(); export async function bootstrap() { BullMqService.haveProInstalled(); - const app = await NestFactory.create(AppModule, { bufferLogs: true }); + const app = await NestFactory.create(AppModule, { bufferLogs: true }); + + // Express v5: preserve qs-style nested query parsing (NestJS migration guide). + app.set('query parser', 'extended'); const inMemoryAdapter = new InMemoryIoAdapter(app); await inMemoryAdapter.connectToInMemoryCluster(); diff --git a/enterprise/packages/ai/package.json b/enterprise/packages/ai/package.json index f976053002e..4db2993b5f4 100644 --- a/enterprise/packages/ai/package.json +++ b/enterprise/packages/ai/package.json @@ -21,7 +21,7 @@ "@langchain/langgraph-checkpoint": "^1.0.0", "@langchain/langgraph-checkpoint-mongodb": "^1.1.6", "@langchain/openai": "^1.2.4", - "@nestjs/swagger": "7.4.0", + "@nestjs/swagger": "11.2.6", "@novu/application-generic": "workspace:*", "@novu/dal": "workspace:*", "@novu/ee-auth": "workspace:*", @@ -39,7 +39,7 @@ "zod-to-json-schema": "^3.23.3" }, "devDependencies": { - "@nestjs/testing": "10.4.18", + "@nestjs/testing": "11.1.18", "@types/chai": "^4.2.11", "@types/mocha": "^10.0.8", "@types/node": "^22.0.0", @@ -52,7 +52,7 @@ "typescript": "5.6.2" }, "peerDependencies": { - "@nestjs/common": "10.4.18", - "@nestjs/core": "10.4.18" + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18" } } diff --git a/enterprise/packages/api/package.json b/enterprise/packages/api/package.json index 7c3f23cdc9e..55725df1831 100644 --- a/enterprise/packages/api/package.json +++ b/enterprise/packages/api/package.json @@ -14,7 +14,7 @@ "dependencies": { "@novu/application-generic": "workspace:*", "@novu/dal": "workspace:*", - "@nestjs/swagger": "7.4.0", + "@nestjs/swagger": "11.2.6", "@novu/shared": "workspace:*", "@novu/stateless": "workspace:*", "@types/express": "4.17.17", @@ -23,7 +23,7 @@ "express": "^5.0.1" }, "devDependencies": { - "@nestjs/testing": "10.4.18", + "@nestjs/testing": "11.1.18", "@types/chai": "^4.2.11", "@types/mocha": "^10.0.8", "@types/node": "^22.0.0", @@ -36,7 +36,7 @@ "typescript": "5.6.2" }, "peerDependencies": { - "@nestjs/common": "10.4.18", - "@nestjs/core": "10.4.18" + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18" } } diff --git a/enterprise/packages/auth/package.json b/enterprise/packages/auth/package.json index 57e826b202f..8d97b167d47 100644 --- a/enterprise/packages/auth/package.json +++ b/enterprise/packages/auth/package.json @@ -44,11 +44,11 @@ "typescript": "5.6.2" }, "peerDependencies": { - "@nestjs/common": "10.4.18", - "@nestjs/core": "10.4.18", - "@nestjs/jwt": "10.2.0", - "@nestjs/passport": "10.0.3", - "@nestjs/swagger": "7.4.0", + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18", + "@nestjs/jwt": "11.0.2", + "@nestjs/passport": "11.0.5", + "@nestjs/swagger": "11.2.6", "passport": "0.7.0", "passport-jwt": "^4.0.0" } diff --git a/enterprise/packages/billing/package.json b/enterprise/packages/billing/package.json index a983f833613..29910db9801 100644 --- a/enterprise/packages/billing/package.json +++ b/enterprise/packages/billing/package.json @@ -43,12 +43,12 @@ "typescript": "5.6.2" }, "peerDependencies": { - "@nestjs/common": "10.4.18", - "@nestjs/core": "10.4.18", - "@nestjs/jwt": "10.2.0", - "@nestjs/platform-express": "10.4.18", - "@nestjs/swagger": "7.4.0", - "@nestjs/throttler": "6.2.1", + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18", + "@nestjs/jwt": "11.0.2", + "@nestjs/platform-express": "11.1.18", + "@nestjs/swagger": "11.2.6", + "@nestjs/throttler": "6.5.0", "@novu/dal": "workspace:*" } } diff --git a/enterprise/packages/shared-services/package.json b/enterprise/packages/shared-services/package.json index e3970036493..745cb1330f7 100644 --- a/enterprise/packages/shared-services/package.json +++ b/enterprise/packages/shared-services/package.json @@ -3,7 +3,7 @@ "version": "2.0.5", "description": "Generic service used inside of Novu's different services - can not be depended on application-generic", "main": "build/main/index.js", - "typings": "build/main/index.d.ts", + "types": "build/main/index.d.ts", "module": "build/module/index.js", "private": true, "repository": { @@ -30,6 +30,7 @@ }, "dependencies": { "@handlebars/parser": "^2.1.0", + "@novu/dal": "workspace:*", "@novu/shared": "workspace:*" }, "devDependencies": { @@ -41,7 +42,6 @@ "typescript": "5.6.2" }, "peerDependencies": { - "@nestjs/common": "10.4.18", - "@novu/dal": "workspace:*" + "@nestjs/common": "11.1.18" } } diff --git a/enterprise/packages/translation/package.json b/enterprise/packages/translation/package.json index a0a1df452e4..8d7a520a68c 100644 --- a/enterprise/packages/translation/package.json +++ b/enterprise/packages/translation/package.json @@ -43,9 +43,9 @@ "liquidjs": "^10.25.5" }, "peerDependencies": { - "@nestjs/common": "10.4.18", - "@nestjs/platform-express": "10.4.18", - "@nestjs/swagger": "7.4.0", + "@nestjs/common": "11.1.18", + "@nestjs/platform-express": "11.1.18", + "@nestjs/swagger": "11.2.6", "@novu/dal": "workspace:*" } } diff --git a/libs/application-generic/jest.config.js b/libs/application-generic/jest.config.js index 138be3f37e8..48483b9d564 100644 --- a/libs/application-generic/jest.config.js +++ b/libs/application-generic/jest.config.js @@ -4,6 +4,7 @@ module.exports = { testEnvironment: 'node', moduleNameMapper: { axios: 'axios/dist/node/axios.cjs', + '^@novu/testing$': '/../testing/src/index.ts', }, setupFiles: ['./jest.setup.js'], }; diff --git a/libs/application-generic/package.json b/libs/application-generic/package.json index 99e5cc014e8..5e805f58fe3 100644 --- a/libs/application-generic/package.json +++ b/libs/application-generic/package.json @@ -3,7 +3,7 @@ "version": "2.0.14", "description": "Generic backend code used inside of Novu's different services", "main": "build/main/index.js", - "typings": "build/main/index.d.ts", + "types": "build/main/index.d.ts", "module": "build/module/index.js", "private": true, "license": "MIT", @@ -25,13 +25,13 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@nestjs/common": "10.4.18", - "@nestjs/core": "10.4.18", - "@nestjs/jwt": "10.2.0", - "@nestjs/passport": "10.0.3", - "@nestjs/swagger": "7.4.0", - "@nestjs/terminus": "10.2.3", - "@nestjs/testing": "10.4.18", + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18", + "@nestjs/jwt": "11.0.2", + "@nestjs/passport": "11.0.5", + "@nestjs/swagger": "11.2.6", + "@nestjs/terminus": "11.1.1", + "@nestjs/testing": "11.1.18", "jsonwebtoken": "9.0.3", "newrelic": "^13.12.0", "reflect-metadata": "0.2.2" @@ -51,7 +51,6 @@ "@novu/providers": "workspace:*", "@novu/shared": "workspace:*", "@novu/stateless": "workspace:*", - "@novu/testing": "workspace:*", "@opentelemetry/api": "1.9.0", "@opentelemetry/auto-instrumentations-node": "0.70.0", "@opentelemetry/context-async-hooks": "2.5.0", diff --git a/libs/application-generic/src/decorators/context-payload.decorator.ts b/libs/application-generic/src/decorators/context-payload.decorator.ts index 84aa7c25312..54fcc7856e9 100644 --- a/libs/application-generic/src/decorators/context-payload.decorator.ts +++ b/libs/application-generic/src/decorators/context-payload.decorator.ts @@ -1,6 +1,5 @@ import { applyDecorators } from '@nestjs/common'; -import { ApiPropertyOptional } from '@nestjs/swagger'; -import { ApiPropertyOptions } from '@nestjs/swagger/dist/decorators/api-property.decorator'; +import { ApiPropertyOptional, type ApiPropertyOptions } from '@nestjs/swagger'; const CONTEXT_PAYLOAD_SWAGGER_OPTIONS: ApiPropertyOptions = { type: 'object', @@ -27,13 +26,13 @@ const CONTEXT_PAYLOAD_SWAGGER_OPTIONS: ApiPropertyOptions = { }, ], }, -}; +} as ApiPropertyOptions; export function ApiContextPayload(overrides?: Partial) { return applyDecorators( ApiPropertyOptional({ ...CONTEXT_PAYLOAD_SWAGGER_OPTIONS, ...overrides, - }) + } as ApiPropertyOptions) ); } diff --git a/libs/application-generic/src/decorators/user-session.decorator.ts b/libs/application-generic/src/decorators/user-session.decorator.ts index e03d803c302..4e58d8a3085 100644 --- a/libs/application-generic/src/decorators/user-session.decorator.ts +++ b/libs/application-generic/src/decorators/user-session.decorator.ts @@ -2,7 +2,7 @@ import { createParamDecorator, InternalServerErrorException, Logger } from '@nes export const UserSession = createParamDecorator((data, ctx) => { let req; - if (ctx.getType() === 'graphql') { + if (ctx.getType<'http' | 'ws' | 'rpc' | 'graphql'>() === 'graphql') { req = ctx.getArgs()[2].req; } else { req = ctx.switchToHttp().getRequest(); diff --git a/libs/application-generic/src/dtos/layout/create-layout.dto.ts b/libs/application-generic/src/dtos/layout/create-layout.dto.ts index a42e4e55ac1..fc1524b2182 100644 --- a/libs/application-generic/src/dtos/layout/create-layout.dto.ts +++ b/libs/application-generic/src/dtos/layout/create-layout.dto.ts @@ -20,12 +20,10 @@ export class CreateLayoutDto { @IsBoolean() isTranslationEnabled?: boolean; - @ApiProperty({ + @ApiPropertyOptional({ description: 'Source of layout creation', enum: LayoutCreationSourceEnum, enumName: 'LayoutCreationSourceEnum', - required: false, - default: LayoutCreationSourceEnum.DASHBOARD, }) @IsOptional() @IsEnum(LayoutCreationSourceEnum) diff --git a/libs/application-generic/src/dtos/step-filter-dto.ts b/libs/application-generic/src/dtos/step-filter-dto.ts index e9a940b1f17..cb6bd49a3fa 100644 --- a/libs/application-generic/src/dtos/step-filter-dto.ts +++ b/libs/application-generic/src/dtos/step-filter-dto.ts @@ -1,4 +1,4 @@ -import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiProperty, ApiPropertyOptional, type ApiPropertyOptions } from '@nestjs/swagger'; import { BuilderFieldOperator, BuilderFieldType, @@ -137,6 +137,6 @@ export class StepFilterDto { PreviousStepFilterPartDto, TenantFilterPartDto, ], - }) + } as unknown as ApiPropertyOptions) children: FilterPartsDto[]; } diff --git a/libs/application-generic/src/dtos/ui-schema-property.dto.ts b/libs/application-generic/src/dtos/ui-schema-property.dto.ts index 9449e9d5c11..a8c066a6f67 100644 --- a/libs/application-generic/src/dtos/ui-schema-property.dto.ts +++ b/libs/application-generic/src/dtos/ui-schema-property.dto.ts @@ -38,7 +38,7 @@ export class UiSchemaProperty { @ApiProperty({ description: 'Component type for the UI Schema Property', - enum: [...Object.values(UiComponentEnum)], + enum: UiComponentEnum, enumName: 'UiComponentEnum', }) @IsEnum(UiComponentEnum) diff --git a/libs/application-generic/src/dtos/workflow/generate-preview-response.dto.ts b/libs/application-generic/src/dtos/workflow/generate-preview-response.dto.ts index 737ca888251..2eaf5aa6af2 100644 --- a/libs/application-generic/src/dtos/workflow/generate-preview-response.dto.ts +++ b/libs/application-generic/src/dtos/workflow/generate-preview-response.dto.ts @@ -1,4 +1,4 @@ -import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger'; +import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath, type ApiPropertyOptions } from '@nestjs/swagger'; import { ActionTypeEnum, ChannelTypeEnum } from '@novu/shared'; import { Type } from 'class-transformer'; import { IsEnum, IsNumber, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator'; @@ -126,7 +126,7 @@ export class DigestRegularOutput { @ApiPropertyOptional({ description: 'Look back window configuration', type: 'object', - }) + } as ApiPropertyOptions) @IsOptional() @ValidateNested() lookBackWindow?: { @@ -316,7 +316,7 @@ export class GeneratePreviewResponseDto { }, }, ], - }) + } as ApiPropertyOptions) result: | { type: ChannelTypeEnum.EMAIL; diff --git a/libs/application-generic/src/webhooks/dtos/webhook-payload.dto.ts b/libs/application-generic/src/webhooks/dtos/webhook-payload.dto.ts index 0fd5676669e..e167f23421b 100644 --- a/libs/application-generic/src/webhooks/dtos/webhook-payload.dto.ts +++ b/libs/application-generic/src/webhooks/dtos/webhook-payload.dto.ts @@ -1,4 +1,4 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty, type ApiPropertyOptions } from '@nestjs/swagger'; import { WebhookEventEnum, WebhookObjectTypeEnum } from '@novu/shared'; export class WrapperDto { @@ -17,7 +17,7 @@ export class WrapperDto { @ApiProperty({ description: 'The payload of the webhook', type: 'object', - }) + } as ApiPropertyOptions) data: T; @ApiProperty({ diff --git a/libs/application-generic/tsconfig.json b/libs/application-generic/tsconfig.json index e417b7aaf4c..d5465f1e4ea 100644 --- a/libs/application-generic/tsconfig.json +++ b/libs/application-generic/tsconfig.json @@ -14,5 +14,5 @@ "typeRoots": ["./node_modules/@types", "../../node_modules/@types"] }, "include": ["src/**/*.ts"], - "exclude": ["node_modules/**"] + "exclude": ["node_modules/**", "**/*.spec.ts"] } diff --git a/libs/application-generic/tsconfig.module.json b/libs/application-generic/tsconfig.module.json index 82d60a2e6d7..483bd6b1225 100644 --- a/libs/application-generic/tsconfig.module.json +++ b/libs/application-generic/tsconfig.module.json @@ -9,5 +9,5 @@ "types": ["jest", "node"], "typeRoots": ["./node_modules/@types", "../../node_modules/@types"] }, - "exclude": ["node_modules/**"] + "exclude": ["node_modules/**", "**/*.spec.ts"] } diff --git a/libs/dal/package.json b/libs/dal/package.json index 16ee12823fc..15ffc1c1f12 100644 --- a/libs/dal/package.json +++ b/libs/dal/package.json @@ -21,7 +21,7 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "peerDependencies": { - "@nestjs/common": "10.4.18" + "@nestjs/common": "11.1.18" }, "dependencies": { "@aws-sdk/client-s3": "^3.382.0", diff --git a/libs/internal-sdk/src/funcs/subscribersNotificationsFeed.ts b/libs/internal-sdk/src/funcs/subscribersNotificationsFeed.ts index 162c78f5ead..34f0fb2a5f2 100644 --- a/libs/internal-sdk/src/funcs/subscribersNotificationsFeed.ts +++ b/libs/internal-sdk/src/funcs/subscribersNotificationsFeed.ts @@ -106,6 +106,7 @@ async function $do( ); const query = encodeFormQuery({ + "feedIdentifier": payload.feedIdentifier, "limit": payload.limit, "page": payload.page, "payload": payload.payload, diff --git a/libs/internal-sdk/src/funcs/subscribersNotificationsList.ts b/libs/internal-sdk/src/funcs/subscribersNotificationsList.ts index 724e497b84d..dc47a5d87dd 100644 --- a/libs/internal-sdk/src/funcs/subscribersNotificationsList.ts +++ b/libs/internal-sdk/src/funcs/subscribersNotificationsList.ts @@ -119,6 +119,7 @@ async function $do( "seen": payload.seen, "severity": payload.severity, "snoozed": payload.snoozed, + "tags": payload.tags, }); const headers = new Headers(compactMap({ diff --git a/libs/internal-sdk/src/funcs/subscribersNotificationsUnseenCount.ts b/libs/internal-sdk/src/funcs/subscribersNotificationsUnseenCount.ts index 60b774388ca..74d58c69ad9 100644 --- a/libs/internal-sdk/src/funcs/subscribersNotificationsUnseenCount.ts +++ b/libs/internal-sdk/src/funcs/subscribersNotificationsUnseenCount.ts @@ -105,6 +105,7 @@ async function $do( )(pathParams); const query = encodeFormQuery({ + "feedId": payload.feedId, "limit": payload.limit, "seen": payload.seen, }); diff --git a/libs/internal-sdk/src/lib/config.ts b/libs/internal-sdk/src/lib/config.ts index b259faaf25f..41ee01b91ae 100644 --- a/libs/internal-sdk/src/lib/config.ts +++ b/libs/internal-sdk/src/lib/config.ts @@ -67,6 +67,6 @@ export const SDK_METADATA = { language: "typescript", openapiDocVersion: "3.14.0", sdkVersion: "0.1.21", - genVersion: "2.879.10", - userAgent: "speakeasy-sdk/typescript 0.1.21 2.879.10 3.14.0 @novu/api", + genVersion: "2.879.11", + userAgent: "speakeasy-sdk/typescript 0.1.21 2.879.11 3.14.0 @novu/api", } as const; diff --git a/libs/internal-sdk/src/models/components/activitynotificationexecutiondetailresponsedto.ts b/libs/internal-sdk/src/models/components/activitynotificationexecutiondetailresponsedto.ts index 6d99ecb8d37..39ec58a5d98 100644 --- a/libs/internal-sdk/src/models/components/activitynotificationexecutiondetailresponsedto.ts +++ b/libs/internal-sdk/src/models/components/activitynotificationexecutiondetailresponsedto.ts @@ -46,7 +46,7 @@ export type ActivityNotificationExecutionDetailResponseDto = { */ isTest: boolean; /** - * Provider ID of the job + * Provider ID of the execution */ providerId?: ProvidersIdEnum | undefined; /** diff --git a/libs/internal-sdk/src/models/components/activitynotificationresponsedto.ts b/libs/internal-sdk/src/models/components/activitynotificationresponsedto.ts index d6084c810d4..90d339b11d5 100644 --- a/libs/internal-sdk/src/models/components/activitynotificationresponsedto.ts +++ b/libs/internal-sdk/src/models/components/activitynotificationresponsedto.ts @@ -65,6 +65,9 @@ export type ActivityNotificationResponseDto = { * Last updated time of the notification */ updatedAt?: string | undefined; + /** + * Channels of the notification + */ channels?: Array | undefined; /** * Subscriber of the notification @@ -99,7 +102,7 @@ export type ActivityNotificationResponseDto = { */ topics?: Array | undefined; /** - * Severity of the workflow + * Severity of the notification */ severity?: SeverityLevelEnum | undefined; /** diff --git a/libs/internal-sdk/src/models/components/activitynotificationtemplateresponsedto.ts b/libs/internal-sdk/src/models/components/activitynotificationtemplateresponsedto.ts index 86258308287..67132d51d75 100644 --- a/libs/internal-sdk/src/models/components/activitynotificationtemplateresponsedto.ts +++ b/libs/internal-sdk/src/models/components/activitynotificationtemplateresponsedto.ts @@ -26,7 +26,7 @@ export type ActivityNotificationTemplateResponseDto = { */ name: string; /** - * Origin of the layout + * Origin of the workflow */ origin?: ResourceOriginEnum | undefined; /** diff --git a/libs/internal-sdk/src/models/components/buttontypeenum.ts b/libs/internal-sdk/src/models/components/buttontypeenum.ts index fe8048ccaca..5ff211a60a0 100644 --- a/libs/internal-sdk/src/models/components/buttontypeenum.ts +++ b/libs/internal-sdk/src/models/components/buttontypeenum.ts @@ -6,14 +6,14 @@ import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; /** - * Type of button for the action result + * Type of the button */ export const ButtonTypeEnum = { Primary: "primary", Secondary: "secondary", } as const; /** - * Type of button for the action result + * Type of the button */ export type ButtonTypeEnum = ClosedEnum; diff --git a/libs/internal-sdk/src/models/components/channeltypeenum.ts b/libs/internal-sdk/src/models/components/channeltypeenum.ts index 13baf40b84e..e288b12c949 100644 --- a/libs/internal-sdk/src/models/components/channeltypeenum.ts +++ b/libs/internal-sdk/src/models/components/channeltypeenum.ts @@ -5,9 +5,6 @@ import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; -/** - * Channel type through which the message is sent - */ export const ChannelTypeEnum = { InApp: "in_app", Email: "email", @@ -15,9 +12,6 @@ export const ChannelTypeEnum = { Chat: "chat", Push: "push", } as const; -/** - * Channel type through which the message is sent - */ export type ChannelTypeEnum = ClosedEnum; /** @internal */ diff --git a/libs/internal-sdk/src/models/components/chatstepresponsedto.ts b/libs/internal-sdk/src/models/components/chatstepresponsedto.ts index 45085b01839..f05abd2e83a 100644 --- a/libs/internal-sdk/src/models/components/chatstepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/chatstepresponsedto.ts @@ -69,7 +69,7 @@ export type ChatStepResponseDto = { */ type: "chat"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/createlayoutdto.ts b/libs/internal-sdk/src/models/components/createlayoutdto.ts index 30557f220f6..48489a50b7e 100644 --- a/libs/internal-sdk/src/models/components/createlayoutdto.ts +++ b/libs/internal-sdk/src/models/components/createlayoutdto.ts @@ -33,7 +33,7 @@ export type CreateLayoutDto$Outbound = { layoutId: string; name: string; isTranslationEnabled: boolean; - __source: string; + __source?: string | undefined; }; /** @internal */ @@ -45,7 +45,7 @@ export const CreateLayoutDto$outboundSchema: z.ZodType< layoutId: z.string(), name: z.string(), isTranslationEnabled: z.boolean().default(false), - source: LayoutCreationSourceEnum$outboundSchema.default("dashboard"), + source: LayoutCreationSourceEnum$outboundSchema.optional(), }).transform((v) => { return remap$(v, { source: "__source", diff --git a/libs/internal-sdk/src/models/components/createworkflowdto.ts b/libs/internal-sdk/src/models/components/createworkflowdto.ts index c8efe22517c..aa5731dfce9 100644 --- a/libs/internal-sdk/src/models/components/createworkflowdto.ts +++ b/libs/internal-sdk/src/models/components/createworkflowdto.ts @@ -199,7 +199,7 @@ export type CreateWorkflowDto$Outbound = { | CustomStepUpsertDto$Outbound | HttpRequestStepUpsertDto$Outbound >; - __source: string; + __source?: string | undefined; preferences?: PreferencesRequestDto$Outbound | undefined; severity?: string | undefined; }; @@ -232,7 +232,7 @@ export const CreateWorkflowDto$outboundSchema: z.ZodType< HttpRequestStepUpsertDto$outboundSchema, ]), ), - source: WorkflowCreationSourceEnum$outboundSchema.default("editor"), + source: WorkflowCreationSourceEnum$outboundSchema.optional(), preferences: PreferencesRequestDto$outboundSchema.optional(), severity: SeverityLevelEnum$outboundSchema.optional(), }).transform((v) => { diff --git a/libs/internal-sdk/src/models/components/customstepresponsedto.ts b/libs/internal-sdk/src/models/components/customstepresponsedto.ts index 59cdbf966e6..00d3e03e5ef 100644 --- a/libs/internal-sdk/src/models/components/customstepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/customstepresponsedto.ts @@ -65,7 +65,7 @@ export type CustomStepResponseDto = { */ type: "custom"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/delaycontroldto.ts b/libs/internal-sdk/src/models/components/delaycontroldto.ts index 1383a6d9e85..dbcc24a9ba4 100644 --- a/libs/internal-sdk/src/models/components/delaycontroldto.ts +++ b/libs/internal-sdk/src/models/components/delaycontroldto.ts @@ -11,14 +11,14 @@ import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Type of the delay. Currently only 'regular' is supported by the schema. */ -export const Type = { +export const DelayControlDtoType = { Regular: "regular", Timed: "timed", } as const; /** * Type of the delay. Currently only 'regular' is supported by the schema. */ -export type Type = ClosedEnum; +export type DelayControlDtoType = ClosedEnum; /** * Unit of time for the delay amount. @@ -44,7 +44,7 @@ export type DelayControlDto = { /** * Type of the delay. Currently only 'regular' is supported by the schema. */ - type?: Type | undefined; + type?: DelayControlDtoType | undefined; /** * Amount of time to delay. */ @@ -60,12 +60,13 @@ export type DelayControlDto = { }; /** @internal */ -export const Type$inboundSchema: z.ZodNativeEnum = z.nativeEnum( - Type, -); +export const DelayControlDtoType$inboundSchema: z.ZodNativeEnum< + typeof DelayControlDtoType +> = z.nativeEnum(DelayControlDtoType); /** @internal */ -export const Type$outboundSchema: z.ZodNativeEnum = - Type$inboundSchema; +export const DelayControlDtoType$outboundSchema: z.ZodNativeEnum< + typeof DelayControlDtoType +> = DelayControlDtoType$inboundSchema; /** @internal */ export const Unit$inboundSchema: z.ZodNativeEnum = z.nativeEnum( @@ -82,7 +83,7 @@ export const DelayControlDto$inboundSchema: z.ZodType< unknown > = z.object({ skip: z.record(z.any()).optional(), - type: Type$inboundSchema.default("regular"), + type: DelayControlDtoType$inboundSchema.default("regular"), amount: z.number().optional(), unit: Unit$inboundSchema.optional(), cron: z.string().optional(), @@ -103,7 +104,7 @@ export const DelayControlDto$outboundSchema: z.ZodType< DelayControlDto > = z.object({ skip: z.record(z.any()).optional(), - type: Type$outboundSchema.default("regular"), + type: DelayControlDtoType$outboundSchema.default("regular"), amount: z.number().optional(), unit: Unit$outboundSchema.optional(), cron: z.string().optional(), diff --git a/libs/internal-sdk/src/models/components/delaystepresponsedto.ts b/libs/internal-sdk/src/models/components/delaystepresponsedto.ts index 404a19a9ada..6e80ab376d7 100644 --- a/libs/internal-sdk/src/models/components/delaystepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/delaystepresponsedto.ts @@ -114,7 +114,7 @@ export type DelayStepResponseDto = { */ type: "delay"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/digeststepresponsedto.ts b/libs/internal-sdk/src/models/components/digeststepresponsedto.ts index 1cf4a1c8a8b..dbc447cc889 100644 --- a/libs/internal-sdk/src/models/components/digeststepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/digeststepresponsedto.ts @@ -126,7 +126,7 @@ export type DigestStepResponseDto = { */ type: "digest"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/emailstepresponsedto.ts b/libs/internal-sdk/src/models/components/emailstepresponsedto.ts index 13a59786b45..f87d162b801 100644 --- a/libs/internal-sdk/src/models/components/emailstepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/emailstepresponsedto.ts @@ -100,7 +100,7 @@ export type EmailStepResponseDto = { */ type: "email"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/failedworkflowdto.ts b/libs/internal-sdk/src/models/components/failedworkflowdto.ts index 43f676716a9..3002e6d9827 100644 --- a/libs/internal-sdk/src/models/components/failedworkflowdto.ts +++ b/libs/internal-sdk/src/models/components/failedworkflowdto.ts @@ -13,7 +13,7 @@ import { export type FailedWorkflowDto = { /** - * Type of the layout + * Resource type */ resourceType: ResourceTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/getpreferencesresponsedto.ts b/libs/internal-sdk/src/models/components/getpreferencesresponsedto.ts index 3382149a033..3eba7a1679e 100644 --- a/libs/internal-sdk/src/models/components/getpreferencesresponsedto.ts +++ b/libs/internal-sdk/src/models/components/getpreferencesresponsedto.ts @@ -53,7 +53,7 @@ export type Workflow = { */ data?: GetPreferencesResponseDtoData | undefined; /** - * Severity of the workflow + * Severity level of the workflow */ severity: SeverityLevelEnum; }; diff --git a/libs/internal-sdk/src/models/components/httprequeststepresponsedto.ts b/libs/internal-sdk/src/models/components/httprequeststepresponsedto.ts index 6ac3c8c2de9..6c2757493ad 100644 --- a/libs/internal-sdk/src/models/components/httprequeststepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/httprequeststepresponsedto.ts @@ -97,7 +97,7 @@ export type HttpRequestStepResponseDto = { */ type: "http_request"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/inappstepresponsedto.ts b/libs/internal-sdk/src/models/components/inappstepresponsedto.ts index 27634867e98..0ce8df12ebb 100644 --- a/libs/internal-sdk/src/models/components/inappstepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/inappstepresponsedto.ts @@ -99,7 +99,7 @@ export type InAppStepResponseDto = { */ type: "in_app"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/inboxnotificationdto.ts b/libs/internal-sdk/src/models/components/inboxnotificationdto.ts index 672f333f414..d08af67fa10 100644 --- a/libs/internal-sdk/src/models/components/inboxnotificationdto.ts +++ b/libs/internal-sdk/src/models/components/inboxnotificationdto.ts @@ -102,7 +102,7 @@ export type InboxNotificationDto = { */ secondaryAction?: InboxActionDto | undefined; /** - * Channel type through which the message is sent + * Channel type of the notification */ channelType: ChannelTypeEnum; /** @@ -122,7 +122,7 @@ export type InboxNotificationDto = { */ workflow?: NotificationWorkflowDto | undefined; /** - * Severity of the workflow + * Severity level of the notification */ severity: SeverityLevelEnum; }; diff --git a/libs/internal-sdk/src/models/components/index.ts b/libs/internal-sdk/src/models/components/index.ts index 2e230160034..480c370def5 100644 --- a/libs/internal-sdk/src/models/components/index.ts +++ b/libs/internal-sdk/src/models/components/index.ts @@ -204,6 +204,7 @@ export * from "./notificationtrigger.js"; export * from "./notificationtriggerdto.js"; export * from "./notificationtriggervariable.js"; export * from "./notificationworkflowdto.js"; +export * from "./object.js"; export * from "./ordinalenum.js"; export * from "./ordinalvalueenum.js"; export * from "./patchpreferencechannelsdto.js"; @@ -301,7 +302,6 @@ export * from "./triggereventrequestdto.js"; export * from "./triggereventresponsedto.js"; export * from "./triggereventtoallrequestdto.js"; export * from "./triggerrecipientstypeenum.js"; -export * from "./uicomponentenum.js"; export * from "./uischema.js"; export * from "./uischemagroupenum.js"; export * from "./uischemaproperty.js"; diff --git a/libs/internal-sdk/src/models/components/messagebutton.ts b/libs/internal-sdk/src/models/components/messagebutton.ts index c250621ffb0..686193dcc48 100644 --- a/libs/internal-sdk/src/models/components/messagebutton.ts +++ b/libs/internal-sdk/src/models/components/messagebutton.ts @@ -13,7 +13,7 @@ import { export type MessageButton = { /** - * Type of button for the action result + * Type of the button */ type: ButtonTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/notificationfeeditemdto.ts b/libs/internal-sdk/src/models/components/notificationfeeditemdto.ts index aa0968c03a1..9c36bd9841e 100644 --- a/libs/internal-sdk/src/models/components/notificationfeeditemdto.ts +++ b/libs/internal-sdk/src/models/components/notificationfeeditemdto.ts @@ -111,7 +111,7 @@ export type NotificationFeedItemDto = { */ subject?: string | null | undefined; /** - * Channel type through which the message is sent + * The channel through which the notification is sent. */ channel: ChannelTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/notificationworkflowdto.ts b/libs/internal-sdk/src/models/components/notificationworkflowdto.ts index 0eecfb01434..1cc11e6a96d 100644 --- a/libs/internal-sdk/src/models/components/notificationworkflowdto.ts +++ b/libs/internal-sdk/src/models/components/notificationworkflowdto.ts @@ -37,7 +37,7 @@ export type NotificationWorkflowDto = { */ data?: { [k: string]: any } | undefined; /** - * Severity of the workflow + * Severity level of the workflow */ severity: SeverityLevelEnum; }; diff --git a/libs/internal-sdk/src/models/components/object.ts b/libs/internal-sdk/src/models/components/object.ts new file mode 100644 index 00000000000..21a1c66fab2 --- /dev/null +++ b/libs/internal-sdk/src/models/components/object.ts @@ -0,0 +1,21 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v3"; + +export type ObjectT = {}; + +/** @internal */ +export type ObjectT$Outbound = {}; + +/** @internal */ +export const ObjectT$outboundSchema: z.ZodType< + ObjectT$Outbound, + z.ZodTypeDef, + ObjectT +> = z.object({}); + +export function objectToJSON(objectT: ObjectT): string { + return JSON.stringify(ObjectT$outboundSchema.parse(objectT)); +} diff --git a/libs/internal-sdk/src/models/components/providersidenum.ts b/libs/internal-sdk/src/models/components/providersidenum.ts index 69e0ea7b8bc..1c377425156 100644 --- a/libs/internal-sdk/src/models/components/providersidenum.ts +++ b/libs/internal-sdk/src/models/components/providersidenum.ts @@ -6,7 +6,7 @@ import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; /** - * Provider ID of the job + * Provider ID of the execution */ export const ProvidersIdEnum = { Emailjs: "emailjs", @@ -90,7 +90,7 @@ export const ProvidersIdEnum = { NovuSlack: "novu-slack", } as const; /** - * Provider ID of the job + * Provider ID of the execution */ export type ProvidersIdEnum = ClosedEnum; diff --git a/libs/internal-sdk/src/models/components/pushstepresponsedto.ts b/libs/internal-sdk/src/models/components/pushstepresponsedto.ts index b3826898557..a208c351f66 100644 --- a/libs/internal-sdk/src/models/components/pushstepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/pushstepresponsedto.ts @@ -73,7 +73,7 @@ export type PushStepResponseDto = { */ type: "push"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/resourcedependencydto.ts b/libs/internal-sdk/src/models/components/resourcedependencydto.ts index c756cc02682..145de2419d7 100644 --- a/libs/internal-sdk/src/models/components/resourcedependencydto.ts +++ b/libs/internal-sdk/src/models/components/resourcedependencydto.ts @@ -17,7 +17,7 @@ import { export type ResourceDependencyDto = { /** - * Type of the layout + * Type of dependent resource */ resourceType: ResourceTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/resourcediffdto.ts b/libs/internal-sdk/src/models/components/resourcediffdto.ts index cd89734417f..b6f583b0d13 100644 --- a/libs/internal-sdk/src/models/components/resourcediffdto.ts +++ b/libs/internal-sdk/src/models/components/resourcediffdto.ts @@ -128,7 +128,7 @@ export type ResourceDiffDto = { */ targetResource?: ResourceDiffDtoTargetResource | null | undefined; /** - * Type of the layout + * Type of resource */ resourceType: ResourceTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/resourcediffresultdto.ts b/libs/internal-sdk/src/models/components/resourcediffresultdto.ts index 7879ac8b02a..6b3f19e70de 100644 --- a/libs/internal-sdk/src/models/components/resourcediffresultdto.ts +++ b/libs/internal-sdk/src/models/components/resourcediffresultdto.ts @@ -114,7 +114,7 @@ export type TargetResource = { export type ResourceDiffResultDto = { /** - * Type of the layout + * Type of resource being compared */ resourceType: ResourceTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/resourceoriginenum.ts b/libs/internal-sdk/src/models/components/resourceoriginenum.ts index 3516a1698f3..649fdf7bc44 100644 --- a/libs/internal-sdk/src/models/components/resourceoriginenum.ts +++ b/libs/internal-sdk/src/models/components/resourceoriginenum.ts @@ -6,7 +6,7 @@ import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; /** - * Origin of the layout + * Origin of the workflow */ export const ResourceOriginEnum = { NovuCloud: "novu-cloud", @@ -14,7 +14,7 @@ export const ResourceOriginEnum = { External: "external", } as const; /** - * Origin of the layout + * Origin of the workflow */ export type ResourceOriginEnum = ClosedEnum; diff --git a/libs/internal-sdk/src/models/components/resourcetopublishdto.ts b/libs/internal-sdk/src/models/components/resourcetopublishdto.ts index 68a8f34df50..4c66a105930 100644 --- a/libs/internal-sdk/src/models/components/resourcetopublishdto.ts +++ b/libs/internal-sdk/src/models/components/resourcetopublishdto.ts @@ -10,7 +10,7 @@ import { export type ResourceToPublishDto = { /** - * Type of the layout + * Type of resource to publish */ resourceType: ResourceTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/severitylevelenum.ts b/libs/internal-sdk/src/models/components/severitylevelenum.ts index cfba13253ac..36b640fe26e 100644 --- a/libs/internal-sdk/src/models/components/severitylevelenum.ts +++ b/libs/internal-sdk/src/models/components/severitylevelenum.ts @@ -6,7 +6,7 @@ import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; /** - * Severity of the workflow + * Override the severity of the workflow */ export const SeverityLevelEnum = { High: "high", @@ -15,7 +15,7 @@ export const SeverityLevelEnum = { None: "none", } as const; /** - * Severity of the workflow + * Override the severity of the workflow */ export type SeverityLevelEnum = ClosedEnum; diff --git a/libs/internal-sdk/src/models/components/skippedworkflowdto.ts b/libs/internal-sdk/src/models/components/skippedworkflowdto.ts index 768418702f1..b49b6b06901 100644 --- a/libs/internal-sdk/src/models/components/skippedworkflowdto.ts +++ b/libs/internal-sdk/src/models/components/skippedworkflowdto.ts @@ -13,7 +13,7 @@ import { export type SkippedWorkflowDto = { /** - * Type of the layout + * Resource type */ resourceType: ResourceTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/smsstepresponsedto.ts b/libs/internal-sdk/src/models/components/smsstepresponsedto.ts index e299d653371..1bed780c62f 100644 --- a/libs/internal-sdk/src/models/components/smsstepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/smsstepresponsedto.ts @@ -69,7 +69,7 @@ export type SmsStepResponseDto = { */ type: "sms"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/stepresponsedto.ts b/libs/internal-sdk/src/models/components/stepresponsedto.ts index d655272ccd4..1f47a835a23 100644 --- a/libs/internal-sdk/src/models/components/stepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/stepresponsedto.ts @@ -51,7 +51,7 @@ export type StepResponseDto = { */ type: string; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/subscriberpreferenceoverridedto.ts b/libs/internal-sdk/src/models/components/subscriberpreferenceoverridedto.ts index 2a704d7a3c4..f8847e1974e 100644 --- a/libs/internal-sdk/src/models/components/subscriberpreferenceoverridedto.ts +++ b/libs/internal-sdk/src/models/components/subscriberpreferenceoverridedto.ts @@ -17,7 +17,7 @@ import { export type SubscriberPreferenceOverrideDto = { /** - * Channel type through which the message is sent + * The channel type which is overridden */ channel: ChannelTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/subscriptionpreferencedto.ts b/libs/internal-sdk/src/models/components/subscriptionpreferencedto.ts index 8b1d8b7b886..b773b20eab1 100644 --- a/libs/internal-sdk/src/models/components/subscriptionpreferencedto.ts +++ b/libs/internal-sdk/src/models/components/subscriptionpreferencedto.ts @@ -45,7 +45,7 @@ export type SubscriptionPreferenceDtoWorkflow = { */ data?: SubscriptionPreferenceDtoData | undefined; /** - * Severity of the workflow + * Severity level of the workflow */ severity: SeverityLevelEnum; }; diff --git a/libs/internal-sdk/src/models/components/syncedworkflowdto.ts b/libs/internal-sdk/src/models/components/syncedworkflowdto.ts index 1596348f33c..bf14f75edd8 100644 --- a/libs/internal-sdk/src/models/components/syncedworkflowdto.ts +++ b/libs/internal-sdk/src/models/components/syncedworkflowdto.ts @@ -17,7 +17,7 @@ import { export type SyncedWorkflowDto = { /** - * Type of the layout + * Resource type */ resourceType: ResourceTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/syncresultdto.ts b/libs/internal-sdk/src/models/components/syncresultdto.ts index 52872fc3e03..68e846a0758 100644 --- a/libs/internal-sdk/src/models/components/syncresultdto.ts +++ b/libs/internal-sdk/src/models/components/syncresultdto.ts @@ -25,7 +25,7 @@ import { export type SyncResultDto = { /** - * Type of the layout + * Resource type that was synced */ resourceType: ResourceTypeEnum; /** diff --git a/libs/internal-sdk/src/models/components/throttlestepresponsedto.ts b/libs/internal-sdk/src/models/components/throttlestepresponsedto.ts index deb7797b53d..c4bf94f8884 100644 --- a/libs/internal-sdk/src/models/components/throttlestepresponsedto.ts +++ b/libs/internal-sdk/src/models/components/throttlestepresponsedto.ts @@ -119,7 +119,7 @@ export type ThrottleStepResponseDto = { */ type: "throttle"; /** - * Origin of the layout + * Origin of the step */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/triggereventrequestdto.ts b/libs/internal-sdk/src/models/components/triggereventrequestdto.ts index 528c6fda252..1070d648c2f 100644 --- a/libs/internal-sdk/src/models/components/triggereventrequestdto.ts +++ b/libs/internal-sdk/src/models/components/triggereventrequestdto.ts @@ -91,7 +91,7 @@ export type Overrides = { */ layoutIdentifier?: string | undefined; /** - * Severity of the workflow + * Override the severity of the workflow */ severity?: SeverityLevelEnum | undefined; }; diff --git a/libs/internal-sdk/src/models/components/triggereventtoallrequestdto.ts b/libs/internal-sdk/src/models/components/triggereventtoallrequestdto.ts index bb67cd272f7..458330875af 100644 --- a/libs/internal-sdk/src/models/components/triggereventtoallrequestdto.ts +++ b/libs/internal-sdk/src/models/components/triggereventtoallrequestdto.ts @@ -86,7 +86,7 @@ export type TriggerEventToAllRequestDtoOverrides = { */ layoutIdentifier?: string | undefined; /** - * Severity of the workflow + * Override the severity of the workflow */ severity?: SeverityLevelEnum | undefined; additionalProperties?: { [k: string]: { [k: string]: any } } | undefined; diff --git a/libs/internal-sdk/src/models/components/uicomponentenum.ts b/libs/internal-sdk/src/models/components/uicomponentenum.ts deleted file mode 100644 index 9846b979fc0..00000000000 --- a/libs/internal-sdk/src/models/components/uicomponentenum.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod/v3"; -import * as openEnums from "../../types/enums.js"; -import { OpenEnum } from "../../types/enums.js"; - -/** - * Component type for the UI Schema Property - */ -export const UiComponentEnum = { - EmailEditorSelect: "EMAIL_EDITOR_SELECT", - LayoutSelect: "LAYOUT_SELECT", - BlockEditor: "BLOCK_EDITOR", - EmailBody: "EMAIL_BODY", - TextFullLine: "TEXT_FULL_LINE", - TextInlineLabel: "TEXT_INLINE_LABEL", - InAppBody: "IN_APP_BODY", - InAppAvatar: "IN_APP_AVATAR", - InAppPrimarySubject: "IN_APP_PRIMARY_SUBJECT", - InAppButtonDropdown: "IN_APP_BUTTON_DROPDOWN", - InAppDisableSanitizationSwitch: "IN_APP_DISABLE_SANITIZATION_SWITCH", - DisableSanitizationSwitch: "DISABLE_SANITIZATION_SWITCH", - UrlTextBox: "URL_TEXT_BOX", - DigestAmount: "DIGEST_AMOUNT", - DigestUnit: "DIGEST_UNIT", - DigestType: "DIGEST_TYPE", - DigestKey: "DIGEST_KEY", - DigestCron: "DIGEST_CRON", - DelayAmount: "DELAY_AMOUNT", - DelayUnit: "DELAY_UNIT", - DelayType: "DELAY_TYPE", - DelayCron: "DELAY_CRON", - DelayDynamicKey: "DELAY_DYNAMIC_KEY", - ThrottleType: "THROTTLE_TYPE", - ThrottleWindow: "THROTTLE_WINDOW", - ThrottleUnit: "THROTTLE_UNIT", - ThrottleDynamicKey: "THROTTLE_DYNAMIC_KEY", - ThrottleThreshold: "THROTTLE_THRESHOLD", - ThrottleKey: "THROTTLE_KEY", - ExtendToSchedule: "EXTEND_TO_SCHEDULE", - SmsBody: "SMS_BODY", - ChatBody: "CHAT_BODY", - PushBody: "PUSH_BODY", - PushSubject: "PUSH_SUBJECT", - QueryEditor: "QUERY_EDITOR", - Data: "DATA", - LayoutEmail: "LAYOUT_EMAIL", - DestinationMethod: "DESTINATION_METHOD", - DestinationUrl: "DESTINATION_URL", - DestinationHeaders: "DESTINATION_HEADERS", - DestinationBody: "DESTINATION_BODY", - DestinationResponseBodySchema: "DESTINATION_RESPONSE_BODY_SCHEMA", - DestinationEnforceSchemaValidation: "DESTINATION_ENFORCE_SCHEMA_VALIDATION", - DestinationContinueOnFailure: "DESTINATION_CONTINUE_ON_FAILURE", - DestinationTimeout: "DESTINATION_TIMEOUT", -} as const; -/** - * Component type for the UI Schema Property - */ -export type UiComponentEnum = OpenEnum; - -/** @internal */ -export const UiComponentEnum$inboundSchema: z.ZodType< - UiComponentEnum, - z.ZodTypeDef, - unknown -> = openEnums.inboundSchema(UiComponentEnum); diff --git a/libs/internal-sdk/src/models/components/uischemaproperty.ts b/libs/internal-sdk/src/models/components/uischemaproperty.ts index 053496f88c0..9425ec8e81a 100644 --- a/libs/internal-sdk/src/models/components/uischemaproperty.ts +++ b/libs/internal-sdk/src/models/components/uischemaproperty.ts @@ -4,12 +4,10 @@ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; +import * as openEnums from "../../types/enums.js"; +import { OpenEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - UiComponentEnum, - UiComponentEnum$inboundSchema, -} from "./uicomponentenum.js"; export type Placeholder5 = string | number | boolean | { [k: string]: any }; @@ -23,6 +21,61 @@ export type Placeholder = | { [k: string]: any } | Array; +/** + * Component type for the UI Schema Property + */ +export const Component = { + EmailEditorSelect: "EMAIL_EDITOR_SELECT", + LayoutSelect: "LAYOUT_SELECT", + BlockEditor: "BLOCK_EDITOR", + EmailBody: "EMAIL_BODY", + TextFullLine: "TEXT_FULL_LINE", + TextInlineLabel: "TEXT_INLINE_LABEL", + InAppBody: "IN_APP_BODY", + InAppAvatar: "IN_APP_AVATAR", + InAppPrimarySubject: "IN_APP_PRIMARY_SUBJECT", + InAppButtonDropdown: "IN_APP_BUTTON_DROPDOWN", + InAppDisableSanitizationSwitch: "IN_APP_DISABLE_SANITIZATION_SWITCH", + DisableSanitizationSwitch: "DISABLE_SANITIZATION_SWITCH", + UrlTextBox: "URL_TEXT_BOX", + DigestAmount: "DIGEST_AMOUNT", + DigestUnit: "DIGEST_UNIT", + DigestType: "DIGEST_TYPE", + DigestKey: "DIGEST_KEY", + DigestCron: "DIGEST_CRON", + DelayAmount: "DELAY_AMOUNT", + DelayUnit: "DELAY_UNIT", + DelayType: "DELAY_TYPE", + DelayCron: "DELAY_CRON", + DelayDynamicKey: "DELAY_DYNAMIC_KEY", + ThrottleType: "THROTTLE_TYPE", + ThrottleWindow: "THROTTLE_WINDOW", + ThrottleUnit: "THROTTLE_UNIT", + ThrottleDynamicKey: "THROTTLE_DYNAMIC_KEY", + ThrottleThreshold: "THROTTLE_THRESHOLD", + ThrottleKey: "THROTTLE_KEY", + ExtendToSchedule: "EXTEND_TO_SCHEDULE", + SmsBody: "SMS_BODY", + ChatBody: "CHAT_BODY", + PushBody: "PUSH_BODY", + PushSubject: "PUSH_SUBJECT", + QueryEditor: "QUERY_EDITOR", + Data: "DATA", + LayoutEmail: "LAYOUT_EMAIL", + DestinationMethod: "DESTINATION_METHOD", + DestinationUrl: "DESTINATION_URL", + DestinationHeaders: "DESTINATION_HEADERS", + DestinationBody: "DESTINATION_BODY", + DestinationResponseBodySchema: "DESTINATION_RESPONSE_BODY_SCHEMA", + DestinationEnforceSchemaValidation: "DESTINATION_ENFORCE_SCHEMA_VALIDATION", + DestinationContinueOnFailure: "DESTINATION_CONTINUE_ON_FAILURE", + DestinationTimeout: "DESTINATION_TIMEOUT", +} as const; +/** + * Component type for the UI Schema Property + */ +export type Component = OpenEnum; + export type UiSchemaProperty = { /** * Placeholder for the UI Schema Property @@ -38,7 +91,7 @@ export type UiSchemaProperty = { /** * Component type for the UI Schema Property */ - component: UiComponentEnum; + component: Component; /** * Properties of the UI Schema */ @@ -85,6 +138,13 @@ export function placeholderFromJSON( ); } +/** @internal */ +export const Component$inboundSchema: z.ZodType< + Component, + z.ZodTypeDef, + unknown +> = openEnums.inboundSchema(Component); + /** @internal */ export const UiSchemaProperty$inboundSchema: z.ZodType< UiSchemaProperty, @@ -102,7 +162,7 @@ export const UiSchemaProperty$inboundSchema: z.ZodType< ), ]), ).optional(), - component: UiComponentEnum$inboundSchema, + component: Component$inboundSchema, properties: z.record(z.lazy(() => UiSchemaProperty$inboundSchema)).optional(), }); diff --git a/libs/internal-sdk/src/models/components/updateworkflowdto.ts b/libs/internal-sdk/src/models/components/updateworkflowdto.ts index 1cce1ad1972..7351f64aa71 100644 --- a/libs/internal-sdk/src/models/components/updateworkflowdto.ts +++ b/libs/internal-sdk/src/models/components/updateworkflowdto.ts @@ -125,7 +125,7 @@ export type UpdateWorkflowDto = { */ preferences: PreferencesRequestDto; /** - * Origin of the layout + * Origin of the workflow */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/workflowlistresponsedto.ts b/libs/internal-sdk/src/models/components/workflowlistresponsedto.ts index 6e401c2561d..450946fcf17 100644 --- a/libs/internal-sdk/src/models/components/workflowlistresponsedto.ts +++ b/libs/internal-sdk/src/models/components/workflowlistresponsedto.ts @@ -106,11 +106,11 @@ export type WorkflowListResponseDto = { */ slug: string; /** - * Status of the workflow + * Workflow status */ status: WorkflowStatusEnum; /** - * Origin of the layout + * Workflow origin */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/components/workflowresponsedto.ts b/libs/internal-sdk/src/models/components/workflowresponsedto.ts index 8349d152f60..8ac8dd223fa 100644 --- a/libs/internal-sdk/src/models/components/workflowresponsedto.ts +++ b/libs/internal-sdk/src/models/components/workflowresponsedto.ts @@ -205,7 +205,7 @@ export type WorkflowResponseDto = { | discriminatedUnionTypes.Unknown<"type"> >; /** - * Origin of the layout + * Origin of the workflow */ origin: ResourceOriginEnum; /** diff --git a/libs/internal-sdk/src/models/operations/messagescontrollergetmessages.ts b/libs/internal-sdk/src/models/operations/messagescontrollergetmessages.ts index 4a496a2a5d1..bcf5f470e42 100644 --- a/libs/internal-sdk/src/models/operations/messagescontrollergetmessages.ts +++ b/libs/internal-sdk/src/models/operations/messagescontrollergetmessages.ts @@ -10,9 +10,6 @@ import * as components from "../components/index.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type MessagesControllerGetMessagesRequest = { - /** - * Channel type through which the message is sent - */ channel?: components.ChannelTypeEnum | undefined; subscriberId?: string | undefined; transactionId?: Array | undefined; diff --git a/libs/internal-sdk/src/models/operations/subscriberscontrollergetsubscribernotifications.ts b/libs/internal-sdk/src/models/operations/subscriberscontrollergetsubscribernotifications.ts index 14ebb29aae8..7f6c30bca92 100644 --- a/libs/internal-sdk/src/models/operations/subscriberscontrollergetsubscribernotifications.ts +++ b/libs/internal-sdk/src/models/operations/subscriberscontrollergetsubscribernotifications.ts @@ -26,6 +26,10 @@ export type SubscribersControllerGetSubscriberNotificationsRequest = { limit?: number | undefined; after?: string | undefined; offset?: number | undefined; + /** + * Filter by workflow tags. Plain string[] is OR. Use { and: [{ or: string[] }, ...] } for AND of OR-groups (same as inbox). + */ + tags?: components.ObjectT | undefined; /** * Filter by read/unread state */ @@ -83,6 +87,7 @@ export type SubscribersControllerGetSubscriberNotificationsRequest$Outbound = { limit: number; after?: string | undefined; offset?: number | undefined; + tags?: components.ObjectT$Outbound | undefined; read?: boolean | undefined; archived?: boolean | undefined; snoozed?: boolean | undefined; @@ -106,6 +111,7 @@ export const SubscribersControllerGetSubscriberNotificationsRequest$outboundSche limit: z.number().default(10), after: z.string().optional(), offset: z.number().optional(), + tags: components.ObjectT$outboundSchema.optional(), read: z.boolean().optional(), archived: z.boolean().optional(), snoozed: z.boolean().optional(), diff --git a/libs/internal-sdk/src/models/operations/subscribersv1controllergetnotificationsfeed.ts b/libs/internal-sdk/src/models/operations/subscribersv1controllergetnotificationsfeed.ts index d563ec307aa..731a0678ef6 100644 --- a/libs/internal-sdk/src/models/operations/subscribersv1controllergetnotificationsfeed.ts +++ b/libs/internal-sdk/src/models/operations/subscribersv1controllergetnotificationsfeed.ts @@ -13,6 +13,7 @@ export type SubscribersV1ControllerGetNotificationsFeedRequest = { subscriberId: string; page?: number | undefined; limit?: number | undefined; + feedIdentifier?: components.ObjectT | undefined; read?: boolean | undefined; seen?: boolean | undefined; /** @@ -35,6 +36,7 @@ export type SubscribersV1ControllerGetNotificationsFeedRequest$Outbound = { subscriberId: string; page?: number | undefined; limit: number; + feedIdentifier?: components.ObjectT$Outbound | undefined; read?: boolean | undefined; seen?: boolean | undefined; payload?: string | undefined; @@ -51,6 +53,7 @@ export const SubscribersV1ControllerGetNotificationsFeedRequest$outboundSchema: subscriberId: z.string(), page: z.number().optional(), limit: z.number().default(10), + feedIdentifier: components.ObjectT$outboundSchema.optional(), read: z.boolean().optional(), seen: z.boolean().optional(), payload: z.string().optional(), diff --git a/libs/internal-sdk/src/models/operations/subscribersv1controllergetunseencount.ts b/libs/internal-sdk/src/models/operations/subscribersv1controllergetunseencount.ts index ada2f758d81..18c763c1338 100644 --- a/libs/internal-sdk/src/models/operations/subscribersv1controllergetunseencount.ts +++ b/libs/internal-sdk/src/models/operations/subscribersv1controllergetunseencount.ts @@ -11,6 +11,10 @@ import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersV1ControllerGetUnseenCountRequest = { subscriberId: string; + /** + * Identifier for the feed. Can be a single string or an array of strings. + */ + feedId?: components.ObjectT | undefined; /** * Indicates whether to count seen notifications. */ @@ -33,6 +37,7 @@ export type SubscribersV1ControllerGetUnseenCountResponse = { /** @internal */ export type SubscribersV1ControllerGetUnseenCountRequest$Outbound = { subscriberId: string; + feedId?: components.ObjectT$Outbound | undefined; seen: boolean; limit: number; "idempotency-key"?: string | undefined; @@ -46,6 +51,7 @@ export const SubscribersV1ControllerGetUnseenCountRequest$outboundSchema: SubscribersV1ControllerGetUnseenCountRequest > = z.object({ subscriberId: z.string(), + feedId: components.ObjectT$outboundSchema.optional(), seen: z.boolean().default(false), limit: z.number().default(100), idempotencyKey: z.string().optional(), diff --git a/libs/internal-sdk/src/models/operations/subscribersv1controllermarkactionasseen.ts b/libs/internal-sdk/src/models/operations/subscribersv1controllermarkactionasseen.ts index b7811bd3c45..0cc6ae4e4a8 100644 --- a/libs/internal-sdk/src/models/operations/subscribersv1controllermarkactionasseen.ts +++ b/libs/internal-sdk/src/models/operations/subscribersv1controllermarkactionasseen.ts @@ -5,13 +5,29 @@ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +/** + * Action button type: primary or secondary + */ +export const Type = { + Primary: "primary", + Secondary: "secondary", +} as const; +/** + * Action button type: primary or secondary + */ +export type Type = ClosedEnum; + export type SubscribersV1ControllerMarkActionAsSeenRequest = { messageId: string; - type: string; + /** + * Action button type: primary or secondary + */ + type: Type; subscriberId: string; /** * A header for idempotency purposes @@ -25,6 +41,11 @@ export type SubscribersV1ControllerMarkActionAsSeenResponse = { result: components.MessageResponseDto; }; +/** @internal */ +export const Type$outboundSchema: z.ZodNativeEnum = z.nativeEnum( + Type, +); + /** @internal */ export type SubscribersV1ControllerMarkActionAsSeenRequest$Outbound = { messageId: string; @@ -42,7 +63,7 @@ export const SubscribersV1ControllerMarkActionAsSeenRequest$outboundSchema: SubscribersV1ControllerMarkActionAsSeenRequest > = z.object({ messageId: z.string(), - type: z.string(), + type: Type$outboundSchema, subscriberId: z.string(), idempotencyKey: z.string().optional(), markMessageActionAsSeenDto: diff --git a/libs/internal-sdk/src/react-query/channelConnectionsCreate.ts b/libs/internal-sdk/src/react-query/channelConnectionsCreate.ts index 612359fcfea..37e4d5a5b42 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsCreate.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsCreate.ts @@ -75,7 +75,7 @@ export function useChannelConnectionsCreateMutation( } export function mutationKeyChannelConnectionsCreate(): MutationKey { - return ["@novu/api", "Channel Connections", "create"]; + return ["@novu/api", "ChannelConnections", "create"]; } export function buildChannelConnectionsCreateMutation( diff --git a/libs/internal-sdk/src/react-query/channelConnectionsDelete.ts b/libs/internal-sdk/src/react-query/channelConnectionsDelete.ts index f4b3e8919a0..31300437316 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsDelete.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsDelete.ts @@ -74,7 +74,7 @@ export function useChannelConnectionsDeleteMutation( } export function mutationKeyChannelConnectionsDelete(): MutationKey { - return ["@novu/api", "Channel Connections", "delete"]; + return ["@novu/api", "ChannelConnections", "delete"]; } export function buildChannelConnectionsDeleteMutation( diff --git a/libs/internal-sdk/src/react-query/channelConnectionsList.core.ts b/libs/internal-sdk/src/react-query/channelConnectionsList.core.ts index 16fc6cafca9..75ef4a4224e 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsList.core.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsList.core.ts @@ -98,5 +98,5 @@ export function queryKeyChannelConnectionsList( idempotencyKey?: string | undefined; }, ): QueryKey { - return ["@novu/api", "Channel Connections", "list", parameters]; + return ["@novu/api", "ChannelConnections", "list", parameters]; } diff --git a/libs/internal-sdk/src/react-query/channelConnectionsList.ts b/libs/internal-sdk/src/react-query/channelConnectionsList.ts index 43f3b4034fb..659f991e5c2 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsList.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsList.ts @@ -159,7 +159,7 @@ export function invalidateChannelConnectionsList( ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Connections", "list", ...queryKeyBase], + queryKey: ["@novu/api", "ChannelConnections", "list", ...queryKeyBase], }); } @@ -169,6 +169,6 @@ export function invalidateAllChannelConnectionsList( ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Connections", "list"], + queryKey: ["@novu/api", "ChannelConnections", "list"], }); } diff --git a/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.core.ts b/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.core.ts index 59eaa2d40d2..343356f8bbe 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.core.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.core.ts @@ -78,7 +78,7 @@ export function queryKeyChannelConnectionsRetrieve( ): QueryKey { return [ "@novu/api", - "Channel Connections", + "ChannelConnections", "retrieve", identifier, parameters, diff --git a/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.ts b/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.ts index 29302d30444..6eebb55da7c 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.ts @@ -132,7 +132,7 @@ export function invalidateChannelConnectionsRetrieve( ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Connections", "retrieve", ...queryKeyBase], + queryKey: ["@novu/api", "ChannelConnections", "retrieve", ...queryKeyBase], }); } @@ -142,6 +142,6 @@ export function invalidateAllChannelConnectionsRetrieve( ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Connections", "retrieve"], + queryKey: ["@novu/api", "ChannelConnections", "retrieve"], }); } diff --git a/libs/internal-sdk/src/react-query/channelConnectionsUpdate.ts b/libs/internal-sdk/src/react-query/channelConnectionsUpdate.ts index 379fdc18359..72c24b5d014 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsUpdate.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsUpdate.ts @@ -76,7 +76,7 @@ export function useChannelConnectionsUpdateMutation( } export function mutationKeyChannelConnectionsUpdate(): MutationKey { - return ["@novu/api", "Channel Connections", "update"]; + return ["@novu/api", "ChannelConnections", "update"]; } export function buildChannelConnectionsUpdateMutation( diff --git a/libs/internal-sdk/src/react-query/channelEndpointsCreate.ts b/libs/internal-sdk/src/react-query/channelEndpointsCreate.ts index ead3b0a7fae..ebd4087a214 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsCreate.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsCreate.ts @@ -74,7 +74,7 @@ export function useChannelEndpointsCreateMutation( } export function mutationKeyChannelEndpointsCreate(): MutationKey { - return ["@novu/api", "Channel Endpoints", "create"]; + return ["@novu/api", "ChannelEndpoints", "create"]; } export function buildChannelEndpointsCreateMutation( diff --git a/libs/internal-sdk/src/react-query/channelEndpointsDelete.ts b/libs/internal-sdk/src/react-query/channelEndpointsDelete.ts index 1c6a6f37bdc..8f7395134a6 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsDelete.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsDelete.ts @@ -74,7 +74,7 @@ export function useChannelEndpointsDeleteMutation( } export function mutationKeyChannelEndpointsDelete(): MutationKey { - return ["@novu/api", "Channel Endpoints", "delete"]; + return ["@novu/api", "ChannelEndpoints", "delete"]; } export function buildChannelEndpointsDeleteMutation( diff --git a/libs/internal-sdk/src/react-query/channelEndpointsList.core.ts b/libs/internal-sdk/src/react-query/channelEndpointsList.core.ts index 1f97589a107..8971ede23ae 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsList.core.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsList.core.ts @@ -100,5 +100,5 @@ export function queryKeyChannelEndpointsList( idempotencyKey?: string | undefined; }, ): QueryKey { - return ["@novu/api", "Channel Endpoints", "list", parameters]; + return ["@novu/api", "ChannelEndpoints", "list", parameters]; } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsList.ts b/libs/internal-sdk/src/react-query/channelEndpointsList.ts index d39a379f04a..a80405f64d4 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsList.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsList.ts @@ -161,7 +161,7 @@ export function invalidateChannelEndpointsList( ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Endpoints", "list", ...queryKeyBase], + queryKey: ["@novu/api", "ChannelEndpoints", "list", ...queryKeyBase], }); } @@ -171,6 +171,6 @@ export function invalidateAllChannelEndpointsList( ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Endpoints", "list"], + queryKey: ["@novu/api", "ChannelEndpoints", "list"], }); } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.core.ts b/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.core.ts index a01ab004b22..e0ac881c6a9 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.core.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.core.ts @@ -74,5 +74,5 @@ export function queryKeyChannelEndpointsRetrieve( identifier: string, parameters: { idempotencyKey?: string | undefined }, ): QueryKey { - return ["@novu/api", "Channel Endpoints", "retrieve", identifier, parameters]; + return ["@novu/api", "ChannelEndpoints", "retrieve", identifier, parameters]; } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.ts b/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.ts index c7b974f01fa..45768482f38 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.ts @@ -132,7 +132,7 @@ export function invalidateChannelEndpointsRetrieve( ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Endpoints", "retrieve", ...queryKeyBase], + queryKey: ["@novu/api", "ChannelEndpoints", "retrieve", ...queryKeyBase], }); } @@ -142,6 +142,6 @@ export function invalidateAllChannelEndpointsRetrieve( ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Endpoints", "retrieve"], + queryKey: ["@novu/api", "ChannelEndpoints", "retrieve"], }); } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsUpdate.ts b/libs/internal-sdk/src/react-query/channelEndpointsUpdate.ts index d2554b83c2e..4d0d0984fed 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsUpdate.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsUpdate.ts @@ -75,7 +75,7 @@ export function useChannelEndpointsUpdateMutation( } export function mutationKeyChannelEndpointsUpdate(): MutationKey { - return ["@novu/api", "Channel Endpoints", "update"]; + return ["@novu/api", "ChannelEndpoints", "update"]; } export function buildChannelEndpointsUpdateMutation( diff --git a/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.core.ts b/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.core.ts index 6a3b14e2b8a..1fd72005cf3 100644 --- a/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.core.ts +++ b/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.core.ts @@ -11,6 +11,7 @@ import { NovuCore } from "../core.js"; import { subscribersNotificationsFeed } from "../funcs/subscribersNotificationsFeed.js"; import { combineSignals } from "../lib/primitives.js"; import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export type SubscribersNotificationsFeedQueryData = @@ -45,6 +46,7 @@ export function buildSubscribersNotificationsFeedQuery( queryKey: queryKeySubscribersNotificationsFeed(request.subscriberId, { page: request.page, limit: request.limit, + feedIdentifier: request.feedIdentifier, read: request.read, seen: request.seen, payload: request.payload, @@ -78,6 +80,7 @@ export function queryKeySubscribersNotificationsFeed( parameters: { page?: number | undefined; limit?: number | undefined; + feedIdentifier?: components.ObjectT | undefined; read?: boolean | undefined; seen?: boolean | undefined; payload?: string | undefined; diff --git a/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.ts b/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.ts index 17d250bcc60..2025371950b 100644 --- a/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.ts +++ b/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.ts @@ -10,6 +10,7 @@ import { useSuspenseQuery, UseSuspenseQueryResult, } from "@tanstack/react-query"; +import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -114,6 +115,7 @@ export function setSubscribersNotificationsFeedData( parameters: { page?: number | undefined; limit?: number | undefined; + feedIdentifier?: components.ObjectT | undefined; read?: boolean | undefined; seen?: boolean | undefined; payload?: string | undefined; @@ -135,6 +137,7 @@ export function invalidateSubscribersNotificationsFeed( parameters: { page?: number | undefined; limit?: number | undefined; + feedIdentifier?: components.ObjectT | undefined; read?: boolean | undefined; seen?: boolean | undefined; payload?: string | undefined; diff --git a/libs/internal-sdk/src/react-query/subscribersNotificationsList.core.ts b/libs/internal-sdk/src/react-query/subscribersNotificationsList.core.ts index 69eb20c546f..96c1a2540ef 100644 --- a/libs/internal-sdk/src/react-query/subscribersNotificationsList.core.ts +++ b/libs/internal-sdk/src/react-query/subscribersNotificationsList.core.ts @@ -11,6 +11,7 @@ import { NovuCore } from "../core.js"; import { subscribersNotificationsList } from "../funcs/subscribersNotificationsList.js"; import { combineSignals } from "../lib/primitives.js"; import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export type SubscribersNotificationsListQueryData = @@ -46,6 +47,7 @@ export function buildSubscribersNotificationsListQuery( limit: request.limit, after: request.after, offset: request.offset, + tags: request.tags, read: request.read, archived: request.archived, snoozed: request.snoozed, @@ -86,6 +88,7 @@ export function queryKeySubscribersNotificationsList( limit?: number | undefined; after?: string | undefined; offset?: number | undefined; + tags?: components.ObjectT | undefined; read?: boolean | undefined; archived?: boolean | undefined; snoozed?: boolean | undefined; diff --git a/libs/internal-sdk/src/react-query/subscribersNotificationsList.ts b/libs/internal-sdk/src/react-query/subscribersNotificationsList.ts index 8c8e34c4d24..201cd052715 100644 --- a/libs/internal-sdk/src/react-query/subscribersNotificationsList.ts +++ b/libs/internal-sdk/src/react-query/subscribersNotificationsList.ts @@ -10,6 +10,7 @@ import { useSuspenseQuery, UseSuspenseQueryResult, } from "@tanstack/react-query"; +import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -117,6 +118,7 @@ export function setSubscribersNotificationsListData( limit?: number | undefined; after?: string | undefined; offset?: number | undefined; + tags?: components.ObjectT | undefined; read?: boolean | undefined; archived?: boolean | undefined; snoozed?: boolean | undefined; @@ -145,6 +147,7 @@ export function invalidateSubscribersNotificationsList( limit?: number | undefined; after?: string | undefined; offset?: number | undefined; + tags?: components.ObjectT | undefined; read?: boolean | undefined; archived?: boolean | undefined; snoozed?: boolean | undefined; diff --git a/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.core.ts b/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.core.ts index 69c158dc8ee..9bdf8afcbff 100644 --- a/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.core.ts +++ b/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.core.ts @@ -11,6 +11,7 @@ import { NovuCore } from "../core.js"; import { subscribersNotificationsUnseenCount } from "../funcs/subscribersNotificationsUnseenCount.js"; import { combineSignals } from "../lib/primitives.js"; import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export type SubscribersNotificationsUnseenCountQueryData = @@ -45,6 +46,7 @@ export function buildSubscribersNotificationsUnseenCountQuery( queryKey: queryKeySubscribersNotificationsUnseenCount( request.subscriberId, { + feedId: request.feedId, seen: request.seen, limit: request.limit, idempotencyKey: request.idempotencyKey, @@ -76,6 +78,7 @@ export function buildSubscribersNotificationsUnseenCountQuery( export function queryKeySubscribersNotificationsUnseenCount( subscriberId: string, parameters: { + feedId?: components.ObjectT | undefined; seen?: boolean | undefined; limit?: number | undefined; idempotencyKey?: string | undefined; diff --git a/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.ts b/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.ts index 8d4528e015b..18e1e21843a 100644 --- a/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.ts +++ b/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.ts @@ -10,6 +10,7 @@ import { useSuspenseQuery, UseSuspenseQueryResult, } from "@tanstack/react-query"; +import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -112,6 +113,7 @@ export function setSubscribersNotificationsUnseenCountData( queryKeyBase: [ subscriberId: string, parameters: { + feedId?: components.ObjectT | undefined; seen?: boolean | undefined; limit?: number | undefined; idempotencyKey?: string | undefined; @@ -133,6 +135,7 @@ export function invalidateSubscribersNotificationsUnseenCount( [ subscriberId: string, parameters: { + feedId?: components.ObjectT | undefined; seen?: boolean | undefined; limit?: number | undefined; idempotencyKey?: string | undefined; diff --git a/libs/notifications/package.json b/libs/notifications/package.json index 6ef362a8e00..2dbd8dd7452 100644 --- a/libs/notifications/package.json +++ b/libs/notifications/package.json @@ -3,7 +3,7 @@ "version": "1.0.10", "description": "Novu notification templates and workflows", "main": "build/main/index.js", - "typings": "build/main/index.d.ts", + "types": "build/main/index.d.ts", "module": "build/module/index.js", "private": true, "license": "MIT", diff --git a/libs/testing/src/ee/ee.repository.factory.ts b/libs/testing/src/ee/ee.repository.factory.ts index 35dbccd09e5..c79edbebe86 100644 --- a/libs/testing/src/ee/ee.repository.factory.ts +++ b/libs/testing/src/ee/ee.repository.factory.ts @@ -2,22 +2,23 @@ import { CommunityMemberRepository, CommunityOrganizationRepository, CommunityUs import { isClerkEnabled } from '@novu/shared'; import { ClerkClientMock } from './clerk-client.mock'; +function requireNovuWorkspacePackage(suffix: string): unknown { + return require(`@novu/${suffix}`); +} + /** - * We are using nx-ignore-next-line as a workaround here to avoid following circular dependency error: - * @novu/application-generic:build --> @novu/testing:build --> @novu/ee-auth:build --> @novu/application-generic:build - * - * When revising EE testing, we should consider refactoring the code to potentially avoid this circular dependency. - * + * Dynamic require via template (not `require('@novu/ee-auth')`) so Nx does not infer a build dependency edge. + * Packages resolve at runtime from the consuming app. */ export function getEERepository(className: 'OrganizationRepository' | 'MemberRepository' | 'UserRepository'): T { if (isClerkEnabled()) { switch (className) { case 'OrganizationRepository': - return getEEOrganizationRepository(); + return getEEOrganizationRepository() as T; case 'MemberRepository': - return getEEMemberRepository(); + return getEEMemberRepository() as T; case 'UserRepository': - return getEEUserRepository(); + return getEEUserRepository() as T; default: throw new Error('Invalid repository name'); } @@ -38,24 +39,31 @@ export function getEERepository(className: 'OrganizationRepository' | 'Member const clerkClientMock = new ClerkClientMock(); function getEEUserRepository() { - // nx-ignore-next-line - const { EEUserRepository } = require('@novu/ee-auth'); - // nx-ignore-next-line - const { AnalyticsService } = require('@novu/application-generic'); + const eeAuth = requireNovuWorkspacePackage('ee-auth') as Record unknown>; + const appGeneric = requireNovuWorkspacePackage('application-generic') as Record< + string, + new (...args: unknown[]) => unknown + >; - return new EEUserRepository(new CommunityUserRepository(), new AnalyticsService(), clerkClientMock); + return new eeAuth.EEUserRepository( + new CommunityUserRepository(), + new appGeneric.AnalyticsService(), + clerkClientMock + ); } function getEEOrganizationRepository() { - // nx-ignore-next-line - const { EEOrganizationRepository } = require('@novu/ee-auth'); + const { EEOrganizationRepository } = requireNovuWorkspacePackage('ee-auth') as { + EEOrganizationRepository: new (...args: unknown[]) => unknown; + }; return new EEOrganizationRepository(new CommunityOrganizationRepository(), clerkClientMock); } function getEEMemberRepository() { - // nx-ignore-next-line - const { EEMemberRepository } = require('@novu/ee-auth'); + const { EEMemberRepository } = requireNovuWorkspacePackage('ee-auth') as { + EEMemberRepository: new (...args: unknown[]) => unknown; + }; return new EEMemberRepository(new CommunityOrganizationRepository(), clerkClientMock); } diff --git a/package.json b/package.json index 9fcda5f3c99..6f339978759 100644 --- a/package.json +++ b/package.json @@ -186,7 +186,8 @@ "xml2js@<0.5.0": "^0.5.0", "@types/mocha": "^10.0.8", "rollup@>=4.0.0 <4.59.0": "^4.59.0", - "@nestjs/common@>=10.0.0 <11.0.0": "10.4.18", + "@nestjs/common": "11.1.18", + "@nestjs/core": "11.1.18", "prosemirror-model": "1.22.3", "path-to-regexp@<0.1.13": "^0.1.13", "@swc/core@>=1.0.0 <2.0.0": "1.7.26", @@ -315,6 +316,9 @@ "sharp", "unrs-resolver", "workerd" + ], + "ignoredBuiltDependencies": [ + "@scarf/scarf" ] } } diff --git a/packages/framework/package.json b/packages/framework/package.json index 340e31ebf5e..205349ffa75 100644 --- a/packages/framework/package.json +++ b/packages/framework/package.json @@ -185,7 +185,7 @@ } }, "peerDependencies": { - "@nestjs/common": ">=10.0.0", + "@nestjs/common": ">=10.0.0 <12.0.0", "@sveltejs/kit": ">=1.27.3", "@vercel/node": ">=2.15.9", "aws-lambda": ">=1.0.7", @@ -230,7 +230,7 @@ "devDependencies": { "@apidevtools/json-schema-ref-parser": "11.6.4", "@arethetypeswrong/cli": "^0.17.4", - "@nestjs/common": "10.4.18", + "@nestjs/common": "11.1.18", "@sveltejs/kit": "^1.27.3", "@types/aws-lambda": "^8.10.141", "@types/express": "^4.17.13", diff --git a/packages/shared/package.json b/packages/shared/package.json index e98d53739ca..9f8c5835dee 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -36,12 +36,12 @@ ".": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js", - "types": "./dist/esm/index.d.js" + "types": "./dist/esm/index.d.ts" }, "./utils": { "require": "./dist/cjs/utils/index.js", "import": "./dist/esm/utils/index.js", - "types": "./dist/esm/utils/index.d.js" + "types": "./dist/esm/utils/index.d.ts" } }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1730b653fe..7423029e4aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,8 @@ overrides: xml2js@<0.5.0: ^0.5.0 '@types/mocha': ^10.0.8 rollup@>=4.0.0 <4.59.0: ^4.59.0 - '@nestjs/common@>=10.0.0 <11.0.0': 10.4.18 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 prosemirror-model: 1.22.3 path-to-regexp@<0.1.13: ^0.1.13 '@swc/core@>=1.0.0 <2.0.0': 1.7.26 @@ -317,32 +318,32 @@ importers: specifier: ^6.2.3 version: 6.12.0(encoding@0.1.13) '@nestjs/axios': - specifier: 3.0.3 - version: 3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) + specifier: 4.0.1 + version: 4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/jwt': - specifier: 10.2.0 - version: 10.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) + specifier: 11.0.2 + version: 11.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) '@nestjs/passport': - specifier: 10.0.3 - version: 10.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0) + specifier: 11.0.5 + version: 11.0.5(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0) '@nestjs/platform-express': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@nestjs/terminus': - specifier: 10.2.3 - version: 10.2.3(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.1 + version: 11.1.1(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/throttler': - specifier: 6.2.1 - version: 6.2.1(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(reflect-metadata@0.2.2) + specifier: 6.5.0 + version: 6.5.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(reflect-metadata@0.2.2) '@novu/api': specifier: workspace:* version: link:../../libs/internal-sdk @@ -381,7 +382,7 @@ importers: version: 7.114.0 '@sentry/nestjs': specifier: ^8.49.0 - version: 8.55.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + version: 8.55.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@sentry/node': specifier: ^8.49.0 version: 8.55.0 @@ -495,7 +496,7 @@ importers: version: 3.3.8 nest-raven: specifier: 10.1.0 - version: 10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1)(ts-morph@24.0.0) + version: 10.1.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1)(ts-morph@24.0.0) newrelic: specifier: ^13.12.0 version: 13.12.0 @@ -561,14 +562,14 @@ importers: specifier: ^6.0.0 version: 6.3.1 '@nestjs/cli': - specifier: 10.4.5 - version: 10.4.5(@swc/cli@0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@3.6.0))(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3) + specifier: 11.0.17 + version: 11.0.17(@swc/cli@0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@4.0.3))(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(esbuild@0.27.3) '@nestjs/schematics': - specifier: 10.1.4 - version: 10.1.4(chokidar@3.6.0)(typescript@5.6.2) + specifier: 11.0.10 + version: 11.0.10(chokidar@4.0.3)(typescript@5.6.2) '@nestjs/testing': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@11.1.18) '@stoplight/spectral-cli': specifier: ^6.15.0 version: 6.15.0(encoding@0.1.13) @@ -1164,7 +1165,7 @@ importers: version: 7.114.0 '@sentry/nestjs': specifier: ^8.49.0 - version: 8.55.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + version: 8.55.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@sentry/node': specifier: ^8.49.0 version: 8.55.0 @@ -1279,19 +1280,19 @@ importers: version: 3.996.0 '@nestjs/axios': specifier: 3.0.3 - version: 3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) + version: 3.0.3(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/platform-express': specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + version: 10.4.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@nestjs/terminus': specifier: 10.2.3 - version: 10.2.3(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) + version: 10.2.3(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@3.0.3(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) '@novu/application-generic': specifier: workspace:* version: link:../../libs/application-generic @@ -1315,7 +1316,7 @@ importers: version: 7.114.0 '@sentry/nestjs': specifier: ^8.49.0 - version: 8.55.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + version: 8.55.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@sentry/node': specifier: ^8.49.0 version: 8.55.0 @@ -1348,7 +1349,7 @@ importers: version: 4.18.1 nest-raven: specifier: 10.1.0 - version: 10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1)(ts-morph@24.0.0) + version: 10.1.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1) newrelic: specifier: ^13.12.0 version: 13.12.0 @@ -1373,7 +1374,7 @@ importers: version: 10.1.4(chokidar@3.6.0)(typescript@5.6.2) '@nestjs/testing': specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18) + version: 10.4.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@10.4.18) '@types/chai': specifier: ^4.3.4 version: 4.3.4 @@ -1435,26 +1436,26 @@ importers: specifier: ^3.971.0 version: 3.996.0 '@nestjs/axios': - specifier: 3.0.3 - version: 3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) + specifier: 4.0.1 + version: 4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/platform-express': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@nestjs/schedule': - specifier: ^4.1.1 - version: 4.1.1(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + specifier: 6.1.1 + version: 6.1.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@nestjs/terminus': - specifier: 10.2.3 - version: 10.2.3(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.1 + version: 11.1.1(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) '@novu/application-generic': specifier: workspace:* version: link:../../libs/application-generic @@ -1481,7 +1482,7 @@ importers: version: 7.114.0 '@sentry/nestjs': specifier: ^8.49.0 - version: 8.55.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + version: 8.55.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@sentry/node': specifier: ^8.49.0 version: 8.55.0 @@ -1553,7 +1554,7 @@ importers: version: 11.2.4 nest-raven: specifier: 10.1.0 - version: 10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1)(ts-morph@24.0.0) + version: 10.1.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1) newrelic: specifier: ^13.12.0 version: 13.12.0 @@ -1583,14 +1584,14 @@ importers: specifier: ^6.0.0 version: 6.3.1 '@nestjs/cli': - specifier: 10.4.5 - version: 10.4.5(@swc/cli@0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@3.6.0))(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3) + specifier: 11.0.17 + version: 11.0.17(@swc/cli@0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@4.0.3))(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(esbuild@0.27.3) '@nestjs/schematics': - specifier: 10.1.4 - version: 10.1.4(chokidar@3.6.0)(typescript@5.6.2) + specifier: 11.0.10 + version: 11.0.10(chokidar@4.0.3)(typescript@5.6.2) '@nestjs/testing': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@11.1.18) '@types/bcrypt': specifier: ^3.0.0 version: 3.0.1 @@ -1665,32 +1666,32 @@ importers: specifier: ^4.3.1 version: 4.12.1 '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/jwt': - specifier: 10.2.0 - version: 10.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) + specifier: 11.0.2 + version: 11.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) '@nestjs/platform-express': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@nestjs/platform-socket.io': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/websockets@10.4.18)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/websockets@11.1.18)(rxjs@7.8.1) '@nestjs/serve-static': - specifier: 4.0.2 - version: 4.0.2(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(express@4.21.2) + specifier: 5.0.4 + version: 5.0.4(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(express@5.2.1) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@nestjs/terminus': - specifier: 10.2.3 - version: 10.2.3(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.1 + version: 11.1.1(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/websockets': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-socket.io@10.4.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-socket.io@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@novu/application-generic': specifier: workspace:* version: link:../../libs/application-generic @@ -1711,7 +1712,7 @@ importers: version: 7.114.0 '@sentry/nestjs': specifier: ^8.49.0 - version: 8.55.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + version: 8.55.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@sentry/node': specifier: ^8.49.0 version: 8.55.0 @@ -1753,7 +1754,7 @@ importers: version: 4.18.1 nest-raven: specifier: 10.1.0 - version: 10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1)(ts-morph@24.0.0) + version: 10.1.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1) newrelic: specifier: ^13.12.0 version: 13.12.0 @@ -1774,14 +1775,14 @@ importers: version: 4.8.1 devDependencies: '@nestjs/cli': - specifier: 10.4.5 - version: 10.4.5(@swc/cli@0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@3.6.0))(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3) + specifier: 11.0.17 + version: 11.0.17(@swc/cli@0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@4.0.3))(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(esbuild@0.27.3) '@nestjs/schematics': - specifier: 10.1.4 - version: 10.1.4(chokidar@3.6.0)(typescript@5.6.2) + specifier: 11.0.10 + version: 11.0.10(chokidar@4.0.3)(typescript@5.6.2) '@nestjs/testing': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@11.1.18) '@types/chai': specifier: ^4.2.11 version: 4.3.4 @@ -1858,14 +1859,14 @@ importers: specifier: ^1.2.4 version: 1.2.4(@langchain/core@1.1.18(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.212.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.1(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.20.0)(zod@3.25.20)))(ws@8.20.0) '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@novu/application-generic': specifier: workspace:* version: link:../../../libs/application-generic @@ -1913,8 +1914,8 @@ importers: version: 3.25.1(zod@3.25.20) devDependencies: '@nestjs/testing': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@11.1.18) '@types/chai': specifier: ^4.2.11 version: 4.3.4 @@ -1949,14 +1950,14 @@ importers: enterprise/packages/api: dependencies: '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@novu/application-generic': specifier: workspace:* version: link:../../../libs/application-generic @@ -1983,8 +1984,8 @@ importers: version: 5.0.1 devDependencies: '@nestjs/testing': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@11.1.18) '@types/chai': specifier: ^4.2.11 version: 4.3.4 @@ -2026,22 +2027,22 @@ importers: version: 1.25.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@clerk/express': specifier: ^1.3.53 - version: 1.3.53(express@5.0.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.3.53(express@5.2.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/jwt': - specifier: 10.2.0 - version: 10.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) + specifier: 11.0.2 + version: 11.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) '@nestjs/passport': - specifier: 10.0.3 - version: 10.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0) + specifier: 11.0.5 + version: 11.0.5(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@novu/application-generic': specifier: workspace:* version: link:../../../libs/application-generic @@ -2128,23 +2129,23 @@ importers: specifier: ^2.1.0 version: 2.1.0 '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/jwt': - specifier: 10.2.0 - version: 10.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) + specifier: 11.0.2 + version: 11.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) '@nestjs/platform-express': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@nestjs/throttler': - specifier: 6.2.1 - version: 6.2.1(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(reflect-metadata@0.2.2) + specifier: 6.5.0 + version: 6.5.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(reflect-metadata@0.2.2) '@novu/application-generic': specifier: workspace:* version: link:../../../libs/application-generic @@ -2225,8 +2226,8 @@ importers: specifier: ^2.1.0 version: 2.1.0 '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@novu/dal': specifier: workspace:* version: link:../../../libs/dal @@ -2259,14 +2260,14 @@ importers: specifier: ^2.1.0 version: 2.1.0 '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/platform-express': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@novu/application-generic': specifier: workspace:* version: link:../../../libs/application-generic @@ -2377,26 +2378,26 @@ importers: specifier: ^9.7.3 version: 9.7.3 '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/jwt': - specifier: 10.2.0 - version: 10.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) + specifier: 11.0.2 + version: 11.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) '@nestjs/passport': - specifier: 10.0.3 - version: 10.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0) + specifier: 11.0.5 + version: 11.0.5(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0) '@nestjs/swagger': - specifier: 7.4.0 - version: 7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + specifier: 11.2.6 + version: 11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@nestjs/terminus': - specifier: 10.2.3 - version: 10.2.3(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.1 + version: 11.1.1(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/testing': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@11.1.18) '@novu/dal': specifier: workspace:* version: link:../dal @@ -2415,9 +2416,6 @@ importers: '@novu/stateless': specifier: workspace:* version: link:../../packages/stateless - '@novu/testing': - specifier: workspace:* - version: link:../testing '@opentelemetry/api': specifier: 1.9.0 version: 1.9.0 @@ -2564,10 +2562,10 @@ importers: version: 3.3.8 nestjs-otel: specifier: 6.2.0 - version: 6.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + version: 6.2.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) nestjs-pino: specifier: 4.2.0 - version: 4.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(pino-http@8.3.3) + version: 4.2.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(pino-http@8.3.3) newrelic: specifier: ^13.12.0 version: 13.12.0 @@ -2743,8 +2741,8 @@ importers: specifier: ^6.0.0 version: 6.3.1 '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@novu/shared': specifier: workspace:* version: link:../../packages/shared @@ -3054,7 +3052,7 @@ importers: devDependencies: '@tailwindcss/typography': specifier: ^0.5.15 - version: 0.5.19(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3))) + version: 0.5.19(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3))) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -3063,13 +3061,13 @@ importers: version: 8.4.47 tailwind-scrollbar: specifier: ^3.1.0 - version: 3.1.0(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3))) + version: 3.1.0(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3))) tailwindcss: specifier: ^3.4.14 - version: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3)) + version: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3)) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3))) + version: 1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3))) libs/maily-tsconfig: {} @@ -3318,8 +3316,8 @@ importers: specifier: ^0.17.4 version: 0.17.4 '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@sveltejs/kit': specifier: ^2.57.1 version: 2.57.1(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@2.5.3(svelte@5.53.5)(vite@6.4.2(@types/node@22.15.13)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.77.8)(sugarss@4.0.1(postcss@8.5.8))(terser@5.31.6)(tsx@4.16.2)(yaml@2.8.3)))(svelte@5.53.5)(typescript@5.6.2)(vite@6.4.2(@types/node@22.15.13)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.77.8)(sugarss@4.0.1(postcss@8.5.8))(terser@5.31.6)(tsx@4.16.2)(yaml@2.8.3)) @@ -3994,17 +3992,17 @@ importers: playground/nestjs: dependencies: '@nestjs/common': - specifier: 10.4.18 - version: 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/config': specifier: ^3.2.3 - version: 3.2.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1) + version: 3.2.3(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1) '@nestjs/core': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + specifier: 11.1.18 + version: 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/platform-express': specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + version: 10.4.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) '@novu/framework': specifier: workspace:* version: link:../../packages/framework @@ -4029,7 +4027,7 @@ importers: version: 10.1.4(chokidar@3.6.0)(typescript@5.6.2) '@nestjs/testing': specifier: 10.4.18 - version: 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18) + version: 10.4.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@10.4.18) '@types/express': specifier: ^4.17.17 version: 4.17.17 @@ -4353,15 +4351,46 @@ packages: chokidar: optional: true + '@angular-devkit/core@19.2.22': + resolution: {integrity: sha512-OqN/Ded+ZKypPZN5+qUFwtnKGl7FKpxJXYO2Vts5vLBojY5goCZd9SGW1CyXeuPnisRUW+vjqBQbWYuEUh36Tw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^4.0.0 + peerDependenciesMeta: + chokidar: + optional: true + + '@angular-devkit/core@19.2.23': + resolution: {integrity: sha512-RazHPQkUEsNU/OZ75w9UeHxGFMthRiuAW2B/uA7eXExBj/1meHrrBfoCA56ujW2GUxVjRtSrMjylKh4R4meiYA==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^4.0.0 + peerDependenciesMeta: + chokidar: + optional: true + '@angular-devkit/schematics-cli@17.3.8': resolution: {integrity: sha512-TjmiwWJarX7oqvNiRAroQ5/LeKUatxBOCNEuKXO/PV8e7pn/Hr/BqfFm+UcYrQoFdZplmtNAfqmbqgVziKvCpA==} engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true + '@angular-devkit/schematics-cli@19.2.22': + resolution: {integrity: sha512-6BvkxDz4nV8B6Ha4n/pYZ503vXgLxMaEpcKsFDao1sl0iSwrIOphlIS1yWprlGdCThIM3aJref1JU13ZvEcBCA==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + '@angular-devkit/schematics@17.3.8': resolution: {integrity: sha512-QRVEYpIfgkprNHc916JlPuNbLzOgrm9DZalHasnLUz4P6g7pR21olb8YCyM2OTJjombNhya9ZpckcADU5Qyvlg==} engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/schematics@19.2.22': + resolution: {integrity: sha512-tvfu5jhem1o8qidVxvXe5KfCij65ioMLCOFA947DD+zb3yTl5pJyDm2dqzbOehuQw0fmH4XPQukRJsCUy+UwaA==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@angular-devkit/schematics@19.2.23': + resolution: {integrity: sha512-Jzs7YM4X6azmHU7Mw5tQSPMuvaqYS8SLnZOJbtiXCy1JyuW9bm/WBBecNHMiuZ8LHXKhvQ6AVX1tKrzF6uiDmw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} @@ -7467,6 +7496,149 @@ packages: '@inkeep/cxkit-types@0.5.107': resolution: {integrity: sha512-YJSTUMRJkWzPLQtk0c0waK8UVCgPX/G78DBdgvGXy5MjG4xDonrns4ZlLH9Xu/lt7iD1+MVGSaEl3XKNrSuphw==} + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + + '@inquirer/checkbox@4.3.2': + resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/editor@4.2.23': + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/expand@4.0.23': + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/input@4.3.1': + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/number@3.0.23': + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/password@4.0.23': + resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.10.1': + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.3.2': + resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@4.1.11': + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@3.2.2': + resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/select@4.4.2': + resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@internationalized/date@3.8.2': resolution: {integrity: sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==} @@ -7720,9 +7892,6 @@ 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.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -7947,6 +8116,9 @@ packages: '@microsoft/tsdoc@0.15.0': resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==} + '@microsoft/tsdoc@0.16.0': + resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} + '@mole-inc/bin-wrapper@8.0.1': resolution: {integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8017,10 +8189,17 @@ packages: '@nestjs/axios@3.0.3': resolution: {integrity: sha512-h6TCn3yJwD6OKqqqfmtRS5Zo4E46Ip2n+gK1sqwzNBC+qxQ9xpCu+ODVRFur6V3alHSCSBxb3nNtt73VEdluyA==} peerDependencies: - '@nestjs/common': 10.4.18 + '@nestjs/common': 11.1.18 axios: ^1.15.0 rxjs: ^6.0.0 || ^7.0.0 + '@nestjs/axios@4.0.1': + resolution: {integrity: sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A==} + peerDependencies: + '@nestjs/common': 11.1.18 + axios: ^1.15.0 + rxjs: ^7.0.0 + '@nestjs/cli@10.4.5': resolution: {integrity: sha512-FP7Rh13u8aJbHe+zZ7hM0CC4785g9Pw4lz4r2TTgRtf0zTxSWMkJaPEwyjX8SK9oWK2GsYxl+fKpwVZNbmnj9A==} engines: {node: '>= 16.14'} @@ -8034,11 +8213,24 @@ packages: '@swc/core': optional: true - '@nestjs/common@10.4.18': - resolution: {integrity: sha512-9SrTth6YJJ9CjVnekw9WP8kaiwh+tSgR0KIrPYV/aWgF9D0175uDJUglzbiCfUbkPyHN8jcKXUXd3EVPDY6BNA==} + '@nestjs/cli@11.0.17': + resolution: {integrity: sha512-tOMgoB9k+Zb2WdKYPhbhceROLcDR1BFQZWfkBOGMRgBTo8rnC125E65UvThEA77vp4w+zKjqiSIv0leT+wdpHg==} + engines: {node: '>= 20.11'} + hasBin: true peerDependencies: - class-transformer: '*' - class-validator: '*' + '@swc/cli': 0.3.12 + '@swc/core': 1.7.26 + peerDependenciesMeta: + '@swc/cli': + optional: true + '@swc/core': + optional: true + + '@nestjs/common@11.1.18': + resolution: {integrity: sha512-0sLq8Z+TIjLnz1Tqp0C/x9BpLbqpt1qEu0VcH4/fkE0y3F5JxhfK1AdKQ/SPbKhKgwqVDoY4gS8GQr2G6ujaWg==} + peerDependencies: + class-transformer: '>=0.4.1' + class-validator: '>=0.13.2' reflect-metadata: ^0.1.12 || ^0.2.0 rxjs: ^7.1.0 peerDependenciesMeta: @@ -8050,16 +8242,17 @@ packages: '@nestjs/config@3.2.3': resolution: {integrity: sha512-p6yv/CvoBewJ72mBq4NXgOAi2rSQNWx3a+IMJLVKS2uiwFCOQQuiIatGwq6MRjXV3Jr+B41iUO8FIf4xBrZ4/w==} peerDependencies: - '@nestjs/common': 10.4.18 + '@nestjs/common': 11.1.18 rxjs: ^7.1.0 - '@nestjs/core@10.4.18': - resolution: {integrity: sha512-+cs96rnpHIfkn9o0DLZFKuE1RZ3FFQkpkzz+DY2U8C3Wn3VX5fQaO4YuabweLIhUKTLr9DMxPycA5qk5rAPFBw==} + '@nestjs/core@11.1.18': + resolution: {integrity: sha512-wR3DtGyk/LUAiPtbXDuWJJwVkWElKBY0sqnTzf9d4uM3+X18FRZhK7WFc47czsIGOdWuRsMeLYV+1Z9dO4zDEQ==} + engines: {node: '>= 20'} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/microservices': ^10.0.0 - '@nestjs/platform-express': ^10.0.0 - '@nestjs/websockets': ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/microservices': ^11.0.0 + '@nestjs/platform-express': ^11.0.0 + '@nestjs/websockets': ^11.0.0 reflect-metadata: ^0.1.12 || ^0.2.0 rxjs: ^7.1.0 peerDependenciesMeta: @@ -8074,8 +8267,8 @@ packages: resolution: {integrity: sha512-A5oRD5GMwzaNZum06KSxKtqhC7LvS4p7v0hLGzvNWPuLrBjAjAnm/2NV8IV8lYiJXpPHNtSnnekZH9uvy/hZlw==} peerDependencies: '@apollo/subgraph': ^2.0.0 - '@nestjs/common': 10.4.18 - '@nestjs/core': ^9.3.8 || ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 class-transformer: '*' class-validator: '*' graphql: ^16.6.0 @@ -8091,15 +8284,15 @@ packages: ts-morph: optional: true - '@nestjs/jwt@10.2.0': - resolution: {integrity: sha512-x8cG90SURkEiLOehNaN2aRlotxT0KZESUliOPKKnjWiyJOcWurkF3w345WOX0P4MgFzUjGoZ1Sy0aZnxeihT0g==} + '@nestjs/jwt@11.0.2': + resolution: {integrity: sha512-rK8aE/3/Ma45gAWfCksAXUNbOoSOUudU0Kn3rT39htPF7wsYXtKfjALKeKKJbFrIWbLjsbqfXX5bIJNvgBugGA==} peerDependencies: - '@nestjs/common': 10.4.18 + '@nestjs/common': 11.1.18 '@nestjs/mapped-types@2.0.2': resolution: {integrity: sha512-V0izw6tWs6fTp9+KiiPUbGHWALy563Frn8X6Bm87ANLRuE46iuBMD5acKBDP5lKL/75QFvrzSJT7HkCbB0jTpg==} peerDependencies: - '@nestjs/common': 10.4.18 + '@nestjs/common': 11.1.18 class-transformer: ^0.4.0 || ^0.5.0 class-validator: ^0.13.0 || ^0.14.0 reflect-metadata: ^0.1.12 @@ -8109,10 +8302,10 @@ packages: class-validator: optional: true - '@nestjs/mapped-types@2.0.5': - resolution: {integrity: sha512-bSJv4pd6EY99NX9CjBIyn4TVDoSit82DUZlL4I3bqNfy5Gt+gXTa86i3I/i0iIV9P4hntcGM5GyO+FhZAhxtyg==} + '@nestjs/mapped-types@2.1.0': + resolution: {integrity: sha512-W+n+rM69XsFdwORF11UqJahn4J3xi4g/ZEOlJNL6KoW5ygWSmBB2p0S2BZ4FQeS/NDH72e6xIcu35SfJnE8bXw==} peerDependencies: - '@nestjs/common': 10.4.18 + '@nestjs/common': 11.1.18 class-transformer: ^0.4.0 || ^0.5.0 class-validator: ^0.13.0 || ^0.14.0 reflect-metadata: ^0.1.12 || ^0.2.0 @@ -8122,44 +8315,55 @@ packages: class-validator: optional: true - '@nestjs/passport@10.0.3': - resolution: {integrity: sha512-znJ9Y4S8ZDVY+j4doWAJ8EuuVO7SkQN3yOBmzxbGaXbvcSwFDAdGJ+OMCg52NdzIO4tQoN4pYKx8W6M0ArfFRQ==} + '@nestjs/passport@11.0.5': + resolution: {integrity: sha512-ulQX6mbjlws92PIM15Naes4F4p2JoxGnIJuUsdXQPT+Oo2sqQmENEZXM7eYuimocfHnKlcfZOuyzbA33LwUlOQ==} peerDependencies: - '@nestjs/common': 10.4.18 - passport: ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0 + '@nestjs/common': 11.1.18 + passport: ^0.5.0 || ^0.6.0 || ^0.7.0 '@nestjs/platform-express@10.4.18': resolution: {integrity: sha512-v+W+Pu5NOVK/bSG5A5mOnXyoVwN5mJUe4o0j0UJ9Ig9JMmjVxg+Zw2ydTfpOQ+R82lRYWJUjjv3dvqKaFW2z7w==} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/core': ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 + + '@nestjs/platform-express@11.1.18': + resolution: {integrity: sha512-s6GdHMTa3qx0fJewR74Xa30ysPHfBEqxIwZ7BGSTLoAEQ1vTP24urNl+b6+s49NFLEIOyeNho5fN/9/I17QlOw==} + peerDependencies: + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 - '@nestjs/platform-socket.io@10.4.18': - resolution: {integrity: sha512-+X/c4I5rYJU/X5ZRhrd3jJ/bL86zWWTc6FIdhNfTvVyLneYkIH9+snCyi4+7lu0auhDXqA90zNzmaUg9Iwno1Q==} + '@nestjs/platform-socket.io@11.1.18': + resolution: {integrity: sha512-DiFRpMIdFaHqZQFwqLqGHMdNurrKVkRkMHxIrecjooPHJNNIMgrbpYZ+oJW8hpwifUyZUL4r4uXXRy4+yFEMjA==} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/websockets': ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/websockets': ^11.0.0 rxjs: ^7.1.0 - '@nestjs/schedule@4.1.1': - resolution: {integrity: sha512-VxAnCiU4HP0wWw8IdWAVfsGC/FGjyToNjjUtXDEQL6oj+w/N5QDd2VT9k6d7Jbr8PlZuBZNdWtDKSkH5bZ+RXQ==} + '@nestjs/schedule@6.1.1': + resolution: {integrity: sha512-kQl1RRgi02GJ0uaUGCrXHCcwISsCsJDciCKe38ykJZgnAeeoeVWs8luWtBo4AqAAXm4nS5K8RlV0smHUJ4+2FA==} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/core': ^8.0.0 || ^9.0.0 || ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 '@nestjs/schematics@10.1.4': resolution: {integrity: sha512-QpY8ez9cTvXXPr3/KBrtSgXQHMSV6BkOUYy2c2TTe6cBqriEdGnCYqGl8cnfrQl3632q3lveQPaZ/c127dHsEw==} peerDependencies: typescript: '>=4.8.2' - '@nestjs/serve-static@4.0.2': - resolution: {integrity: sha512-cT0vdWN5ar7jDI2NKbhf4LcwJzU4vS5sVpMkVrHuyLcltbrz6JdGi1TfIMMatP2pNiq5Ie/uUdPSFDVaZX/URQ==} + '@nestjs/schematics@11.0.10': + resolution: {integrity: sha512-q9lr0wGwgBHLarD4uno3XiW4JX60WPlg2VTgbqPHl/6bT4u1IEEzj+q9Tad3bVnqL5mlDF3vrZ2tj+x13CJpmw==} peerDependencies: - '@fastify/static': ^6.5.0 || ^7.0.0 - '@nestjs/common': 10.4.18 - '@nestjs/core': ^9.0.0 || ^10.0.0 - express: ^4.20.0 - fastify: ^4.7.0 + typescript: '>=4.8.2' + + '@nestjs/serve-static@5.0.4': + resolution: {integrity: sha512-3kO1M9D3vsPyWPFardxIjUYeuolS58PnhCoBTkS7t3BrdZFZCKHnBZ15js+UOzOR2Q6HmD7ssGjLd0DVYVdvOw==} + peerDependencies: + '@fastify/static': ^8.0.4 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 + express: ^5.0.1 + fastify: ^5.2.1 peerDependenciesMeta: '@fastify/static': optional: true @@ -8168,12 +8372,12 @@ packages: fastify: optional: true - '@nestjs/swagger@7.4.0': - resolution: {integrity: sha512-dCiwKkRxcR7dZs5jtrGspBAe/nqJd1AYzOBTzw9iCdbq3BGrLpwokelk6lFZPe4twpTsPQqzNKBwKzVbI6AR/g==} + '@nestjs/swagger@11.2.6': + resolution: {integrity: sha512-oiXOxMQqDFyv1AKAqFzSo6JPvMEs4uA36Eyz/s2aloZLxUjcLfUMELSLSNQunr61xCPTpwEOShfmO7NIufKXdA==} peerDependencies: - '@fastify/static': ^6.0.0 || ^7.0.0 - '@nestjs/common': 10.4.18 - '@nestjs/core': ^9.0.0 || ^10.0.0 + '@fastify/static': ^8.0.0 || ^9.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 class-transformer: '*' class-validator: '*' reflect-metadata: ^0.1.12 || ^0.2.0 @@ -8193,8 +8397,8 @@ packages: '@mikro-orm/core': '*' '@mikro-orm/nestjs': '*' '@nestjs/axios': ^1.0.0 || ^2.0.0 || ^3.0.0 - '@nestjs/common': 10.4.18 - '@nestjs/core': ^9.0.0 || ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 '@nestjs/microservices': ^9.0.0 || ^10.0.0 '@nestjs/mongoose': ^9.0.0 || ^10.0.0 '@nestjs/sequelize': ^9.0.0 || ^10.0.0 @@ -8233,11 +8437,59 @@ packages: typeorm: optional: true + '@nestjs/terminus@11.1.1': + resolution: {integrity: sha512-Ssql79H+EQY/Wg108eJqN4NiNsO/tLrj+qbzOWSQUf2JE4vJQ2RG3WTqUOrYjfjWmVHD3+Ys0+azed7LSMKScw==} + peerDependencies: + '@grpc/grpc-js': '*' + '@grpc/proto-loader': '*' + '@mikro-orm/core': '*' + '@mikro-orm/nestjs': '*' + '@nestjs/axios': ^2.0.0 || ^3.0.0 || ^4.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 + '@nestjs/microservices': ^10.0.0 || ^11.0.0 + '@nestjs/mongoose': ^11.0.0 + '@nestjs/sequelize': ^10.0.0 || ^11.0.0 + '@nestjs/typeorm': ^10.0.0 || ^11.0.0 + '@prisma/client': '*' + mongoose: '*' + reflect-metadata: 0.1.x || 0.2.x + rxjs: 7.x + sequelize: '*' + typeorm: '*' + peerDependenciesMeta: + '@grpc/grpc-js': + optional: true + '@grpc/proto-loader': + optional: true + '@mikro-orm/core': + optional: true + '@mikro-orm/nestjs': + optional: true + '@nestjs/axios': + optional: true + '@nestjs/microservices': + optional: true + '@nestjs/mongoose': + optional: true + '@nestjs/sequelize': + optional: true + '@nestjs/typeorm': + optional: true + '@prisma/client': + optional: true + mongoose: + optional: true + sequelize: + optional: true + typeorm: + optional: true + '@nestjs/testing@10.4.18': resolution: {integrity: sha512-oTeGjnh1qeSZMFqze1Rz5lEtAOBRDApulWDoLYSyzh+8/jFflhCYAGeOHncItkGq9wBRe1R1Ct2GyRFdTmpcjg==} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/core': ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 '@nestjs/microservices': ^10.0.0 '@nestjs/platform-express': ^10.0.0 peerDependenciesMeta: @@ -8246,19 +8498,32 @@ packages: '@nestjs/platform-express': optional: true - '@nestjs/throttler@6.2.1': - resolution: {integrity: sha512-vdt6VjhKC6vcLBJRUb97IuR6Htykn5kokZzmT8+S5XFOLLjUF7rzRpr+nUOhK9pi1L0hhbzSf2v2FJl4v64EJA==} + '@nestjs/testing@11.1.18': + resolution: {integrity: sha512-frzwNlpBgtAzI3hp/qo57DZoRO4RMTH1wST3QUYEhRTHyfPkLpzkWz3jV/mhApXjD0yT56Ptlzn6zuYPLh87Lw==} + peerDependencies: + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 + '@nestjs/microservices': ^11.0.0 + '@nestjs/platform-express': ^11.0.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + + '@nestjs/throttler@6.5.0': + resolution: {integrity: sha512-9j0ZRfH0QE1qyrj9JjIRDz5gQLPqq9yVC2nHsrosDVAfI5HHw08/aUAWx9DZLSdQf4HDkmhTTEGLrRFHENvchQ==} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/core': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 reflect-metadata: ^0.1.13 || ^0.2.0 - '@nestjs/websockets@10.4.18': - resolution: {integrity: sha512-FnwRiUGReMo8guM6fVoDotwAxOzV0Y2bLC+avz1kPfCUT7LAvivMQ0xs+rJy/nmdHb2TDxwFOK6gyQSznUdOzQ==} + '@nestjs/websockets@11.1.18': + resolution: {integrity: sha512-HLO/QGlJoJaMMDphgjbcIwW7/8EA8nnFQjf+qPvA+wWLLfPKoiFPUezc5m9YgN2A7jmzwo6YmEAXeHyqO9tvTw==} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/core': ^10.0.0 - '@nestjs/platform-socket.io': ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 + '@nestjs/platform-socket.io': ^11.0.0 reflect-metadata: ^0.1.12 || ^0.2.0 rxjs: ^7.1.0 peerDependenciesMeta: @@ -8448,9 +8713,9 @@ packages: react: ^18 || ^19 react-dom: ^18 || ^19 - '@nuxtjs/opencollective@0.3.2': - resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} + '@nuxt/opencollective@0.4.1': + resolution: {integrity: sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==} + engines: {node: ^14.18.0 || >=16.10.0, npm: '>=5.10.0'} hasBin: true '@nx/devkit@20.1.2': @@ -11608,6 +11873,9 @@ packages: zen-observable: optional: true + '@scarf/scarf@1.4.0': + resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} + '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -11766,8 +12034,8 @@ packages: resolution: {integrity: sha512-mhedJKgsEW9xQiBWt1qvVRkJdo7Raw6VBivgBT3zxfeVWv4n/KzEIzdV7MWyZzxVd4CeM8OZGkk1S0E/nJiRdQ==} engines: {node: '>=16'} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/core': ^8.0.0 || ^9.0.0 || ^10.0.0 + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 '@sentry/node@8.55.0': resolution: {integrity: sha512-h10LJLDTRAzYgay60Oy7moMookqqSZSviCWkkmHZyaDn+4WURnPp5SKhhfrzPRQcXKrweiOwDSHBgn1tweDssg==} @@ -13667,6 +13935,9 @@ packages: '@types/jsonwebtoken@8.5.9': resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} + '@types/jsonwebtoken@9.0.10': + resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} + '@types/jsonwebtoken@9.0.5': resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==} @@ -13703,6 +13974,9 @@ packages: '@types/luxon@3.4.2': resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==} + '@types/luxon@3.7.1': + resolution: {integrity: sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg==} + '@types/markdown-escape@1.1.3': resolution: {integrity: sha512-JIc1+s3y5ujKnt/+N+wq6s/QdL2qZ11fP79MijrVXsAAnzSxCbT2j/3prHRouJdZ2yFLN3vkP0HytfnoCczjOw==} @@ -14882,6 +15156,10 @@ packages: react: ^16.3.2 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.3.2 || ^17.0.0 || ^18.0.0 || ^19.0.0 + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} + engines: {node: '>=14'} + any-observable@0.3.0: resolution: {integrity: sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==} engines: {node: '>=6'} @@ -15829,6 +16107,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + check-disk-space@3.4.0: resolution: {integrity: sha512-drVkSqfwA+TvuEhFipiR1OC9boEGZL5RrWvVsOthdcvQNXyCCuKkEiTOTXZ7qxSf/GLwq4GvzfrQD/Wz325hgw==} engines: {node: '>=16'} @@ -15879,6 +16160,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -16166,6 +16451,10 @@ packages: resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} engines: {node: '>= 6'} + comment-json@4.6.2: + resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} + engines: {node: '>= 6'} + common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} @@ -16227,9 +16516,6 @@ packages: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} engines: {node: '>=8'} - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -16313,6 +16599,10 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} + engines: {node: '>= 0.10'} + corser@2.0.1: resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} engines: {node: '>= 0.4.0'} @@ -16368,6 +16658,10 @@ packages: cron@3.1.7: resolution: {integrity: sha512-tlBg7ARsAMQLzgwqVxy8AZl/qlTc5nibqYwtNGoCrd+cV+ugI+tvZC1oT/8dFH8W455YrywGykx/KMmAqOr7Jw==} + cron@4.4.0: + resolution: {integrity: sha512-fkdfq+b+AHI4cKdhZlppHveI/mgz2qpiYxcm+t5E5TsxX7QrLS1VE0+7GENEk9z0EeGPcpSciGv6ez24duWhwQ==} + engines: {node: '>=18.x'} + cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -17680,6 +17974,10 @@ packages: resolution: {integrity: sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==} engines: {node: '>= 18'} + express@5.2.1: + resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + engines: {node: '>= 18'} + ext-list@2.2.2: resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} engines: {node: '>=0.10.0'} @@ -17900,6 +18198,10 @@ packages: resolution: {integrity: sha512-MX6Zo2adDViYh+GcxxB1dpO43eypOGUOL12rLCOTMQv/DfIbpSJUy4oQIIZhVZkH9e+bZWKMon0XHFEju16tkQ==} engines: {node: '>= 0.8'} + finalhandler@2.1.1: + resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + engines: {node: '>= 18.0.0'} + find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} @@ -17996,6 +18298,13 @@ packages: typescript: '>3.6.0' webpack: ^5.104.1 + fork-ts-checker-webpack-plugin@9.1.0: + resolution: {integrity: sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==} + engines: {node: '>=14.21.3'} + peerDependencies: + typescript: '>3.6.0' + webpack: ^5.104.1 + form-data-encoder@1.7.2: resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} @@ -18304,6 +18613,10 @@ packages: deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + glob@6.0.4: resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me @@ -20401,6 +20714,10 @@ packages: peerDependencies: react: ^16.8.0 || ^17 || ^18 + load-esm@1.0.3: + resolution: {integrity: sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA==} + engines: {node: '>=13.2.0'} + load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} @@ -20654,6 +20971,10 @@ packages: resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} engines: {node: '>=12'} + luxon@3.7.2: + resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} + engines: {node: '>=12'} + madge@8.0.0: resolution: {integrity: sha512-9sSsi3TBPhmkTCIpVQF0SPiChj1L7Rq9kU2KDG1o6v2XH9cCw086MopjVCD+vuoL5v8S77DTbVopTO8OUiQpIw==} engines: {node: '>=18'} @@ -21083,6 +21404,10 @@ packages: resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} engines: {node: '>= 0.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -21091,6 +21416,10 @@ packages: resolution: {integrity: sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==} engines: {node: '>= 0.6'} + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -21188,6 +21517,10 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} @@ -21429,6 +21762,10 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + mv@2.1.1: resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} engines: {node: '>=0.8.0'} @@ -21502,7 +21839,7 @@ packages: nest-raven@10.1.0: resolution: {integrity: sha512-B9rMfY1SLSE/vdCBO8uyvDx1LWEi4F1GQpesNHdl+AigMHm/DapCbWEXSdveLP7Pe9Yci2gGl4jq4cHR2EYXEw==} peerDependencies: - '@nestjs/common': 10.4.18 + '@nestjs/common': 11.1.18 '@sentry/node': '*' rxjs: '*' @@ -21512,14 +21849,14 @@ packages: nestjs-otel@6.2.0: resolution: {integrity: sha512-F15GnWNrmHxDRdn0o2/cDx65gR7+s3xou1mEJ5vVONfOOYeneIJi1Mkf6h/Qu6NfO4SHPFPKGMXoovvTX1D8Iw==} peerDependencies: - '@nestjs/common': 10.4.18 - '@nestjs/core': '>= 10 < 12' + '@nestjs/common': 11.1.18 + '@nestjs/core': 11.1.18 nestjs-pino@4.2.0: resolution: {integrity: sha512-+YpNb+ZyWq+vZqhMLRGyV8838n/sjdvLsHjPjmw+yW8+hnE9yVP50MdehtGcHA9d7z2XVccT/GUp8pI1U+nDvA==} engines: {node: '>= 14'} peerDependencies: - '@nestjs/common': 10.4.18 + '@nestjs/common': 11.1.18 pino-http: ^6.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 netmask@2.0.2: @@ -22368,6 +22705,10 @@ packages: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-temp@2.0.0: resolution: {integrity: sha512-92olbatybjsHTGB2CUnAM7s0mU/27gcMfLNA7t09UftndUdxywlQKur3fzXEPpfLrgZD3I2Bt8+UmiL7YDEgXQ==} engines: {node: '>=8.15'} @@ -22378,15 +22719,15 @@ packages: path-to-regexp@1.9.0: resolution: {integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==} - path-to-regexp@3.3.0: - resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} path-to-regexp@8.4.0: resolution: {integrity: sha512-PuseHIvAnz3bjrM2rGJtSgo1zjgxapTLZ7x2pjhzWwlp4SJQgK3f3iZIQwkpEnBaKz6seKBADpM4B4ySkuYypg==} + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -23613,6 +23954,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + real-require@0.1.0: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} engines: {node: '>= 12.13.0'} @@ -23969,6 +24314,10 @@ packages: resolution: {integrity: sha512-/m/NSLxeYEgWNtyC+WtNHCF7jbGxOibVWKnn+1Psff4dJGOfoXP+MuC/f2CwSmyiHdOIzYnYFp4W6GxWfekaLA==} engines: {node: '>= 18'} + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + rrdom@2.0.0-alpha.16: resolution: {integrity: sha512-m8aoeORWUz7AFdEb7hES7wPeL6fl/oP23RoAlzLXyA/f2+NqCDM7KEyCXY4sHu6CChN3OAUP2BaUGEXn0zynlw==} @@ -24170,6 +24519,10 @@ packages: resolution: {integrity: sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==} engines: {node: '>= 18'} + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + sentence-case@2.1.1: resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} @@ -24195,6 +24548,10 @@ packages: resolution: {integrity: sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==} engines: {node: '>= 18'} + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -24411,6 +24768,10 @@ packages: resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} engines: {node: '>=10.2.0'} + socket.io@4.8.3: + resolution: {integrity: sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==} + engines: {node: '>=10.2.0'} + socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -24990,6 +25351,9 @@ packages: swagger-ui-dist@5.17.14: resolution: {integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==} + swagger-ui-dist@5.31.0: + resolution: {integrity: sha512-zSUTIck02fSga6rc0RZP3b7J7wgHXwLea8ZjgLA3Vgnb8QeOl3Wou2/j5QkzSGeoz6HusP/coYuJl33aQxQZpg==} + swagger-ui-express@4.6.2: resolution: {integrity: sha512-MHIOaq9JrTTB3ygUJD+08PbjM5Tt/q7x80yz9VTFIatw8j5uIWKcr90S0h5NLMzFEDC6+eVprtoeA5MDZXCUKQ==} engines: {node: '>= v0.10.32'} @@ -25520,6 +25884,10 @@ packages: resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} engines: {node: '>=10.13.0'} + tsconfig-paths-webpack-plugin@4.2.0: + resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} + engines: {node: '>=10.13.0'} + tsconfig-paths@4.1.2: resolution: {integrity: sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==} engines: {node: '>=6'} @@ -25720,6 +26088,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + typical@4.0.0: resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} engines: {node: '>=8'} @@ -26818,6 +27191,10 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + yoctocolors@2.1.1: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} @@ -27050,6 +27427,28 @@ snapshots: optionalDependencies: chokidar: 3.6.0 + '@angular-devkit/core@19.2.22(chokidar@4.0.3)': + dependencies: + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.4 + rxjs: 7.8.1 + source-map: 0.7.4 + optionalDependencies: + chokidar: 4.0.3 + + '@angular-devkit/core@19.2.23(chokidar@4.0.3)': + dependencies: + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.4 + rxjs: 7.8.1 + source-map: 0.7.4 + optionalDependencies: + chokidar: 4.0.3 + '@angular-devkit/schematics-cli@17.3.8(chokidar@3.6.0)': dependencies: '@angular-devkit/core': 17.3.8(chokidar@3.6.0) @@ -27061,6 +27460,18 @@ snapshots: transitivePeerDependencies: - chokidar + '@angular-devkit/schematics-cli@19.2.22(@types/node@22.15.13)(chokidar@4.0.3)': + dependencies: + '@angular-devkit/core': 19.2.22(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.22(chokidar@4.0.3) + '@inquirer/prompts': 7.3.2(@types/node@22.15.13) + ansi-colors: 4.1.3 + symbol-observable: 4.0.0 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@types/node' + - chokidar + '@angular-devkit/schematics@17.3.8(chokidar@3.6.0)': dependencies: '@angular-devkit/core': 17.3.8(chokidar@3.6.0) @@ -27071,6 +27482,26 @@ snapshots: transitivePeerDependencies: - chokidar + '@angular-devkit/schematics@19.2.22(chokidar@4.0.3)': + dependencies: + '@angular-devkit/core': 19.2.22(chokidar@4.0.3) + jsonc-parser: 3.3.1 + magic-string: 0.30.17 + ora: 5.4.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + + '@angular-devkit/schematics@19.2.23(chokidar@4.0.3)': + dependencies: + '@angular-devkit/core': 19.2.23(chokidar@4.0.3) + jsonc-parser: 3.3.1 + magic-string: 0.30.17 + ora: 5.4.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + '@antfu/install-pkg@1.1.0': dependencies: package-manager-detector: 1.6.0 @@ -27171,7 +27602,7 @@ snapshots: requireg: 0.2.2 semver: 7.7.4 signale: 1.4.0 - tapable: 2.2.1 + tapable: 2.3.0 terminal-link: 2.1.1 tinycolor2: 1.6.0 ts-node: 10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.6.2) @@ -27400,8 +27831,8 @@ snapshots: '@aws-crypto/sha1-browser': 3.0.0 '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.575.0 - '@aws-sdk/client-sts': 3.575.0(@aws-sdk/client-sso-oidc@3.575.0) + '@aws-sdk/client-sso-oidc': 3.575.0(@aws-sdk/client-sts@3.575.0) + '@aws-sdk/client-sts': 3.575.0 '@aws-sdk/core': 3.575.0 '@aws-sdk/credential-provider-node': 3.575.0(@aws-sdk/client-sso-oidc@3.575.0)(@aws-sdk/client-sts@3.575.0) '@aws-sdk/middleware-bucket-endpoint': 3.575.0 @@ -27697,11 +28128,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.575.0': + '@aws-sdk/client-sso-oidc@3.575.0(@aws-sdk/client-sts@3.575.0)': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.575.0(@aws-sdk/client-sso-oidc@3.575.0) + '@aws-sdk/client-sts': 3.575.0 '@aws-sdk/core': 3.575.0 '@aws-sdk/credential-provider-node': 3.575.0(@aws-sdk/client-sso-oidc@3.575.0)(@aws-sdk/client-sts@3.575.0) '@aws-sdk/middleware-host-header': 3.575.0 @@ -27740,6 +28171,7 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sts' - aws-crt '@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)': @@ -27918,11 +28350,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.575.0(@aws-sdk/client-sso-oidc@3.575.0)': + '@aws-sdk/client-sts@3.575.0': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.575.0 + '@aws-sdk/client-sso-oidc': 3.575.0(@aws-sdk/client-sts@3.575.0) '@aws-sdk/core': 3.575.0 '@aws-sdk/credential-provider-node': 3.575.0(@aws-sdk/client-sso-oidc@3.575.0)(@aws-sdk/client-sts@3.575.0) '@aws-sdk/middleware-host-header': 3.575.0 @@ -27961,7 +28393,6 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - aws-crt '@aws-sdk/client-sts@3.637.0': @@ -28166,7 +28597,7 @@ snapshots: '@aws-sdk/credential-provider-ini@3.575.0(@aws-sdk/client-sso-oidc@3.575.0)(@aws-sdk/client-sts@3.575.0)': dependencies: - '@aws-sdk/client-sts': 3.575.0(@aws-sdk/client-sso-oidc@3.575.0) + '@aws-sdk/client-sts': 3.575.0 '@aws-sdk/credential-provider-env': 3.575.0 '@aws-sdk/credential-provider-process': 3.575.0 '@aws-sdk/credential-provider-sso': 3.575.0(@aws-sdk/client-sso-oidc@3.575.0) @@ -28480,7 +28911,7 @@ snapshots: '@aws-sdk/credential-provider-web-identity@3.575.0(@aws-sdk/client-sts@3.575.0)': dependencies: - '@aws-sdk/client-sts': 3.575.0(@aws-sdk/client-sso-oidc@3.575.0) + '@aws-sdk/client-sts': 3.575.0 '@aws-sdk/types': 3.575.0 '@smithy/property-provider': 3.1.3 '@smithy/types': 3.3.0 @@ -29023,7 +29454,7 @@ snapshots: '@aws-sdk/token-providers@3.575.0(@aws-sdk/client-sso-oidc@3.575.0)': dependencies: - '@aws-sdk/client-sso-oidc': 3.575.0 + '@aws-sdk/client-sso-oidc': 3.575.0(@aws-sdk/client-sts@3.575.0) '@aws-sdk/types': 3.575.0 '@smithy/property-provider': 3.1.3 '@smithy/shared-ini-file-loader': 3.1.4 @@ -29032,7 +29463,7 @@ snapshots: '@aws-sdk/token-providers@3.614.0(@aws-sdk/client-sso-oidc@3.575.0)': dependencies: - '@aws-sdk/client-sso-oidc': 3.575.0 + '@aws-sdk/client-sso-oidc': 3.575.0(@aws-sdk/client-sts@3.575.0) '@aws-sdk/types': 3.609.0 '@smithy/property-provider': 3.1.3 '@smithy/shared-ini-file-loader': 3.1.4 @@ -30590,12 +31021,12 @@ snapshots: react-dom: 19.2.3(react@19.2.3) tslib: 2.8.1 - '@clerk/express@1.3.53(express@5.0.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@clerk/express@1.3.53(express@5.2.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@clerk/backend': 1.25.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@clerk/shared': 3.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@clerk/types': 4.48.0 - express: 5.0.1 + express: 5.2.1 tslib: 2.4.1 transitivePeerDependencies: - react @@ -32177,6 +32608,146 @@ snapshots: '@inkeep/cxkit-types@0.5.107': {} + '@inquirer/ansi@1.0.2': {} + + '@inquirer/checkbox@4.3.2(@types/node@22.15.13)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.15.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/confirm@5.1.21(@types/node@22.15.13)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/type': 3.0.10(@types/node@22.15.13) + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/core@10.3.2(@types/node@22.15.13)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.15.13) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/editor@4.2.23(@types/node@22.15.13)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/external-editor': 1.0.3(@types/node@22.15.13) + '@inquirer/type': 3.0.10(@types/node@22.15.13) + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/expand@4.0.23(@types/node@22.15.13)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/type': 3.0.10(@types/node@22.15.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/external-editor@1.0.3(@types/node@22.15.13)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/figures@1.0.15': {} + + '@inquirer/input@4.3.1(@types/node@22.15.13)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/type': 3.0.10(@types/node@22.15.13) + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/number@3.0.23(@types/node@22.15.13)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/type': 3.0.10(@types/node@22.15.13) + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/password@4.0.23(@types/node@22.15.13)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/type': 3.0.10(@types/node@22.15.13) + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/prompts@7.10.1(@types/node@22.15.13)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@22.15.13) + '@inquirer/confirm': 5.1.21(@types/node@22.15.13) + '@inquirer/editor': 4.2.23(@types/node@22.15.13) + '@inquirer/expand': 4.0.23(@types/node@22.15.13) + '@inquirer/input': 4.3.1(@types/node@22.15.13) + '@inquirer/number': 3.0.23(@types/node@22.15.13) + '@inquirer/password': 4.0.23(@types/node@22.15.13) + '@inquirer/rawlist': 4.1.11(@types/node@22.15.13) + '@inquirer/search': 3.2.2(@types/node@22.15.13) + '@inquirer/select': 4.4.2(@types/node@22.15.13) + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/prompts@7.3.2(@types/node@22.15.13)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@22.15.13) + '@inquirer/confirm': 5.1.21(@types/node@22.15.13) + '@inquirer/editor': 4.2.23(@types/node@22.15.13) + '@inquirer/expand': 4.0.23(@types/node@22.15.13) + '@inquirer/input': 4.3.1(@types/node@22.15.13) + '@inquirer/number': 3.0.23(@types/node@22.15.13) + '@inquirer/password': 4.0.23(@types/node@22.15.13) + '@inquirer/rawlist': 4.1.11(@types/node@22.15.13) + '@inquirer/search': 3.2.2(@types/node@22.15.13) + '@inquirer/select': 4.4.2(@types/node@22.15.13) + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/rawlist@4.1.11(@types/node@22.15.13)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/type': 3.0.10(@types/node@22.15.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/search@3.2.2(@types/node@22.15.13)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.15.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/select@4.4.2(@types/node@22.15.13)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.15.13) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.15.13) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.15.13 + + '@inquirer/type@3.0.10(@types/node@22.15.13)': + optionalDependencies: + '@types/node': 22.15.13 + '@internationalized/date@3.8.2': dependencies: '@swc/helpers': 0.5.15 @@ -32725,8 +33296,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 - '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.25': @@ -33146,7 +33715,10 @@ snapshots: resolve: 1.22.8 optional: true - '@microsoft/tsdoc@0.15.0': {} + '@microsoft/tsdoc@0.15.0': + optional: true + + '@microsoft/tsdoc@0.16.0': {} '@mole-inc/bin-wrapper@8.0.1': dependencies: @@ -33242,9 +33814,15 @@ snapshots: '@emnapi/runtime': 1.7.1 '@tybys/wasm-util': 0.9.0 - '@nestjs/axios@3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1)': + '@nestjs/axios@3.0.3(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + axios: 1.15.0 + rxjs: 7.8.1 + + '@nestjs/axios@4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1)': + dependencies: + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) axios: 1.15.0 rxjs: 7.8.1 @@ -33277,10 +33855,40 @@ snapshots: - uglify-js - webpack-cli - '@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)': + '@nestjs/cli@11.0.17(@swc/cli@0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@4.0.3))(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(esbuild@0.27.3)': + dependencies: + '@angular-devkit/core': 19.2.22(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.22(chokidar@4.0.3) + '@angular-devkit/schematics-cli': 19.2.22(@types/node@22.15.13)(chokidar@4.0.3) + '@inquirer/prompts': 7.10.1(@types/node@22.15.13) + '@nestjs/schematics': 11.0.10(chokidar@4.0.3)(typescript@5.9.3) + ansis: 4.2.0 + chokidar: 4.0.3 + cli-table3: 0.6.5 + commander: 4.1.1 + fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.105.4(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3)) + glob: 13.0.6 + node-emoji: 1.11.0 + ora: 5.4.1 + tsconfig-paths: 4.2.0 + tsconfig-paths-webpack-plugin: 4.2.0 + typescript: 5.9.3 + webpack: 5.105.4(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3) + webpack-node-externals: 3.0.0 + optionalDependencies: + '@swc/cli': 0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@4.0.3) + '@swc/core': 1.7.26(@swc/helpers@0.5.15) + transitivePeerDependencies: + - '@types/node' + - esbuild + - uglify-js + - webpack-cli + + '@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: file-type: 21.3.4 iterare: 1.2.1 + load-esm: 1.0.3 reflect-metadata: 0.2.2 rxjs: 7.8.1 tslib: 2.8.1 @@ -33291,39 +33899,80 @@ snapshots: transitivePeerDependencies: - supports-color - '@nestjs/config@3.2.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1)': + '@nestjs/config@3.2.3(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) dotenv: 16.4.5 dotenv-expand: 10.0.0 lodash: 4.18.1 rxjs: 7.8.1 - '@nestjs/core@10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)': + '@nestjs/core@11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nuxtjs/opencollective': 0.3.2(encoding@0.1.13) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nuxt/opencollective': 0.4.1 fast-safe-stringify: 2.1.1 iterare: 1.2.1 - path-to-regexp: 3.3.0 + path-to-regexp: 8.4.2 reflect-metadata: 0.2.2 rxjs: 7.8.1 tslib: 2.8.1 uid: 2.0.2 optionalDependencies: - '@nestjs/platform-express': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) - '@nestjs/websockets': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-socket.io@10.4.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/platform-express': 10.4.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) + '@nestjs/websockets': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-socket.io@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + + '@nestjs/core@11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1)': + dependencies: + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nuxt/opencollective': 0.4.1 + fast-safe-stringify: 2.1.1 + iterare: 1.2.1 + path-to-regexp: 8.4.2 + reflect-metadata: 0.2.2 + rxjs: 7.8.1 + tslib: 2.8.1 + uid: 2.0.2 + optionalDependencies: + '@nestjs/platform-express': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) + '@nestjs/websockets': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-socket.io@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + + '@nestjs/graphql@12.0.9(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)': + dependencies: + '@graphql-tools/merge': 9.0.0(graphql@16.9.0) + '@graphql-tools/schema': 10.0.0(graphql@16.9.0) + '@graphql-tools/utils': 10.0.6(graphql@16.9.0) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/mapped-types': 2.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + chokidar: 3.5.3 + fast-glob: 3.3.1 + graphql: 16.9.0 + graphql-tag: 2.12.6(graphql@16.9.0) + graphql-ws: 5.14.0(graphql@16.9.0) + lodash: 4.18.1 + normalize-path: 3.0.0 + reflect-metadata: 0.2.2 + subscriptions-transport-ws: 0.11.0(graphql@16.9.0) + tslib: 2.6.2 + uuid: 9.0.0 + ws: 8.18.0 + optionalDependencies: + class-transformer: 0.5.1 + class-validator: 0.14.1 transitivePeerDependencies: - - encoding + - bufferutil + - utf-8-validate + optional: true - '@nestjs/graphql@12.0.9(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(ts-morph@24.0.0)': + '@nestjs/graphql@12.0.9(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(ts-morph@24.0.0)': dependencies: '@graphql-tools/merge': 9.0.0(graphql@16.9.0) '@graphql-tools/schema': 10.0.0(graphql@16.9.0) '@graphql-tools/utils': 10.0.6(graphql@16.9.0) - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/mapped-types': 2.0.2(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/mapped-types': 2.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) chokidar: 3.5.3 fast-glob: 3.3.1 graphql: 16.9.0 @@ -33345,38 +33994,38 @@ snapshots: - utf-8-validate optional: true - '@nestjs/jwt@10.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))': + '@nestjs/jwt@11.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@types/jsonwebtoken': 9.0.5 - jsonwebtoken: 9.0.2 + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@types/jsonwebtoken': 9.0.10 + jsonwebtoken: 9.0.3 - '@nestjs/mapped-types@2.0.2(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': + '@nestjs/mapped-types@2.0.2(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) reflect-metadata: 0.2.2 optionalDependencies: class-transformer: 0.5.1 class-validator: 0.14.1 optional: true - '@nestjs/mapped-types@2.0.5(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': + '@nestjs/mapped-types@2.1.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) reflect-metadata: 0.2.2 optionalDependencies: class-transformer: 0.5.1 class-validator: 0.14.1 - '@nestjs/passport@10.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0)': + '@nestjs/passport@11.0.5(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) passport: 0.7.0 - '@nestjs/platform-express@10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)': + '@nestjs/platform-express@10.4.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) body-parser: 1.20.3 cors: 2.8.5 express: 4.21.2 @@ -33385,24 +34034,35 @@ snapshots: transitivePeerDependencies: - supports-color - '@nestjs/platform-socket.io@10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/websockets@10.4.18)(rxjs@7.8.1)': + '@nestjs/platform-express@11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/websockets': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-socket.io@10.4.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + cors: 2.8.6 + express: 5.2.1 + multer: 2.1.1 + path-to-regexp: 8.4.2 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@nestjs/platform-socket.io@11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/websockets@11.1.18)(rxjs@7.8.1)': + dependencies: + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/websockets': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-socket.io@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) rxjs: 7.8.1 - socket.io: 4.8.1 + socket.io: 4.8.3 tslib: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@nestjs/schedule@4.1.1(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)': + '@nestjs/schedule@6.1.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) - cron: 3.1.7 - uuid: 10.0.0 + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + cron: 4.4.0 '@nestjs/schematics@10.1.4(chokidar@3.6.0)(typescript@5.3.3)': dependencies: @@ -33426,33 +34086,55 @@ snapshots: transitivePeerDependencies: - chokidar - '@nestjs/serve-static@4.0.2(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(express@4.21.2)': + '@nestjs/schematics@11.0.10(chokidar@4.0.3)(typescript@5.6.2)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) - path-to-regexp: 1.9.0 + '@angular-devkit/core': 19.2.23(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.23(chokidar@4.0.3) + comment-json: 4.6.2 + jsonc-parser: 3.3.1 + pluralize: 8.0.0 + typescript: 5.6.2 + transitivePeerDependencies: + - chokidar + + '@nestjs/schematics@11.0.10(chokidar@4.0.3)(typescript@5.9.3)': + dependencies: + '@angular-devkit/core': 19.2.23(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.23(chokidar@4.0.3) + comment-json: 4.6.2 + jsonc-parser: 3.3.1 + pluralize: 8.0.0 + typescript: 5.9.3 + transitivePeerDependencies: + - chokidar + + '@nestjs/serve-static@5.0.4(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(express@5.2.1)': + dependencies: + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + path-to-regexp: 8.4.0 optionalDependencies: - express: 4.21.2 + express: 5.2.1 - '@nestjs/swagger@7.4.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': + '@nestjs/swagger@11.2.6(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': dependencies: - '@microsoft/tsdoc': 0.15.0 - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/mapped-types': 2.0.5(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + '@microsoft/tsdoc': 0.16.0 + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/mapped-types': 2.1.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) js-yaml: 4.1.1 lodash: 4.18.1 - path-to-regexp: 3.3.0 + path-to-regexp: 8.4.0 reflect-metadata: 0.2.2 - swagger-ui-dist: 5.17.14 + swagger-ui-dist: 5.31.0 optionalDependencies: class-transformer: 0.5.1 class-validator: 0.14.1 - '@nestjs/terminus@10.2.3(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1)': + '@nestjs/terminus@10.2.3(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@3.0.3(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) boxen: 5.1.2 check-disk-space: 3.4.0 reflect-metadata: 0.2.2 @@ -33460,34 +34142,56 @@ snapshots: optionalDependencies: '@grpc/grpc-js': 1.14.3 '@grpc/proto-loader': 0.8.0 - '@nestjs/axios': 3.0.3(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) + '@nestjs/axios': 3.0.3(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) mongoose: 8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7) - '@nestjs/testing@10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-express@10.4.18)': + '@nestjs/terminus@11.1.1(@grpc/grpc-js@1.14.3)(@grpc/proto-loader@0.8.0)(@nestjs/axios@4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1))(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(mongoose@8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7))(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + boxen: 5.1.2 + check-disk-space: 3.4.0 + reflect-metadata: 0.2.2 + rxjs: 7.8.1 + optionalDependencies: + '@grpc/grpc-js': 1.14.3 + '@grpc/proto-loader': 0.8.0 + '@nestjs/axios': 4.0.1(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.15.0)(rxjs@7.8.1) + mongoose: 8.21.0(@aws-sdk/credential-providers@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)))(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.7) + + '@nestjs/testing@10.4.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@10.4.18)': + dependencies: + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) tslib: 2.8.1 optionalDependencies: - '@nestjs/platform-express': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18) + '@nestjs/platform-express': 10.4.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) - '@nestjs/throttler@6.2.1(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(reflect-metadata@0.2.2)': + '@nestjs/testing@11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-express@11.1.18)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) + tslib: 2.8.1 + optionalDependencies: + '@nestjs/platform-express': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18) + + '@nestjs/throttler@6.5.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(reflect-metadata@0.2.2)': + dependencies: + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) reflect-metadata: 0.2.2 - '@nestjs/websockets@10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@nestjs/platform-socket.io@10.4.18)(reflect-metadata@0.2.2)(rxjs@7.8.1)': + '@nestjs/websockets@11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@nestjs/platform-socket.io@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) iterare: 1.2.1 object-hash: 3.0.0 reflect-metadata: 0.2.2 rxjs: 7.8.1 tslib: 2.8.1 optionalDependencies: - '@nestjs/platform-socket.io': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/websockets@10.4.18)(rxjs@7.8.1) + '@nestjs/platform-socket.io': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/websockets@11.1.18)(rxjs@7.8.1) '@newrelic/fn-inspect@4.4.0': dependencies: @@ -33657,13 +34361,9 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@nuxtjs/opencollective@0.3.2(encoding@0.1.13)': + '@nuxt/opencollective@0.4.1': dependencies: - chalk: 4.1.2 - consola: 2.15.3 - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding + consola: 3.2.3 '@nx/devkit@20.1.2(nx@20.1.2(@swc-node/register@1.10.10(@swc/core@1.7.26(@swc/helpers@0.5.15))(@swc/types@0.1.12)(typescript@5.6.2))(@swc/core@1.7.26(@swc/helpers@0.5.15)))': dependencies: @@ -38414,6 +39114,8 @@ snapshots: transitivePeerDependencies: - zenObservable + '@scarf/scarf@1.4.0': {} + '@sec-ant/readable-stream@0.4.1': {} '@segment/analytics-core@1.4.0': @@ -38629,10 +39331,10 @@ snapshots: '@sentry/types': 7.114.0 '@sentry/utils': 7.114.0 - '@sentry/nestjs@8.55.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)': + '@sentry/nestjs@8.55.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)': dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@sentry/core': 8.55.0 '@sentry/node': 8.55.0 transitivePeerDependencies: @@ -40454,6 +41156,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@swc/cli@0.3.12(@swc/core@1.7.26(@swc/helpers@0.5.15))(chokidar@4.0.3)': + dependencies: + '@mole-inc/bin-wrapper': 8.0.1 + '@swc/core': 1.7.26(@swc/helpers@0.5.15) + '@swc/counter': 0.1.3 + commander: 8.3.0 + fast-glob: 3.3.1 + minimatch: 9.0.9 + piscina: 4.6.1 + semver: 7.7.2 + slash: 3.0.0 + source-map: 0.7.4 + optionalDependencies: + chokidar: 4.0.3 + transitivePeerDependencies: + - supports-color + optional: true + '@swc/core-darwin-arm64@1.7.26': optional: true @@ -40517,7 +41237,7 @@ snapshots: '@tailwindcss/node@4.0.12': dependencies: - enhanced-resolve: 5.18.4 + enhanced-resolve: 5.20.1 jiti: 2.6.1 tailwindcss: 4.0.12 @@ -40646,10 +41366,10 @@ snapshots: postcss: 8.4.47 tailwindcss: 4.1.18 - '@tailwindcss/typography@0.5.19(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3)))': + '@tailwindcss/typography@0.5.19(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3)))': dependencies: postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3)) + tailwindcss: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3)) '@tanem/svg-injector@10.1.68': dependencies: @@ -41350,6 +42070,11 @@ snapshots: dependencies: '@types/node': 22.15.13 + '@types/jsonwebtoken@9.0.10': + dependencies: + '@types/ms': 0.7.31 + '@types/node': 22.15.13 + '@types/jsonwebtoken@9.0.5': dependencies: '@types/node': 22.15.13 @@ -41387,6 +42112,8 @@ snapshots: '@types/luxon@3.4.2': {} + '@types/luxon@3.7.1': {} + '@types/markdown-escape@1.1.3': {} '@types/markdown-it@14.1.2': @@ -42863,7 +43590,6 @@ snapshots: ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: ajv: 8.18.0 - optional: true ajv-keywords@3.5.2(ajv@6.14.0): dependencies: @@ -42960,6 +43686,8 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) + ansis@4.2.0: {} + any-observable@0.3.0(rxjs@6.6.7): optionalDependencies: rxjs: 6.6.7 @@ -44103,6 +44831,8 @@ snapshots: chardet@0.7.0: {} + chardet@2.1.1: {} + check-disk-space@3.4.0: {} check-error@1.0.3: @@ -44210,6 +44940,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + chownr@3.0.0: {} chrome-trace-event@1.0.4: {} @@ -44507,6 +45241,11 @@ snapshots: has-own-prop: 2.0.0 repeat-string: 1.6.1 + comment-json@4.6.2: + dependencies: + array-timsort: 1.0.3 + esprima: 4.0.1 + common-tags@1.8.2: optional: true @@ -44594,8 +45333,6 @@ snapshots: write-file-atomic: 3.0.3 xdg-basedir: 4.0.0 - consola@2.15.3: {} - consola@3.2.3: {} console-control-strings@1.1.0: {} @@ -44661,6 +45398,11 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + cors@2.8.6: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + corser@2.0.1: {} cose-base@1.0.3: @@ -44753,6 +45495,11 @@ snapshots: '@types/luxon': 3.4.2 luxon: 3.4.4 + cron@4.4.0: + dependencies: + '@types/luxon': 3.7.1 + luxon: 3.7.2 + cross-env@7.0.3: dependencies: cross-spawn: 7.0.5 @@ -45776,7 +46523,7 @@ snapshots: enhanced-resolve@5.18.4: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.3.0 enhanced-resolve@5.20.1: dependencies: @@ -46354,6 +47101,39 @@ snapshots: transitivePeerDependencies: - supports-color + express@5.2.1: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.2 + content-disposition: 1.0.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.3(supports-color@8.1.1) + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.1 + fresh: 2.0.0 + http-errors: 2.0.1 + merge-descriptors: 2.0.0 + mime-types: 3.0.0 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.15.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.1.0 + serve-static: 2.2.1 + statuses: 2.0.2 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + ext-list@2.2.2: dependencies: mime-db: 1.53.0 @@ -46567,7 +47347,7 @@ snapshots: dependencies: app-module-path: 2.2.0 commander: 12.1.0 - enhanced-resolve: 5.18.4 + enhanced-resolve: 5.20.1 module-definition: 6.0.0 module-lookup-amd: 9.0.2 resolve: 1.22.8 @@ -46611,6 +47391,17 @@ snapshots: transitivePeerDependencies: - supports-color + finalhandler@2.1.1: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 @@ -46710,7 +47501,7 @@ snapshots: fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.105.4(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3)): dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.27.1 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 8.2.0 @@ -46720,11 +47511,28 @@ snapshots: minimatch: 3.1.5 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.7.3 - tapable: 2.2.1 + semver: 7.7.4 + tapable: 2.3.0 typescript: 5.3.3 webpack: 5.105.4(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3) + fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.105.4(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3)): + dependencies: + '@babel/code-frame': 7.27.1 + chalk: 4.1.2 + chokidar: 4.0.3 + cosmiconfig: 8.2.0 + deepmerge: 4.3.1 + fs-extra: 10.1.0 + memfs: 3.5.0 + minimatch: 3.1.5 + node-abort-controller: 3.1.1 + schema-utils: 3.3.0 + semver: 7.7.4 + tapable: 2.3.0 + typescript: 5.9.3 + webpack: 5.105.4(@swc/core@1.7.26(@swc/helpers@0.5.15))(esbuild@0.27.3) + form-data-encoder@1.7.2: {} form-data@2.5.5: @@ -47114,6 +47922,12 @@ snapshots: package-json-from-dist: 1.0.0 path-scurry: 2.0.0 + glob@13.0.6: + dependencies: + minimatch: 10.2.4 + minipass: 7.1.3 + path-scurry: 2.0.2 + glob@6.0.4: dependencies: inflight: 1.0.6 @@ -50180,6 +50994,8 @@ snapshots: dependencies: react: 19.2.3 + load-esm@1.0.3: {} + load-json-file@4.0.0: dependencies: graceful-fs: 4.2.11 @@ -50421,6 +51237,8 @@ snapshots: luxon@3.4.4: {} + luxon@3.7.2: {} + madge@8.0.0(typescript@5.6.2): dependencies: chalk: 4.1.2 @@ -50450,7 +51268,7 @@ snapshots: magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 magic-string@0.30.21: dependencies: @@ -51135,6 +51953,8 @@ snapshots: mime-db@1.53.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -51143,6 +51963,10 @@ snapshots: dependencies: mime-db: 1.53.0 + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mime@2.6.0: {} @@ -51223,6 +52047,8 @@ snapshots: minipass@7.1.2: {} + minipass@7.1.3: {} + minizlib@3.1.0: dependencies: minipass: 7.1.2 @@ -51523,6 +52349,8 @@ snapshots: mute-stream@1.0.0: {} + mute-stream@2.0.0: {} + mv@2.1.1: dependencies: mkdirp: 0.5.6 @@ -51581,13 +52409,31 @@ snapshots: neo-async@2.6.2: {} - nest-raven@10.1.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1)(ts-morph@24.0.0): + nest-raven@10.1.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1): dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@sentry/node': 8.55.0 rxjs: 7.8.1 optionalDependencies: - '@nestjs/graphql': 12.0.9(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(ts-morph@24.0.0) + '@nestjs/graphql': 12.0.9(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2) + transitivePeerDependencies: + - '@apollo/subgraph' + - '@nestjs/core' + - bufferutil + - class-transformer + - class-validator + - graphql + - reflect-metadata + - ts-morph + - utf-8-validate + + nest-raven@10.1.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(@sentry/node@8.55.0)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(rxjs@7.8.1)(ts-morph@24.0.0): + dependencies: + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@sentry/node': 8.55.0 + rxjs: 7.8.1 + optionalDependencies: + '@nestjs/graphql': 12.0.9(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.2.2)(ts-morph@24.0.0) transitivePeerDependencies: - '@apollo/subgraph' - '@nestjs/core' @@ -51601,17 +52447,17 @@ snapshots: nested-error-stacks@2.0.1: {} - nestjs-otel@6.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.18): + nestjs-otel@6.2.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.1.18): dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.18(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.18)(@nestjs/websockets@10.4.18)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 11.1.18(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.1.18)(@nestjs/websockets@11.1.18)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@opentelemetry/api': 1.9.0 '@opentelemetry/host-metrics': 0.35.5(@opentelemetry/api@1.9.0) response-time: 2.3.4 - nestjs-pino@4.2.0(@nestjs/common@10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(pino-http@8.3.3): + nestjs-pino@4.2.0(@nestjs/common@11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(pino-http@8.3.3): dependencies: - '@nestjs/common': 10.4.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 11.1.18(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) pino-http: 8.3.3 netmask@2.0.2: {} @@ -52625,6 +53471,11 @@ snapshots: lru-cache: 11.2.4 minipass: 7.1.2 + path-scurry@2.0.2: + dependencies: + lru-cache: 11.2.4 + minipass: 7.1.3 + path-temp@2.0.0: dependencies: unique-string: 2.0.0 @@ -52635,12 +53486,12 @@ snapshots: dependencies: isarray: 0.0.1 - path-to-regexp@3.3.0: {} - path-to-regexp@6.3.0: {} path-to-regexp@8.4.0: {} + path-to-regexp@8.4.2: {} + path-type@3.0.0: dependencies: pify: 3.0.0 @@ -53022,13 +53873,13 @@ snapshots: postcss: 8.4.47 ts-node: 10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.6.2) - postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3)): + postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3)): dependencies: lilconfig: 3.1.3 yaml: 2.8.3 optionalDependencies: postcss: 8.4.47 - ts-node: 10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3) + ts-node: 10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3) postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.4.47)(tsx@4.19.0)(yaml@2.8.3): dependencies: @@ -54157,6 +55008,8 @@ snapshots: dependencies: picomatch: 2.3.2 + readdirp@4.1.2: {} + real-require@0.1.0: {} real-require@0.2.0: {} @@ -54569,6 +55422,16 @@ snapshots: parseurl: 1.3.3 path-to-regexp: 8.4.0 + router@2.2.0: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.4.2 + transitivePeerDependencies: + - supports-color + rrdom@2.0.0-alpha.16: dependencies: rrweb-snapshot: 2.0.0-alpha.16 @@ -54801,6 +55664,22 @@ snapshots: transitivePeerDependencies: - supports-color + send@1.2.1: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + sentence-case@2.1.1: dependencies: no-case: 2.3.2 @@ -54832,6 +55711,15 @@ snapshots: transitivePeerDependencies: - supports-color + serve-static@2.2.1: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + set-blocking@2.0.0: {} set-cookie-parser@2.7.2: {} @@ -55117,6 +56005,20 @@ snapshots: - supports-color - utf-8-validate + socket.io@4.8.3: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.4.3(supports-color@8.1.1) + engine.io: 6.6.2 + socket.io-adapter: 2.5.2 + socket.io-parser: 4.2.6 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 @@ -55827,6 +56729,10 @@ snapshots: swagger-ui-dist@5.17.14: {} + swagger-ui-dist@5.31.0: + dependencies: + '@scarf/scarf': 1.4.0 + swagger-ui-express@4.6.2(express@5.0.1): dependencies: express: 5.0.1 @@ -55878,9 +56784,9 @@ snapshots: tailwind-merge@3.4.0: {} - tailwind-scrollbar@3.1.0(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3))): + tailwind-scrollbar@3.1.0(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3))): dependencies: - tailwindcss: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3)) + tailwindcss: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3)) tailwind-variants@0.3.0(tailwindcss@4.1.18): dependencies: @@ -55891,9 +56797,9 @@ snapshots: dependencies: tailwindcss: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.6.2)) - tailwindcss-animate@1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3))): dependencies: - tailwindcss: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3)) + tailwindcss: 3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3)) tailwindcss-animate@1.0.7(tailwindcss@4.0.12): dependencies: @@ -55930,7 +56836,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3)): + tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -55949,7 +56855,7 @@ snapshots: postcss: 8.4.47 postcss-import: 15.1.0(postcss@8.4.47) postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.8.3)) + postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3)) postcss-nested: 6.2.0(postcss@8.4.47) postcss-selector-parser: 6.1.2 resolve: 1.22.8 @@ -56528,6 +57434,27 @@ snapshots: optionalDependencies: '@swc/core': 1.7.26(@swc/helpers@0.5.15) + ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@22.15.13)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 22.15.13 + acorn: 8.15.0 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.4 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.26(@swc/helpers@0.5.15) + optional: true + ts-node@9.1.1(typescript@5.6.2): dependencies: arg: 4.1.3 @@ -56545,7 +57472,14 @@ snapshots: tsconfig-paths-webpack-plugin@4.1.0: dependencies: chalk: 4.1.2 - enhanced-resolve: 5.18.4 + enhanced-resolve: 5.20.1 + tsconfig-paths: 4.2.0 + + tsconfig-paths-webpack-plugin@4.2.0: + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.20.1 + tapable: 2.3.0 tsconfig-paths: 4.2.0 tsconfig-paths@4.1.2: @@ -56853,6 +57787,8 @@ snapshots: typescript@5.8.3: {} + typescript@5.9.3: {} + typical@4.0.0: {} typical@5.2.0: {} @@ -58318,6 +59254,8 @@ snapshots: yocto-queue@1.1.1: {} + yoctocolors-cjs@2.1.3: {} + yoctocolors@2.1.1: {} youch-core@0.3.3: