From 7bf0ecd23e4740087233f83895c9e275e451958b Mon Sep 17 00:00:00 2001 From: sr Date: Wed, 10 Apr 2024 20:24:21 +0530 Subject: [PATCH 1/7] feat: eazy sms provider --- .../app/integrations/dtos/credentials.dto.ts | 5 ++ .../static/images/providers/dark/eazy-sms.svg | 14 ++++ .../images/providers/dark/square/eazy-sms.svg | 14 ++++ .../images/providers/light/eazy-sms.svg | 14 ++++ .../providers/light/square/eazy-sms.svg | 14 ++++ .../integration/integration.schema.ts | 1 + .../src/consts/providers/channels/sms.ts | 9 +++ .../credentials/provider-credentials.ts | 16 ++++ .../src/consts/providers/provider.enum.ts | 2 + .../integration/credential.interface.ts | 1 + packages/application-generic/package.json | 1 + .../sms/handlers/eazy-sms.handler.ts | 17 ++++ .../src/factories/sms/handlers/index.ts | 1 + .../src/factories/sms/sms.factory.ts | 2 + pnpm-lock.yaml | 3 + providers/eazy-sms/.czrc | 3 + providers/eazy-sms/.eslintrc.json | 3 + providers/eazy-sms/.gitignore | 9 +++ providers/eazy-sms/README.md | 14 ++++ providers/eazy-sms/jest.config.js | 8 ++ providers/eazy-sms/package.json | 78 +++++++++++++++++++ providers/eazy-sms/src/index.ts | 1 + .../src/lib/eazy-sms.provider.spec.ts | 31 ++++++++ .../eazy-sms/src/lib/eazy-sms.provider.ts | 47 +++++++++++ providers/eazy-sms/tsconfig.json | 10 +++ providers/eazy-sms/tsconfig.module.json | 9 +++ 26 files changed, 327 insertions(+) create mode 100644 apps/web/public/static/images/providers/dark/eazy-sms.svg create mode 100644 apps/web/public/static/images/providers/dark/square/eazy-sms.svg create mode 100644 apps/web/public/static/images/providers/light/eazy-sms.svg create mode 100644 apps/web/public/static/images/providers/light/square/eazy-sms.svg create mode 100644 packages/application-generic/src/factories/sms/handlers/eazy-sms.handler.ts create mode 100644 providers/eazy-sms/.czrc create mode 100644 providers/eazy-sms/.eslintrc.json create mode 100644 providers/eazy-sms/.gitignore create mode 100644 providers/eazy-sms/README.md create mode 100644 providers/eazy-sms/jest.config.js create mode 100644 providers/eazy-sms/package.json create mode 100644 providers/eazy-sms/src/index.ts create mode 100644 providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts create mode 100644 providers/eazy-sms/src/lib/eazy-sms.provider.ts create mode 100644 providers/eazy-sms/tsconfig.json create mode 100644 providers/eazy-sms/tsconfig.module.json diff --git a/apps/api/src/app/integrations/dtos/credentials.dto.ts b/apps/api/src/app/integrations/dtos/credentials.dto.ts index d7fdecda7d5..1ed0a981357 100644 --- a/apps/api/src/app/integrations/dtos/credentials.dto.ts +++ b/apps/api/src/app/integrations/dtos/credentials.dto.ts @@ -201,4 +201,9 @@ export class CredentialsDto implements ICredentials { @IsString() @IsOptional() externalLink?: string; + + @ApiPropertyOptional() + @IsString() + @IsOptional() + channelId?: string; } diff --git a/apps/web/public/static/images/providers/dark/eazy-sms.svg b/apps/web/public/static/images/providers/dark/eazy-sms.svg new file mode 100644 index 00000000000..a3c93fc469e --- /dev/null +++ b/apps/web/public/static/images/providers/dark/eazy-sms.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/apps/web/public/static/images/providers/dark/square/eazy-sms.svg b/apps/web/public/static/images/providers/dark/square/eazy-sms.svg new file mode 100644 index 00000000000..a3c93fc469e --- /dev/null +++ b/apps/web/public/static/images/providers/dark/square/eazy-sms.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/apps/web/public/static/images/providers/light/eazy-sms.svg b/apps/web/public/static/images/providers/light/eazy-sms.svg new file mode 100644 index 00000000000..a3c93fc469e --- /dev/null +++ b/apps/web/public/static/images/providers/light/eazy-sms.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/apps/web/public/static/images/providers/light/square/eazy-sms.svg b/apps/web/public/static/images/providers/light/square/eazy-sms.svg new file mode 100644 index 00000000000..a3c93fc469e --- /dev/null +++ b/apps/web/public/static/images/providers/light/square/eazy-sms.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/libs/dal/src/repositories/integration/integration.schema.ts b/libs/dal/src/repositories/integration/integration.schema.ts index fe689fea143..72d0abc021e 100644 --- a/libs/dal/src/repositories/integration/integration.schema.ts +++ b/libs/dal/src/repositories/integration/integration.schema.ts @@ -59,6 +59,7 @@ const integrationSchema = new Schema( state: Schema.Types.String, externalLink: Schema.Types.String, apiToken: Schema.Types.String, + channelId: Schema.Types.String, }, active: { type: Schema.Types.Boolean, diff --git a/libs/shared/src/consts/providers/channels/sms.ts b/libs/shared/src/consts/providers/channels/sms.ts index 683dbfce02b..3a7f0c8a856 100644 --- a/libs/shared/src/consts/providers/channels/sms.ts +++ b/libs/shared/src/consts/providers/channels/sms.ts @@ -28,6 +28,7 @@ import { iSendSmsConfig, ringCentralConfig, brevoSmsConfig, + eazySmsConfig, } from '../credentials'; import { SmsProviderIdEnum } from '../provider.enum'; @@ -271,4 +272,12 @@ export const smsProviders: IProviderConfig[] = [ docReference: 'https://developers.brevo.com/reference/sendtransacsms', logoFileName: { light: 'brevo.svg', dark: 'brevo.svg' }, }, + { + id: SmsProviderIdEnum.EazySms, + displayName: `Eazy`, + channel: ChannelTypeEnum.SMS, + credentials: eazySmsConfig, + docReference: 'https://developers.eazy.im/#678805af-be7b-4487-93a4-c1007b7920f5', + logoFileName: { light: 'eazy-sms.svg', dark: 'eazy-sms.svg' }, + }, ]; diff --git a/libs/shared/src/consts/providers/credentials/provider-credentials.ts b/libs/shared/src/consts/providers/credentials/provider-credentials.ts index 7f07e91664a..0e26ff2e852 100644 --- a/libs/shared/src/consts/providers/credentials/provider-credentials.ts +++ b/libs/shared/src/consts/providers/credentials/provider-credentials.ts @@ -1104,3 +1104,19 @@ export const brevoSmsConfig: IConfigCredentials[] = [ }, ...smsConfigBase, ]; + +export const eazySmsConfig: IConfigCredentials[] = [ + { + key: CredentialsKeyEnum.ApiKey, + displayName: 'API Key', + type: 'string', + required: true, + }, + { + key: CredentialsKeyEnum.channelId, + displayName: 'SMS Channel Id', + type: 'string', + required: true, + description: 'Your SMS Channel Id', + }, +]; diff --git a/libs/shared/src/consts/providers/provider.enum.ts b/libs/shared/src/consts/providers/provider.enum.ts index 43b3a72df5c..328d8b6b4e1 100644 --- a/libs/shared/src/consts/providers/provider.enum.ts +++ b/libs/shared/src/consts/providers/provider.enum.ts @@ -44,6 +44,7 @@ export enum CredentialsKeyEnum { imageUrl = 'imageUrl', state = 'state', externalLink = 'externalLink', + channelId = 'channelId', } export enum EmailProviderIdEnum { @@ -100,6 +101,7 @@ export enum SmsProviderIdEnum { AzureSms = 'azure-sms', RingCentral = 'ring-central', BrevoSms = 'brevo-sms', + EazySms = 'eazy-sms', } export enum ChatProviderIdEnum { diff --git a/libs/shared/src/entities/integration/credential.interface.ts b/libs/shared/src/entities/integration/credential.interface.ts index 3bcce48491f..e91a6445400 100644 --- a/libs/shared/src/entities/integration/credential.interface.ts +++ b/libs/shared/src/entities/integration/credential.interface.ts @@ -42,4 +42,5 @@ export interface ICredentials { imageUrl?: string; state?: string; externalLink?: string; + channelId?: string; } diff --git a/packages/application-generic/package.json b/packages/application-generic/package.json index 830b1d4954e..5ba4d8ce00d 100644 --- a/packages/application-generic/package.json +++ b/packages/application-generic/package.json @@ -118,6 +118,7 @@ "@novu/testing": "^0.24.1", "@novu/twilio": "^0.24.1", "@novu/zulip": "^0.24.1", + "@novu/eazy-sms": "0.24.1", "@opentelemetry/api": "^1.7.0", "@opentelemetry/auto-instrumentations-node": "^0.40.2", "@opentelemetry/context-async-hooks": "^1.19.0", diff --git a/packages/application-generic/src/factories/sms/handlers/eazy-sms.handler.ts b/packages/application-generic/src/factories/sms/handlers/eazy-sms.handler.ts new file mode 100644 index 00000000000..1d97ff207ef --- /dev/null +++ b/packages/application-generic/src/factories/sms/handlers/eazy-sms.handler.ts @@ -0,0 +1,17 @@ +import { ChannelTypeEnum, ICredentials } from '@novu/shared'; +import { EazySmsProvider } from '@novu/eazy-sms'; +import { BaseSmsHandler } from './base.handler'; + +export class EazySmsHandler extends BaseSmsHandler { + constructor() { + super('eazy-sms', ChannelTypeEnum.SMS); + } + + buildProvider(credentials: ICredentials) { + const config = { + apiKey: credentials.apiKey, + channelId: credentials.channelId, + }; + this.provider = new EazySmsProvider(config); + } +} diff --git a/packages/application-generic/src/factories/sms/handlers/index.ts b/packages/application-generic/src/factories/sms/handlers/index.ts index 09a7ebc573a..933d17ae574 100644 --- a/packages/application-generic/src/factories/sms/handlers/index.ts +++ b/packages/application-generic/src/factories/sms/handlers/index.ts @@ -27,3 +27,4 @@ export * from './nexmo.handler'; export * from './isend-sms.handler'; export * from './ring-central.handler'; export * from './brevo-sms.handler'; +export * from './eazy-sms.handler'; diff --git a/packages/application-generic/src/factories/sms/sms.factory.ts b/packages/application-generic/src/factories/sms/sms.factory.ts index 7133bc1fba4..767591c3249 100644 --- a/packages/application-generic/src/factories/sms/sms.factory.ts +++ b/packages/application-generic/src/factories/sms/sms.factory.ts @@ -29,6 +29,7 @@ import { ISendSmsHandler, RingCentralHandler, BrevoSmsHandler, + EazySmsHandler, } from './handlers'; export class SmsFactory implements ISmsFactory { @@ -61,6 +62,7 @@ export class SmsFactory implements ISmsFactory { new ISendSmsHandler(), new RingCentralHandler(), new BrevoSmsHandler(), + new EazySmsHandler(), ]; getHandler(integration: IntegrationEntity) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1fc928f04b..41da3dd4040 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2973,6 +2973,9 @@ importers: '@novu/discord': specifier: ^0.24.1 version: link:../../providers/discord + '@novu/eazy-sms': + specifier: 0.24.1 + version: link:../../providers/eazy-sms '@novu/email-webhook': specifier: ^0.24.1 version: link:../../providers/email-webhook diff --git a/providers/eazy-sms/.czrc b/providers/eazy-sms/.czrc new file mode 100644 index 00000000000..d1bcc209ca1 --- /dev/null +++ b/providers/eazy-sms/.czrc @@ -0,0 +1,3 @@ +{ + "path": "cz-conventional-changelog" +} diff --git a/providers/eazy-sms/.eslintrc.json b/providers/eazy-sms/.eslintrc.json new file mode 100644 index 00000000000..ec40100be69 --- /dev/null +++ b/providers/eazy-sms/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "../../.eslintrc.js" +} diff --git a/providers/eazy-sms/.gitignore b/providers/eazy-sms/.gitignore new file mode 100644 index 00000000000..963d5292865 --- /dev/null +++ b/providers/eazy-sms/.gitignore @@ -0,0 +1,9 @@ +.idea/* +.nyc_output +build +node_modules +test +src/**.js +coverage +*.log +package-lock.json diff --git a/providers/eazy-sms/README.md b/providers/eazy-sms/README.md new file mode 100644 index 00000000000..c89a0f9f036 --- /dev/null +++ b/providers/eazy-sms/README.md @@ -0,0 +1,14 @@ +# Novu EazySms Provider + +A EazySms sms provider library for [@novu/node](https://github.com/novuhq/novu) + +## Usage + +```javascript +import { EazySmsProvider } from '@novu/eazy-sms'; + +const provider = new EazySmsProvider({ + apiKey: process.env.API_KEY, + channelId: process.env.CHANNEL_ID, +}); +``` diff --git a/providers/eazy-sms/jest.config.js b/providers/eazy-sms/jest.config.js new file mode 100644 index 00000000000..61faa20934a --- /dev/null +++ b/providers/eazy-sms/jest.config.js @@ -0,0 +1,8 @@ +/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + moduleNameMapper: { + axios: 'axios/dist/node/axios.cjs', + }, +}; diff --git a/providers/eazy-sms/package.json b/providers/eazy-sms/package.json new file mode 100644 index 00000000000..7a4b635fb0f --- /dev/null +++ b/providers/eazy-sms/package.json @@ -0,0 +1,78 @@ +{ + "name": "@novu/eazy-sms", + "version": "0.24.1", + "description": "A eazy-sms wrapper for novu", + "main": "build/main/index.js", + "typings": "build/main/index.d.ts", + "module": "build/module/index.js", + "private": false, + "repository": "https://github.com/novuhq/novu", + "license": "MIT", + "keywords": [], + "scripts": { + "prebuild": "rimraf build", + "build": "run-p build:*", + "build:main": "tsc -p tsconfig.json", + "build:module": "tsc -p tsconfig.module.json", + "fix": "run-s fix:*", + "fix:prettier": "prettier \"src/**/*.ts\" --write", + "fix:lint": "eslint src --ext .ts --fix", + "test": "run-s test:*", + "lint": "eslint src --ext .ts", + "test:unit": "jest src", + "watch:build": "tsc -p tsconfig.json -w", + "watch:test": "jest src --watch", + "reset-hard": "git clean -dfx && git reset --hard && yarn", + "prepare-release": "run-s reset-hard test" + }, + "publishConfig": { + "access": "public" + }, + "dependencies": { + "@novu/stateless": "0.24.1", + "axios": "^1.6.0" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "~1.0.1", + "@types/jest": "~27.5.2", + "cspell": "~6.19.2", + "jest": "~27.5.1", + "npm-run-all": "^4.1.5", + "nyc": "~15.1.0", + "prettier": "~2.8.0", + "rimraf": "~3.0.2", + "ts-jest": "~27.1.5", + "ts-node": "~10.9.1", + "typescript": "4.9.5" + }, + "files": [ + "build/main", + "build/module", + "!**/*.spec.*", + "!**/*.json", + "CHANGELOG.md", + "LICENSE", + "README.md" + ], + "ava": { + "failFast": true, + "timeout": "60s", + "typescript": { + "rewritePaths": { + "src/": "build/main/" + } + }, + "files": [ + "!build/module/**" + ] + }, + "prettier": { + "singleQuote": true + }, + "nyc": { + "extends": "@istanbuljs/nyc-config-typescript", + "exclude": [ + "**/*.spec.js" + ] + } +} diff --git a/providers/eazy-sms/src/index.ts b/providers/eazy-sms/src/index.ts new file mode 100644 index 00000000000..c86208f2764 --- /dev/null +++ b/providers/eazy-sms/src/index.ts @@ -0,0 +1 @@ +export * from './lib/eazy-sms.provider'; diff --git a/providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts b/providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts new file mode 100644 index 00000000000..16eac8c6684 --- /dev/null +++ b/providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts @@ -0,0 +1,31 @@ +import { EazySmsProvider } from './eazy-sms.provider'; + +const mockConfig = { + apiKey: 'test-key', + channelId: 'test-key@sms.eazy.im', +}; + +const mockBulkSMSMessage = { + to: '1234567890', + content: 'sms content', +}; + +test('should trigger eazy-sms library correctly', async () => { + const smsProvider = new EazySmsProvider(mockConfig); + const spy = jest + .spyOn(smsProvider, 'sendMessage') + .mockImplementation(async () => { + return { + id: '2574a339-86ff', + date: new Date().toISOString(), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any; + }); + + await smsProvider.sendMessage(mockBulkSMSMessage); + expect(spy).toHaveBeenCalled(); + expect(spy).toHaveBeenCalledWith({ + content: 'sms content', + to: '1234567890', + }); +}); diff --git a/providers/eazy-sms/src/lib/eazy-sms.provider.ts b/providers/eazy-sms/src/lib/eazy-sms.provider.ts new file mode 100644 index 00000000000..823fa615df6 --- /dev/null +++ b/providers/eazy-sms/src/lib/eazy-sms.provider.ts @@ -0,0 +1,47 @@ +import { + ChannelTypeEnum, + ISendMessageSuccessResponse, + ISmsOptions, + ISmsProvider, +} from '@novu/stateless'; +import axios from 'axios'; + +export class EazySmsProvider implements ISmsProvider { + id = 'eazy-sms'; + channelType = ChannelTypeEnum.SMS as ChannelTypeEnum.SMS; + public readonly DEFAULT_BASE_URL = 'https://api.eazy.im/v3'; + public readonly EAZY_SMS_CHANNEL = '@sms.eazy.im'; + constructor( + private config: { + apiKey: string; + channelId: string; + } + ) {} + + async sendMessage( + options: ISmsOptions + ): Promise { + const payload = { + message: { + text: options.content, + type: 'text', + }, + }; + + const response = await axios.post( + `${this.DEFAULT_BASE_URL}/channels/${this.config.channelId}/messages/${options.to}${this.EAZY_SMS_CHANNEL}`, + JSON.stringify(payload), + { + headers: { + Authorization: `Bearer ${this.config.apiKey}`, + 'Content-Type': 'application/json', + }, + } + ); + + return { + id: response.data.id, + date: new Date().toISOString(), + }; + } +} diff --git a/providers/eazy-sms/tsconfig.json b/providers/eazy-sms/tsconfig.json new file mode 100644 index 00000000000..5b8120fea36 --- /dev/null +++ b/providers/eazy-sms/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "build/main", + "rootDir": "src", + "types": ["node", "jest"] + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules/**"] +} diff --git a/providers/eazy-sms/tsconfig.module.json b/providers/eazy-sms/tsconfig.module.json new file mode 100644 index 00000000000..79be3a5c40b --- /dev/null +++ b/providers/eazy-sms/tsconfig.module.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "esnext", + "outDir": "build/module", + "module": "esnext" + }, + "exclude": ["node_modules/**"] +} From f149ac3a68a32466ac139f5295203a804063767e Mon Sep 17 00:00:00 2001 From: sr Date: Wed, 10 Apr 2024 20:54:49 +0530 Subject: [PATCH 2/7] feat: eazy sms provider --- providers/eazy-sms/src/lib/eazy-sms.provider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/eazy-sms/src/lib/eazy-sms.provider.ts b/providers/eazy-sms/src/lib/eazy-sms.provider.ts index 823fa615df6..3aec9da5ccf 100644 --- a/providers/eazy-sms/src/lib/eazy-sms.provider.ts +++ b/providers/eazy-sms/src/lib/eazy-sms.provider.ts @@ -30,7 +30,7 @@ export class EazySmsProvider implements ISmsProvider { const response = await axios.post( `${this.DEFAULT_BASE_URL}/channels/${this.config.channelId}/messages/${options.to}${this.EAZY_SMS_CHANNEL}`, - JSON.stringify(payload), + payload, { headers: { Authorization: `Bearer ${this.config.apiKey}`, From 4c51f2f578fdabb2e746ac09baf91dffecd4d3c7 Mon Sep 17 00:00:00 2001 From: sr Date: Wed, 10 Apr 2024 21:01:23 +0530 Subject: [PATCH 3/7] feat: eazy sms provider --- providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts b/providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts index 16eac8c6684..13d81560e87 100644 --- a/providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts +++ b/providers/eazy-sms/src/lib/eazy-sms.provider.spec.ts @@ -5,7 +5,7 @@ const mockConfig = { channelId: 'test-key@sms.eazy.im', }; -const mockBulkSMSMessage = { +const mockSMSMessage = { to: '1234567890', content: 'sms content', }; @@ -22,7 +22,7 @@ test('should trigger eazy-sms library correctly', async () => { } as any; }); - await smsProvider.sendMessage(mockBulkSMSMessage); + await smsProvider.sendMessage(mockSMSMessage); expect(spy).toHaveBeenCalled(); expect(spy).toHaveBeenCalledWith({ content: 'sms content', From 1ee283b259b7548fcb6a3cee6bf8341f254b3874 Mon Sep 17 00:00:00 2001 From: Weasely <44962383+sr-26@users.noreply.github.com> Date: Thu, 11 Apr 2024 19:36:58 +0530 Subject: [PATCH 4/7] Update providers/eazy-sms/README.md fix: readability Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- providers/eazy-sms/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/providers/eazy-sms/README.md b/providers/eazy-sms/README.md index c89a0f9f036..39e51a508e4 100644 --- a/providers/eazy-sms/README.md +++ b/providers/eazy-sms/README.md @@ -1,4 +1,4 @@ -# Novu EazySms Provider +# Novu Eazy SMS Provider A EazySms sms provider library for [@novu/node](https://github.com/novuhq/novu) @@ -11,4 +11,3 @@ const provider = new EazySmsProvider({ apiKey: process.env.API_KEY, channelId: process.env.CHANNEL_ID, }); -``` From 292be8726af53253dcd16070e93f9b753cf6acb6 Mon Sep 17 00:00:00 2001 From: sr Date: Thu, 11 Apr 2024 19:41:46 +0530 Subject: [PATCH 5/7] feat: eazy sms provider --- packages/application-generic/package.json | 2 +- providers/eazy-sms/README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/application-generic/package.json b/packages/application-generic/package.json index 5ba4d8ce00d..1ccdc022914 100644 --- a/packages/application-generic/package.json +++ b/packages/application-generic/package.json @@ -118,7 +118,7 @@ "@novu/testing": "^0.24.1", "@novu/twilio": "^0.24.1", "@novu/zulip": "^0.24.1", - "@novu/eazy-sms": "0.24.1", + "@novu/eazy-sms": "^0.24.1", "@opentelemetry/api": "^1.7.0", "@opentelemetry/auto-instrumentations-node": "^0.40.2", "@opentelemetry/context-async-hooks": "^1.19.0", diff --git a/providers/eazy-sms/README.md b/providers/eazy-sms/README.md index 39e51a508e4..8b2301cff4e 100644 --- a/providers/eazy-sms/README.md +++ b/providers/eazy-sms/README.md @@ -11,3 +11,4 @@ const provider = new EazySmsProvider({ apiKey: process.env.API_KEY, channelId: process.env.CHANNEL_ID, }); +``` From c84851a329e3748a1c1dcf6baccbea5992b6deaf Mon Sep 17 00:00:00 2001 From: sr Date: Tue, 16 Apr 2024 20:42:23 +0530 Subject: [PATCH 6/7] fix: added eazy sms in sort list --- .../integrations/components/multi-provider/sort-providers.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/web/src/pages/integrations/components/multi-provider/sort-providers.ts b/apps/web/src/pages/integrations/components/multi-provider/sort-providers.ts index ac3910cf9b5..d6ee50919ac 100644 --- a/apps/web/src/pages/integrations/components/multi-provider/sort-providers.ts +++ b/apps/web/src/pages/integrations/components/multi-provider/sort-providers.ts @@ -75,6 +75,7 @@ const providers: Record = { SmsProviderIdEnum.Simpletexting, SmsProviderIdEnum.BrevoSms, SmsProviderIdEnum.ISendSms, + SmsProviderIdEnum.EazySms, ].sort(), ], }; From 6b1003a7d4e6f15a76f955c395ba94c9ed2be27b Mon Sep 17 00:00:00 2001 From: sr Date: Mon, 22 Apr 2024 22:32:04 +0530 Subject: [PATCH 7/7] fix: added eazy in cspell --- .cspell.json | 1 + pnpm-lock.yaml | 501 ++++++++++++++++++++++++++++--------------------- 2 files changed, 293 insertions(+), 209 deletions(-) diff --git a/.cspell.json b/.cspell.json index 5b4cbf3728f..5dcfd5de579 100644 --- a/.cspell.json +++ b/.cspell.json @@ -623,6 +623,7 @@ "cafebabe", "Icann", "limitbar", + "eazy" ], "flagWords": [], "patterns": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index beb02d92f31..c8f904cf086 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3041,7 +3041,7 @@ importers: specifier: ^0.24.1 version: link:../../providers/discord '@novu/eazy-sms': - specifier: 0.24.1 + specifier: ^0.24.1 version: link:../../providers/eazy-sms '@novu/email-webhook': specifier: ^0.24.1 @@ -4578,6 +4578,49 @@ importers: specifier: 4.9.5 version: 4.9.5 + providers/eazy-sms: + dependencies: + '@novu/stateless': + specifier: 0.24.1 + version: link:../../packages/stateless + axios: + specifier: ^1.6.0 + version: 1.6.7 + devDependencies: + '@istanbuljs/nyc-config-typescript': + specifier: ~1.0.1 + version: 1.0.2(nyc@15.1.0) + '@types/jest': + specifier: ~27.5.2 + version: 27.5.2 + cspell: + specifier: ~6.19.2 + version: 6.19.2 + jest: + specifier: ~27.5.1 + version: 27.5.1(ts-node@10.9.1) + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 + nyc: + specifier: ~15.1.0 + version: 15.1.0 + prettier: + specifier: ~2.8.0 + version: 2.8.8 + rimraf: + specifier: ~3.0.2 + version: 3.0.2 + ts-jest: + specifier: ~27.1.5 + version: 27.1.5(@babel/core@7.24.4)(@types/jest@27.5.2)(jest@27.5.1)(typescript@4.9.5) + ts-node: + specifier: ~10.9.1 + version: 10.9.1(@types/node@14.18.42)(typescript@4.9.5) + typescript: + specifier: 4.9.5 + version: 4.9.5 + providers/email-webhook: dependencies: '@novu/stateless': @@ -10130,7 +10173,7 @@ packages: dependencies: '@babel/types': 7.23.0 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 /@babel/generator@7.24.4: @@ -10768,7 +10811,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.0 + dev: true /@babel/parser@7.24.4: resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} @@ -10889,6 +10933,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.4): + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-proposal-decorators@7.21.0(@babel/core@7.23.2): resolution: {integrity: sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==} engines: {node: '>=6.9.0'} @@ -10903,18 +10958,18 @@ packages: '@babel/plugin-syntax-decorators': 7.21.0(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.23.2): + /@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.24.4): resolution: {integrity: sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.24.4) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.23.2) + '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.24.4) dev: true /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.2): @@ -11098,6 +11153,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.4): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -11193,13 +11257,13 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.23.2): + /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.24.4): resolution: {integrity: sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -11884,6 +11948,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.11): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -14183,17 +14257,17 @@ packages: '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.2): + /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.24.4): resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.24.4) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.24.4) dev: true /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.22.11): @@ -14883,18 +14957,18 @@ packages: '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.24.4) dev: true - /@babel/preset-typescript@7.23.2(@babel/core@7.23.2): + /@babel/preset-typescript@7.23.2(@babel/core@7.24.4): resolution: {integrity: sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.24.4) dev: true /@babel/register@7.21.0(@babel/core@7.23.2): @@ -19090,11 +19164,11 @@ packages: resolution: {integrity: sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 14.18.42 chalk: 4.1.2 jest-message-util: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 slash: 3.0.0 dev: true @@ -19185,7 +19259,7 @@ packages: jest-runner: 29.5.0 jest-runtime: 29.5.0 jest-snapshot: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 jest-watcher: 29.5.0 micromatch: 4.0.5 @@ -19274,7 +19348,7 @@ packages: resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 /@jest/expect-utils@29.7.0: resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} @@ -19288,7 +19362,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: expect: 29.5.0 - jest-snapshot: 29.5.0 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true @@ -19324,7 +19398,7 @@ packages: '@types/node': 14.18.42 jest-message-util: 29.5.0 jest-mock: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 dev: true /@jest/fake-timers@29.7.0: @@ -19354,7 +19428,7 @@ packages: dependencies: '@jest/environment': 29.5.0 '@jest/expect': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 jest-mock: 29.5.0 transitivePeerDependencies: - supports-color @@ -19423,8 +19497,8 @@ packages: '@jest/console': 29.5.0 '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@jridgewell/trace-mapping': 0.3.19 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 '@types/node': 14.18.42 chalk: 4.1.2 collect-v8-coverage: 1.0.1 @@ -19437,7 +19511,7 @@ packages: istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 jest-message-util: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-worker: 29.5.0 slash: 3.0.0 string-length: 4.0.2 @@ -19461,7 +19535,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 '@types/node': 14.18.42 chalk: 4.1.2 collect-v8-coverage: 1.0.1 @@ -19516,7 +19590,7 @@ packages: resolution: {integrity: sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 dev: true @@ -19525,7 +19599,7 @@ packages: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 dev: true @@ -19555,7 +19629,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true @@ -19586,9 +19660,9 @@ packages: resolution: {integrity: sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.5.0 + '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 - jest-haste-map: 29.5.0 + jest-haste-map: 29.7.0 slash: 3.0.0 dev: true @@ -19606,7 +19680,7 @@ packages: resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -19651,9 +19725,9 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -19733,7 +19807,6 @@ packages: '@types/node': 14.18.42 '@types/yargs': 17.0.24 chalk: 4.1.2 - dev: true /@jonkemp/package-utils@1.0.8: resolution: {integrity: sha512-bIcKnH5YmtTYr7S6J3J86dn/rFiklwRpOqbTOQ9C0WMmR9FKHVb3bxs2UYfqEmNb93O4nbA97sb6rtz33i9SyA==} @@ -19745,7 +19818,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} @@ -19775,7 +19848,7 @@ packages: resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} @@ -22049,7 +22122,7 @@ packages: identity-obj-proxy: 3.0.0 jest-config: 29.5.0(@types/node@16.11.7)(ts-node@10.9.1) jest-resolve: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 resolve.exports: 1.1.0 tslib: 2.6.2 transitivePeerDependencies: @@ -22075,20 +22148,20 @@ packages: verdaccio: optional: true dependencies: - '@babel/core': 7.23.2 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2) - '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.23.2) - '@babel/plugin-transform-runtime': 7.23.2(@babel/core@7.23.2) - '@babel/preset-env': 7.23.2(@babel/core@7.23.2) - '@babel/preset-typescript': 7.23.2(@babel/core@7.23.2) + '@babel/core': 7.24.4 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.4) + '@babel/plugin-transform-runtime': 7.23.2(@babel/core@7.24.4) + '@babel/preset-env': 7.23.2(@babel/core@7.24.4) + '@babel/preset-typescript': 7.23.2(@babel/core@7.24.4) '@babel/runtime': 7.23.2 '@nrwl/js': 16.10.0(@types/node@16.11.7)(nx@16.10.0)(typescript@4.9.5) '@nx/devkit': 16.10.0(nx@16.10.0) '@nx/workspace': 16.10.0 '@phenomnomnominal/tsquery': 5.0.1(typescript@4.9.5) - babel-plugin-const-enum: 1.2.0(@babel/core@7.23.2) + babel-plugin-const-enum: 1.2.0(@babel/core@7.24.4) babel-plugin-macros: 2.8.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.23.2) + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.24.4) chalk: 4.1.2 columnify: 1.6.0 detect-port: 1.5.1 @@ -22125,20 +22198,20 @@ packages: verdaccio: optional: true dependencies: - '@babel/core': 7.23.2 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2) - '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.23.2) - '@babel/plugin-transform-runtime': 7.23.2(@babel/core@7.23.2) - '@babel/preset-env': 7.23.2(@babel/core@7.23.2) - '@babel/preset-typescript': 7.23.2(@babel/core@7.23.2) + '@babel/core': 7.24.4 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.4) + '@babel/plugin-transform-runtime': 7.23.2(@babel/core@7.24.4) + '@babel/preset-env': 7.23.2(@babel/core@7.24.4) + '@babel/preset-typescript': 7.23.2(@babel/core@7.24.4) '@babel/runtime': 7.23.2 '@nrwl/js': 16.10.0(@types/node@16.11.7)(nx@16.10.0)(typescript@5.1.6) '@nx/devkit': 16.10.0(nx@16.10.0) '@nx/workspace': 16.10.0 '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) - babel-plugin-const-enum: 1.2.0(@babel/core@7.23.2) + babel-plugin-const-enum: 1.2.0(@babel/core@7.24.4) babel-plugin-macros: 2.8.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.23.2) + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.24.4) chalk: 4.1.2 columnify: 1.6.0 detect-port: 1.5.1 @@ -25936,7 +26009,7 @@ packages: lodash-es: 4.17.21 dev: false - /@rollup/plugin-babel@5.3.1(@babel/core@7.23.2)(rollup@2.79.1): + /@rollup/plugin-babel@5.3.1(@babel/core@7.24.4)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -25947,7 +26020,7 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 @@ -30098,7 +30171,7 @@ packages: execa: 5.1.1 express: 4.18.2 find-up: 5.0.0 - fs-extra: 11.1.1 + fs-extra: 11.2.0 get-npm-tarball-url: 2.0.3 get-port: 5.1.1 giget: 1.1.2 @@ -30106,7 +30179,7 @@ packages: jscodeshift: 0.14.0(@babel/preset-env@7.23.2) leven: 3.1.0 ora: 5.4.1 - prettier: 2.8.7 + prettier: 2.8.8 prompts: 2.4.2 puppeteer-core: 2.1.1 read-pkg-up: 7.0.1 @@ -30379,7 +30452,7 @@ packages: '@babel/types': 7.23.0 '@storybook/csf': 0.1.1 '@storybook/types': 7.4.2 - fs-extra: 11.1.1 + fs-extra: 11.2.0 recast: 0.23.4 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -31071,7 +31144,7 @@ packages: resolution: {integrity: sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@svgr/babel-preset': 5.5.0 '@svgr/hast-util-to-babel-ast': 5.5.0 svg-parser: 2.0.4 @@ -33698,7 +33771,7 @@ packages: /@vue/compiler-core@3.4.19: resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} dependencies: - '@babel/parser': 7.23.9 + '@babel/parser': 7.24.4 '@vue/shared': 3.4.19 entities: 4.5.0 estree-walker: 2.0.2 @@ -34263,20 +34336,12 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.10.0 - /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.3 - dev: true /acorn-jsx@5.3.2(acorn@8.8.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -35413,7 +35478,7 @@ packages: '@babel/core': 7.21.4 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__core': 7.20.0 + '@types/babel__core': 7.20.3 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 27.5.1(@babel/core@7.21.4) chalk: 4.1.2 @@ -35423,18 +35488,18 @@ packages: - supports-color dev: true - /babel-jest@27.5.1(@babel/core@7.23.2): + /babel-jest@27.5.1(@babel/core@7.24.4): resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__core': 7.20.0 + '@types/babel__core': 7.20.3 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1(@babel/core@7.23.2) + babel-preset-jest: 27.5.1(@babel/core@7.24.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -35442,17 +35507,17 @@ packages: - supports-color dev: true - /babel-jest@29.5.0(@babel/core@7.23.2): + /babel-jest@29.5.0(@babel/core@7.24.4): resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.2 - '@jest/transform': 29.5.0 + '@babel/core': 7.24.4 + '@jest/transform': 29.7.0 '@types/babel__core': 7.20.0 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.5.0(@babel/core@7.23.2) + babel-preset-jest: 29.5.0(@babel/core@7.24.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -35460,17 +35525,17 @@ packages: - supports-color dev: true - /babel-jest@29.7.0(@babel/core@7.23.2): + /babel-jest@29.7.0(@babel/core@7.24.4): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.3 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.2) + babel-preset-jest: 29.6.3(@babel/core@7.24.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -35538,15 +35603,15 @@ packages: resolution: {integrity: sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw==} dev: true - /babel-plugin-const-enum@1.2.0(@babel/core@7.23.2): + /babel-plugin-const-enum@1.2.0(@babel/core@7.24.4): resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) - '@babel/traverse': 7.23.2 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.24.4) + '@babel/traverse': 7.24.1 transitivePeerDependencies: - supports-color dev: true @@ -35583,8 +35648,8 @@ packages: resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 '@types/babel__core': 7.20.3 '@types/babel__traverse': 7.18.3 dev: true @@ -35593,8 +35658,8 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 '@types/babel__core': 7.20.3 '@types/babel__traverse': 7.18.3 dev: true @@ -35782,7 +35847,7 @@ packages: resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==} dev: true - /babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.23.2): + /babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.24.4): resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} peerDependencies: '@babel/core': ^7 @@ -35791,7 +35856,7 @@ packages: '@babel/traverse': optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -35835,6 +35900,26 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) dev: true + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.4): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + dev: true + /babel-preset-jest@27.5.1(@babel/core@7.21.4): resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -35846,37 +35931,37 @@ packages: babel-preset-current-node-syntax: 1.0.1(@babel/core@7.21.4) dev: true - /babel-preset-jest@27.5.1(@babel/core@7.23.2): + /babel-preset-jest@27.5.1(@babel/core@7.24.4): resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) dev: true - /babel-preset-jest@29.5.0(@babel/core@7.23.2): + /babel-preset-jest@29.5.0(@babel/core@7.24.4): resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 babel-plugin-jest-hoist: 29.5.0 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) dev: true - /babel-preset-jest@29.6.3(@babel/core@7.23.2): + /babel-preset-jest@29.6.3(@babel/core@7.24.4): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) dev: true /babel-preset-react-app@10.0.1: @@ -37516,7 +37601,7 @@ packages: dev: true /concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /concat-stream@1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} @@ -39049,6 +39134,7 @@ packages: dependencies: ms: 2.1.3 supports-color: 5.5.0 + dev: true /debug@3.2.7(supports-color@8.1.1): resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -40343,7 +40429,7 @@ packages: /eslint-import-resolver-node@0.3.7: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) is-core-module: 2.13.0 resolve: 1.22.2 transitivePeerDependencies: @@ -40358,7 +40444,7 @@ packages: webpack: '>=1.11.0' dependencies: array.prototype.find: 2.2.2 - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) enhanced-resolve: 0.9.1 eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.58.0)(eslint-import-resolver-webpack@0.13.7)(eslint@8.38.0) find-root: 1.1.0 @@ -40396,7 +40482,7 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 5.58.0(eslint@8.38.0)(typescript@4.9.5) - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) eslint: 8.38.0 eslint-import-resolver-node: 0.3.7 eslint-import-resolver-webpack: 0.13.7(eslint-plugin-import@2.28.1)(webpack@5.78.0) @@ -40426,7 +40512,7 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 5.58.0(eslint@8.51.0)(typescript@4.9.5) - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) eslint: 8.51.0 eslint-import-resolver-node: 0.3.7 eslint-import-resolver-webpack: 0.13.7(eslint-plugin-import@2.28.1)(webpack@5.78.0) @@ -40507,7 +40593,7 @@ packages: array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.38.0 eslint-import-resolver-node: 0.3.7 @@ -40542,7 +40628,7 @@ packages: array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.51.0 eslint-import-resolver-node: 0.3.7 @@ -41035,8 +41121,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 /esprima@4.0.1: @@ -44973,7 +45059,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -44985,7 +45071,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@babel/parser': 7.23.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 @@ -45163,19 +45249,19 @@ packages: dependencies: '@jest/environment': 29.5.0 '@jest/expect': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 14.18.42 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 jest-each: 29.5.0 - jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-runtime: 29.5.0 - jest-snapshot: 29.5.0 - jest-util: 29.5.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 p-limit: 3.1.0 pretty-format: 29.7.0 pure-rand: 6.0.1 @@ -45262,7 +45348,7 @@ packages: graceful-fs: 4.2.11 import-local: 3.1.0 jest-config: 29.5.0(@types/node@14.18.42)(ts-node@10.9.1) - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 prompts: 2.4.2 yargs: 17.7.2 @@ -45290,7 +45376,7 @@ packages: graceful-fs: 4.2.11 import-local: 3.1.0 jest-config: 29.5.0(@types/node@18.15.11)(ts-node@10.9.1) - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 prompts: 2.4.2 yargs: 17.7.2 @@ -45337,10 +45423,10 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/test-sequencer': 27.5.1 '@jest/types': 27.5.1 - babel-jest: 27.5.1(@babel/core@7.23.2) + babel-jest: 27.5.1(@babel/core@7.24.4) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -45381,11 +45467,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/test-sequencer': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 14.18.42 - babel-jest: 29.5.0(@babel/core@7.23.2) + babel-jest: 29.5.0(@babel/core@7.24.4) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -45393,11 +45479,11 @@ packages: graceful-fs: 4.2.11 jest-circus: 29.5.0 jest-environment-node: 29.5.0 - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 jest-regex-util: 29.4.3 jest-resolve: 29.5.0 jest-runner: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 micromatch: 4.0.5 parse-json: 5.2.0 @@ -45421,11 +45507,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/test-sequencer': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 16.11.7 - babel-jest: 29.5.0(@babel/core@7.23.2) + babel-jest: 29.5.0(@babel/core@7.24.4) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -45433,11 +45519,11 @@ packages: graceful-fs: 4.2.11 jest-circus: 29.5.0 jest-environment-node: 29.5.0 - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 jest-regex-util: 29.4.3 jest-resolve: 29.5.0 jest-runner: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 micromatch: 4.0.5 parse-json: 5.2.0 @@ -45461,11 +45547,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/test-sequencer': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 18.15.11 - babel-jest: 29.5.0(@babel/core@7.23.2) + babel-jest: 29.5.0(@babel/core@7.24.4) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -45473,11 +45559,11 @@ packages: graceful-fs: 4.2.11 jest-circus: 29.5.0 jest-environment-node: 29.5.0 - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 jest-regex-util: 29.4.3 jest-resolve: 29.5.0 jest-runner: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 micromatch: 4.0.5 parse-json: 5.2.0 @@ -45501,11 +45587,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 14.18.42 - babel-jest: 29.7.0(@babel/core@7.23.2) + babel-jest: 29.7.0(@babel/core@7.24.4) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -45567,7 +45653,6 @@ packages: diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 - dev: true /jest-docblock@27.5.1: resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==} @@ -45605,10 +45690,10 @@ packages: resolution: {integrity: sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 chalk: 4.1.2 - jest-get-type: 29.4.3 - jest-util: 29.5.0 + jest-get-type: 29.6.3 + jest-util: 29.7.0 pretty-format: 29.7.0 dev: true @@ -45682,10 +45767,10 @@ packages: dependencies: '@jest/environment': 29.5.0 '@jest/fake-timers': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 14.18.42 jest-mock: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 dev: true /jest-environment-node@29.7.0: @@ -45726,7 +45811,6 @@ packages: /jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true /jest-haste-map@27.5.1: resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==} @@ -45752,14 +45836,14 @@ packages: resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 '@types/node': 14.18.42 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 29.4.3 - jest-util: 29.5.0 + jest-util: 29.7.0 jest-worker: 29.5.0 micromatch: 4.0.5 walker: 1.0.8 @@ -45822,7 +45906,7 @@ packages: resolution: {integrity: sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 pretty-format: 29.7.0 dev: true @@ -45859,8 +45943,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.5.0 - jest-get-type: 29.4.3 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 pretty-format: 29.7.0 /jest-matcher-utils@29.7.0: @@ -45892,7 +45976,7 @@ packages: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.24.2 '@jest/types': 28.1.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -45946,7 +46030,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/node': 14.18.42 - jest-util: 29.5.0 + jest-util: 29.7.0 dev: true /jest-mock@29.7.0: @@ -46072,7 +46156,7 @@ packages: graceful-fs: 4.2.11 jest-haste-map: 29.5.0 jest-pnp-resolver: 1.2.3(jest-resolve@29.5.0) - jest-util: 29.5.0 + jest-util: 29.7.0 jest-validate: 29.5.0 resolve: 1.22.2 resolve.exports: 2.0.2 @@ -46130,24 +46214,24 @@ packages: resolution: {integrity: sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.5.0 + '@jest/console': 29.7.0 '@jest/environment': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 14.18.42 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 jest-docblock: 29.4.3 jest-environment-node: 29.5.0 - jest-haste-map: 29.5.0 + jest-haste-map: 29.7.0 jest-leak-detector: 29.5.0 - jest-message-util: 29.5.0 - jest-resolve: 29.5.0 - jest-runtime: 29.5.0 - jest-util: 29.5.0 - jest-watcher: 29.5.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 jest-worker: 29.5.0 p-limit: 3.1.0 source-map-support: 0.5.13 @@ -46224,7 +46308,7 @@ packages: '@jest/source-map': 29.4.3 '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 14.18.42 chalk: 4.1.2 cjs-module-lexer: 1.2.2 @@ -46237,7 +46321,7 @@ packages: jest-regex-util: 29.4.3 jest-resolve: 29.5.0 jest-snapshot: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: @@ -46316,26 +46400,26 @@ packages: resolution: {integrity: sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.4 '@babel/generator': 7.23.0 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.24.4) '@babel/traverse': 7.23.2 '@babel/types': 7.23.0 '@jest/expect-utils': 29.5.0 '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/babel__traverse': 7.18.3 '@types/prettier': 2.7.2 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) chalk: 4.1.2 expect: 29.5.0 graceful-fs: 4.2.11 - jest-diff: 29.5.0 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.5.0 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 jest-message-util: 29.5.0 - jest-util: 29.5.0 + jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 semver: 7.5.4 @@ -46347,15 +46431,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.2 - '@babel/generator': 7.23.0 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) - '@babel/types': 7.23.0 + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.24.4) + '@babel/types': 7.24.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -46420,7 +46504,6 @@ packages: ci-info: 3.8.0 graceful-fs: 4.2.11 picomatch: 2.3.1 - dev: true /jest-validate@27.5.1: resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} @@ -46438,10 +46521,10 @@ packages: resolution: {integrity: sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 dev: true @@ -46506,12 +46589,12 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 + '@jest/types': 29.6.3 '@types/node': 14.18.42 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.5.0 + jest-util: 29.7.0 string-length: 4.0.2 dev: true @@ -46560,7 +46643,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 14.18.42 - jest-util: 29.5.0 + jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -46787,7 +46870,7 @@ packages: hasBin: true requiresBuild: true dependencies: - '@babel/parser': 7.23.9 + '@babel/parser': 7.24.4 '@jsdoc/salty': 0.2.5 '@types/markdown-it': 12.2.3 bluebird: 3.7.2 @@ -49895,7 +49978,7 @@ packages: hasBin: true requiresBuild: true dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) iconv-lite: 0.6.3 sax: 1.2.4 transitivePeerDependencies: @@ -52287,7 +52370,7 @@ packages: engines: {node: '>= 0.12.0'} dependencies: async: 2.6.4 - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) mkdirp: 0.5.6 transitivePeerDependencies: - supports-color @@ -56164,7 +56247,7 @@ packages: jest-worker: 26.6.2 rollup: 2.79.1 serialize-javascript: 4.0.0 - terser: 5.16.9 + terser: 5.22.0 dev: true /rollup-plugin-terser@7.0.2(rollup@3.20.2): @@ -58211,7 +58294,7 @@ packages: color-name: 1.1.4 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.18.2 @@ -58456,7 +58539,7 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 '@swc/core': 1.3.49 esbuild: 0.18.20 jest-worker: 27.5.1 @@ -58506,7 +58589,7 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 esbuild: 0.18.17 jest-worker: 27.5.1 schema-utils: 3.1.2 @@ -58531,7 +58614,7 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.1.2 serialize-javascript: 6.0.1 @@ -59235,8 +59318,8 @@ packages: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 '@types/node': 16.11.7 - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.11.3 + acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -59266,8 +59349,8 @@ packages: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 '@types/node': 16.11.7 - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.11.3 + acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -59297,8 +59380,8 @@ packages: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 '@types/node': 20.5.1 - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.11.3 + acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -60325,7 +60408,7 @@ packages: resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.9.0 dev: true @@ -61586,10 +61669,10 @@ packages: engines: {node: '>=10.0.0'} dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) - '@babel/core': 7.23.2 - '@babel/preset-env': 7.23.2(@babel/core@7.23.2) + '@babel/core': 7.24.4 + '@babel/preset-env': 7.23.2(@babel/core@7.24.4) '@babel/runtime': 7.23.2 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.2)(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.24.4)(rollup@2.79.1) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3