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/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/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(),
],
};
diff --git a/libs/dal/src/repositories/integration/integration.schema.ts b/libs/dal/src/repositories/integration/integration.schema.ts
index bec9530f52a..d1b9f1f6646 100644
--- a/libs/dal/src/repositories/integration/integration.schema.ts
+++ b/libs/dal/src/repositories/integration/integration.schema.ts
@@ -58,6 +58,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..1ccdc022914 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 9a73594a527..c8f904cf086 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -3040,6 +3040,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
@@ -4575,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':
@@ -10127,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:
@@ -10765,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==}
@@ -10886,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'}
@@ -10900,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):
@@ -11095,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:
@@ -11190,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
@@ -11881,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'}
@@ -14180,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):
@@ -14880,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):
@@ -19087,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
@@ -19182,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
@@ -19271,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==}
@@ -19285,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
@@ -19321,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:
@@ -19351,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
@@ -19420,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
@@ -19434,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
@@ -19458,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
@@ -19513,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
@@ -19522,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
@@ -19552,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
@@ -19583,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
@@ -19603,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
@@ -19648,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
@@ -19730,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==}
@@ -19742,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==}
@@ -19772,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==}
@@ -22046,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:
@@ -22072,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
@@ -22122,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
@@ -25933,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:
@@ -25944,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
@@ -30095,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
@@ -30103,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
@@ -30376,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:
@@ -31068,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
@@ -33695,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
@@ -34260,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==}
@@ -35410,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
@@ -35420,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
@@ -35439,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
@@ -35457,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
@@ -35535,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
@@ -35580,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
@@ -35590,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
@@ -35779,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
@@ -35788,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
@@ -35832,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}
@@ -35843,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:
@@ -37513,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==}
@@ -39046,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==}
@@ -40340,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:
@@ -40355,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
@@ -40393,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)
@@ -40423,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)
@@ -40504,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
@@ -40539,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
@@ -41032,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:
@@ -44970,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
@@ -44982,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
@@ -45160,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
@@ -45259,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
@@ -45287,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
@@ -45334,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
@@ -45378,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
@@ -45390,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
@@ -45418,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
@@ -45430,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
@@ -45458,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
@@ -45470,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
@@ -45498,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
@@ -45564,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==}
@@ -45602,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
@@ -45679,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:
@@ -45723,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==}
@@ -45749,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
@@ -45819,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
@@ -45856,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:
@@ -45889,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
@@ -45943,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:
@@ -46069,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
@@ -46127,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
@@ -46221,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
@@ -46234,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:
@@ -46313,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
@@ -46344,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
@@ -46417,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==}
@@ -46435,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
@@ -46503,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
@@ -46557,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
@@ -46784,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
@@ -49892,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:
@@ -52284,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
@@ -56161,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):
@@ -58208,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
@@ -58453,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
@@ -58503,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
@@ -58528,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
@@ -59232,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
@@ -59263,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
@@ -59294,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
@@ -60322,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
@@ -61583,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
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..8b2301cff4e
--- /dev/null
+++ b/providers/eazy-sms/README.md
@@ -0,0 +1,14 @@
+# Novu Eazy SMS 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..13d81560e87
--- /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 mockSMSMessage = {
+ 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(mockSMSMessage);
+ 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..3aec9da5ccf
--- /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}`,
+ 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/**"]
+}