Skip to content
Snippets Groups Projects
Commit 1e2bfb43 authored by Berend Sliedrecht's avatar Berend Sliedrecht
Browse files

make ssi-abstraction buildable with new repo structure


Signed-off-by: default avatarBerend Sliedrecht <sliedrecht@berend.io>
parent 8e338fb7
No related branches found
No related tags found
No related merge requests found
Showing
with 128 additions and 94 deletions
{
"jsc": {
"preserveAllComments": true,
"parser": {
"syntax": "typescript",
"tsx": false,
"decorators": true
},
"transform": {
"legacyDecorator": true,
"decoratorMetadata": true
},
"target": "es2022"
},
"module": {
"type": "es6"
},
"sourceMaps": true,
"exclude": [".spec.ts", ".e2e-spec.ts"]
}
/** @type {import('jest').Config} */
import { readFileSync } from 'node:fs';
const swcConfig = JSON.parse(readFileSync('./.swcrc', 'utf8'));
export default {
moduleFileExtensions: ['js', 'ts'],
testEnvironment: 'node',
transform: {
'^.+\\.ts$': [
'@swc/jest',
{
...swcConfig,
sourceMaps: false,
exclude: [],
swcrc: false,
},
],
},
extensionsToTreatAsEsm: ['.ts'],
moduleNameMapper: {
// ESM modules require `.js` extension to be specified, but Jest doesn't work with them
// Removing `.js` extension from module imports
'^uuid$': 'uuid',
'^(.*)/(.*)\\.js$': '$1/$2',
},
collectCoverageFrom: ['src/**/*.(t|j)s'],
coverageReporters:
process.env.CI === 'true'
? ['text-summary', 'json-summary']
: ['text-summary', 'html'],
coveragePathIgnorePatterns: [
'<rootDir>/node_modules/',
'<rootDir>/test/',
'<rootDir>/coverage/',
'<rootDir>/dist/',
'<rootDir>/**/test',
'@types',
'.dto.(t|j)s',
'.enum.ts',
'.interface.ts',
'.type.ts',
'.spec.ts',
],
coverageDirectory: './coverage',
// With v8 coverage provider it's much faster, but
// with this enabled it's not possible to ignore whole files' coverage
coverageProvider: 'v8',
};
...@@ -4,20 +4,28 @@ ...@@ -4,20 +4,28 @@
"description": "A core OCM service that provides the SSI interface through REST endpoints and events.", "description": "A core OCM service that provides the SSI interface through REST endpoints and events.",
"author": "Vereign", "author": "Vereign",
"private": true, "private": true,
"type": "module",
"license": "Apache-2.0", "license": "Apache-2.0",
"scripts": { "scripts": {
"clean": "rm -r dist", "clean": "rm -r dist",
"prebuild": "rimraf dist", "prebuild": "rimraf dist",
"build": "nest build", "build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "prisma:generate": "prisma generate --schema=./src/prisma/schema.prisma",
"prisma:migrate": "npx prisma migrate deploy --schema=./src/prisma/schema.prisma",
"dbSchema": "npx prisma db push --schema=./src/prisma/schema.prisma",
"prismaStudio": "npx prisma studio",
"start": "nest start", "start": "nest start",
"start:docker": "nest start", "start:dev": "nest start --watch --preserveWatchOutput",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "start:docker": "pnpm prisma:generate && pnpm dbSchema && pnpm start",
"lint": "eslint --fix",
"lint:all": "npm run lint -- .",
"format": "prettier --write",
"format:all": "npm run format -- .",
"test": "jest", "test": "jest",
"test:watch": "jest --watch", "test:watch": "jest --watch",
"test:cov": "jest --coverage", "test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest -i --config ./test/jest-e2e.json" "test:e2e": "jest --config ./test/jest.config.js"
}, },
"dependencies": { "dependencies": {
"@aries-framework/anoncreds": "0.4.2", "@aries-framework/anoncreds": "0.4.2",
...@@ -82,35 +90,5 @@ ...@@ -82,35 +90,5 @@
"tsconfig-paths": "^3.10.1", "tsconfig-paths": "^3.10.1",
"typedoc": "^0.22.15", "typedoc": "^0.22.15",
"typescript": "^4.3.5" "typescript": "^4.3.5"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"moduleNameMapper": {
"^@src/(.*)$": "<rootDir>/$1",
"@config/(.*)": "<rootDir>/../config/$1",
"@globalUtils/(.*)": "<rootDir>/globalUtils/$1",
"^@didComm/(.*)$": "<rootDir>/didComm/$1",
"^@DB/(.*)$": "<rootDir>/prisma/$1",
"^@common/(.*)$": "<rootDir>/common/$1",
"^@agent/(.*)$": "<rootDir>/agent/$1",
"^@health/(.*)$": "<rootDir>/health/$1"
},
"collectCoverageFrom": [
"**/agent/agentUtils/listener.(t|j)s",
"**/didComm/controller/**/*.(t|j)s",
"**/didComm/utils/**/*.(t|j)s",
"**/globalUtils/logger.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
} }
} }
import { Controller, Get, HttpStatus } from '@nestjs/common'; import { Controller, Get, HttpStatus } from '@nestjs/common';
import { AgentService } from './agent.service'; import { AgentService } from './agent.service.js';
@Controller('agent') @Controller('agent')
export class AgentController { export class AgentController {
......
import config from '@config/config';
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config'; import { ConfigModule } from '@nestjs/config';
import { ClientsModule, Transport } from '@nestjs/microservices'; import { ClientsModule, Transport } from '@nestjs/microservices';
import { NatsClientService } from '@src/client/nats.client'; import config from '../config/config.js';
import { NATSServices } from '@src/common/constants'; import { NatsClientService } from '../client/nats.client.js';
import { AgentController } from './agent.controller'; import { NATSServices } from '../common/constants.js';
import { AgentService } from './agent.service'; import { AgentController } from './agent.controller.js';
import { AgentService } from './agent.service.js';
@Module({ @Module({
imports: [ imports: [
......
...@@ -16,8 +16,6 @@ import { ...@@ -16,8 +16,6 @@ import {
import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'; import { agentDependencies, HttpInboundTransport } from '@aries-framework/node';
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { NatsClientService } from '@src/client/nats.client';
import logger from '@src/globalUtils/logger';
import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs'; import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs';
import { anoncreds } from '@hyperledger/anoncreds-nodejs'; import { anoncreds } from '@hyperledger/anoncreds-nodejs';
import { AnonCredsModule } from '@aries-framework/anoncreds'; import { AnonCredsModule } from '@aries-framework/anoncreds';
...@@ -31,14 +29,16 @@ import { ...@@ -31,14 +29,16 @@ import {
IndyVdrPoolConfig, IndyVdrPoolConfig,
IndyVdrSovDidResolver, IndyVdrSovDidResolver,
} from '@aries-framework/indy-vdr'; } from '@aries-framework/indy-vdr';
import { subscribe } from './utils/listener'; import { subscribe } from './utils/listener.js';
import { import {
LedgerIds, LedgerIds,
ledgerNamespaces, ledgerNamespaces,
LEDGER_GENESIS, LEDGER_GENESIS,
} from './utils/ledgerConfig'; } from './utils/ledgerConfig.js';
import { AgentLogger } from './utils/logger'; import { AgentLogger } from './utils/logger.js';
import { registerPublicDids } from './ledger/register'; import { registerPublicDids } from './ledger/register.js';
import { NatsClientService } from '../client/nats.client.js';
import logger from '../globalUtils/logger.js';
@Injectable() @Injectable()
export class AgentService { export class AgentService {
......
import logger from '@src/globalUtils/logger'; import logger from '../../globalUtils/logger.js';
import axios from 'axios'; import axios from 'axios';
import { logAxiosError } from '../utils/helperFunctions'; import { logAxiosError } from '../utils/helperFunctions.js';
import { LedgerIds, ledgerNamespaces, NYM_URL } from '../utils/ledgerConfig'; import { LedgerIds, ledgerNamespaces, NYM_URL } from '../utils/ledgerConfig.js';
type RegisterPublicDidOptions = { type RegisterPublicDidOptions = {
alias: string; alias: string;
...@@ -43,7 +43,7 @@ export const registerPublicDids = async ({ ...@@ -43,7 +43,7 @@ export const registerPublicDids = async ({
}; };
// eslint-disable-next-line no-await-in-loop // eslint-disable-next-line no-await-in-loop
const res = await axios.post<RegisterPublicDidResponse>( const res = await new axios.Axios().post<RegisterPublicDidResponse>(
ledgerRegisterUrl, ledgerRegisterUrl,
body, body,
); );
......
import logger from '@src/globalUtils/logger'; import logger from '../../globalUtils/logger.js';
export function logAxiosError(err: any) { export function logAxiosError(err: any) {
if (err.response) { if (err.response) {
......
import { subscribe } from './listener'; import { subscribe } from './listener.js';
describe('listener', () => { describe('listener', () => {
it('should subscribe agent to available events', async () => { it('should subscribe agent to available events', async () => {
......
import { Agent } from '@aries-framework/core'; import { Agent } from '@aries-framework/core';
import logger from '@src/globalUtils/logger'; import logger from '../../globalUtils/logger.js';
import { NatsClientService } from '@src/client/nats.client'; import { NatsClientService } from '../../client/nats.client.js';
import { listenerConfig } from './listenerConfig'; import { listenerConfig } from './listenerConfig.js';
/** /**
* Subscribes to events on nats * Subscribes to events on nats
......
/* eslint-disable class-methods-use-this */
import { BaseLogger, LogLevel } from '@aries-framework/core'; import { BaseLogger, LogLevel } from '@aries-framework/core';
import logger from '@src/globalUtils/logger'; import logger from '../../globalUtils/logger.js';
export class AgentLogger extends BaseLogger { export class AgentLogger extends BaseLogger {
public test(message: string, data?: Record<string, any> | undefined): void { public test(message: string, data?: Record<string, any> | undefined): void {
......
...@@ -2,12 +2,13 @@ import { APP_FILTER } from '@nestjs/core'; ...@@ -2,12 +2,13 @@ import { APP_FILTER } from '@nestjs/core';
import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common'; import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config'; import { ConfigModule } from '@nestjs/config';
import { TerminusModule } from '@nestjs/terminus'; import { TerminusModule } from '@nestjs/terminus';
import config from '@config/config';
import validationSchema from '@config/validation'; import config from './config/config.js';
import HealthController from '@src/health/health.controller'; import validationSchema from './config/validation.js';
import ExceptionHandler from '@src/globalUtils/exception.handler'; import HealthController from './health/health.controller.js';
import { AgentMid } from './middleware/agentMid.middleware'; import ExceptionHandler from './globalUtils/exception.handler.js';
import { AgentModule } from './agent/agent.module'; import { AgentMid } from './middleware/agentMid.middleware.js';
import { AgentModule } from './agent/agent.module.js';
@Module({ @Module({
imports: [ imports: [
......
import { Inject, Injectable } from '@nestjs/common'; import { Inject, Injectable } from '@nestjs/common';
import { ClientProxy } from '@nestjs/microservices'; import { ClientProxy } from '@nestjs/microservices';
import { NATSServices } from '@common/constants'; import { NATSServices } from '../common/constants.js';
import logger from '@globalUtils/logger'; import logger from '../globalUtils/logger.js';
@Injectable() @Injectable()
export class NatsClientService { export class NatsClientService {
......
import { VersioningType, INestApplication } from '@nestjs/common'; import { VersioningType, INestApplication } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { Transport, MicroserviceOptions } from '@nestjs/microservices'; import { Transport, MicroserviceOptions } from '@nestjs/microservices';
import logger from './logger'; import logger from './logger.js';
/** /**
* Microservice and versioning configuration of the service * Microservice and versioning configuration of the service
......
...@@ -6,7 +6,7 @@ import { ...@@ -6,7 +6,7 @@ import {
HttpStatus, HttpStatus,
} from '@nestjs/common'; } from '@nestjs/common';
import { HttpAdapterHost } from '@nestjs/core'; import { HttpAdapterHost } from '@nestjs/core';
import { ResponseType } from '@common/response'; import { ResponseType } from '../common/response.js';
@Catch() @Catch()
export class ExceptionHandler implements ExceptionFilter { export class ExceptionHandler implements ExceptionFilter {
......
import { NestFactory } from '@nestjs/core'; import { NestFactory } from '@nestjs/core';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import AppModule from '@src/app.module';
import logger from './globalUtils/logger'; import AppModule from './app.module.js';
import swaggerSetup from './globalUtils/swagger'; import logger from './globalUtils/logger.js';
import appConf from './globalUtils/appConfig'; import swaggerSetup from './globalUtils/swagger.js';
import appConf from './globalUtils/appConfig.js';
async function bootstrap() { async function bootstrap() {
const app = await NestFactory.create(AppModule); const app = await NestFactory.create(AppModule);
......
{
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": ".",
"testEnvironment": "node",
"testRegex": ".e2e-spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"moduleNameMapper": {
"@src/(.*)": ["<rootDir>/../src/$1"],
"@config/(.*)": ["<rootDir>/../config/$1"],
"@globalUtils/(.*)" :["<rootDir>/../src/globalUtils/$1"],
"@common/(.*)":["<rootDir>/../src/common/$1"],
"@agent/(.*)":["<rootDir>/../src/agent/$1"],
"@didComm/(.*)":["<rootDir>/../src/didComm/$1"],
"@eventHandler/(.*)":["<rootDir>/../src/eventHandler/$1"],
"@health/(.*)":["<rootDir>/../src/health/$1"],
"@DB/(.*)":["<rootDir>/../src/prisma/$1"]
},
"setupFiles": [
"./setEnvVars.js"
]
}
\ No newline at end of file
/** @type {import('jest').Config} */
import config from '../jest.config.js';
export default {
...config,
rootDir: '.',
testRegex: '.*\\.e2e-spec\\.ts$',
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment