diff --git a/.cspell.json b/.cspell.json index a8a7433b309..d6b0bf2c179 100644 --- a/.cspell.json +++ b/.cspell.json @@ -776,6 +776,7 @@ "xoxb", "fanout", "adminconsent", + "Annotatable", "Arik", "Chakma", "selectednode", diff --git a/apps/api/package.json b/apps/api/package.json index 4bbb03774e0..b2ab324976c 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -138,6 +138,7 @@ }, "devDependencies": { "@faker-js/faker": "^6.0.0", + "@novu/js": "workspace:*", "@nestjs/cli": "10.4.5", "@nestjs/schematics": "10.1.4", "@nestjs/testing": "10.4.18", diff --git a/apps/api/src/app/ai/services/llm.service.ts b/apps/api/src/app/ai/services/llm.service.ts index f9e62a71d16..6e30e067267 100644 --- a/apps/api/src/app/ai/services/llm.service.ts +++ b/apps/api/src/app/ai/services/llm.service.ts @@ -44,7 +44,7 @@ export class LlmService { this.config = { provider, - apiKey, + apiKey: apiKey!, model: modelId, maxOutputTokens: parseInt(process.env.AI_LLM_MAX_OUTPUT_TOKENS || '4096', 10), temperature: parseFloat(process.env.AI_LLM_TEMPERATURE || '0'), diff --git a/apps/api/src/app/environments-v1/usecases/construct-framework-workflow/construct-framework-workflow.usecase.ts b/apps/api/src/app/environments-v1/usecases/construct-framework-workflow/construct-framework-workflow.usecase.ts index c3ac088b197..ddcdd2c29eb 100644 --- a/apps/api/src/app/environments-v1/usecases/construct-framework-workflow/construct-framework-workflow.usecase.ts +++ b/apps/api/src/app/environments-v1/usecases/construct-framework-workflow/construct-framework-workflow.usecase.ts @@ -1,7 +1,6 @@ import { Injectable, InternalServerErrorException } from '@nestjs/common'; import { emailControlSchema, - FeatureFlagsService, InMemoryLRUCacheService, InMemoryLRUCacheStore, Instrument, @@ -19,9 +18,9 @@ import { import { workflow } from '@novu/framework/express'; import { ActionStep, ChannelStep, PostActionEnum, Schema, Step, StepOutput, Workflow } from '@novu/framework/internal'; import { EnvironmentTypeEnum, LAYOUT_PREVIEW_EMAIL_STEP, LAYOUT_PREVIEW_WORKFLOW_ID, StepTypeEnum } from '@novu/shared'; -import { AdditionalOperation, RulesLogic } from 'json-logic-js'; +import { RulesLogic } from 'json-logic-js'; import _ from 'lodash'; -import { evaluateRules } from '../../../shared/services/query-parser/query-parser.service'; +import { ExtendedOperations, evaluateRules } from '../../../shared/services/query-parser/query-parser.service'; import { isMatchingJsonSchema } from '../../../workflows-v2/util/jsonToSchema'; import { ChatOutputRendererUsecase, @@ -53,7 +52,6 @@ export class ConstructFrameworkWorkflow { private delayOutputRendererUseCase: DelayOutputRendererUsecase, private digestOutputRendererUseCase: DigestOutputRendererUsecase, private throttleOutputRendererUseCase: ThrottleOutputRendererUsecase, - private featureFlagsService: FeatureFlagsService, private inMemoryLRUCacheService: InMemoryLRUCacheService ) {} @@ -426,7 +424,7 @@ export class ConstructFrameworkWorkflow { controlValues: { [x: string]: unknown }, variables: FullPayloadForRender ): Promise { - const skipRules = controlValues.skip as RulesLogic; + const skipRules = controlValues.skip as RulesLogic; if (_.isEmpty(skipRules)) { return false; diff --git a/apps/api/src/app/events/e2e/bridge-trigger.e2e.ts b/apps/api/src/app/events/e2e/bridge-trigger.e2e.ts index 5381ce57288..6eb4d827b63 100644 --- a/apps/api/src/app/events/e2e/bridge-trigger.e2e.ts +++ b/apps/api/src/app/events/e2e/bridge-trigger.e2e.ts @@ -1994,9 +1994,12 @@ describe('Novu-Hosted Bridge Trigger #novu-v2', () => { await triggerEvent(session, responseData.workflowId, subscriber._id, {}); currentMetrics = await (jobsService as any).getQueueMetrics(); console.log( - `[Test] Queue breakdown - Workflow: ${currentMetrics.activeWorkflowJobsCount + currentMetrics.waitingWorkflowJobsCount}, Subscriber: ${currentMetrics.activeSubscriberJobsCount + currentMetrics.waitingSubscriberJobsCount}, Standard: ${currentMetrics.activeStandardJobsCount + currentMetrics.waitingStandardJobsCount}` + `[Test] Start Wait For Job Completion - Queue breakdown - Workflow: ${currentMetrics.activeWorkflowJobsCount + currentMetrics.waitingWorkflowJobsCount}, Subscriber: ${currentMetrics.activeSubscriberJobsCount + currentMetrics.waitingSubscriberJobsCount}, Standard: ${currentMetrics.activeStandardJobsCount + currentMetrics.waitingStandardJobsCount}` ); await session.waitForJobCompletion(); + console.log( + `[Test] End Wait For Job Completion - Queue breakdown - Workflow: ${currentMetrics.activeWorkflowJobsCount + currentMetrics.waitingWorkflowJobsCount}, Subscriber: ${currentMetrics.activeSubscriberJobsCount + currentMetrics.waitingSubscriberJobsCount}, Standard: ${currentMetrics.activeStandardJobsCount + currentMetrics.waitingStandardJobsCount}` + ); const sentMessages = await messageRepository.find({ _environmentId: session.environment._id, diff --git a/apps/api/src/app/inbox/dtos/get-preferences-response.dto.ts b/apps/api/src/app/inbox/dtos/get-preferences-response.dto.ts index 5142a713e23..0511ce5d47d 100644 --- a/apps/api/src/app/inbox/dtos/get-preferences-response.dto.ts +++ b/apps/api/src/app/inbox/dtos/get-preferences-response.dto.ts @@ -4,6 +4,7 @@ import { Type } from 'class-transformer'; import { IsDefined, IsEnum, IsOptional, ValidateNested } from 'class-validator'; import { RulesLogic } from 'json-logic-js'; import { SubscriberPreferenceChannels } from '../../shared/dtos/preference-channels'; +import { ExtendedOperations } from '../../shared/services/query-parser/query-parser.service'; import { WorkflowDto } from './workflow.dto'; export class GetPreferencesResponseDto { @@ -50,5 +51,5 @@ export class GetPreferencesResponseDto { nullable: true, }) @IsOptional() - condition?: RulesLogic; + condition?: RulesLogic; } diff --git a/apps/api/src/app/inbox/dtos/update-preferences-request.dto.ts b/apps/api/src/app/inbox/dtos/update-preferences-request.dto.ts index 618b163d166..5bbf024a64c 100644 --- a/apps/api/src/app/inbox/dtos/update-preferences-request.dto.ts +++ b/apps/api/src/app/inbox/dtos/update-preferences-request.dto.ts @@ -3,6 +3,7 @@ import { Type } from 'class-transformer'; import { IsBoolean, IsObject, IsOptional, ValidateNested } from 'class-validator'; import { RulesLogic } from 'json-logic-js'; import { ScheduleDto } from '../../shared/dtos/schedule'; +import { ExtendedOperations } from '../../shared/services/query-parser/query-parser.service'; export class UpdatePreferencesRequestDto { @IsOptional() @@ -47,5 +48,5 @@ export class UpdatePreferencesRequestDto { }) @IsObject() @IsOptional() - readonly condition?: RulesLogic; + readonly condition?: RulesLogic; } diff --git a/apps/api/src/app/inbox/usecases/update-preferences/update-preferences.command.ts b/apps/api/src/app/inbox/usecases/update-preferences/update-preferences.command.ts index 7c2a75a164f..6acb36d6f38 100644 --- a/apps/api/src/app/inbox/usecases/update-preferences/update-preferences.command.ts +++ b/apps/api/src/app/inbox/usecases/update-preferences/update-preferences.command.ts @@ -13,6 +13,7 @@ import { } from 'class-validator'; import { RulesLogic } from 'json-logic-js'; import { EnvironmentWithSubscriber } from '../../../shared/commands/project.command'; +import { ExtendedOperations } from '../../../shared/services/query-parser/query-parser.service'; class AllPreferences { @IsOptional() @@ -21,7 +22,7 @@ class AllPreferences { @IsOptional() @IsObject() - condition?: RulesLogic; + condition?: RulesLogic; } export class UpdatePreferencesCommand extends EnvironmentWithSubscriber { 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..7dcde911ca1 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 @@ -3,6 +3,7 @@ import { Type } from 'class-transformer'; import { IsArray, IsDefined, IsOptional, IsString, ValidateIf, ValidateNested } from 'class-validator'; import { RulesLogic } from 'json-logic-js'; import { WorkflowDto } from '../../../inbox/dtos/workflow.dto'; +import { ExtendedOperations } from '../../services/query-parser/query-parser.service'; export class TopicDto { @ApiProperty({ @@ -127,7 +128,7 @@ export class SubscriptionPreferenceDto { }) @ValidateIf((o) => o.condition !== undefined) @IsOptional() - condition?: RulesLogic; + condition?: RulesLogic; } export class SubscriptionResponseDto { 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..7bca7613f16 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 @@ -11,6 +11,7 @@ import { ValidateNested, } from 'class-validator'; import { RulesLogic } from 'json-logic-js'; +import { ExtendedOperations } from '../../services/query-parser/query-parser.service'; export class TopicSubscriberIdentifierDto { @ApiProperty({ @@ -57,7 +58,7 @@ export class BasePreferenceDto { }) @ValidateIf((o) => o.condition !== undefined) @IsOptional() - condition?: RulesLogic; + condition?: RulesLogic; } export class WorkflowPreferenceRequestDto extends BasePreferenceDto { diff --git a/apps/api/src/app/shared/services/query-parser/query-parser.service.spec.ts b/apps/api/src/app/shared/services/query-parser/query-parser.service.spec.ts index 38df975b1c2..f59d6ae0620 100644 --- a/apps/api/src/app/shared/services/query-parser/query-parser.service.spec.ts +++ b/apps/api/src/app/shared/services/query-parser/query-parser.service.spec.ts @@ -1,20 +1,42 @@ import { expect } from 'chai'; -import { AdditionalOperation, RulesLogic } from 'json-logic-js'; +import { RulesLogic } from 'json-logic-js'; -import { evaluateRules } from './query-parser.service'; +import { + AnnotatedRule, + ExtendedOperations, + evaluateRules, + extractFieldsFromRules, + extractIdsFromRules, + extractRuleFromWrapped, +} from './query-parser.service'; describe('QueryParserService', () => { describe('Smoke Tests', () => { it('should evaluate a simple equality rule', () => { - const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; + const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; const data = { value: 42 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; expect(result).to.be.true; }); + it('should evaluate a simple equality rule 2', () => { + const rule: AnnotatedRule = { + rule: { + and: [ + { id: 'Value must equal 42', rule: { '=': [{ var: 'value' }, 42] } }, + { notBetween: [{ var: 'number' }, [1, 5]] }, + ], + }, + }; + const data = { value: 42, number: 10 }; + const { result, error } = evaluateRules(rule, data); + expect(error).to.be.undefined; + expect(result).to.be.true; + }); + it('should evaluate a complex nested rule', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { and: [ { '=': [{ var: 'value' }, 42] }, { startsWith: [{ var: 'text' }, 'hello'] }, @@ -29,7 +51,7 @@ describe('QueryParserService', () => { describe('Error Handling', () => { it('should handle invalid data types gracefully', () => { - const rule: RulesLogic = { startsWith: [{ var: 'text' }, 123] }; + const rule: RulesLogic = { startsWith: [{ var: 'text' }, 123] }; const data = { text: 'hello' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -37,25 +59,36 @@ describe('QueryParserService', () => { }); it('should throw error when safe mode is disabled', () => { - const rule: RulesLogic = { invalid: 'operator' }; + const rule = { invalid: 'operator' } as unknown as RulesLogic; const data = { text: 'hello' }; expect(() => evaluateRules(rule, data, false)).to.throw('Failed to evaluate rule'); }); it('should return false and error when safe mode is enabled', () => { - const rule: RulesLogic = { invalid: 'operator' }; + const rule = { invalid: 'operator' } as unknown as RulesLogic; const data = { text: 'hello' }; const { result, error } = evaluateRules(rule, data, true); expect(error).to.not.be.undefined; expect(result).to.be.false; }); + + it('should expect an type error when the rule is invalid', () => { + // @ts-expect-error - invalid rule + // biome-ignore lint/correctness/noUnusedVariables: x + const rule: RulesLogic = { '=@': [{ var: 'value' }, 42] }; + }); + + it('should expect an type error when the rule is invalid', () => { + // @ts-expect-error - invalid rule + evaluateRules({ '=@': [{ var: 'value' }, 42] }, { value: 42 }, true); + }); }); }); describe('Custom Operators', () => { describe('= operator', () => { it('should return true when values are equal', () => { - const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; + const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; const data = { value: 42 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -63,7 +96,7 @@ describe('QueryParserService', () => { }); it('should return true when strings are equal', () => { - const rule: RulesLogic = { '=': [{ var: 'text' }, 'hello'] }; + const rule: RulesLogic = { '=': [{ var: 'text' }, 'hello'] }; const data = { text: 'hello' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -71,7 +104,7 @@ describe('QueryParserService', () => { }); it('should return true when comparing number and string (type coercion)', () => { - const rule: RulesLogic = { '=': [{ var: 'value' }, '42'] }; + const rule: RulesLogic = { '=': [{ var: 'value' }, '42'] }; const data = { value: 42 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -79,7 +112,7 @@ describe('QueryParserService', () => { }); it('should return false when values are not equal', () => { - const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; + const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; const data = { value: 43 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -87,7 +120,7 @@ describe('QueryParserService', () => { }); it('should return false when types are different and values cannot be coerced', () => { - const rule: RulesLogic = { '=': [{ var: 'value' }, 'not a number'] }; + const rule: RulesLogic = { '=': [{ var: 'value' }, 'not a number'] }; const data = { value: 42 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -97,7 +130,7 @@ describe('QueryParserService', () => { describe('startsWith operator', () => { it('should return true when string begins with given value', () => { - const rule: RulesLogic = { startsWith: [{ var: 'text' }, 'hello'] }; + const rule: RulesLogic = { startsWith: [{ var: 'text' }, 'hello'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -105,7 +138,7 @@ describe('QueryParserService', () => { }); it('should return false when string does not begin with given value', () => { - const rule: RulesLogic = { startsWith: [{ var: 'text' }, 'world'] }; + const rule: RulesLogic = { startsWith: [{ var: 'text' }, 'world'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -115,7 +148,7 @@ describe('QueryParserService', () => { describe('endsWith operator', () => { it('should return true when string ends with given value', () => { - const rule: RulesLogic = { endsWith: [{ var: 'text' }, 'world'] }; + const rule: RulesLogic = { endsWith: [{ var: 'text' }, 'world'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -123,7 +156,7 @@ describe('QueryParserService', () => { }); it('should return false when string does not end with given value', () => { - const rule: RulesLogic = { endsWith: [{ var: 'text' }, 'hello'] }; + const rule: RulesLogic = { endsWith: [{ var: 'text' }, 'hello'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -133,7 +166,7 @@ describe('QueryParserService', () => { describe('contains operator', () => { it('should return true when string contains given value', () => { - const rule: RulesLogic = { contains: [{ var: 'text' }, 'llo wo'] }; + const rule: RulesLogic = { contains: [{ var: 'text' }, 'llo wo'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -141,7 +174,7 @@ describe('QueryParserService', () => { }); it('should return false when string does not contain given value', () => { - const rule: RulesLogic = { contains: [{ var: 'text' }, 'xyz'] }; + const rule: RulesLogic = { contains: [{ var: 'text' }, 'xyz'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -151,7 +184,7 @@ describe('QueryParserService', () => { describe('doesNotContain operator', () => { it('should return true when string does not contain given value', () => { - const rule: RulesLogic = { doesNotContain: [{ var: 'text' }, 'xyz'] }; + const rule: RulesLogic = { doesNotContain: [{ var: 'text' }, 'xyz'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -159,7 +192,7 @@ describe('QueryParserService', () => { }); it('should return false when string contains given value', () => { - const rule: RulesLogic = { doesNotContain: [{ var: 'text' }, 'llo'] }; + const rule: RulesLogic = { doesNotContain: [{ var: 'text' }, 'llo'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -169,7 +202,7 @@ describe('QueryParserService', () => { describe('doesNotBeginWith operator', () => { it('should return true when string does not begin with given value', () => { - const rule: RulesLogic = { doesNotBeginWith: [{ var: 'text' }, 'world'] }; + const rule: RulesLogic = { doesNotBeginWith: [{ var: 'text' }, 'world'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -177,7 +210,7 @@ describe('QueryParserService', () => { }); it('should return false when string begins with given value', () => { - const rule: RulesLogic = { doesNotBeginWith: [{ var: 'text' }, 'hello'] }; + const rule: RulesLogic = { doesNotBeginWith: [{ var: 'text' }, 'hello'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -187,7 +220,7 @@ describe('QueryParserService', () => { describe('doesNotEndWith operator', () => { it('should return true when string does not end with given value', () => { - const rule: RulesLogic = { doesNotEndWith: [{ var: 'text' }, 'hello'] }; + const rule: RulesLogic = { doesNotEndWith: [{ var: 'text' }, 'hello'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -195,7 +228,7 @@ describe('QueryParserService', () => { }); it('should return false when string ends with given value', () => { - const rule: RulesLogic = { doesNotEndWith: [{ var: 'text' }, 'world'] }; + const rule: RulesLogic = { doesNotEndWith: [{ var: 'text' }, 'world'] }; const data = { text: 'hello world' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -205,7 +238,7 @@ describe('QueryParserService', () => { describe('null operator', () => { it('should return true when value is null', () => { - const rule: RulesLogic = { null: [{ var: 'value' }] }; + const rule: RulesLogic = { null: [{ var: 'value' }] }; const data = { value: null }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -213,7 +246,7 @@ describe('QueryParserService', () => { }); it('should return false when value is not null', () => { - const rule: RulesLogic = { null: [{ var: 'value' }] }; + const rule: RulesLogic = { null: [{ var: 'value' }] }; const data = { value: 'hello' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -223,7 +256,7 @@ describe('QueryParserService', () => { describe('notNull operator', () => { it('should return true when value is not null', () => { - const rule: RulesLogic = { notNull: [{ var: 'value' }] }; + const rule: RulesLogic = { notNull: [{ var: 'value' }] }; const data = { value: 'hello' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -231,7 +264,7 @@ describe('QueryParserService', () => { }); it('should return false when value is null', () => { - const rule: RulesLogic = { notNull: [{ var: 'value' }] }; + const rule: RulesLogic = { notNull: [{ var: 'value' }] }; const data = { value: null }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -241,7 +274,7 @@ describe('QueryParserService', () => { describe('notIn operator', () => { it('should return true when value is not in array', () => { - const rule: RulesLogic = { notIn: [{ var: 'value' }, ['a', 'b', 'c']] }; + const rule: RulesLogic = { notIn: [{ var: 'value' }, ['a', 'b', 'c']] }; const data = { value: 'd' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -249,7 +282,7 @@ describe('QueryParserService', () => { }); it('should return false when value is in array', () => { - const rule: RulesLogic = { notIn: [{ var: 'value' }, ['a', 'b', 'c']] }; + const rule: RulesLogic = { notIn: [{ var: 'value' }, ['a', 'b', 'c']] }; const data = { value: 'b' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -257,7 +290,7 @@ describe('QueryParserService', () => { }); it('should return false when ruleValue is not an array', () => { - const rule: RulesLogic = { notIn: [{ var: 'value' }, 'not an array'] }; + const rule = { notIn: [{ var: 'value' }, 'not an array'] } as unknown as RulesLogic; const data = { value: 'b' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -267,7 +300,7 @@ describe('QueryParserService', () => { describe('between operator', () => { it('should return true when number is between min and max', () => { - const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; const data = { value: 7 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -275,7 +308,7 @@ describe('QueryParserService', () => { }); it('should return true when number equals min', () => { - const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; const data = { value: 5 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -283,7 +316,7 @@ describe('QueryParserService', () => { }); it('should return true when number equals max', () => { - const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; const data = { value: 10 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -291,7 +324,7 @@ describe('QueryParserService', () => { }); it('should return false when number is less than min', () => { - const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; const data = { value: 4 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -299,7 +332,7 @@ describe('QueryParserService', () => { }); it('should return false when number is greater than max', () => { - const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; const data = { value: 11 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -307,7 +340,7 @@ describe('QueryParserService', () => { }); it('should return false when value is not a number', () => { - const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { between: [{ var: 'value' }, [5, 10]] }; const data = { value: 'not a number' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -315,7 +348,7 @@ describe('QueryParserService', () => { }); it('should return false when range is not valid', () => { - const rule: RulesLogic = { between: [{ var: 'value' }, [5]] }; + const rule = { between: [{ var: 'value' }, [5]] } as unknown as RulesLogic; const data = { value: 7 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -325,7 +358,7 @@ describe('QueryParserService', () => { describe('notBetween operator', () => { it('should return true when number is less than min', () => { - const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; const data = { value: 4 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -333,7 +366,7 @@ describe('QueryParserService', () => { }); it('should return true when number is greater than max', () => { - const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; const data = { value: 11 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -341,7 +374,7 @@ describe('QueryParserService', () => { }); it('should return false when number is between min and max', () => { - const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; const data = { value: 7 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -349,7 +382,7 @@ describe('QueryParserService', () => { }); it('should return false when number equals min', () => { - const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; const data = { value: 5 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -357,7 +390,7 @@ describe('QueryParserService', () => { }); it('should return false when number equals max', () => { - const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; const data = { value: 10 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -365,7 +398,7 @@ describe('QueryParserService', () => { }); it('should return false when value is not a number', () => { - const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; + const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5, 10]] }; const data = { value: 'not a number' }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -373,7 +406,7 @@ describe('QueryParserService', () => { }); it('should return false when range is not valid', () => { - const rule: RulesLogic = { notBetween: [{ var: 'value' }, [5]] }; + const rule = { notBetween: [{ var: 'value' }, [5]] } as unknown as RulesLogic; const data = { value: 7 }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -387,7 +420,7 @@ describe('QueryParserService', () => { const sevenDaysAgo = new Date(); sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7); - const rule: RulesLogic = { + const rule: RulesLogic = { moreThanXAgo: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: sevenDaysAgo.toISOString() }; @@ -400,7 +433,7 @@ describe('QueryParserService', () => { const threeDaysAgo = new Date(); threeDaysAgo.setDate(threeDaysAgo.getDate() - 3); - const rule: RulesLogic = { + const rule: RulesLogic = { moreThanXAgo: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: threeDaysAgo.toISOString() }; @@ -410,7 +443,7 @@ describe('QueryParserService', () => { }); it('should return false with invalid date input', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { moreThanXAgo: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: 'invalid-date' }; @@ -420,9 +453,9 @@ describe('QueryParserService', () => { }); it('should return false with invalid rule value', () => { - const rule: RulesLogic = { + const rule = { moreThanXAgo: [{ var: 'createdAt' }, { amount: 'invalid', unit: 'days' }], - }; + } as unknown as RulesLogic; const data = { createdAt: new Date().toISOString() }; const { result, error } = evaluateRules(rule, data); expect(error).to.be.undefined; @@ -435,7 +468,7 @@ describe('QueryParserService', () => { const threeDaysAgo = new Date(); threeDaysAgo.setDate(threeDaysAgo.getDate() - 3); - const rule: RulesLogic = { + const rule: RulesLogic = { lessThanXAgo: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: threeDaysAgo.toISOString() }; @@ -448,7 +481,7 @@ describe('QueryParserService', () => { const sevenDaysAgo = new Date(); sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7); - const rule: RulesLogic = { + const rule: RulesLogic = { lessThanXAgo: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: sevenDaysAgo.toISOString() }; @@ -463,7 +496,7 @@ describe('QueryParserService', () => { const threeDaysAgo = new Date(); threeDaysAgo.setDate(threeDaysAgo.getDate() - 3); - const rule: RulesLogic = { + const rule: RulesLogic = { withinLast: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: threeDaysAgo.toISOString() }; @@ -476,7 +509,7 @@ describe('QueryParserService', () => { const sevenDaysAgo = new Date(); sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7); - const rule: RulesLogic = { + const rule: RulesLogic = { withinLast: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: sevenDaysAgo.toISOString() }; @@ -489,7 +522,7 @@ describe('QueryParserService', () => { const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); - const rule: RulesLogic = { + const rule: RulesLogic = { withinLast: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: tomorrow.toISOString() }; @@ -504,7 +537,7 @@ describe('QueryParserService', () => { const sevenDaysAgo = new Date(); sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7); - const rule: RulesLogic = { + const rule: RulesLogic = { notWithinLast: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: sevenDaysAgo.toISOString() }; @@ -517,7 +550,7 @@ describe('QueryParserService', () => { const threeDaysAgo = new Date(); threeDaysAgo.setDate(threeDaysAgo.getDate() - 3); - const rule: RulesLogic = { + const rule: RulesLogic = { notWithinLast: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: threeDaysAgo.toISOString() }; @@ -532,7 +565,7 @@ describe('QueryParserService', () => { const fiveDaysAgo = new Date(); fiveDaysAgo.setDate(fiveDaysAgo.getDate() - 5); - const rule: RulesLogic = { + const rule: RulesLogic = { exactlyXAgo: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: fiveDaysAgo.toISOString() }; @@ -545,7 +578,7 @@ describe('QueryParserService', () => { const tenDaysAgo = new Date(); tenDaysAgo.setDate(tenDaysAgo.getDate() - 10); - const rule: RulesLogic = { + const rule: RulesLogic = { exactlyXAgo: [{ var: 'createdAt' }, { amount: 5, unit: 'days' }], }; const data = { createdAt: tenDaysAgo.toISOString() }; @@ -560,7 +593,7 @@ describe('QueryParserService', () => { const threeHoursAgo = new Date(); threeHoursAgo.setHours(threeHoursAgo.getHours() - 3); - const rule: RulesLogic = { + const rule: RulesLogic = { withinLast: [{ var: 'createdAt' }, { amount: 5, unit: 'hours' }], }; const data = { createdAt: threeHoursAgo.toISOString() }; @@ -573,7 +606,7 @@ describe('QueryParserService', () => { const tenMinutesAgo = new Date(); tenMinutesAgo.setMinutes(tenMinutesAgo.getMinutes() - 10); - const rule: RulesLogic = { + const rule: RulesLogic = { moreThanXAgo: [{ var: 'createdAt' }, { amount: 5, unit: 'minutes' }], }; const data = { createdAt: tenMinutesAgo.toISOString() }; @@ -586,7 +619,7 @@ describe('QueryParserService', () => { const threeWeeksAgo = new Date(); threeWeeksAgo.setDate(threeWeeksAgo.getDate() - 21); - const rule: RulesLogic = { + const rule: RulesLogic = { moreThanXAgo: [{ var: 'createdAt' }, { amount: 2, unit: 'weeks' }], }; const data = { createdAt: threeWeeksAgo.toISOString() }; @@ -599,7 +632,7 @@ describe('QueryParserService', () => { const threeMonthsAgo = new Date(); threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3); - const rule: RulesLogic = { + const rule: RulesLogic = { moreThanXAgo: [{ var: 'createdAt' }, { amount: 2, unit: 'months' }], }; const data = { createdAt: threeMonthsAgo.toISOString() }; @@ -612,7 +645,7 @@ describe('QueryParserService', () => { const twoYearsAgo = new Date(); twoYearsAgo.setFullYear(twoYearsAgo.getFullYear() - 2); - const rule: RulesLogic = { + const rule: RulesLogic = { moreThanXAgo: [{ var: 'createdAt' }, { amount: 1, unit: 'years' }], }; const data = { createdAt: twoYearsAgo.toISOString() }; @@ -623,4 +656,373 @@ describe('QueryParserService', () => { }); }); }); + + describe('extractFieldsFromRules', () => { + it('should extract fields from regular rules', () => { + const rule: RulesLogic = { + and: [{ '=': [{ var: 'user.email' }, 'test@example.com'] }, { '>': [{ var: 'user.age' }, 18] }], + }; + + const fields = extractFieldsFromRules(rule); + + expect(fields).to.have.lengthOf(2); + expect(fields).to.include('user.email'); + expect(fields).to.include('user.age'); + }); + + it('should extract fields from wrapped rules', () => { + const annotatedRule: AnnotatedRule = { + id: 'User validation', + rule: { + and: [ + { id: 'Email check', rule: { '=': [{ var: 'user.email' }, 'test@example.com'] } } as any, + { id: 'Age check', rule: { '>': [{ var: 'user.age' }, 18] } } as any, + ], + }, + }; + + const fields = extractFieldsFromRules(annotatedRule); + + expect(fields).to.have.lengthOf(2); + expect(fields).to.include('user.email'); + expect(fields).to.include('user.age'); + }); + + it('should extract fields from deeply nested wrapped rules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Group A', + rule: { + or: [ + { id: 'A1', rule: { '=': [{ var: 'a' }, 1] } } as any, + { id: 'A2', rule: { '=': [{ var: 'b' }, 2] } } as any, + ], + }, + } as any, + { id: 'Group B', rule: { '!=': [{ var: 'c' }, 0] } } as any, + ], + }, + }; + + const fields = extractFieldsFromRules(annotatedRule); + + expect(fields).to.have.lengthOf(3); + expect(fields).to.include('a'); + expect(fields).to.include('b'); + expect(fields).to.include('c'); + }); + + it('should deduplicate fields', () => { + const rule: RulesLogic = { + and: [{ '=': [{ var: 'user.email' }, 'test@example.com'] }, { '!=': [{ var: 'user.email' }, null] }], + }; + + const fields = extractFieldsFromRules(rule); + + expect(fields).to.have.lengthOf(1); + expect(fields).to.include('user.email'); + }); + }); + + describe('Wrapped Rules', () => { + describe('extractRuleFromWrapped', () => { + it('should return the rule as-is if no wrapper exists', () => { + const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; + const extracted = extractRuleFromWrapped(rule); + + expect(extracted).to.deep.equal(rule); + }); + + it('should extract rule from simple wrapped rule', () => { + const annotatedRule: AnnotatedRule = { + id: 'Foo bar must equal 42', + rule: { '=': [{ var: 'value.foo.bar' }, 42] }, + }; + const extracted = extractRuleFromWrapped(annotatedRule); + + expect(extracted).to.deep.equal({ '=': [{ var: 'value.foo.bar' }, 42] }); + }); + + it('should extract rules from nested wrapped rules with and operator', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Foo bar must equal 42', + rule: { '=': [{ var: 'value.foo.bar' }, 42] }, + } as any, + { + id: 'Foo baz must not be empty', + rule: { '!!': [{ var: 'value.foo.baz' }] }, + } as any, + ], + }, + }; + const extracted = extractRuleFromWrapped(annotatedRule); + + expect(extracted).to.deep.equal({ + and: [{ '=': [{ var: 'value.foo.bar' }, 42] }, { '!!': [{ var: 'value.foo.baz' }] }], + }); + }); + + it('should extract rules from deeply nested wrapped rules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Subgroup A', + rule: { + or: [ + { id: 'A1', rule: { '=': [{ var: 'a' }, 1] } } as any, + { id: 'A2', rule: { '=': [{ var: 'a' }, 2] } } as any, + ], + }, + } as any, + { id: 'Subgroup B', rule: { '!=': [{ var: 'b' }, 0] } } as any, + ], + }, + }; + const extracted = extractRuleFromWrapped(annotatedRule); + + expect(extracted).to.deep.equal({ + and: [{ or: [{ '=': [{ var: 'a' }, 1] }, { '=': [{ var: 'a' }, 2] }] }, { '!=': [{ var: 'b' }, 0] }], + }); + }); + + it('should handle mixed wrapped and non-wrapped rules', () => { + const input: AnnotatedRule = { + rule: { + and: [ + { id: 'First check', rule: { '=': [{ var: 'x' }, 1] } } as any, + { '=': [{ var: 'y' }, 2] }, + { id: 'Third check', rule: { '=': [{ var: 'z' }, 3] } } as any, + ], + }, + }; + const extracted = extractRuleFromWrapped(input); + + expect(extracted).to.deep.equal({ + and: [{ '=': [{ var: 'x' }, 1] }, { '=': [{ var: 'y' }, 2] }, { '=': [{ var: 'z' }, 3] }], + }); + }); + }); + + describe('extractIdsFromRules', () => { + it('should return empty array if no ids exist', () => { + const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; + const ids = extractIdsFromRules(rule); + + expect(ids).to.deep.equal([]); + }); + + it('should extract id from simple wrapped rule', () => { + const annotatedRule: AnnotatedRule = { + id: 'Foo bar must equal 42', + rule: { '=': [{ var: 'value.foo.bar' }, 42] }, + }; + const ids = extractIdsFromRules(annotatedRule); + + expect(ids).to.deep.equal([{ id: 'Foo bar must equal 42', path: [] }]); + }); + + it('should extract ids from nested wrapped rules with and operator', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Foo bar must equal 42', + rule: { '=': [{ var: 'value.foo.bar' }, 42] }, + } as any, + { + id: 'Foo baz must not be empty', + rule: { '!!': [{ var: 'value.foo.baz' }] }, + } as any, + ], + }, + }; + const ids = extractIdsFromRules(annotatedRule); + + expect(ids).to.deep.equal([ + { id: 'Main rule', path: [] }, + { id: 'Foo bar must equal 42', path: [0] }, + { id: 'Foo baz must not be empty', path: [1] }, + ]); + }); + + it('should extract ids from deeply nested wrapped rules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Subgroup A', + rule: { + or: [ + { id: 'A1', rule: { '=': [{ var: 'a' }, 1] } } as any, + { id: 'A2', rule: { '=': [{ var: 'a' }, 2] } } as any, + ], + }, + } as any, + { id: 'Subgroup B', rule: { '!=': [{ var: 'b' }, 0] } } as any, + ], + }, + }; + const ids = extractIdsFromRules(annotatedRule); + + expect(ids).to.deep.equal([ + { id: 'Main rule', path: [] }, + { id: 'Subgroup A', path: [0] }, + { id: 'A1', path: [0, 0] }, + { id: 'A2', path: [0, 1] }, + { id: 'Subgroup B', path: [1] }, + ]); + }); + + it('should handle optional ids (only extract present ones)', () => { + const input: AnnotatedRule = { + rule: { + and: [ + { id: 'First check', rule: { '=': [{ var: 'x' }, 1] } } as any, + { '=': [{ var: 'y' }, 2] }, + { id: 'Third check', rule: { '=': [{ var: 'z' }, 3] } } as any, + ], + }, + }; + const ids = extractIdsFromRules(input); + + expect(ids).to.deep.equal([ + { id: 'First check', path: [0] }, + { id: 'Third check', path: [2] }, + ]); + }); + }); + + describe('Integration with evaluateRules', () => { + it('should evaluate wrapped rules correctly when passed through extractRuleFromWrapped', () => { + const annotatedRule: AnnotatedRule = { + id: 'Value must equal 42', + rule: { '=': [{ var: 'value' }, 42] }, + }; + const extracted = extractRuleFromWrapped(annotatedRule); + const data = { value: 42 }; + const { result, error } = evaluateRules(extracted, data); + + expect(error).to.be.undefined; + expect(result).to.be.true; + }); + + it('should evaluate wrapped rules correctly when passed directly to evaluateRules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Value must equal 42', + rule: { '=': [{ var: 'value' }, 42] }, + }; + const data = { value: 42 }; + const { result, error } = evaluateRules(annotatedRule, data); + + expect(error).to.be.undefined; + expect(result).to.be.true; + }); + + it('should evaluate nested wrapped rules correctly when passed through extractRuleFromWrapped', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main validation', + rule: { + and: [ + { id: 'Check value', rule: { '=': [{ var: 'value' }, 42] } } as any, + { id: 'Check text', rule: { startsWith: [{ var: 'text' }, 'hello'] } } as any, + ], + }, + }; + const extracted = extractRuleFromWrapped(annotatedRule); + const data = { value: 42, text: 'hello world' }; + const { result, error } = evaluateRules(extracted, data); + + expect(error).to.be.undefined; + expect(result).to.be.true; + }); + + it('should evaluate nested wrapped rules correctly when passed directly to evaluateRules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main validation', + rule: { + and: [ + { id: 'Check value', rule: { '=': [{ var: 'value' }, 42] } } as any, + { id: 'Check text', rule: { startsWith: [{ var: 'text' }, 'hello'] } } as any, + ], + }, + }; + const data = { value: 42, text: 'hello world' }; + const { result, error } = evaluateRules(annotatedRule, data); + + expect(error).to.be.undefined; + expect(result).to.be.true; + }); + + it('should evaluate complex nested wrapped rules correctly when passed through extractRuleFromWrapped', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Subgroup A', + rule: { + or: [ + { id: 'A1', rule: { '=': [{ var: 'a' }, 1] } } as any, + { id: 'A2', rule: { '=': [{ var: 'a' }, 2] } } as any, + ], + }, + } as any, + { id: 'Subgroup B', rule: { '!=': [{ var: 'b' }, 0] } } as any, + ], + }, + }; + const extracted = extractRuleFromWrapped(annotatedRule); + const data = { a: 2, b: 5 }; + const { result, error } = evaluateRules(extracted, data); + + expect(error).to.be.undefined; + expect(result).to.be.true; + }); + + it('should evaluate complex nested wrapped rules correctly when passed directly to evaluateRules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Subgroup A', + rule: { + or: [ + { id: 'A1', rule: { '=': [{ var: 'a' }, 1] } } as any, + { id: 'A2', rule: { '=': [{ var: 'a' }, 2] } } as any, + ], + }, + } as any, + { id: 'Subgroup B', rule: { '!=': [{ var: 'b' }, 0] } } as any, + ], + }, + }; + const data = { a: 2, b: 5 }; + const { result, error } = evaluateRules(annotatedRule, data); + + expect(error).to.be.undefined; + expect(result).to.be.true; + }); + + it('should handle regular rules without ids', () => { + const rule: RulesLogic = { '=': [{ var: 'value' }, 42] }; + const data = { value: 42 }; + const { result, error } = evaluateRules(rule, data); + + expect(error).to.be.undefined; + expect(result).to.be.true; + }); + }); + }); }); diff --git a/apps/api/src/app/shared/services/query-parser/query-parser.service.ts b/apps/api/src/app/shared/services/query-parser/query-parser.service.ts index 3ebbea67961..ab35b072d46 100644 --- a/apps/api/src/app/shared/services/query-parser/query-parser.service.ts +++ b/apps/api/src/app/shared/services/query-parser/query-parser.service.ts @@ -1,4 +1,59 @@ -import jsonLogic, { AdditionalOperation, RulesLogic } from 'json-logic-js'; +import type { ExtendedOperations } from '@novu/js'; +import jsonLogic, { AdditionalOperation, AllReservedOperationsInterface, RulesLogic } from 'json-logic-js'; + +export type { ExtendedOperations }; + +type RuleAnnotations = { id?: string; rule: T }; + +type AnnotatableOrAnnotated = + | AnnotatableRulesLogic + | RuleAnnotations>; + +type IsAny = 0 extends 1 & T ? true : false; + +type DeepAnnotatable = IsAny extends true + ? AnnotatableOrAnnotated + : T extends RulesLogic + ? AnnotatableOrAnnotated + : T extends Array + ? Array> + : T extends readonly [infer A, infer B, infer C] + ? [DeepAnnotatable, DeepAnnotatable, DeepAnnotatable] + : T extends readonly [infer A, infer B] + ? [DeepAnnotatable, DeepAnnotatable] + : T extends readonly [infer A] + ? [DeepAnnotatable] + : T; + +type AnnotatableOpsInterface = { + [K in keyof AllReservedOperationsInterface]: DeepAnnotatable< + AllReservedOperationsInterface[K], + AddOps + >; +}; + +type AnnotatableOps = { + [K in keyof AnnotatableOpsInterface]: Pick, K>; +}[keyof AnnotatableOpsInterface]; + +type TransformAddOps = T extends object + ? { [K in keyof T]: DeepAnnotatable } + : T; + +type AnnotatableRulesLogic = + | boolean + | string + | number + | null + | AnnotatableOps + | TransformAddOps; + +export type AnnotatedRule = RuleAnnotations>; + +export type RuleIdentifier = { + id: string; + path: number[]; +}; type RangeValidation = | { @@ -375,11 +430,13 @@ const initializeCustomOperators = (): void => { initializeCustomOperators(); export function evaluateRules( - rule: RulesLogic, + input: RulesLogic | AnnotatedRule, data: unknown, safe = false ): { result: boolean; error: string | undefined } { try { + const rule = extractRuleFromWrapped(input); + return { result: jsonLogic.apply(rule, data), error: undefined }; } catch (error) { if (safe) { @@ -390,7 +447,7 @@ export function evaluateRules( } } -export function isValidRule(rule: RulesLogic): boolean { +export function isValidRule(rule: RulesLogic): boolean { try { return jsonLogic.is_logic(rule); } catch { @@ -398,10 +455,11 @@ export function isValidRule(rule: RulesLogic): boolean { } } -export function extractFieldsFromRules(rules: RulesLogic): string[] { +export function extractFieldsFromRules(input: RulesLogic | AnnotatedRule): string[] { const variables = new Set(); + const rules = extractRuleFromWrapped(input); - const collectVariables = (node: RulesLogic) => { + const collectVariables = (node: RulesLogic) => { if (!node || typeof node !== 'object') { return; } @@ -415,16 +473,16 @@ export function extractFieldsFromRules(rules: RulesLogic): } if (Array.isArray(value)) { - value.forEach((item) => { + for (const item of value) { if (typeof item === 'object') { collectVariables(item); } - }); + } continue; } if (typeof value === 'object') { - collectVariables(value as RulesLogic); + collectVariables(value as RulesLogic); } } }; @@ -433,3 +491,98 @@ export function extractFieldsFromRules(rules: RulesLogic): return Array.from(variables); } + +function isAnnotatedRule(rule: unknown): rule is AnnotatedRule { + if (!rule || typeof rule !== 'object') { + return false; + } + + const obj = rule as Record; + + return 'rule' in obj && typeof obj.rule === 'object' && obj.rule !== null; +} + +export function extractRuleFromWrapped( + input: RulesLogic | AnnotatedRule +): RulesLogic { + if (!isAnnotatedRule(input)) { + return input; + } + + const processNode = (node: unknown): unknown => { + if (!node || typeof node !== 'object') { + return node; + } + + if (isAnnotatedRule(node)) { + return processNode(node.rule); + } + + if (Array.isArray(node)) { + return node.map(processNode); + } + + const result: Record = {}; + const entries = Object.entries(node); + + for (const [key, value] of entries) { + if (Array.isArray(value)) { + result[key] = value.map(processNode); + } else if (typeof value === 'object' && value !== null) { + result[key] = processNode(value); + } else { + result[key] = value; + } + } + + return result; + }; + + return processNode(input.rule) as RulesLogic; +} + +export function extractIdsFromRules(input: RulesLogic | AnnotatedRule): RuleIdentifier[] { + const identifiers: RuleIdentifier[] = []; + + const collectIds = (node: unknown, path: number[] = []) => { + if (!node || typeof node !== 'object') { + return; + } + + if (isAnnotatedRule(node)) { + if (node.id) { + identifiers.push({ id: node.id, path: [...path] }); + } + + collectIds(node.rule, path); + + return; + } + + if (Array.isArray(node)) { + node.forEach((item, index) => { + collectIds(item, [...path, index]); + }); + + return; + } + + const entries = Object.entries(node); + + for (const [key, value] of entries) { + if (key === 'and' || key === 'or') { + if (Array.isArray(value)) { + value.forEach((item, index) => { + collectIds(item, [...path, index]); + }); + } + } else if (typeof value === 'object' && value !== null) { + collectIds(value, path); + } + } + }; + + collectIds(input); + + return identifiers; +} diff --git a/apps/api/src/app/shared/services/query-parser/query-validator.service.spec.ts b/apps/api/src/app/shared/services/query-parser/query-validator.service.spec.ts index 1237f7e48fa..602a2fae673 100644 --- a/apps/api/src/app/shared/services/query-parser/query-validator.service.spec.ts +++ b/apps/api/src/app/shared/services/query-parser/query-validator.service.spec.ts @@ -1,6 +1,7 @@ import { expect } from 'chai'; -import { AdditionalOperation, RulesLogic } from 'json-logic-js'; +import { RulesLogic } from 'json-logic-js'; +import { ExtendedOperations, AnnotatedRule } from './query-parser.service'; import { QueryIssueTypeEnum, QueryValidatorService } from './query-validator.service'; import { COMPARISON_OPERATORS, JsonLogicOperatorEnum } from './types'; @@ -21,7 +22,7 @@ describe('QueryValidatorService', () => { describe('validateQueryRules', () => { it('should validate a invalid node structure', () => { - const rule: RulesLogic = null; + const rule: RulesLogic = null; const issues = queryValidatorService.validateQueryRules(rule); @@ -31,11 +32,11 @@ describe('QueryValidatorService', () => { }); describe('logical operators', () => { - [JsonLogicOperatorEnum.AND, JsonLogicOperatorEnum.OR].forEach((operator) => { + for (const operator of [JsonLogicOperatorEnum.AND, JsonLogicOperatorEnum.OR]) { it(`should validate valid ${operator} operation`, () => { - const rule: RulesLogic = { + const rule = { [operator]: [{ '==': [{ var: 'payload.foo' }, 'value1'] }, { '==': [{ var: 'payload.bar' }, 'value2'] }], - }; + } as RulesLogic; const issues = queryValidatorService.validateQueryRules(rule); @@ -54,10 +55,10 @@ describe('QueryValidatorService', () => { expect(issues[0].path).to.deep.equal([]); expect(issues[0].type).to.equal(QueryIssueTypeEnum.INVALID_STRUCTURE); }); - }); + } it('should validate NOT operation', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '!': { '==': [{ var: 'payload.foo' }, 'value'] }, }; @@ -67,7 +68,7 @@ describe('QueryValidatorService', () => { }); it('should detect invalid NOT operation', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '!': { '==': [{ var: 'payload.foo' }, ''] }, }; @@ -96,7 +97,7 @@ describe('QueryValidatorService', () => { describe('"in" operation', () => { it('should validate valid "in" operation', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { in: [{ var: 'subscriber.firstName' }, ['value1', 'value2']], }; @@ -106,9 +107,9 @@ describe('QueryValidatorService', () => { }); it('should detect invalid field reference in "in" operation', () => { - const rule: RulesLogic = { + const rule = { in: [{}, [1, 2]], - }; + } as RulesLogic; const issues = queryValidatorService.validateQueryRules(rule); @@ -119,7 +120,7 @@ describe('QueryValidatorService', () => { }); it('should detect empty array in "in" operation', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { in: [{ var: 'payload.foo' }, []], }; @@ -134,7 +135,7 @@ describe('QueryValidatorService', () => { describe('"contains" operation', () => { it('should validate valid "contains" operation', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { in: ['search', { var: 'payload.foo' }], }; @@ -144,7 +145,8 @@ describe('QueryValidatorService', () => { }); it('should detect invalid field reference in "contains" operation', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { + // @ts-expect-error - invalid rule in: ['search', {}], }; @@ -157,7 +159,7 @@ describe('QueryValidatorService', () => { }); it('should detect invalid value in "contains" operation', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { in: ['', { var: 'payload.foo' }], }; @@ -173,7 +175,7 @@ describe('QueryValidatorService', () => { describe('between operation', () => { it('should validate valid between operation', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '<=': [1, { var: 'payload.foo' }, 10], }; @@ -223,11 +225,11 @@ describe('QueryValidatorService', () => { }); describe('comparison operators', () => { - COMPARISON_OPERATORS.forEach((operator) => { + for (const operator of COMPARISON_OPERATORS) { it(`should validate a valid simple ${operator} rule`, () => { - const rule: RulesLogic = { + const rule = { [operator]: [{ var: 'subscriber.firstName' }, 'value'], - }; + } as RulesLogic; const issues = queryValidatorService.validateQueryRules(rule); @@ -247,9 +249,9 @@ describe('QueryValidatorService', () => { }); it(`should detect invalid field reference in "${operator}" operation`, () => { - const rule: RulesLogic = { + const rule = { [operator]: [{}, 'value'], - }; + } as RulesLogic; const issues = queryValidatorService.validateQueryRules(rule); @@ -258,10 +260,10 @@ describe('QueryValidatorService', () => { expect(issues[0].path).to.deep.equal([]); expect(issues[0].type).to.equal(QueryIssueTypeEnum.INVALID_STRUCTURE); }); - }); + } it('should validate valid comparison operations', () => { - const validOperations: RulesLogic[] = [ + const validOperations: RulesLogic[] = [ { '<': [{ var: 'payload.foo' }, 5] }, { '>': [{ var: 'payload.foo' }, 5] }, { '<=': [{ var: 'payload.foo' }, 5] }, @@ -270,14 +272,14 @@ describe('QueryValidatorService', () => { { '!=': [{ var: 'payload.foo' }, 'value'] }, ]; - validOperations.forEach((operation) => { + for (const operation of validOperations) { const issues = queryValidatorService.validateQueryRules(operation); expect(issues).to.be.empty; - }); + } }); it('should handle null values correctly for isNull', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: 'payload.foo' }, null], }; @@ -287,7 +289,7 @@ describe('QueryValidatorService', () => { }); it('should handle null values correctly for !isNull', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '!=': [{ var: 'payload.foo' }, null], }; @@ -297,7 +299,7 @@ describe('QueryValidatorService', () => { }); it('should detect null values for non-equality operators', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '>': [{ var: 'payload.foo' }, null], }; @@ -471,7 +473,7 @@ describe('QueryValidatorService', () => { }, ]; - tests.forEach((test) => { + for (const test of tests) { it(`should return the correct path for ${test.name}`, () => { const { rule, path } = test; @@ -482,13 +484,13 @@ describe('QueryValidatorService', () => { expect(issues[0].path).to.deep.equal(path); expect(issues[0].type).to.equal(QueryIssueTypeEnum.MISSING_VALUE); }); - }); + } }); }); describe('field validation', () => { it('should validate allowed fields', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: 'allowed.field' }, 'value'], }; @@ -498,7 +500,7 @@ describe('QueryValidatorService', () => { }); it('should validate fields with allowed prefixes', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: 'subscriber.data.foo' }, 'value'], }; @@ -508,7 +510,7 @@ describe('QueryValidatorService', () => { }); it('should validate namespace field itself (subscriber.data)', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: 'subscriber.data' }, 'value'], }; @@ -518,7 +520,7 @@ describe('QueryValidatorService', () => { }); it('should detect invalid namespace field (payload)', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: 'payload' }, 'value'], }; @@ -531,7 +533,7 @@ describe('QueryValidatorService', () => { }); it('should detect invalid field that is not in allowed list', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: 'not_allowed_field' }, 'value'], }; @@ -544,7 +546,7 @@ describe('QueryValidatorService', () => { }); it('should detect empty field value', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: '' }, 'value'], }; @@ -557,7 +559,7 @@ describe('QueryValidatorService', () => { }); it('should detect invalid prefix', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: 'invalid.prefix.field' }, 'value'], }; @@ -570,7 +572,7 @@ describe('QueryValidatorService', () => { }); it('should detect invalid field with allowed prefixes', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { '==': [{ var: 'payload.' }, 'value'], }; @@ -583,7 +585,7 @@ describe('QueryValidatorService', () => { }); it('should validate complex query with multiple field references', () => { - const rule: RulesLogic = { + const rule: RulesLogic = { and: [ { '==': [{ var: 'payload.foo' }, 'value1'] }, { '==': [{ var: 'subscriber.data.bar' }, 'value2'] }, @@ -599,4 +601,128 @@ describe('QueryValidatorService', () => { expect(issues[0].type).to.equal(QueryIssueTypeEnum.INVALID_FIELD_VALUE); }); }); + + describe('Wrapped Rules Validation', () => { + it('should validate simple wrapped rule correctly', () => { + const annotatedRule: AnnotatedRule = { + id: 'Foo bar must equal 42', + rule: { '==': [{ var: 'payload.foo' }, 42] }, + }; + + const issues = queryValidatorService.validateQueryRules(annotatedRule); + + expect(issues).to.be.empty; + }); + + it('should validate nested wrapped rules correctly', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Foo bar must equal 42', + rule: { '==': [{ var: 'payload.foo' }, 42] }, + } as any, + { + id: 'Subscriber email must be set', + rule: { '!=': [{ var: 'subscriber.email' }, null] }, + } as any, + ], + }, + }; + + const issues = queryValidatorService.validateQueryRules(annotatedRule); + + expect(issues).to.be.empty; + }); + + it('should detect validation issues in wrapped rules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Valid check', + rule: { '==': [{ var: 'payload.foo' }, 42] }, + } as any, + { + id: 'Invalid check', + rule: { '==': [{ var: 'invalid.field' }, 'value'] }, + } as any, + ], + }, + }; + + const issues = queryValidatorService.validateQueryRules(annotatedRule); + + expect(issues).to.have.lengthOf(1); + expect(issues[0].message).to.include('Value is not valid'); + expect(issues[0].path).to.deep.equal([1]); + expect(issues[0].type).to.equal(QueryIssueTypeEnum.INVALID_FIELD_VALUE); + }); + + it('should detect missing values in wrapped rules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Check with missing value', + rule: { '==': [{ var: 'payload.foo' }, ''] }, + } as any, + ], + }, + }; + + const issues = queryValidatorService.validateQueryRules(annotatedRule); + + expect(issues).to.have.lengthOf(1); + expect(issues[0].message).to.include('Value is required'); + expect(issues[0].path).to.deep.equal([0]); + expect(issues[0].type).to.equal(QueryIssueTypeEnum.MISSING_VALUE); + }); + + it('should validate deeply nested wrapped rules', () => { + const annotatedRule: AnnotatedRule = { + id: 'Main rule', + rule: { + and: [ + { + id: 'Subgroup A', + rule: { + or: [ + { id: 'A1', rule: { '==': [{ var: 'payload.foo' }, 1] } } as any, + { id: 'A2', rule: { '==': [{ var: 'payload.bar' }, 2] } } as any, + ], + }, + } as any, + { id: 'Subgroup B', rule: { '!=': [{ var: 'subscriber.email' }, null] } } as any, + ], + }, + }; + + const issues = queryValidatorService.validateQueryRules(annotatedRule); + + expect(issues).to.be.empty; + }); + + it('should handle mixed wrapped and non-wrapped rules', () => { + const annotatedRule: AnnotatedRule = { + rule: { + and: [ + { id: 'First check', rule: { '==': [{ var: 'payload.foo' }, 1] } } as any, + { '==': [{ var: 'payload.bar' }, 2] }, + { id: 'Third check', rule: { '==': [{ var: 'invalid.field' }, 3] } } as any, + ], + }, + }; + + const issues = queryValidatorService.validateQueryRules(annotatedRule); + + expect(issues).to.have.lengthOf(1); + expect(issues[0].message).to.include('Value is not valid'); + expect(issues[0].path).to.deep.equal([2]); + expect(issues[0].type).to.equal(QueryIssueTypeEnum.INVALID_FIELD_VALUE); + }); + }); }); diff --git a/apps/api/src/app/shared/services/query-parser/query-validator.service.ts b/apps/api/src/app/shared/services/query-parser/query-validator.service.ts index 0b6ef9d5007..79fc41aa437 100644 --- a/apps/api/src/app/shared/services/query-parser/query-validator.service.ts +++ b/apps/api/src/app/shared/services/query-parser/query-validator.service.ts @@ -1,5 +1,6 @@ -import { AdditionalOperation, RulesLogic } from 'json-logic-js'; +import { RulesLogic } from 'json-logic-js'; +import { ExtendedOperations, extractRuleFromWrapped, AnnotatedRule } from './query-parser.service'; import { COMPARISON_OPERATORS, JsonComparisonOperatorEnum, JsonLogicOperatorEnum } from './types'; type QueryIssue = { @@ -101,7 +102,7 @@ export class QueryValidatorService { issues, path = [], }: { - node: RulesLogic; + node: RulesLogic; issues: QueryIssue[]; path?: number[]; }) { @@ -133,7 +134,7 @@ export class QueryValidatorService { // handle negation '!' operator if (key === JsonLogicOperatorEnum.NOT) { - this.validateNode({ node: value as RulesLogic, issues, path }); + this.validateNode({ node: value as RulesLogic, issues, path }); continue; } @@ -283,8 +284,9 @@ export class QueryValidatorService { } } - public validateQueryRules(node: RulesLogic): QueryIssue[] { + public validateQueryRules(input: RulesLogic | AnnotatedRule): QueryIssue[] { const issues: QueryIssue[] = []; + const node = extractRuleFromWrapped(input); this.validateNode({ node, issues }); diff --git a/apps/api/src/app/shared/utils/build-variables.ts b/apps/api/src/app/shared/utils/build-variables.ts index 0c1a425a979..8534ed61427 100644 --- a/apps/api/src/app/shared/utils/build-variables.ts +++ b/apps/api/src/app/shared/utils/build-variables.ts @@ -1,8 +1,8 @@ import { PinoLogger } from '@novu/application-generic'; -import { AdditionalOperation, RulesLogic } from 'json-logic-js'; +import { RulesLogic } from 'json-logic-js'; import { JSONSchemaDto } from '../dtos/json-schema.dto'; import { isStringifiedMailyJSONContent, wrapMailyInLiquid } from '../helpers/maily-utils'; -import { extractFieldsFromRules, isValidRule } from '../services/query-parser/query-parser.service'; +import { ExtendedOperations, extractFieldsFromRules, isValidRule } from '../services/query-parser/query-parser.service'; import { extractLiquidTemplateVariables as newExtractLiquidTemplateVariables } from './template-parser/new-liquid-parser'; import type { VariableDetails } from './template-parser/types'; @@ -32,8 +32,8 @@ export function buildVariables({ 'BuildVariables' ); } - } else if (isValidRule(variableControlValue as RulesLogic)) { - const fields = extractFieldsFromRules(variableControlValue as RulesLogic) + } else if (isValidRule(variableControlValue as RulesLogic)) { + const fields = extractFieldsFromRules(variableControlValue as RulesLogic) .filter( (field) => field.startsWith('payload.') || field.startsWith('subscriber.data.') || field.startsWith('context.') ) diff --git a/apps/api/src/app/workflows-v2/usecases/build-step-issues/build-step-issues.usecase.ts b/apps/api/src/app/workflows-v2/usecases/build-step-issues/build-step-issues.usecase.ts index 8888358a2bb..8cefcd26e47 100644 --- a/apps/api/src/app/workflows-v2/usecases/build-step-issues/build-step-issues.usecase.ts +++ b/apps/api/src/app/workflows-v2/usecases/build-step-issues/build-step-issues.usecase.ts @@ -18,8 +18,9 @@ import { UserSessionData, } from '@novu/shared'; import { isEmpty, merge } from 'es-toolkit/compat'; -import { AdditionalOperation, RulesLogic } from 'json-logic-js'; +import { RulesLogic } from 'json-logic-js'; import { JSONSchemaDto } from '../../../shared/dtos/json-schema.dto'; +import { ExtendedOperations } from '../../../shared/services/query-parser/query-parser.service'; import { QueryIssueTypeEnum, QueryValidatorService, @@ -108,7 +109,7 @@ export class BuildStepIssuesUsecase { }); const customIssues = await this.processControlValuesByCustomeRules(user, stepType, sanitizedControlValues || {}); const skipLogicIssues = sanitizedControlValues?.skip - ? this.validateSkipField(variableSchema, sanitizedControlValues.skip as RulesLogic) + ? this.validateSkipField(variableSchema, sanitizedControlValues.skip as RulesLogic) : {}; return merge(schemaIssues, liquidIssues, customIssues, skipLogicIssues); @@ -197,7 +198,7 @@ export class BuildStepIssuesUsecase { } @Instrument() - private validateSkipField(variableSchema: JSONSchemaDto, skipLogic: RulesLogic): StepIssuesDto { + private validateSkipField(variableSchema: JSONSchemaDto, skipLogic: RulesLogic): StepIssuesDto { const issues: StepIssuesDto = {}; const { primitives } = parseStepVariables(variableSchema); const allowedVariables = primitives.map((variable) => variable.name); diff --git a/libs/internal-sdk/.npmignore b/libs/internal-sdk/.npmignore index cf98a6bf092..134e78a629b 100644 --- a/libs/internal-sdk/.npmignore +++ b/libs/internal-sdk/.npmignore @@ -5,7 +5,10 @@ !/**/*.ts !/**/*.js !/**/*.mjs -!/**/*.json +!/package.json +!/jsr.json +!/dist/**/*.json +!/esm/**/*.json !/**/*.map /eslint.config.mjs diff --git a/libs/internal-sdk/.speakeasy/gen.yaml b/libs/internal-sdk/.speakeasy/gen.yaml index c6d6a6aa0cd..e8cdb880981 100755 --- a/libs/internal-sdk/.speakeasy/gen.yaml +++ b/libs/internal-sdk/.speakeasy/gen.yaml @@ -13,6 +13,8 @@ generation: requestResponseComponentNamesFeb2024: true securityFeb2025: false sharedErrorComponentsApr2025: false + sharedNestedComponentsJan2026: false + nameOverrideFeb2026: false auth: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false @@ -22,6 +24,7 @@ generation: schemas: allOfMergeStrategy: shallowMerge requestBodyFieldName: "" + versioningStrategy: automatic persistentEdits: enabled: never tests: @@ -84,6 +87,7 @@ typescript: inputModelSuffix: input jsonpath: rfc9535 laxMode: strict + legacyFileNaming: true maxMethodParams: 3 methodArguments: require-security-and-request modelPropertyCasing: camel diff --git a/libs/internal-sdk/package.json b/libs/internal-sdk/package.json index 0e430cbc63f..873d9768021 100644 --- a/libs/internal-sdk/package.json +++ b/libs/internal-sdk/package.json @@ -15,15 +15,21 @@ "react-dom": "^18 || ^19" }, "peerDependenciesMeta": { - "@tanstack/react-query": {"optional":true}, - "react": {"optional":true}, - "react-dom": {"optional":true} + "@tanstack/react-query": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } }, "devDependencies": { - "@eslint/js": "^9.19.0", + "@eslint/js": "^9.26.0", "@tanstack/react-query": "^5.61.4", "@types/react": "^18.3.12", - "eslint": "^9.19.0", + "eslint": "^9.26.0", "globals": "^15.14.0", "typescript": "~5.8.3", "typescript-eslint": "^8.26.0" diff --git a/libs/internal-sdk/src/funcs/translationsUpload.ts b/libs/internal-sdk/src/funcs/translationsUpload.ts index 9296646b482..bec890ab63e 100644 --- a/libs/internal-sdk/src/funcs/translationsUpload.ts +++ b/libs/internal-sdk/src/funcs/translationsUpload.ts @@ -2,34 +2,31 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { NovuCore } from "../core.js"; -import { appendForm, encodeSimple } from "../lib/encodings.js"; -import { - getContentTypeFromFileName, - readableStreamToArrayBuffer, -} from "../lib/files.js"; -import * as M from "../lib/matchers.js"; -import { compactMap } from "../lib/primitives.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; +import { NovuCore } from '../core.js'; +import { appendForm, encodeSimple } from '../lib/encodings.js'; +import { getContentTypeFromFileName, readableStreamToArrayBuffer } from '../lib/files.js'; +import * as M from '../lib/matchers.js'; +import { compactMap } from '../lib/primitives.js'; +import { safeParse } from '../lib/schemas.js'; +import { RequestOptions } from '../lib/sdks.js'; +import { extractSecurity, resolveGlobalSecurity } from '../lib/security.js'; +import { pathToFunc } from '../lib/url.js'; +import * as components from '../models/components/index.js'; import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { NovuError } from "../models/errors/novuerror.js"; -import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { APICall, APIPromise } from "../types/async.js"; -import { isBlobLike } from "../types/blobs.js"; -import { Result } from "../types/fp.js"; -import { isReadableStream } from "../types/streams.js"; +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { APICall, APIPromise } from '../types/async.js'; +import { isBlobLike } from '../types/blobs.js'; +import { Result } from '../types/fp.js'; +import { isReadableStream } from '../types/streams.js'; /** * Upload translation files @@ -39,10 +36,9 @@ import { isReadableStream } from "../types/streams.js"; */ export function translationsUpload( client: NovuCore, - requestBody: - operations.TranslationControllerUploadTranslationFilesRequestBody, + requestBody: operations.TranslationControllerUploadTranslationFilesRequestBody, idempotencyKey?: string | undefined, - options?: RequestOptions, + options?: RequestOptions ): APIPromise< Result< components.UploadTranslationsResponseDto, @@ -56,20 +52,14 @@ export function translationsUpload( | SDKValidationError > > { - return new APIPromise($do( - client, - requestBody, - idempotencyKey, - options, - )); + return new APIPromise($do(client, requestBody, idempotencyKey, options)); } async function $do( client: NovuCore, - requestBody: - operations.TranslationControllerUploadTranslationFilesRequestBody, + requestBody: operations.TranslationControllerUploadTranslationFilesRequestBody, idempotencyKey?: string | undefined, - options?: RequestOptions, + options?: RequestOptions ): Promise< [ Result< @@ -93,68 +83,58 @@ async function $do( const parsed = safeParse( input, - (value) => - operations - .TranslationControllerUploadTranslationFilesRequest$outboundSchema - .parse(value), - "Input validation failed", + (value) => operations.TranslationControllerUploadTranslationFilesRequest$outboundSchema.parse(value), + 'Input validation failed' ); if (!parsed.ok) { - return [parsed, { status: "invalid" }]; + return [parsed, { status: 'invalid' }]; } const payload = parsed.value; const body = new FormData(); - for (const fileItem of payload.RequestBody.files) { + for (const fileItem of payload.RequestBody.files ?? []) { if (isBlobLike(fileItem)) { - appendForm(body, "files", fileItem); + appendForm(body, 'files', fileItem); } else if (isReadableStream(fileItem.content)) { const buffer = await readableStreamToArrayBuffer(fileItem.content); - const contentType = getContentTypeFromFileName(fileItem.fileName) - || "application/octet-stream"; + const contentType = getContentTypeFromFileName(fileItem.fileName) || 'application/octet-stream'; const blob = new Blob([buffer], { type: contentType }); - appendForm(body, "files", blob, fileItem.fileName); + appendForm(body, 'files', blob, fileItem.fileName); } else { - const contentType = getContentTypeFromFileName(fileItem.fileName) - || "application/octet-stream"; - appendForm( - body, - "files", - new Blob([fileItem.content], { type: contentType }), - fileItem.fileName, - ); + const contentType = getContentTypeFromFileName(fileItem.fileName) || 'application/octet-stream'; + appendForm(body, 'files', new Blob([fileItem.content], { type: contentType }), fileItem.fileName); } } - appendForm(body, "resourceId", payload.RequestBody.resourceId); - appendForm(body, "resourceType", payload.RequestBody.resourceType); + appendForm(body, 'resourceId', payload.RequestBody.resourceId); + appendForm(body, 'resourceType', payload.RequestBody.resourceType); - const path = pathToFunc("/v2/translations/upload")(); + const path = pathToFunc('/v2/translations/upload')(); - const headers = new Headers(compactMap({ - Accept: "application/json", - "idempotency-key": encodeSimple( - "idempotency-key", - payload["idempotency-key"], - { explode: false, charEncoding: "none" }, - ), - })); + const headers = new Headers( + compactMap({ + Accept: 'application/json', + 'idempotency-key': encodeSimple('idempotency-key', payload['idempotency-key'], { + explode: false, + charEncoding: 'none', + }), + }) + ); const securityInput = await extractSecurity(client._options.security); const requestSecurity = resolveGlobalSecurity(securityInput); const context = { options: client._options, - baseURL: options?.serverURL ?? client._baseURL ?? "", - operationID: "TranslationController_uploadTranslationFiles", + baseURL: options?.serverURL ?? client._baseURL ?? '', + operationID: 'TranslationController_uploadTranslationFiles', oAuth2Scopes: null, resolvedSecurity: requestSecurity, securitySource: client._options.security, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", + retryConfig: options?.retries || + client._options.retryConfig || { + strategy: 'backoff', backoff: { initialInterval: 1000, maxInterval: 30000, @@ -162,34 +142,37 @@ async function $do( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + } || { strategy: 'none' }, + retryCodes: options?.retryCodes || ['408', '409', '429', '5XX'], }; - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - baseURL: options?.serverURL, - path: path, - headers: headers, - body: body, - userAgent: client._options.userAgent, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); + const requestRes = client._createRequest( + context, + { + security: requestSecurity, + method: 'POST', + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, + options + ); if (!requestRes.ok) { - return [requestRes, { status: "invalid" }]; + return [requestRes, { status: 'invalid' }]; } const req = requestRes.value; const doResult = await client._do(req, { context, - errorCodes: ["4XX", "5XX"], + errorCodes: ['4XX', '5XX'], retryConfig: context.retryConfig, retryCodes: context.retryCodes, }); if (!doResult.ok) { - return [doResult, { status: "request-error", request: req }]; + return [doResult, { status: 'request-error', request: req }]; } const response = doResult.value; @@ -205,12 +188,12 @@ async function $do( | SDKValidationError >( M.json(200, components.UploadTranslationsResponseDto$inboundSchema), - M.fail("4XX"), - M.fail("5XX"), + M.fail('4XX'), + M.fail('5XX') )(response, req); if (!result.ok) { - return [result, { status: "complete", request: req, response }]; + return [result, { status: 'complete', request: req, response }]; } - return [result, { status: "complete", request: req, response }]; + return [result, { status: 'complete', request: req, response }]; } diff --git a/libs/internal-sdk/src/lib/config.ts b/libs/internal-sdk/src/lib/config.ts index 4fed4aa7e47..52549e8bc18 100644 --- a/libs/internal-sdk/src/lib/config.ts +++ b/libs/internal-sdk/src/lib/config.ts @@ -61,6 +61,6 @@ export const SDK_METADATA = { language: 'typescript', openapiDocVersion: '3.14.0', sdkVersion: '0.1.21', - genVersion: '2.792.3', - userAgent: 'speakeasy-sdk/typescript 0.1.21 2.792.3 3.14.0 @novu/api', + genVersion: '2.844.3', + userAgent: 'speakeasy-sdk/typescript 0.1.21 2.844.3 3.14.0 @novu/api', } as const; diff --git a/libs/internal-sdk/src/lib/sdks.ts b/libs/internal-sdk/src/lib/sdks.ts index d8808ff2732..ef9816ec26f 100644 --- a/libs/internal-sdk/src/lib/sdks.ts +++ b/libs/internal-sdk/src/lib/sdks.ts @@ -271,8 +271,8 @@ export class ClientSDK { } } -const jsonLikeContentTypeRE = /(application|text)\/([^+]+\+)*json.*/; -const jsonlLikeContentTypeRE = /(application|text)\/(([^+]+\+)*jsonl\b.*|([^+]+\+)*x-ndjson\b.*)/; +const jsonLikeContentTypeRE = /^(application|text)\/([^+]+\+)*json.*/; +const jsonlLikeContentTypeRE = /^(application|text)\/([^+]+\+)*(jsonl|x-ndjson)\b.*/; async function logRequest(logger: Logger | undefined, req: Request) { if (!logger) { return; diff --git a/libs/internal-sdk/src/models/components/workflowcreationsourceenum.ts b/libs/internal-sdk/src/models/components/workflowcreationsourceenum.ts index d2f923246e4..3ff08870ddd 100644 --- a/libs/internal-sdk/src/models/components/workflowcreationsourceenum.ts +++ b/libs/internal-sdk/src/models/components/workflowcreationsourceenum.ts @@ -2,32 +2,30 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod/v3"; -import { ClosedEnum } from "../../types/enums.js"; +import * as z from 'zod/v3'; +import { ClosedEnum } from '../../types/enums.js'; /** * Source of workflow creation */ export const WorkflowCreationSourceEnum = { - TemplateStore: "template_store", - Editor: "editor", - NotificationDirectory: "notification_directory", - OnboardingDigestDemo: "onboarding_digest_demo", - OnboardingInApp: "onboarding_in_app", - EmptyState: "empty_state", - Dropdown: "dropdown", - OnboardingGetStarted: "onboarding_get_started", - Bridge: "bridge", - Dashboard: "dashboard", + TemplateStore: 'template_store', + Editor: 'editor', + NotificationDirectory: 'notification_directory', + OnboardingDigestDemo: 'onboarding_digest_demo', + OnboardingInApp: 'onboarding_in_app', + EmptyState: 'empty_state', + Dropdown: 'dropdown', + OnboardingGetStarted: 'onboarding_get_started', + Bridge: 'bridge', + Dashboard: 'dashboard', + Ai: 'ai', } as const; /** * Source of workflow creation */ -export type WorkflowCreationSourceEnum = ClosedEnum< - typeof WorkflowCreationSourceEnum ->; +export type WorkflowCreationSourceEnum = ClosedEnum; /** @internal */ -export const WorkflowCreationSourceEnum$outboundSchema: z.ZodNativeEnum< - typeof WorkflowCreationSourceEnum -> = z.nativeEnum(WorkflowCreationSourceEnum); +export const WorkflowCreationSourceEnum$outboundSchema: z.ZodNativeEnum = + z.nativeEnum(WorkflowCreationSourceEnum); diff --git a/libs/internal-sdk/src/models/operations/inboundwebhookscontrollerhandlewebhook.ts b/libs/internal-sdk/src/models/operations/inboundwebhookscontrollerhandlewebhook.ts index 78a6c112c88..bb49310eeb0 100644 --- a/libs/internal-sdk/src/models/operations/inboundwebhookscontrollerhandlewebhook.ts +++ b/libs/internal-sdk/src/models/operations/inboundwebhookscontrollerhandlewebhook.ts @@ -2,8 +2,8 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod/v3"; -import { remap as remap$ } from "../../lib/primitives.js"; +import * as z from 'zod/v3'; +import { remap as remap$ } from '../../lib/primitives.js'; export type InboundWebhooksControllerHandleWebhookRequest = { /** @@ -21,42 +21,40 @@ export type InboundWebhooksControllerHandleWebhookRequest = { /** * Webhook event payload from the delivery provider */ - requestBody?: any | undefined; + requestBody: { [k: string]: any }; }; /** @internal */ export type InboundWebhooksControllerHandleWebhookRequest$Outbound = { environmentId: string; integrationId: string; - "idempotency-key"?: string | undefined; - RequestBody?: any | undefined; + 'idempotency-key'?: string | undefined; + RequestBody: { [k: string]: any }; }; /** @internal */ -export const InboundWebhooksControllerHandleWebhookRequest$outboundSchema: - z.ZodType< - InboundWebhooksControllerHandleWebhookRequest$Outbound, - z.ZodTypeDef, - InboundWebhooksControllerHandleWebhookRequest - > = z.object({ +export const InboundWebhooksControllerHandleWebhookRequest$outboundSchema: z.ZodType< + InboundWebhooksControllerHandleWebhookRequest$Outbound, + z.ZodTypeDef, + InboundWebhooksControllerHandleWebhookRequest +> = z + .object({ environmentId: z.string(), integrationId: z.string(), idempotencyKey: z.string().optional(), - requestBody: z.any().optional(), - }).transform((v) => { + requestBody: z.record(z.any()), + }) + .transform((v) => { return remap$(v, { - idempotencyKey: "idempotency-key", - requestBody: "RequestBody", + idempotencyKey: 'idempotency-key', + requestBody: 'RequestBody', }); }); export function inboundWebhooksControllerHandleWebhookRequestToJSON( - inboundWebhooksControllerHandleWebhookRequest: - InboundWebhooksControllerHandleWebhookRequest, + inboundWebhooksControllerHandleWebhookRequest: InboundWebhooksControllerHandleWebhookRequest ): string { return JSON.stringify( - InboundWebhooksControllerHandleWebhookRequest$outboundSchema.parse( - inboundWebhooksControllerHandleWebhookRequest, - ), + InboundWebhooksControllerHandleWebhookRequest$outboundSchema.parse(inboundWebhooksControllerHandleWebhookRequest) ); } diff --git a/libs/internal-sdk/src/react-query/_types.ts b/libs/internal-sdk/src/react-query/_types.ts index 504419b807a..abab0f0a741 100644 --- a/libs/internal-sdk/src/react-query/_types.ts +++ b/libs/internal-sdk/src/react-query/_types.ts @@ -2,9 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { RequestOptions } from "../lib/sdks.js"; -import { PageIterator } from "../types/operations.js"; - import type { DefaultError, InfiniteData, @@ -16,7 +13,9 @@ import type { UseMutationOptions, UseQueryOptions, UseSuspenseQueryOptions, -} from "@tanstack/react-query"; +} from '@tanstack/react-query'; +import { RequestOptions } from '../lib/sdks.js'; +import { PageIterator } from '../types/operations.js'; // Reaction to breaking change in 5.80.0 https://github.com/TanStack/query/pull/9224#issuecomment-2934835936 interface UseInfiniteQueryOptions< @@ -25,18 +24,7 @@ interface UseInfiniteQueryOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, -> extends - OmitKeyof< - InfiniteQueryObserverOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam - >, - "suspense" - > -{ +> extends OmitKeyof, 'suspense'> { /** * Set this to `false` to unsubscribe this observer from updates to the query cache. * Defaults to `true`. @@ -51,18 +39,15 @@ interface InfiniteQueryObserverOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, -> extends - QueryObserverOptions< - TQueryFnData, - TError, - TData, - InfiniteData, - TQueryKey, - TPageParam - >, - InfiniteQueryPageParamsOptions -{ -} +> extends QueryObserverOptions< + TQueryFnData, + TError, + TData, + InfiniteData, + TQueryKey, + TPageParam + >, + InfiniteQueryPageParamsOptions {} // Reaction to breaking change in 5.80.0 https://github.com/TanStack/query/pull/9224#issuecomment-2934835936 interface UseSuspenseInfiniteQueryOptions< @@ -71,103 +56,61 @@ interface UseSuspenseInfiniteQueryOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, -> extends - OmitKeyof< +> extends OmitKeyof< UseInfiniteQueryOptions, - "queryFn" | "enabled" | "throwOnError" | "placeholderData" - > -{ - queryFn?: Exclude< - UseInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam - >["queryFn"], - SkipToken - >; + 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData' + > { + queryFn?: Exclude['queryFn'], SkipToken>; } -export type TupleToPrefixes = T extends [...infer Prefix, any] - ? TupleToPrefixes | T - : never; +export type TupleToPrefixes = T extends [...infer Prefix, any] ? TupleToPrefixes | T : never; -export type QueryHookOptions = - & Omit< - UseQueryOptions, - "queryKey" | "queryFn" | "select" | keyof RequestOptions - > - & RequestOptions; +export type QueryHookOptions = Omit< + UseQueryOptions, + 'queryKey' | 'queryFn' | 'select' | keyof RequestOptions +> & + RequestOptions; -export type SuspenseQueryHookOptions = - & Omit< - UseSuspenseQueryOptions, - "queryKey" | "queryFn" | "select" | keyof RequestOptions - > - & RequestOptions; +export type SuspenseQueryHookOptions = Omit< + UseSuspenseQueryOptions, + 'queryKey' | 'queryFn' | 'select' | keyof RequestOptions +> & + RequestOptions; -export type InfiniteQueryHookOptions< - Data extends PageIterator, -> = - & Omit< - UseInfiniteQueryOptions< - Data, - Error, - InfiniteData, - QueryKey, - Data["~next"] - >, - | "queryKey" - | "queryFn" - | "select" - | "getNextPageParam" - | "getPreviousPageParam" - | "initialPageParam" - | keyof RequestOptions - > - & RequestOptions - & { initialPageParam?: Data["~next"] }; +export type InfiniteQueryHookOptions, Err = Error> = Omit< + UseInfiniteQueryOptions, QueryKey, Data['~next']>, + | 'queryKey' + | 'queryFn' + | 'select' + | 'getNextPageParam' + | 'getPreviousPageParam' + | 'initialPageParam' + | keyof RequestOptions +> & + RequestOptions & { initialPageParam?: Data['~next'] }; -export type SuspenseInfiniteQueryHookOptions< - Data extends PageIterator, -> = - & Omit< - UseSuspenseInfiniteQueryOptions< - Data, - Error, - InfiniteData, - QueryKey, - Data["~next"] - >, - | "queryKey" - | "queryFn" - | "select" - | "getNextPageParam" - | "getPreviousPageParam" - | "initialPageParam" - | keyof RequestOptions - > - & RequestOptions - & { initialPageParam?: Data["~next"] }; +export type SuspenseInfiniteQueryHookOptions, Err = Error> = Omit< + UseSuspenseInfiniteQueryOptions, QueryKey, Data['~next']>, + | 'queryKey' + | 'queryFn' + | 'select' + | 'getNextPageParam' + | 'getPreviousPageParam' + | 'initialPageParam' + | keyof RequestOptions +> & + RequestOptions & { initialPageParam?: Data['~next'] }; -export type MutationHookOptions< - Data = unknown, - Err = Error, - Variables = unknown, -> = - & Omit< - UseMutationOptions, - "mutationKey" | "mutationFn" | keyof RequestOptions - > - & RequestOptions; +export type MutationHookOptions = Omit< + UseMutationOptions, + 'mutationKey' | 'mutationFn' | keyof RequestOptions +> & + RequestOptions; /** * Removes non-serializable properties (functions and symbols) from a PageIterator for SSR hydration. * React Server Components cannot serialize functions or Symbol properties across the server/client boundary. */ -export function pageIteratorToJSON( - page: T, -): T { +export function pageIteratorToJSON(page: T): T { const { next: _, ...rest } = page as T & { next?: unknown }; // Symbol properties are copied by spread but can't be serialized for RSC delete (rest as Record)[Symbol.asyncIterator]; diff --git a/libs/internal-sdk/src/react-query/activityChartsRetrieve.ts b/libs/internal-sdk/src/react-query/activityChartsRetrieve.ts index d4105050007..b488df22dd8 100644 --- a/libs/internal-sdk/src/react-query/activityChartsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/activityChartsRetrieve.ts @@ -5,24 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { ActivityChartsRetrieveQueryData, buildActivityChartsRetrieveQuery, prefetchActivityChartsRetrieve, queryKeyActivityChartsRetrieve, -} from "./activityChartsRetrieve.core.js"; +} from './activityChartsRetrieve.core.js'; export { type ActivityChartsRetrieveQueryData, buildActivityChartsRetrieveQuery, @@ -30,6 +36,16 @@ export { queryKeyActivityChartsRetrieve, }; +export type ActivityChartsRetrieveQueryError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve activity charts * @@ -38,15 +54,11 @@ export { */ export function useActivityChartsRetrieve( request: operations.ActivityControllerGetChartsRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildActivityChartsRetrieveQuery( - client, - request, - options, - ), + ...buildActivityChartsRetrieveQuery(client, request, options), ...options, }); } @@ -59,15 +71,11 @@ export function useActivityChartsRetrieve( */ export function useActivityChartsRetrieveSuspense( request: operations.ActivityControllerGetChartsRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildActivityChartsRetrieveQuery( - client, - request, - options, - ), + ...buildActivityChartsRetrieveQuery(client, request, options), ...options, }); } @@ -88,7 +96,7 @@ export function setActivityChartsRetrieveData( idempotencyKey?: string | undefined; }, ], - data: ActivityChartsRetrieveQueryData, + data: ActivityChartsRetrieveQueryData ): ActivityChartsRetrieveQueryData | undefined { const key = queryKeyActivityChartsRetrieve(...queryKeyBase); @@ -98,33 +106,35 @@ export function setActivityChartsRetrieveData( export function invalidateActivityChartsRetrieve( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - createdAtGte?: string | undefined; - createdAtLte?: string | undefined; - reportType: Array; - workflowIds?: Array | undefined; - subscriberIds?: Array | undefined; - transactionIds?: Array | undefined; - statuses?: Array | undefined; - channels?: Array | undefined; - topicKey?: string | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + createdAtGte?: string | undefined; + createdAtLte?: string | undefined; + reportType: Array; + workflowIds?: Array | undefined; + subscriberIds?: Array | undefined; + transactionIds?: Array | undefined; + statuses?: Array | undefined; + channels?: Array | undefined; + topicKey?: string | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Charts", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Charts', 'retrieve', ...queryKeyBase], }); } export function invalidateAllActivityChartsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Charts", "retrieve"], + queryKey: ['@novu/api', 'Charts', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/activityRequestsList.ts b/libs/internal-sdk/src/react-query/activityRequestsList.ts index d75947a9f05..789968a9834 100644 --- a/libs/internal-sdk/src/react-query/activityRequestsList.ts +++ b/libs/internal-sdk/src/react-query/activityRequestsList.ts @@ -5,24 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { ActivityRequestsListQueryData, buildActivityRequestsListQuery, prefetchActivityRequestsList, queryKeyActivityRequestsList, -} from "./activityRequestsList.core.js"; +} from './activityRequestsList.core.js'; export { type ActivityRequestsListQueryData, buildActivityRequestsListQuery, @@ -30,6 +36,16 @@ export { queryKeyActivityRequestsList, }; +export type ActivityRequestsListQueryError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List activity requests * @@ -38,15 +54,11 @@ export { */ export function useActivityRequestsList( request: operations.ActivityControllerGetLogsRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildActivityRequestsListQuery( - client, - request, - options, - ), + ...buildActivityRequestsListQuery(client, request, options), ...options, }); } @@ -59,15 +71,11 @@ export function useActivityRequestsList( */ export function useActivityRequestsListSuspense( request: operations.ActivityControllerGetLogsRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildActivityRequestsListQuery( - client, - request, - options, - ), + ...buildActivityRequestsListQuery(client, request, options), ...options, }); } @@ -85,7 +93,7 @@ export function setActivityRequestsListData( idempotencyKey?: string | undefined; }, ], - data: ActivityRequestsListQueryData, + data: ActivityRequestsListQueryData ): ActivityRequestsListQueryData | undefined { const key = queryKeyActivityRequestsList(...queryKeyBase); @@ -95,30 +103,32 @@ export function setActivityRequestsListData( export function invalidateActivityRequestsList( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - page?: number | undefined; - limit?: number | undefined; - statusCodes?: Array | undefined; - urlPattern?: string | undefined; - transactionId?: string | undefined; - createdGte?: number | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + page?: number | undefined; + limit?: number | undefined; + statusCodes?: Array | undefined; + urlPattern?: string | undefined; + transactionId?: string | undefined; + createdGte?: number | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Requests", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Requests', 'list', ...queryKeyBase], }); } export function invalidateAllActivityRequestsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Requests", "list"], + queryKey: ['@novu/api', 'Requests', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/activityRequestsRetrieve.ts b/libs/internal-sdk/src/react-query/activityRequestsRetrieve.ts index 30c60413c48..f0393d7225a 100644 --- a/libs/internal-sdk/src/react-query/activityRequestsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/activityRequestsRetrieve.ts @@ -5,23 +5,29 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { ActivityRequestsRetrieveQueryData, buildActivityRequestsRetrieveQuery, prefetchActivityRequestsRetrieve, queryKeyActivityRequestsRetrieve, -} from "./activityRequestsRetrieve.core.js"; +} from './activityRequestsRetrieve.core.js'; export { type ActivityRequestsRetrieveQueryData, buildActivityRequestsRetrieveQuery, @@ -29,6 +35,16 @@ export { queryKeyActivityRequestsRetrieve, }; +export type ActivityRequestsRetrieveQueryError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve activity request * @@ -38,16 +54,11 @@ export { export function useActivityRequestsRetrieve( requestId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildActivityRequestsRetrieveQuery( - client, - requestId, - idempotencyKey, - options, - ), + ...buildActivityRequestsRetrieveQuery(client, requestId, idempotencyKey, options), ...options, }); } @@ -61,27 +72,19 @@ export function useActivityRequestsRetrieve( export function useActivityRequestsRetrieveSuspense( requestId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildActivityRequestsRetrieveQuery( - client, - requestId, - idempotencyKey, - options, - ), + ...buildActivityRequestsRetrieveQuery(client, requestId, idempotencyKey, options), ...options, }); } export function setActivityRequestsRetrieveData( client: QueryClient, - queryKeyBase: [ - requestId: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: ActivityRequestsRetrieveQueryData, + queryKeyBase: [requestId: string, parameters: { idempotencyKey?: string | undefined }], + data: ActivityRequestsRetrieveQueryData ): ActivityRequestsRetrieveQueryData | undefined { const key = queryKeyActivityRequestsRetrieve(...queryKeyBase); @@ -90,23 +93,21 @@ export function setActivityRequestsRetrieveData( export function invalidateActivityRequestsRetrieve( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [requestId: string, parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[requestId: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Requests", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Requests', 'retrieve', ...queryKeyBase], }); } export function invalidateAllActivityRequestsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Requests", "retrieve"], + queryKey: ['@novu/api', 'Requests', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/activityTrack.ts b/libs/internal-sdk/src/react-query/activityTrack.ts index ddc547f33e5..3e4f350ce69 100644 --- a/libs/internal-sdk/src/react-query/activityTrack.ts +++ b/libs/internal-sdk/src/react-query/activityTrack.ts @@ -2,20 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { activityTrack } from '../funcs/activityTrack.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { activityTrack } from "../funcs/activityTrack.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ActivityTrackMutationVariables = { request: operations.InboundWebhooksControllerHandleWebhookRequest; @@ -24,6 +30,16 @@ export type ActivityTrackMutationVariables = { export type ActivityTrackMutationData = Array; +export type ActivityTrackMutationError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Track activity and engagement events * @@ -31,16 +47,8 @@ export type ActivityTrackMutationData = Array; * Track activity and engagement events for a specific delivery provider */ export function useActivityTrackMutation( - options?: MutationHookOptions< - ActivityTrackMutationData, - Error, - ActivityTrackMutationVariables - >, -): UseMutationResult< - ActivityTrackMutationData, - Error, - ActivityTrackMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildActivityTrackMutation(client, options), @@ -49,41 +57,29 @@ export function useActivityTrackMutation( } export function mutationKeyActivityTrack(): MutationKey { - return ["@novu/api", "Activity", "track"]; + return ['@novu/api', 'Activity', 'track']; } export function buildActivityTrackMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ActivityTrackMutationVariables, - ) => Promise; + mutationFn: (variables: ActivityTrackMutationVariables) => Promise; } { return { mutationKey: mutationKeyActivityTrack(), - mutationFn: function activityTrackMutationFn({ - request, - options, - }): Promise { + mutationFn: function activityTrackMutationFn({ request, options }): Promise { const mergedOptions = { ...hookOptions, ...options, fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(activityTrack( - client$, - request, - mergedOptions, - )); + return unwrapAsync(activityTrack(client$, request, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/activityWorkflowRunsList.ts b/libs/internal-sdk/src/react-query/activityWorkflowRunsList.ts index f3db7e2be74..852c8c1af4b 100644 --- a/libs/internal-sdk/src/react-query/activityWorkflowRunsList.ts +++ b/libs/internal-sdk/src/react-query/activityWorkflowRunsList.ts @@ -10,6 +10,16 @@ import { useQuery, useSuspenseQuery, } from '@tanstack/react-query'; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; import * as operations from '../models/operations/index.js'; import { useNovuContext } from './_context.js'; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; @@ -26,6 +36,16 @@ export { queryKeyActivityWorkflowRunsList, }; +export type ActivityWorkflowRunsListQueryError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List workflow runs * @@ -34,8 +54,8 @@ export { */ export function useActivityWorkflowRunsList( request: operations.ActivityControllerGetWorkflowRunsRequest, - options?: QueryHookOptions -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ ...buildActivityWorkflowRunsListQuery(client, request, options), @@ -51,8 +71,8 @@ export function useActivityWorkflowRunsList( */ export function useActivityWorkflowRunsListSuspense( request: operations.ActivityControllerGetWorkflowRunsRequest, - options?: SuspenseQueryHookOptions -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ ...buildActivityWorkflowRunsListQuery(client, request, options), diff --git a/libs/internal-sdk/src/react-query/activityWorkflowRunsRetrieve.ts b/libs/internal-sdk/src/react-query/activityWorkflowRunsRetrieve.ts index dcdec4ab9cb..32a362e915d 100644 --- a/libs/internal-sdk/src/react-query/activityWorkflowRunsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/activityWorkflowRunsRetrieve.ts @@ -5,23 +5,29 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { ActivityWorkflowRunsRetrieveQueryData, buildActivityWorkflowRunsRetrieveQuery, prefetchActivityWorkflowRunsRetrieve, queryKeyActivityWorkflowRunsRetrieve, -} from "./activityWorkflowRunsRetrieve.core.js"; +} from './activityWorkflowRunsRetrieve.core.js'; export { type ActivityWorkflowRunsRetrieveQueryData, buildActivityWorkflowRunsRetrieveQuery, @@ -29,6 +35,16 @@ export { queryKeyActivityWorkflowRunsRetrieve, }; +export type ActivityWorkflowRunsRetrieveQueryError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve workflow run * @@ -38,16 +54,11 @@ export { export function useActivityWorkflowRunsRetrieve( workflowRunId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildActivityWorkflowRunsRetrieveQuery( - client, - workflowRunId, - idempotencyKey, - options, - ), + ...buildActivityWorkflowRunsRetrieveQuery(client, workflowRunId, idempotencyKey, options), ...options, }); } @@ -61,27 +72,19 @@ export function useActivityWorkflowRunsRetrieve( export function useActivityWorkflowRunsRetrieveSuspense( workflowRunId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildActivityWorkflowRunsRetrieveQuery( - client, - workflowRunId, - idempotencyKey, - options, - ), + ...buildActivityWorkflowRunsRetrieveQuery(client, workflowRunId, idempotencyKey, options), ...options, }); } export function setActivityWorkflowRunsRetrieveData( client: QueryClient, - queryKeyBase: [ - workflowRunId: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: ActivityWorkflowRunsRetrieveQueryData, + queryKeyBase: [workflowRunId: string, parameters: { idempotencyKey?: string | undefined }], + data: ActivityWorkflowRunsRetrieveQueryData ): ActivityWorkflowRunsRetrieveQueryData | undefined { const key = queryKeyActivityWorkflowRunsRetrieve(...queryKeyBase); @@ -90,23 +93,21 @@ export function setActivityWorkflowRunsRetrieveData( export function invalidateActivityWorkflowRunsRetrieve( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [workflowRunId: string, parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[workflowRunId: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "WorkflowRuns", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'WorkflowRuns', 'retrieve', ...queryKeyBase], }); } export function invalidateAllActivityWorkflowRunsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "WorkflowRuns", "retrieve"], + queryKey: ['@novu/api', 'WorkflowRuns', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/cancel.ts b/libs/internal-sdk/src/react-query/cancel.ts index 3a206198416..2e15ab24e1c 100644 --- a/libs/internal-sdk/src/react-query/cancel.ts +++ b/libs/internal-sdk/src/react-query/cancel.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { cancel } from '../funcs/cancel.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { cancel } from "../funcs/cancel.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type CancelMutationVariables = { transactionId: string; @@ -24,6 +31,18 @@ export type CancelMutationVariables = { export type CancelMutationData = operations.EventsControllerCancelResponse; +export type CancelMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Cancel triggered event * @@ -33,12 +52,8 @@ export type CancelMutationData = operations.EventsControllerCancelResponse; * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... */ export function useCancelMutation( - options?: MutationHookOptions< - CancelMutationData, - Error, - CancelMutationVariables - >, -): UseMutationResult { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildCancelMutation(client, options), @@ -47,43 +62,29 @@ export function useCancelMutation( } export function mutationKeyCancel(): MutationKey { - return ["@novu/api", "cancel"]; + return ['@novu/api', 'cancel']; } export function buildCancelMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: CancelMutationVariables, - ) => Promise; + mutationFn: (variables: CancelMutationVariables) => Promise; } { return { mutationKey: mutationKeyCancel(), - mutationFn: function cancelMutationFn({ - transactionId, - idempotencyKey, - options, - }): Promise { + mutationFn: function cancelMutationFn({ transactionId, idempotencyKey, options }): Promise { const mergedOptions = { ...hookOptions, ...options, fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(cancel( - client$, - transactionId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(cancel(client$, transactionId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/channelConnectionsCreate.ts b/libs/internal-sdk/src/react-query/channelConnectionsCreate.ts index 345752e466d..85e7dde2668 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsCreate.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsCreate.ts @@ -2,24 +2,30 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { channelConnectionsCreate } from '../funcs/channelConnectionsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { channelConnectionsCreate } from "../funcs/channelConnectionsCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ChannelConnectionsCreateMutationVariables = { - createChannelConnectionRequestDto: - components.CreateChannelConnectionRequestDto; + createChannelConnectionRequestDto: components.CreateChannelConnectionRequestDto; idempotencyKey?: string | undefined; options?: RequestOptions; }; @@ -27,6 +33,18 @@ export type ChannelConnectionsCreateMutationVariables = { export type ChannelConnectionsCreateMutationData = operations.ChannelConnectionsControllerCreateChannelConnectionResponse; +export type ChannelConnectionsCreateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Create a channel connection * @@ -36,12 +54,12 @@ export type ChannelConnectionsCreateMutationData = export function useChannelConnectionsCreateMutation( options?: MutationHookOptions< ChannelConnectionsCreateMutationData, - Error, + ChannelConnectionsCreateMutationError, ChannelConnectionsCreateMutationVariables - >, + > ): UseMutationResult< ChannelConnectionsCreateMutationData, - Error, + ChannelConnectionsCreateMutationError, ChannelConnectionsCreateMutationVariables > { const client = useNovuContext(); @@ -52,17 +70,15 @@ export function useChannelConnectionsCreateMutation( } export function mutationKeyChannelConnectionsCreate(): MutationKey { - return ["@novu/api", "Channel Connections", "create"]; + return ['@novu/api', 'Channel Connections', 'create']; } export function buildChannelConnectionsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ChannelConnectionsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: ChannelConnectionsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyChannelConnectionsCreate(), @@ -77,18 +93,12 @@ export function buildChannelConnectionsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(channelConnectionsCreate( - client$, - createChannelConnectionRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + channelConnectionsCreate(client$, createChannelConnectionRequestDto, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/channelConnectionsDelete.ts b/libs/internal-sdk/src/react-query/channelConnectionsDelete.ts index b44a75b8f12..6857345f37b 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsDelete.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { channelConnectionsDelete } from '../funcs/channelConnectionsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { channelConnectionsDelete } from "../funcs/channelConnectionsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ChannelConnectionsDeleteMutationVariables = { identifier: string; @@ -26,6 +33,18 @@ export type ChannelConnectionsDeleteMutationData = | operations.ChannelConnectionsControllerDeleteChannelConnectionResponse | undefined; +export type ChannelConnectionsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Delete a channel connection * @@ -35,12 +54,12 @@ export type ChannelConnectionsDeleteMutationData = export function useChannelConnectionsDeleteMutation( options?: MutationHookOptions< ChannelConnectionsDeleteMutationData, - Error, + ChannelConnectionsDeleteMutationError, ChannelConnectionsDeleteMutationVariables - >, + > ): UseMutationResult< ChannelConnectionsDeleteMutationData, - Error, + ChannelConnectionsDeleteMutationError, ChannelConnectionsDeleteMutationVariables > { const client = useNovuContext(); @@ -51,17 +70,15 @@ export function useChannelConnectionsDeleteMutation( } export function mutationKeyChannelConnectionsDelete(): MutationKey { - return ["@novu/api", "Channel Connections", "delete"]; + return ['@novu/api', 'Channel Connections', 'delete']; } export function buildChannelConnectionsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ChannelConnectionsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: ChannelConnectionsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyChannelConnectionsDelete(), @@ -76,18 +93,10 @@ export function buildChannelConnectionsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(channelConnectionsDelete( - client$, - identifier, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(channelConnectionsDelete(client$, identifier, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/channelConnectionsList.ts b/libs/internal-sdk/src/react-query/channelConnectionsList.ts index dbb42bc329c..03fb78d07ce 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsList.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsList.ts @@ -5,25 +5,32 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; +import * as components from '../models/components/index.js'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildChannelConnectionsListQuery, ChannelConnectionsListQueryData, prefetchChannelConnectionsList, queryKeyChannelConnectionsList, -} from "./channelConnectionsList.core.js"; +} from './channelConnectionsList.core.js'; export { buildChannelConnectionsListQuery, type ChannelConnectionsListQueryData, @@ -31,6 +38,18 @@ export { queryKeyChannelConnectionsList, }; +export type ChannelConnectionsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List all channel connections * @@ -39,15 +58,11 @@ export { */ export function useChannelConnectionsList( request: operations.ChannelConnectionsControllerListChannelConnectionsRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildChannelConnectionsListQuery( - client, - request, - options, - ), + ...buildChannelConnectionsListQuery(client, request, options), ...options, }); } @@ -60,15 +75,11 @@ export function useChannelConnectionsList( */ export function useChannelConnectionsListSuspense( request: operations.ChannelConnectionsControllerListChannelConnectionsRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildChannelConnectionsListQuery( - client, - request, - options, - ), + ...buildChannelConnectionsListQuery(client, request, options), ...options, }); } @@ -93,7 +104,7 @@ export function setChannelConnectionsListData( idempotencyKey?: string | undefined; }, ], - data: ChannelConnectionsListQueryData, + data: ChannelConnectionsListQueryData ): ChannelConnectionsListQueryData | undefined { const key = queryKeyChannelConnectionsList(...queryKeyBase); @@ -103,37 +114,39 @@ export function setChannelConnectionsListData( export function invalidateChannelConnectionsList( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - after?: string | undefined; - before?: string | undefined; - limit?: number | undefined; - orderDirection?: - | operations.ChannelConnectionsControllerListChannelConnectionsQueryParamOrderDirection - | undefined; - orderBy?: string | undefined; - includeCursor?: boolean | undefined; - subscriberId?: string | undefined; - channel?: operations.Channel | undefined; - providerId?: components.ProvidersIdEnum | undefined; - integrationIdentifier?: string | undefined; - contextKeys?: Array | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + after?: string | undefined; + before?: string | undefined; + limit?: number | undefined; + orderDirection?: + | operations.ChannelConnectionsControllerListChannelConnectionsQueryParamOrderDirection + | undefined; + orderBy?: string | undefined; + includeCursor?: boolean | undefined; + subscriberId?: string | undefined; + channel?: operations.Channel | undefined; + providerId?: components.ProvidersIdEnum | undefined; + integrationIdentifier?: string | undefined; + contextKeys?: Array | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Connections", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Channel Connections', 'list', ...queryKeyBase], }); } export function invalidateAllChannelConnectionsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Connections", "list"], + queryKey: ['@novu/api', 'Channel Connections', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.ts b/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.ts index 8201eb7c66a..f552dee7e71 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsRetrieve.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildChannelConnectionsRetrieveQuery, ChannelConnectionsRetrieveQueryData, prefetchChannelConnectionsRetrieve, queryKeyChannelConnectionsRetrieve, -} from "./channelConnectionsRetrieve.core.js"; +} from './channelConnectionsRetrieve.core.js'; export { buildChannelConnectionsRetrieveQuery, type ChannelConnectionsRetrieveQueryData, @@ -29,6 +36,18 @@ export { queryKeyChannelConnectionsRetrieve, }; +export type ChannelConnectionsRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve a channel connection * @@ -38,16 +57,11 @@ export { export function useChannelConnectionsRetrieve( identifier: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildChannelConnectionsRetrieveQuery( - client, - identifier, - idempotencyKey, - options, - ), + ...buildChannelConnectionsRetrieveQuery(client, identifier, idempotencyKey, options), ...options, }); } @@ -61,27 +75,19 @@ export function useChannelConnectionsRetrieve( export function useChannelConnectionsRetrieveSuspense( identifier: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildChannelConnectionsRetrieveQuery( - client, - identifier, - idempotencyKey, - options, - ), + ...buildChannelConnectionsRetrieveQuery(client, identifier, idempotencyKey, options), ...options, }); } export function setChannelConnectionsRetrieveData( client: QueryClient, - queryKeyBase: [ - identifier: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: ChannelConnectionsRetrieveQueryData, + queryKeyBase: [identifier: string, parameters: { idempotencyKey?: string | undefined }], + data: ChannelConnectionsRetrieveQueryData ): ChannelConnectionsRetrieveQueryData | undefined { const key = queryKeyChannelConnectionsRetrieve(...queryKeyBase); @@ -90,23 +96,21 @@ export function setChannelConnectionsRetrieveData( export function invalidateChannelConnectionsRetrieve( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [identifier: string, parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[identifier: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Connections", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Channel Connections', 'retrieve', ...queryKeyBase], }); } export function invalidateAllChannelConnectionsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Connections", "retrieve"], + queryKey: ['@novu/api', 'Channel Connections', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/channelConnectionsUpdate.ts b/libs/internal-sdk/src/react-query/channelConnectionsUpdate.ts index 3529f52fcdc..4fd107b74cf 100644 --- a/libs/internal-sdk/src/react-query/channelConnectionsUpdate.ts +++ b/libs/internal-sdk/src/react-query/channelConnectionsUpdate.ts @@ -2,24 +2,30 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { channelConnectionsUpdate } from '../funcs/channelConnectionsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { channelConnectionsUpdate } from "../funcs/channelConnectionsUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ChannelConnectionsUpdateMutationVariables = { - updateChannelConnectionRequestDto: - components.UpdateChannelConnectionRequestDto; + updateChannelConnectionRequestDto: components.UpdateChannelConnectionRequestDto; identifier: string; idempotencyKey?: string | undefined; options?: RequestOptions; @@ -28,6 +34,18 @@ export type ChannelConnectionsUpdateMutationVariables = { export type ChannelConnectionsUpdateMutationData = operations.ChannelConnectionsControllerUpdateChannelConnectionResponse; +export type ChannelConnectionsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Update a channel connection * @@ -37,12 +55,12 @@ export type ChannelConnectionsUpdateMutationData = export function useChannelConnectionsUpdateMutation( options?: MutationHookOptions< ChannelConnectionsUpdateMutationData, - Error, + ChannelConnectionsUpdateMutationError, ChannelConnectionsUpdateMutationVariables - >, + > ): UseMutationResult< ChannelConnectionsUpdateMutationData, - Error, + ChannelConnectionsUpdateMutationError, ChannelConnectionsUpdateMutationVariables > { const client = useNovuContext(); @@ -53,17 +71,15 @@ export function useChannelConnectionsUpdateMutation( } export function mutationKeyChannelConnectionsUpdate(): MutationKey { - return ["@novu/api", "Channel Connections", "update"]; + return ['@novu/api', 'Channel Connections', 'update']; } export function buildChannelConnectionsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ChannelConnectionsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: ChannelConnectionsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyChannelConnectionsUpdate(), @@ -79,19 +95,12 @@ export function buildChannelConnectionsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(channelConnectionsUpdate( - client$, - updateChannelConnectionRequestDto, - identifier, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + channelConnectionsUpdate(client$, updateChannelConnectionRequestDto, identifier, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsCreate.ts b/libs/internal-sdk/src/react-query/channelEndpointsCreate.ts index 9cbadddf84f..651abf6b5b8 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsCreate.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsCreate.ts @@ -2,29 +2,46 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { channelEndpointsCreate } from '../funcs/channelEndpointsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { channelEndpointsCreate } from "../funcs/channelEndpointsCreate.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ChannelEndpointsCreateMutationVariables = { - requestBody: - operations.ChannelEndpointsControllerCreateChannelEndpointRequestBody; + requestBody: operations.ChannelEndpointsControllerCreateChannelEndpointRequestBody; idempotencyKey?: string | undefined; options?: RequestOptions; }; -export type ChannelEndpointsCreateMutationData = - operations.ChannelEndpointsControllerCreateChannelEndpointResponse; +export type ChannelEndpointsCreateMutationData = operations.ChannelEndpointsControllerCreateChannelEndpointResponse; + +export type ChannelEndpointsCreateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create a channel endpoint @@ -35,12 +52,12 @@ export type ChannelEndpointsCreateMutationData = export function useChannelEndpointsCreateMutation( options?: MutationHookOptions< ChannelEndpointsCreateMutationData, - Error, + ChannelEndpointsCreateMutationError, ChannelEndpointsCreateMutationVariables - >, + > ): UseMutationResult< ChannelEndpointsCreateMutationData, - Error, + ChannelEndpointsCreateMutationError, ChannelEndpointsCreateMutationVariables > { const client = useNovuContext(); @@ -51,17 +68,15 @@ export function useChannelEndpointsCreateMutation( } export function mutationKeyChannelEndpointsCreate(): MutationKey { - return ["@novu/api", "Channel Endpoints", "create"]; + return ['@novu/api', 'Channel Endpoints', 'create']; } export function buildChannelEndpointsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ChannelEndpointsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: ChannelEndpointsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyChannelEndpointsCreate(), @@ -76,18 +91,10 @@ export function buildChannelEndpointsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(channelEndpointsCreate( - client$, - requestBody, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(channelEndpointsCreate(client$, requestBody, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsDelete.ts b/libs/internal-sdk/src/react-query/channelEndpointsDelete.ts index cf80d9bcfe2..5cf41a3b6be 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsDelete.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { channelEndpointsDelete } from '../funcs/channelEndpointsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { channelEndpointsDelete } from "../funcs/channelEndpointsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ChannelEndpointsDeleteMutationVariables = { identifier: string; @@ -26,6 +33,18 @@ export type ChannelEndpointsDeleteMutationData = | operations.ChannelEndpointsControllerDeleteChannelEndpointResponse | undefined; +export type ChannelEndpointsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Delete a channel endpoint * @@ -35,12 +54,12 @@ export type ChannelEndpointsDeleteMutationData = export function useChannelEndpointsDeleteMutation( options?: MutationHookOptions< ChannelEndpointsDeleteMutationData, - Error, + ChannelEndpointsDeleteMutationError, ChannelEndpointsDeleteMutationVariables - >, + > ): UseMutationResult< ChannelEndpointsDeleteMutationData, - Error, + ChannelEndpointsDeleteMutationError, ChannelEndpointsDeleteMutationVariables > { const client = useNovuContext(); @@ -51,17 +70,15 @@ export function useChannelEndpointsDeleteMutation( } export function mutationKeyChannelEndpointsDelete(): MutationKey { - return ["@novu/api", "Channel Endpoints", "delete"]; + return ['@novu/api', 'Channel Endpoints', 'delete']; } export function buildChannelEndpointsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ChannelEndpointsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: ChannelEndpointsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyChannelEndpointsDelete(), @@ -76,18 +93,10 @@ export function buildChannelEndpointsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(channelEndpointsDelete( - client$, - identifier, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(channelEndpointsDelete(client$, identifier, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsList.ts b/libs/internal-sdk/src/react-query/channelEndpointsList.ts index b2936d5b843..2bce544f743 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsList.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsList.ts @@ -5,25 +5,32 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; +import * as components from '../models/components/index.js'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildChannelEndpointsListQuery, ChannelEndpointsListQueryData, prefetchChannelEndpointsList, queryKeyChannelEndpointsList, -} from "./channelEndpointsList.core.js"; +} from './channelEndpointsList.core.js'; export { buildChannelEndpointsListQuery, type ChannelEndpointsListQueryData, @@ -31,6 +38,18 @@ export { queryKeyChannelEndpointsList, }; +export type ChannelEndpointsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List all channel endpoints * @@ -39,15 +58,11 @@ export { */ export function useChannelEndpointsList( request: operations.ChannelEndpointsControllerListChannelEndpointsRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildChannelEndpointsListQuery( - client, - request, - options, - ), + ...buildChannelEndpointsListQuery(client, request, options), ...options, }); } @@ -60,15 +75,11 @@ export function useChannelEndpointsList( */ export function useChannelEndpointsListSuspense( request: operations.ChannelEndpointsControllerListChannelEndpointsRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildChannelEndpointsListQuery( - client, - request, - options, - ), + ...buildChannelEndpointsListQuery(client, request, options), ...options, }); } @@ -80,9 +91,7 @@ export function setChannelEndpointsListData( after?: string | undefined; before?: string | undefined; limit?: number | undefined; - orderDirection?: - | operations.ChannelEndpointsControllerListChannelEndpointsQueryParamOrderDirection - | undefined; + orderDirection?: operations.ChannelEndpointsControllerListChannelEndpointsQueryParamOrderDirection | undefined; orderBy?: string | undefined; includeCursor?: boolean | undefined; subscriberId?: string | undefined; @@ -94,7 +103,7 @@ export function setChannelEndpointsListData( idempotencyKey?: string | undefined; }, ], - data: ChannelEndpointsListQueryData, + data: ChannelEndpointsListQueryData ): ChannelEndpointsListQueryData | undefined { const key = queryKeyChannelEndpointsList(...queryKeyBase); @@ -104,38 +113,38 @@ export function setChannelEndpointsListData( export function invalidateChannelEndpointsList( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - after?: string | undefined; - before?: string | undefined; - limit?: number | undefined; - orderDirection?: - | operations.ChannelEndpointsControllerListChannelEndpointsQueryParamOrderDirection - | undefined; - orderBy?: string | undefined; - includeCursor?: boolean | undefined; - subscriberId?: string | undefined; - contextKeys?: Array | undefined; - channel?: operations.QueryParamChannel | undefined; - providerId?: components.ProvidersIdEnum | undefined; - integrationIdentifier?: string | undefined; - connectionIdentifier?: string | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + after?: string | undefined; + before?: string | undefined; + limit?: number | undefined; + orderDirection?: operations.ChannelEndpointsControllerListChannelEndpointsQueryParamOrderDirection | undefined; + orderBy?: string | undefined; + includeCursor?: boolean | undefined; + subscriberId?: string | undefined; + contextKeys?: Array | undefined; + channel?: operations.QueryParamChannel | undefined; + providerId?: components.ProvidersIdEnum | undefined; + integrationIdentifier?: string | undefined; + connectionIdentifier?: string | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Endpoints", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Channel Endpoints', 'list', ...queryKeyBase], }); } export function invalidateAllChannelEndpointsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Endpoints", "list"], + queryKey: ['@novu/api', 'Channel Endpoints', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.ts b/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.ts index 5ee10808f6a..77c77721224 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsRetrieve.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildChannelEndpointsRetrieveQuery, ChannelEndpointsRetrieveQueryData, prefetchChannelEndpointsRetrieve, queryKeyChannelEndpointsRetrieve, -} from "./channelEndpointsRetrieve.core.js"; +} from './channelEndpointsRetrieve.core.js'; export { buildChannelEndpointsRetrieveQuery, type ChannelEndpointsRetrieveQueryData, @@ -29,6 +36,18 @@ export { queryKeyChannelEndpointsRetrieve, }; +export type ChannelEndpointsRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve a channel endpoint * @@ -38,16 +57,11 @@ export { export function useChannelEndpointsRetrieve( identifier: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildChannelEndpointsRetrieveQuery( - client, - identifier, - idempotencyKey, - options, - ), + ...buildChannelEndpointsRetrieveQuery(client, identifier, idempotencyKey, options), ...options, }); } @@ -61,27 +75,19 @@ export function useChannelEndpointsRetrieve( export function useChannelEndpointsRetrieveSuspense( identifier: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildChannelEndpointsRetrieveQuery( - client, - identifier, - idempotencyKey, - options, - ), + ...buildChannelEndpointsRetrieveQuery(client, identifier, idempotencyKey, options), ...options, }); } export function setChannelEndpointsRetrieveData( client: QueryClient, - queryKeyBase: [ - identifier: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: ChannelEndpointsRetrieveQueryData, + queryKeyBase: [identifier: string, parameters: { idempotencyKey?: string | undefined }], + data: ChannelEndpointsRetrieveQueryData ): ChannelEndpointsRetrieveQueryData | undefined { const key = queryKeyChannelEndpointsRetrieve(...queryKeyBase); @@ -90,23 +96,21 @@ export function setChannelEndpointsRetrieveData( export function invalidateChannelEndpointsRetrieve( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [identifier: string, parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[identifier: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Endpoints", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Channel Endpoints', 'retrieve', ...queryKeyBase], }); } export function invalidateAllChannelEndpointsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Channel Endpoints", "retrieve"], + queryKey: ['@novu/api', 'Channel Endpoints', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/channelEndpointsUpdate.ts b/libs/internal-sdk/src/react-query/channelEndpointsUpdate.ts index 66ecad338ab..69b61a66070 100644 --- a/libs/internal-sdk/src/react-query/channelEndpointsUpdate.ts +++ b/libs/internal-sdk/src/react-query/channelEndpointsUpdate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { channelEndpointsUpdate } from '../funcs/channelEndpointsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { channelEndpointsUpdate } from "../funcs/channelEndpointsUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ChannelEndpointsUpdateMutationVariables = { updateChannelEndpointRequestDto: components.UpdateChannelEndpointRequestDto; @@ -24,8 +31,19 @@ export type ChannelEndpointsUpdateMutationVariables = { options?: RequestOptions; }; -export type ChannelEndpointsUpdateMutationData = - operations.ChannelEndpointsControllerUpdateChannelEndpointResponse; +export type ChannelEndpointsUpdateMutationData = operations.ChannelEndpointsControllerUpdateChannelEndpointResponse; + +export type ChannelEndpointsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update a channel endpoint @@ -36,12 +54,12 @@ export type ChannelEndpointsUpdateMutationData = export function useChannelEndpointsUpdateMutation( options?: MutationHookOptions< ChannelEndpointsUpdateMutationData, - Error, + ChannelEndpointsUpdateMutationError, ChannelEndpointsUpdateMutationVariables - >, + > ): UseMutationResult< ChannelEndpointsUpdateMutationData, - Error, + ChannelEndpointsUpdateMutationError, ChannelEndpointsUpdateMutationVariables > { const client = useNovuContext(); @@ -52,17 +70,15 @@ export function useChannelEndpointsUpdateMutation( } export function mutationKeyChannelEndpointsUpdate(): MutationKey { - return ["@novu/api", "Channel Endpoints", "update"]; + return ['@novu/api', 'Channel Endpoints', 'update']; } export function buildChannelEndpointsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ChannelEndpointsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: ChannelEndpointsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyChannelEndpointsUpdate(), @@ -78,19 +94,12 @@ export function buildChannelEndpointsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(channelEndpointsUpdate( - client$, - updateChannelEndpointRequestDto, - identifier, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + channelEndpointsUpdate(client$, updateChannelEndpointRequestDto, identifier, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/contextsCreate.ts b/libs/internal-sdk/src/react-query/contextsCreate.ts index a2055f3ee40..def6c4f4645 100644 --- a/libs/internal-sdk/src/react-query/contextsCreate.ts +++ b/libs/internal-sdk/src/react-query/contextsCreate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { contextsCreate } from '../funcs/contextsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { contextsCreate } from "../funcs/contextsCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ContextsCreateMutationVariables = { createContextRequestDto: components.CreateContextRequestDto; @@ -23,8 +30,19 @@ export type ContextsCreateMutationVariables = { options?: RequestOptions; }; -export type ContextsCreateMutationData = - operations.ContextsControllerCreateContextResponse; +export type ContextsCreateMutationData = operations.ContextsControllerCreateContextResponse; + +export type ContextsCreateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create a context @@ -36,14 +54,10 @@ export type ContextsCreateMutationData = export function useContextsCreateMutation( options?: MutationHookOptions< ContextsCreateMutationData, - Error, + ContextsCreateMutationError, ContextsCreateMutationVariables - >, -): UseMutationResult< - ContextsCreateMutationData, - Error, - ContextsCreateMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildContextsCreateMutation(client, options), @@ -52,17 +66,15 @@ export function useContextsCreateMutation( } export function mutationKeyContextsCreate(): MutationKey { - return ["@novu/api", "Contexts", "create"]; + return ['@novu/api', 'Contexts', 'create']; } export function buildContextsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ContextsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: ContextsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyContextsCreate(), @@ -77,18 +89,10 @@ export function buildContextsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(contextsCreate( - client$, - createContextRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(contextsCreate(client$, createContextRequestDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/contextsDelete.ts b/libs/internal-sdk/src/react-query/contextsDelete.ts index fea2c10498a..d48bc8d267a 100644 --- a/libs/internal-sdk/src/react-query/contextsDelete.ts +++ b/libs/internal-sdk/src/react-query/contextsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { contextsDelete } from '../funcs/contextsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { contextsDelete } from "../funcs/contextsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ContextsDeleteMutationVariables = { type: string; @@ -23,9 +30,19 @@ export type ContextsDeleteMutationVariables = { options?: RequestOptions; }; -export type ContextsDeleteMutationData = - | operations.ContextsControllerDeleteContextResponse - | undefined; +export type ContextsDeleteMutationData = operations.ContextsControllerDeleteContextResponse | undefined; + +export type ContextsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete a context @@ -37,14 +54,10 @@ export type ContextsDeleteMutationData = export function useContextsDeleteMutation( options?: MutationHookOptions< ContextsDeleteMutationData, - Error, + ContextsDeleteMutationError, ContextsDeleteMutationVariables - >, -): UseMutationResult< - ContextsDeleteMutationData, - Error, - ContextsDeleteMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildContextsDeleteMutation(client, options), @@ -53,17 +66,15 @@ export function useContextsDeleteMutation( } export function mutationKeyContextsDelete(): MutationKey { - return ["@novu/api", "Contexts", "delete"]; + return ['@novu/api', 'Contexts', 'delete']; } export function buildContextsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ContextsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: ContextsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyContextsDelete(), @@ -79,19 +90,10 @@ export function buildContextsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(contextsDelete( - client$, - type, - id, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(contextsDelete(client$, type, id, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/contextsList.ts b/libs/internal-sdk/src/react-query/contextsList.ts index 0d75d60275c..65f7bdbdfa0 100644 --- a/libs/internal-sdk/src/react-query/contextsList.ts +++ b/libs/internal-sdk/src/react-query/contextsList.ts @@ -5,30 +5,44 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildContextsListQuery, ContextsListQueryData, prefetchContextsList, queryKeyContextsList, -} from "./contextsList.core.js"; -export { - buildContextsListQuery, - type ContextsListQueryData, - prefetchContextsList, - queryKeyContextsList, -}; +} from './contextsList.core.js'; +export { buildContextsListQuery, type ContextsListQueryData, prefetchContextsList, queryKeyContextsList }; + +export type ContextsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * List all contexts @@ -41,15 +55,11 @@ export { */ export function useContextsList( request: operations.ContextsControllerListContextsRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildContextsListQuery( - client, - request, - options, - ), + ...buildContextsListQuery(client, request, options), ...options, }); } @@ -65,15 +75,11 @@ export function useContextsList( */ export function useContextsListSuspense( request: operations.ContextsControllerListContextsRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildContextsListQuery( - client, - request, - options, - ), + ...buildContextsListQuery(client, request, options), ...options, }); } @@ -94,7 +100,7 @@ export function setContextsListData( idempotencyKey?: string | undefined; }, ], - data: ContextsListQueryData, + data: ContextsListQueryData ): ContextsListQueryData | undefined { const key = queryKeyContextsList(...queryKeyBase); @@ -104,33 +110,35 @@ export function setContextsListData( export function invalidateContextsList( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - after?: string | undefined; - before?: string | undefined; - limit?: number | undefined; - orderDirection?: operations.OrderDirection | undefined; - orderBy?: string | undefined; - includeCursor?: boolean | undefined; - type?: string | undefined; - id?: string | undefined; - search?: string | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + after?: string | undefined; + before?: string | undefined; + limit?: number | undefined; + orderDirection?: operations.OrderDirection | undefined; + orderBy?: string | undefined; + includeCursor?: boolean | undefined; + type?: string | undefined; + id?: string | undefined; + search?: string | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Contexts", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Contexts', 'list', ...queryKeyBase], }); } export function invalidateAllContextsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Contexts", "list"], + queryKey: ['@novu/api', 'Contexts', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/contextsRetrieve.ts b/libs/internal-sdk/src/react-query/contextsRetrieve.ts index b3a6ace3149..c4932e4e97a 100644 --- a/libs/internal-sdk/src/react-query/contextsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/contextsRetrieve.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildContextsRetrieveQuery, ContextsRetrieveQueryData, prefetchContextsRetrieve, queryKeyContextsRetrieve, -} from "./contextsRetrieve.core.js"; +} from './contextsRetrieve.core.js'; export { buildContextsRetrieveQuery, type ContextsRetrieveQueryData, @@ -29,6 +36,18 @@ export { queryKeyContextsRetrieve, }; +export type ContextsRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve a context * @@ -40,17 +59,11 @@ export function useContextsRetrieve( type: string, id: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildContextsRetrieveQuery( - client, - type, - id, - idempotencyKey, - options, - ), + ...buildContextsRetrieveQuery(client, type, id, idempotencyKey, options), ...options, }); } @@ -66,29 +79,19 @@ export function useContextsRetrieveSuspense( type: string, id: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildContextsRetrieveQuery( - client, - type, - id, - idempotencyKey, - options, - ), + ...buildContextsRetrieveQuery(client, type, id, idempotencyKey, options), ...options, }); } export function setContextsRetrieveData( client: QueryClient, - queryKeyBase: [ - type: string, - id: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: ContextsRetrieveQueryData, + queryKeyBase: [type: string, id: string, parameters: { idempotencyKey?: string | undefined }], + data: ContextsRetrieveQueryData ): ContextsRetrieveQueryData | undefined { const key = queryKeyContextsRetrieve(...queryKeyBase); @@ -97,27 +100,21 @@ export function setContextsRetrieveData( export function invalidateContextsRetrieve( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [ - type: string, - id: string, - parameters: { idempotencyKey?: string | undefined }, - ] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[type: string, id: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Contexts", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Contexts', 'retrieve', ...queryKeyBase], }); } export function invalidateAllContextsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Contexts", "retrieve"], + queryKey: ['@novu/api', 'Contexts', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/contextsUpdate.ts b/libs/internal-sdk/src/react-query/contextsUpdate.ts index 5afcfb70c15..4f191a6f804 100644 --- a/libs/internal-sdk/src/react-query/contextsUpdate.ts +++ b/libs/internal-sdk/src/react-query/contextsUpdate.ts @@ -2,27 +2,45 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { contextsUpdate } from '../funcs/contextsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { contextsUpdate } from "../funcs/contextsUpdate.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type ContextsUpdateMutationVariables = { request: operations.ContextsControllerUpdateContextRequest; options?: RequestOptions; }; -export type ContextsUpdateMutationData = - operations.ContextsControllerUpdateContextResponse; +export type ContextsUpdateMutationData = operations.ContextsControllerUpdateContextResponse; + +export type ContextsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update a context @@ -35,14 +53,10 @@ export type ContextsUpdateMutationData = export function useContextsUpdateMutation( options?: MutationHookOptions< ContextsUpdateMutationData, - Error, + ContextsUpdateMutationError, ContextsUpdateMutationVariables - >, -): UseMutationResult< - ContextsUpdateMutationData, - Error, - ContextsUpdateMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildContextsUpdateMutation(client, options), @@ -51,41 +65,29 @@ export function useContextsUpdateMutation( } export function mutationKeyContextsUpdate(): MutationKey { - return ["@novu/api", "Contexts", "update"]; + return ['@novu/api', 'Contexts', 'update']; } export function buildContextsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: ContextsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: ContextsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyContextsUpdate(), - mutationFn: function contextsUpdateMutationFn({ - request, - options, - }): Promise { + mutationFn: function contextsUpdateMutationFn({ request, options }): Promise { const mergedOptions = { ...hookOptions, ...options, fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(contextsUpdate( - client$, - request, - mergedOptions, - )); + return unwrapAsync(contextsUpdate(client$, request, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/environmentsCreate.ts b/libs/internal-sdk/src/react-query/environmentsCreate.ts index 1a1f1e2689d..348ac402b87 100644 --- a/libs/internal-sdk/src/react-query/environmentsCreate.ts +++ b/libs/internal-sdk/src/react-query/environmentsCreate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { environmentsCreate } from '../funcs/environmentsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { environmentsCreate } from "../funcs/environmentsCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type EnvironmentsCreateMutationVariables = { createEnvironmentRequestDto: components.CreateEnvironmentRequestDto; @@ -23,8 +30,19 @@ export type EnvironmentsCreateMutationVariables = { options?: RequestOptions; }; -export type EnvironmentsCreateMutationData = - operations.EnvironmentsControllerV1CreateEnvironmentResponse; +export type EnvironmentsCreateMutationData = operations.EnvironmentsControllerV1CreateEnvironmentResponse; + +export type EnvironmentsCreateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create an environment @@ -37,12 +55,12 @@ export type EnvironmentsCreateMutationData = export function useEnvironmentsCreateMutation( options?: MutationHookOptions< EnvironmentsCreateMutationData, - Error, + EnvironmentsCreateMutationError, EnvironmentsCreateMutationVariables - >, + > ): UseMutationResult< EnvironmentsCreateMutationData, - Error, + EnvironmentsCreateMutationError, EnvironmentsCreateMutationVariables > { const client = useNovuContext(); @@ -53,17 +71,15 @@ export function useEnvironmentsCreateMutation( } export function mutationKeyEnvironmentsCreate(): MutationKey { - return ["@novu/api", "Environments", "create"]; + return ['@novu/api', 'Environments', 'create']; } export function buildEnvironmentsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: EnvironmentsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: EnvironmentsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyEnvironmentsCreate(), @@ -78,18 +94,10 @@ export function buildEnvironmentsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(environmentsCreate( - client$, - createEnvironmentRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(environmentsCreate(client$, createEnvironmentRequestDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/environmentsDelete.ts b/libs/internal-sdk/src/react-query/environmentsDelete.ts index 18acd199a39..cf667686177 100644 --- a/libs/internal-sdk/src/react-query/environmentsDelete.ts +++ b/libs/internal-sdk/src/react-query/environmentsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { environmentsDelete } from '../funcs/environmentsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { environmentsDelete } from "../funcs/environmentsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type EnvironmentsDeleteMutationVariables = { environmentId: string; @@ -22,9 +29,19 @@ export type EnvironmentsDeleteMutationVariables = { options?: RequestOptions; }; -export type EnvironmentsDeleteMutationData = - | operations.EnvironmentsControllerV1DeleteEnvironmentResponse - | undefined; +export type EnvironmentsDeleteMutationData = operations.EnvironmentsControllerV1DeleteEnvironmentResponse | undefined; + +export type EnvironmentsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete an environment @@ -36,12 +53,12 @@ export type EnvironmentsDeleteMutationData = export function useEnvironmentsDeleteMutation( options?: MutationHookOptions< EnvironmentsDeleteMutationData, - Error, + EnvironmentsDeleteMutationError, EnvironmentsDeleteMutationVariables - >, + > ): UseMutationResult< EnvironmentsDeleteMutationData, - Error, + EnvironmentsDeleteMutationError, EnvironmentsDeleteMutationVariables > { const client = useNovuContext(); @@ -52,17 +69,15 @@ export function useEnvironmentsDeleteMutation( } export function mutationKeyEnvironmentsDelete(): MutationKey { - return ["@novu/api", "Environments", "delete"]; + return ['@novu/api', 'Environments', 'delete']; } export function buildEnvironmentsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: EnvironmentsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: EnvironmentsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyEnvironmentsDelete(), @@ -77,18 +92,10 @@ export function buildEnvironmentsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(environmentsDelete( - client$, - environmentId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(environmentsDelete(client$, environmentId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/environmentsGetTags.ts b/libs/internal-sdk/src/react-query/environmentsGetTags.ts index 6514cab8799..4d0aaca6522 100644 --- a/libs/internal-sdk/src/react-query/environmentsGetTags.ts +++ b/libs/internal-sdk/src/react-query/environmentsGetTags.ts @@ -10,6 +10,17 @@ import { useQuery, useSuspenseQuery, } from '@tanstack/react-query'; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; import { useNovuContext } from './_context.js'; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { @@ -25,6 +36,18 @@ export { queryKeyEnvironmentsGetTags, }; +export type EnvironmentsGetTagsQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List environment tags * @@ -34,8 +57,8 @@ export { export function useEnvironmentsGetTags( environmentId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ ...buildEnvironmentsGetTagsQuery(client, environmentId, idempotencyKey, options), @@ -52,8 +75,8 @@ export function useEnvironmentsGetTags( export function useEnvironmentsGetTagsSuspense( environmentId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ ...buildEnvironmentsGetTagsQuery(client, environmentId, idempotencyKey, options), diff --git a/libs/internal-sdk/src/react-query/environmentsList.ts b/libs/internal-sdk/src/react-query/environmentsList.ts index 3e98a0677a9..435a697089a 100644 --- a/libs/internal-sdk/src/react-query/environmentsList.ts +++ b/libs/internal-sdk/src/react-query/environmentsList.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildEnvironmentsListQuery, EnvironmentsListQueryData, prefetchEnvironmentsList, queryKeyEnvironmentsList, -} from "./environmentsList.core.js"; +} from './environmentsList.core.js'; export { buildEnvironmentsListQuery, type EnvironmentsListQueryData, @@ -29,6 +36,18 @@ export { queryKeyEnvironmentsList, }; +export type EnvironmentsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List all environments * @@ -38,15 +57,11 @@ export { */ export function useEnvironmentsList( idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildEnvironmentsListQuery( - client, - idempotencyKey, - options, - ), + ...buildEnvironmentsListQuery(client, idempotencyKey, options), ...options, }); } @@ -60,15 +75,11 @@ export function useEnvironmentsList( */ export function useEnvironmentsListSuspense( idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildEnvironmentsListQuery( - client, - idempotencyKey, - options, - ), + ...buildEnvironmentsListQuery(client, idempotencyKey, options), ...options, }); } @@ -76,7 +87,7 @@ export function useEnvironmentsListSuspense( export function setEnvironmentsListData( client: QueryClient, queryKeyBase: [parameters: { idempotencyKey?: string | undefined }], - data: EnvironmentsListQueryData, + data: EnvironmentsListQueryData ): EnvironmentsListQueryData | undefined { const key = queryKeyEnvironmentsList(...queryKeyBase); @@ -85,23 +96,21 @@ export function setEnvironmentsListData( export function invalidateEnvironmentsList( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Environments", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Environments', 'list', ...queryKeyBase], }); } export function invalidateAllEnvironmentsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Environments", "list"], + queryKey: ['@novu/api', 'Environments', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/environmentsUpdate.ts b/libs/internal-sdk/src/react-query/environmentsUpdate.ts index 0e46193aa9c..7b6c85534bf 100644 --- a/libs/internal-sdk/src/react-query/environmentsUpdate.ts +++ b/libs/internal-sdk/src/react-query/environmentsUpdate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { environmentsUpdate } from '../funcs/environmentsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { environmentsUpdate } from "../funcs/environmentsUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type EnvironmentsUpdateMutationVariables = { updateEnvironmentRequestDto: components.UpdateEnvironmentRequestDto; @@ -24,8 +31,19 @@ export type EnvironmentsUpdateMutationVariables = { options?: RequestOptions; }; -export type EnvironmentsUpdateMutationData = - operations.EnvironmentsControllerV1UpdateMyEnvironmentResponse; +export type EnvironmentsUpdateMutationData = operations.EnvironmentsControllerV1UpdateMyEnvironmentResponse; + +export type EnvironmentsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update an environment @@ -37,12 +55,12 @@ export type EnvironmentsUpdateMutationData = export function useEnvironmentsUpdateMutation( options?: MutationHookOptions< EnvironmentsUpdateMutationData, - Error, + EnvironmentsUpdateMutationError, EnvironmentsUpdateMutationVariables - >, + > ): UseMutationResult< EnvironmentsUpdateMutationData, - Error, + EnvironmentsUpdateMutationError, EnvironmentsUpdateMutationVariables > { const client = useNovuContext(); @@ -53,17 +71,15 @@ export function useEnvironmentsUpdateMutation( } export function mutationKeyEnvironmentsUpdate(): MutationKey { - return ["@novu/api", "Environments", "update"]; + return ['@novu/api', 'Environments', 'update']; } export function buildEnvironmentsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: EnvironmentsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: EnvironmentsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyEnvironmentsUpdate(), @@ -79,19 +95,12 @@ export function buildEnvironmentsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(environmentsUpdate( - client$, - updateEnvironmentRequestDto, - environmentId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + environmentsUpdate(client$, updateEnvironmentRequestDto, environmentId, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/integrationsCreate.ts b/libs/internal-sdk/src/react-query/integrationsCreate.ts index 8ef74754b1a..a42080d1ceb 100644 --- a/libs/internal-sdk/src/react-query/integrationsCreate.ts +++ b/libs/internal-sdk/src/react-query/integrationsCreate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { integrationsCreate } from '../funcs/integrationsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { integrationsCreate } from "../funcs/integrationsCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type IntegrationsCreateMutationVariables = { createIntegrationRequestDto: components.CreateIntegrationRequestDto; @@ -23,8 +30,19 @@ export type IntegrationsCreateMutationVariables = { options?: RequestOptions; }; -export type IntegrationsCreateMutationData = - operations.IntegrationsControllerCreateIntegrationResponse; +export type IntegrationsCreateMutationData = operations.IntegrationsControllerCreateIntegrationResponse; + +export type IntegrationsCreateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create an integration @@ -36,12 +54,12 @@ export type IntegrationsCreateMutationData = export function useIntegrationsCreateMutation( options?: MutationHookOptions< IntegrationsCreateMutationData, - Error, + IntegrationsCreateMutationError, IntegrationsCreateMutationVariables - >, + > ): UseMutationResult< IntegrationsCreateMutationData, - Error, + IntegrationsCreateMutationError, IntegrationsCreateMutationVariables > { const client = useNovuContext(); @@ -52,17 +70,15 @@ export function useIntegrationsCreateMutation( } export function mutationKeyIntegrationsCreate(): MutationKey { - return ["@novu/api", "Integrations", "create"]; + return ['@novu/api', 'Integrations', 'create']; } export function buildIntegrationsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: IntegrationsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: IntegrationsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyIntegrationsCreate(), @@ -77,18 +93,10 @@ export function buildIntegrationsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(integrationsCreate( - client$, - createIntegrationRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(integrationsCreate(client$, createIntegrationRequestDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/integrationsDelete.ts b/libs/internal-sdk/src/react-query/integrationsDelete.ts index 2d8cc67066f..11dfcd29707 100644 --- a/libs/internal-sdk/src/react-query/integrationsDelete.ts +++ b/libs/internal-sdk/src/react-query/integrationsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { integrationsDelete } from '../funcs/integrationsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { integrationsDelete } from "../funcs/integrationsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type IntegrationsDeleteMutationVariables = { integrationId: string; @@ -22,8 +29,19 @@ export type IntegrationsDeleteMutationVariables = { options?: RequestOptions; }; -export type IntegrationsDeleteMutationData = - operations.IntegrationsControllerRemoveIntegrationResponse; +export type IntegrationsDeleteMutationData = operations.IntegrationsControllerRemoveIntegrationResponse; + +export type IntegrationsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete an integration @@ -35,12 +53,12 @@ export type IntegrationsDeleteMutationData = export function useIntegrationsDeleteMutation( options?: MutationHookOptions< IntegrationsDeleteMutationData, - Error, + IntegrationsDeleteMutationError, IntegrationsDeleteMutationVariables - >, + > ): UseMutationResult< IntegrationsDeleteMutationData, - Error, + IntegrationsDeleteMutationError, IntegrationsDeleteMutationVariables > { const client = useNovuContext(); @@ -51,17 +69,15 @@ export function useIntegrationsDeleteMutation( } export function mutationKeyIntegrationsDelete(): MutationKey { - return ["@novu/api", "Integrations", "delete"]; + return ['@novu/api', 'Integrations', 'delete']; } export function buildIntegrationsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: IntegrationsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: IntegrationsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyIntegrationsDelete(), @@ -76,18 +92,10 @@ export function buildIntegrationsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(integrationsDelete( - client$, - integrationId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(integrationsDelete(client$, integrationId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/integrationsGenerateChatOAuthUrl.ts b/libs/internal-sdk/src/react-query/integrationsGenerateChatOAuthUrl.ts index 8d532fdbc24..a30e2331cc7 100644 --- a/libs/internal-sdk/src/react-query/integrationsGenerateChatOAuthUrl.ts +++ b/libs/internal-sdk/src/react-query/integrationsGenerateChatOAuthUrl.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { integrationsGenerateChatOAuthUrl } from '../funcs/integrationsGenerateChatOAuthUrl.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { integrationsGenerateChatOAuthUrl } from "../funcs/integrationsGenerateChatOAuthUrl.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type IntegrationsGenerateChatOAuthUrlMutationVariables = { generateChatOauthUrlRequestDto: components.GenerateChatOauthUrlRequestDto; @@ -23,8 +30,19 @@ export type IntegrationsGenerateChatOAuthUrlMutationVariables = { options?: RequestOptions; }; -export type IntegrationsGenerateChatOAuthUrlMutationData = - operations.IntegrationsControllerGetChatOAuthUrlResponse; +export type IntegrationsGenerateChatOAuthUrlMutationData = operations.IntegrationsControllerGetChatOAuthUrlResponse; + +export type IntegrationsGenerateChatOAuthUrlMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Generate chat OAuth URL @@ -37,12 +55,12 @@ export type IntegrationsGenerateChatOAuthUrlMutationData = export function useIntegrationsGenerateChatOAuthUrlMutation( options?: MutationHookOptions< IntegrationsGenerateChatOAuthUrlMutationData, - Error, + IntegrationsGenerateChatOAuthUrlMutationError, IntegrationsGenerateChatOAuthUrlMutationVariables - >, + > ): UseMutationResult< IntegrationsGenerateChatOAuthUrlMutationData, - Error, + IntegrationsGenerateChatOAuthUrlMutationError, IntegrationsGenerateChatOAuthUrlMutationVariables > { const client = useNovuContext(); @@ -53,16 +71,16 @@ export function useIntegrationsGenerateChatOAuthUrlMutation( } export function mutationKeyIntegrationsGenerateChatOAuthUrl(): MutationKey { - return ["@novu/api", "Integrations", "generateChatOAuthUrl"]; + return ['@novu/api', 'Integrations', 'generateChatOAuthUrl']; } export function buildIntegrationsGenerateChatOAuthUrlMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: IntegrationsGenerateChatOAuthUrlMutationVariables, + variables: IntegrationsGenerateChatOAuthUrlMutationVariables ) => Promise; } { return { @@ -78,18 +96,12 @@ export function buildIntegrationsGenerateChatOAuthUrlMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(integrationsGenerateChatOAuthUrl( - client$, - generateChatOauthUrlRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + integrationsGenerateChatOAuthUrl(client$, generateChatOauthUrlRequestDto, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/integrationsIntegrationsControllerAutoConfigureIntegration.ts b/libs/internal-sdk/src/react-query/integrationsIntegrationsControllerAutoConfigureIntegration.ts index d12b5996b7e..39338f87e2a 100644 --- a/libs/internal-sdk/src/react-query/integrationsIntegrationsControllerAutoConfigureIntegration.ts +++ b/libs/internal-sdk/src/react-query/integrationsIntegrationsControllerAutoConfigureIntegration.ts @@ -2,30 +2,48 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { integrationsIntegrationsControllerAutoConfigureIntegration } from '../funcs/integrationsIntegrationsControllerAutoConfigureIntegration.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { integrationsIntegrationsControllerAutoConfigureIntegration } from "../funcs/integrationsIntegrationsControllerAutoConfigureIntegration.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; -export type IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationVariables = - { - integrationId: string; - idempotencyKey?: string | undefined; - options?: RequestOptions; - }; +export type IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationVariables = { + integrationId: string; + idempotencyKey?: string | undefined; + options?: RequestOptions; +}; export type IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationData = operations.IntegrationsControllerAutoConfigureIntegrationResponse; +export type IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Auto-configure an integration for inbound webhooks * @@ -36,77 +54,58 @@ export type IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationDa export function useIntegrationsIntegrationsControllerAutoConfigureIntegrationMutation( options?: MutationHookOptions< IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationData, - Error, + IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationError, IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationVariables - >, + > ): UseMutationResult< IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationData, - Error, + IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationError, IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationVariables > { const client = useNovuContext(); return useMutation({ - ...buildIntegrationsIntegrationsControllerAutoConfigureIntegrationMutation( - client, - options, - ), + ...buildIntegrationsIntegrationsControllerAutoConfigureIntegrationMutation(client, options), ...options, }); } export function mutationKeyIntegrationsIntegrationsControllerAutoConfigureIntegration(): MutationKey { - return [ - "@novu/api", - "Integrations", - "integrationsControllerAutoConfigureIntegration", - ]; + return ['@novu/api', 'Integrations', 'integrationsControllerAutoConfigureIntegration']; } export function buildIntegrationsIntegrationsControllerAutoConfigureIntegrationMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: - IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationVariables, - ) => Promise< - IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationData - >; + variables: IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationVariables + ) => Promise; } { return { - mutationKey: - mutationKeyIntegrationsIntegrationsControllerAutoConfigureIntegration(), - mutationFn: - function integrationsIntegrationsControllerAutoConfigureIntegrationMutationFn( - { + mutationKey: mutationKeyIntegrationsIntegrationsControllerAutoConfigureIntegration(), + mutationFn: function integrationsIntegrationsControllerAutoConfigureIntegrationMutationFn({ + integrationId, + idempotencyKey, + options, + }): Promise { + const mergedOptions = { + ...hookOptions, + ...options, + fetchOptions: { + ...hookOptions?.fetchOptions, + ...options?.fetchOptions, + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), + }, + }; + return unwrapAsync( + integrationsIntegrationsControllerAutoConfigureIntegration( + client$, integrationId, idempotencyKey, - options, - }, - ): Promise< - IntegrationsIntegrationsControllerAutoConfigureIntegrationMutationData - > { - const mergedOptions = { - ...hookOptions, - ...options, - fetchOptions: { - ...hookOptions?.fetchOptions, - ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), - }, - }; - return unwrapAsync( - integrationsIntegrationsControllerAutoConfigureIntegration( - client$, - integrationId, - idempotencyKey, - mergedOptions, - ), - ); - }, + mergedOptions + ) + ); + }, }; } diff --git a/libs/internal-sdk/src/react-query/integrationsList.ts b/libs/internal-sdk/src/react-query/integrationsList.ts index 16c8a107da6..e82170bde3d 100644 --- a/libs/internal-sdk/src/react-query/integrationsList.ts +++ b/libs/internal-sdk/src/react-query/integrationsList.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildIntegrationsListQuery, IntegrationsListQueryData, prefetchIntegrationsList, queryKeyIntegrationsList, -} from "./integrationsList.core.js"; +} from './integrationsList.core.js'; export { buildIntegrationsListQuery, type IntegrationsListQueryData, @@ -29,6 +36,18 @@ export { queryKeyIntegrationsList, }; +export type IntegrationsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List all integrations * @@ -37,15 +56,11 @@ export { */ export function useIntegrationsList( idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildIntegrationsListQuery( - client, - idempotencyKey, - options, - ), + ...buildIntegrationsListQuery(client, idempotencyKey, options), ...options, }); } @@ -58,15 +73,11 @@ export function useIntegrationsList( */ export function useIntegrationsListSuspense( idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildIntegrationsListQuery( - client, - idempotencyKey, - options, - ), + ...buildIntegrationsListQuery(client, idempotencyKey, options), ...options, }); } @@ -74,7 +85,7 @@ export function useIntegrationsListSuspense( export function setIntegrationsListData( client: QueryClient, queryKeyBase: [parameters: { idempotencyKey?: string | undefined }], - data: IntegrationsListQueryData, + data: IntegrationsListQueryData ): IntegrationsListQueryData | undefined { const key = queryKeyIntegrationsList(...queryKeyBase); @@ -83,23 +94,21 @@ export function setIntegrationsListData( export function invalidateIntegrationsList( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Integrations", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Integrations', 'list', ...queryKeyBase], }); } export function invalidateAllIntegrationsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Integrations", "list"], + queryKey: ['@novu/api', 'Integrations', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/integrationsListActive.ts b/libs/internal-sdk/src/react-query/integrationsListActive.ts index 6421b48792f..8e1e295f336 100644 --- a/libs/internal-sdk/src/react-query/integrationsListActive.ts +++ b/libs/internal-sdk/src/react-query/integrationsListActive.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildIntegrationsListActiveQuery, IntegrationsListActiveQueryData, prefetchIntegrationsListActive, queryKeyIntegrationsListActive, -} from "./integrationsListActive.core.js"; +} from './integrationsListActive.core.js'; export { buildIntegrationsListActiveQuery, type IntegrationsListActiveQueryData, @@ -29,6 +36,18 @@ export { queryKeyIntegrationsListActive, }; +export type IntegrationsListActiveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List active integrations * @@ -37,15 +56,11 @@ export { */ export function useIntegrationsListActive( idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildIntegrationsListActiveQuery( - client, - idempotencyKey, - options, - ), + ...buildIntegrationsListActiveQuery(client, idempotencyKey, options), ...options, }); } @@ -58,15 +73,11 @@ export function useIntegrationsListActive( */ export function useIntegrationsListActiveSuspense( idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildIntegrationsListActiveQuery( - client, - idempotencyKey, - options, - ), + ...buildIntegrationsListActiveQuery(client, idempotencyKey, options), ...options, }); } @@ -74,7 +85,7 @@ export function useIntegrationsListActiveSuspense( export function setIntegrationsListActiveData( client: QueryClient, queryKeyBase: [parameters: { idempotencyKey?: string | undefined }], - data: IntegrationsListActiveQueryData, + data: IntegrationsListActiveQueryData ): IntegrationsListActiveQueryData | undefined { const key = queryKeyIntegrationsListActive(...queryKeyBase); @@ -83,23 +94,21 @@ export function setIntegrationsListActiveData( export function invalidateIntegrationsListActive( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Integrations", "listActive", ...queryKeyBase], + queryKey: ['@novu/api', 'Integrations', 'listActive', ...queryKeyBase], }); } export function invalidateAllIntegrationsListActive( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Integrations", "listActive"], + queryKey: ['@novu/api', 'Integrations', 'listActive'], }); } diff --git a/libs/internal-sdk/src/react-query/integrationsSetAsPrimary.ts b/libs/internal-sdk/src/react-query/integrationsSetAsPrimary.ts index 9bc1480e18a..6955017f008 100644 --- a/libs/internal-sdk/src/react-query/integrationsSetAsPrimary.ts +++ b/libs/internal-sdk/src/react-query/integrationsSetAsPrimary.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { integrationsSetAsPrimary } from '../funcs/integrationsSetAsPrimary.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { integrationsSetAsPrimary } from "../funcs/integrationsSetAsPrimary.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type IntegrationsSetAsPrimaryMutationVariables = { integrationId: string; @@ -22,8 +29,19 @@ export type IntegrationsSetAsPrimaryMutationVariables = { options?: RequestOptions; }; -export type IntegrationsSetAsPrimaryMutationData = - operations.IntegrationsControllerSetIntegrationAsPrimaryResponse; +export type IntegrationsSetAsPrimaryMutationData = operations.IntegrationsControllerSetIntegrationAsPrimaryResponse; + +export type IntegrationsSetAsPrimaryMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update integration as primary @@ -36,12 +54,12 @@ export type IntegrationsSetAsPrimaryMutationData = export function useIntegrationsSetAsPrimaryMutation( options?: MutationHookOptions< IntegrationsSetAsPrimaryMutationData, - Error, + IntegrationsSetAsPrimaryMutationError, IntegrationsSetAsPrimaryMutationVariables - >, + > ): UseMutationResult< IntegrationsSetAsPrimaryMutationData, - Error, + IntegrationsSetAsPrimaryMutationError, IntegrationsSetAsPrimaryMutationVariables > { const client = useNovuContext(); @@ -52,17 +70,15 @@ export function useIntegrationsSetAsPrimaryMutation( } export function mutationKeyIntegrationsSetAsPrimary(): MutationKey { - return ["@novu/api", "Integrations", "setAsPrimary"]; + return ['@novu/api', 'Integrations', 'setAsPrimary']; } export function buildIntegrationsSetAsPrimaryMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: IntegrationsSetAsPrimaryMutationVariables, - ) => Promise; + mutationFn: (variables: IntegrationsSetAsPrimaryMutationVariables) => Promise; } { return { mutationKey: mutationKeyIntegrationsSetAsPrimary(), @@ -77,18 +93,10 @@ export function buildIntegrationsSetAsPrimaryMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(integrationsSetAsPrimary( - client$, - integrationId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(integrationsSetAsPrimary(client$, integrationId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/integrationsUpdate.ts b/libs/internal-sdk/src/react-query/integrationsUpdate.ts index d9692b829c7..38e5213b38a 100644 --- a/libs/internal-sdk/src/react-query/integrationsUpdate.ts +++ b/libs/internal-sdk/src/react-query/integrationsUpdate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { integrationsUpdate } from '../funcs/integrationsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { integrationsUpdate } from "../funcs/integrationsUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type IntegrationsUpdateMutationVariables = { updateIntegrationRequestDto: components.UpdateIntegrationRequestDto; @@ -24,8 +31,19 @@ export type IntegrationsUpdateMutationVariables = { options?: RequestOptions; }; -export type IntegrationsUpdateMutationData = - operations.IntegrationsControllerUpdateIntegrationByIdResponse; +export type IntegrationsUpdateMutationData = operations.IntegrationsControllerUpdateIntegrationByIdResponse; + +export type IntegrationsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update an integration @@ -37,12 +55,12 @@ export type IntegrationsUpdateMutationData = export function useIntegrationsUpdateMutation( options?: MutationHookOptions< IntegrationsUpdateMutationData, - Error, + IntegrationsUpdateMutationError, IntegrationsUpdateMutationVariables - >, + > ): UseMutationResult< IntegrationsUpdateMutationData, - Error, + IntegrationsUpdateMutationError, IntegrationsUpdateMutationVariables > { const client = useNovuContext(); @@ -53,17 +71,15 @@ export function useIntegrationsUpdateMutation( } export function mutationKeyIntegrationsUpdate(): MutationKey { - return ["@novu/api", "Integrations", "update"]; + return ['@novu/api', 'Integrations', 'update']; } export function buildIntegrationsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: IntegrationsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: IntegrationsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyIntegrationsUpdate(), @@ -79,19 +95,12 @@ export function buildIntegrationsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(integrationsUpdate( - client$, - updateIntegrationRequestDto, - integrationId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + integrationsUpdate(client$, updateIntegrationRequestDto, integrationId, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/layoutsCreate.ts b/libs/internal-sdk/src/react-query/layoutsCreate.ts index 633162e4142..d8355194c5b 100644 --- a/libs/internal-sdk/src/react-query/layoutsCreate.ts +++ b/libs/internal-sdk/src/react-query/layoutsCreate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { layoutsCreate } from '../funcs/layoutsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { layoutsCreate } from "../funcs/layoutsCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type LayoutsCreateMutationVariables = { createLayoutDto: components.CreateLayoutDto; @@ -23,8 +30,19 @@ export type LayoutsCreateMutationVariables = { options?: RequestOptions; }; -export type LayoutsCreateMutationData = - operations.LayoutsControllerCreateResponse; +export type LayoutsCreateMutationData = operations.LayoutsControllerCreateResponse; + +export type LayoutsCreateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create a layout @@ -33,16 +51,8 @@ export type LayoutsCreateMutationData = * Creates a new layout in the Novu Cloud environment */ export function useLayoutsCreateMutation( - options?: MutationHookOptions< - LayoutsCreateMutationData, - Error, - LayoutsCreateMutationVariables - >, -): UseMutationResult< - LayoutsCreateMutationData, - Error, - LayoutsCreateMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildLayoutsCreateMutation(client, options), @@ -51,17 +61,15 @@ export function useLayoutsCreateMutation( } export function mutationKeyLayoutsCreate(): MutationKey { - return ["@novu/api", "Layouts", "create"]; + return ['@novu/api', 'Layouts', 'create']; } export function buildLayoutsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: LayoutsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: LayoutsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyLayoutsCreate(), @@ -76,18 +84,10 @@ export function buildLayoutsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(layoutsCreate( - client$, - createLayoutDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(layoutsCreate(client$, createLayoutDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/layoutsDelete.ts b/libs/internal-sdk/src/react-query/layoutsDelete.ts index be3938d408f..e034d889edc 100644 --- a/libs/internal-sdk/src/react-query/layoutsDelete.ts +++ b/libs/internal-sdk/src/react-query/layoutsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { layoutsDelete } from '../funcs/layoutsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { layoutsDelete } from "../funcs/layoutsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type LayoutsDeleteMutationVariables = { layoutId: string; @@ -22,9 +29,19 @@ export type LayoutsDeleteMutationVariables = { options?: RequestOptions; }; -export type LayoutsDeleteMutationData = - | operations.LayoutsControllerDeleteResponse - | undefined; +export type LayoutsDeleteMutationData = operations.LayoutsControllerDeleteResponse | undefined; + +export type LayoutsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete a layout @@ -33,16 +50,8 @@ export type LayoutsDeleteMutationData = * Removes a specific layout by its unique identifier **layoutId** */ export function useLayoutsDeleteMutation( - options?: MutationHookOptions< - LayoutsDeleteMutationData, - Error, - LayoutsDeleteMutationVariables - >, -): UseMutationResult< - LayoutsDeleteMutationData, - Error, - LayoutsDeleteMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildLayoutsDeleteMutation(client, options), @@ -51,17 +60,15 @@ export function useLayoutsDeleteMutation( } export function mutationKeyLayoutsDelete(): MutationKey { - return ["@novu/api", "Layouts", "delete"]; + return ['@novu/api', 'Layouts', 'delete']; } export function buildLayoutsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: LayoutsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: LayoutsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyLayoutsDelete(), @@ -76,18 +83,10 @@ export function buildLayoutsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(layoutsDelete( - client$, - layoutId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(layoutsDelete(client$, layoutId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/layoutsDuplicate.ts b/libs/internal-sdk/src/react-query/layoutsDuplicate.ts index 9c25681a040..8e539c81e4f 100644 --- a/libs/internal-sdk/src/react-query/layoutsDuplicate.ts +++ b/libs/internal-sdk/src/react-query/layoutsDuplicate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { layoutsDuplicate } from '../funcs/layoutsDuplicate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { layoutsDuplicate } from "../funcs/layoutsDuplicate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type LayoutsDuplicateMutationVariables = { duplicateLayoutDto: components.DuplicateLayoutDto; @@ -24,8 +31,19 @@ export type LayoutsDuplicateMutationVariables = { options?: RequestOptions; }; -export type LayoutsDuplicateMutationData = - operations.LayoutsControllerDuplicateResponse; +export type LayoutsDuplicateMutationData = operations.LayoutsControllerDuplicateResponse; + +export type LayoutsDuplicateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Duplicate a layout @@ -36,14 +54,10 @@ export type LayoutsDuplicateMutationData = export function useLayoutsDuplicateMutation( options?: MutationHookOptions< LayoutsDuplicateMutationData, - Error, + LayoutsDuplicateMutationError, LayoutsDuplicateMutationVariables - >, -): UseMutationResult< - LayoutsDuplicateMutationData, - Error, - LayoutsDuplicateMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildLayoutsDuplicateMutation(client, options), @@ -52,17 +66,15 @@ export function useLayoutsDuplicateMutation( } export function mutationKeyLayoutsDuplicate(): MutationKey { - return ["@novu/api", "Layouts", "duplicate"]; + return ['@novu/api', 'Layouts', 'duplicate']; } export function buildLayoutsDuplicateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: LayoutsDuplicateMutationVariables, - ) => Promise; + mutationFn: (variables: LayoutsDuplicateMutationVariables) => Promise; } { return { mutationKey: mutationKeyLayoutsDuplicate(), @@ -78,19 +90,10 @@ export function buildLayoutsDuplicateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(layoutsDuplicate( - client$, - duplicateLayoutDto, - layoutId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(layoutsDuplicate(client$, duplicateLayoutDto, layoutId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/layoutsGeneratePreview.ts b/libs/internal-sdk/src/react-query/layoutsGeneratePreview.ts index 324c081aae4..e26cfd4fe64 100644 --- a/libs/internal-sdk/src/react-query/layoutsGeneratePreview.ts +++ b/libs/internal-sdk/src/react-query/layoutsGeneratePreview.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { layoutsGeneratePreview } from '../funcs/layoutsGeneratePreview.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { layoutsGeneratePreview } from "../funcs/layoutsGeneratePreview.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type LayoutsGeneratePreviewMutationVariables = { layoutPreviewRequestDto: components.LayoutPreviewRequestDto; @@ -24,8 +31,19 @@ export type LayoutsGeneratePreviewMutationVariables = { options?: RequestOptions; }; -export type LayoutsGeneratePreviewMutationData = - operations.LayoutsControllerGeneratePreviewResponse; +export type LayoutsGeneratePreviewMutationData = operations.LayoutsControllerGeneratePreviewResponse; + +export type LayoutsGeneratePreviewMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Generate layout preview @@ -36,12 +54,12 @@ export type LayoutsGeneratePreviewMutationData = export function useLayoutsGeneratePreviewMutation( options?: MutationHookOptions< LayoutsGeneratePreviewMutationData, - Error, + LayoutsGeneratePreviewMutationError, LayoutsGeneratePreviewMutationVariables - >, + > ): UseMutationResult< LayoutsGeneratePreviewMutationData, - Error, + LayoutsGeneratePreviewMutationError, LayoutsGeneratePreviewMutationVariables > { const client = useNovuContext(); @@ -52,17 +70,15 @@ export function useLayoutsGeneratePreviewMutation( } export function mutationKeyLayoutsGeneratePreview(): MutationKey { - return ["@novu/api", "Layouts", "generatePreview"]; + return ['@novu/api', 'Layouts', 'generatePreview']; } export function buildLayoutsGeneratePreviewMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: LayoutsGeneratePreviewMutationVariables, - ) => Promise; + mutationFn: (variables: LayoutsGeneratePreviewMutationVariables) => Promise; } { return { mutationKey: mutationKeyLayoutsGeneratePreview(), @@ -78,19 +94,12 @@ export function buildLayoutsGeneratePreviewMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(layoutsGeneratePreview( - client$, - layoutPreviewRequestDto, - layoutId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + layoutsGeneratePreview(client$, layoutPreviewRequestDto, layoutId, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/layoutsList.ts b/libs/internal-sdk/src/react-query/layoutsList.ts index 0124af1f4b1..b80f8d94e8d 100644 --- a/libs/internal-sdk/src/react-query/layoutsList.ts +++ b/libs/internal-sdk/src/react-query/layoutsList.ts @@ -5,31 +5,45 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; +import * as components from '../models/components/index.js'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildLayoutsListQuery, LayoutsListQueryData, prefetchLayoutsList, queryKeyLayoutsList, -} from "./layoutsList.core.js"; -export { - buildLayoutsListQuery, - type LayoutsListQueryData, - prefetchLayoutsList, - queryKeyLayoutsList, -}; +} from './layoutsList.core.js'; +export { buildLayoutsListQuery, type LayoutsListQueryData, prefetchLayoutsList, queryKeyLayoutsList }; + +export type LayoutsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * List all layouts @@ -39,15 +53,11 @@ export { */ export function useLayoutsList( request: operations.LayoutsControllerListRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildLayoutsListQuery( - client, - request, - options, - ), + ...buildLayoutsListQuery(client, request, options), ...options, }); } @@ -60,15 +70,11 @@ export function useLayoutsList( */ export function useLayoutsListSuspense( request: operations.LayoutsControllerListRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildLayoutsListQuery( - client, - request, - options, - ), + ...buildLayoutsListQuery(client, request, options), ...options, }); } @@ -85,7 +91,7 @@ export function setLayoutsListData( idempotencyKey?: string | undefined; }, ], - data: LayoutsListQueryData, + data: LayoutsListQueryData ): LayoutsListQueryData | undefined { const key = queryKeyLayoutsList(...queryKeyBase); @@ -95,29 +101,31 @@ export function setLayoutsListData( export function invalidateLayoutsList( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - limit?: number | undefined; - offset?: number | undefined; - orderDirection?: components.DirectionEnum | undefined; - orderBy?: components.LayoutResponseDtoSortField | undefined; - query?: string | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + limit?: number | undefined; + offset?: number | undefined; + orderDirection?: components.DirectionEnum | undefined; + orderBy?: components.LayoutResponseDtoSortField | undefined; + query?: string | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Layouts", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Layouts', 'list', ...queryKeyBase], }); } export function invalidateAllLayoutsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Layouts", "list"], + queryKey: ['@novu/api', 'Layouts', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/layoutsRetrieve.ts b/libs/internal-sdk/src/react-query/layoutsRetrieve.ts index 76f04b8cebd..6fbfeb65fd7 100644 --- a/libs/internal-sdk/src/react-query/layoutsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/layoutsRetrieve.ts @@ -5,29 +5,43 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildLayoutsRetrieveQuery, LayoutsRetrieveQueryData, prefetchLayoutsRetrieve, queryKeyLayoutsRetrieve, -} from "./layoutsRetrieve.core.js"; -export { - buildLayoutsRetrieveQuery, - type LayoutsRetrieveQueryData, - prefetchLayoutsRetrieve, - queryKeyLayoutsRetrieve, -}; +} from './layoutsRetrieve.core.js'; +export { buildLayoutsRetrieveQuery, type LayoutsRetrieveQueryData, prefetchLayoutsRetrieve, queryKeyLayoutsRetrieve }; + +export type LayoutsRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Retrieve a layout @@ -38,16 +52,11 @@ export { export function useLayoutsRetrieve( layoutId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildLayoutsRetrieveQuery( - client, - layoutId, - idempotencyKey, - options, - ), + ...buildLayoutsRetrieveQuery(client, layoutId, idempotencyKey, options), ...options, }); } @@ -61,27 +70,19 @@ export function useLayoutsRetrieve( export function useLayoutsRetrieveSuspense( layoutId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildLayoutsRetrieveQuery( - client, - layoutId, - idempotencyKey, - options, - ), + ...buildLayoutsRetrieveQuery(client, layoutId, idempotencyKey, options), ...options, }); } export function setLayoutsRetrieveData( client: QueryClient, - queryKeyBase: [ - layoutId: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: LayoutsRetrieveQueryData, + queryKeyBase: [layoutId: string, parameters: { idempotencyKey?: string | undefined }], + data: LayoutsRetrieveQueryData ): LayoutsRetrieveQueryData | undefined { const key = queryKeyLayoutsRetrieve(...queryKeyBase); @@ -90,23 +91,21 @@ export function setLayoutsRetrieveData( export function invalidateLayoutsRetrieve( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [layoutId: string, parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[layoutId: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Layouts", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Layouts', 'retrieve', ...queryKeyBase], }); } export function invalidateAllLayoutsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Layouts", "retrieve"], + queryKey: ['@novu/api', 'Layouts', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/layoutsUpdate.ts b/libs/internal-sdk/src/react-query/layoutsUpdate.ts index d1aaed65588..3bbdbc4fd35 100644 --- a/libs/internal-sdk/src/react-query/layoutsUpdate.ts +++ b/libs/internal-sdk/src/react-query/layoutsUpdate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { layoutsUpdate } from '../funcs/layoutsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { layoutsUpdate } from "../funcs/layoutsUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type LayoutsUpdateMutationVariables = { updateLayoutDto: components.UpdateLayoutDto; @@ -24,8 +31,19 @@ export type LayoutsUpdateMutationVariables = { options?: RequestOptions; }; -export type LayoutsUpdateMutationData = - operations.LayoutsControllerUpdateResponse; +export type LayoutsUpdateMutationData = operations.LayoutsControllerUpdateResponse; + +export type LayoutsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update a layout @@ -34,16 +52,8 @@ export type LayoutsUpdateMutationData = * Updates the details of an existing layout, here **layoutId** is the identifier of the layout */ export function useLayoutsUpdateMutation( - options?: MutationHookOptions< - LayoutsUpdateMutationData, - Error, - LayoutsUpdateMutationVariables - >, -): UseMutationResult< - LayoutsUpdateMutationData, - Error, - LayoutsUpdateMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildLayoutsUpdateMutation(client, options), @@ -52,17 +62,15 @@ export function useLayoutsUpdateMutation( } export function mutationKeyLayoutsUpdate(): MutationKey { - return ["@novu/api", "Layouts", "update"]; + return ['@novu/api', 'Layouts', 'update']; } export function buildLayoutsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: LayoutsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: LayoutsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyLayoutsUpdate(), @@ -78,19 +86,10 @@ export function buildLayoutsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(layoutsUpdate( - client$, - updateLayoutDto, - layoutId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(layoutsUpdate(client$, updateLayoutDto, layoutId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/layoutsUsage.ts b/libs/internal-sdk/src/react-query/layoutsUsage.ts index 1d08f3495ff..7ad273af3ef 100644 --- a/libs/internal-sdk/src/react-query/layoutsUsage.ts +++ b/libs/internal-sdk/src/react-query/layoutsUsage.ts @@ -5,29 +5,43 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildLayoutsUsageQuery, LayoutsUsageQueryData, prefetchLayoutsUsage, queryKeyLayoutsUsage, -} from "./layoutsUsage.core.js"; -export { - buildLayoutsUsageQuery, - type LayoutsUsageQueryData, - prefetchLayoutsUsage, - queryKeyLayoutsUsage, -}; +} from './layoutsUsage.core.js'; +export { buildLayoutsUsageQuery, type LayoutsUsageQueryData, prefetchLayoutsUsage, queryKeyLayoutsUsage }; + +export type LayoutsUsageQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Get layout usage @@ -38,16 +52,11 @@ export { export function useLayoutsUsage( layoutId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildLayoutsUsageQuery( - client, - layoutId, - idempotencyKey, - options, - ), + ...buildLayoutsUsageQuery(client, layoutId, idempotencyKey, options), ...options, }); } @@ -61,27 +70,19 @@ export function useLayoutsUsage( export function useLayoutsUsageSuspense( layoutId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildLayoutsUsageQuery( - client, - layoutId, - idempotencyKey, - options, - ), + ...buildLayoutsUsageQuery(client, layoutId, idempotencyKey, options), ...options, }); } export function setLayoutsUsageData( client: QueryClient, - queryKeyBase: [ - layoutId: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: LayoutsUsageQueryData, + queryKeyBase: [layoutId: string, parameters: { idempotencyKey?: string | undefined }], + data: LayoutsUsageQueryData ): LayoutsUsageQueryData | undefined { const key = queryKeyLayoutsUsage(...queryKeyBase); @@ -90,23 +91,21 @@ export function setLayoutsUsageData( export function invalidateLayoutsUsage( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [layoutId: string, parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[layoutId: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Layouts", "usage", ...queryKeyBase], + queryKey: ['@novu/api', 'Layouts', 'usage', ...queryKeyBase], }); } export function invalidateAllLayoutsUsage( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Layouts", "usage"], + queryKey: ['@novu/api', 'Layouts', 'usage'], }); } diff --git a/libs/internal-sdk/src/react-query/messagesDelete.ts b/libs/internal-sdk/src/react-query/messagesDelete.ts index cb061e22db2..b030d3eb294 100644 --- a/libs/internal-sdk/src/react-query/messagesDelete.ts +++ b/libs/internal-sdk/src/react-query/messagesDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { messagesDelete } from '../funcs/messagesDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { messagesDelete } from "../funcs/messagesDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type MessagesDeleteMutationVariables = { messageId: string; @@ -22,8 +29,19 @@ export type MessagesDeleteMutationVariables = { options?: RequestOptions; }; -export type MessagesDeleteMutationData = - operations.MessagesControllerDeleteMessageResponse; +export type MessagesDeleteMutationData = operations.MessagesControllerDeleteMessageResponse; + +export type MessagesDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete a message @@ -35,14 +53,10 @@ export type MessagesDeleteMutationData = export function useMessagesDeleteMutation( options?: MutationHookOptions< MessagesDeleteMutationData, - Error, + MessagesDeleteMutationError, MessagesDeleteMutationVariables - >, -): UseMutationResult< - MessagesDeleteMutationData, - Error, - MessagesDeleteMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildMessagesDeleteMutation(client, options), @@ -51,17 +65,15 @@ export function useMessagesDeleteMutation( } export function mutationKeyMessagesDelete(): MutationKey { - return ["@novu/api", "Messages", "delete"]; + return ['@novu/api', 'Messages', 'delete']; } export function buildMessagesDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: MessagesDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: MessagesDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyMessagesDelete(), @@ -76,18 +88,10 @@ export function buildMessagesDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(messagesDelete( - client$, - messageId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(messagesDelete(client$, messageId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/messagesDeleteByTransactionId.ts b/libs/internal-sdk/src/react-query/messagesDeleteByTransactionId.ts index 858a33f8aa7..cbb5e47a862 100644 --- a/libs/internal-sdk/src/react-query/messagesDeleteByTransactionId.ts +++ b/libs/internal-sdk/src/react-query/messagesDeleteByTransactionId.ts @@ -2,25 +2,30 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { messagesDeleteByTransactionId } from '../funcs/messagesDeleteByTransactionId.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { messagesDeleteByTransactionId } from "../funcs/messagesDeleteByTransactionId.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type MessagesDeleteByTransactionIdMutationVariables = { transactionId: string; - channel?: - | operations.MessagesControllerDeleteMessagesByTransactionIdQueryParamChannel - | undefined; + channel?: operations.MessagesControllerDeleteMessagesByTransactionIdQueryParamChannel | undefined; idempotencyKey?: string | undefined; options?: RequestOptions; }; @@ -29,6 +34,18 @@ export type MessagesDeleteByTransactionIdMutationData = | operations.MessagesControllerDeleteMessagesByTransactionIdResponse | undefined; +export type MessagesDeleteByTransactionIdMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Delete messages by transactionId * @@ -39,12 +56,12 @@ export type MessagesDeleteByTransactionIdMutationData = export function useMessagesDeleteByTransactionIdMutation( options?: MutationHookOptions< MessagesDeleteByTransactionIdMutationData, - Error, + MessagesDeleteByTransactionIdMutationError, MessagesDeleteByTransactionIdMutationVariables - >, + > ): UseMutationResult< MessagesDeleteByTransactionIdMutationData, - Error, + MessagesDeleteByTransactionIdMutationError, MessagesDeleteByTransactionIdMutationVariables > { const client = useNovuContext(); @@ -55,16 +72,16 @@ export function useMessagesDeleteByTransactionIdMutation( } export function mutationKeyMessagesDeleteByTransactionId(): MutationKey { - return ["@novu/api", "Messages", "deleteByTransactionId"]; + return ['@novu/api', 'Messages', 'deleteByTransactionId']; } export function buildMessagesDeleteByTransactionIdMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: MessagesDeleteByTransactionIdMutationVariables, + variables: MessagesDeleteByTransactionIdMutationVariables ) => Promise; } { return { @@ -81,19 +98,10 @@ export function buildMessagesDeleteByTransactionIdMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(messagesDeleteByTransactionId( - client$, - transactionId, - channel, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(messagesDeleteByTransactionId(client$, transactionId, channel, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/messagesRetrieve.ts b/libs/internal-sdk/src/react-query/messagesRetrieve.ts index 9171eb77a6d..c45a48848ce 100644 --- a/libs/internal-sdk/src/react-query/messagesRetrieve.ts +++ b/libs/internal-sdk/src/react-query/messagesRetrieve.ts @@ -5,25 +5,32 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; +import * as components from '../models/components/index.js'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildMessagesRetrieveQuery, MessagesRetrieveQueryData, prefetchMessagesRetrieve, queryKeyMessagesRetrieve, -} from "./messagesRetrieve.core.js"; +} from './messagesRetrieve.core.js'; export { buildMessagesRetrieveQuery, type MessagesRetrieveQueryData, @@ -31,6 +38,18 @@ export { queryKeyMessagesRetrieve, }; +export type MessagesRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List all messages * @@ -41,15 +60,11 @@ export { */ export function useMessagesRetrieve( request: operations.MessagesControllerGetMessagesRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildMessagesRetrieveQuery( - client, - request, - options, - ), + ...buildMessagesRetrieveQuery(client, request, options), ...options, }); } @@ -64,15 +79,11 @@ export function useMessagesRetrieve( */ export function useMessagesRetrieveSuspense( request: operations.MessagesControllerGetMessagesRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildMessagesRetrieveQuery( - client, - request, - options, - ), + ...buildMessagesRetrieveQuery(client, request, options), ...options, }); } @@ -90,7 +101,7 @@ export function setMessagesRetrieveData( idempotencyKey?: string | undefined; }, ], - data: MessagesRetrieveQueryData, + data: MessagesRetrieveQueryData ): MessagesRetrieveQueryData | undefined { const key = queryKeyMessagesRetrieve(...queryKeyBase); @@ -100,30 +111,32 @@ export function setMessagesRetrieveData( export function invalidateMessagesRetrieve( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - channel?: components.ChannelTypeEnum | undefined; - subscriberId?: string | undefined; - transactionId?: Array | undefined; - contextKeys?: Array | undefined; - page?: number | undefined; - limit?: number | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + channel?: components.ChannelTypeEnum | undefined; + subscriberId?: string | undefined; + transactionId?: Array | undefined; + contextKeys?: Array | undefined; + page?: number | undefined; + limit?: number | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Messages", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Messages', 'retrieve', ...queryKeyBase], }); } export function invalidateAllMessagesRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Messages", "retrieve"], + queryKey: ['@novu/api', 'Messages', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/notificationsList.ts b/libs/internal-sdk/src/react-query/notificationsList.ts index c223ae9e174..0d001320287 100644 --- a/libs/internal-sdk/src/react-query/notificationsList.ts +++ b/libs/internal-sdk/src/react-query/notificationsList.ts @@ -11,6 +11,17 @@ import { useSuspenseQuery, } from '@tanstack/react-query'; import * as components from '../models/components/index.js'; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; import * as operations from '../models/operations/index.js'; import { useNovuContext } from './_context.js'; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; @@ -27,6 +38,18 @@ export { queryKeyNotificationsList, }; +export type NotificationsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List all events * @@ -38,8 +61,8 @@ export { */ export function useNotificationsList( request: operations.NotificationsControllerListNotificationsRequest, - options?: QueryHookOptions -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ ...buildNotificationsListQuery(client, request, options), @@ -58,8 +81,8 @@ export function useNotificationsList( */ export function useNotificationsListSuspense( request: operations.NotificationsControllerListNotificationsRequest, - options?: SuspenseQueryHookOptions -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ ...buildNotificationsListQuery(client, request, options), diff --git a/libs/internal-sdk/src/react-query/notificationsRetrieve.ts b/libs/internal-sdk/src/react-query/notificationsRetrieve.ts index 2f77769d705..16a80ee3dc3 100644 --- a/libs/internal-sdk/src/react-query/notificationsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/notificationsRetrieve.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildNotificationsRetrieveQuery, NotificationsRetrieveQueryData, prefetchNotificationsRetrieve, queryKeyNotificationsRetrieve, -} from "./notificationsRetrieve.core.js"; +} from './notificationsRetrieve.core.js'; export { buildNotificationsRetrieveQuery, type NotificationsRetrieveQueryData, @@ -29,6 +36,18 @@ export { queryKeyNotificationsRetrieve, }; +export type NotificationsRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve an event * @@ -40,16 +59,11 @@ export { export function useNotificationsRetrieve( notificationId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildNotificationsRetrieveQuery( - client, - notificationId, - idempotencyKey, - options, - ), + ...buildNotificationsRetrieveQuery(client, notificationId, idempotencyKey, options), ...options, }); } @@ -65,27 +79,19 @@ export function useNotificationsRetrieve( export function useNotificationsRetrieveSuspense( notificationId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildNotificationsRetrieveQuery( - client, - notificationId, - idempotencyKey, - options, - ), + ...buildNotificationsRetrieveQuery(client, notificationId, idempotencyKey, options), ...options, }); } export function setNotificationsRetrieveData( client: QueryClient, - queryKeyBase: [ - notificationId: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: NotificationsRetrieveQueryData, + queryKeyBase: [notificationId: string, parameters: { idempotencyKey?: string | undefined }], + data: NotificationsRetrieveQueryData ): NotificationsRetrieveQueryData | undefined { const key = queryKeyNotificationsRetrieve(...queryKeyBase); @@ -94,26 +100,21 @@ export function setNotificationsRetrieveData( export function invalidateNotificationsRetrieve( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [ - notificationId: string, - parameters: { idempotencyKey?: string | undefined }, - ] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[notificationId: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Notifications", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Notifications', 'retrieve', ...queryKeyBase], }); } export function invalidateAllNotificationsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Notifications", "retrieve"], + queryKey: ['@novu/api', 'Notifications', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/subscribersCreate.ts b/libs/internal-sdk/src/react-query/subscribersCreate.ts index bff4cc4f904..5255bb790c8 100644 --- a/libs/internal-sdk/src/react-query/subscribersCreate.ts +++ b/libs/internal-sdk/src/react-query/subscribersCreate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersCreate } from '../funcs/subscribersCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersCreate } from "../funcs/subscribersCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersCreateMutationVariables = { createSubscriberRequestDto: components.CreateSubscriberRequestDto; @@ -24,8 +31,20 @@ export type SubscribersCreateMutationVariables = { options?: RequestOptions; }; -export type SubscribersCreateMutationData = - operations.SubscribersControllerCreateSubscriberResponse; +export type SubscribersCreateMutationData = operations.SubscribersControllerCreateSubscriberResponse; + +export type SubscribersCreateMutationError = + | errors.SubscriberResponseDto + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create a subscriber @@ -37,12 +56,12 @@ export type SubscribersCreateMutationData = export function useSubscribersCreateMutation( options?: MutationHookOptions< SubscribersCreateMutationData, - Error, + SubscribersCreateMutationError, SubscribersCreateMutationVariables - >, + > ): UseMutationResult< SubscribersCreateMutationData, - Error, + SubscribersCreateMutationError, SubscribersCreateMutationVariables > { const client = useNovuContext(); @@ -53,17 +72,15 @@ export function useSubscribersCreateMutation( } export function mutationKeySubscribersCreate(): MutationKey { - return ["@novu/api", "Subscribers", "create"]; + return ['@novu/api', 'Subscribers', 'create']; } export function buildSubscribersCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: SubscribersCreateMutationVariables, - ) => Promise; + mutationFn: (variables: SubscribersCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeySubscribersCreate(), @@ -79,19 +96,12 @@ export function buildSubscribersCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersCreate( - client$, - createSubscriberRequestDto, - failIfExists, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersCreate(client$, createSubscriberRequestDto, failIfExists, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersCreateBulk.ts b/libs/internal-sdk/src/react-query/subscribersCreateBulk.ts index e11d183f120..dc8c856204a 100644 --- a/libs/internal-sdk/src/react-query/subscribersCreateBulk.ts +++ b/libs/internal-sdk/src/react-query/subscribersCreateBulk.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersCreateBulk } from '../funcs/subscribersCreateBulk.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersCreateBulk } from "../funcs/subscribersCreateBulk.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersCreateBulkMutationVariables = { bulkSubscriberCreateDto: components.BulkSubscriberCreateDto; @@ -23,8 +30,19 @@ export type SubscribersCreateBulkMutationVariables = { options?: RequestOptions; }; -export type SubscribersCreateBulkMutationData = - operations.SubscribersV1ControllerBulkCreateSubscribersResponse; +export type SubscribersCreateBulkMutationData = operations.SubscribersV1ControllerBulkCreateSubscribersResponse; + +export type SubscribersCreateBulkMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Bulk create subscribers @@ -36,12 +54,12 @@ export type SubscribersCreateBulkMutationData = export function useSubscribersCreateBulkMutation( options?: MutationHookOptions< SubscribersCreateBulkMutationData, - Error, + SubscribersCreateBulkMutationError, SubscribersCreateBulkMutationVariables - >, + > ): UseMutationResult< SubscribersCreateBulkMutationData, - Error, + SubscribersCreateBulkMutationError, SubscribersCreateBulkMutationVariables > { const client = useNovuContext(); @@ -52,17 +70,15 @@ export function useSubscribersCreateBulkMutation( } export function mutationKeySubscribersCreateBulk(): MutationKey { - return ["@novu/api", "Subscribers", "createBulk"]; + return ['@novu/api', 'Subscribers', 'createBulk']; } export function buildSubscribersCreateBulkMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: SubscribersCreateBulkMutationVariables, - ) => Promise; + mutationFn: (variables: SubscribersCreateBulkMutationVariables) => Promise; } { return { mutationKey: mutationKeySubscribersCreateBulk(), @@ -77,18 +93,10 @@ export function buildSubscribersCreateBulkMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersCreateBulk( - client$, - bulkSubscriberCreateDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(subscribersCreateBulk(client$, bulkSubscriberCreateDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersCredentialsAppend.ts b/libs/internal-sdk/src/react-query/subscribersCredentialsAppend.ts index 5295c9adb7c..924d7f74fef 100644 --- a/libs/internal-sdk/src/react-query/subscribersCredentialsAppend.ts +++ b/libs/internal-sdk/src/react-query/subscribersCredentialsAppend.ts @@ -2,24 +2,30 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersCredentialsAppend } from '../funcs/subscribersCredentialsAppend.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersCredentialsAppend } from "../funcs/subscribersCredentialsAppend.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersCredentialsAppendMutationVariables = { - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto; + updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto; subscriberId: string; idempotencyKey?: string | undefined; options?: RequestOptions; @@ -28,6 +34,18 @@ export type SubscribersCredentialsAppendMutationVariables = { export type SubscribersCredentialsAppendMutationData = operations.SubscribersV1ControllerModifySubscriberChannelResponse; +export type SubscribersCredentialsAppendMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Upsert provider credentials * @@ -38,12 +56,12 @@ export type SubscribersCredentialsAppendMutationData = export function useSubscribersCredentialsAppendMutation( options?: MutationHookOptions< SubscribersCredentialsAppendMutationData, - Error, + SubscribersCredentialsAppendMutationError, SubscribersCredentialsAppendMutationVariables - >, + > ): UseMutationResult< SubscribersCredentialsAppendMutationData, - Error, + SubscribersCredentialsAppendMutationError, SubscribersCredentialsAppendMutationVariables > { const client = useNovuContext(); @@ -54,16 +72,16 @@ export function useSubscribersCredentialsAppendMutation( } export function mutationKeySubscribersCredentialsAppend(): MutationKey { - return ["@novu/api", "Credentials", "append"]; + return ['@novu/api', 'Credentials', 'append']; } export function buildSubscribersCredentialsAppendMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersCredentialsAppendMutationVariables, + variables: SubscribersCredentialsAppendMutationVariables ) => Promise; } { return { @@ -80,19 +98,18 @@ export function buildSubscribersCredentialsAppendMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersCredentialsAppend( - client$, - updateSubscriberChannelRequestDto, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersCredentialsAppend( + client$, + updateSubscriberChannelRequestDto, + subscriberId, + idempotencyKey, + mergedOptions + ) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersCredentialsDelete.ts b/libs/internal-sdk/src/react-query/subscribersCredentialsDelete.ts index 2c5acfa810a..1480ce2a7c9 100644 --- a/libs/internal-sdk/src/react-query/subscribersCredentialsDelete.ts +++ b/libs/internal-sdk/src/react-query/subscribersCredentialsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersCredentialsDelete } from '../funcs/subscribersCredentialsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersCredentialsDelete } from "../funcs/subscribersCredentialsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersCredentialsDeleteMutationVariables = { subscriberId: string; @@ -27,6 +34,18 @@ export type SubscribersCredentialsDeleteMutationData = | operations.SubscribersV1ControllerDeleteSubscriberCredentialsResponse | undefined; +export type SubscribersCredentialsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Delete provider credentials * @@ -37,12 +56,12 @@ export type SubscribersCredentialsDeleteMutationData = export function useSubscribersCredentialsDeleteMutation( options?: MutationHookOptions< SubscribersCredentialsDeleteMutationData, - Error, + SubscribersCredentialsDeleteMutationError, SubscribersCredentialsDeleteMutationVariables - >, + > ): UseMutationResult< SubscribersCredentialsDeleteMutationData, - Error, + SubscribersCredentialsDeleteMutationError, SubscribersCredentialsDeleteMutationVariables > { const client = useNovuContext(); @@ -53,16 +72,16 @@ export function useSubscribersCredentialsDeleteMutation( } export function mutationKeySubscribersCredentialsDelete(): MutationKey { - return ["@novu/api", "Credentials", "delete"]; + return ['@novu/api', 'Credentials', 'delete']; } export function buildSubscribersCredentialsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersCredentialsDeleteMutationVariables, + variables: SubscribersCredentialsDeleteMutationVariables ) => Promise; } { return { @@ -79,19 +98,12 @@ export function buildSubscribersCredentialsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersCredentialsDelete( - client$, - subscriberId, - providerId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersCredentialsDelete(client$, subscriberId, providerId, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersCredentialsUpdate.ts b/libs/internal-sdk/src/react-query/subscribersCredentialsUpdate.ts index ea7f192881b..2fb267d2968 100644 --- a/libs/internal-sdk/src/react-query/subscribersCredentialsUpdate.ts +++ b/libs/internal-sdk/src/react-query/subscribersCredentialsUpdate.ts @@ -2,24 +2,30 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersCredentialsUpdate } from '../funcs/subscribersCredentialsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersCredentialsUpdate } from "../funcs/subscribersCredentialsUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersCredentialsUpdateMutationVariables = { - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto; + updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto; subscriberId: string; idempotencyKey?: string | undefined; options?: RequestOptions; @@ -28,6 +34,18 @@ export type SubscribersCredentialsUpdateMutationVariables = { export type SubscribersCredentialsUpdateMutationData = operations.SubscribersV1ControllerUpdateSubscriberChannelResponse; +export type SubscribersCredentialsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Update provider credentials * @@ -38,12 +56,12 @@ export type SubscribersCredentialsUpdateMutationData = export function useSubscribersCredentialsUpdateMutation( options?: MutationHookOptions< SubscribersCredentialsUpdateMutationData, - Error, + SubscribersCredentialsUpdateMutationError, SubscribersCredentialsUpdateMutationVariables - >, + > ): UseMutationResult< SubscribersCredentialsUpdateMutationData, - Error, + SubscribersCredentialsUpdateMutationError, SubscribersCredentialsUpdateMutationVariables > { const client = useNovuContext(); @@ -54,16 +72,16 @@ export function useSubscribersCredentialsUpdateMutation( } export function mutationKeySubscribersCredentialsUpdate(): MutationKey { - return ["@novu/api", "Credentials", "update"]; + return ['@novu/api', 'Credentials', 'update']; } export function buildSubscribersCredentialsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersCredentialsUpdateMutationVariables, + variables: SubscribersCredentialsUpdateMutationVariables ) => Promise; } { return { @@ -80,19 +98,18 @@ export function buildSubscribersCredentialsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersCredentialsUpdate( - client$, - updateSubscriberChannelRequestDto, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersCredentialsUpdate( + client$, + updateSubscriberChannelRequestDto, + subscriberId, + idempotencyKey, + mergedOptions + ) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersDelete.ts b/libs/internal-sdk/src/react-query/subscribersDelete.ts index 7a5c97a5cf2..fc26cbe2f6d 100644 --- a/libs/internal-sdk/src/react-query/subscribersDelete.ts +++ b/libs/internal-sdk/src/react-query/subscribersDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersDelete } from '../funcs/subscribersDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersDelete } from "../funcs/subscribersDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersDeleteMutationVariables = { subscriberId: string; @@ -22,8 +29,19 @@ export type SubscribersDeleteMutationVariables = { options?: RequestOptions; }; -export type SubscribersDeleteMutationData = - operations.SubscribersControllerRemoveSubscriberResponse; +export type SubscribersDeleteMutationData = operations.SubscribersControllerRemoveSubscriberResponse; + +export type SubscribersDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete a subscriber @@ -35,12 +53,12 @@ export type SubscribersDeleteMutationData = export function useSubscribersDeleteMutation( options?: MutationHookOptions< SubscribersDeleteMutationData, - Error, + SubscribersDeleteMutationError, SubscribersDeleteMutationVariables - >, + > ): UseMutationResult< SubscribersDeleteMutationData, - Error, + SubscribersDeleteMutationError, SubscribersDeleteMutationVariables > { const client = useNovuContext(); @@ -51,17 +69,15 @@ export function useSubscribersDeleteMutation( } export function mutationKeySubscribersDelete(): MutationKey { - return ["@novu/api", "Subscribers", "delete"]; + return ['@novu/api', 'Subscribers', 'delete']; } export function buildSubscribersDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: SubscribersDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: SubscribersDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeySubscribersDelete(), @@ -76,18 +92,10 @@ export function buildSubscribersDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersDelete( - client$, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(subscribersDelete(client$, subscriberId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersMessagesMarkAll.ts b/libs/internal-sdk/src/react-query/subscribersMessagesMarkAll.ts index 089b1b735b5..28c1185c62a 100644 --- a/libs/internal-sdk/src/react-query/subscribersMessagesMarkAll.ts +++ b/libs/internal-sdk/src/react-query/subscribersMessagesMarkAll.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersMessagesMarkAll } from '../funcs/subscribersMessagesMarkAll.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersMessagesMarkAll } from "../funcs/subscribersMessagesMarkAll.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersMessagesMarkAllMutationVariables = { markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto; @@ -24,8 +31,19 @@ export type SubscribersMessagesMarkAllMutationVariables = { options?: RequestOptions; }; -export type SubscribersMessagesMarkAllMutationData = - operations.SubscribersV1ControllerMarkAllUnreadAsReadResponse; +export type SubscribersMessagesMarkAllMutationData = operations.SubscribersV1ControllerMarkAllUnreadAsReadResponse; + +export type SubscribersMessagesMarkAllMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update all notifications state @@ -36,12 +54,12 @@ export type SubscribersMessagesMarkAllMutationData = export function useSubscribersMessagesMarkAllMutation( options?: MutationHookOptions< SubscribersMessagesMarkAllMutationData, - Error, + SubscribersMessagesMarkAllMutationError, SubscribersMessagesMarkAllMutationVariables - >, + > ): UseMutationResult< SubscribersMessagesMarkAllMutationData, - Error, + SubscribersMessagesMarkAllMutationError, SubscribersMessagesMarkAllMutationVariables > { const client = useNovuContext(); @@ -52,16 +70,16 @@ export function useSubscribersMessagesMarkAllMutation( } export function mutationKeySubscribersMessagesMarkAll(): MutationKey { - return ["@novu/api", "Messages", "markAll"]; + return ['@novu/api', 'Messages', 'markAll']; } export function buildSubscribersMessagesMarkAllMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersMessagesMarkAllMutationVariables, + variables: SubscribersMessagesMarkAllMutationVariables ) => Promise; } { return { @@ -78,19 +96,12 @@ export function buildSubscribersMessagesMarkAllMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersMessagesMarkAll( - client$, - markAllMessageAsRequestDto, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersMessagesMarkAll(client$, markAllMessageAsRequestDto, subscriberId, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersMessagesMarkAllAs.ts b/libs/internal-sdk/src/react-query/subscribersMessagesMarkAllAs.ts index 5d5a3fcc7c2..b9970c45cdf 100644 --- a/libs/internal-sdk/src/react-query/subscribersMessagesMarkAllAs.ts +++ b/libs/internal-sdk/src/react-query/subscribersMessagesMarkAllAs.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersMessagesMarkAllAs } from '../funcs/subscribersMessagesMarkAllAs.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersMessagesMarkAllAs } from "../funcs/subscribersMessagesMarkAllAs.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersMessagesMarkAllAsMutationVariables = { messageMarkAsRequestDto: components.MessageMarkAsRequestDto; @@ -24,8 +31,19 @@ export type SubscribersMessagesMarkAllAsMutationVariables = { options?: RequestOptions; }; -export type SubscribersMessagesMarkAllAsMutationData = - operations.SubscribersV1ControllerMarkMessagesAsResponse; +export type SubscribersMessagesMarkAllAsMutationData = operations.SubscribersV1ControllerMarkMessagesAsResponse; + +export type SubscribersMessagesMarkAllAsMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update notifications state @@ -37,12 +55,12 @@ export type SubscribersMessagesMarkAllAsMutationData = export function useSubscribersMessagesMarkAllAsMutation( options?: MutationHookOptions< SubscribersMessagesMarkAllAsMutationData, - Error, + SubscribersMessagesMarkAllAsMutationError, SubscribersMessagesMarkAllAsMutationVariables - >, + > ): UseMutationResult< SubscribersMessagesMarkAllAsMutationData, - Error, + SubscribersMessagesMarkAllAsMutationError, SubscribersMessagesMarkAllAsMutationVariables > { const client = useNovuContext(); @@ -53,16 +71,16 @@ export function useSubscribersMessagesMarkAllAsMutation( } export function mutationKeySubscribersMessagesMarkAllAs(): MutationKey { - return ["@novu/api", "Messages", "markAllAs"]; + return ['@novu/api', 'Messages', 'markAllAs']; } export function buildSubscribersMessagesMarkAllAsMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersMessagesMarkAllAsMutationVariables, + variables: SubscribersMessagesMarkAllAsMutationVariables ) => Promise; } { return { @@ -79,19 +97,12 @@ export function buildSubscribersMessagesMarkAllAsMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersMessagesMarkAllAs( - client$, - messageMarkAsRequestDto, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersMessagesMarkAllAs(client$, messageMarkAsRequestDto, subscriberId, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersMessagesUpdateAsSeen.ts b/libs/internal-sdk/src/react-query/subscribersMessagesUpdateAsSeen.ts index dcdb724acf1..aa6f362f59b 100644 --- a/libs/internal-sdk/src/react-query/subscribersMessagesUpdateAsSeen.ts +++ b/libs/internal-sdk/src/react-query/subscribersMessagesUpdateAsSeen.ts @@ -2,27 +2,45 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersMessagesUpdateAsSeen } from '../funcs/subscribersMessagesUpdateAsSeen.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersMessagesUpdateAsSeen } from "../funcs/subscribersMessagesUpdateAsSeen.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersMessagesUpdateAsSeenMutationVariables = { request: operations.SubscribersV1ControllerMarkActionAsSeenRequest; options?: RequestOptions; }; -export type SubscribersMessagesUpdateAsSeenMutationData = - operations.SubscribersV1ControllerMarkActionAsSeenResponse; +export type SubscribersMessagesUpdateAsSeenMutationData = operations.SubscribersV1ControllerMarkActionAsSeenResponse; + +export type SubscribersMessagesUpdateAsSeenMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update notification action status @@ -34,12 +52,12 @@ export type SubscribersMessagesUpdateAsSeenMutationData = export function useSubscribersMessagesUpdateAsSeenMutation( options?: MutationHookOptions< SubscribersMessagesUpdateAsSeenMutationData, - Error, + SubscribersMessagesUpdateAsSeenMutationError, SubscribersMessagesUpdateAsSeenMutationVariables - >, + > ): UseMutationResult< SubscribersMessagesUpdateAsSeenMutationData, - Error, + SubscribersMessagesUpdateAsSeenMutationError, SubscribersMessagesUpdateAsSeenMutationVariables > { const client = useNovuContext(); @@ -50,16 +68,16 @@ export function useSubscribersMessagesUpdateAsSeenMutation( } export function mutationKeySubscribersMessagesUpdateAsSeen(): MutationKey { - return ["@novu/api", "Messages", "updateAsSeen"]; + return ['@novu/api', 'Messages', 'updateAsSeen']; } export function buildSubscribersMessagesUpdateAsSeenMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersMessagesUpdateAsSeenMutationVariables, + variables: SubscribersMessagesUpdateAsSeenMutationVariables ) => Promise; } { return { @@ -74,17 +92,10 @@ export function buildSubscribersMessagesUpdateAsSeenMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersMessagesUpdateAsSeen( - client$, - request, - mergedOptions, - )); + return unwrapAsync(subscribersMessagesUpdateAsSeen(client$, request, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.ts b/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.ts index cd5bb737c68..2193b065333 100644 --- a/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.ts +++ b/libs/internal-sdk/src/react-query/subscribersNotificationsFeed.ts @@ -5,24 +5,31 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildSubscribersNotificationsFeedQuery, prefetchSubscribersNotificationsFeed, queryKeySubscribersNotificationsFeed, SubscribersNotificationsFeedQueryData, -} from "./subscribersNotificationsFeed.core.js"; +} from './subscribersNotificationsFeed.core.js'; export { buildSubscribersNotificationsFeedQuery, prefetchSubscribersNotificationsFeed, @@ -30,6 +37,18 @@ export { type SubscribersNotificationsFeedQueryData, }; +export type SubscribersNotificationsFeedQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve subscriber notifications * @@ -38,15 +57,11 @@ export { */ export function useSubscribersNotificationsFeed( request: operations.SubscribersV1ControllerGetNotificationsFeedRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildSubscribersNotificationsFeedQuery( - client, - request, - options, - ), + ...buildSubscribersNotificationsFeedQuery(client, request, options), ...options, }); } @@ -59,15 +74,11 @@ export function useSubscribersNotificationsFeed( */ export function useSubscribersNotificationsFeedSuspense( request: operations.SubscribersV1ControllerGetNotificationsFeedRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildSubscribersNotificationsFeedQuery( - client, - request, - options, - ), + ...buildSubscribersNotificationsFeedQuery(client, request, options), ...options, }); } @@ -85,7 +96,7 @@ export function setSubscribersNotificationsFeedData( idempotencyKey?: string | undefined; }, ], - data: SubscribersNotificationsFeedQueryData, + data: SubscribersNotificationsFeedQueryData ): SubscribersNotificationsFeedQueryData | undefined { const key = queryKeySubscribersNotificationsFeed(...queryKeyBase); @@ -107,20 +118,20 @@ export function invalidateSubscribersNotificationsFeed( }, ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Notifications", "feed", ...queryKeyBase], + queryKey: ['@novu/api', 'Notifications', 'feed', ...queryKeyBase], }); } export function invalidateAllSubscribersNotificationsFeed( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Notifications", "feed"], + queryKey: ['@novu/api', 'Notifications', 'feed'], }); } diff --git a/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.ts b/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.ts index 0c5c7f3ddfe..40c2e46cb1f 100644 --- a/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.ts +++ b/libs/internal-sdk/src/react-query/subscribersNotificationsUnseenCount.ts @@ -5,24 +5,31 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildSubscribersNotificationsUnseenCountQuery, prefetchSubscribersNotificationsUnseenCount, queryKeySubscribersNotificationsUnseenCount, SubscribersNotificationsUnseenCountQueryData, -} from "./subscribersNotificationsUnseenCount.core.js"; +} from './subscribersNotificationsUnseenCount.core.js'; export { buildSubscribersNotificationsUnseenCountQuery, prefetchSubscribersNotificationsUnseenCount, @@ -30,6 +37,18 @@ export { type SubscribersNotificationsUnseenCountQueryData, }; +export type SubscribersNotificationsUnseenCountQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve unseen notifications count * @@ -38,15 +57,14 @@ export { */ export function useSubscribersNotificationsUnseenCount( request: operations.SubscribersV1ControllerGetUnseenCountRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions< + SubscribersNotificationsUnseenCountQueryData, + SubscribersNotificationsUnseenCountQueryError + > +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildSubscribersNotificationsUnseenCountQuery( - client, - request, - options, - ), + ...buildSubscribersNotificationsUnseenCountQuery(client, request, options), ...options, }); } @@ -60,16 +78,13 @@ export function useSubscribersNotificationsUnseenCount( export function useSubscribersNotificationsUnseenCountSuspense( request: operations.SubscribersV1ControllerGetUnseenCountRequest, options?: SuspenseQueryHookOptions< - SubscribersNotificationsUnseenCountQueryData - >, -): UseSuspenseQueryResult { + SubscribersNotificationsUnseenCountQueryData, + SubscribersNotificationsUnseenCountQueryError + > +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildSubscribersNotificationsUnseenCountQuery( - client, - request, - options, - ), + ...buildSubscribersNotificationsUnseenCountQuery(client, request, options), ...options, }); } @@ -84,14 +99,11 @@ export function setSubscribersNotificationsUnseenCountData( idempotencyKey?: string | undefined; }, ], - data: SubscribersNotificationsUnseenCountQueryData, + data: SubscribersNotificationsUnseenCountQueryData ): SubscribersNotificationsUnseenCountQueryData | undefined { const key = queryKeySubscribersNotificationsUnseenCount(...queryKeyBase); - return client.setQueryData( - key, - data, - ); + return client.setQueryData(key, data); } export function invalidateSubscribersNotificationsUnseenCount( @@ -106,20 +118,20 @@ export function invalidateSubscribersNotificationsUnseenCount( }, ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Notifications", "unseenCount", ...queryKeyBase], + queryKey: ['@novu/api', 'Notifications', 'unseenCount', ...queryKeyBase], }); } export function invalidateAllSubscribersNotificationsUnseenCount( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Notifications", "unseenCount"], + queryKey: ['@novu/api', 'Notifications', 'unseenCount'], }); } diff --git a/libs/internal-sdk/src/react-query/subscribersPatch.ts b/libs/internal-sdk/src/react-query/subscribersPatch.ts index c3d570f2169..35a3c2f6d2a 100644 --- a/libs/internal-sdk/src/react-query/subscribersPatch.ts +++ b/libs/internal-sdk/src/react-query/subscribersPatch.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersPatch } from '../funcs/subscribersPatch.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersPatch } from "../funcs/subscribersPatch.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersPatchMutationVariables = { patchSubscriberRequestDto: components.PatchSubscriberRequestDto; @@ -24,8 +31,19 @@ export type SubscribersPatchMutationVariables = { options?: RequestOptions; }; -export type SubscribersPatchMutationData = - operations.SubscribersControllerPatchSubscriberResponse; +export type SubscribersPatchMutationData = operations.SubscribersControllerPatchSubscriberResponse; + +export type SubscribersPatchMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update a subscriber @@ -37,14 +55,10 @@ export type SubscribersPatchMutationData = export function useSubscribersPatchMutation( options?: MutationHookOptions< SubscribersPatchMutationData, - Error, + SubscribersPatchMutationError, SubscribersPatchMutationVariables - >, -): UseMutationResult< - SubscribersPatchMutationData, - Error, - SubscribersPatchMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildSubscribersPatchMutation(client, options), @@ -53,17 +67,15 @@ export function useSubscribersPatchMutation( } export function mutationKeySubscribersPatch(): MutationKey { - return ["@novu/api", "Subscribers", "patch"]; + return ['@novu/api', 'Subscribers', 'patch']; } export function buildSubscribersPatchMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: SubscribersPatchMutationVariables, - ) => Promise; + mutationFn: (variables: SubscribersPatchMutationVariables) => Promise; } { return { mutationKey: mutationKeySubscribersPatch(), @@ -79,19 +91,12 @@ export function buildSubscribersPatchMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersPatch( - client$, - patchSubscriberRequestDto, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersPatch(client$, patchSubscriberRequestDto, subscriberId, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersPreferencesBulkUpdate.ts b/libs/internal-sdk/src/react-query/subscribersPreferencesBulkUpdate.ts index b503f2ea1a2..1a46db3e19b 100644 --- a/libs/internal-sdk/src/react-query/subscribersPreferencesBulkUpdate.ts +++ b/libs/internal-sdk/src/react-query/subscribersPreferencesBulkUpdate.ts @@ -2,24 +2,30 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersPreferencesBulkUpdate } from '../funcs/subscribersPreferencesBulkUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersPreferencesBulkUpdate } from "../funcs/subscribersPreferencesBulkUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersPreferencesBulkUpdateMutationVariables = { - bulkUpdateSubscriberPreferencesDto: - components.BulkUpdateSubscriberPreferencesDto; + bulkUpdateSubscriberPreferencesDto: components.BulkUpdateSubscriberPreferencesDto; subscriberId: string; idempotencyKey?: string | undefined; options?: RequestOptions; @@ -28,6 +34,18 @@ export type SubscribersPreferencesBulkUpdateMutationVariables = { export type SubscribersPreferencesBulkUpdateMutationData = operations.SubscribersControllerBulkUpdateSubscriberPreferencesResponse; +export type SubscribersPreferencesBulkUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Bulk update subscriber preferences * @@ -38,12 +56,12 @@ export type SubscribersPreferencesBulkUpdateMutationData = export function useSubscribersPreferencesBulkUpdateMutation( options?: MutationHookOptions< SubscribersPreferencesBulkUpdateMutationData, - Error, + SubscribersPreferencesBulkUpdateMutationError, SubscribersPreferencesBulkUpdateMutationVariables - >, + > ): UseMutationResult< SubscribersPreferencesBulkUpdateMutationData, - Error, + SubscribersPreferencesBulkUpdateMutationError, SubscribersPreferencesBulkUpdateMutationVariables > { const client = useNovuContext(); @@ -54,16 +72,16 @@ export function useSubscribersPreferencesBulkUpdateMutation( } export function mutationKeySubscribersPreferencesBulkUpdate(): MutationKey { - return ["@novu/api", "Preferences", "bulkUpdate"]; + return ['@novu/api', 'Preferences', 'bulkUpdate']; } export function buildSubscribersPreferencesBulkUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersPreferencesBulkUpdateMutationVariables, + variables: SubscribersPreferencesBulkUpdateMutationVariables ) => Promise; } { return { @@ -80,19 +98,18 @@ export function buildSubscribersPreferencesBulkUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersPreferencesBulkUpdate( - client$, - bulkUpdateSubscriberPreferencesDto, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersPreferencesBulkUpdate( + client$, + bulkUpdateSubscriberPreferencesDto, + subscriberId, + idempotencyKey, + mergedOptions + ) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersPreferencesList.ts b/libs/internal-sdk/src/react-query/subscribersPreferencesList.ts index 938e09ddff8..5fa4ca22f14 100644 --- a/libs/internal-sdk/src/react-query/subscribersPreferencesList.ts +++ b/libs/internal-sdk/src/react-query/subscribersPreferencesList.ts @@ -10,6 +10,17 @@ import { useQuery, useSuspenseQuery, } from '@tanstack/react-query'; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; import * as operations from '../models/operations/index.js'; import { useNovuContext } from './_context.js'; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; @@ -26,6 +37,18 @@ export { type SubscribersPreferencesListQueryData, }; +export type SubscribersPreferencesListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve subscriber preferences * @@ -35,8 +58,8 @@ export { */ export function useSubscribersPreferencesList( request: operations.SubscribersControllerGetSubscriberPreferencesRequest, - options?: QueryHookOptions -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ ...buildSubscribersPreferencesListQuery(client, request, options), @@ -53,8 +76,8 @@ export function useSubscribersPreferencesList( */ export function useSubscribersPreferencesListSuspense( request: operations.SubscribersControllerGetSubscriberPreferencesRequest, - options?: SuspenseQueryHookOptions -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ ...buildSubscribersPreferencesListQuery(client, request, options), diff --git a/libs/internal-sdk/src/react-query/subscribersPreferencesUpdate.ts b/libs/internal-sdk/src/react-query/subscribersPreferencesUpdate.ts index 2dab7e789f2..17b2ab5340e 100644 --- a/libs/internal-sdk/src/react-query/subscribersPreferencesUpdate.ts +++ b/libs/internal-sdk/src/react-query/subscribersPreferencesUpdate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersPreferencesUpdate } from '../funcs/subscribersPreferencesUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersPreferencesUpdate } from "../funcs/subscribersPreferencesUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersPreferencesUpdateMutationVariables = { patchSubscriberPreferencesDto: components.PatchSubscriberPreferencesDto; @@ -27,6 +34,18 @@ export type SubscribersPreferencesUpdateMutationVariables = { export type SubscribersPreferencesUpdateMutationData = operations.SubscribersControllerUpdateSubscriberPreferencesResponse; +export type SubscribersPreferencesUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Update subscriber preferences * @@ -38,12 +57,12 @@ export type SubscribersPreferencesUpdateMutationData = export function useSubscribersPreferencesUpdateMutation( options?: MutationHookOptions< SubscribersPreferencesUpdateMutationData, - Error, + SubscribersPreferencesUpdateMutationError, SubscribersPreferencesUpdateMutationVariables - >, + > ): UseMutationResult< SubscribersPreferencesUpdateMutationData, - Error, + SubscribersPreferencesUpdateMutationError, SubscribersPreferencesUpdateMutationVariables > { const client = useNovuContext(); @@ -54,16 +73,16 @@ export function useSubscribersPreferencesUpdateMutation( } export function mutationKeySubscribersPreferencesUpdate(): MutationKey { - return ["@novu/api", "Preferences", "update"]; + return ['@novu/api', 'Preferences', 'update']; } export function buildSubscribersPreferencesUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersPreferencesUpdateMutationVariables, + variables: SubscribersPreferencesUpdateMutationVariables ) => Promise; } { return { @@ -80,19 +99,18 @@ export function buildSubscribersPreferencesUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersPreferencesUpdate( - client$, - patchSubscriberPreferencesDto, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersPreferencesUpdate( + client$, + patchSubscriberPreferencesDto, + subscriberId, + idempotencyKey, + mergedOptions + ) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersPropertiesUpdateOnlineFlag.ts b/libs/internal-sdk/src/react-query/subscribersPropertiesUpdateOnlineFlag.ts index f5a9c8614df..dc2804f23de 100644 --- a/libs/internal-sdk/src/react-query/subscribersPropertiesUpdateOnlineFlag.ts +++ b/libs/internal-sdk/src/react-query/subscribersPropertiesUpdateOnlineFlag.ts @@ -2,24 +2,30 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { subscribersPropertiesUpdateOnlineFlag } from '../funcs/subscribersPropertiesUpdateOnlineFlag.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { subscribersPropertiesUpdateOnlineFlag } from "../funcs/subscribersPropertiesUpdateOnlineFlag.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type SubscribersPropertiesUpdateOnlineFlagMutationVariables = { - updateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto; + updateSubscriberOnlineFlagRequestDto: components.UpdateSubscriberOnlineFlagRequestDto; subscriberId: string; idempotencyKey?: string | undefined; options?: RequestOptions; @@ -28,6 +34,18 @@ export type SubscribersPropertiesUpdateOnlineFlagMutationVariables = { export type SubscribersPropertiesUpdateOnlineFlagMutationData = operations.SubscribersV1ControllerUpdateSubscriberOnlineFlagResponse; +export type SubscribersPropertiesUpdateOnlineFlagMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Update subscriber online status * @@ -37,12 +55,12 @@ export type SubscribersPropertiesUpdateOnlineFlagMutationData = export function useSubscribersPropertiesUpdateOnlineFlagMutation( options?: MutationHookOptions< SubscribersPropertiesUpdateOnlineFlagMutationData, - Error, + SubscribersPropertiesUpdateOnlineFlagMutationError, SubscribersPropertiesUpdateOnlineFlagMutationVariables - >, + > ): UseMutationResult< SubscribersPropertiesUpdateOnlineFlagMutationData, - Error, + SubscribersPropertiesUpdateOnlineFlagMutationError, SubscribersPropertiesUpdateOnlineFlagMutationVariables > { const client = useNovuContext(); @@ -53,16 +71,16 @@ export function useSubscribersPropertiesUpdateOnlineFlagMutation( } export function mutationKeySubscribersPropertiesUpdateOnlineFlag(): MutationKey { - return ["@novu/api", "properties", "updateOnlineFlag"]; + return ['@novu/api', 'properties', 'updateOnlineFlag']; } export function buildSubscribersPropertiesUpdateOnlineFlagMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: SubscribersPropertiesUpdateOnlineFlagMutationVariables, + variables: SubscribersPropertiesUpdateOnlineFlagMutationVariables ) => Promise; } { return { @@ -79,19 +97,18 @@ export function buildSubscribersPropertiesUpdateOnlineFlagMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(subscribersPropertiesUpdateOnlineFlag( - client$, - updateSubscriberOnlineFlagRequestDto, - subscriberId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + subscribersPropertiesUpdateOnlineFlag( + client$, + updateSubscriberOnlineFlagRequestDto, + subscriberId, + idempotencyKey, + mergedOptions + ) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/subscribersRetrieve.ts b/libs/internal-sdk/src/react-query/subscribersRetrieve.ts index 30d286cf719..cad9affd2ad 100644 --- a/libs/internal-sdk/src/react-query/subscribersRetrieve.ts +++ b/libs/internal-sdk/src/react-query/subscribersRetrieve.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildSubscribersRetrieveQuery, prefetchSubscribersRetrieve, queryKeySubscribersRetrieve, SubscribersRetrieveQueryData, -} from "./subscribersRetrieve.core.js"; +} from './subscribersRetrieve.core.js'; export { buildSubscribersRetrieveQuery, prefetchSubscribersRetrieve, @@ -29,6 +36,18 @@ export { type SubscribersRetrieveQueryData, }; +export type SubscribersRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve a subscriber * @@ -39,16 +58,11 @@ export { export function useSubscribersRetrieve( subscriberId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildSubscribersRetrieveQuery( - client, - subscriberId, - idempotencyKey, - options, - ), + ...buildSubscribersRetrieveQuery(client, subscriberId, idempotencyKey, options), ...options, }); } @@ -63,27 +77,19 @@ export function useSubscribersRetrieve( export function useSubscribersRetrieveSuspense( subscriberId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildSubscribersRetrieveQuery( - client, - subscriberId, - idempotencyKey, - options, - ), + ...buildSubscribersRetrieveQuery(client, subscriberId, idempotencyKey, options), ...options, }); } export function setSubscribersRetrieveData( client: QueryClient, - queryKeyBase: [ - subscriberId: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: SubscribersRetrieveQueryData, + queryKeyBase: [subscriberId: string, parameters: { idempotencyKey?: string | undefined }], + data: SubscribersRetrieveQueryData ): SubscribersRetrieveQueryData | undefined { const key = queryKeySubscribersRetrieve(...queryKeyBase); @@ -92,23 +98,21 @@ export function setSubscribersRetrieveData( export function invalidateSubscribersRetrieve( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [subscriberId: string, parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[subscriberId: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Subscribers", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Subscribers', 'retrieve', ...queryKeyBase], }); } export function invalidateAllSubscribersRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Subscribers", "retrieve"], + queryKey: ['@novu/api', 'Subscribers', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/subscribersSearch.ts b/libs/internal-sdk/src/react-query/subscribersSearch.ts index cc47e73a692..edd99404f7b 100644 --- a/libs/internal-sdk/src/react-query/subscribersSearch.ts +++ b/libs/internal-sdk/src/react-query/subscribersSearch.ts @@ -5,24 +5,31 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildSubscribersSearchQuery, prefetchSubscribersSearch, queryKeySubscribersSearch, SubscribersSearchQueryData, -} from "./subscribersSearch.core.js"; +} from './subscribersSearch.core.js'; export { buildSubscribersSearchQuery, prefetchSubscribersSearch, @@ -30,6 +37,18 @@ export { type SubscribersSearchQueryData, }; +export type SubscribersSearchQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Search subscribers * @@ -39,15 +58,11 @@ export { */ export function useSubscribersSearch( request: operations.SubscribersControllerSearchSubscribersRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildSubscribersSearchQuery( - client, - request, - options, - ), + ...buildSubscribersSearchQuery(client, request, options), ...options, }); } @@ -61,15 +76,11 @@ export function useSubscribersSearch( */ export function useSubscribersSearchSuspense( request: operations.SubscribersControllerSearchSubscribersRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildSubscribersSearchQuery( - client, - request, - options, - ), + ...buildSubscribersSearchQuery(client, request, options), ...options, }); } @@ -91,7 +102,7 @@ export function setSubscribersSearchData( idempotencyKey?: string | undefined; }, ], - data: SubscribersSearchQueryData, + data: SubscribersSearchQueryData ): SubscribersSearchQueryData | undefined { const key = queryKeySubscribersSearch(...queryKeyBase); @@ -101,34 +112,36 @@ export function setSubscribersSearchData( export function invalidateSubscribersSearch( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - after?: string | undefined; - before?: string | undefined; - limit?: number | undefined; - orderDirection?: operations.QueryParamOrderDirection | undefined; - orderBy?: string | undefined; - includeCursor?: boolean | undefined; - email?: string | undefined; - name?: string | undefined; - phone?: string | undefined; - subscriberId?: string | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + after?: string | undefined; + before?: string | undefined; + limit?: number | undefined; + orderDirection?: operations.QueryParamOrderDirection | undefined; + orderBy?: string | undefined; + includeCursor?: boolean | undefined; + email?: string | undefined; + name?: string | undefined; + phone?: string | undefined; + subscriberId?: string | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Subscribers", "search", ...queryKeyBase], + queryKey: ['@novu/api', 'Subscribers', 'search', ...queryKeyBase], }); } export function invalidateAllSubscribersSearch( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Subscribers", "search"], + queryKey: ['@novu/api', 'Subscribers', 'search'], }); } diff --git a/libs/internal-sdk/src/react-query/subscribersTopicsList.ts b/libs/internal-sdk/src/react-query/subscribersTopicsList.ts index 8733416d30b..16aa1f6a9c5 100644 --- a/libs/internal-sdk/src/react-query/subscribersTopicsList.ts +++ b/libs/internal-sdk/src/react-query/subscribersTopicsList.ts @@ -10,6 +10,17 @@ import { useQuery, useSuspenseQuery, } from '@tanstack/react-query'; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; import * as operations from '../models/operations/index.js'; import { useNovuContext } from './_context.js'; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; @@ -26,6 +37,18 @@ export { type SubscribersTopicsListQueryData, }; +export type SubscribersTopicsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve subscriber subscriptions * @@ -35,8 +58,8 @@ export { */ export function useSubscribersTopicsList( request: operations.SubscribersControllerListSubscriberTopicsRequest, - options?: QueryHookOptions -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ ...buildSubscribersTopicsListQuery(client, request, options), @@ -53,8 +76,8 @@ export function useSubscribersTopicsList( */ export function useSubscribersTopicsListSuspense( request: operations.SubscribersControllerListSubscriberTopicsRequest, - options?: SuspenseQueryHookOptions -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ ...buildSubscribersTopicsListQuery(client, request, options), diff --git a/libs/internal-sdk/src/react-query/topicsCreate.ts b/libs/internal-sdk/src/react-query/topicsCreate.ts index 7a62157db1e..ca207f92915 100644 --- a/libs/internal-sdk/src/react-query/topicsCreate.ts +++ b/libs/internal-sdk/src/react-query/topicsCreate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { topicsCreate } from '../funcs/topicsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { topicsCreate } from "../funcs/topicsCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TopicsCreateMutationVariables = { createUpdateTopicRequestDto: components.CreateUpdateTopicRequestDto; @@ -24,8 +31,20 @@ export type TopicsCreateMutationVariables = { options?: RequestOptions; }; -export type TopicsCreateMutationData = - operations.TopicsControllerUpsertTopicResponse; +export type TopicsCreateMutationData = operations.TopicsControllerUpsertTopicResponse; + +export type TopicsCreateMutationError = + | errors.TopicResponseDto + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create a topic @@ -34,16 +53,8 @@ export type TopicsCreateMutationData = * Creates a new topic if it does not exist, or updates an existing topic if it already exists. Use ?failIfExists=true to prevent updates. */ export function useTopicsCreateMutation( - options?: MutationHookOptions< - TopicsCreateMutationData, - Error, - TopicsCreateMutationVariables - >, -): UseMutationResult< - TopicsCreateMutationData, - Error, - TopicsCreateMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildTopicsCreateMutation(client, options), @@ -52,17 +63,15 @@ export function useTopicsCreateMutation( } export function mutationKeyTopicsCreate(): MutationKey { - return ["@novu/api", "Topics", "create"]; + return ['@novu/api', 'Topics', 'create']; } export function buildTopicsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TopicsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: TopicsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyTopicsCreate(), @@ -78,19 +87,12 @@ export function buildTopicsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(topicsCreate( - client$, - createUpdateTopicRequestDto, - failIfExists, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + topicsCreate(client$, createUpdateTopicRequestDto, failIfExists, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/topicsDelete.ts b/libs/internal-sdk/src/react-query/topicsDelete.ts index 3128726c4fe..0a0e1ddcef7 100644 --- a/libs/internal-sdk/src/react-query/topicsDelete.ts +++ b/libs/internal-sdk/src/react-query/topicsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { topicsDelete } from '../funcs/topicsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { topicsDelete } from "../funcs/topicsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TopicsDeleteMutationVariables = { topicKey: string; @@ -22,8 +29,19 @@ export type TopicsDeleteMutationVariables = { options?: RequestOptions; }; -export type TopicsDeleteMutationData = - operations.TopicsControllerDeleteTopicResponse; +export type TopicsDeleteMutationData = operations.TopicsControllerDeleteTopicResponse; + +export type TopicsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete a topic @@ -33,16 +51,8 @@ export type TopicsDeleteMutationData = * This action is irreversible and will remove all subscriptions to the topic. */ export function useTopicsDeleteMutation( - options?: MutationHookOptions< - TopicsDeleteMutationData, - Error, - TopicsDeleteMutationVariables - >, -): UseMutationResult< - TopicsDeleteMutationData, - Error, - TopicsDeleteMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildTopicsDeleteMutation(client, options), @@ -51,17 +61,15 @@ export function useTopicsDeleteMutation( } export function mutationKeyTopicsDelete(): MutationKey { - return ["@novu/api", "Topics", "delete"]; + return ['@novu/api', 'Topics', 'delete']; } export function buildTopicsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TopicsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: TopicsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyTopicsDelete(), @@ -76,18 +84,10 @@ export function buildTopicsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(topicsDelete( - client$, - topicKey, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(topicsDelete(client$, topicKey, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/topicsGet.ts b/libs/internal-sdk/src/react-query/topicsGet.ts index ad6415012a2..5051b323a43 100644 --- a/libs/internal-sdk/src/react-query/topicsGet.ts +++ b/libs/internal-sdk/src/react-query/topicsGet.ts @@ -5,29 +5,38 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; -import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - buildTopicsGetQuery, - prefetchTopicsGet, - queryKeyTopicsGet, - TopicsGetQueryData, -} from "./topicsGet.core.js"; -export { - buildTopicsGetQuery, - prefetchTopicsGet, - queryKeyTopicsGet, - type TopicsGetQueryData, -}; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; +import { buildTopicsGetQuery, prefetchTopicsGet, queryKeyTopicsGet, TopicsGetQueryData } from './topicsGet.core.js'; +export { buildTopicsGetQuery, prefetchTopicsGet, queryKeyTopicsGet, type TopicsGetQueryData }; + +export type TopicsGetQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Retrieve a topic @@ -38,16 +47,11 @@ export { export function useTopicsGet( topicKey: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildTopicsGetQuery( - client, - topicKey, - idempotencyKey, - options, - ), + ...buildTopicsGetQuery(client, topicKey, idempotencyKey, options), ...options, }); } @@ -61,27 +65,19 @@ export function useTopicsGet( export function useTopicsGetSuspense( topicKey: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildTopicsGetQuery( - client, - topicKey, - idempotencyKey, - options, - ), + ...buildTopicsGetQuery(client, topicKey, idempotencyKey, options), ...options, }); } export function setTopicsGetData( client: QueryClient, - queryKeyBase: [ - topicKey: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: TopicsGetQueryData, + queryKeyBase: [topicKey: string, parameters: { idempotencyKey?: string | undefined }], + data: TopicsGetQueryData ): TopicsGetQueryData | undefined { const key = queryKeyTopicsGet(...queryKeyBase); @@ -90,23 +86,21 @@ export function setTopicsGetData( export function invalidateTopicsGet( client: QueryClient, - queryKeyBase: TupleToPrefixes< - [topicKey: string, parameters: { idempotencyKey?: string | undefined }] - >, - filters?: Omit, + queryKeyBase: TupleToPrefixes<[topicKey: string, parameters: { idempotencyKey?: string | undefined }]>, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Topics", "get", ...queryKeyBase], + queryKey: ['@novu/api', 'Topics', 'get', ...queryKeyBase], }); } export function invalidateAllTopicsGet( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Topics", "get"], + queryKey: ['@novu/api', 'Topics', 'get'], }); } diff --git a/libs/internal-sdk/src/react-query/topicsList.ts b/libs/internal-sdk/src/react-query/topicsList.ts index 337b26e5bea..8d2439d105b 100644 --- a/libs/internal-sdk/src/react-query/topicsList.ts +++ b/libs/internal-sdk/src/react-query/topicsList.ts @@ -5,30 +5,44 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildTopicsListQuery, prefetchTopicsList, queryKeyTopicsList, TopicsListQueryData, -} from "./topicsList.core.js"; -export { - buildTopicsListQuery, - prefetchTopicsList, - queryKeyTopicsList, - type TopicsListQueryData, -}; +} from './topicsList.core.js'; +export { buildTopicsListQuery, prefetchTopicsList, queryKeyTopicsList, type TopicsListQueryData }; + +export type TopicsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * List all topics @@ -40,15 +54,11 @@ export { */ export function useTopicsList( request: operations.TopicsControllerListTopicsRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildTopicsListQuery( - client, - request, - options, - ), + ...buildTopicsListQuery(client, request, options), ...options, }); } @@ -63,15 +73,11 @@ export function useTopicsList( */ export function useTopicsListSuspense( request: operations.TopicsControllerListTopicsRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildTopicsListQuery( - client, - request, - options, - ), + ...buildTopicsListQuery(client, request, options), ...options, }); } @@ -83,9 +89,7 @@ export function setTopicsListData( after?: string | undefined; before?: string | undefined; limit?: number | undefined; - orderDirection?: - | operations.TopicsControllerListTopicsQueryParamOrderDirection - | undefined; + orderDirection?: operations.TopicsControllerListTopicsQueryParamOrderDirection | undefined; orderBy?: string | undefined; includeCursor?: boolean | undefined; key?: string | undefined; @@ -93,7 +97,7 @@ export function setTopicsListData( idempotencyKey?: string | undefined; }, ], - data: TopicsListQueryData, + data: TopicsListQueryData ): TopicsListQueryData | undefined { const key = queryKeyTopicsList(...queryKeyBase); @@ -103,34 +107,34 @@ export function setTopicsListData( export function invalidateTopicsList( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - after?: string | undefined; - before?: string | undefined; - limit?: number | undefined; - orderDirection?: - | operations.TopicsControllerListTopicsQueryParamOrderDirection - | undefined; - orderBy?: string | undefined; - includeCursor?: boolean | undefined; - key?: string | undefined; - name?: string | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + after?: string | undefined; + before?: string | undefined; + limit?: number | undefined; + orderDirection?: operations.TopicsControllerListTopicsQueryParamOrderDirection | undefined; + orderBy?: string | undefined; + includeCursor?: boolean | undefined; + key?: string | undefined; + name?: string | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Topics", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Topics', 'list', ...queryKeyBase], }); } export function invalidateAllTopicsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Topics", "list"], + queryKey: ['@novu/api', 'Topics', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/topicsSubscribersRetrieve.ts b/libs/internal-sdk/src/react-query/topicsSubscribersRetrieve.ts index 9f2340b0e48..6ec5d81b8cb 100644 --- a/libs/internal-sdk/src/react-query/topicsSubscribersRetrieve.ts +++ b/libs/internal-sdk/src/react-query/topicsSubscribersRetrieve.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildTopicsSubscribersRetrieveQuery, prefetchTopicsSubscribersRetrieve, queryKeyTopicsSubscribersRetrieve, TopicsSubscribersRetrieveQueryData, -} from "./topicsSubscribersRetrieve.core.js"; +} from './topicsSubscribersRetrieve.core.js'; export { buildTopicsSubscribersRetrieveQuery, prefetchTopicsSubscribersRetrieve, @@ -29,6 +36,18 @@ export { type TopicsSubscribersRetrieveQueryData, }; +export type TopicsSubscribersRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Check topic subscriber * @@ -39,17 +58,11 @@ export function useTopicsSubscribersRetrieve( topicKey: string, externalSubscriberId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildTopicsSubscribersRetrieveQuery( - client, - topicKey, - externalSubscriberId, - idempotencyKey, - options, - ), + ...buildTopicsSubscribersRetrieveQuery(client, topicKey, externalSubscriberId, idempotencyKey, options), ...options, }); } @@ -64,29 +77,19 @@ export function useTopicsSubscribersRetrieveSuspense( topicKey: string, externalSubscriberId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildTopicsSubscribersRetrieveQuery( - client, - topicKey, - externalSubscriberId, - idempotencyKey, - options, - ), + ...buildTopicsSubscribersRetrieveQuery(client, topicKey, externalSubscriberId, idempotencyKey, options), ...options, }); } export function setTopicsSubscribersRetrieveData( client: QueryClient, - queryKeyBase: [ - topicKey: string, - externalSubscriberId: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: TopicsSubscribersRetrieveQueryData, + queryKeyBase: [topicKey: string, externalSubscriberId: string, parameters: { idempotencyKey?: string | undefined }], + data: TopicsSubscribersRetrieveQueryData ): TopicsSubscribersRetrieveQueryData | undefined { const key = queryKeyTopicsSubscribersRetrieve(...queryKeyBase); @@ -96,26 +99,22 @@ export function setTopicsSubscribersRetrieveData( export function invalidateTopicsSubscribersRetrieve( client: QueryClient, queryKeyBase: TupleToPrefixes< - [ - topicKey: string, - externalSubscriberId: string, - parameters: { idempotencyKey?: string | undefined }, - ] + [topicKey: string, externalSubscriberId: string, parameters: { idempotencyKey?: string | undefined }] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Subscribers", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Subscribers', 'retrieve', ...queryKeyBase], }); } export function invalidateAllTopicsSubscribersRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Subscribers", "retrieve"], + queryKey: ['@novu/api', 'Subscribers', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/topicsSubscriptionsCreate.ts b/libs/internal-sdk/src/react-query/topicsSubscriptionsCreate.ts index 28e3cb8ca96..4042583c0fe 100644 --- a/libs/internal-sdk/src/react-query/topicsSubscriptionsCreate.ts +++ b/libs/internal-sdk/src/react-query/topicsSubscriptionsCreate.ts @@ -2,31 +2,48 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { topicsSubscriptionsCreate } from '../funcs/topicsSubscriptionsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { topicsSubscriptionsCreate } from "../funcs/topicsSubscriptionsCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TopicsSubscriptionsCreateMutationVariables = { - createTopicSubscriptionsRequestDto: - components.CreateTopicSubscriptionsRequestDto; + createTopicSubscriptionsRequestDto: components.CreateTopicSubscriptionsRequestDto; topicKey: string; idempotencyKey?: string | undefined; options?: RequestOptions; }; -export type TopicsSubscriptionsCreateMutationData = - operations.TopicsControllerCreateTopicSubscriptionsResponse; +export type TopicsSubscriptionsCreateMutationData = operations.TopicsControllerCreateTopicSubscriptionsResponse; + +export type TopicsSubscriptionsCreateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create topic subscriptions @@ -38,12 +55,12 @@ export type TopicsSubscriptionsCreateMutationData = export function useTopicsSubscriptionsCreateMutation( options?: MutationHookOptions< TopicsSubscriptionsCreateMutationData, - Error, + TopicsSubscriptionsCreateMutationError, TopicsSubscriptionsCreateMutationVariables - >, + > ): UseMutationResult< TopicsSubscriptionsCreateMutationData, - Error, + TopicsSubscriptionsCreateMutationError, TopicsSubscriptionsCreateMutationVariables > { const client = useNovuContext(); @@ -54,17 +71,15 @@ export function useTopicsSubscriptionsCreateMutation( } export function mutationKeyTopicsSubscriptionsCreate(): MutationKey { - return ["@novu/api", "Subscriptions", "create"]; + return ['@novu/api', 'Subscriptions', 'create']; } export function buildTopicsSubscriptionsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TopicsSubscriptionsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: TopicsSubscriptionsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyTopicsSubscriptionsCreate(), @@ -80,19 +95,12 @@ export function buildTopicsSubscriptionsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(topicsSubscriptionsCreate( - client$, - createTopicSubscriptionsRequestDto, - topicKey, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + topicsSubscriptionsCreate(client$, createTopicSubscriptionsRequestDto, topicKey, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/topicsSubscriptionsDelete.ts b/libs/internal-sdk/src/react-query/topicsSubscriptionsDelete.ts index c267ff5790b..f1d270c20b2 100644 --- a/libs/internal-sdk/src/react-query/topicsSubscriptionsDelete.ts +++ b/libs/internal-sdk/src/react-query/topicsSubscriptionsDelete.ts @@ -2,31 +2,48 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { topicsSubscriptionsDelete } from '../funcs/topicsSubscriptionsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { topicsSubscriptionsDelete } from "../funcs/topicsSubscriptionsDelete.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TopicsSubscriptionsDeleteMutationVariables = { - deleteTopicSubscriptionsRequestDto: - components.DeleteTopicSubscriptionsRequestDto; + deleteTopicSubscriptionsRequestDto: components.DeleteTopicSubscriptionsRequestDto; topicKey: string; idempotencyKey?: string | undefined; options?: RequestOptions; }; -export type TopicsSubscriptionsDeleteMutationData = - operations.TopicsControllerDeleteTopicSubscriptionsResponse; +export type TopicsSubscriptionsDeleteMutationData = operations.TopicsControllerDeleteTopicSubscriptionsResponse; + +export type TopicsSubscriptionsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete topic subscriptions @@ -37,12 +54,12 @@ export type TopicsSubscriptionsDeleteMutationData = export function useTopicsSubscriptionsDeleteMutation( options?: MutationHookOptions< TopicsSubscriptionsDeleteMutationData, - Error, + TopicsSubscriptionsDeleteMutationError, TopicsSubscriptionsDeleteMutationVariables - >, + > ): UseMutationResult< TopicsSubscriptionsDeleteMutationData, - Error, + TopicsSubscriptionsDeleteMutationError, TopicsSubscriptionsDeleteMutationVariables > { const client = useNovuContext(); @@ -53,17 +70,15 @@ export function useTopicsSubscriptionsDeleteMutation( } export function mutationKeyTopicsSubscriptionsDelete(): MutationKey { - return ["@novu/api", "Subscriptions", "delete"]; + return ['@novu/api', 'Subscriptions', 'delete']; } export function buildTopicsSubscriptionsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TopicsSubscriptionsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: TopicsSubscriptionsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyTopicsSubscriptionsDelete(), @@ -79,19 +94,12 @@ export function buildTopicsSubscriptionsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(topicsSubscriptionsDelete( - client$, - deleteTopicSubscriptionsRequestDto, - topicKey, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync( + topicsSubscriptionsDelete(client$, deleteTopicSubscriptionsRequestDto, topicKey, idempotencyKey, mergedOptions) + ); }, }; } diff --git a/libs/internal-sdk/src/react-query/topicsSubscriptionsGetSubscription.ts b/libs/internal-sdk/src/react-query/topicsSubscriptionsGetSubscription.ts index 33299d2a8ca..8f765ce1a75 100644 --- a/libs/internal-sdk/src/react-query/topicsSubscriptionsGetSubscription.ts +++ b/libs/internal-sdk/src/react-query/topicsSubscriptionsGetSubscription.ts @@ -10,6 +10,17 @@ import { useQuery, useSuspenseQuery, } from '@tanstack/react-query'; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; import { useNovuContext } from './_context.js'; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { @@ -25,6 +36,18 @@ export { type TopicsSubscriptionsGetSubscriptionQueryData, }; +export type TopicsSubscriptionsGetSubscriptionQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve a topic subscription * @@ -35,8 +58,8 @@ export function useTopicsSubscriptionsGetSubscription( topicKey: string, identifier: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ ...buildTopicsSubscriptionsGetSubscriptionQuery(client, topicKey, identifier, idempotencyKey, options), @@ -54,8 +77,11 @@ export function useTopicsSubscriptionsGetSubscriptionSuspense( topicKey: string, identifier: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions< + TopicsSubscriptionsGetSubscriptionQueryData, + TopicsSubscriptionsGetSubscriptionQueryError + > +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ ...buildTopicsSubscriptionsGetSubscriptionQuery(client, topicKey, identifier, idempotencyKey, options), diff --git a/libs/internal-sdk/src/react-query/topicsSubscriptionsList.ts b/libs/internal-sdk/src/react-query/topicsSubscriptionsList.ts index 2f5c325c8e7..f502de36fd0 100644 --- a/libs/internal-sdk/src/react-query/topicsSubscriptionsList.ts +++ b/libs/internal-sdk/src/react-query/topicsSubscriptionsList.ts @@ -10,6 +10,17 @@ import { useQuery, useSuspenseQuery, } from '@tanstack/react-query'; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; import * as operations from '../models/operations/index.js'; import { useNovuContext } from './_context.js'; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; @@ -26,6 +37,18 @@ export { type TopicsSubscriptionsListQueryData, }; +export type TopicsSubscriptionsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * List topic subscriptions * @@ -35,8 +58,8 @@ export { */ export function useTopicsSubscriptionsList( request: operations.TopicsControllerListTopicSubscriptionsRequest, - options?: QueryHookOptions -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ ...buildTopicsSubscriptionsListQuery(client, request, options), @@ -53,8 +76,8 @@ export function useTopicsSubscriptionsList( */ export function useTopicsSubscriptionsListSuspense( request: operations.TopicsControllerListTopicSubscriptionsRequest, - options?: SuspenseQueryHookOptions -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ ...buildTopicsSubscriptionsListQuery(client, request, options), diff --git a/libs/internal-sdk/src/react-query/topicsSubscriptionsUpdate.ts b/libs/internal-sdk/src/react-query/topicsSubscriptionsUpdate.ts index e2b039e22d0..cfbfc5f9cf1 100644 --- a/libs/internal-sdk/src/react-query/topicsSubscriptionsUpdate.ts +++ b/libs/internal-sdk/src/react-query/topicsSubscriptionsUpdate.ts @@ -2,27 +2,45 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { topicsSubscriptionsUpdate } from '../funcs/topicsSubscriptionsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { topicsSubscriptionsUpdate } from "../funcs/topicsSubscriptionsUpdate.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TopicsSubscriptionsUpdateMutationVariables = { request: operations.TopicsControllerUpdateTopicSubscriptionRequest; options?: RequestOptions; }; -export type TopicsSubscriptionsUpdateMutationData = - operations.TopicsControllerUpdateTopicSubscriptionResponse; +export type TopicsSubscriptionsUpdateMutationData = operations.TopicsControllerUpdateTopicSubscriptionResponse; + +export type TopicsSubscriptionsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update a topic subscription @@ -33,12 +51,12 @@ export type TopicsSubscriptionsUpdateMutationData = export function useTopicsSubscriptionsUpdateMutation( options?: MutationHookOptions< TopicsSubscriptionsUpdateMutationData, - Error, + TopicsSubscriptionsUpdateMutationError, TopicsSubscriptionsUpdateMutationVariables - >, + > ): UseMutationResult< TopicsSubscriptionsUpdateMutationData, - Error, + TopicsSubscriptionsUpdateMutationError, TopicsSubscriptionsUpdateMutationVariables > { const client = useNovuContext(); @@ -49,17 +67,15 @@ export function useTopicsSubscriptionsUpdateMutation( } export function mutationKeyTopicsSubscriptionsUpdate(): MutationKey { - return ["@novu/api", "Subscriptions", "update"]; + return ['@novu/api', 'Subscriptions', 'update']; } export function buildTopicsSubscriptionsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TopicsSubscriptionsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: TopicsSubscriptionsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyTopicsSubscriptionsUpdate(), @@ -73,17 +89,10 @@ export function buildTopicsSubscriptionsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(topicsSubscriptionsUpdate( - client$, - request, - mergedOptions, - )); + return unwrapAsync(topicsSubscriptionsUpdate(client$, request, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/topicsUpdate.ts b/libs/internal-sdk/src/react-query/topicsUpdate.ts index 3f5aed46eb8..136edaa8fa2 100644 --- a/libs/internal-sdk/src/react-query/topicsUpdate.ts +++ b/libs/internal-sdk/src/react-query/topicsUpdate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { topicsUpdate } from '../funcs/topicsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { topicsUpdate } from "../funcs/topicsUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TopicsUpdateMutationVariables = { updateTopicRequestDto: components.UpdateTopicRequestDto; @@ -24,8 +31,19 @@ export type TopicsUpdateMutationVariables = { options?: RequestOptions; }; -export type TopicsUpdateMutationData = - operations.TopicsControllerUpdateTopicResponse; +export type TopicsUpdateMutationData = operations.TopicsControllerUpdateTopicResponse; + +export type TopicsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update a topic @@ -34,16 +52,8 @@ export type TopicsUpdateMutationData = * Update a topic name by its unique key identifier **topicKey** */ export function useTopicsUpdateMutation( - options?: MutationHookOptions< - TopicsUpdateMutationData, - Error, - TopicsUpdateMutationVariables - >, -): UseMutationResult< - TopicsUpdateMutationData, - Error, - TopicsUpdateMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildTopicsUpdateMutation(client, options), @@ -52,17 +62,15 @@ export function useTopicsUpdateMutation( } export function mutationKeyTopicsUpdate(): MutationKey { - return ["@novu/api", "Topics", "update"]; + return ['@novu/api', 'Topics', 'update']; } export function buildTopicsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TopicsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: TopicsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyTopicsUpdate(), @@ -78,19 +86,10 @@ export function buildTopicsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(topicsUpdate( - client$, - updateTopicRequestDto, - topicKey, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(topicsUpdate(client$, updateTopicRequestDto, topicKey, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/translationsCreate.ts b/libs/internal-sdk/src/react-query/translationsCreate.ts index 7b31997b27b..ef6d6ae707f 100644 --- a/libs/internal-sdk/src/react-query/translationsCreate.ts +++ b/libs/internal-sdk/src/react-query/translationsCreate.ts @@ -2,19 +2,25 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { translationsCreate } from '../funcs/translationsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { translationsCreate } from "../funcs/translationsCreate.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TranslationsCreateMutationVariables = { createTranslationRequestDto: components.CreateTranslationRequestDto; @@ -24,6 +30,16 @@ export type TranslationsCreateMutationVariables = { export type TranslationsCreateMutationData = components.TranslationResponseDto; +export type TranslationsCreateMutationError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Create a translation * @@ -33,12 +49,12 @@ export type TranslationsCreateMutationData = components.TranslationResponseDto; export function useTranslationsCreateMutation( options?: MutationHookOptions< TranslationsCreateMutationData, - Error, + TranslationsCreateMutationError, TranslationsCreateMutationVariables - >, + > ): UseMutationResult< TranslationsCreateMutationData, - Error, + TranslationsCreateMutationError, TranslationsCreateMutationVariables > { const client = useNovuContext(); @@ -49,17 +65,15 @@ export function useTranslationsCreateMutation( } export function mutationKeyTranslationsCreate(): MutationKey { - return ["@novu/api", "Translations", "create"]; + return ['@novu/api', 'Translations', 'create']; } export function buildTranslationsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TranslationsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: TranslationsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyTranslationsCreate(), @@ -74,18 +88,10 @@ export function buildTranslationsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(translationsCreate( - client$, - createTranslationRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(translationsCreate(client$, createTranslationRequestDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/translationsDelete.ts b/libs/internal-sdk/src/react-query/translationsDelete.ts index a28ae297ad6..cb4665622e4 100644 --- a/libs/internal-sdk/src/react-query/translationsDelete.ts +++ b/libs/internal-sdk/src/react-query/translationsDelete.ts @@ -2,19 +2,25 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { translationsDelete } from '../funcs/translationsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { translationsDelete } from "../funcs/translationsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TranslationsDeleteMutationVariables = { request: operations.TranslationControllerDeleteTranslationEndpointRequest; @@ -23,6 +29,16 @@ export type TranslationsDeleteMutationVariables = { export type TranslationsDeleteMutationData = void; +export type TranslationsDeleteMutationError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Delete a translation * @@ -32,12 +48,12 @@ export type TranslationsDeleteMutationData = void; export function useTranslationsDeleteMutation( options?: MutationHookOptions< TranslationsDeleteMutationData, - Error, + TranslationsDeleteMutationError, TranslationsDeleteMutationVariables - >, + > ): UseMutationResult< TranslationsDeleteMutationData, - Error, + TranslationsDeleteMutationError, TranslationsDeleteMutationVariables > { const client = useNovuContext(); @@ -48,41 +64,29 @@ export function useTranslationsDeleteMutation( } export function mutationKeyTranslationsDelete(): MutationKey { - return ["@novu/api", "Translations", "delete"]; + return ['@novu/api', 'Translations', 'delete']; } export function buildTranslationsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TranslationsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: TranslationsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyTranslationsDelete(), - mutationFn: function translationsDeleteMutationFn({ - request, - options, - }): Promise { + mutationFn: function translationsDeleteMutationFn({ request, options }): Promise { const mergedOptions = { ...hookOptions, ...options, fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(translationsDelete( - client$, - request, - mergedOptions, - )); + return unwrapAsync(translationsDelete(client$, request, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/translationsGroupsDelete.ts b/libs/internal-sdk/src/react-query/translationsGroupsDelete.ts index 65a6d4ef9a3..9b6d87241e3 100644 --- a/libs/internal-sdk/src/react-query/translationsGroupsDelete.ts +++ b/libs/internal-sdk/src/react-query/translationsGroupsDelete.ts @@ -2,23 +2,28 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { translationsGroupsDelete } from '../funcs/translationsGroupsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { translationsGroupsDelete } from "../funcs/translationsGroupsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TranslationsGroupsDeleteMutationVariables = { - resourceType: - operations.TranslationControllerDeleteTranslationGroupEndpointPathParamResourceType; + resourceType: operations.TranslationControllerDeleteTranslationGroupEndpointPathParamResourceType; resourceId: string; idempotencyKey?: string | undefined; options?: RequestOptions; @@ -26,6 +31,16 @@ export type TranslationsGroupsDeleteMutationVariables = { export type TranslationsGroupsDeleteMutationData = void; +export type TranslationsGroupsDeleteMutationError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Delete a translation group * @@ -35,12 +50,12 @@ export type TranslationsGroupsDeleteMutationData = void; export function useTranslationsGroupsDeleteMutation( options?: MutationHookOptions< TranslationsGroupsDeleteMutationData, - Error, + TranslationsGroupsDeleteMutationError, TranslationsGroupsDeleteMutationVariables - >, + > ): UseMutationResult< TranslationsGroupsDeleteMutationData, - Error, + TranslationsGroupsDeleteMutationError, TranslationsGroupsDeleteMutationVariables > { const client = useNovuContext(); @@ -51,17 +66,15 @@ export function useTranslationsGroupsDeleteMutation( } export function mutationKeyTranslationsGroupsDelete(): MutationKey { - return ["@novu/api", "Groups", "delete"]; + return ['@novu/api', 'Groups', 'delete']; } export function buildTranslationsGroupsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TranslationsGroupsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: TranslationsGroupsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyTranslationsGroupsDelete(), @@ -77,19 +90,10 @@ export function buildTranslationsGroupsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(translationsGroupsDelete( - client$, - resourceType, - resourceId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(translationsGroupsDelete(client$, resourceType, resourceId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/translationsGroupsRetrieve.ts b/libs/internal-sdk/src/react-query/translationsGroupsRetrieve.ts index 55f2c0bf3ee..509d0eb8ee0 100644 --- a/libs/internal-sdk/src/react-query/translationsGroupsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/translationsGroupsRetrieve.ts @@ -5,24 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildTranslationsGroupsRetrieveQuery, prefetchTranslationsGroupsRetrieve, queryKeyTranslationsGroupsRetrieve, TranslationsGroupsRetrieveQueryData, -} from "./translationsGroupsRetrieve.core.js"; +} from './translationsGroupsRetrieve.core.js'; export { buildTranslationsGroupsRetrieveQuery, prefetchTranslationsGroupsRetrieve, @@ -30,6 +36,16 @@ export { type TranslationsGroupsRetrieveQueryData, }; +export type TranslationsGroupsRetrieveQueryError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve a translation group * @@ -37,21 +53,14 @@ export { * Retrieves a single translation group by resource type (workflow, layout) and resource ID (workflowId, layoutId) */ export function useTranslationsGroupsRetrieve( - resourceType: - operations.TranslationControllerGetTranslationGroupEndpointPathParamResourceType, + resourceType: operations.TranslationControllerGetTranslationGroupEndpointPathParamResourceType, resourceId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildTranslationsGroupsRetrieveQuery( - client, - resourceType, - resourceId, - idempotencyKey, - options, - ), + ...buildTranslationsGroupsRetrieveQuery(client, resourceType, resourceId, idempotencyKey, options), ...options, }); } @@ -63,21 +72,14 @@ export function useTranslationsGroupsRetrieve( * Retrieves a single translation group by resource type (workflow, layout) and resource ID (workflowId, layoutId) */ export function useTranslationsGroupsRetrieveSuspense( - resourceType: - operations.TranslationControllerGetTranslationGroupEndpointPathParamResourceType, + resourceType: operations.TranslationControllerGetTranslationGroupEndpointPathParamResourceType, resourceId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildTranslationsGroupsRetrieveQuery( - client, - resourceType, - resourceId, - idempotencyKey, - options, - ), + ...buildTranslationsGroupsRetrieveQuery(client, resourceType, resourceId, idempotencyKey, options), ...options, }); } @@ -85,12 +87,11 @@ export function useTranslationsGroupsRetrieveSuspense( export function setTranslationsGroupsRetrieveData( client: QueryClient, queryKeyBase: [ - resourceType: - operations.TranslationControllerGetTranslationGroupEndpointPathParamResourceType, + resourceType: operations.TranslationControllerGetTranslationGroupEndpointPathParamResourceType, resourceId: string, parameters: { idempotencyKey?: string | undefined }, ], - data: TranslationsGroupsRetrieveQueryData, + data: TranslationsGroupsRetrieveQueryData ): TranslationsGroupsRetrieveQueryData | undefined { const key = queryKeyTranslationsGroupsRetrieve(...queryKeyBase); @@ -101,26 +102,25 @@ export function invalidateTranslationsGroupsRetrieve( client: QueryClient, queryKeyBase: TupleToPrefixes< [ - resourceType: - operations.TranslationControllerGetTranslationGroupEndpointPathParamResourceType, + resourceType: operations.TranslationControllerGetTranslationGroupEndpointPathParamResourceType, resourceId: string, parameters: { idempotencyKey?: string | undefined }, ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Groups", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Groups', 'retrieve', ...queryKeyBase], }); } export function invalidateAllTranslationsGroupsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Groups", "retrieve"], + queryKey: ['@novu/api', 'Groups', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/translationsMasterImport.ts b/libs/internal-sdk/src/react-query/translationsMasterImport.ts index f1a2359e283..48f0739ef85 100644 --- a/libs/internal-sdk/src/react-query/translationsMasterImport.ts +++ b/libs/internal-sdk/src/react-query/translationsMasterImport.ts @@ -2,19 +2,25 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { translationsMasterImport } from '../funcs/translationsMasterImport.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { translationsMasterImport } from "../funcs/translationsMasterImport.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TranslationsMasterImportMutationVariables = { importMasterJsonRequestDto: components.ImportMasterJsonRequestDto; @@ -22,8 +28,17 @@ export type TranslationsMasterImportMutationVariables = { options?: RequestOptions; }; -export type TranslationsMasterImportMutationData = - components.ImportMasterJsonResponseDto; +export type TranslationsMasterImportMutationData = components.ImportMasterJsonResponseDto; + +export type TranslationsMasterImportMutationError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Import master translations JSON @@ -34,12 +49,12 @@ export type TranslationsMasterImportMutationData = export function useTranslationsMasterImportMutation( options?: MutationHookOptions< TranslationsMasterImportMutationData, - Error, + TranslationsMasterImportMutationError, TranslationsMasterImportMutationVariables - >, + > ): UseMutationResult< TranslationsMasterImportMutationData, - Error, + TranslationsMasterImportMutationError, TranslationsMasterImportMutationVariables > { const client = useNovuContext(); @@ -50,17 +65,15 @@ export function useTranslationsMasterImportMutation( } export function mutationKeyTranslationsMasterImport(): MutationKey { - return ["@novu/api", "master", "import"]; + return ['@novu/api', 'master', 'import']; } export function buildTranslationsMasterImportMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TranslationsMasterImportMutationVariables, - ) => Promise; + mutationFn: (variables: TranslationsMasterImportMutationVariables) => Promise; } { return { mutationKey: mutationKeyTranslationsMasterImport(), @@ -75,18 +88,10 @@ export function buildTranslationsMasterImportMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(translationsMasterImport( - client$, - importMasterJsonRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(translationsMasterImport(client$, importMasterJsonRequestDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/translationsMasterRetrieve.ts b/libs/internal-sdk/src/react-query/translationsMasterRetrieve.ts index bfe131363eb..c786f277486 100644 --- a/libs/internal-sdk/src/react-query/translationsMasterRetrieve.ts +++ b/libs/internal-sdk/src/react-query/translationsMasterRetrieve.ts @@ -5,23 +5,29 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildTranslationsMasterRetrieveQuery, prefetchTranslationsMasterRetrieve, queryKeyTranslationsMasterRetrieve, TranslationsMasterRetrieveQueryData, -} from "./translationsMasterRetrieve.core.js"; +} from './translationsMasterRetrieve.core.js'; export { buildTranslationsMasterRetrieveQuery, prefetchTranslationsMasterRetrieve, @@ -29,6 +35,16 @@ export { type TranslationsMasterRetrieveQueryData, }; +export type TranslationsMasterRetrieveQueryError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve master translations JSON * @@ -38,16 +54,11 @@ export { export function useTranslationsMasterRetrieve( locale?: string | undefined, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildTranslationsMasterRetrieveQuery( - client, - locale, - idempotencyKey, - options, - ), + ...buildTranslationsMasterRetrieveQuery(client, locale, idempotencyKey, options), ...options, }); } @@ -61,16 +72,11 @@ export function useTranslationsMasterRetrieve( export function useTranslationsMasterRetrieveSuspense( locale?: string | undefined, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildTranslationsMasterRetrieveQuery( - client, - locale, - idempotencyKey, - options, - ), + ...buildTranslationsMasterRetrieveQuery(client, locale, idempotencyKey, options), ...options, }); } @@ -83,7 +89,7 @@ export function setTranslationsMasterRetrieveData( idempotencyKey?: string | undefined; }, ], - data: TranslationsMasterRetrieveQueryData, + data: TranslationsMasterRetrieveQueryData ): TranslationsMasterRetrieveQueryData | undefined { const key = queryKeyTranslationsMasterRetrieve(...queryKeyBase); @@ -93,25 +99,27 @@ export function setTranslationsMasterRetrieveData( export function invalidateTranslationsMasterRetrieve( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - locale?: string | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + locale?: string | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "master", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'master', 'retrieve', ...queryKeyBase], }); } export function invalidateAllTranslationsMasterRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "master", "retrieve"], + queryKey: ['@novu/api', 'master', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/translationsMasterUpload.ts b/libs/internal-sdk/src/react-query/translationsMasterUpload.ts index 6b1f8bf7942..18228644248 100644 --- a/libs/internal-sdk/src/react-query/translationsMasterUpload.ts +++ b/libs/internal-sdk/src/react-query/translationsMasterUpload.ts @@ -2,30 +2,44 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { translationsMasterUpload } from '../funcs/translationsMasterUpload.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { translationsMasterUpload } from "../funcs/translationsMasterUpload.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TranslationsMasterUploadMutationVariables = { - requestBody: - operations.TranslationControllerUploadMasterJsonEndpointRequestBody; + requestBody: operations.TranslationControllerUploadMasterJsonEndpointRequestBody; idempotencyKey?: string | undefined; options?: RequestOptions; }; -export type TranslationsMasterUploadMutationData = - components.ImportMasterJsonResponseDto; +export type TranslationsMasterUploadMutationData = components.ImportMasterJsonResponseDto; + +export type TranslationsMasterUploadMutationError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Upload master translations JSON file @@ -36,12 +50,12 @@ export type TranslationsMasterUploadMutationData = export function useTranslationsMasterUploadMutation( options?: MutationHookOptions< TranslationsMasterUploadMutationData, - Error, + TranslationsMasterUploadMutationError, TranslationsMasterUploadMutationVariables - >, + > ): UseMutationResult< TranslationsMasterUploadMutationData, - Error, + TranslationsMasterUploadMutationError, TranslationsMasterUploadMutationVariables > { const client = useNovuContext(); @@ -52,17 +66,15 @@ export function useTranslationsMasterUploadMutation( } export function mutationKeyTranslationsMasterUpload(): MutationKey { - return ["@novu/api", "master", "upload"]; + return ['@novu/api', 'master', 'upload']; } export function buildTranslationsMasterUploadMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TranslationsMasterUploadMutationVariables, - ) => Promise; + mutationFn: (variables: TranslationsMasterUploadMutationVariables) => Promise; } { return { mutationKey: mutationKeyTranslationsMasterUpload(), @@ -77,18 +89,10 @@ export function buildTranslationsMasterUploadMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(translationsMasterUpload( - client$, - requestBody, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(translationsMasterUpload(client$, requestBody, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/translationsRetrieve.ts b/libs/internal-sdk/src/react-query/translationsRetrieve.ts index 2f2ad04d1a9..7b20feab10d 100644 --- a/libs/internal-sdk/src/react-query/translationsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/translationsRetrieve.ts @@ -5,24 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildTranslationsRetrieveQuery, prefetchTranslationsRetrieve, queryKeyTranslationsRetrieve, TranslationsRetrieveQueryData, -} from "./translationsRetrieve.core.js"; +} from './translationsRetrieve.core.js'; export { buildTranslationsRetrieveQuery, prefetchTranslationsRetrieve, @@ -30,6 +36,16 @@ export { type TranslationsRetrieveQueryData, }; +export type TranslationsRetrieveQueryError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve a translation * @@ -38,15 +54,11 @@ export { */ export function useTranslationsRetrieve( request: operations.TranslationControllerGetSingleTranslationRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildTranslationsRetrieveQuery( - client, - request, - options, - ), + ...buildTranslationsRetrieveQuery(client, request, options), ...options, }); } @@ -59,15 +71,11 @@ export function useTranslationsRetrieve( */ export function useTranslationsRetrieveSuspense( request: operations.TranslationControllerGetSingleTranslationRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildTranslationsRetrieveQuery( - client, - request, - options, - ), + ...buildTranslationsRetrieveQuery(client, request, options), ...options, }); } @@ -80,7 +88,7 @@ export function setTranslationsRetrieveData( locale: string, parameters: { idempotencyKey?: string | undefined }, ], - data: TranslationsRetrieveQueryData, + data: TranslationsRetrieveQueryData ): TranslationsRetrieveQueryData | undefined { const key = queryKeyTranslationsRetrieve(...queryKeyBase); @@ -97,20 +105,20 @@ export function invalidateTranslationsRetrieve( parameters: { idempotencyKey?: string | undefined }, ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Translations", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Translations', 'retrieve', ...queryKeyBase], }); } export function invalidateAllTranslationsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Translations", "retrieve"], + queryKey: ['@novu/api', 'Translations', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/translationsUpload.ts b/libs/internal-sdk/src/react-query/translationsUpload.ts index 3395e5b62ef..6d40fa0d2f6 100644 --- a/libs/internal-sdk/src/react-query/translationsUpload.ts +++ b/libs/internal-sdk/src/react-query/translationsUpload.ts @@ -2,30 +2,44 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { translationsUpload } from '../funcs/translationsUpload.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { translationsUpload } from "../funcs/translationsUpload.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TranslationsUploadMutationVariables = { - requestBody: - operations.TranslationControllerUploadTranslationFilesRequestBody; + requestBody: operations.TranslationControllerUploadTranslationFilesRequestBody; idempotencyKey?: string | undefined; options?: RequestOptions; }; -export type TranslationsUploadMutationData = - components.UploadTranslationsResponseDto; +export type TranslationsUploadMutationData = components.UploadTranslationsResponseDto; + +export type TranslationsUploadMutationError = + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Upload translation files @@ -36,12 +50,12 @@ export type TranslationsUploadMutationData = export function useTranslationsUploadMutation( options?: MutationHookOptions< TranslationsUploadMutationData, - Error, + TranslationsUploadMutationError, TranslationsUploadMutationVariables - >, + > ): UseMutationResult< TranslationsUploadMutationData, - Error, + TranslationsUploadMutationError, TranslationsUploadMutationVariables > { const client = useNovuContext(); @@ -52,17 +66,15 @@ export function useTranslationsUploadMutation( } export function mutationKeyTranslationsUpload(): MutationKey { - return ["@novu/api", "Translations", "upload"]; + return ['@novu/api', 'Translations', 'upload']; } export function buildTranslationsUploadMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TranslationsUploadMutationVariables, - ) => Promise; + mutationFn: (variables: TranslationsUploadMutationVariables) => Promise; } { return { mutationKey: mutationKeyTranslationsUpload(), @@ -77,18 +89,10 @@ export function buildTranslationsUploadMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(translationsUpload( - client$, - requestBody, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(translationsUpload(client$, requestBody, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/trigger.ts b/libs/internal-sdk/src/react-query/trigger.ts index 6d79e191600..6f881d91c2a 100644 --- a/libs/internal-sdk/src/react-query/trigger.ts +++ b/libs/internal-sdk/src/react-query/trigger.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { trigger } from '../funcs/trigger.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { trigger } from "../funcs/trigger.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TriggerMutationVariables = { triggerEventRequestDto: components.TriggerEventRequestDto; @@ -25,6 +32,19 @@ export type TriggerMutationVariables = { export type TriggerMutationData = operations.EventsControllerTriggerResponse; +export type TriggerMutationError = + | errors.PayloadValidationExceptionDto + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Trigger event * @@ -34,12 +54,8 @@ export type TriggerMutationData = operations.EventsControllerTriggerResponse; * To prevent duplicate triggers, you can optionally pass a **transactionId** in the request body. If the same **transactionId** is used again, the trigger will be ignored. The retention period depends on your billing tier. */ export function useTriggerMutation( - options?: MutationHookOptions< - TriggerMutationData, - Error, - TriggerMutationVariables - >, -): UseMutationResult { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildTriggerMutation(client, options), @@ -48,17 +64,15 @@ export function useTriggerMutation( } export function mutationKeyTrigger(): MutationKey { - return ["@novu/api", "trigger"]; + return ['@novu/api', 'trigger']; } export function buildTriggerMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TriggerMutationVariables, - ) => Promise; + mutationFn: (variables: TriggerMutationVariables) => Promise; } { return { mutationKey: mutationKeyTrigger(), @@ -73,18 +87,10 @@ export function buildTriggerMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(trigger( - client$, - triggerEventRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(trigger(client$, triggerEventRequestDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/triggerBroadcast.ts b/libs/internal-sdk/src/react-query/triggerBroadcast.ts index d82174de45f..28556b5177e 100644 --- a/libs/internal-sdk/src/react-query/triggerBroadcast.ts +++ b/libs/internal-sdk/src/react-query/triggerBroadcast.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { triggerBroadcast } from '../funcs/triggerBroadcast.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { triggerBroadcast } from "../funcs/triggerBroadcast.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TriggerBroadcastMutationVariables = { triggerEventToAllRequestDto: components.TriggerEventToAllRequestDto; @@ -23,8 +30,20 @@ export type TriggerBroadcastMutationVariables = { options?: RequestOptions; }; -export type TriggerBroadcastMutationData = - operations.EventsControllerBroadcastEventToAllResponse; +export type TriggerBroadcastMutationData = operations.EventsControllerBroadcastEventToAllResponse; + +export type TriggerBroadcastMutationError = + | errors.PayloadValidationExceptionDto + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Broadcast event to all @@ -36,14 +55,10 @@ export type TriggerBroadcastMutationData = export function useTriggerBroadcastMutation( options?: MutationHookOptions< TriggerBroadcastMutationData, - Error, + TriggerBroadcastMutationError, TriggerBroadcastMutationVariables - >, -): UseMutationResult< - TriggerBroadcastMutationData, - Error, - TriggerBroadcastMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildTriggerBroadcastMutation(client, options), @@ -52,17 +67,15 @@ export function useTriggerBroadcastMutation( } export function mutationKeyTriggerBroadcast(): MutationKey { - return ["@novu/api", "triggerBroadcast"]; + return ['@novu/api', 'triggerBroadcast']; } export function buildTriggerBroadcastMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TriggerBroadcastMutationVariables, - ) => Promise; + mutationFn: (variables: TriggerBroadcastMutationVariables) => Promise; } { return { mutationKey: mutationKeyTriggerBroadcast(), @@ -77,18 +90,10 @@ export function buildTriggerBroadcastMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(triggerBroadcast( - client$, - triggerEventToAllRequestDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(triggerBroadcast(client$, triggerEventToAllRequestDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/triggerBulk.ts b/libs/internal-sdk/src/react-query/triggerBulk.ts index ef611035597..462ba008625 100644 --- a/libs/internal-sdk/src/react-query/triggerBulk.ts +++ b/libs/internal-sdk/src/react-query/triggerBulk.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { triggerBulk } from '../funcs/triggerBulk.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { triggerBulk } from "../funcs/triggerBulk.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type TriggerBulkMutationVariables = { bulkTriggerEventDto: components.BulkTriggerEventDto; @@ -23,8 +30,20 @@ export type TriggerBulkMutationVariables = { options?: RequestOptions; }; -export type TriggerBulkMutationData = - operations.EventsControllerTriggerBulkResponse; +export type TriggerBulkMutationData = operations.EventsControllerTriggerBulkResponse; + +export type TriggerBulkMutationError = + | errors.PayloadValidationExceptionDto + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Bulk trigger event @@ -35,16 +54,8 @@ export type TriggerBulkMutationData = * The bulk API is limited to 100 events per request. */ export function useTriggerBulkMutation( - options?: MutationHookOptions< - TriggerBulkMutationData, - Error, - TriggerBulkMutationVariables - >, -): UseMutationResult< - TriggerBulkMutationData, - Error, - TriggerBulkMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildTriggerBulkMutation(client, options), @@ -53,17 +64,15 @@ export function useTriggerBulkMutation( } export function mutationKeyTriggerBulk(): MutationKey { - return ["@novu/api", "triggerBulk"]; + return ['@novu/api', 'triggerBulk']; } export function buildTriggerBulkMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: TriggerBulkMutationVariables, - ) => Promise; + mutationFn: (variables: TriggerBulkMutationVariables) => Promise; } { return { mutationKey: mutationKeyTriggerBulk(), @@ -78,18 +87,10 @@ export function buildTriggerBulkMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(triggerBulk( - client$, - bulkTriggerEventDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(triggerBulk(client$, bulkTriggerEventDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/workflowsCreate.ts b/libs/internal-sdk/src/react-query/workflowsCreate.ts index 9a3df7961ee..46797be4c81 100644 --- a/libs/internal-sdk/src/react-query/workflowsCreate.ts +++ b/libs/internal-sdk/src/react-query/workflowsCreate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { workflowsCreate } from '../funcs/workflowsCreate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { workflowsCreate } from "../funcs/workflowsCreate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type WorkflowsCreateMutationVariables = { createWorkflowDto: components.CreateWorkflowDto; @@ -23,8 +30,19 @@ export type WorkflowsCreateMutationVariables = { options?: RequestOptions; }; -export type WorkflowsCreateMutationData = - operations.WorkflowControllerCreateResponse; +export type WorkflowsCreateMutationData = operations.WorkflowControllerCreateResponse; + +export type WorkflowsCreateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Create a workflow @@ -35,14 +53,10 @@ export type WorkflowsCreateMutationData = export function useWorkflowsCreateMutation( options?: MutationHookOptions< WorkflowsCreateMutationData, - Error, + WorkflowsCreateMutationError, WorkflowsCreateMutationVariables - >, -): UseMutationResult< - WorkflowsCreateMutationData, - Error, - WorkflowsCreateMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildWorkflowsCreateMutation(client, options), @@ -51,17 +65,15 @@ export function useWorkflowsCreateMutation( } export function mutationKeyWorkflowsCreate(): MutationKey { - return ["@novu/api", "Workflows", "create"]; + return ['@novu/api', 'Workflows', 'create']; } export function buildWorkflowsCreateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: WorkflowsCreateMutationVariables, - ) => Promise; + mutationFn: (variables: WorkflowsCreateMutationVariables) => Promise; } { return { mutationKey: mutationKeyWorkflowsCreate(), @@ -76,18 +88,10 @@ export function buildWorkflowsCreateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(workflowsCreate( - client$, - createWorkflowDto, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(workflowsCreate(client$, createWorkflowDto, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/workflowsDelete.ts b/libs/internal-sdk/src/react-query/workflowsDelete.ts index c5b6abbf912..06b268e9428 100644 --- a/libs/internal-sdk/src/react-query/workflowsDelete.ts +++ b/libs/internal-sdk/src/react-query/workflowsDelete.ts @@ -2,19 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { workflowsDelete } from '../funcs/workflowsDelete.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { workflowsDelete } from "../funcs/workflowsDelete.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type WorkflowsDeleteMutationVariables = { workflowId: string; @@ -22,9 +29,19 @@ export type WorkflowsDeleteMutationVariables = { options?: RequestOptions; }; -export type WorkflowsDeleteMutationData = - | operations.WorkflowControllerRemoveWorkflowResponse - | undefined; +export type WorkflowsDeleteMutationData = operations.WorkflowControllerRemoveWorkflowResponse | undefined; + +export type WorkflowsDeleteMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Delete a workflow @@ -35,14 +52,10 @@ export type WorkflowsDeleteMutationData = export function useWorkflowsDeleteMutation( options?: MutationHookOptions< WorkflowsDeleteMutationData, - Error, + WorkflowsDeleteMutationError, WorkflowsDeleteMutationVariables - >, -): UseMutationResult< - WorkflowsDeleteMutationData, - Error, - WorkflowsDeleteMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildWorkflowsDeleteMutation(client, options), @@ -51,17 +64,15 @@ export function useWorkflowsDeleteMutation( } export function mutationKeyWorkflowsDelete(): MutationKey { - return ["@novu/api", "Workflows", "delete"]; + return ['@novu/api', 'Workflows', 'delete']; } export function buildWorkflowsDeleteMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: WorkflowsDeleteMutationVariables, - ) => Promise; + mutationFn: (variables: WorkflowsDeleteMutationVariables) => Promise; } { return { mutationKey: mutationKeyWorkflowsDelete(), @@ -76,18 +87,10 @@ export function buildWorkflowsDeleteMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(workflowsDelete( - client$, - workflowId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(workflowsDelete(client$, workflowId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/workflowsDuplicate.ts b/libs/internal-sdk/src/react-query/workflowsDuplicate.ts index e7d79c2aaa4..12b5a48515e 100644 --- a/libs/internal-sdk/src/react-query/workflowsDuplicate.ts +++ b/libs/internal-sdk/src/react-query/workflowsDuplicate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { workflowsDuplicate } from '../funcs/workflowsDuplicate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { workflowsDuplicate } from "../funcs/workflowsDuplicate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type WorkflowsDuplicateMutationVariables = { duplicateWorkflowDto: components.DuplicateWorkflowDto; @@ -24,8 +31,19 @@ export type WorkflowsDuplicateMutationVariables = { options?: RequestOptions; }; -export type WorkflowsDuplicateMutationData = - operations.WorkflowControllerDuplicateWorkflowResponse; +export type WorkflowsDuplicateMutationData = operations.WorkflowControllerDuplicateWorkflowResponse; + +export type WorkflowsDuplicateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Duplicate a workflow @@ -36,12 +54,12 @@ export type WorkflowsDuplicateMutationData = export function useWorkflowsDuplicateMutation( options?: MutationHookOptions< WorkflowsDuplicateMutationData, - Error, + WorkflowsDuplicateMutationError, WorkflowsDuplicateMutationVariables - >, + > ): UseMutationResult< WorkflowsDuplicateMutationData, - Error, + WorkflowsDuplicateMutationError, WorkflowsDuplicateMutationVariables > { const client = useNovuContext(); @@ -52,17 +70,15 @@ export function useWorkflowsDuplicateMutation( } export function mutationKeyWorkflowsDuplicate(): MutationKey { - return ["@novu/api", "Workflows", "duplicate"]; + return ['@novu/api', 'Workflows', 'duplicate']; } export function buildWorkflowsDuplicateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: WorkflowsDuplicateMutationVariables, - ) => Promise; + mutationFn: (variables: WorkflowsDuplicateMutationVariables) => Promise; } { return { mutationKey: mutationKeyWorkflowsDuplicate(), @@ -78,19 +94,10 @@ export function buildWorkflowsDuplicateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(workflowsDuplicate( - client$, - duplicateWorkflowDto, - workflowId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(workflowsDuplicate(client$, duplicateWorkflowDto, workflowId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/workflowsGet.ts b/libs/internal-sdk/src/react-query/workflowsGet.ts index c28e7bebd19..97970a23694 100644 --- a/libs/internal-sdk/src/react-query/workflowsGet.ts +++ b/libs/internal-sdk/src/react-query/workflowsGet.ts @@ -5,29 +5,43 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildWorkflowsGetQuery, prefetchWorkflowsGet, queryKeyWorkflowsGet, WorkflowsGetQueryData, -} from "./workflowsGet.core.js"; -export { - buildWorkflowsGetQuery, - prefetchWorkflowsGet, - queryKeyWorkflowsGet, - type WorkflowsGetQueryData, -}; +} from './workflowsGet.core.js'; +export { buildWorkflowsGetQuery, prefetchWorkflowsGet, queryKeyWorkflowsGet, type WorkflowsGetQueryData }; + +export type WorkflowsGetQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Retrieve a workflow @@ -39,17 +53,11 @@ export function useWorkflowsGet( workflowId: string, environmentId?: string | undefined, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildWorkflowsGetQuery( - client, - workflowId, - environmentId, - idempotencyKey, - options, - ), + ...buildWorkflowsGetQuery(client, workflowId, environmentId, idempotencyKey, options), ...options, }); } @@ -64,17 +72,11 @@ export function useWorkflowsGetSuspense( workflowId: string, environmentId?: string | undefined, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildWorkflowsGetQuery( - client, - workflowId, - environmentId, - idempotencyKey, - options, - ), + ...buildWorkflowsGetQuery(client, workflowId, environmentId, idempotencyKey, options), ...options, }); } @@ -88,7 +90,7 @@ export function setWorkflowsGetData( idempotencyKey?: string | undefined; }, ], - data: WorkflowsGetQueryData, + data: WorkflowsGetQueryData ): WorkflowsGetQueryData | undefined { const key = queryKeyWorkflowsGet(...queryKeyBase); @@ -106,20 +108,20 @@ export function invalidateWorkflowsGet( }, ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Workflows", "get", ...queryKeyBase], + queryKey: ['@novu/api', 'Workflows', 'get', ...queryKeyBase], }); } export function invalidateAllWorkflowsGet( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Workflows", "get"], + queryKey: ['@novu/api', 'Workflows', 'get'], }); } diff --git a/libs/internal-sdk/src/react-query/workflowsList.ts b/libs/internal-sdk/src/react-query/workflowsList.ts index c2ada91b991..fad51d6247a 100644 --- a/libs/internal-sdk/src/react-query/workflowsList.ts +++ b/libs/internal-sdk/src/react-query/workflowsList.ts @@ -5,31 +5,45 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; +import * as components from '../models/components/index.js'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildWorkflowsListQuery, prefetchWorkflowsList, queryKeyWorkflowsList, WorkflowsListQueryData, -} from "./workflowsList.core.js"; -export { - buildWorkflowsListQuery, - prefetchWorkflowsList, - queryKeyWorkflowsList, - type WorkflowsListQueryData, -}; +} from './workflowsList.core.js'; +export { buildWorkflowsListQuery, prefetchWorkflowsList, queryKeyWorkflowsList, type WorkflowsListQueryData }; + +export type WorkflowsListQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * List all workflows @@ -39,15 +53,11 @@ export { */ export function useWorkflowsList( request: operations.WorkflowControllerSearchWorkflowsRequest, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildWorkflowsListQuery( - client, - request, - options, - ), + ...buildWorkflowsListQuery(client, request, options), ...options, }); } @@ -60,15 +70,11 @@ export function useWorkflowsList( */ export function useWorkflowsListSuspense( request: operations.WorkflowControllerSearchWorkflowsRequest, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildWorkflowsListQuery( - client, - request, - options, - ), + ...buildWorkflowsListQuery(client, request, options), ...options, }); } @@ -87,7 +93,7 @@ export function setWorkflowsListData( idempotencyKey?: string | undefined; }, ], - data: WorkflowsListQueryData, + data: WorkflowsListQueryData ): WorkflowsListQueryData | undefined { const key = queryKeyWorkflowsList(...queryKeyBase); @@ -97,31 +103,33 @@ export function setWorkflowsListData( export function invalidateWorkflowsList( client: QueryClient, queryKeyBase: TupleToPrefixes< - [parameters: { - limit?: number | undefined; - offset?: number | undefined; - orderDirection?: components.DirectionEnum | undefined; - orderBy?: components.WorkflowResponseDtoSortField | undefined; - query?: string | undefined; - tags?: Array | undefined; - status?: Array | undefined; - idempotencyKey?: string | undefined; - }] + [ + parameters: { + limit?: number | undefined; + offset?: number | undefined; + orderDirection?: components.DirectionEnum | undefined; + orderBy?: components.WorkflowResponseDtoSortField | undefined; + query?: string | undefined; + tags?: Array | undefined; + status?: Array | undefined; + idempotencyKey?: string | undefined; + }, + ] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Workflows", "list", ...queryKeyBase], + queryKey: ['@novu/api', 'Workflows', 'list', ...queryKeyBase], }); } export function invalidateAllWorkflowsList( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Workflows", "list"], + queryKey: ['@novu/api', 'Workflows', 'list'], }); } diff --git a/libs/internal-sdk/src/react-query/workflowsPatch.ts b/libs/internal-sdk/src/react-query/workflowsPatch.ts index 0724046121c..a6ca856ecb1 100644 --- a/libs/internal-sdk/src/react-query/workflowsPatch.ts +++ b/libs/internal-sdk/src/react-query/workflowsPatch.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { workflowsPatch } from '../funcs/workflowsPatch.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { workflowsPatch } from "../funcs/workflowsPatch.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type WorkflowsPatchMutationVariables = { patchWorkflowDto: components.PatchWorkflowDto; @@ -24,8 +31,19 @@ export type WorkflowsPatchMutationVariables = { options?: RequestOptions; }; -export type WorkflowsPatchMutationData = - operations.WorkflowControllerPatchWorkflowResponse; +export type WorkflowsPatchMutationData = operations.WorkflowControllerPatchWorkflowResponse; + +export type WorkflowsPatchMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update a workflow @@ -36,14 +54,10 @@ export type WorkflowsPatchMutationData = export function useWorkflowsPatchMutation( options?: MutationHookOptions< WorkflowsPatchMutationData, - Error, + WorkflowsPatchMutationError, WorkflowsPatchMutationVariables - >, -): UseMutationResult< - WorkflowsPatchMutationData, - Error, - WorkflowsPatchMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildWorkflowsPatchMutation(client, options), @@ -52,17 +66,15 @@ export function useWorkflowsPatchMutation( } export function mutationKeyWorkflowsPatch(): MutationKey { - return ["@novu/api", "Workflows", "patch"]; + return ['@novu/api', 'Workflows', 'patch']; } export function buildWorkflowsPatchMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: WorkflowsPatchMutationVariables, - ) => Promise; + mutationFn: (variables: WorkflowsPatchMutationVariables) => Promise; } { return { mutationKey: mutationKeyWorkflowsPatch(), @@ -78,19 +90,10 @@ export function buildWorkflowsPatchMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(workflowsPatch( - client$, - patchWorkflowDto, - workflowId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(workflowsPatch(client$, patchWorkflowDto, workflowId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/workflowsStepsGeneratePreview.ts b/libs/internal-sdk/src/react-query/workflowsStepsGeneratePreview.ts index 27345b55c22..0778178a205 100644 --- a/libs/internal-sdk/src/react-query/workflowsStepsGeneratePreview.ts +++ b/libs/internal-sdk/src/react-query/workflowsStepsGeneratePreview.ts @@ -2,27 +2,45 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { workflowsStepsGeneratePreview } from '../funcs/workflowsStepsGeneratePreview.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { workflowsStepsGeneratePreview } from "../funcs/workflowsStepsGeneratePreview.js"; -import { combineSignals } from "../lib/primitives.js"; -import { RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type WorkflowsStepsGeneratePreviewMutationVariables = { request: operations.WorkflowControllerGeneratePreviewRequest; options?: RequestOptions; }; -export type WorkflowsStepsGeneratePreviewMutationData = - operations.WorkflowControllerGeneratePreviewResponse; +export type WorkflowsStepsGeneratePreviewMutationData = operations.WorkflowControllerGeneratePreviewResponse; + +export type WorkflowsStepsGeneratePreviewMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Generate step preview @@ -33,12 +51,12 @@ export type WorkflowsStepsGeneratePreviewMutationData = export function useWorkflowsStepsGeneratePreviewMutation( options?: MutationHookOptions< WorkflowsStepsGeneratePreviewMutationData, - Error, + WorkflowsStepsGeneratePreviewMutationError, WorkflowsStepsGeneratePreviewMutationVariables - >, + > ): UseMutationResult< WorkflowsStepsGeneratePreviewMutationData, - Error, + WorkflowsStepsGeneratePreviewMutationError, WorkflowsStepsGeneratePreviewMutationVariables > { const client = useNovuContext(); @@ -49,16 +67,16 @@ export function useWorkflowsStepsGeneratePreviewMutation( } export function mutationKeyWorkflowsStepsGeneratePreview(): MutationKey { - return ["@novu/api", "Steps", "generatePreview"]; + return ['@novu/api', 'Steps', 'generatePreview']; } export function buildWorkflowsStepsGeneratePreviewMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; mutationFn: ( - variables: WorkflowsStepsGeneratePreviewMutationVariables, + variables: WorkflowsStepsGeneratePreviewMutationVariables ) => Promise; } { return { @@ -73,17 +91,10 @@ export function buildWorkflowsStepsGeneratePreviewMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(workflowsStepsGeneratePreview( - client$, - request, - mergedOptions, - )); + return unwrapAsync(workflowsStepsGeneratePreview(client$, request, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/workflowsStepsRetrieve.ts b/libs/internal-sdk/src/react-query/workflowsStepsRetrieve.ts index e3e500b8951..3c8b5d8acb0 100644 --- a/libs/internal-sdk/src/react-query/workflowsStepsRetrieve.ts +++ b/libs/internal-sdk/src/react-query/workflowsStepsRetrieve.ts @@ -5,23 +5,30 @@ import { InvalidateQueryFilters, QueryClient, - useQuery, UseQueryResult, - useSuspenseQuery, UseSuspenseQueryResult, -} from "@tanstack/react-query"; -import { useNovuContext } from "./_context.js"; + useQuery, + useSuspenseQuery, +} from '@tanstack/react-query'; import { - QueryHookOptions, - SuspenseQueryHookOptions, - TupleToPrefixes, -} from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import { useNovuContext } from './_context.js'; +import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes } from './_types.js'; import { buildWorkflowsStepsRetrieveQuery, prefetchWorkflowsStepsRetrieve, queryKeyWorkflowsStepsRetrieve, WorkflowsStepsRetrieveQueryData, -} from "./workflowsStepsRetrieve.core.js"; +} from './workflowsStepsRetrieve.core.js'; export { buildWorkflowsStepsRetrieveQuery, prefetchWorkflowsStepsRetrieve, @@ -29,6 +36,18 @@ export { type WorkflowsStepsRetrieveQueryData, }; +export type WorkflowsStepsRetrieveQueryError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + /** * Retrieve workflow step * @@ -39,17 +58,11 @@ export function useWorkflowsStepsRetrieve( workflowId: string, stepId: string, idempotencyKey?: string | undefined, - options?: QueryHookOptions, -): UseQueryResult { + options?: QueryHookOptions +): UseQueryResult { const client = useNovuContext(); return useQuery({ - ...buildWorkflowsStepsRetrieveQuery( - client, - workflowId, - stepId, - idempotencyKey, - options, - ), + ...buildWorkflowsStepsRetrieveQuery(client, workflowId, stepId, idempotencyKey, options), ...options, }); } @@ -64,29 +77,19 @@ export function useWorkflowsStepsRetrieveSuspense( workflowId: string, stepId: string, idempotencyKey?: string | undefined, - options?: SuspenseQueryHookOptions, -): UseSuspenseQueryResult { + options?: SuspenseQueryHookOptions +): UseSuspenseQueryResult { const client = useNovuContext(); return useSuspenseQuery({ - ...buildWorkflowsStepsRetrieveQuery( - client, - workflowId, - stepId, - idempotencyKey, - options, - ), + ...buildWorkflowsStepsRetrieveQuery(client, workflowId, stepId, idempotencyKey, options), ...options, }); } export function setWorkflowsStepsRetrieveData( client: QueryClient, - queryKeyBase: [ - workflowId: string, - stepId: string, - parameters: { idempotencyKey?: string | undefined }, - ], - data: WorkflowsStepsRetrieveQueryData, + queryKeyBase: [workflowId: string, stepId: string, parameters: { idempotencyKey?: string | undefined }], + data: WorkflowsStepsRetrieveQueryData ): WorkflowsStepsRetrieveQueryData | undefined { const key = queryKeyWorkflowsStepsRetrieve(...queryKeyBase); @@ -96,26 +99,22 @@ export function setWorkflowsStepsRetrieveData( export function invalidateWorkflowsStepsRetrieve( client: QueryClient, queryKeyBase: TupleToPrefixes< - [ - workflowId: string, - stepId: string, - parameters: { idempotencyKey?: string | undefined }, - ] + [workflowId: string, stepId: string, parameters: { idempotencyKey?: string | undefined }] >, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Steps", "retrieve", ...queryKeyBase], + queryKey: ['@novu/api', 'Steps', 'retrieve', ...queryKeyBase], }); } export function invalidateAllWorkflowsStepsRetrieve( client: QueryClient, - filters?: Omit, + filters?: Omit ): Promise { return client.invalidateQueries({ ...filters, - queryKey: ["@novu/api", "Steps", "retrieve"], + queryKey: ['@novu/api', 'Steps', 'retrieve'], }); } diff --git a/libs/internal-sdk/src/react-query/workflowsSync.ts b/libs/internal-sdk/src/react-query/workflowsSync.ts index 160cc6a129d..1c1f2d9e21e 100644 --- a/libs/internal-sdk/src/react-query/workflowsSync.ts +++ b/libs/internal-sdk/src/react-query/workflowsSync.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { workflowsSync } from '../funcs/workflowsSync.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { workflowsSync } from "../funcs/workflowsSync.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type WorkflowsSyncMutationVariables = { syncWorkflowDto: components.SyncWorkflowDto; @@ -24,8 +31,19 @@ export type WorkflowsSyncMutationVariables = { options?: RequestOptions; }; -export type WorkflowsSyncMutationData = - operations.WorkflowControllerSyncResponse; +export type WorkflowsSyncMutationData = operations.WorkflowControllerSyncResponse; + +export type WorkflowsSyncMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Sync a workflow @@ -34,16 +52,8 @@ export type WorkflowsSyncMutationData = * Synchronizes a workflow to the target environment */ export function useWorkflowsSyncMutation( - options?: MutationHookOptions< - WorkflowsSyncMutationData, - Error, - WorkflowsSyncMutationVariables - >, -): UseMutationResult< - WorkflowsSyncMutationData, - Error, - WorkflowsSyncMutationVariables -> { + options?: MutationHookOptions +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildWorkflowsSyncMutation(client, options), @@ -52,17 +62,15 @@ export function useWorkflowsSyncMutation( } export function mutationKeyWorkflowsSync(): MutationKey { - return ["@novu/api", "Workflows", "sync"]; + return ['@novu/api', 'Workflows', 'sync']; } export function buildWorkflowsSyncMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: WorkflowsSyncMutationVariables, - ) => Promise; + mutationFn: (variables: WorkflowsSyncMutationVariables) => Promise; } { return { mutationKey: mutationKeyWorkflowsSync(), @@ -78,19 +86,10 @@ export function buildWorkflowsSyncMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(workflowsSync( - client$, - syncWorkflowDto, - workflowId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(workflowsSync(client$, syncWorkflowDto, workflowId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/src/react-query/workflowsUpdate.ts b/libs/internal-sdk/src/react-query/workflowsUpdate.ts index 1263124643e..3bde753a70f 100644 --- a/libs/internal-sdk/src/react-query/workflowsUpdate.ts +++ b/libs/internal-sdk/src/react-query/workflowsUpdate.ts @@ -2,20 +2,27 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +import { MutationKey, UseMutationResult, useMutation } from '@tanstack/react-query'; +import { NovuCore } from '../core.js'; +import { workflowsUpdate } from '../funcs/workflowsUpdate.js'; +import { combineSignals } from '../lib/primitives.js'; +import { RequestOptions } from '../lib/sdks.js'; +import * as components from '../models/components/index.js'; import { - MutationKey, - useMutation, - UseMutationResult, -} from "@tanstack/react-query"; -import { NovuCore } from "../core.js"; -import { workflowsUpdate } from "../funcs/workflowsUpdate.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"; -import { useNovuContext } from "./_context.js"; -import { MutationHookOptions } from "./_types.js"; + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from '../models/errors/httpclienterrors.js'; +import * as errors from '../models/errors/index.js'; +import { NovuError } from '../models/errors/novuerror.js'; +import { ResponseValidationError } from '../models/errors/responsevalidationerror.js'; +import { SDKValidationError } from '../models/errors/sdkvalidationerror.js'; +import * as operations from '../models/operations/index.js'; +import { unwrapAsync } from '../types/fp.js'; +import { useNovuContext } from './_context.js'; +import { MutationHookOptions } from './_types.js'; export type WorkflowsUpdateMutationVariables = { updateWorkflowDto: components.UpdateWorkflowDto; @@ -24,8 +31,19 @@ export type WorkflowsUpdateMutationVariables = { options?: RequestOptions; }; -export type WorkflowsUpdateMutationData = - operations.WorkflowControllerUpdateResponse; +export type WorkflowsUpdateMutationData = operations.WorkflowControllerUpdateResponse; + +export type WorkflowsUpdateMutationError = + | errors.ErrorDto + | errors.ValidationErrorDto + | NovuError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; /** * Update a workflow @@ -36,14 +54,10 @@ export type WorkflowsUpdateMutationData = export function useWorkflowsUpdateMutation( options?: MutationHookOptions< WorkflowsUpdateMutationData, - Error, + WorkflowsUpdateMutationError, WorkflowsUpdateMutationVariables - >, -): UseMutationResult< - WorkflowsUpdateMutationData, - Error, - WorkflowsUpdateMutationVariables -> { + > +): UseMutationResult { const client = useNovuContext(); return useMutation({ ...buildWorkflowsUpdateMutation(client, options), @@ -52,17 +66,15 @@ export function useWorkflowsUpdateMutation( } export function mutationKeyWorkflowsUpdate(): MutationKey { - return ["@novu/api", "Workflows", "update"]; + return ['@novu/api', 'Workflows', 'update']; } export function buildWorkflowsUpdateMutation( client$: NovuCore, - hookOptions?: RequestOptions, + hookOptions?: RequestOptions ): { mutationKey: MutationKey; - mutationFn: ( - variables: WorkflowsUpdateMutationVariables, - ) => Promise; + mutationFn: (variables: WorkflowsUpdateMutationVariables) => Promise; } { return { mutationKey: mutationKeyWorkflowsUpdate(), @@ -78,19 +90,10 @@ export function buildWorkflowsUpdateMutation( fetchOptions: { ...hookOptions?.fetchOptions, ...options?.fetchOptions, - signal: combineSignals( - hookOptions?.fetchOptions?.signal, - options?.fetchOptions?.signal, - ), + signal: combineSignals(hookOptions?.fetchOptions?.signal, options?.fetchOptions?.signal), }, }; - return unwrapAsync(workflowsUpdate( - client$, - updateWorkflowDto, - workflowId, - idempotencyKey, - mergedOptions, - )); + return unwrapAsync(workflowsUpdate(client$, updateWorkflowDto, workflowId, idempotencyKey, mergedOptions)); }, }; } diff --git a/libs/internal-sdk/temp/example.ts b/libs/internal-sdk/temp/example.ts deleted file mode 100644 index a17ea2443bb..00000000000 --- a/libs/internal-sdk/temp/example.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -const value: number = [object Object]; \ No newline at end of file diff --git a/packages/js/src/api/inbox-service.ts b/packages/js/src/api/inbox-service.ts index 8735376db73..572dc9a4f59 100644 --- a/packages/js/src/api/inbox-service.ts +++ b/packages/js/src/api/inbox-service.ts @@ -1,4 +1,5 @@ import type { RulesLogic } from 'json-logic-js'; +import type { ExtendedOperations } from '../subscriptions/conditions'; import type { PreferenceFilter } from '../subscriptions/types'; import type { ActionTypeEnum, @@ -418,7 +419,7 @@ export class InboxService { subscriptionIdentifier: string; workflowId: string; enabled?: boolean; - condition?: RulesLogic; + condition?: RulesLogic; email?: boolean; sms?: boolean; in_app?: boolean; @@ -441,7 +442,7 @@ export class InboxService { subscriptionIdentifier: string; workflowId: string; enabled?: boolean; - condition?: RulesLogic; + condition?: RulesLogic; email?: boolean; sms?: boolean; in_app?: boolean; diff --git a/packages/js/src/index.ts b/packages/js/src/index.ts index 30a5ba5fe0c..028c601ac93 100644 --- a/packages/js/src/index.ts +++ b/packages/js/src/index.ts @@ -2,6 +2,7 @@ export type * from 'json-logic-js'; export type { EventHandler, Events, SocketEventNames } from './event-emitter'; export { Novu } from './novu'; export type { + ExtendedOperations, PreferenceFilter, WorkflowFilter, WorkflowGroupFilter, diff --git a/packages/js/src/subscriptions/conditions.ts b/packages/js/src/subscriptions/conditions.ts new file mode 100644 index 00000000000..faca46663af --- /dev/null +++ b/packages/js/src/subscriptions/conditions.ts @@ -0,0 +1,32 @@ +import type { RulesLogic } from 'json-logic-js'; + +type RelativeDateValue = { + amount: number; + unit: 'minutes' | 'hours' | 'days' | 'weeks' | 'months' | 'years'; +}; + +type OperationValue = RulesLogic | string | number | boolean | null | RelativeDateValue | unknown[]; + +interface CustomOperations { + '=': [OperationValue, OperationValue]; + startsWith: [OperationValue, OperationValue]; + endsWith: [OperationValue, OperationValue]; + contains: [OperationValue, OperationValue]; + doesNotContain: [OperationValue, OperationValue]; + doesNotBeginWith: [OperationValue, OperationValue]; + doesNotEndWith: [OperationValue, OperationValue]; + null: OperationValue; + notNull: OperationValue; + notIn: [OperationValue, OperationValue[]]; + between: [OperationValue, [number, number]]; + notBetween: [OperationValue, [number, number]]; + moreThanXAgo: [OperationValue, RelativeDateValue]; + lessThanXAgo: [OperationValue, RelativeDateValue]; + withinLast: [OperationValue, RelativeDateValue]; + notWithinLast: [OperationValue, RelativeDateValue]; + exactlyXAgo: [OperationValue, RelativeDateValue]; +} + +export type ExtendedOperations = { + [K in keyof CustomOperations]: { [P in K]: CustomOperations[K] }; +}[keyof CustomOperations]; diff --git a/packages/js/src/subscriptions/index.ts b/packages/js/src/subscriptions/index.ts index e5542041d3f..15f7c8ab6d8 100644 --- a/packages/js/src/subscriptions/index.ts +++ b/packages/js/src/subscriptions/index.ts @@ -1,3 +1,4 @@ +export type { ExtendedOperations } from './conditions'; export { TopicSubscription } from './subscription'; export { SubscriptionPreference } from './subscription-preference'; export { Subscriptions } from './subscriptions'; diff --git a/packages/js/src/subscriptions/subscription-preference.ts b/packages/js/src/subscriptions/subscription-preference.ts index bafd603c7b2..759ca2f9e08 100644 --- a/packages/js/src/subscriptions/subscription-preference.ts +++ b/packages/js/src/subscriptions/subscription-preference.ts @@ -3,6 +3,7 @@ import { InboxService } from '../api'; import { SubscriptionsCache } from '../cache'; import { NovuEventEmitter } from '../event-emitter'; import type { Result, SubscriptionPreferenceResponse, Workflow } from '../types'; +import type { ExtendedOperations } from './conditions'; import { updateSubscriptionPreference } from './helpers'; export class SubscriptionPreference { @@ -14,7 +15,7 @@ export class SubscriptionPreference { readonly subscriptionId: string; readonly workflow: Workflow; readonly enabled: boolean; - readonly condition?: RulesLogic; + readonly condition?: RulesLogic; constructor( preference: SubscriptionPreferenceResponse, @@ -33,7 +34,7 @@ export class SubscriptionPreference { this.subscriptionId = preference.subscriptionId; } - async update(args: { value: boolean | RulesLogic }): Result { + async update(args: { value: boolean | RulesLogic }): Result { return updateSubscriptionPreference({ emitter: this.#emitter, apiService: this.#inboxService, diff --git a/packages/js/src/subscriptions/types.ts b/packages/js/src/subscriptions/types.ts index cdebd2f3c5d..eed4cd5f8e9 100644 --- a/packages/js/src/subscriptions/types.ts +++ b/packages/js/src/subscriptions/types.ts @@ -1,4 +1,5 @@ import type { RulesLogic } from 'json-logic-js'; +import type { ExtendedOperations } from './conditions'; import type { TopicSubscription } from './subscription'; import { SubscriptionPreference } from './subscription-preference'; @@ -7,14 +8,14 @@ export type WorkflowIdentifierOrId = string; export type WorkflowFilter = { workflowId: WorkflowIdentifierOrId; enabled?: boolean; - condition?: RulesLogic; + condition?: RulesLogic; filter?: never; }; export type WorkflowGroupFilter = { filter: { workflowIds?: Array; tags?: string[] }; enabled?: boolean; - condition?: RulesLogic; + condition?: RulesLogic; workflowId?: never; }; @@ -56,12 +57,12 @@ export type UpdateSubscriptionArgs = BaseUpdateSubscriptionArgs | InstanceUpdate export type BaseSubscriptionPreferenceArgs = { workflowId: string; - value: boolean | RulesLogic; + value: boolean | RulesLogic; }; export type InstanceSubscriptionPreferenceArgs = { preference: SubscriptionPreference; - value: boolean | RulesLogic; + value: boolean | RulesLogic; }; export type UpdateSubscriptionPreferenceArgs = BaseSubscriptionPreferenceArgs | InstanceSubscriptionPreferenceArgs; diff --git a/packages/js/src/types.ts b/packages/js/src/types.ts index 4a6839a9426..5a2b53ddf75 100644 --- a/packages/js/src/types.ts +++ b/packages/js/src/types.ts @@ -1,4 +1,5 @@ import type { RulesLogic } from 'json-logic-js'; +import type { ExtendedOperations } from './subscriptions/conditions'; import { NovuError } from './utils/errors'; export type { FiltersCountResponse, ListNotificationsResponse } from './notifications'; @@ -221,7 +222,7 @@ export type Context = Partial>; export type PreferencesResponse = { level: PreferenceLevel; enabled: boolean; - condition?: RulesLogic; + condition?: RulesLogic; subscriptionId?: string; channels: ChannelPreference; overrides?: IPreferenceOverride[]; diff --git a/playground/nextjs/src/pages/subscription/ANNOTATED_CONDITIONS.md b/playground/nextjs/src/pages/subscription/ANNOTATED_CONDITIONS.md new file mode 100644 index 00000000000..57843c99c5f --- /dev/null +++ b/playground/nextjs/src/pages/subscription/ANNOTATED_CONDITIONS.md @@ -0,0 +1,140 @@ +# AnnotatedRule — Developer Guide + +`AnnotatedRule` is a lightweight wrapper that adds a stable `id` to any rule in a `RulesLogic` tree. This guide explains the problem it solves and how to use it. + +--- + +## The Problem + +Working with raw `RulesLogic` trees in UI code requires identifying nodes without any stable handle. The typical workaround is serializing the rule to JSON and comparing strings: + +```typescript +const isActive = rules.some( + (r) => JSON.stringify(r) === JSON.stringify(targetRule) +); +``` + +This breaks silently when JSON key order differs, and makes targeted updates impossible — any change to a single leaf forces you to rebuild the entire tree. + +--- + +## The Solution + +Wrap each node with an `id`: + +```typescript +type AnnotatedRule = { + id?: string; + rule: RulesLogic | { and: AnnotatedRule[] } | { or: AnnotatedRule[] }; +}; +``` + +The same condition tree now looks like this: + +```typescript +const condition: AnnotatedRule = { + id: 'root', + rule: { + and: [ + { id: 'status-check', rule: { '==': [{ var: 'payload.status' }, 'completed'] } }, + { id: 'type-check', rule: { '==': [{ var: 'payload.type' }, 'notification'] } }, + ], + }, +}; +``` + +--- + +## Before and After + +### Finding a rule + +**Before** +```typescript +const active = rules.some( + (r) => JSON.stringify(r) === JSON.stringify(targetRule) +); +``` + +**After** +```typescript +function findById(node: AnnotatedRule, id: string): AnnotatedRule | null { + if (node.id === id) return node; + if ('and' in node.rule) return node.rule.and.reduce((acc, child) => acc ?? findById(child, id), null); + if ('or' in node.rule) return node.rule.or.reduce((acc, child) => acc ?? findById(child, id), null); + return null; +} + +const node = findById(condition, 'status-check'); +``` + +### Updating a rule + +**Before** — rebuild the entire tree from a parallel state record: +```typescript +const rules = CONDITION_RULES.map((r) => + states[r.key] ? r.enabledRule : r.disabledRule +); +const newCondition = { and: rules }; +``` + +**After** — targeted immutable update by ID: +```typescript +function updateById( + node: AnnotatedRule, + id: string, + updater: (n: AnnotatedRule) => AnnotatedRule +): AnnotatedRule { + if (node.id === id) return updater(node); + if ('and' in node.rule) return { ...node, rule: { and: node.rule.and.map((c) => updateById(c, id, updater)) } }; + if ('or' in node.rule) return { ...node, rule: { or: node.rule.or.map((c) => updateById(c, id, updater)) } }; + return node; +} + +const updated = updateById(condition, 'status-check', (n) => ({ + ...n, + rule: { '!=': [{ var: 'payload.status' }, 'completed'] }, +})); +``` + +### Adding a new rule + +**Before** — edit the parallel config array, the builder function, and the render logic: +```typescript +const CONDITION_RULES = [ + { key: 'status', enabledRule: { '==' : [...] }, disabledRule: { '!=' : [...] } }, + { key: 'type', enabledRule: { '==' : [...] }, disabledRule: { '!=' : [...] } }, + // Add here AND update buildConditionFromStates AND update render + { key: 'priority', enabledRule: { '==' : [...] }, disabledRule: { '!=' : [...] } }, +]; +``` + +**After** — one entry, one place: +```typescript +const condition: AnnotatedRule = { + id: 'root', + rule: { + and: [ + { id: 'status-check', rule: { '==': [{ var: 'payload.status' }, 'completed'] } }, + { id: 'type-check', rule: { '==': [{ var: 'payload.type' }, 'notification'] } }, + { id: 'priority-check', rule: { '==': [{ var: 'payload.priority' }, 'high'] } }, + ], + }, +}; +``` + +--- + +## Sending to the API + +`SubscriptionPreference.update()` accepts `RulesLogic`. Strip the annotations before sending: + +```typescript +function stripAnnotations(node: AnnotatedRule): RulesLogic { + if ('and' in node.rule) return { and: node.rule.and.map(stripAnnotations) } as RulesLogic; + if ('or' in node.rule) return { or: node.rule.or.map(stripAnnotations) } as RulesLogic; + return node.rule as RulesLogic; +} + +await preference.update({ value: stripAnnotations(condition) }); +``` diff --git a/playground/nextjs/src/pages/subscription/annotated-conditions-preferences.tsx b/playground/nextjs/src/pages/subscription/annotated-conditions-preferences.tsx new file mode 100644 index 00000000000..7c25831da1c --- /dev/null +++ b/playground/nextjs/src/pages/subscription/annotated-conditions-preferences.tsx @@ -0,0 +1,215 @@ +import type { RulesLogic, SubscriptionPreference, TopicSubscription } from '@novu/nextjs'; +import { NovuProvider, Subscription } from '@novu/nextjs'; +import { subscriptionDarkTheme } from '@novu/nextjs/themes'; +import { useState } from 'react'; +import { novuConfig } from '@/utils/config'; + +const topicKey = 'topic_key_13'; +const identifier = `${topicKey}:project_4`; + +type CompoundRule = { and: AnnotatedRule[] } | { or: AnnotatedRule[] }; +type LeafRule = Record; + +type AnnotatedRule = { + id?: string; + rule: CompoundRule | LeafRule; +}; + +const DEFAULT_ANNOTATED_CONDITION: AnnotatedRule = { + id: 'root', + rule: { + and: [ + { id: 'status-check', rule: { '==': [{ var: 'payload.status' }, 'completed'] } }, + { id: 'type-check', rule: { '==': [{ var: 'payload.type' }, 'notification'] } }, + ], + }, +}; + +function isCompound(rule: CompoundRule | LeafRule): rule is CompoundRule { + return typeof rule === 'object' && rule !== null && ('and' in rule || 'or' in rule); +} + +function getChildren(rule: CompoundRule): AnnotatedRule[] { + return 'and' in rule ? rule.and : rule.or; +} + +function getOperator(rule: CompoundRule): 'and' | 'or' { + return 'and' in rule ? 'and' : 'or'; +} + +function updateById(node: AnnotatedRule, id: string, updater: (n: AnnotatedRule) => AnnotatedRule): AnnotatedRule { + if (node.id === id) return updater(node); + + if (!isCompound(node.rule)) return node; + + const op = getOperator(node.rule); + const updatedChildren = getChildren(node.rule).map((child) => updateById(child, id, updater)); + + return { ...node, rule: { [op]: updatedChildren } as CompoundRule }; +} + +function toggleLeafOperator(node: AnnotatedRule): AnnotatedRule { + if (isCompound(node.rule)) return node; + + const op = Object.keys(node.rule)[0]; + const TOGGLES: Record = { '==': '!=', '!=': '==' }; + const nextOp = TOGGLES[op] ?? op; + + return { ...node, rule: { [nextOp]: node.rule[op] } }; +} + +function stripAnnotations(node: AnnotatedRule): RulesLogic { + if (isCompound(node.rule)) { + const op = getOperator(node.rule); + const children = getChildren(node.rule).map(stripAnnotations); + + return { [op]: children } as RulesLogic; + } + + return node.rule as RulesLogic; +} + +function isLeafEnabled(rule: LeafRule): boolean { + const op = Object.keys(rule)[0]; + + return op === '==' || op === '>'; +} + +function formatLeafRule(rule: LeafRule): string { + const op = Object.keys(rule)[0]; + const args = rule[op]; + + if (!Array.isArray(args) || typeof args[0] !== 'object' || !('var' in args[0])) { + return JSON.stringify(rule); + } + + return `${(args[0] as { var: string }).var} ${op} ${JSON.stringify(args[1])}`; +} + +type RuleNodeProps = { + node: AnnotatedRule; + isUpdating: string | null; + onToggle: (id: string) => void; + depth?: number; +}; + +function RuleNode({ node, isUpdating, onToggle, depth = 0 }: RuleNodeProps) { + if (isCompound(node.rule)) { + const children = getChildren(node.rule); + const operator = getOperator(node.rule); + + return ( +
0 ? 'border-l-2 border-gray-200 ml-2 pl-2' : ''}> + {node.id && ( +
+ {node.id} + + {operator} + +
+ )} +
+ {children.map((child, i) => ( + + ))} +
+
+ ); + } + + const nodeId = node.id ?? ''; + + return ( +
+
+ {node.id && {node.id}} + {formatLeafRule(node.rule)} +
+ onToggle(nodeId)} + style={{ + width: '44px', + height: '24px', + cursor: isUpdating !== null ? 'not-allowed' : 'pointer', + accentColor: '#22c55e', + opacity: isUpdating === nodeId ? 0.5 : 1, + flexShrink: 0, + }} + /> +
+ ); +} + +function AnnotatedPreferenceCard({ pref }: { pref: SubscriptionPreference }) { + const [condition, setCondition] = useState(DEFAULT_ANNOTATED_CONDITION); + const [isUpdating, setIsUpdating] = useState(null); + + const handleToggle = async (id: string) => { + const prevCondition = condition; + const nextCondition = updateById(condition, id, toggleLeafOperator); + setCondition(nextCondition); + setIsUpdating(id); + + try { + await pref.update({ value: stripAnnotations(nextCondition) }); + } catch (error) { + setCondition(prevCondition); + console.error('Failed to update preference:', error); + } finally { + setIsUpdating(null); + } + }; + + return ( +
+
+ {pref.workflow?.name || 'Workflow'} +
+
+ +
+
+ ); +} + +export function AnnotatedConditionsPreferences({ isDark }: { isDark: boolean }) { + const renderPreferences = (subscription?: TopicSubscription, loading?: boolean) => { + if (loading) { + return
Loading...
; + } + + if (!subscription) { + return
No subscription
; + } + + return ( +
+ {subscription.preferences?.map((pref: SubscriptionPreference) => ( + + ))} +
+ ); + }; + + return ( +
+

Annotated Conditions Preferences

+ + + +
+ ); +} diff --git a/playground/nextjs/src/pages/subscription/conditions-preferences.tsx b/playground/nextjs/src/pages/subscription/conditions-preferences.tsx new file mode 100644 index 00000000000..2a88fa18764 --- /dev/null +++ b/playground/nextjs/src/pages/subscription/conditions-preferences.tsx @@ -0,0 +1,169 @@ +import type { RulesLogic, SubscriptionPreference, TopicSubscription } from '@novu/nextjs'; +import { NovuProvider, Subscription } from '@novu/nextjs'; +import { subscriptionDarkTheme } from '@novu/nextjs/themes'; +import { useState } from 'react'; +import { novuConfig } from '@/utils/config'; + +const topicKey = 'topic_key_13'; +const identifier = `${topicKey}:project_4`; + +type ConditionOperator = 'and' | 'or'; + +type CompoundCondition = { + operator: ConditionOperator; + rules: RulesLogic[]; +}; + +type ConditionRule = { + key: string; + label: string; + enabledRule: RulesLogic; + disabledRule: RulesLogic; +}; + +const CONDITION_RULES: ConditionRule[] = [ + { + key: 'status', + label: 'payload.status', + enabledRule: { '==': [{ var: 'payload.status' }, 'completed'] }, + disabledRule: { '!=': [{ var: 'payload.status' }, 'completed'] }, + }, + { + key: 'type', + label: 'payload.type', + enabledRule: { '==': [{ var: 'payload.type' }, 'notification'] }, + disabledRule: { '!=': [{ var: 'payload.type' }, 'notification'] }, + }, +]; + +function buildCondition({ operator, rules }: CompoundCondition): RulesLogic { + return { [operator]: rules } as RulesLogic; +} + +function getRuleStatesFromCondition(condition: RulesLogic | undefined): Record { + const defaults = Object.fromEntries(CONDITION_RULES.map((r) => [r.key, false])); + + if (!condition) return defaults; + + const raw = condition as Record; + const operator = Object.keys(raw)[0] as ConditionOperator; + const rules = raw[operator]; + + if (!Array.isArray(rules)) return defaults; + + return Object.fromEntries( + CONDITION_RULES.map((condRule) => { + const isEnabled = rules.some((r) => JSON.stringify(r) === JSON.stringify(condRule.enabledRule)); + + return [condRule.key, isEnabled]; + }) + ); +} + +function buildConditionFromStates(states: Record): RulesLogic { + const rules = CONDITION_RULES.map((r) => (states[r.key] ? r.enabledRule : r.disabledRule)); + + return buildCondition({ operator: 'and', rules }); +} + +function formatRuleLabel(rule: RulesLogic): string { + const ruleObj = rule as Record; + const op = Object.keys(ruleObj)[0]; + const [{ var: field }, value] = ruleObj[op]; + + return `${field} ${op} ${value}`; +} + +function PreferenceConditionRows({ pref }: { pref: SubscriptionPreference }) { + const [ruleStates, setRuleStates] = useState>(() => + getRuleStatesFromCondition(pref.condition) + ); + const [isUpdating, setIsUpdating] = useState(null); + + const handleToggleRule = async (ruleKey: string, checked: boolean) => { + const nextStates = { ...ruleStates, [ruleKey]: checked }; + setRuleStates(nextStates); + setIsUpdating(ruleKey); + + try { + const newCondition = buildConditionFromStates(nextStates); + await pref.update({ value: newCondition }); + } catch (error) { + setRuleStates(ruleStates); + console.error('Failed to update preference:', error); + } finally { + setIsUpdating(null); + } + }; + + return ( +
+
+ {pref.workflow?.name || 'Workflow'} +
+ {CONDITION_RULES.map((rule, index) => ( +
+
+ {rule.label} + + {formatRuleLabel(ruleStates[rule.key] ? rule.enabledRule : rule.disabledRule)} + +
+ handleToggleRule(rule.key, e.target.checked)} + style={{ + width: '44px', + height: '24px', + cursor: isUpdating !== null ? 'not-allowed' : 'pointer', + accentColor: '#22c55e', + opacity: isUpdating === rule.key ? 0.5 : 1, + }} + /> +
+ ))} +
+ ); +} + +export function ConditionsPreferences({ isDark }: { isDark: boolean }) { + const renderPreferences = (subscription?: TopicSubscription, loading?: boolean) => { + if (loading) { + return
Loading...
; + } + + if (!subscription) { + return
No subscription
; + } + + return ( +
+ {subscription.preferences?.map((pref: SubscriptionPreference) => ( + + ))} +
+ ); + }; + + return ( +
+

Conditions Preferences

+ + + +
+ ); +} diff --git a/playground/nextjs/src/pages/subscription/index.tsx b/playground/nextjs/src/pages/subscription/index.tsx index 711e766a313..35b4a26d438 100644 --- a/playground/nextjs/src/pages/subscription/index.tsx +++ b/playground/nextjs/src/pages/subscription/index.tsx @@ -1,30 +1,14 @@ -import type { RulesLogic, SubscriptionPreference, TopicSubscription } from '@novu/nextjs'; import { NovuProvider, Subscription } from '@novu/nextjs'; import { subscriptionDarkTheme } from '@novu/nextjs/themes'; import { useState } from 'react'; import Title from '@/components/Title'; -import { Switch } from '@/components/ui/switch'; import { novuConfig } from '@/utils/config'; +import { AnnotatedConditionsPreferences } from './annotated-conditions-preferences'; +import { ConditionsPreferences } from './conditions-preferences'; const topicKey = 'topic_key_13'; const identifier = `${topicKey}:project_4`; -const enabledCondition: RulesLogic = { - '==': [{ var: 'payload.status' }, 'completed'], -}; - -const disabledCondition: RulesLogic = { - '!=': [{ var: 'payload.status' }, 'completed'], -}; - -function isEnabledCondition(pref: SubscriptionPreference): boolean { - if (!pref.condition) return false; - const conditionStr = JSON.stringify(pref.condition); - const enabledStr = JSON.stringify(enabledCondition); - - return conditionStr === enabledStr; -} - function WorkflowPreferences({ isDark }: { isDark: boolean }) { return (
@@ -47,69 +31,6 @@ function WorkflowPreferences({ isDark }: { isDark: boolean }) { ); } -function ConditionsPreferences({ isDark }: { isDark: boolean }) { - const handleTogglePreference = async (pref: SubscriptionPreference, checked: boolean) => { - try { - const newValue = checked ? enabledCondition : disabledCondition; - console.log('Updating preference:', pref.workflow?.name, 'to condition:', newValue); - await pref.update({ value: newValue }); - console.log('Preference updated successfully'); - } catch (error) { - console.error('Failed to update preference:', error); - } - }; - - const renderPreferences = (subscription?: TopicSubscription, loading?: boolean) => { - if (loading) { - return
Loading...
; - } - - if (!subscription) { - return
No subscription
; - } - - return ( -
- {subscription.preferences.map((pref: SubscriptionPreference) => { - const isEnabled = isEnabledCondition(pref); - - return ( -
-
- {pref.workflow?.name || 'Workflow'} - - {isEnabled ? 'payload.status == completed' : 'payload.status != completed'} - -
- handleTogglePreference(pref, checked)} - /> -
- ); - })} -
- ); - }; - - return ( -
-

Conditions Preferences

- - - -
- ); -} - export default function SubscriptionPage() { const [isDark, setIsDark] = useState(false); @@ -125,6 +46,7 @@ export default function SubscriptionPage() { +
); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4d5787af36..4e96d93b171 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,7 +72,7 @@ importers: version: 21.3.11(@babel/traverse@7.28.0)(@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))(nx@21.3.11(@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))) '@nx/plugin': specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@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))(@types/node@20.19.10)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.5.0(esbuild@0.27.3))(eslint@9.19.0(jiti@2.6.1))(nx@21.3.11(@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)))(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@20.19.10)(typescript@5.6.2))(typescript@5.6.2) + version: 21.3.11(@babel/traverse@7.28.0)(@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))(@types/node@20.19.10)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.5.0(esbuild@0.27.3))(eslint@9.39.3(jiti@2.6.1))(nx@21.3.11(@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)))(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@20.19.10)(typescript@5.6.2))(typescript@5.6.2) '@nx/workspace': specifier: 21.3.11 version: 21.3.11(@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)) @@ -521,6 +521,9 @@ importers: '@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) + '@novu/js': + specifier: workspace:* + version: link:../../packages/js '@stoplight/spectral-cli': specifier: ^6.15.0 version: 6.15.0(encoding@0.1.13) @@ -2609,8 +2612,8 @@ importers: version: 3.25.20 devDependencies: '@eslint/js': - specifier: ^9.19.0 - version: 9.19.0 + specifier: ^9.26.0 + version: 9.39.3 '@tanstack/react-query': specifier: ^5.61.4 version: 5.65.0(react@18.3.1) @@ -2618,8 +2621,8 @@ importers: specifier: ^18.3.12 version: 18.3.18 eslint: - specifier: ^9.19.0 - version: 9.19.0(jiti@2.6.1) + specifier: ^9.26.0 + version: 9.39.3(jiti@2.6.1) globals: specifier: ^15.14.0 version: 15.14.0 @@ -2628,7 +2631,7 @@ importers: version: 5.8.3 typescript-eslint: specifier: ^8.26.0 - version: 8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3) + version: 8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3) libs/maily-core: dependencies: @@ -7349,32 +7352,42 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.1': - resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/eslintrc@3.3.4': + resolution: {integrity: sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.19.0': - resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + '@eslint/js@9.39.3': + resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.5': - resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@faker-js/faker@6.3.1': @@ -7587,8 +7600,8 @@ packages: resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.1': - resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} '@iconify/types@2.0.0': @@ -15109,6 +15122,9 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -18147,24 +18163,20 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@4.2.1: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.19.0: - resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + eslint@9.39.3: + resolution: {integrity: sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -18179,8 +18191,8 @@ packages: esm-env@1.2.2: resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -22065,6 +22077,9 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.4: + resolution: {integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==} + minimatch@5.0.1: resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} engines: {node: '>=10'} @@ -33997,46 +34012,55 @@ snapshots: '@esbuild/win32-x64@0.27.3': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.19.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.39.3(jiti@2.6.1))': + dependencies: + eslint: 9.39.3(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.3(jiti@2.6.1))': dependencies: - eslint: 9.19.0(jiti@2.6.1) + eslint: 9.39.3(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.1': + '@eslint/config-array@0.21.1': dependencies: - '@eslint/object-schema': 2.1.5 + '@eslint/object-schema': 2.1.7 debug: 4.4.3(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.2.0': + '@eslint/eslintrc@3.3.4': dependencies: - ajv: 6.12.6 + ajv: 6.14.0 debug: 4.4.3(supports-color@8.1.1) - espree: 10.3.0 + espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 + js-yaml: 4.1.1 + minimatch: 3.1.4 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.19.0': {} + '@eslint/js@9.39.3': {} - '@eslint/object-schema@2.1.5': {} + '@eslint/object-schema@2.1.7': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.4.1': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.17.0 levn: 0.4.1 '@faker-js/faker@6.3.1': {} @@ -34309,7 +34333,7 @@ snapshots: '@humanwhocodes/retry@0.3.0': {} - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.3': {} '@iconify/types@2.0.0': {} @@ -36058,11 +36082,11 @@ snapshots: tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/eslint@21.3.11(@babel/traverse@7.28.0)(@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))(@zkochan/js-yaml@0.0.7)(eslint@9.19.0(jiti@2.6.1))(nx@21.3.11(@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)))': + '@nx/eslint@21.3.11(@babel/traverse@7.28.0)(@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))(@zkochan/js-yaml@0.0.7)(eslint@9.39.3(jiti@2.6.1))(nx@21.3.11(@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: '@nx/devkit': 21.3.11(nx@21.3.11(@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))) '@nx/js': 21.3.11(@babel/traverse@7.28.0)(@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))(nx@21.3.11(@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))) - eslint: 9.19.0(jiti@2.6.1) + eslint: 9.39.3(jiti@2.6.1) semver: 7.7.3 tslib: 2.8.1 typescript: 5.8.3 @@ -36253,10 +36277,10 @@ snapshots: '@nx/nx-win32-x64-msvc@21.3.11': optional: true - '@nx/plugin@21.3.11(@babel/traverse@7.28.0)(@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))(@types/node@20.19.10)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.5.0(esbuild@0.27.3))(eslint@9.19.0(jiti@2.6.1))(nx@21.3.11(@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)))(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@20.19.10)(typescript@5.6.2))(typescript@5.6.2)': + '@nx/plugin@21.3.11(@babel/traverse@7.28.0)(@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))(@types/node@20.19.10)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.5.0(esbuild@0.27.3))(eslint@9.39.3(jiti@2.6.1))(nx@21.3.11(@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)))(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@20.19.10)(typescript@5.6.2))(typescript@5.6.2)': dependencies: '@nx/devkit': 21.3.11(nx@21.3.11(@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))) - '@nx/eslint': 21.3.11(@babel/traverse@7.28.0)(@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))(@zkochan/js-yaml@0.0.7)(eslint@9.19.0(jiti@2.6.1))(nx@21.3.11(@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))) + '@nx/eslint': 21.3.11(@babel/traverse@7.28.0)(@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))(@zkochan/js-yaml@0.0.7)(eslint@9.39.3(jiti@2.6.1))(nx@21.3.11(@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))) '@nx/jest': 21.3.11(@babel/traverse@7.28.0)(@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))(@types/node@20.19.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.5.0(esbuild@0.27.3))(nx@21.3.11(@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)))(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.15))(@types/node@20.19.10)(typescript@5.6.2))(typescript@5.6.2) '@nx/js': 21.3.11(@babel/traverse@7.28.0)(@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))(nx@21.3.11(@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))) tslib: 2.8.1 @@ -43818,15 +43842,15 @@ snapshots: '@types/zen-observable@0.8.3': {} - '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.39.1 - '@typescript-eslint/type-utils': 8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.39.1 - eslint: 9.19.0(jiti@2.6.1) + eslint: 9.39.3(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -43835,14 +43859,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3)': + '@typescript-eslint/parser@8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.39.1 '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.39.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 9.19.0(jiti@2.6.1) + eslint: 9.39.3(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -43865,13 +43889,13 @@ snapshots: dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 9.19.0(jiti@2.6.1) + eslint: 9.39.3(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -43912,13 +43936,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3)': + '@typescript-eslint/utils@8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.19.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.3(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.39.1 '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.8.3) - eslint: 9.19.0(jiti@2.6.1) + eslint: 9.39.3(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -44808,9 +44832,9 @@ snapshots: dependencies: acorn: 8.14.0 - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk@7.2.0: {} @@ -44942,6 +44966,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@6.14.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.12.0: dependencies: fast-deep-equal: 3.1.3 @@ -48449,39 +48480,37 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.2.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} - eslint-visitor-keys@4.2.1: {} - eslint@9.19.0(jiti@2.6.1): + eslint@9.39.3(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.19.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 - '@eslint/core': 0.10.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.19.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.4 + '@eslint/js': 9.39.3 + '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 + '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -48505,11 +48534,11 @@ snapshots: esm-env@1.2.2: {} - espree@10.3.0: + espree@10.4.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -54025,6 +54054,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@3.1.4: + dependencies: + brace-expansion: 1.1.11 + minimatch@5.0.1: dependencies: brace-expansion: 2.0.1 @@ -60061,13 +60094,13 @@ snapshots: shiki: 0.14.1 typescript: 5.6.2 - typescript-eslint@8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3): + typescript-eslint@8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3) '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.39.1(eslint@9.19.0(jiti@2.6.1))(typescript@5.8.3) - eslint: 9.19.0(jiti@2.6.1) + '@typescript-eslint/utils': 8.39.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.39.3(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -61385,7 +61418,7 @@ snapshots: write-yaml-file@4.2.0: dependencies: - js-yaml: 4.1.0 + js-yaml: 4.1.1 write-file-atomic: 3.0.3 ws@7.5.10: {}