diff --git a/apps/ssi-abstraction/.eslintrc.cjs b/apps/ssi-abstraction/.eslintrc.cjs deleted file mode 100644 index b77971f51ab86cd65d6105cd29e5bf8f080ae868..0000000000000000000000000000000000000000 --- a/apps/ssi-abstraction/.eslintrc.cjs +++ /dev/null @@ -1,46 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - parserOptions: { - sourceType: 'module', - ecmaVersion: 2021, - }, - env: { - node: true, - }, - plugins: ['prettier', '@typescript-eslint/eslint-plugin', 'jest'], - extends: [ - 'prettier', - 'plugin:@typescript-eslint/recommended', - 'plugin:jest/recommended', - ], - ignorePatterns: ['.eslintrc.cjs', 'dist'], - overrides: [], - settings: { - jest: { - version: '29', - }, - }, - rules: { - 'no-unused-vars': 0, - '@typescript-eslint/no-unused-vars': [1, { argsIgnorePattern: '^_' }], - }, - overrides: [ - { - files: [ - '*.spec.ts', - '*.e2e-spec.ts', - '__mocks__/*.ts', - '__mocks__/**/*.ts', - ], - rules: { - '@typescript-eslint/no-explicit-any': 0, - '@typescript-eslint/no-empty-function': 0, - '@typescript-eslint/ban-ts-comment': 0, - '@typescript-eslint/no-unused-vars': 0, - 'jest/no-mocks-import': 0, - 'jest/expect-expect': 0, - }, - }, - ], -}; diff --git a/apps/ssi-abstraction/src/agent/agent.controller.ts b/apps/ssi-abstraction/src/agent/agent.controller.ts index 4b676a5cc0f7fbf119c473f54a4a5eff83b335d0..4a07c5b4ef9a3d5245532d684065abd50aec2fde 100644 --- a/apps/ssi-abstraction/src/agent/agent.controller.ts +++ b/apps/ssi-abstraction/src/agent/agent.controller.ts @@ -1,5 +1,6 @@ import { Controller } from '@nestjs/common'; import { MessagePattern } from '@nestjs/microservices'; + import { AgentService } from './agent.service.js'; @Controller('agent') @@ -7,7 +8,7 @@ export class AgentController { public constructor(private agent: AgentService) {} @MessagePattern('info.publicDid') - async publicDid() { + public async publicDid() { return { id: 'test', }; diff --git a/apps/ssi-abstraction/src/agent/agent.module.ts b/apps/ssi-abstraction/src/agent/agent.module.ts index 4666f06689b6eaec41b146c415b631a892a00de3..23b4de097e83f823f499e090aee94df57e1ffc6e 100644 --- a/apps/ssi-abstraction/src/agent/agent.module.ts +++ b/apps/ssi-abstraction/src/agent/agent.module.ts @@ -1,5 +1,6 @@ import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; + import { AgentController } from './agent.controller.js'; import { AgentService } from './agent.service.js'; diff --git a/apps/ssi-abstraction/src/agent/agent.service.ts b/apps/ssi-abstraction/src/agent/agent.service.ts index 01dd3214566bd863b9657927b583bd1e5bd0a5db..6c3855e4dab472b1246aed442accfa2d4fd6feab 100644 --- a/apps/ssi-abstraction/src/agent/agent.service.ts +++ b/apps/ssi-abstraction/src/agent/agent.service.ts @@ -1,10 +1,19 @@ +import type { + LedgerIds} from './utils/ledgerConfig.js'; +import type { + InitConfig} from '@aries-framework/core'; +import type { + IndyVdrPoolConfig} from '@aries-framework/indy-vdr'; + +import { AnonCredsModule } from '@aries-framework/anoncreds'; +import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs'; +import { AskarModule } from '@aries-framework/askar'; import { Agent, ConnectionsModule, CredentialsModule, DidsModule, HttpOutboundTransport, - InitConfig, KeyDidRegistrar, KeyDidResolver, KeyType, @@ -13,30 +22,28 @@ import { PeerDidResolver, TypedArrayEncoder, } from '@aries-framework/core'; -import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'; -import { Injectable } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs'; -import { anoncreds } from '@hyperledger/anoncreds-nodejs'; -import { AnonCredsModule } from '@aries-framework/anoncreds'; -import { ariesAskar } from '@hyperledger/aries-askar-nodejs'; -import { AskarModule } from '@aries-framework/askar'; -import { indyVdr } from '@hyperledger/indy-vdr-nodejs'; import { IndyVdrAnonCredsRegistry, IndyVdrIndyDidResolver, IndyVdrModule, - IndyVdrPoolConfig, IndyVdrSovDidResolver, } from '@aries-framework/indy-vdr'; +import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'; +import { anoncreds } from '@hyperledger/anoncreds-nodejs'; +import { ariesAskar } from '@hyperledger/aries-askar-nodejs'; +import { indyVdr } from '@hyperledger/indy-vdr-nodejs'; +import { Injectable } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; + +import { logger } from '../globalUtils/logger.js'; + +import { registerPublicDids } from './ledger/register.js'; import { - LedgerIds, ledgerNamespaces, LEDGER_GENESIS, } from './utils/ledgerConfig.js'; import { AgentLogger } from './utils/logger.js'; -import { registerPublicDids } from './ledger/register.js'; -import { logger } from '../globalUtils/logger.js'; + export type AppAgent = Agent<AgentService['modules']>; diff --git a/apps/ssi-abstraction/src/agent/connection/connection.controller.ts b/apps/ssi-abstraction/src/agent/connection/connection.controller.ts index ac8c66775cd16db905d28714675ffc002d7f3e76..83df3322630ab214bc77ba9eac3fb1727c2e677a 100644 --- a/apps/ssi-abstraction/src/agent/connection/connection.controller.ts +++ b/apps/ssi-abstraction/src/agent/connection/connection.controller.ts @@ -1,5 +1,6 @@ import { Controller } from '@nestjs/common'; import { MessagePattern } from '@nestjs/microservices'; + import { ConnectionService } from './connection.service.js'; @Controller('connection') @@ -7,7 +8,7 @@ export class ConnectionController { public constructor(private connectionService: ConnectionService) {} @MessagePattern('connection.getAll') - async getAll() { - return await this.connectionService.getAll(); + public async getAll() { + return this.connectionService.getAll(); } } diff --git a/apps/ssi-abstraction/src/agent/connection/connection.module.ts b/apps/ssi-abstraction/src/agent/connection/connection.module.ts index e713b17f8f7fb5d79b276fcd0779bc97870a9e8b..4deaa8296424ce45f0b32aff09d270111a6f2378 100644 --- a/apps/ssi-abstraction/src/agent/connection/connection.module.ts +++ b/apps/ssi-abstraction/src/agent/connection/connection.module.ts @@ -1,5 +1,7 @@ import { Module } from '@nestjs/common'; + import { AgentModule } from '../agent.module.js'; + import { ConnectionController } from './connection.controller.js'; import { ConnectionService } from './connection.service.js'; diff --git a/apps/ssi-abstraction/src/agent/connection/connection.service.ts b/apps/ssi-abstraction/src/agent/connection/connection.service.ts index ae31d2e9e7e01fba89f8430b8b3e83f1601d5689..0e4c7ed0d57b64b8957fedcad2e878293cba89fc 100644 --- a/apps/ssi-abstraction/src/agent/connection/connection.service.ts +++ b/apps/ssi-abstraction/src/agent/connection/connection.service.ts @@ -1,6 +1,9 @@ -import { ConnectionRecord } from '@aries-framework/core'; +import type { AppAgent } from '../agent.service.js'; +import type { ConnectionRecord } from '@aries-framework/core'; + import { Injectable } from '@nestjs/common'; -import { AgentService, AppAgent } from '../agent.service.js'; + +import { AgentService } from '../agent.service.js'; @Injectable() export class ConnectionService { diff --git a/apps/ssi-abstraction/src/agent/ledger/register.ts b/apps/ssi-abstraction/src/agent/ledger/register.ts index 05363eeb96e08bcfa48444a7974399489e6ed1d3..a14c1260df442a4f93808eb91a49167df48acff9 100644 --- a/apps/ssi-abstraction/src/agent/ledger/register.ts +++ b/apps/ssi-abstraction/src/agent/ledger/register.ts @@ -1,7 +1,10 @@ -import { logger } from '../../globalUtils/logger.js'; +import type { LedgerIds } from '../utils/ledgerConfig.js'; + import axios from 'axios'; + +import { logger } from '../../globalUtils/logger.js'; import { logAxiosError } from '../utils/helperFunctions.js'; -import { LedgerIds, ledgerNamespaces, NYM_URL } from '../utils/ledgerConfig.js'; +import { ledgerNamespaces, NYM_URL } from '../utils/ledgerConfig.js'; type RegisterPublicDidOptions = { alias: string; diff --git a/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts b/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts index 40edef4e006cb223f3d2e7009fdf02d91bad2d8d..b21a3a6fa9da192487cdb4c9ddf17020555df1bb 100644 --- a/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts +++ b/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts @@ -1,4 +1,5 @@ -import { AxiosError } from 'axios'; +import type { AxiosError } from 'axios'; + import { logger } from '../../globalUtils/logger.js'; export function logAxiosError(err: AxiosError) { diff --git a/apps/ssi-abstraction/src/agent/utils/logger.ts b/apps/ssi-abstraction/src/agent/utils/logger.ts index b872da0bd53f3b6026671a78bc6c156d77907f94..8fbd7793eddecebd9ba038856c2b708d75302b0a 100644 --- a/apps/ssi-abstraction/src/agent/utils/logger.ts +++ b/apps/ssi-abstraction/src/agent/utils/logger.ts @@ -1,4 +1,5 @@ import { BaseLogger, LogLevel } from '@aries-framework/core'; + import { logger } from '../../globalUtils/logger.js'; export class AgentLogger extends BaseLogger { diff --git a/apps/ssi-abstraction/src/app.module.ts b/apps/ssi-abstraction/src/app.module.ts index 0017009937b203ebc0833aaf6db04a334e0d1b8e..d7c24842f0a01aa1a45e889e232ed3325a4aaf46 100644 --- a/apps/ssi-abstraction/src/app.module.ts +++ b/apps/ssi-abstraction/src/app.module.ts @@ -1,13 +1,12 @@ -import { APP_FILTER } from '@nestjs/core'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { TerminusModule } from '@nestjs/terminus'; + +import { AgentModule } from './agent/agent.module.js'; +import { ConnectionModule } from './agent/connection/connection.module.js'; import { config } from './config/config.js'; import { validationSchema } from './config/validation.js'; import { HealthController } from './health/health.controller.js'; -import { ExceptionHandler } from './globalUtils/exception.handler.js'; -import { AgentModule } from './agent/agent.module.js'; -import { ConnectionModule } from './agent/connection/connection.module.js'; @Module({ imports: [ @@ -21,11 +20,5 @@ import { ConnectionModule } from './agent/connection/connection.module.js'; ConnectionModule, ], controllers: [HealthController], - // providers: [ - // { - // provide: APP_FILTER, - // useClass: ExceptionHandler, - // }, - // ], }) export class AppModule {} diff --git a/apps/ssi-abstraction/src/config/config.ts b/apps/ssi-abstraction/src/config/config.ts index 92cc6dd9d8e3e3de0eedee4c060d6a812e971565..102dd755059d0c83f897009172910aa05a022b41 100644 --- a/apps/ssi-abstraction/src/config/config.ts +++ b/apps/ssi-abstraction/src/config/config.ts @@ -1,5 +1,4 @@ -import { AutoAcceptCredential } from '@aries-framework/core'; -import * as process from 'process'; +import type { AutoAcceptCredential } from '@aries-framework/core'; interface Config { agentHost: string; diff --git a/apps/ssi-abstraction/src/globalUtils/exception.handler.ts b/apps/ssi-abstraction/src/globalUtils/exception.handler.ts index 1df482477dccc2afcf2bd5be03240a67b82b081d..593237dfbb996f579bfc0c1b6d88a4ca31dbe8af 100644 --- a/apps/ssi-abstraction/src/globalUtils/exception.handler.ts +++ b/apps/ssi-abstraction/src/globalUtils/exception.handler.ts @@ -1,10 +1,13 @@ -import { Catch, RpcExceptionFilter, ArgumentsHost } from '@nestjs/common'; -import { Observable, throwError } from 'rxjs'; -import { RpcException } from '@nestjs/microservices'; +import type { RpcExceptionFilter } from '@nestjs/common'; +import type { RpcException } from '@nestjs/microservices'; + +import { Catch } from '@nestjs/common'; +import { throwError } from 'rxjs'; + @Catch() export class ExceptionHandler implements RpcExceptionFilter<RpcException> { - catch(exception: RpcException, host: ArgumentsHost): Observable<any> { + public catch(exception: RpcException) { return throwError(() => exception.getError()); } } diff --git a/apps/ssi-abstraction/src/globalUtils/logger.ts b/apps/ssi-abstraction/src/globalUtils/logger.ts index 78c367408189f0323466abc50aa0cee3f7f68fe3..f59176442ec764ec0e43324bc3ebb729f9cde94b 100644 --- a/apps/ssi-abstraction/src/globalUtils/logger.ts +++ b/apps/ssi-abstraction/src/globalUtils/logger.ts @@ -1,11 +1,14 @@ -import winston, { Logger } from 'winston'; -import ecsFormat from '@elastic/ecs-winston-format'; +import type { Logger} from 'winston'; -export const logger: Logger = winston.createLogger({ +import { ecsFormat } from '@elastic/ecs-winston-format'; +import { createLogger, transports } from 'winston'; + +export const logger: Logger = createLogger({ format: ecsFormat({ convertReqRes: true }), - transports: [new winston.transports.Console()], + transports: [new transports.Console()], }); logger.on('error', (error: Error) => { + // eslint-disable-next-line no-console console.error('Error in logger caught', error); }); diff --git a/apps/ssi-abstraction/src/health/health.controller.ts b/apps/ssi-abstraction/src/health/health.controller.ts index 6a24038f10a3c96b8eee42b3c5d5a9ef9c5fb316..e7936c05ae0f37afd2356ca1ace0c2ea4a13e83b 100644 --- a/apps/ssi-abstraction/src/health/health.controller.ts +++ b/apps/ssi-abstraction/src/health/health.controller.ts @@ -8,7 +8,7 @@ export class HealthController { * @returns - OK (200) if app is running */ @Get() - getHealth() { + public getHealth() { return { statusCode: HttpStatus.OK, message: `${new Date()}`, diff --git a/apps/ssi-abstraction/src/main.ts b/apps/ssi-abstraction/src/main.ts index 65a822c95e8d7be660b6b02e38f8f5cae4972e12..1d500b60262b2a2fd8c20103a72fe6bb5e7bcdd7 100644 --- a/apps/ssi-abstraction/src/main.ts +++ b/apps/ssi-abstraction/src/main.ts @@ -1,20 +1,19 @@ +import type { MicroserviceOptions} from '@nestjs/microservices'; + import { NestFactory } from '@nestjs/core'; -import { MicroserviceOptions, Transport } from '@nestjs/microservices'; +import { Transport } from '@nestjs/microservices'; + import { AppModule } from './app.module.js'; import { config } from './config/config.js'; -async function bootstrap() { - const app = await NestFactory.createMicroservice<MicroserviceOptions>( - AppModule, - { - transport: Transport.NATS, - options: { - servers: [config().nats.url], - }, +const app = await NestFactory.createMicroservice<MicroserviceOptions>( + AppModule, + { + transport: Transport.NATS, + options: { + servers: [config().nats.url], }, - ); - - await app.listen(); -} + }, +); -bootstrap(); +await app.listen(); diff --git a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts index 0fef2c9f26ae51efe471f2b7320884063f749ae2..56d1bd13d8ed3bfa51b7b928afe21d5a1ce81a0f 100644 --- a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts +++ b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts @@ -1,5 +1,7 @@ -import { Injectable, NestMiddleware, HttpStatus } from '@nestjs/common'; -import { Request, NextFunction, Response } from 'express'; +import type { NestMiddleware} from '@nestjs/common'; +import type { Request, NextFunction, Response } from 'express'; + +import { Injectable, HttpStatus } from '@nestjs/common'; /** * Middleware that checks validity of provided params and body @@ -7,23 +9,13 @@ import { Request, NextFunction, Response } from 'express'; */ @Injectable() export class AgentMid implements NestMiddleware { - use(req: Request, res: Response, next: NextFunction) { + public use(req: Request, res: Response, next: NextFunction) { const [, prop] = req.url.split('/'); if (prop === 'info') { next(); return; } - // const whiteListErrors = checkAll(prop, method, req.body); - // if (whiteListErrors && !whiteListErrors.success) { - // res.send({ - // statusCode: HttpStatus.BAD_REQUEST, - // error: whiteListErrors.messages, - // }); - // res.end(); - // return; - // } - if (req.body.subMethod && !req.body.subMethod.name) { res.send({ statusCode: HttpStatus.BAD_REQUEST, diff --git a/apps/ssi-abstraction/test/didComm.e2e-spec.ts b/apps/ssi-abstraction/test/didComm.e2e-spec.ts index 2e350634aa92a7f365c42fae3acfd922f97a06d0..28e77ba9a17fbe1db4ff62daabf6bda633774d57 100644 --- a/apps/ssi-abstraction/test/didComm.e2e-spec.ts +++ b/apps/ssi-abstraction/test/didComm.e2e-spec.ts @@ -1,7 +1,10 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication } from '@nestjs/common'; +import type { INestApplication } from '@nestjs/common'; +import type { TestingModule } from '@nestjs/testing'; + +import { Test } from '@nestjs/testing'; import request from 'supertest'; -import AppModule from '../src/app.module'; + +import { AppModule } from '../src/app.module.js'; describe('DidCommController (e2e)', () => { let app: INestApplication; @@ -18,13 +21,13 @@ describe('DidCommController (e2e)', () => { await app.close(); }); - it('/v1/agent/connections/createConnection (POST)', () => { - request(app.getHttpServer()) + it('/v1/agent/connections/createConnection (POST)', async () => { + await request(app.getHttpServer()) .post('v1/agent/connections/createConnection') .expect(200); }); - it('/v1/agent/info (GET)', () => { - request(app.getHttpServer()).post('v1/agent/info').expect(200); + it('/v1/agent/info (GET)', async () => { + await request(app.getHttpServer()).post('v1/agent/info').expect(200); }); }); diff --git a/apps/ssi-abstraction/test/health.e2e-spec.ts b/apps/ssi-abstraction/test/health.e2e-spec.ts index 1f685c6552d18d69697207fec9add092ae2cb56d..8d14bcc4ed2e81a66f0a4efaa73dcec6e442b0c6 100644 --- a/apps/ssi-abstraction/test/health.e2e-spec.ts +++ b/apps/ssi-abstraction/test/health.e2e-spec.ts @@ -1,7 +1,10 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication } from '@nestjs/common'; +import type { INestApplication } from '@nestjs/common'; +import type { TestingModule } from '@nestjs/testing'; + +import { Test } from '@nestjs/testing'; import request from 'supertest'; -import AppModule from '@src/app.module'; + +import { AppModule } from '../src/app.module.js'; describe('HealthController (e2e)', () => { let app: INestApplication;