From 37eba95d2fb386666fd157118de3ca75a2f7dcce Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 12:40:55 +0100 Subject: [PATCH 01/10] Fix caip10 and add body parser middleware --- apps/policy-engine/src/main.ts | 6 ++++++ apps/policy-engine/src/shared/types/domain.type.ts | 1 + apps/policy-engine/src/shared/types/rego.ts | 1 + package-lock.json | 1 + package.json | 1 + packages/policy-engine-shared/src/lib/util/caip.util.ts | 6 +++--- .../transaction/interaction/Erc20TransferDecoder.ts | 3 ++- packages/transaction-request-intent/src/lib/intent.types.ts | 2 +- 8 files changed, 16 insertions(+), 5 deletions(-) diff --git a/apps/policy-engine/src/main.ts b/apps/policy-engine/src/main.ts index 6ff41288b..f8de61ce9 100644 --- a/apps/policy-engine/src/main.ts +++ b/apps/policy-engine/src/main.ts @@ -2,6 +2,7 @@ import { INestApplication, Logger, ValidationPipe } from '@nestjs/common' import { ConfigService } from '@nestjs/config' import { NestFactory } from '@nestjs/core' import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger' +import { json, urlencoded } from 'express' import { lastValueFrom, map, of, switchMap } from 'rxjs' import { AppModule } from './app/app.module' @@ -51,6 +52,11 @@ async function bootstrap() { of(application).pipe( map(withSwagger), map(withGlobalPipes), + map((app) => { + app.use(json({ limit: '50mb' })) + app.use(urlencoded({ extended: true, limit: '50mb' })) + return app + }), switchMap((app) => app.listen(port)) ) ) diff --git a/apps/policy-engine/src/shared/types/domain.type.ts b/apps/policy-engine/src/shared/types/domain.type.ts index 8443465bb..e0129bf4d 100644 --- a/apps/policy-engine/src/shared/types/domain.type.ts +++ b/apps/policy-engine/src/shared/types/domain.type.ts @@ -25,6 +25,7 @@ export type RegoInput = { } export type MatchedRule = { + policyName: string policyId: string type: 'permit' | 'forbid' approvalsSatisfied: ApprovalRequirement[] diff --git a/apps/policy-engine/src/shared/types/rego.ts b/apps/policy-engine/src/shared/types/rego.ts index f19609ed1..ed327b084 100644 --- a/apps/policy-engine/src/shared/types/rego.ts +++ b/apps/policy-engine/src/shared/types/rego.ts @@ -18,6 +18,7 @@ export type RegoInput = { } type MatchedRule = { + policyName: string policyId: string type: 'permit' | 'forbid' approvalsSatisfied: ApprovalRequirement[] diff --git a/package-lock.json b/package-lock.json index a3ab49499..49cdb2d24 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,7 @@ "class-validator": "^0.14.1", "clsx": "^1.2.1", "date-fns": "^3.3.1", + "express": "^4.18.2", "handlebars": "^4.7.8", "jose": "^5.2.1", "lodash": "^4.17.21", diff --git a/package.json b/package.json index d6f56216a..92e225af5 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,7 @@ "class-validator": "^0.14.1", "clsx": "^1.2.1", "date-fns": "^3.3.1", + "express": "^4.18.2", "handlebars": "^4.7.8", "jose": "^5.2.1", "lodash": "^4.17.21", diff --git a/packages/policy-engine-shared/src/lib/util/caip.util.ts b/packages/policy-engine-shared/src/lib/util/caip.util.ts index 3c681d1c1..d148101b9 100644 --- a/packages/policy-engine-shared/src/lib/util/caip.util.ts +++ b/packages/policy-engine-shared/src/lib/util/caip.util.ts @@ -37,7 +37,7 @@ export enum AssetType { /** * @see https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-10.md */ -export type AccountId = `${Namespace}:${number}/${string}` +export type AccountId = `${Namespace}:${number}:${string}` export type Account = { chainId: number @@ -101,7 +101,7 @@ const unsafeParse = (fn: (value: string) => Result, value: string): T => { // const matchAccountId = (value: string) => { - const match = value.match(/^([^:]+):(\d+)\/(.+)$/) + const match = value.match(/^([^:]+):(\d+):(.+)$/) if (!match) { return null @@ -207,7 +207,7 @@ export const toAccountId = (input: SetOptional): AccountId namespace: input.namespace || Namespace.EIP155 } - return `${account.namespace}:${account.chainId}/${account.address}` + return `${account.namespace}:${account.chainId}:${account.address}` } /** diff --git a/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts b/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts index 9abb345d6..6f05240d5 100644 --- a/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts +++ b/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts @@ -1,3 +1,4 @@ +import { AssetType, toAssetId } from '@narval/policy-engine-shared' import { ContractCallInput, Intents } from '../../../domain' import { DecoderError } from '../../../error' import { TransferParams } from '../../../extraction/types' @@ -21,7 +22,7 @@ export const decodeErc20Transfer = (input: ContractCallInput, supportedMethods: from: toAccountIdLowerCase({ chainId, address: from }), type: Intents.TRANSFER_ERC20, amount, - token: toAccountIdLowerCase({ chainId, address: to }) + token: toAssetId({ assetType: AssetType.ERC20, chainId, address: input.to }) } return intent diff --git a/packages/transaction-request-intent/src/lib/intent.types.ts b/packages/transaction-request-intent/src/lib/intent.types.ts index a8b472698..c9fcdcfc6 100644 --- a/packages/transaction-request-intent/src/lib/intent.types.ts +++ b/packages/transaction-request-intent/src/lib/intent.types.ts @@ -14,7 +14,7 @@ export type TransferErc20 = { type: Intents.TRANSFER_ERC20 to: AccountId from: AccountId - token: AccountId + token: AssetId amount: string } From b3a44f3c78a2b4e25877b04b8d145d3c7efd8ec8 Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 12:52:54 +0100 Subject: [PATCH 02/10] fix --- .../decoders/transaction/interaction/Erc20TransferDecoder.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts b/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts index 6f05240d5..718f30357 100644 --- a/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts +++ b/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts @@ -9,7 +9,7 @@ import { toAccountIdLowerCase } from '../../../utils' import { extract } from '../../utils' export const decodeErc20Transfer = (input: ContractCallInput, supportedMethods: MethodsMapping): TransferErc20 => { - const { from, to, chainId, data, methodId } = input + const { from, chainId, data, methodId } = input if (!isSupportedMethodId(methodId)) { throw new DecoderError({ message: 'Unsupported methodId', status: 400 }) } From ea51b6f4e49dad0747ac906ed852375e2754b052 Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 12:56:03 +0100 Subject: [PATCH 03/10] fix --- .../transaction-request-intent/src/lib/__test__/unit/mocks.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts b/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts index 80246cb4c..e4e7553bd 100644 --- a/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts +++ b/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts @@ -249,7 +249,7 @@ const ERC20_TRANSFER_INTENT: TransferErc20 = { type: Intents.TRANSFER_ERC20, to: `eip155:137/0x031d8c0ca142921c459bcb28104c0ff37928f9ed` as AccountId, from: `eip155:137/${ERC20_TRANSFER_TX_REQUEST.from.toLowerCase()}` as AccountId, - token: `eip155:137/${ERC20_TRANSFER_TX_REQUEST.to?.toLowerCase()}` as AccountId, + token: `eip155:137:${ERC20_TRANSFER_TX_REQUEST.to?.toLowerCase()}` as AssetId, amount: '428406414311469998210669' } From f111a1d3a0cf9392e2139fdd4bc41e6b8c2d7e71 Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 12:58:23 +0100 Subject: [PATCH 04/10] fix --- .../src/lib/__test__/unit/mocks.ts | 8 ++++---- .../transaction-request-intent/src/lib/intent.types.ts | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts b/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts index e4e7553bd..478cee414 100644 --- a/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts +++ b/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts @@ -1,4 +1,4 @@ -import { AccountId, AssetId, TransactionRequest, getAssetId } from '@narval/policy-engine-shared' +import { AccountId, AssetId, TransactionRequest, getAccountId, getAssetId } from '@narval/policy-engine-shared' import { Address } from 'viem' import { DecodeInput, InputType, Intents, TransactionInput } from '../../domain' import { TransferErc1155, TransferErc20, TransferErc721, TransferNative } from '../../intent.types' @@ -247,9 +247,9 @@ const ERC20_TRANSFER_TX_REQUEST: TransactionRequest = { const ERC20_TRANSFER_INTENT: TransferErc20 = { type: Intents.TRANSFER_ERC20, - to: `eip155:137/0x031d8c0ca142921c459bcb28104c0ff37928f9ed` as AccountId, - from: `eip155:137/${ERC20_TRANSFER_TX_REQUEST.from.toLowerCase()}` as AccountId, - token: `eip155:137:${ERC20_TRANSFER_TX_REQUEST.to?.toLowerCase()}` as AssetId, + to: getAccountId('eip155:137:0x031d8c0ca142921c459bcb28104c0ff37928f9ed'), + from: getAccountId(`eip155:137:${ERC20_TRANSFER_TX_REQUEST.from.toLowerCase()}`), + token: getAccountId(`eip155:137:${ERC20_TRANSFER_TX_REQUEST.to?.toLowerCase()}`), amount: '428406414311469998210669' } diff --git a/packages/transaction-request-intent/src/lib/intent.types.ts b/packages/transaction-request-intent/src/lib/intent.types.ts index c9fcdcfc6..a8b472698 100644 --- a/packages/transaction-request-intent/src/lib/intent.types.ts +++ b/packages/transaction-request-intent/src/lib/intent.types.ts @@ -14,7 +14,7 @@ export type TransferErc20 = { type: Intents.TRANSFER_ERC20 to: AccountId from: AccountId - token: AssetId + token: AccountId amount: string } From f331b89d0f52a6b9570dd2e8e743d94fa36c0b6e Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 13:06:15 +0100 Subject: [PATCH 05/10] fix --- .../transaction-request-intent/src/lib/__test__/unit/mocks.ts | 2 +- packages/transaction-request-intent/src/lib/intent.types.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts b/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts index 478cee414..2def7ae86 100644 --- a/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts +++ b/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts @@ -249,7 +249,7 @@ const ERC20_TRANSFER_INTENT: TransferErc20 = { type: Intents.TRANSFER_ERC20, to: getAccountId('eip155:137:0x031d8c0ca142921c459bcb28104c0ff37928f9ed'), from: getAccountId(`eip155:137:${ERC20_TRANSFER_TX_REQUEST.from.toLowerCase()}`), - token: getAccountId(`eip155:137:${ERC20_TRANSFER_TX_REQUEST.to?.toLowerCase()}`), + token: `eip155:137/erc20:${ERC20_TRANSFER_TX_REQUEST.to?.toLowerCase()}` as AssetId, amount: '428406414311469998210669' } diff --git a/packages/transaction-request-intent/src/lib/intent.types.ts b/packages/transaction-request-intent/src/lib/intent.types.ts index a8b472698..c9fcdcfc6 100644 --- a/packages/transaction-request-intent/src/lib/intent.types.ts +++ b/packages/transaction-request-intent/src/lib/intent.types.ts @@ -14,7 +14,7 @@ export type TransferErc20 = { type: Intents.TRANSFER_ERC20 to: AccountId from: AccountId - token: AccountId + token: AssetId amount: string } From f4bcf8b64da9e1df5a2a7252ca2666ea26301ef9 Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 13:21:13 +0100 Subject: [PATCH 06/10] fix --- apps/policy-engine/src/main.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/apps/policy-engine/src/main.ts b/apps/policy-engine/src/main.ts index f8de61ce9..d1b4433a1 100644 --- a/apps/policy-engine/src/main.ts +++ b/apps/policy-engine/src/main.ts @@ -38,6 +38,18 @@ const withGlobalPipes = (app: INestApplication): INestApplication => { return app } +const withJsonBodyParser = (app: INestApplication): INestApplication => { + app.use(json({ limit: '50mb' })) + + return app +} + +const withUrlEncoded = (app: INestApplication): INestApplication => { + app.use(urlencoded({ extended: true, limit: '50mb' })) + + return app +} + async function bootstrap() { const logger = new Logger('AuthorizationNodeBootstrap') const application = await NestFactory.create(AppModule) @@ -52,11 +64,8 @@ async function bootstrap() { of(application).pipe( map(withSwagger), map(withGlobalPipes), - map((app) => { - app.use(json({ limit: '50mb' })) - app.use(urlencoded({ extended: true, limit: '50mb' })) - return app - }), + map(withJsonBodyParser), + map(withUrlEncoded), switchMap((app) => app.listen(port)) ) ) From b0b2982bb2f37b00d496aa2f5a743a5d2c9d6c24 Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 13:27:54 +0100 Subject: [PATCH 07/10] fix --- .../src/app/__test__/unit/app.service.spec.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/policy-engine/src/app/__test__/unit/app.service.spec.ts b/apps/policy-engine/src/app/__test__/unit/app.service.spec.ts index 909e8f2f9..0e41fe75e 100644 --- a/apps/policy-engine/src/app/__test__/unit/app.service.spec.ts +++ b/apps/policy-engine/src/app/__test__/unit/app.service.spec.ts @@ -10,12 +10,14 @@ describe('finalizeDecision', () => { reasons: [ { policyId: 'forbid-rule-id', + policyName: 'Forbid Rule', type: 'forbid', approvalsMissing: [], approvalsSatisfied: [] }, { policyId: 'permit-rule-id', + policyName: 'Permit Rule', type: 'permit', approvalsMissing: [], approvalsSatisfied: [] @@ -34,12 +36,14 @@ describe('finalizeDecision', () => { reasons: [ { policyId: 'permit-rule-id', + policyName: 'Permit Rule', type: 'permit', approvalsMissing: [], approvalsSatisfied: [] }, { policyId: 'permit-rule-id', + policyName: 'Permit Rule', type: 'permit', approvalsMissing: [], approvalsSatisfied: [] @@ -58,6 +62,7 @@ describe('finalizeDecision', () => { reasons: [ { policyId: 'permit-rule-id', + policyName: 'Permit Rule', type: 'permit', approvalsMissing: [ { @@ -111,6 +116,7 @@ describe('finalizeDecision', () => { reasons: [ { policyId: 'permit-rule-id', + policyName: 'Permit Rule', type: 'permit', approvalsMissing: [missingApproval], approvalsSatisfied: [satisfiedApproval] @@ -122,6 +128,7 @@ describe('finalizeDecision', () => { reasons: [ { policyId: 'permit-rule-id', + policyName: 'Permit Rule', type: 'permit', approvalsMissing: [missingApproval2], approvalsSatisfied: [satisfiedApproval2] From 22b4354e37fd6d591340ed9b8b6951a72ce15c01 Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 17:56:44 +0100 Subject: [PATCH 08/10] fix --- .../src/lib/__test__/unit/mocks.ts | 11 ++--------- .../transaction/interaction/Erc20TransferDecoder.ts | 3 +-- .../src/lib/intent.types.ts | 2 +- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts b/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts index 2e8f1ffa6..90e48fd4d 100644 --- a/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts +++ b/packages/transaction-request-intent/src/lib/__test__/unit/mocks.ts @@ -1,11 +1,4 @@ -import { - AccountId, - AssetId, - TransactionRequest, - getAccountId, - getAddress, - getAssetId -} from '@narval/policy-engine-shared' +import { AccountId, TransactionRequest, getAccountId, getAddress, getAssetId } from '@narval/policy-engine-shared' import { DecodeInput, InputType, Intents, TransactionInput } from '../../domain' import { TransferErc1155, TransferErc20, TransferErc721, TransferNative } from '../../intent.types' @@ -256,7 +249,7 @@ const ERC20_TRANSFER_INTENT: TransferErc20 = { type: Intents.TRANSFER_ERC20, to: getAccountId('eip155:137:0x031d8c0ca142921c459bcb28104c0ff37928f9ed'), from: getAccountId(`eip155:137:${ERC20_TRANSFER_TX_REQUEST.from.toLowerCase()}`), - token: `eip155:137/erc20:${ERC20_TRANSFER_TX_REQUEST.to?.toLowerCase()}` as AssetId, + token: getAccountId(`eip155:137:${ERC20_TRANSFER_TX_REQUEST.to?.toLowerCase()}`), amount: '428406414311469998210669' } diff --git a/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts b/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts index 718f30357..38ebdc0fc 100644 --- a/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts +++ b/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts @@ -1,4 +1,3 @@ -import { AssetType, toAssetId } from '@narval/policy-engine-shared' import { ContractCallInput, Intents } from '../../../domain' import { DecoderError } from '../../../error' import { TransferParams } from '../../../extraction/types' @@ -22,7 +21,7 @@ export const decodeErc20Transfer = (input: ContractCallInput, supportedMethods: from: toAccountIdLowerCase({ chainId, address: from }), type: Intents.TRANSFER_ERC20, amount, - token: toAssetId({ assetType: AssetType.ERC20, chainId, address: input.to }) + token: toAccountIdLowerCase({ chainId, address: input.to }) } return intent diff --git a/packages/transaction-request-intent/src/lib/intent.types.ts b/packages/transaction-request-intent/src/lib/intent.types.ts index c9fcdcfc6..a8b472698 100644 --- a/packages/transaction-request-intent/src/lib/intent.types.ts +++ b/packages/transaction-request-intent/src/lib/intent.types.ts @@ -14,7 +14,7 @@ export type TransferErc20 = { type: Intents.TRANSFER_ERC20 to: AccountId from: AccountId - token: AssetId + token: AccountId amount: string } From 22a62723fc8f5c35565a0ba4448ab8a36bf78732 Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 26 Feb 2024 18:32:32 +0100 Subject: [PATCH 09/10] fix --- .../decoders/transaction/interaction/Erc20TransferDecoder.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts b/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts index 38ebdc0fc..9abb345d6 100644 --- a/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts +++ b/packages/transaction-request-intent/src/lib/decoders/transaction/interaction/Erc20TransferDecoder.ts @@ -8,7 +8,7 @@ import { toAccountIdLowerCase } from '../../../utils' import { extract } from '../../utils' export const decodeErc20Transfer = (input: ContractCallInput, supportedMethods: MethodsMapping): TransferErc20 => { - const { from, chainId, data, methodId } = input + const { from, to, chainId, data, methodId } = input if (!isSupportedMethodId(methodId)) { throw new DecoderError({ message: 'Unsupported methodId', status: 400 }) } @@ -21,7 +21,7 @@ export const decodeErc20Transfer = (input: ContractCallInput, supportedMethods: from: toAccountIdLowerCase({ chainId, address: from }), type: Intents.TRANSFER_ERC20, amount, - token: toAccountIdLowerCase({ chainId, address: input.to }) + token: toAccountIdLowerCase({ chainId, address: to }) } return intent From 6716e0547bd432e8d6fc0a42e1a3c303e60b1e1c Mon Sep 17 00:00:00 2001 From: samuel Date: Tue, 27 Feb 2024 16:13:09 +0100 Subject: [PATCH 10/10] fix --- apps/policy-engine/src/main.ts | 17 +---------------- package-lock.json | 1 - package.json | 1 - 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/apps/policy-engine/src/main.ts b/apps/policy-engine/src/main.ts index d1b4433a1..9c69e1132 100644 --- a/apps/policy-engine/src/main.ts +++ b/apps/policy-engine/src/main.ts @@ -2,7 +2,6 @@ import { INestApplication, Logger, ValidationPipe } from '@nestjs/common' import { ConfigService } from '@nestjs/config' import { NestFactory } from '@nestjs/core' import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger' -import { json, urlencoded } from 'express' import { lastValueFrom, map, of, switchMap } from 'rxjs' import { AppModule } from './app/app.module' @@ -38,21 +37,9 @@ const withGlobalPipes = (app: INestApplication): INestApplication => { return app } -const withJsonBodyParser = (app: INestApplication): INestApplication => { - app.use(json({ limit: '50mb' })) - - return app -} - -const withUrlEncoded = (app: INestApplication): INestApplication => { - app.use(urlencoded({ extended: true, limit: '50mb' })) - - return app -} - async function bootstrap() { const logger = new Logger('AuthorizationNodeBootstrap') - const application = await NestFactory.create(AppModule) + const application = await NestFactory.create(AppModule, { bodyParser: true }) const configService = application.get(ConfigService) const port = configService.get('PORT') @@ -64,8 +51,6 @@ async function bootstrap() { of(application).pipe( map(withSwagger), map(withGlobalPipes), - map(withJsonBodyParser), - map(withUrlEncoded), switchMap((app) => app.listen(port)) ) ) diff --git a/package-lock.json b/package-lock.json index 49cdb2d24..a3ab49499 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,6 @@ "class-validator": "^0.14.1", "clsx": "^1.2.1", "date-fns": "^3.3.1", - "express": "^4.18.2", "handlebars": "^4.7.8", "jose": "^5.2.1", "lodash": "^4.17.21", diff --git a/package.json b/package.json index 92e225af5..d6f56216a 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,6 @@ "class-validator": "^0.14.1", "clsx": "^1.2.1", "date-fns": "^3.3.1", - "express": "^4.18.2", "handlebars": "^4.7.8", "jose": "^5.2.1", "lodash": "^4.17.21",