From 3c0832fe2aa8fea59f1ef8721691b5c0f69db529 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sun, 28 Apr 2024 12:39:00 +0200 Subject: [PATCH 1/5] add test runs to the ci Signed-off-by: Mirko Mollik --- .github/workflows/main.yml | 26 ++++++++- apps/backend/package.json | 3 + apps/backend/src/app.spec.ts | 25 +++++++++ .../credentials.controller.spec.ts | 20 ------- .../credentials/credentials.service.spec.ts | 18 ------ .../src/history/history.controller.spec.ts | 18 ------ .../src/history/history.service.spec.ts | 18 ------ apps/backend/src/keys/keys.controller.spec.ts | 20 ------- apps/backend/src/keys/keys.service.spec.ts | 18 ------ .../oid4vc/oid4vci/oid4vci.controller.spec.ts | 18 ------ .../oid4vc/oid4vci/oid4vci.service.spec.ts | 18 ------ .../oid4vc/oid4vp/oid4vp.controller.spec.ts | 18 ------ .../src/oid4vc/oid4vp/oid4vp.service.spec.ts | 18 ------ .../src/oid4vc/oid4vp/oid4vp.service.ts | 9 +-- apps/backend/src/oid4vc/oid4vp/session.ts | 15 +++++ apps/backend/test/app.e2e-spec.ts | 7 +-- apps/backend/test/jest-e2e.json | 3 +- .../pwa/src/app/app.component.spec.ts | 55 ++++++++++--------- .../src/app/scanner/scanner.component.spec.ts | 23 -------- apps/issuer/src/main.ts | 1 + apps/verifier/src/main.ts | 7 +-- apps/verifier/src/types.ts | 3 + apps/verifier/tests/main.spec.ts | 25 ++------- package.json | 1 + 24 files changed, 113 insertions(+), 274 deletions(-) create mode 100644 apps/backend/src/app.spec.ts delete mode 100644 apps/backend/src/credentials/credentials.controller.spec.ts delete mode 100644 apps/backend/src/credentials/credentials.service.spec.ts delete mode 100644 apps/backend/src/history/history.controller.spec.ts delete mode 100644 apps/backend/src/history/history.service.spec.ts delete mode 100644 apps/backend/src/keys/keys.controller.spec.ts delete mode 100644 apps/backend/src/keys/keys.service.spec.ts delete mode 100644 apps/backend/src/oid4vc/oid4vci/oid4vci.controller.spec.ts delete mode 100644 apps/backend/src/oid4vc/oid4vci/oid4vci.service.spec.ts delete mode 100644 apps/backend/src/oid4vc/oid4vp/oid4vp.controller.spec.ts delete mode 100644 apps/backend/src/oid4vc/oid4vp/oid4vp.service.spec.ts create mode 100644 apps/backend/src/oid4vc/oid4vp/session.ts delete mode 100644 apps/holder/projects/pwa/src/app/scanner/scanner.component.spec.ts diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 01ace0b9..87012c25 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,9 +12,33 @@ permissions: contents: read packages: write -jobs: +jobs: + build-and-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v3 + with: + version: 9 + - name: Use Node.js 20 + uses: actions/setup-node@v3 + with: + node-version: 20 + cache: 'pnpm' + - name: Install dependencies + run: pnpm install + + - name: Build + run: pnpm build + + - name: Test + run: pnpm test + build-and-push: runs-on: ubuntu-latest + # only run this when it's a push to main + if: github.ref == 'refs/heads/main' + needs: build-and-test steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/apps/backend/package.json b/apps/backend/package.json index 166a77f4..43380f24 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -75,6 +75,9 @@ "json", "ts" ], + "moduleNameMapper": { + "^src/(.*)$": "/$1" + }, "rootDir": "src", "testRegex": ".*\\.spec\\.ts$", "transform": { diff --git a/apps/backend/src/app.spec.ts b/apps/backend/src/app.spec.ts new file mode 100644 index 00000000..6b4d4cc3 --- /dev/null +++ b/apps/backend/src/app.spec.ts @@ -0,0 +1,25 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppController } from './app.controller'; + +describe('AppController', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + controllers: [AppController], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/GET health', () => { + return request(app.getHttpServer()).get('/health').expect(200).expect('ok'); + }); + + afterAll(async () => { + await app.close(); + }); +}); diff --git a/apps/backend/src/credentials/credentials.controller.spec.ts b/apps/backend/src/credentials/credentials.controller.spec.ts deleted file mode 100644 index fb838109..00000000 --- a/apps/backend/src/credentials/credentials.controller.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Test, type TestingModule } from '@nestjs/testing'; -import { CredentialsController } from './credentials.controller'; -import { CredentialsService } from './credentials.service'; - -describe('CredentialsController', () => { - let controller: CredentialsController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [CredentialsController], - providers: [CredentialsService], - }).compile(); - - controller = module.get(CredentialsController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/apps/backend/src/credentials/credentials.service.spec.ts b/apps/backend/src/credentials/credentials.service.spec.ts deleted file mode 100644 index 8e32f86a..00000000 --- a/apps/backend/src/credentials/credentials.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, type TestingModule } from '@nestjs/testing'; -import { CredentialsService } from './credentials.service'; - -describe('CredentialsService', () => { - let service: CredentialsService; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [CredentialsService], - }).compile(); - - service = module.get(CredentialsService); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/apps/backend/src/history/history.controller.spec.ts b/apps/backend/src/history/history.controller.spec.ts deleted file mode 100644 index 71ab2f4a..00000000 --- a/apps/backend/src/history/history.controller.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { HistoryController } from './history.controller'; - -describe('HistoryController', () => { - let controller: HistoryController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [HistoryController], - }).compile(); - - controller = module.get(HistoryController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/apps/backend/src/history/history.service.spec.ts b/apps/backend/src/history/history.service.spec.ts deleted file mode 100644 index b79a1c6e..00000000 --- a/apps/backend/src/history/history.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { HistoryService } from './history.service'; - -describe('HistoryService', () => { - let service: HistoryService; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [HistoryService], - }).compile(); - - service = module.get(HistoryService); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/apps/backend/src/keys/keys.controller.spec.ts b/apps/backend/src/keys/keys.controller.spec.ts deleted file mode 100644 index 43fc03e3..00000000 --- a/apps/backend/src/keys/keys.controller.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Test, type TestingModule } from '@nestjs/testing'; -import { KeysController } from './keys.controller'; -import { KeysService } from './keys.service'; - -describe('KeysController', () => { - let controller: KeysController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [KeysController], - providers: [KeysService], - }).compile(); - - controller = module.get(KeysController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/apps/backend/src/keys/keys.service.spec.ts b/apps/backend/src/keys/keys.service.spec.ts deleted file mode 100644 index 055077aa..00000000 --- a/apps/backend/src/keys/keys.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, type TestingModule } from '@nestjs/testing'; -import { KeysService } from './keys.service'; - -describe('KeysService', () => { - let service: KeysService; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [KeysService], - }).compile(); - - service = module.get(KeysService); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/apps/backend/src/oid4vc/oid4vci/oid4vci.controller.spec.ts b/apps/backend/src/oid4vc/oid4vci/oid4vci.controller.spec.ts deleted file mode 100644 index b07cdf04..00000000 --- a/apps/backend/src/oid4vc/oid4vci/oid4vci.controller.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, type TestingModule } from '@nestjs/testing'; -import { Oid4vciController } from './oid4vci.controller'; - -describe('Oid4vciController', () => { - let controller: Oid4vciController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [Oid4vciController], - }).compile(); - - controller = module.get(Oid4vciController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/apps/backend/src/oid4vc/oid4vci/oid4vci.service.spec.ts b/apps/backend/src/oid4vc/oid4vci/oid4vci.service.spec.ts deleted file mode 100644 index b3798e95..00000000 --- a/apps/backend/src/oid4vc/oid4vci/oid4vci.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, type TestingModule } from '@nestjs/testing'; -import { Oid4vciService } from './oid4vci.service'; - -describe('Oid4vciService', () => { - let service: Oid4vciService; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [Oid4vciService], - }).compile(); - - service = module.get(Oid4vciService); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/apps/backend/src/oid4vc/oid4vp/oid4vp.controller.spec.ts b/apps/backend/src/oid4vc/oid4vp/oid4vp.controller.spec.ts deleted file mode 100644 index 7108dc42..00000000 --- a/apps/backend/src/oid4vc/oid4vp/oid4vp.controller.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, type TestingModule } from '@nestjs/testing'; -import { Oid4vpController } from './oid4vp.controller'; - -describe('Oid4vpController', () => { - let controller: Oid4vpController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [Oid4vpController], - }).compile(); - - controller = module.get(Oid4vpController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/apps/backend/src/oid4vc/oid4vp/oid4vp.service.spec.ts b/apps/backend/src/oid4vc/oid4vp/oid4vp.service.spec.ts deleted file mode 100644 index 3667553e..00000000 --- a/apps/backend/src/oid4vc/oid4vp/oid4vp.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, type TestingModule } from '@nestjs/testing'; -import { Oid4vpService } from './oid4vp.service'; - -describe('Oid4vpService', () => { - let service: Oid4vpService; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [Oid4vpService], - }).compile(); - - service = module.get(Oid4vpService); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/apps/backend/src/oid4vc/oid4vp/oid4vp.service.ts b/apps/backend/src/oid4vc/oid4vp/oid4vp.service.ts index 3ec8e4b4..f482a189 100644 --- a/apps/backend/src/oid4vc/oid4vp/oid4vp.service.ts +++ b/apps/backend/src/oid4vc/oid4vp/oid4vp.service.ts @@ -21,15 +21,8 @@ import { Oid4vpParseRepsonse } from './dto/parse-response.dto'; import { SubmissionRequest } from './dto/submission-request.dto'; import { HistoryService } from 'src/history/history.service'; import { Oid4vpParseRequest } from './dto/parse-request.dto'; +import { Session } from './session'; -interface Session { - user: string; - verifiedAuthReqWithJWT: VerifiedAuthorizationRequest; - created: Date; - pex: PresentationExchange; - op: OP; - pd: PresentationDefinitionWithLocation; -} @Injectable() export class Oid4vpService { sessions: Map = new Map(); diff --git a/apps/backend/src/oid4vc/oid4vp/session.ts b/apps/backend/src/oid4vc/oid4vp/session.ts new file mode 100644 index 00000000..7f713a4d --- /dev/null +++ b/apps/backend/src/oid4vc/oid4vp/session.ts @@ -0,0 +1,15 @@ +import { + OP, + type PresentationDefinitionWithLocation, + PresentationExchange, + type VerifiedAuthorizationRequest, +} from '@sphereon/did-auth-siop'; + +export interface Session { + user: string; + verifiedAuthReqWithJWT: VerifiedAuthorizationRequest; + created: Date; + pex: PresentationExchange; + op: OP; + pd: PresentationDefinitionWithLocation; +} diff --git a/apps/backend/test/app.e2e-spec.ts b/apps/backend/test/app.e2e-spec.ts index e1022305..ef80621e 100644 --- a/apps/backend/test/app.e2e-spec.ts +++ b/apps/backend/test/app.e2e-spec.ts @@ -15,10 +15,7 @@ describe('AppController (e2e)', () => { await app.init(); }); - it('/ (GET)', () => { - return request(app.getHttpServer()) - .get('/') - .expect(200) - .expect('Hello World!'); + it('/health (GET)', () => { + return request(app.getHttpServer()).get('/health').expect(200); }); }); diff --git a/apps/backend/test/jest-e2e.json b/apps/backend/test/jest-e2e.json index e9d912f3..fdfde6a5 100644 --- a/apps/backend/test/jest-e2e.json +++ b/apps/backend/test/jest-e2e.json @@ -5,5 +5,6 @@ "testRegex": ".e2e-spec.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" - } + }, + "moduleDirectories": ["/../", "node_modules"] } diff --git a/apps/holder/projects/pwa/src/app/app.component.spec.ts b/apps/holder/projects/pwa/src/app/app.component.spec.ts index c07ce2c0..e0e05daa 100644 --- a/apps/holder/projects/pwa/src/app/app.component.spec.ts +++ b/apps/holder/projects/pwa/src/app/app.component.spec.ts @@ -1,31 +1,34 @@ -import { TestBed } from "@angular/core/testing"; -import { AppComponent } from "./app.component"; +import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; +import { CheckForUpdatesService } from './check-for-updates.service'; +import { SwUpdate } from '@angular/service-worker'; +import { of } from 'rxjs'; -describe("AppComponent", () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [AppComponent], - }).compileComponents(); - }); +describe('AppComponent', () => { + let component: AppComponent; + let fixture: ComponentFixture; + let checkForUpdatesService: CheckForUpdatesService; - it("should create the app", () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [RouterTestingModule, AppComponent], + providers: [ + CheckForUpdatesService, + { provide: SwUpdate, useValue: { available: of() } }, // Mock SwUpdate + ], + }).compileComponents(); - it(`should have the 'wallet-extension' title`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual("wallet-extension"); - }); + fixture = TestBed.createComponent(AppComponent); + component = fixture.componentInstance; + checkForUpdatesService = TestBed.inject(CheckForUpdatesService); + })); - it("should render title", () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector("h1")?.textContent).toContain( - "Hello, wallet-extension", - ); - }); + it('should create the app', () => { + expect(component).toBeTruthy(); + }); + + it('should have CheckForUpdatesService injected', () => { + expect(checkForUpdatesService).toBeTruthy(); + }); }); diff --git a/apps/holder/projects/pwa/src/app/scanner/scanner.component.spec.ts b/apps/holder/projects/pwa/src/app/scanner/scanner.component.spec.ts deleted file mode 100644 index c8182a53..00000000 --- a/apps/holder/projects/pwa/src/app/scanner/scanner.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ScannerComponent } from './scanner.component'; - -describe('ScannerComponent', () => { - let component: ScannerComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ScannerComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(ScannerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/apps/issuer/src/main.ts b/apps/issuer/src/main.ts index 7e45f942..85cc6a03 100644 --- a/apps/issuer/src/main.ts +++ b/apps/issuer/src/main.ts @@ -147,6 +147,7 @@ const vcIssuer: VcIssuer = new VcIssuer( */ const vcIssuerServer = new OID4VCIServer(expressSupport, { issuer: vcIssuer, + baseUrl: process.env.ISSUER_BASE_URL, endpointOpts: { tokenEndpointOpts: { accessTokenSignerCallback: signerCallback, diff --git a/apps/verifier/src/main.ts b/apps/verifier/src/main.ts index d4adfec3..6b64edd8 100644 --- a/apps/verifier/src/main.ts +++ b/apps/verifier/src/main.ts @@ -7,6 +7,7 @@ import expressListRoutes from 'express-list-routes'; import { v4 } from 'uuid'; import { expressSupport } from './server.js'; import { RPManager } from './RPManager.js'; +import { RequestBody } from './types.js'; // create the relying party manager const rpManager = new RPManager(); @@ -14,10 +15,6 @@ const rpManager = new RPManager(); //define the baseurl const baseUrl = process.env.VERIFIER_BASE_URL || 'http://localhost:3000'; -interface RequestBody { - id: string; -} - //add the endpoint to generate a request expressSupport.express.post('/request', async (req, res) => { const body: RequestBody = req.body; @@ -44,7 +41,6 @@ expressSupport.express.post('/request', async (req, res) => { }); }); -//TODO: add a parameter for the definition id /** * Add the route to get the request object */ @@ -83,7 +79,6 @@ expressSupport.express.post( location: PresentationDefinitionLocation.CLAIMS_VP_TOKEN, }, }); - console.log(response); res.send({}); } catch (e) { console.error(e); diff --git a/apps/verifier/src/types.ts b/apps/verifier/src/types.ts index 1ed5040b..a3f843bb 100644 --- a/apps/verifier/src/types.ts +++ b/apps/verifier/src/types.ts @@ -25,3 +25,6 @@ export interface VerifierRP { metadata: Metadata; request: PresentationDefinitionV2; } +export interface RequestBody { + id: string; +} diff --git a/apps/verifier/tests/main.spec.ts b/apps/verifier/tests/main.spec.ts index 56f6f957..a7549dcf 100644 --- a/apps/verifier/tests/main.spec.ts +++ b/apps/verifier/tests/main.spec.ts @@ -2,6 +2,7 @@ import axios, { type AxiosInstance } from 'axios'; import { v4 } from 'uuid'; import { beforeAll, describe, expect, it } from 'vitest'; import '../src/main'; +import { RequestBody } from '../src/types'; type CreationResponse = { uri: string; @@ -14,36 +15,20 @@ describe('main', () => { let instance: AxiosInstance; beforeAll(() => { instance = axios.create({ - baseURL: `http://localhost:${process.env.PORT ?? 3000}`, + baseURL: `http://localhost:${process.env.PORT ?? 3002}`, headers: { 'Content-Type': 'application/json', }, }); }); - it('should pass', async () => { - const response = await instance - .get('/.well-known/openid-credential-issuer') - .then((response) => response.data); - expect(response).toBeDefined(); - }); - it('create url', async () => { //TODO: define a type here. - const body = { - credentials: ['UniversityDegree_JWT'], - grants: { - 'urn:ietf:params:oauth:grant-type:pre-authorized_code': { - 'pre-authorized_code': v4().substring(0, 10), - user_pin_required: false, - }, - }, - credentialDataSupplierInput: { - credentialSubject: {}, - }, + const body: RequestBody = { + id: 'eID', }; const response = await instance - .post('/webapp/credential-offers', body) + .post('/request', body) .then((response) => response.data); expect(response).toBeDefined(); expect(response.uri).toBeDefined(); diff --git a/package.json b/package.json index 212616fc..63fedb0a 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "preinstall": "npx only-allow pnpm", "init": "pnpm run -r init && cp .env.example .env", "build": "pnpm run -r build", + "test": "pnpm run -r test", "clean": "pnpm run -r clean && rm -rf node_modules", "lint": "pnpm run -r lint" }, From 89f9309543da85bebdcfa87881e3b1040489ffbf Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sun, 28 Apr 2024 12:42:06 +0200 Subject: [PATCH 2/5] fix: add env files Signed-off-by: Mirko Mollik --- .github/workflows/main.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 87012c25..46d5be10 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,7 +21,7 @@ jobs: with: version: 9 - name: Use Node.js 20 - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 20 cache: 'pnpm' @@ -31,6 +31,9 @@ jobs: - name: Build run: pnpm build + - name: init env files + run: pnpm run init + - name: Test run: pnpm test From b9907d6b351b9dc458b5d3e95442f4c2ddfb3657 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sun, 28 Apr 2024 13:00:12 +0200 Subject: [PATCH 3/5] exclude tests for browser extension Signed-off-by: Mirko Mollik --- apps/holder/angular.json | 17 +------- apps/holder/package.json | 2 +- .../src/app/app.component.spec.ts | 41 ++++++------------- apps/holder/projects/pwa/karma.conf.js | 37 +++++++++++++++++ 4 files changed, 53 insertions(+), 44 deletions(-) create mode 100644 apps/holder/projects/pwa/karma.conf.js diff --git a/apps/holder/angular.json b/apps/holder/angular.json index 90298cae..18837018 100644 --- a/apps/holder/angular.json +++ b/apps/holder/angular.json @@ -100,7 +100,8 @@ "projects/pwa/src/manifest.webmanifest" ], "styles": ["projects/pwa/src/styles.scss"], - "scripts": [] + "scripts": [], + "karmaConfig": "projects/pwa/karma.conf.js" } }, "lint": { @@ -206,20 +207,6 @@ "buildTarget": "browser-extension:build" } }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "polyfills": ["zone.js", "zone.js/testing"], - "tsConfig": "projects/browser-extension/tsconfig.spec.json", - "inlineStyleLanguage": "scss", - "assets": [ - "projects/browser-extension/src/favicon.ico", - "projects/browser-extension/src/assets" - ], - "styles": ["projects/browser-extension/src/styles.scss"], - "scripts": [] - } - }, "lint": { "builder": "@angular-eslint/builder:lint", "options": { diff --git a/apps/holder/package.json b/apps/holder/package.json index ee09fe57..962cf7d6 100644 --- a/apps/holder/package.json +++ b/apps/holder/package.json @@ -9,7 +9,7 @@ "start:extension": "concurrently --kill-others \"ng build --project browser-extension --configuration development --watch\" \"nodemon\"", "start:extension-prod": "concurrently --kill-others \"ng build --project browser-extension --watch\" \"nodemon\"", "api": "npx @openapitools/openapi-generator-cli generate -g typescript-angular -i http://localhost:3000/api-json -o projects/shared/api/kms --api-name-suffix=Kms --additional-properties=supportsES6=true,enumPropertyNaming=original,serviceSuffix=ApiService", - "test": "ng test", + "test": "ng test --no-watch --no-progress --browsers=ChromeHeadless", "lint": "ng lint", "publish": "pnpm run build && cd ../../ && docker compose build holder && docker compose push holder" }, diff --git a/apps/holder/projects/browser-extension/src/app/app.component.spec.ts b/apps/holder/projects/browser-extension/src/app/app.component.spec.ts index c07ce2c0..7cd488c9 100644 --- a/apps/holder/projects/browser-extension/src/app/app.component.spec.ts +++ b/apps/holder/projects/browser-extension/src/app/app.component.spec.ts @@ -1,31 +1,16 @@ -import { TestBed } from "@angular/core/testing"; -import { AppComponent } from "./app.component"; +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; -describe("AppComponent", () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [AppComponent], - }).compileComponents(); - }); +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [AppComponent], + }).compileComponents(); + }); - it("should create the app", () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); - - it(`should have the 'wallet-extension' title`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual("wallet-extension"); - }); - - it("should render title", () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector("h1")?.textContent).toContain( - "Hello, wallet-extension", - ); - }); + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); }); diff --git a/apps/holder/projects/pwa/karma.conf.js b/apps/holder/projects/pwa/karma.conf.js new file mode 100644 index 00000000..43a0d63f --- /dev/null +++ b/apps/holder/projects/pwa/karma.conf.js @@ -0,0 +1,37 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +// biome-ignore lint/complexity/useArrowFunction: +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma'), + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false, // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true, // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, '../../coverage/pwa'), + subdir: '.', + reporters: [{ type: 'html' }, { type: 'text-summary' }], + }, + reporters: ['progress', 'kjhtml'], + browsers: ['Chrome'], + restartOnFileChange: true, + }); +}; From f76bbe03af4cad2216e671b1e2489c58ea69faf0 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sun, 28 Apr 2024 14:35:39 +0200 Subject: [PATCH 4/5] fix: update packages Signed-off-by: Mirko Mollik --- apps/backend/package.json | 58 +- .../src/credentials/credentials.controller.ts | 2 +- .../src/credentials/credentials.service.ts | 28 +- apps/backend/src/history/history.service.ts | 7 +- .../src/app/app.component.html | 6 +- .../src/app/app.component.scss | 1 + .../src/app/scanner/scanner.component.ts | 8 +- .../environments/environment.development.ts | 4 +- .../browser-extension/src/manifest.json | 1 - .../projects/pwa/src/assets/config/config.js | 26 +- apps/issuer/package.json | 22 +- apps/issuer/src/main.ts | 3 +- apps/verifier/package.json | 18 +- pnpm-lock.yaml | 1287 ++++++++--------- 14 files changed, 735 insertions(+), 736 deletions(-) diff --git a/apps/backend/package.json b/apps/backend/package.json index 43380f24..8b50f5d0 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -23,51 +23,51 @@ }, "dependencies": { "@nestjs/axios": "^3.0.2", - "@nestjs/common": "^10.0.0", - "@nestjs/config": "^3.2.0", - "@nestjs/core": "^10.0.0", - "@nestjs/platform-express": "^10.0.0", - "@nestjs/swagger": "^7.3.0", + "@nestjs/common": "^10.3.8", + "@nestjs/config": "^3.2.2", + "@nestjs/core": "^10.3.8", + "@nestjs/platform-express": "^10.3.8", + "@nestjs/swagger": "^7.3.1", "@nestjs/typeorm": "^10.0.2", "@sd-jwt/crypto-nodejs": "^0.6.1", "@sd-jwt/sd-jwt-vc": "^0.6.1", - "@sphereon/did-auth-siop": "^0.6.3", - "@sphereon/oid4vci-client": "^0.10.2", - "@sphereon/oid4vci-common": "^0.10.1", - "@sphereon/pex": "^3.3.1", - "@sphereon/ssi-types": "^0.21.0", + "@sphereon/did-auth-siop": "^0.6.4", + "@sphereon/oid4vci-client": "^0.10.3", + "@sphereon/oid4vci-common": "^0.10.3", + "@sphereon/pex": "^3.3.3", + "@sphereon/ssi-types": "^0.23.4", "axios": "^1.6.8", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "did-resolver": "^4.1.0", - "joi": "^17.12.2", - "jose": "^5.2.3", - "keycloak-connect": "^24.0.1", + "joi": "^17.13.0", + "jose": "^5.2.4", + "keycloak-connect": "^24.0.3", "nest-keycloak-connect": "^1.10.0", - "pg": "^8.11.3", - "reflect-metadata": "^0.2.0", + "pg": "^8.11.5", + "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1", "sqlite3": "^5.1.7", "typeorm": "^0.3.20", "uuid": "^9.0.1" }, "devDependencies": { - "@nestjs/cli": "^10.0.0", - "@nestjs/schematics": "^10.0.0", - "@nestjs/testing": "^10.0.0", - "@types/express": "^4.17.17", - "@types/jest": "^29.5.2", - "@types/node": "^20.3.1", - "@types/supertest": "^6.0.0", - "jest": "^29.5.0", - "prettier": "^3.0.0", + "@nestjs/cli": "^10.3.2", + "@nestjs/schematics": "^10.1.1", + "@nestjs/testing": "^10.3.8", + "@types/express": "^4.17.21", + "@types/jest": "^29.5.12", + "@types/node": "^20.12.7", + "@types/supertest": "^6.0.2", + "jest": "^29.7.0", + "prettier": "^3.2.5", "source-map-support": "^0.5.21", - "supertest": "^6.3.3", - "ts-jest": "^29.1.0", - "ts-loader": "^9.4.3", - "ts-node": "^10.9.1", + "supertest": "^6.3.4", + "ts-jest": "^29.1.2", + "ts-loader": "^9.5.1", + "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", - "typescript": "^5.1.3" + "typescript": "^5.4.5" }, "jest": { "moduleFileExtensions": [ diff --git a/apps/backend/src/credentials/credentials.controller.ts b/apps/backend/src/credentials/credentials.controller.ts index 22f1e4c9..2bf79e2a 100644 --- a/apps/backend/src/credentials/credentials.controller.ts +++ b/apps/backend/src/credentials/credentials.controller.ts @@ -50,7 +50,7 @@ export class CredentialsController { @AuthenticatedUser() user: KeycloakUser ): Promise { //TODO: return the parsed values so the client does not have to decode it. - return this.credentialsService.findOne(id, user.sub).catch(() => { + return this.credentialsService.showOne(id, user.sub).catch(() => { throw new ConflictException(); }); } diff --git a/apps/backend/src/credentials/credentials.service.ts b/apps/backend/src/credentials/credentials.service.ts index 490750e6..ab057159 100644 --- a/apps/backend/src/credentials/credentials.service.ts +++ b/apps/backend/src/credentials/credentials.service.ts @@ -35,19 +35,21 @@ export class CredentialsService { return this.credentialRepository.find({ where: { user } }); } - findOne(id: string, user: string): Promise { - return this.credentialRepository - .findOneOrFail({ where: { id, user } }) - .then(async (entry) => { - const sdjwtvc = await this.instance.decode(entry.value); - const claims = await sdjwtvc.getClaims>(digest); - entry.value = undefined; - entry.user = undefined; - return { - ...entry, - credential: claims, - }; - }); + findOne(id: string, user: string) { + return this.credentialRepository.findOneOrFail({ where: { id, user } }); + } + + showOne(id: string, user: string): Promise { + return this.findOne(id, user).then(async (entry) => { + const sdjwtvc = await this.instance.decode(entry.value); + const claims = await sdjwtvc.getClaims>(digest); + entry.value = undefined; + entry.user = undefined; + return { + ...entry, + credential: claims, + }; + }); } remove(id: string, user: string) { diff --git a/apps/backend/src/history/history.service.ts b/apps/backend/src/history/history.service.ts index 483ea347..68a9294c 100644 --- a/apps/backend/src/history/history.service.ts +++ b/apps/backend/src/history/history.service.ts @@ -11,7 +11,12 @@ export class HistoryService { ) {} all(user: string) { - return this.historyRepository.find({ where: { user } }); + return this.historyRepository.find({ + where: { user }, + order: { created_at: 'DESC' }, + // we only the id, relyingParty, created_at, and status fields to represent it as a list + select: ['id', 'relyingParty', 'created_at', 'status'], + }); } getOne(id: string, user: string) { diff --git a/apps/holder/projects/browser-extension/src/app/app.component.html b/apps/holder/projects/browser-extension/src/app/app.component.html index 67097654..ac88b78f 100644 --- a/apps/holder/projects/browser-extension/src/app/app.component.html +++ b/apps/holder/projects/browser-extension/src/app/app.component.html @@ -1,11 +1,7 @@
- +
qr_code_scanner( `${environment.demoVerifier}/request`, - {} + { + id: 'eID', + } ) ); this.urlField.patchValue(response.uri); @@ -77,7 +79,9 @@ export class ScannerComponent implements OnInit { const response = await firstValueFrom( this.httpClient.post<{ uri: string }>( `${environment.demoIssuer}/request`, - {} + { + credentialId: 'Identity', + } ) ); this.urlField.patchValue(response.uri); diff --git a/apps/holder/projects/browser-extension/src/environments/environment.development.ts b/apps/holder/projects/browser-extension/src/environments/environment.development.ts index 77f11dbe..0ad5d87e 100644 --- a/apps/holder/projects/browser-extension/src/environments/environment.development.ts +++ b/apps/holder/projects/browser-extension/src/environments/environment.development.ts @@ -1,8 +1,8 @@ export const environment = { backendUrl: 'http://localhost:3000', - keycloakHost: 'https://keycloak.yanacocha.fit.fraunhofer.de', + keycloakHost: 'http://localhost:8080', keycloakClient: 'browser', - keycloakRealm: 'wallet-ssi', + keycloakRealm: 'wallet', demoIssuer: 'http://localhost:3001', demoVerifier: 'http://localhost:3002', }; diff --git a/apps/holder/projects/browser-extension/src/manifest.json b/apps/holder/projects/browser-extension/src/manifest.json index 2c329369..30769511 100644 --- a/apps/holder/projects/browser-extension/src/manifest.json +++ b/apps/holder/projects/browser-extension/src/manifest.json @@ -1,5 +1,4 @@ { - "$schema": "https://json.schemastore.org/chrome-manifest", "name": "Wallet", "version": "1", "description": "A SSI wallet to manage credentials", diff --git a/apps/holder/projects/pwa/src/assets/config/config.js b/apps/holder/projects/pwa/src/assets/config/config.js index feb6fbfb..eaeb57a4 100644 --- a/apps/holder/projects/pwa/src/assets/config/config.js +++ b/apps/holder/projects/pwa/src/assets/config/config.js @@ -1,17 +1,17 @@ -globalThis.environment = { - backendUrl: 'https://backend.wallet.mollik.io', - keycloakHost: 'https://auth.wallet.mollik.io', - keycloakClient: 'browser', - keycloakRealm: 'wallet', - demoIssuer: 'https://issuer.wallet.mollik.io', - demoVerifier: 'https://verifier.wallet.mollik.io', -}; - // globalThis.environment = { -// backendUrl: 'http://localhost:3000', -// keycloakHost: 'http://localhost:8080', +// backendUrl: 'https://backend.wallet.mollik.io', +// keycloakHost: 'https://auth.wallet.mollik.io', // keycloakClient: 'browser', // keycloakRealm: 'wallet', -// demoIssuer: 'http://localhost:3001', -// demoVerifier: 'http://localhost:3002', +// demoIssuer: 'https://issuer.wallet.mollik.io', +// demoVerifier: 'https://verifier.wallet.mollik.io', // }; + +globalThis.environment = { + backendUrl: 'http://localhost:3000', + keycloakHost: 'http://localhost:8080', + keycloakClient: 'browser', + keycloakRealm: 'wallet', + demoIssuer: 'http://localhost:3001', + demoVerifier: 'http://localhost:3002', +}; diff --git a/apps/issuer/package.json b/apps/issuer/package.json index 0b1978b3..7ae5b8bb 100644 --- a/apps/issuer/package.json +++ b/apps/issuer/package.json @@ -21,29 +21,29 @@ "devDependencies": { "@types/uuid": "^9.0.8", "axios": "^1.6.8", - "globals": "^15.0.0", + "globals": "^15.1.0", "tsc-watch": "^6.2.0", - "typescript": "^5.4.3", - "vitest": "^1.4.0" + "typescript": "^5.4.5", + "vitest": "^1.5.2" }, "dependencies": { "@noble/hashes": "1.2.0", "@sd-jwt/crypto-nodejs": "^0.6.1", "@sd-jwt/sd-jwt-vc": "^0.6.1", "@sd-jwt/types": "^0.6.1", - "@sphereon/oid4vci-common": "^0.10.1", - "@sphereon/oid4vci-issuer": "^0.10.2", - "@sphereon/oid4vci-issuer-server": "^0.10.2", - "@sphereon/ssi-express-support": "0.18.1", - "@sphereon/ssi-types": "^0.21.0", + "@sphereon/oid4vci-common": "^0.10.3", + "@sphereon/oid4vci-issuer": "^0.10.3", + "@sphereon/oid4vci-issuer-server": "^0.10.3", + "@sphereon/ssi-express-support": "^0.23.4", + "@sphereon/ssi-types": "^0.23.4", "did-resolver": "^4.1.0", - "uuid": "^9.0.1", "dotenv": "^16.4.5", "express": "^4.19.2", "express-list-routes": "^1.2.1", - "jose": "^5.2.3", + "jose": "^5.2.4", "passport-azure-ad": "^4.3.5", - "passport-http-bearer": "^1.0.1" + "passport-http-bearer": "^1.0.1", + "uuid": "^9.0.1" }, "peerDependencies": { "awesome-qr": "^2.1.5-rc.0" diff --git a/apps/issuer/src/main.ts b/apps/issuer/src/main.ts index 85cc6a03..7e9fcfc1 100644 --- a/apps/issuer/src/main.ts +++ b/apps/issuer/src/main.ts @@ -192,8 +192,7 @@ vcIssuerServer.router.post('/request', async (req, res) => { //we are returning the response to the client res.send(response); } catch (error) { - console.error(error); - res.status(402); + res.status(422).send(); } }); diff --git a/apps/verifier/package.json b/apps/verifier/package.json index 3fdf45ca..5cd60a6e 100644 --- a/apps/verifier/package.json +++ b/apps/verifier/package.json @@ -20,10 +20,10 @@ "license": "Apache-2.0", "devDependencies": { "@types/uuid": "^9.0.8", - "globals": "^15.0.0", + "globals": "^15.1.0", "tsc-watch": "^6.2.0", - "typescript": "^5.4.4", - "vitest": "^1.4.0" + "typescript": "^5.4.5", + "vitest": "^1.5.2" }, "dependencies": { "@noble/hashes": "1.2.0", @@ -31,19 +31,19 @@ "@sd-jwt/crypto-nodejs": "^0.6.1", "@sd-jwt/sd-jwt-vc": "^0.6.1", "@sd-jwt/types": "^0.6.1", - "@sphereon/did-auth-siop": "^0.6.3", - "@sphereon/pex-models": "^2.2.2", - "@sphereon/ssi-express-support": "^0.21.0", - "@sphereon/ssi-types": "^0.22.0", + "@sphereon/did-auth-siop": "^0.6.4", + "@sphereon/pex-models": "^2.2.4", + "@sphereon/ssi-express-support": "^0.23.4", + "@sphereon/ssi-types": "^0.23.4", "axios": "^1.6.8", "did-resolver": "^4.1.0", - "uuid": "^9.0.1", "dotenv": "^16.4.5", "express": "^4.19.2", "express-list-routes": "^1.2.1", "jose": "^5.2.4", "passport-azure-ad": "^4.3.5", - "passport-http-bearer": "^1.0.1" + "passport-http-bearer": "^1.0.1", + "uuid": "^9.0.1" }, "peerDependencies": { "awesome-qr": "^2.1.5-rc.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a271aa9b..70598ccb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,25 +24,25 @@ importers: dependencies: '@nestjs/axios': specifier: ^3.0.2 - version: 3.0.2(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(axios@1.6.8)(rxjs@7.8.1) + version: 3.0.2(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.6.8)(rxjs@7.8.1) '@nestjs/common': - specifier: ^10.0.0 - version: 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + specifier: ^10.3.8 + version: 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/config': - specifier: ^3.2.0 - version: 3.2.1(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(rxjs@7.8.1) + specifier: ^3.2.2 + version: 3.2.2(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1) '@nestjs/core': - specifier: ^10.0.0 - version: 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1) + specifier: ^10.3.8 + version: 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/platform-express': - specifier: ^10.0.0 - version: 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5) + specifier: ^10.3.8 + version: 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8) '@nestjs/swagger': - specifier: ^7.3.0 - version: 7.3.0(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1) + specifier: ^7.3.1 + version: 7.3.1(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) '@nestjs/typeorm': specifier: ^10.0.2 - version: 10.0.2(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1))(reflect-metadata@0.2.1)(rxjs@7.8.1)(typeorm@0.3.20(pg@8.11.3)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2))) + version: 10.0.2(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1)(typeorm@0.3.20(pg@8.11.5)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))) '@sd-jwt/crypto-nodejs': specifier: ^0.6.1 version: 0.6.1 @@ -50,17 +50,17 @@ importers: specifier: ^0.6.1 version: 0.6.1 '@sphereon/did-auth-siop': - specifier: ^0.6.3 - version: 0.6.3(encoding@0.1.13) + specifier: ^0.6.4 + version: 0.6.4(encoding@0.1.13) '@sphereon/oid4vci-client': - specifier: ^0.10.2 - version: 0.10.2(encoding@0.1.13) + specifier: ^0.10.3 + version: 0.10.3(encoding@0.1.13) '@sphereon/oid4vci-common': - specifier: ^0.10.1 - version: 0.10.1(encoding@0.1.13) + specifier: ^0.10.3 + version: 0.10.3(encoding@0.1.13) '@sphereon/pex': - specifier: ^3.3.1 - version: 3.3.1(patch_hash=aasonhtvgrpgzz22orxg5mryvi) + specifier: ^3.3.3 + version: 3.3.3 '@sphereon/ssi-types': specifier: ^0.22.0 version: 0.22.0 @@ -77,23 +77,23 @@ importers: specifier: ^4.1.0 version: 4.1.0 joi: - specifier: ^17.12.2 - version: 17.12.2 + specifier: ^17.13.0 + version: 17.13.0 jose: - specifier: ^5.2.3 - version: 5.2.3 + specifier: ^5.2.4 + version: 5.2.4 keycloak-connect: - specifier: ^24.0.1 - version: 24.0.2 + specifier: ^24.0.3 + version: 24.0.3 nest-keycloak-connect: specifier: ^1.10.0 - version: 1.10.0(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1))(keycloak-connect@24.0.2) + version: 1.10.0(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(keycloak-connect@24.0.3) pg: - specifier: ^8.11.3 - version: 8.11.3 + specifier: ^8.11.5 + version: 8.11.5 reflect-metadata: - specifier: ^0.2.0 - version: 0.2.1 + specifier: ^0.2.2 + version: 0.2.2 rxjs: specifier: ^7.8.1 version: 7.8.1 @@ -102,59 +102,59 @@ importers: version: 5.1.7 typeorm: specifier: ^0.3.20 - version: 0.3.20(pg@8.11.3)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) + version: 0.3.20(pg@8.11.5)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) uuid: specifier: ^9.0.1 version: 9.0.1 devDependencies: '@nestjs/cli': - specifier: ^10.0.0 + specifier: ^10.3.2 version: 10.3.2 '@nestjs/schematics': - specifier: ^10.0.0 - version: 10.1.1(chokidar@3.6.0)(typescript@5.2.2) + specifier: ^10.1.1 + version: 10.1.1(chokidar@3.6.0)(typescript@5.4.5) '@nestjs/testing': - specifier: ^10.0.0 - version: 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5)) + specifier: ^10.3.8 + version: 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)) '@types/express': - specifier: ^4.17.17 + specifier: ^4.17.21 version: 4.17.21 '@types/jest': - specifier: ^29.5.2 + specifier: ^29.5.12 version: 29.5.12 '@types/node': - specifier: ^20.3.1 - version: 20.11.30 + specifier: ^20.12.7 + version: 20.12.7 '@types/supertest': - specifier: ^6.0.0 + specifier: ^6.0.2 version: 6.0.2 jest: - specifier: ^29.5.0 - version: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) prettier: - specifier: ^3.0.0 + specifier: ^3.2.5 version: 3.2.5 source-map-support: specifier: ^0.5.21 version: 0.5.21 supertest: - specifier: ^6.3.3 + specifier: ^6.3.4 version: 6.3.4 ts-jest: - specifier: ^29.1.0 - version: 29.1.2(@babel/core@7.24.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.4))(jest@29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)))(typescript@5.2.2) + specifier: ^29.1.2 + version: 29.1.2(@babel/core@7.24.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.4))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) ts-loader: - specifier: ^9.4.3 - version: 9.5.1(typescript@5.2.2)(webpack@5.90.1) + specifier: ^9.5.1 + version: 9.5.1(typescript@5.4.5)(webpack@5.90.1) ts-node: - specifier: ^10.9.1 - version: 10.9.2(@types/node@20.11.30)(typescript@5.2.2) + specifier: ^10.9.2 + version: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 typescript: - specifier: ^5.1.3 - version: 5.2.2 + specifier: ^5.4.5 + version: 5.4.5 apps/holder: dependencies: @@ -245,10 +245,10 @@ importers: devDependencies: '@angular-builders/custom-webpack': specifier: ^17.0.2 - version: 17.0.2(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.5)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)))(karma@6.4.3)(typescript@5.2.2) + version: 17.0.2(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.7)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.7))(karma@6.4.3)(typescript@5.2.2) '@angular-devkit/build-angular': specifier: ^17.3.3 - version: 17.3.3(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.5)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)))(karma@6.4.3)(typescript@5.2.2) + version: 17.3.3(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.7)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.7))(karma@6.4.3)(typescript@5.2.2) '@angular-eslint/builder': specifier: 17.3.0 version: 17.3.0(eslint@8.57.0)(typescript@5.2.2) @@ -325,17 +325,17 @@ importers: specifier: ^0.6.1 version: 0.6.1 '@sphereon/oid4vci-common': - specifier: ^0.10.1 - version: 0.10.1(encoding@0.1.13) + specifier: ^0.10.3 + version: 0.10.3(encoding@0.1.13) '@sphereon/oid4vci-issuer': - specifier: ^0.10.2 - version: 0.10.2(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13) + specifier: ^0.10.3 + version: 0.10.3(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13) '@sphereon/oid4vci-issuer-server': - specifier: ^0.10.2 - version: 0.10.2(@noble/hashes@1.2.0)(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1) + specifier: ^0.10.3 + version: 0.10.3(@noble/hashes@1.2.0)(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1) '@sphereon/ssi-express-support': - specifier: 0.18.1 - version: 0.18.1(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1) + specifier: ^0.23.4 + version: 0.23.4(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1) '@sphereon/ssi-types': specifier: ^0.22.0 version: 0.22.0 @@ -355,8 +355,8 @@ importers: specifier: ^1.2.1 version: 1.2.1 jose: - specifier: ^5.2.3 - version: 5.2.3 + specifier: ^5.2.4 + version: 5.2.4 passport-azure-ad: specifier: ^4.3.5 version: 4.3.5 @@ -374,17 +374,17 @@ importers: specifier: ^1.6.8 version: 1.6.8 globals: - specifier: ^15.0.0 - version: 15.0.0 + specifier: ^15.1.0 + version: 15.1.0 tsc-watch: specifier: ^6.2.0 - version: 6.2.0(typescript@5.4.3) + version: 6.2.0(typescript@5.4.5) typescript: - specifier: ^5.4.3 - version: 5.4.3 + specifier: ^5.4.5 + version: 5.4.5 vitest: - specifier: ^1.4.0 - version: 1.4.0(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.2) + specifier: ^1.5.2 + version: 1.5.2(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.30.4) apps/verifier: dependencies: @@ -404,14 +404,14 @@ importers: specifier: ^0.6.1 version: 0.6.1 '@sphereon/did-auth-siop': - specifier: ^0.6.3 - version: 0.6.3(encoding@0.1.13) + specifier: ^0.6.4 + version: 0.6.4(encoding@0.1.13) '@sphereon/pex-models': - specifier: ^2.2.2 - version: 2.2.2 + specifier: ^2.2.4 + version: 2.2.4 '@sphereon/ssi-express-support': - specifier: ^0.21.0 - version: 0.21.0(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1) + specifier: ^0.23.4 + version: 0.23.4(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1) '@sphereon/ssi-types': specifier: ^0.22.0 version: 0.22.0 @@ -450,17 +450,17 @@ importers: specifier: ^9.0.8 version: 9.0.8 globals: - specifier: ^15.0.0 - version: 15.0.0 + specifier: ^15.1.0 + version: 15.1.0 tsc-watch: specifier: ^6.2.0 - version: 6.2.0(typescript@5.4.4) + version: 6.2.0(typescript@5.4.5) typescript: - specifier: ^5.4.4 - version: 5.4.4 + specifier: ^5.4.5 + version: 5.4.5 vitest: - specifier: ^1.4.0 - version: 1.4.0(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.2) + specifier: ^1.5.2 + version: 1.5.2(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.30.4) packages: @@ -2160,8 +2160,8 @@ packages: '@swc/core': optional: true - '@nestjs/common@10.3.5': - resolution: {integrity: sha512-XWxbDf2ey/jAyEa3/XpckgfzJZ9j3I05ZkEFx7cAlebFuVKeq5UDDb5Sq9O7hMmbH9xdQj3pYT19SSj01hKeug==} + '@nestjs/common@10.3.8': + resolution: {integrity: sha512-P+vPEIvqx2e+fonsYVlFXKvoChyJ8Tq+lfpqdVFqblovHbFr3kZ/nYX0cPs+XuW6bnRT8tz0SSR9XBGU43kJhw==} peerDependencies: class-transformer: '*' class-validator: '*' @@ -2173,14 +2173,14 @@ packages: class-validator: optional: true - '@nestjs/config@3.2.1': - resolution: {integrity: sha512-tFZyLJKanSAu51ygQ6ZBSpx95pRcwS6qSpJDW6FFgRQzkOaOUXpL8qD8yMNoYoYxuJCxph+waiBaWKgFWxn3sw==} + '@nestjs/config@3.2.2': + resolution: {integrity: sha512-vGICPOui5vE6kPz1iwQ7oCnp3qWgqxldPmBQ9onkVoKlBtyc83KJCr7CjuVtf4OdovMAVcux1d8Q6jglU2ZphA==} peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 rxjs: ^7.1.0 - '@nestjs/core@10.3.5': - resolution: {integrity: sha512-U7SrGD9/Mu4eUtxfZYiGdY38FcksEyJegs4dQZ8B19nnusw0aTocPEy4HVsmx0LLO4sG+fBLLYzCDDr9kFwXAQ==} + '@nestjs/core@10.3.8': + resolution: {integrity: sha512-AxF4tpYLDNn5Wfb3C4bNaaHJ4pREH5FJrSisR2A5zkYpQFORFs0Tc36lOFPMwBTy8Iv2wUwWLUVc5ftBnxEv4w==} peerDependencies: '@nestjs/common': ^10.0.0 '@nestjs/microservices': ^10.0.0 @@ -2209,8 +2209,8 @@ packages: class-validator: optional: true - '@nestjs/platform-express@10.3.5': - resolution: {integrity: sha512-IhVomwLvdLlv4zCdQK2ROT/nInk1i8m4K48lAUHJV5UVktgVmg0WbQga2/9KywaTjNbx+eWhZXXFii+vtFRAOw==} + '@nestjs/platform-express@10.3.8': + resolution: {integrity: sha512-sifLoxgEJvAgbim1UuW6wyScMfkS9SVQRH+lN33N/9ZvZSjO6NSDLOe+wxqsnZkia+QrjFC0qy0ITRAsggfqbg==} peerDependencies: '@nestjs/common': ^10.0.0 '@nestjs/core': ^10.0.0 @@ -2220,8 +2220,8 @@ packages: peerDependencies: typescript: '>=4.8.2' - '@nestjs/swagger@7.3.0': - resolution: {integrity: sha512-zLkfKZ+ioYsIZ3dfv7Bj8YHnZMNAGWFUmx2ZDuLp/fBE4P8BSjB7hldzDueFXsmwaPL90v7lgyd82P+s7KME1Q==} + '@nestjs/swagger@7.3.1': + resolution: {integrity: sha512-LUC4mr+5oAleEC/a2j8pNRh1S5xhKXJ1Gal5ZdRjt9XebQgbngXCdW7JTA9WOEcwGtFZN9EnKYdquzH971LZfw==} peerDependencies: '@fastify/static': ^6.0.0 || ^7.0.0 '@nestjs/common': ^9.0.0 || ^10.0.0 @@ -2237,8 +2237,8 @@ packages: class-validator: optional: true - '@nestjs/testing@10.3.5': - resolution: {integrity: sha512-j30/lxH0BayeDTigapYtQn/XhMRR7CzlFsm3dHoWViWQv0qT1r2ffe3927BbBLX3N/ZzglE10OAqW06ADZV8dw==} + '@nestjs/testing@10.3.8': + resolution: {integrity: sha512-hpX9das2TdFTKQ4/2ojhjI6YgXtCfXRKui3A4Qaj54VVzc5+mtK502Jj18Vzji98o9MVS6skmYu+S/UvW3U6Fw==} peerDependencies: '@nestjs/common': ^10.0.0 '@nestjs/core': ^10.0.0 @@ -2413,76 +2413,156 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.17.0': + resolution: {integrity: sha512-nNvLvC2fjC+3+bHYN9uaGF3gcyy7RHGZhtl8TB/kINj9hiOQza8kWJGZh47GRPMrqeseO8U+Z8ElDMCZlWBdHA==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.14.1': resolution: {integrity: sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.17.0': + resolution: {integrity: sha512-+kjt6dvxnyTIAo7oHeYseYhDyZ7xRKTNl/FoQI96PHkJVxoChldJnne/LzYqpqidoK1/0kX0/q+5rrYqjpth6w==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.14.1': resolution: {integrity: sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.17.0': + resolution: {integrity: sha512-Oj6Tp0unMpGTBjvNwbSRv3DopMNLu+mjBzhKTt2zLbDJ/45fB1pltr/rqrO4bE95LzuYwhYn127pop+x/pzf5w==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.14.1': resolution: {integrity: sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.17.0': + resolution: {integrity: sha512-3nJx0T+yptxMd+v93rBRxSPTAVCv8szu/fGZDJiKX7kvRe9sENj2ggXjCH/KK1xZEmJOhaNo0c9sGMgGdfkvEw==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-linux-arm-gnueabihf@4.14.1': resolution: {integrity: sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.17.0': + resolution: {integrity: sha512-Vb2e8p9b2lxxgqyOlBHmp6hJMu/HSU6g//6Tbr7x5V1DlPCHWLOm37nSIVK314f+IHzORyAQSqL7+9tELxX3zQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.17.0': + resolution: {integrity: sha512-Md60KsmC5ZIaRq/bYYDloklgU+XLEZwS2EXXVcSpiUw+13/ZASvSWQ/P92rQ9YDCL6EIoXxuQ829JkReqdYbGg==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.14.1': resolution: {integrity: sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.17.0': + resolution: {integrity: sha512-zL5rBFtJ+2EGnMRm2TqKjdjgFqlotSU+ZJEN37nV+fiD3I6Gy0dUh3jBWN0wSlcXVDEJYW7YBe+/2j0N9unb2w==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.14.1': resolution: {integrity: sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.17.0': + resolution: {integrity: sha512-s2xAyNkJqUdtRVgNK4NK4P9QttS538JuX/kfVQOdZDI5FIKVAUVdLW7qhGfmaySJ1EvN/Bnj9oPm5go9u8navg==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.14.1': resolution: {integrity: sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==} cpu: [ppc64le] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.17.0': + resolution: {integrity: sha512-7F99yzVT67B7IUNMjLD9QCFDCyHkyCJMS1dywZrGgVFJao4VJ9szrIEgH67cR+bXQgEaY01ur/WSL6B0jtcLyA==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.14.1': resolution: {integrity: sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.17.0': + resolution: {integrity: sha512-leFtyiXisfa3Sg9pgZJwRKITWnrQfhtqDjCamnZhkZuIsk1FXmYwKoTkp6lsCgimIcneFFkHKp/yGLxDesga4g==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.14.1': resolution: {integrity: sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.17.0': + resolution: {integrity: sha512-FtOgui6qMJ4jbSXTxElsy/60LEe/3U0rXkkz2G5CJ9rbHPAvjMvI+3qF0A0fwLQ5hW+/ZC6PbnS2KfRW9JkgDQ==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.14.1': resolution: {integrity: sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.17.0': + resolution: {integrity: sha512-v6eiam/1w3HUfU/ZjzIDodencqgrSqzlNuNtiwH7PFJHYSo1ezL0/UIzmS2lpSJF1ORNaplXeKHYmmdt81vV2g==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.14.1': resolution: {integrity: sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.17.0': + resolution: {integrity: sha512-OUhkSdpM5ofVlVU2k4CwVubYwiwu1a4jYWPpubzN7Vzao73GoPBowHcCfaRSFRz1SszJ3HIsk3dZYk4kzbqjgw==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.14.1': resolution: {integrity: sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.17.0': + resolution: {integrity: sha512-uL7UYO/MNJPGL/yflybI+HI+n6+4vlfZmQZOCb4I+z/zy1wisHT3exh7oNQsnL6Eso0EUTEfgQ/PaGzzXf6XyQ==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.14.1': resolution: {integrity: sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.17.0': + resolution: {integrity: sha512-4WnSgaUiUmXILwFqREdOcqvSj6GD/7FrvSjhaDjmwakX9w4Z2F8JwiSP1AZZbuRkPqzi444UI5FPv33VKOWYFQ==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.14.1': resolution: {integrity: sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.17.0': + resolution: {integrity: sha512-ve+D8t1prRSRnF2S3pyDtTXDlvW1Pngbz76tjgYFQW1jxVSysmQCZfPoDAo4WP+Ano8zeYp85LsArZBI12HfwQ==} + cpu: [x64] + os: [win32] + '@schematics/angular@17.3.3': resolution: {integrity: sha512-kNlyjIKTBhfi8Jab3MCkxNRbbpErbzdu0lZNSL8Nidmqs6Tk23Dc1bZe4t/gPNOCkCvQlwYa6X88SjC/ntyVng==} engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -2564,13 +2644,24 @@ packages: resolution: {integrity: sha512-bcHHlipsp5yKs4v8QiCtW0Hx4cXdSxAlUpFjf9lSWnYYiafWPtjhO6fsccXvw6EbpKbvkBpQd6FOCY3yBIUgMA==} engines: {node: '>=18'} + '@sphereon/did-auth-siop@0.6.4': + resolution: {integrity: sha512-0hw/lypy7kHpChJc/206XFd1XVhfUEIg2RIuw2u0RE3POqMeuOL5DWiPHh3e7Oo0nzG9gdgJC8Yffv69d9QIrg==} + engines: {node: '>=18'} + '@sphereon/did-uni-client@0.6.2': resolution: {integrity: sha512-zWfgEmV3Lh4K6InIz5FiozrmJCkRJNvnblD3EKH3SFrYo0t+u4Tp5r2g+7bVfCX3RjAVxvf9FIUdeU6wNs/nMg==} + '@sphereon/did-uni-client@0.6.3': + resolution: {integrity: sha512-g7LD7ofbE36slHN7Bhr5dwUrj6t0BuZeXBYJMaVY/pOeL1vJxW1cZHbZqu0NSfOmzyBg4nsYVlgTjyi/Aua2ew==} + '@sphereon/oid4vci-client@0.10.2': resolution: {integrity: sha512-G0vE9/MwdyHQnYpnuaJqbRSIKXCLVyOVhJtJCKuqMEa9oYoNx+DwRKt5zjeiHfVxjjDoauFQ8qP2WOuvsqdR0w==} engines: {node: '>=18'} + '@sphereon/oid4vci-client@0.10.3': + resolution: {integrity: sha512-PkIZrwTMrHlgwcDNimWDQaAgi+9ptkV79g/sQJJAe4g8NCt3WyXtsV9l88CdzxDGVGDtzsnYqPXkimxP4eSScw==} + engines: {node: '>=18'} + '@sphereon/oid4vci-common@0.10.1': resolution: {integrity: sha512-J5MdekO5/EgA7UCpMFdPgAnift1vzvauH5ll19iYZoxKlTL1DZ1yiablo47l3aaral7DASM99HJyHfL7ceGcvg==} engines: {node: '>=18'} @@ -2580,12 +2671,21 @@ packages: msrcrypto: optional: true - '@sphereon/oid4vci-issuer-server@0.10.2': - resolution: {integrity: sha512-Gml81UkamQiQWyVc/eay7qEDf/Mg/WxYdkI7WWHWzF7e/aXtpTNKJv5vHyjFi2Ccr8DZfUhy7f0FPiYNbDJ8AQ==} + '@sphereon/oid4vci-common@0.10.3': + resolution: {integrity: sha512-VsUnDKkKm2yQ3lzAt2CY6vL06mZDK9dhwFT6T92aq03ncbUcS6gelwccdsXEMEfi5r4baFemiFM1O5v+mPjuEA==} engines: {node: '>=18'} + peerDependencies: + msrcrypto: ^1.5.8 + peerDependenciesMeta: + msrcrypto: + optional: true - '@sphereon/oid4vci-issuer@0.10.2': - resolution: {integrity: sha512-9EteuVxZe2tWfmISLelDWBhSzN4s/TAg74z9VDHoyzX/4EED/wtCYXny8JZRwBZAAc9Pdl/3qADe15d3rOQqJw==} + '@sphereon/oid4vci-issuer-server@0.10.3': + resolution: {integrity: sha512-tNXUnoKcevdKPaoL4kVwuQhAjkIs/aSnyCgls0Fqkxb6MvUmN4903/KYMBHqH5csH2uaK24+Grnmng3SlRhJKw==} + engines: {node: '>=18'} + + '@sphereon/oid4vci-issuer@0.10.3': + resolution: {integrity: sha512-qhm8ypkXuYsaG5XmXIFwL9DUJQ0TJScNjvg5w7beAm+zjz0sOkwIjXdS7S+29LfWj0BkYiRZp1d3mj8H/rmdUw==} engines: {node: '>=18'} peerDependencies: awesome-qr: ^2.1.5-rc.0 @@ -2593,29 +2693,19 @@ packages: awesome-qr: optional: true - '@sphereon/pex-models@2.2.2': - resolution: {integrity: sha512-CZIsBoaV5rMZEWYBsmH+RxsdoxpXf5FSDwDz0GB0qOf5WFk1BGUnzpZzi5yJ+2L151mhPk97dlRc9Wb01Awr4Q==} + '@sphereon/pex-models@2.2.4': + resolution: {integrity: sha512-pGlp+wplneE1+Lk3U48/2htYKTbONMeG5/x7vhO6AnPUOsnOXeJdftPrBYWVSzz/JH5GJptAc6+pAyYE1zMu4Q==} '@sphereon/pex@3.3.1': resolution: {integrity: sha512-DFFWLndJju4MplNnowrAVLwIxb64YOX6Ni2PZt2pr1jREE1c/4MwG5X8LyMOgPWH0nZUTDaS5H7MdjMKviFaDg==} engines: {node: '>=18'} - '@sphereon/ssi-express-support@0.18.1': - resolution: {integrity: sha512-AiRvSs9hkMnYZYM1Vre+VZfZ2EzxuWxKHenF1ReLQn4dTCFpITbG/dl86jQ8RP/APPt5KHWIKylfu6DAv9JHuQ==} - peerDependencies: - '@noble/hashes': 1.2.0 - passport-azure-ad: ^4.3.5 - passport-http-bearer: ^1.0.1 - peerDependenciesMeta: - '@noble/hashes': - optional: true - passport-azure-ad: - optional: true - passport-http-bearer: - optional: true + '@sphereon/pex@3.3.3': + resolution: {integrity: sha512-CXwdEcMTUh2z/5AriBn3OuShEG06l2tgiIr7qDJthnkez8DQ3sZo2vr4NEQWKKAL+DeAWAI4FryQGO4KuK7yfg==} + engines: {node: '>=18'} - '@sphereon/ssi-express-support@0.21.0': - resolution: {integrity: sha512-Pi6+ao5vdj518elwABfvzZ1bwOY9p4jWoS9c7Ms30NBf7KD1h8IvBlF9OEOQyp+l2sg4nV2LoDe0w7JfWQg0GQ==} + '@sphereon/ssi-express-support@0.23.4': + resolution: {integrity: sha512-IFPrShzWZ/hlKB604iSGylLOBiN7nRwiogBAmNEJ7zOyAKPEb4lMGBRfOqKINlXsGFbZ3CTNWFPJtyPZiVGgQA==} peerDependencies: '@noble/hashes': 1.2.0 passport-azure-ad: ^4.3.5 @@ -2766,9 +2856,6 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.17.43': - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} - '@types/express-serve-static-core@4.19.0': resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} @@ -2817,20 +2904,14 @@ packages: '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/mime@3.0.4': - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@20.11.30': - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} - - '@types/node@20.12.5': - resolution: {integrity: sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==} + '@types/node@20.12.7': + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} - '@types/qs@6.9.14': - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -2847,9 +2928,6 @@ packages: '@types/serve-index@1.9.4': resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - '@types/serve-static@1.15.5': - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} @@ -2950,20 +3028,20 @@ packages: peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - '@vitest/expect@1.4.0': - resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} + '@vitest/expect@1.5.2': + resolution: {integrity: sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==} - '@vitest/runner@1.4.0': - resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} + '@vitest/runner@1.5.2': + resolution: {integrity: sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==} - '@vitest/snapshot@1.4.0': - resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} + '@vitest/snapshot@1.5.2': + resolution: {integrity: sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==} - '@vitest/spy@1.4.0': - resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} + '@vitest/spy@1.5.2': + resolution: {integrity: sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==} - '@vitest/utils@1.4.0': - resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} + '@vitest/utils@1.5.2': + resolution: {integrity: sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -3382,10 +3460,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} - buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -3453,8 +3527,8 @@ packages: resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} engines: {node: '>=6'} - casbin@5.28.0: - resolution: {integrity: sha512-7R1zGDOWUKVowPTT/qTZjm5L5G0ZASQ6dmKIGHYM8KqmkTc28P/KUO9WeaGjLKELnpOCkPIz0EJHw1CaTtgucw==} + casbin@5.30.0: + resolution: {integrity: sha512-GDc8sImStd+ddBVBfLpe5fJPBWRjeEaz7fkiAGuw0+LTHF2TVvVsMALIMOx+ofzQhm+EHCH7mfiJsrS1Kgef2w==} chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -3497,8 +3571,8 @@ packages: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} - chromedriver@123.0.4: - resolution: {integrity: sha512-3Yi7y7q35kkSAOTbRisiww/SL2w+DqafDPAaUShpSuLMmPaOvHQR0i3bm2/33QBiQ8fUb1J/MzppzVL6IDqvhA==} + chromedriver@124.0.1: + resolution: {integrity: sha512-hxd1tpAUhgMFBZd1h3W7KyMckxofOYCuKAMtcvBDAU0YKKorZcWuq6zP06+Ph0Z1ynPjtgAj0hP9VphCwesjZw==} engines: {node: '>=18'} hasBin: true @@ -3506,8 +3580,8 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + cjs-module-lexer@1.3.1: + resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} class-transformer@0.5.1: resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} @@ -3634,6 +3708,9 @@ packages: engines: {node: ^14.13.0 || >=16.0.0} hasBin: true + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + connect-history-api-fallback@2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} @@ -3684,10 +3761,6 @@ packages: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -3856,8 +3929,8 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} - dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -4111,6 +4184,9 @@ packages: es-module-lexer@1.5.0: resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + es-module-lexer@1.5.2: + resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -4276,10 +4352,6 @@ packages: resolution: {integrity: sha512-m93QLWr0ju+rOwApSsyso838LQwgfs44QtOP/WBiwtAgPIo/SAh1a5c6nn2BR6mFNZehTpqKDESzP+fRHVbxwQ==} engines: {node: '>= 0.8.0'} - express@4.18.3: - resolution: {integrity: sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==} - engines: {node: '>= 0.10.0'} - express@4.19.2: resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} engines: {node: '>= 0.10.0'} @@ -4567,8 +4639,8 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} - globals@15.0.0: - resolution: {integrity: sha512-m/C/yR4mjO6pXDTm9/R/SpYTAIyaUB4EOzcaaMEl7mds7Mshct9GfejiJNQGjHHbdMPey13Kpu4TMbYi9ex1pw==} + globals@15.1.0: + resolution: {integrity: sha512-926gJqg+4mkxwYKiFvoomM4J0kWESfk3qfTvRL2/oc/tK/eTDBbrfcKnSa2KtfdxB5onoL7D3A3qIHQFpd4+UA==} engines: {node: '>=18'} globalthis@1.0.3: @@ -5172,15 +5244,12 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true - joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + joi@17.13.0: + resolution: {integrity: sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==} jose@4.15.5: resolution: {integrity: sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==} - jose@5.2.3: - resolution: {integrity: sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA==} - jose@5.2.4: resolution: {integrity: sha512-6ScbIk2WWCeXkmzF6bRPmEuaqy1m8SbsRFMa/FLrSCkGIhj8OLVG/IH+XHVmNMx/KUo8cVWEE6oKR4dJ+S0Rkg==} @@ -5306,8 +5375,8 @@ packages: engines: {node: '>= 10'} hasBin: true - keycloak-connect@24.0.2: - resolution: {integrity: sha512-o4hrHAI5SxIVqyD1yY0uIhDM6y9hZyyb3pJc1yYakhfhn2WPqmOGeq8zELPS1XJpj+k/paS+65LW45en1HgebA==} + keycloak-connect@24.0.3: + resolution: {integrity: sha512-kG3JH9MvttJMyGgXAvfxBj4/G5PAIFZQBNjaZ0gVcE28qspRpUKAazLnFj1L7oISOeSVXFEF4JJBwDPbnNeGKg==} engines: {node: '>=14'} keygrip@1.1.0: @@ -5363,8 +5432,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - libphonenumber-js@1.10.59: - resolution: {integrity: sha512-HeTsOrDF/hWhEiKqZVwg9Cqlep5x2T+IYDENvT2VRj3iX8JQ7Y+omENv+AIn0vC8m6GYhivfCed5Cgfw27r5SA==} + libphonenumber-js@1.10.61: + resolution: {integrity: sha512-TsQsyzDttDvvzWNkbp/i0fVbzTGJIG0mUu/uNalIaRQEYeJxVQ/FPg+EJgSqfSXezREjM0V3RZ8cLVsKYhhw0Q==} license-webpack-plugin@4.0.2: resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} @@ -5453,6 +5522,9 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} @@ -5461,10 +5533,6 @@ packages: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} - magic-string@0.30.9: - resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} - engines: {node: '>=12'} - make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -5770,8 +5838,8 @@ packages: resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} os: ['!win32'] - node-abi@3.60.0: - resolution: {integrity: sha512-zcGgwoXbzw9NczqbGzAWL/ToDYAxv1V8gL1D67ClbdkIfeeDBbY0GelZtC25ayLvVjr2q2cloHeQV1R0QAWqRQ==} + node-abi@3.62.0: + resolution: {integrity: sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==} engines: {node: '>=10'} node-abort-controller@3.1.1: @@ -6057,9 +6125,6 @@ packages: resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} engines: {node: '>= 14'} - packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} - pacote@17.0.6: resolution: {integrity: sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==} engines: {node: ^16.14.0 || >=18.0.0} @@ -6141,10 +6206,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - path-scurry@1.10.2: resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} engines: {node: '>=16 || 14 >=14.17'} @@ -6177,27 +6238,27 @@ packages: pg-cloudflare@1.1.1: resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} - pg-connection-string@2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + pg-connection-string@2.6.4: + resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - pg-pool@3.6.1: - resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} + pg-pool@3.6.2: + resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} peerDependencies: pg: '>=8.0' - pg-protocol@1.6.0: - resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} + pg-protocol@1.6.1: + resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} pg-types@2.2.0: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg@8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} + pg@8.11.5: + resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -6245,6 +6306,9 @@ packages: pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + pkg-types@1.1.0: + resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -6417,6 +6481,10 @@ packages: resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} engines: {node: '>=0.6'} + qs@6.12.1: + resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + engines: {node: '>=0.6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -6439,8 +6507,8 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} read-package-json-fast@3.0.2: resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} @@ -6465,9 +6533,6 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} - reflect-metadata@0.2.1: - resolution: {integrity: sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==} - reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} @@ -6579,6 +6644,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.17.0: + resolution: {integrity: sha512-wZJSn0WMtWrxhYKQRt5Z6GIXlziOoMDFmbHmRfL3v+sBTAshx2DBq1AfMArB7eIjF63r4ocn2ZTAyUptg/7kmQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -6804,8 +6874,8 @@ packages: resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} engines: {node: '>= 14'} - socks@2.8.1: - resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} source-map-js@1.2.0: @@ -6990,6 +7060,7 @@ packages: superagent@8.1.2: resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} engines: {node: '>=6.4.0 <13 || >=14'} + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net supertest@6.3.4: resolution: {integrity: sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==} @@ -7057,8 +7128,8 @@ packages: engines: {node: '>=10'} hasBin: true - terser@5.29.2: - resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} + terser@5.30.4: + resolution: {integrity: sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==} engines: {node: '>=10'} hasBin: true @@ -7082,11 +7153,11 @@ packages: thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - tinypool@0.8.3: - resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} + tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} tinyspy@2.2.1: @@ -7322,13 +7393,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.4.4: - resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true @@ -7453,8 +7519,8 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vite-node@1.4.0: - resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} + vite-node@1.5.2: + resolution: {integrity: sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -7486,8 +7552,8 @@ packages: terser: optional: true - vite@5.2.8: - resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} + vite@5.2.10: + resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7514,15 +7580,15 @@ packages: terser: optional: true - vitest@1.4.0: - resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} + vitest@1.5.2: + resolution: {integrity: sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.4.0 - '@vitest/ui': 1.4.0 + '@vitest/browser': 1.5.2 + '@vitest/ui': 1.5.2 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7780,10 +7846,10 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@angular-builders/common@1.0.2(@types/node@20.12.5)(chokidar@3.6.0)(typescript@5.2.2)': + '@angular-builders/common@1.0.2(@types/node@20.12.7)(chokidar@3.6.0)(typescript@5.2.2)': dependencies: '@angular-devkit/core': 17.3.3(chokidar@3.6.0) - ts-node: 10.9.2(@types/node@20.12.5)(typescript@5.2.2) + ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.2.2) tsconfig-paths: 4.2.0 transitivePeerDependencies: - '@swc/core' @@ -7792,11 +7858,11 @@ snapshots: - chokidar - typescript - '@angular-builders/custom-webpack@17.0.2(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.5)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)))(karma@6.4.3)(typescript@5.2.2)': + '@angular-builders/custom-webpack@17.0.2(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.7)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.7))(karma@6.4.3)(typescript@5.2.2)': dependencies: - '@angular-builders/common': 1.0.2(@types/node@20.12.5)(chokidar@3.6.0)(typescript@5.2.2) + '@angular-builders/common': 1.0.2(@types/node@20.12.7)(chokidar@3.6.0)(typescript@5.2.2) '@angular-devkit/architect': 0.1703.3(chokidar@3.6.0) - '@angular-devkit/build-angular': 17.3.3(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.5)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)))(karma@6.4.3)(typescript@5.2.2) + '@angular-devkit/build-angular': 17.3.3(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.7)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.7))(karma@6.4.3)(typescript@5.2.2) '@angular-devkit/core': 17.3.3(chokidar@3.6.0) '@angular/compiler-cli': 17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2) lodash: 4.17.21 @@ -7840,7 +7906,7 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@17.3.3(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.5)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)))(karma@6.4.3)(typescript@5.2.2)': + '@angular-devkit/build-angular@17.3.3(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(@angular/service-worker@17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(@types/express@4.17.21)(@types/node@20.12.7)(chokidar@3.6.0)(jest@29.7.0(@types/node@20.12.7))(karma@6.4.3)(typescript@5.2.2)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1703.3(chokidar@3.6.0) @@ -7858,7 +7924,7 @@ snapshots: '@babel/runtime': 7.24.0 '@discoveryjs/json-ext': 0.5.7 '@ngtools/webpack': 17.3.3(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(typescript@5.2.2)(webpack@5.90.3(esbuild@0.20.1)) - '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.1.5(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.1)) + '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.1.5(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.29.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.18(postcss@8.4.35) babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.90.3(esbuild@0.20.1)) @@ -7900,7 +7966,7 @@ snapshots: tslib: 2.6.2 typescript: 5.2.2 undici: 6.7.1 - vite: 5.1.5(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.1) + vite: 5.1.5(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.29.1) watchpack: 2.4.0 webpack: 5.90.3(esbuild@0.20.1) webpack-dev-middleware: 6.1.2(webpack@5.90.3(esbuild@0.20.1)) @@ -7910,7 +7976,7 @@ snapshots: optionalDependencies: '@angular/service-worker': 17.3.3(@angular/common@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)) esbuild: 0.20.1 - jest: 29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)) + jest: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) karma: 6.4.3 transitivePeerDependencies: - '@rspack/core' @@ -9487,62 +9553,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.30 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)) + jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -9562,13 +9593,12 @@ snapshots: - babel-plugin-macros - supports-color - ts-node - optional: true '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -9586,7 +9616,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.12.5 + '@types/node': 20.12.7 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -9608,7 +9638,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.12.5 + '@types/node': 20.12.7 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -9678,7 +9708,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -10286,9 +10316,9 @@ snapshots: '@microsoft/tsdoc@0.14.2': {} - '@nestjs/axios@3.0.2(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(axios@1.6.8)(rxjs@7.8.1)': + '@nestjs/axios@3.0.2(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(axios@1.6.8)(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) axios: 1.6.8 rxjs: 7.8.1 @@ -10321,10 +10351,10 @@ snapshots: - uglify-js - webpack-cli - '@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1)': + '@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: iterare: 1.2.1 - reflect-metadata: 0.2.1 + reflect-metadata: 0.2.2 rxjs: 7.8.1 tslib: 2.6.2 uid: 2.0.2 @@ -10332,103 +10362,103 @@ snapshots: class-transformer: 0.5.1 class-validator: 0.14.1 - '@nestjs/config@3.2.1(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(rxjs@7.8.1)': + '@nestjs/config@3.2.2(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) dotenv: 16.4.5 dotenv-expand: 10.0.0 lodash: 4.17.21 rxjs: 7.8.1 uuid: 9.0.1 - '@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1)': + '@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nuxtjs/opencollective': 0.3.2(encoding@0.1.13) fast-safe-stringify: 2.1.1 iterare: 1.2.1 path-to-regexp: 3.2.0 - reflect-metadata: 0.2.1 + reflect-metadata: 0.2.2 rxjs: 7.8.1 tslib: 2.6.2 uid: 2.0.2 optionalDependencies: - '@nestjs/platform-express': 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5) + '@nestjs/platform-express': 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8) transitivePeerDependencies: - encoding - '@nestjs/mapped-types@2.0.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)': + '@nestjs/mapped-types@2.0.5(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': dependencies: - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - reflect-metadata: 0.2.1 + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + reflect-metadata: 0.2.2 optionalDependencies: class-transformer: 0.5.1 class-validator: 0.14.1 - '@nestjs/platform-express@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5)': + '@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)': dependencies: - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) body-parser: 1.20.2 cors: 2.8.5 - express: 4.18.3 + express: 4.19.2 multer: 1.4.4-lts.1 tslib: 2.6.2 transitivePeerDependencies: - supports-color - '@nestjs/schematics@10.1.1(chokidar@3.6.0)(typescript@5.2.2)': + '@nestjs/schematics@10.1.1(chokidar@3.6.0)(typescript@5.3.3)': dependencies: '@angular-devkit/core': 17.1.2(chokidar@3.6.0) '@angular-devkit/schematics': 17.1.2(chokidar@3.6.0) comment-json: 4.2.3 jsonc-parser: 3.2.1 pluralize: 8.0.0 - typescript: 5.2.2 + typescript: 5.3.3 transitivePeerDependencies: - chokidar - '@nestjs/schematics@10.1.1(chokidar@3.6.0)(typescript@5.3.3)': + '@nestjs/schematics@10.1.1(chokidar@3.6.0)(typescript@5.4.5)': dependencies: '@angular-devkit/core': 17.1.2(chokidar@3.6.0) '@angular-devkit/schematics': 17.1.2(chokidar@3.6.0) comment-json: 4.2.3 jsonc-parser: 3.2.1 pluralize: 8.0.0 - typescript: 5.3.3 + typescript: 5.4.5 transitivePeerDependencies: - chokidar - '@nestjs/swagger@7.3.0(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)': + '@nestjs/swagger@7.3.1(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)': dependencies: '@microsoft/tsdoc': 0.14.2 - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/mapped-types': 2.0.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1) + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/mapped-types': 2.0.5(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) js-yaml: 4.1.0 lodash: 4.17.21 path-to-regexp: 3.2.0 - reflect-metadata: 0.2.1 + reflect-metadata: 0.2.2 swagger-ui-dist: 5.11.2 optionalDependencies: class-transformer: 0.5.1 class-validator: 0.14.1 - '@nestjs/testing@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5))': + '@nestjs/testing@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8))': dependencies: - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) tslib: 2.6.2 optionalDependencies: - '@nestjs/platform-express': 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5) + '@nestjs/platform-express': 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8) - '@nestjs/typeorm@10.0.2(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1))(reflect-metadata@0.2.1)(rxjs@7.8.1)(typeorm@0.3.20(pg@8.11.3)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)))': + '@nestjs/typeorm@10.0.2(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1)(typeorm@0.3.20(pg@8.11.5)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))': dependencies: - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1) - reflect-metadata: 0.2.1 + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + reflect-metadata: 0.2.2 rxjs: 7.8.1 - typeorm: 0.3.20(pg@8.11.3)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) + typeorm: 0.3.20(pg@8.11.5)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) uuid: 9.0.1 '@ngtools/webpack@17.3.3(@angular/compiler-cli@17.3.3(@angular/compiler@17.3.3(@angular/core@17.3.3(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.2.2))(typescript@5.2.2)(webpack@5.90.3(esbuild@0.20.1))': @@ -10597,48 +10627,96 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.14.1': optional: true + '@rollup/rollup-android-arm-eabi@4.17.0': + optional: true + '@rollup/rollup-android-arm64@4.14.1': optional: true + '@rollup/rollup-android-arm64@4.17.0': + optional: true + '@rollup/rollup-darwin-arm64@4.14.1': optional: true + '@rollup/rollup-darwin-arm64@4.17.0': + optional: true + '@rollup/rollup-darwin-x64@4.14.1': optional: true + '@rollup/rollup-darwin-x64@4.17.0': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.14.1': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.17.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.17.0': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.14.1': optional: true + '@rollup/rollup-linux-arm64-gnu@4.17.0': + optional: true + '@rollup/rollup-linux-arm64-musl@4.14.1': optional: true + '@rollup/rollup-linux-arm64-musl@4.17.0': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.14.1': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.17.0': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.14.1': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.17.0': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.14.1': optional: true + '@rollup/rollup-linux-s390x-gnu@4.17.0': + optional: true + '@rollup/rollup-linux-x64-gnu@4.14.1': optional: true + '@rollup/rollup-linux-x64-gnu@4.17.0': + optional: true + '@rollup/rollup-linux-x64-musl@4.14.1': optional: true + '@rollup/rollup-linux-x64-musl@4.17.0': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.14.1': optional: true + '@rollup/rollup-win32-arm64-msvc@4.17.0': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.14.1': optional: true + '@rollup/rollup-win32-ia32-msvc@4.17.0': + optional: true + '@rollup/rollup-win32-x64-msvc@4.14.1': optional: true + '@rollup/rollup-win32-x64-msvc@4.17.0': + optional: true + '@schematics/angular@17.3.3(chokidar@3.6.0)': dependencies: '@angular-devkit/core': 17.3.3(chokidar@3.6.0) @@ -10733,7 +10811,7 @@ snapshots: '@astronautlabs/jsonpath': 1.1.2 '@sphereon/did-uni-client': 0.6.2(encoding@0.1.13) '@sphereon/pex': 3.3.1(patch_hash=aasonhtvgrpgzz22orxg5mryvi) - '@sphereon/pex-models': 2.2.2 + '@sphereon/pex-models': 2.2.4 '@sphereon/ssi-types': 0.22.0 '@sphereon/wellknown-dids-client': 0.1.3(encoding@0.1.13) cross-fetch: 4.0.0(encoding@0.1.13) @@ -10749,6 +10827,27 @@ snapshots: transitivePeerDependencies: - encoding + '@sphereon/did-auth-siop@0.6.4(encoding@0.1.13)': + dependencies: + '@astronautlabs/jsonpath': 1.1.2 + '@sphereon/did-uni-client': 0.6.3(encoding@0.1.13) + '@sphereon/pex': 3.3.3 + '@sphereon/pex-models': 2.2.4 + '@sphereon/ssi-types': 0.22.0 + '@sphereon/wellknown-dids-client': 0.1.3(encoding@0.1.13) + cross-fetch: 4.0.0(encoding@0.1.13) + did-jwt: 6.11.6 + did-resolver: 4.1.0 + events: 3.3.0 + language-tags: 1.0.9 + multiformats: 12.1.3 + qs: 6.12.1 + sha.js: 2.4.11 + uint8arrays: 3.1.1 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + '@sphereon/did-uni-client@0.6.2(encoding@0.1.13)': dependencies: cross-fetch: 3.1.8(encoding@0.1.13) @@ -10756,6 +10855,13 @@ snapshots: transitivePeerDependencies: - encoding + '@sphereon/did-uni-client@0.6.3(encoding@0.1.13)': + dependencies: + cross-fetch: 3.1.8(encoding@0.1.13) + did-resolver: 4.1.0 + transitivePeerDependencies: + - encoding + '@sphereon/oid4vci-client@0.10.2(encoding@0.1.13)': dependencies: '@sphereon/oid4vci-common': 0.10.1(encoding@0.1.13) @@ -10767,6 +10873,17 @@ snapshots: - msrcrypto - supports-color + '@sphereon/oid4vci-client@0.10.3(encoding@0.1.13)': + dependencies: + '@sphereon/oid4vci-common': 0.10.3(encoding@0.1.13) + '@sphereon/ssi-types': 0.22.0 + cross-fetch: 3.1.8(encoding@0.1.13) + debug: 4.3.4(supports-color@5.5.0) + transitivePeerDependencies: + - encoding + - msrcrypto + - supports-color + '@sphereon/oid4vci-common@0.10.1(encoding@0.1.13)': dependencies: '@sphereon/ssi-types': 0.22.0 @@ -10777,11 +10894,21 @@ snapshots: transitivePeerDependencies: - encoding - '@sphereon/oid4vci-issuer-server@0.10.2(@noble/hashes@1.2.0)(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1)': + '@sphereon/oid4vci-common@0.10.3(encoding@0.1.13)': dependencies: - '@sphereon/oid4vci-common': 0.10.1(encoding@0.1.13) - '@sphereon/oid4vci-issuer': 0.10.2(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13) - '@sphereon/ssi-express-support': 0.18.1(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1) + '@sphereon/ssi-types': 0.22.0 + cross-fetch: 3.1.8(encoding@0.1.13) + jwt-decode: 3.1.2 + sha.js: 2.4.11 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - encoding + + '@sphereon/oid4vci-issuer-server@0.10.3(@noble/hashes@1.2.0)(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1)': + dependencies: + '@sphereon/oid4vci-common': 0.10.3(encoding@0.1.13) + '@sphereon/oid4vci-issuer': 0.10.3(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13) + '@sphereon/ssi-express-support': 0.23.4(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1) '@sphereon/ssi-types': 0.22.0 body-parser: 1.20.2 cookie-parser: 1.4.6 @@ -10789,7 +10916,7 @@ snapshots: dotenv-flow: 3.3.0 express: 4.19.2 http-terminator: 3.2.0 - typescript: 5.3.3 + typescript: 5.4.5 uuid: 9.0.1 transitivePeerDependencies: - '@noble/hashes' @@ -10800,9 +10927,9 @@ snapshots: - passport-http-bearer - supports-color - '@sphereon/oid4vci-issuer@0.10.2(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13)': + '@sphereon/oid4vci-issuer@0.10.3(awesome-qr@2.1.5-rc.0(encoding@0.1.13))(encoding@0.1.13)': dependencies: - '@sphereon/oid4vci-common': 0.10.1(encoding@0.1.13) + '@sphereon/oid4vci-common': 0.10.3(encoding@0.1.13) '@sphereon/ssi-types': 0.22.0 uuid: 9.0.1 optionalDependencies: @@ -10811,7 +10938,7 @@ snapshots: - encoding - msrcrypto - '@sphereon/pex-models@2.2.2': {} + '@sphereon/pex-models@2.2.4': {} '@sphereon/pex@3.3.1(patch_hash=aasonhtvgrpgzz22orxg5mryvi)': dependencies: @@ -10819,7 +10946,7 @@ snapshots: '@sd-jwt/decode': 0.6.1 '@sd-jwt/present': 0.6.1 '@sd-jwt/types': 0.6.1 - '@sphereon/pex-models': 2.2.2 + '@sphereon/pex-models': 2.2.4 '@sphereon/ssi-types': 0.22.0 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) @@ -10828,32 +10955,25 @@ snapshots: string.prototype.matchall: 4.0.11 uint8arrays: 3.1.1 - '@sphereon/ssi-express-support@0.18.1(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1)': + '@sphereon/pex@3.3.3': dependencies: - body-parser: 1.20.2 - casbin: 5.28.0 - cookie-session: 2.1.0 - cors: 2.8.5 - dotenv-flow: 3.3.0 - express: 4.19.2 - express-session: 1.18.0 - http-terminator: 3.2.0 - morgan: 1.10.0 - openid-client: 5.6.5 - passport: 0.6.0 - qs: 6.12.0 + '@astronautlabs/jsonpath': 1.1.2 + '@sd-jwt/decode': 0.6.1 + '@sd-jwt/present': 0.6.1 + '@sd-jwt/types': 0.6.1 + '@sphereon/pex-models': 2.2.4 + '@sphereon/ssi-types': 0.22.0 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + jwt-decode: 3.1.2 + nanoid: 3.3.7 + string.prototype.matchall: 4.0.11 uint8arrays: 3.1.1 - optionalDependencies: - '@noble/hashes': 1.2.0 - passport-azure-ad: 4.3.5 - passport-http-bearer: 1.0.1 - transitivePeerDependencies: - - supports-color - '@sphereon/ssi-express-support@0.21.0(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1)': + '@sphereon/ssi-express-support@0.23.4(@noble/hashes@1.2.0)(passport-azure-ad@4.3.5)(passport-http-bearer@1.0.1)': dependencies: body-parser: 1.20.2 - casbin: 5.28.0 + casbin: 5.30.0 cookie-session: 2.1.0 cors: 2.8.5 dotenv-flow: 3.3.0 @@ -10863,7 +10983,7 @@ snapshots: morgan: 1.10.0 openid-client: 5.6.5 passport: 0.6.0 - qs: 6.12.0 + qs: 6.12.1 uint8arrays: 3.1.1 optionalDependencies: '@noble/hashes': 1.2.0 @@ -11017,11 +11137,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.30 + '@types/node': 20.12.7 '@types/bonjour@3.5.13': dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/chrome@0.0.263': dependencies: @@ -11031,11 +11151,11 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.0 - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/connect@3.4.38': dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.7 '@types/cookie@0.4.1': {} @@ -11043,7 +11163,7 @@ snapshots: '@types/cors@2.8.17': dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/eslint-scope@3.7.7': dependencies: @@ -11057,26 +11177,19 @@ snapshots: '@types/estree@1.0.5': {} - '@types/express-serve-static-core@4.17.43': - dependencies: - '@types/node': 20.11.30 - '@types/qs': 6.9.14 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - '@types/express-serve-static-core@4.19.0': dependencies: - '@types/node': 20.12.5 - '@types/qs': 6.9.14 + '@types/node': 20.12.7 + '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.43 - '@types/qs': 6.9.14 - '@types/serve-static': 1.15.5 + '@types/express-serve-static-core': 4.19.0 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 '@types/filesystem@0.0.36': dependencies: @@ -11086,7 +11199,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/har-format@1.2.15': {} @@ -11094,7 +11207,7 @@ snapshots: '@types/http-proxy@1.17.14': dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/istanbul-lib-coverage@2.0.6': {} @@ -11119,21 +11232,15 @@ snapshots: '@types/mime@1.3.5': {} - '@types/mime@3.0.4': {} - '@types/node-forge@1.3.11': dependencies: - '@types/node': 20.12.5 - - '@types/node@20.11.30': - dependencies: - undici-types: 5.26.5 + '@types/node': 20.12.7 - '@types/node@20.12.5': + '@types/node@20.12.7': dependencies: undici-types: 5.26.5 - '@types/qs@6.9.14': {} + '@types/qs@6.9.15': {} '@types/range-parser@1.2.7': {} @@ -11144,27 +11251,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.30 + '@types/node': 20.12.7 '@types/serve-index@1.9.4': dependencies: '@types/express': 4.17.21 - '@types/serve-static@1.15.5': - dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 20.11.30 - '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/send': 0.17.4 '@types/sockjs@0.3.36': dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/stack-utils@2.0.3': {} @@ -11172,7 +11273,7 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 20.11.30 + '@types/node': 20.12.7 '@types/supertest@6.0.2': dependencies: @@ -11185,7 +11286,7 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 '@types/yargs-parser@21.0.3': {} @@ -11195,7 +11296,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 optional: true '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.2.2))(eslint@8.57.0)(typescript@5.2.2)': @@ -11286,33 +11387,33 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.1.5(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.1))': + '@vitejs/plugin-basic-ssl@1.1.0(vite@5.1.5(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.29.1))': dependencies: - vite: 5.1.5(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.1) + vite: 5.1.5(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.29.1) - '@vitest/expect@1.4.0': + '@vitest/expect@1.5.2': dependencies: - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 + '@vitest/spy': 1.5.2 + '@vitest/utils': 1.5.2 chai: 4.4.1 - '@vitest/runner@1.4.0': + '@vitest/runner@1.5.2': dependencies: - '@vitest/utils': 1.4.0 + '@vitest/utils': 1.5.2 p-limit: 5.0.0 pathe: 1.1.2 - '@vitest/snapshot@1.4.0': + '@vitest/snapshot@1.5.2': dependencies: - magic-string: 0.30.9 + magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 - '@vitest/spy@1.4.0': + '@vitest/spy@1.5.2': dependencies: tinyspy: 2.2.1 - '@vitest/utils@1.4.0': + '@vitest/utils@1.5.2': dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -11813,8 +11914,6 @@ snapshots: buffer-from@1.1.2: {} - buffer-writer@2.0.0: {} - buffer@5.7.1: dependencies: base64-js: 1.5.1 @@ -11918,7 +12017,7 @@ snapshots: - encoding - supports-color - casbin@5.28.0: + casbin@5.30.0: dependencies: await-lock: 2.2.2 buffer: 6.0.3 @@ -11975,7 +12074,7 @@ snapshots: chrome-trace-event@1.0.3: {} - chromedriver@123.0.4: + chromedriver@124.0.1: dependencies: '@testim/chrome-version': 1.1.4 axios: 1.6.8 @@ -11991,14 +12090,14 @@ snapshots: ci-info@3.9.0: {} - cjs-module-lexer@1.2.3: {} + cjs-module-lexer@1.3.1: {} class-transformer@0.5.1: {} class-validator@0.14.1: dependencies: '@types/validator': 13.11.9 - libphonenumber-js: 1.10.59 + libphonenumber-js: 1.10.61 validator: 13.11.0 clean-stack@2.2.0: {} @@ -12130,6 +12229,8 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 + confbox@0.1.7: {} + connect-history-api-fallback@2.0.0: {} connect@3.7.0: @@ -12177,8 +12278,6 @@ snapshots: cookie@0.4.2: {} - cookie@0.5.0: {} - cookie@0.6.0: {} cookiejar@2.1.4: {} @@ -12231,13 +12330,13 @@ snapshots: optionalDependencies: typescript: 5.2.2 - create-jest@29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)): + create-jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) + jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -12246,22 +12345,6 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - create-require@1.1.1: {} critters@0.0.22: @@ -12377,7 +12460,7 @@ snapshots: dependencies: mimic-response: 3.1.0 - dedent@1.5.1: {} + dedent@1.5.3: {} deep-eql@4.1.3: dependencies: @@ -12571,7 +12654,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.12.5 + '@types/node': 20.12.7 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -12667,6 +12750,8 @@ snapshots: es-module-lexer@1.5.0: {} + es-module-lexer@1.5.2: {} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -12951,42 +13036,6 @@ snapshots: transitivePeerDependencies: - supports-color - express@4.18.3: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.5.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - express@4.19.2: dependencies: accepts: 1.3.8 @@ -13199,7 +13248,7 @@ snapshots: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.12.0 + qs: 6.12.1 forwarded@0.2.0: {} @@ -13336,9 +13385,9 @@ snapshots: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 + minimatch: 9.0.4 minipass: 7.0.4 - path-scurry: 1.10.1 + path-scurry: 1.10.2 glob@10.3.12: dependencies: @@ -13371,7 +13420,7 @@ snapshots: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.10.1 + path-scurry: 1.10.2 globals@11.12.0: {} @@ -13379,7 +13428,7 @@ snapshots: dependencies: type-fest: 0.20.2 - globals@15.0.0: {} + globals@15.1.0: {} globalthis@1.0.3: dependencies: @@ -13894,10 +13943,10 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.1 + dedent: 1.5.3 is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -13914,35 +13963,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest-cli@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)): + jest-cli@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)) + create-jest: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)) + jest-config: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -13951,40 +13981,8 @@ snapshots: - babel-plugin-macros - supports-color - ts-node - optional: true - - jest-config@29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)): - dependencies: - '@babel/core': 7.24.4 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.4) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.11.30 - ts-node: 10.9.2(@types/node@20.11.30)(typescript@5.2.2) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - jest-config@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)): + jest-config@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): dependencies: '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 @@ -14009,12 +14007,11 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.12.5 - ts-node: 10.9.2(@types/node@20.12.5)(typescript@5.2.2) + '@types/node': 20.12.7 + ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - optional: true jest-diff@29.7.0: dependencies: @@ -14040,7 +14037,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -14050,7 +14047,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.12.5 + '@types/node': 20.12.7 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14089,7 +14086,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -14124,7 +14121,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -14152,9 +14149,9 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 chalk: 4.1.2 - cjs-module-lexer: 1.2.3 + cjs-module-lexer: 1.3.1 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -14198,7 +14195,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -14217,7 +14214,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.5 + '@types/node': 20.12.7 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -14226,45 +14223,32 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest@29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)): + jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.12.5)(ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2)) + jest-cli: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - optional: true jiti@1.21.0: {} - joi@17.12.2: + joi@17.13.0: dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -14274,8 +14258,6 @@ snapshots: jose@4.15.5: {} - jose@5.2.3: {} - jose@5.2.4: {} js-base64@3.7.7: {} @@ -14418,11 +14400,11 @@ snapshots: - supports-color - utf-8-validate - keycloak-connect@24.0.2: + keycloak-connect@24.0.3: dependencies: jwk-to-pem: 2.0.5 optionalDependencies: - chromedriver: 123.0.4 + chromedriver: 124.0.1 transitivePeerDependencies: - debug - supports-color @@ -14484,7 +14466,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libphonenumber-js@1.10.59: {} + libphonenumber-js@1.10.61: {} license-webpack-plugin@4.0.2(webpack@5.90.3(esbuild@0.20.1)): dependencies: @@ -14509,7 +14491,7 @@ snapshots: local-pkg@0.5.0: dependencies: mlly: 1.6.1 - pkg-types: 1.0.3 + pkg-types: 1.1.0 locate-path@5.0.0: dependencies: @@ -14567,15 +14549,15 @@ snapshots: lru-cache@7.18.3: optional: true - magic-string@0.30.5: + magic-string@0.30.10: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - magic-string@0.30.8: + magic-string@0.30.5: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - magic-string@0.30.9: + magic-string@0.30.8: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -14866,11 +14848,11 @@ snapshots: neo-async@2.6.2: {} - nest-keycloak-connect@1.10.0(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/core@10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1))(keycloak-connect@24.0.2): + nest-keycloak-connect@1.10.0(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(keycloak-connect@24.0.3): dependencies: - '@nestjs/common': 10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.5(@nestjs/common@10.3.5(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1))(@nestjs/platform-express@10.3.5)(encoding@0.1.13)(reflect-metadata@0.2.1)(rxjs@7.8.1) - keycloak-connect: 24.0.2 + '@nestjs/common': 10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) + keycloak-connect: 24.0.3 netmask@2.0.2: optional: true @@ -14890,7 +14872,7 @@ snapshots: node-gyp-build: 4.8.0 optional: true - node-abi@3.60.0: + node-abi@3.62.0: dependencies: semver: 7.6.0 @@ -15290,8 +15272,6 @@ snapshots: netmask: 2.0.2 optional: true - packet-reader@1.0.0: {} - pacote@17.0.6: dependencies: '@npmcli/git': 5.0.4 @@ -15395,11 +15375,6 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.10.1: - dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 - path-scurry@1.10.2: dependencies: lru-cache: 10.2.0 @@ -15427,15 +15402,15 @@ snapshots: pg-cloudflare@1.1.1: optional: true - pg-connection-string@2.6.2: {} + pg-connection-string@2.6.4: {} pg-int8@1.0.1: {} - pg-pool@3.6.1(pg@8.11.3): + pg-pool@3.6.2(pg@8.11.5): dependencies: - pg: 8.11.3 + pg: 8.11.5 - pg-protocol@1.6.0: {} + pg-protocol@1.6.1: {} pg-types@2.2.0: dependencies: @@ -15445,13 +15420,11 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg@8.11.3: + pg@8.11.5: dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.6.2 - pg-pool: 3.6.1(pg@8.11.3) - pg-protocol: 1.6.0 + pg-connection-string: 2.6.4 + pg-pool: 3.6.2(pg@8.11.5) + pg-protocol: 1.6.1 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: @@ -15492,6 +15465,12 @@ snapshots: mlly: 1.6.1 pathe: 1.1.2 + pkg-types@1.1.0: + dependencies: + confbox: 0.1.7 + mlly: 1.6.1 + pathe: 1.1.2 + pluralize@8.0.0: {} possible-typed-array-names@1.0.0: {} @@ -15567,7 +15546,7 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.60.0 + node-abi: 3.62.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -15584,7 +15563,7 @@ snapshots: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 18.2.0 + react-is: 18.3.1 proc-log@3.0.0: {} @@ -15653,6 +15632,10 @@ snapshots: dependencies: side-channel: 1.0.6 + qs@6.12.1: + dependencies: + side-channel: 1.0.6 + queue-microtask@1.2.3: {} random-bytes@1.0.0: {} @@ -15677,7 +15660,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-is@18.2.0: {} + react-is@18.3.1: {} read-package-json-fast@3.0.2: dependencies: @@ -15715,8 +15698,6 @@ snapshots: dependencies: resolve: 1.22.8 - reflect-metadata@0.2.1: {} - reflect-metadata@0.2.2: {} regenerate-unicode-properties@10.1.1: @@ -15838,6 +15819,28 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.14.1 fsevents: 2.3.3 + rollup@4.17.0: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.17.0 + '@rollup/rollup-android-arm64': 4.17.0 + '@rollup/rollup-darwin-arm64': 4.17.0 + '@rollup/rollup-darwin-x64': 4.17.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.17.0 + '@rollup/rollup-linux-arm-musleabihf': 4.17.0 + '@rollup/rollup-linux-arm64-gnu': 4.17.0 + '@rollup/rollup-linux-arm64-musl': 4.17.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.17.0 + '@rollup/rollup-linux-riscv64-gnu': 4.17.0 + '@rollup/rollup-linux-s390x-gnu': 4.17.0 + '@rollup/rollup-linux-x64-gnu': 4.17.0 + '@rollup/rollup-linux-x64-musl': 4.17.0 + '@rollup/rollup-win32-arm64-msvc': 4.17.0 + '@rollup/rollup-win32-ia32-msvc': 4.17.0 + '@rollup/rollup-win32-x64-msvc': 4.17.0 + fsevents: 2.3.3 + run-async@2.4.1: {} run-async@3.0.0: {} @@ -16101,7 +16104,7 @@ snapshots: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@5.5.0) - socks: 2.8.1 + socks: 2.8.3 transitivePeerDependencies: - supports-color optional: true @@ -16110,11 +16113,11 @@ snapshots: dependencies: agent-base: 7.1.1 debug: 4.3.4(supports-color@5.5.0) - socks: 2.8.1 + socks: 2.8.3 transitivePeerDependencies: - supports-color - socks@2.8.1: + socks@2.8.3: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 @@ -16340,7 +16343,7 @@ snapshots: formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.12.0 + qs: 6.12.1 semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -16410,7 +16413,7 @@ snapshots: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.29.2 + terser: 5.30.4 webpack: 5.90.3(esbuild@0.20.1) optionalDependencies: esbuild: 0.20.1 @@ -16421,7 +16424,7 @@ snapshots: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.29.2 + terser: 5.30.4 webpack: 5.90.1 terser@5.29.1: @@ -16431,7 +16434,7 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - terser@5.29.2: + terser@5.30.4: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 @@ -16458,9 +16461,9 @@ snapshots: thunky@1.1.0: {} - tinybench@2.6.0: {} + tinybench@2.8.0: {} - tinypool@0.8.3: {} + tinypool@0.8.4: {} tinyspy@2.2.1: {} @@ -16492,41 +16495,41 @@ snapshots: dependencies: typescript: 5.2.2 - ts-jest@29.1.2(@babel/core@7.24.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.4))(jest@29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)))(typescript@5.2.2): + ts-jest@29.1.2(@babel/core@7.24.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.4))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)) + jest: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.0 - typescript: 5.2.2 + typescript: 5.4.5 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.24.4 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.24.4) - ts-loader@9.5.1(typescript@5.2.2)(webpack@5.90.1): + ts-loader@9.5.1(typescript@5.4.5)(webpack@5.90.1): dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 micromatch: 4.0.5 semver: 7.6.0 source-map: 0.7.4 - typescript: 5.2.2 + typescript: 5.4.5 webpack: 5.90.1 - ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2): + ts-node@10.9.2(@types/node@20.12.7)(typescript@5.2.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.30 + '@types/node': 20.12.7 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -16537,39 +16540,31 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@20.12.5)(typescript@5.2.2): + ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.5 + '@types/node': 20.12.7 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.2.2 + typescript: 5.4.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tsc-watch@6.2.0(typescript@5.4.3): - dependencies: - cross-spawn: 7.0.3 - node-cleanup: 2.1.2 - ps-tree: 1.2.0 - string-argv: 0.3.2 - typescript: 5.4.3 - - tsc-watch@6.2.0(typescript@5.4.4): + tsc-watch@6.2.0(typescript@5.4.5): dependencies: cross-spawn: 7.0.3 node-cleanup: 2.1.2 ps-tree: 1.2.0 string-argv: 0.3.2 - typescript: 5.4.4 + typescript: 5.4.5 tsconfig-paths-webpack-plugin@4.1.0: dependencies: @@ -16656,7 +16651,7 @@ snapshots: typedarray@0.0.6: {} - typeorm@0.3.20(pg@8.11.3)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.11.30)(typescript@5.2.2)): + typeorm@0.3.20(pg@8.11.5)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): dependencies: '@sqltools/formatter': 1.2.5 app-root-path: 3.1.0 @@ -16666,17 +16661,17 @@ snapshots: dayjs: 1.11.10 debug: 4.3.4(supports-color@5.5.0) dotenv: 16.4.5 - glob: 10.3.10 + glob: 10.3.12 mkdirp: 2.1.6 - reflect-metadata: 0.2.1 + reflect-metadata: 0.2.2 sha.js: 2.4.11 tslib: 2.6.2 uuid: 9.0.1 yargs: 17.7.2 optionalDependencies: - pg: 8.11.3 + pg: 8.11.5 sqlite3: 5.1.7 - ts-node: 10.9.2(@types/node@20.11.30)(typescript@5.2.2) + ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) transitivePeerDependencies: - supports-color @@ -16684,9 +16679,7 @@ snapshots: typescript@5.3.3: {} - typescript@5.4.3: {} - - typescript@5.4.4: {} + typescript@5.4.5: {} ua-parser-js@0.7.37: {} @@ -16793,13 +16786,13 @@ snapshots: vary@1.1.2: {} - vite-node@1.4.0(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.2): + vite-node@1.5.2(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.30.4): dependencies: cac: 6.7.14 debug: 4.3.4(supports-color@5.5.0) pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.8(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.2) + vite: 5.2.10(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.30.4) transitivePeerDependencies: - '@types/node' - less @@ -16810,54 +16803,54 @@ snapshots: - supports-color - terser - vite@5.1.5(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.1): + vite@5.1.5(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.29.1): dependencies: esbuild: 0.19.12 postcss: 8.4.35 rollup: 4.14.1 optionalDependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 fsevents: 2.3.3 less: 4.2.0 sass: 1.71.1 terser: 5.29.1 - vite@5.2.8(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.2): + vite@5.2.10(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.30.4): dependencies: esbuild: 0.20.2 postcss: 8.4.38 - rollup: 4.14.1 + rollup: 4.17.0 optionalDependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 fsevents: 2.3.3 less: 4.2.0 sass: 1.71.1 - terser: 5.29.2 + terser: 5.30.4 - vitest@1.4.0(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.2): + vitest@1.5.2(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.30.4): dependencies: - '@vitest/expect': 1.4.0 - '@vitest/runner': 1.4.0 - '@vitest/snapshot': 1.4.0 - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 + '@vitest/expect': 1.5.2 + '@vitest/runner': 1.5.2 + '@vitest/snapshot': 1.5.2 + '@vitest/spy': 1.5.2 + '@vitest/utils': 1.5.2 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4(supports-color@5.5.0) execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.9 + magic-string: 0.30.10 pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 2.1.0 - tinybench: 2.6.0 - tinypool: 0.8.3 - vite: 5.2.8(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.2) - vite-node: 1.4.0(@types/node@20.12.5)(less@4.2.0)(sass@1.71.1)(terser@5.29.2) + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.10(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.30.4) + vite-node: 1.5.2(@types/node@20.12.7)(less@4.2.0)(sass@1.71.1)(terser@5.30.4) why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.7 transitivePeerDependencies: - less - lightningcss @@ -16979,7 +16972,7 @@ snapshots: browserslist: 4.23.0 chrome-trace-event: 1.0.3 enhanced-resolve: 5.16.0 - es-module-lexer: 1.5.0 + es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 From bd5f171693a70385ba43d36996e7075f8c886317 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sun, 28 Apr 2024 15:19:33 +0200 Subject: [PATCH 5/5] improve history management Signed-off-by: Mirko Mollik --- .../src/history/dto/history-response.dto.ts | 15 +++++ .../src/history/entities/history.entity.ts | 6 ++ .../backend/src/history/history.controller.ts | 6 +- apps/backend/src/history/history.service.ts | 51 +++++++++++++++-- .../src/oid4vc/oid4vp/oid4vp.service.ts | 7 ++- .../shared/api/kms/.openapi-generator/FILES | 2 + .../shared/api/kms/api/history.service.ts | 10 ++-- .../shared/api/kms/model/disclosed.ts | 18 ++++++ .../projects/shared/api/kms/model/history.ts | 2 + .../shared/api/kms/model/historyResponse.ts | 57 +++++++++++++++++++ .../projects/shared/api/kms/model/models.ts | 2 + .../history-list/history-list.component.html | 18 +++--- .../history-show/history-show.component.html | 15 +++++ .../history-show/history-show.component.ts | 4 +- 14 files changed, 188 insertions(+), 25 deletions(-) create mode 100644 apps/backend/src/history/dto/history-response.dto.ts create mode 100644 apps/holder/projects/shared/api/kms/model/disclosed.ts create mode 100644 apps/holder/projects/shared/api/kms/model/historyResponse.ts diff --git a/apps/backend/src/history/dto/history-response.dto.ts b/apps/backend/src/history/dto/history-response.dto.ts new file mode 100644 index 00000000..c58f0245 --- /dev/null +++ b/apps/backend/src/history/dto/history-response.dto.ts @@ -0,0 +1,15 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { History } from '../entities/history.entity'; + +class Disclosed { + key: string; + value: string; +} + +export class HistoryResponse extends History { + /** + * The values that were presented + */ + @ApiProperty({ type: [Disclosed] }) + disclosed: Disclosed[]; +} diff --git a/apps/backend/src/history/entities/history.entity.ts b/apps/backend/src/history/entities/history.entity.ts index 39ca2d28..5d007269 100644 --- a/apps/backend/src/history/entities/history.entity.ts +++ b/apps/backend/src/history/entities/history.entity.ts @@ -42,6 +42,12 @@ export class History { @Column() status: HistoryStatus; + @Column({ nullable: true }) + credentialType: string; + + @Column({ nullable: true }) + presentation: string; + /** * Date of creation */ diff --git a/apps/backend/src/history/history.controller.ts b/apps/backend/src/history/history.controller.ts index c10c8fdb..f6c3d8da 100644 --- a/apps/backend/src/history/history.controller.ts +++ b/apps/backend/src/history/history.controller.ts @@ -3,6 +3,7 @@ import { ApiOAuth2, ApiOperation, ApiProperty, ApiTags } from '@nestjs/swagger'; import { AuthGuard, AuthenticatedUser } from 'nest-keycloak-connect'; import { HistoryService } from './history.service'; import { KeycloakUser } from 'src/auth/user'; +import { HistoryResponse } from './dto/history-response.dto'; @UseGuards(AuthGuard) @ApiOAuth2([]) @@ -19,7 +20,10 @@ export class HistoryController { @ApiOperation({ summary: 'get one element' }) @Get(':id') - getOne(@AuthenticatedUser() user: KeycloakUser, @Param('id') id: string) { + getOne( + @AuthenticatedUser() user: KeycloakUser, + @Param('id') id: string + ): Promise { return this.historyService.getOne(id, user.sub); } diff --git a/apps/backend/src/history/history.service.ts b/apps/backend/src/history/history.service.ts index 68a9294c..04d89138 100644 --- a/apps/backend/src/history/history.service.ts +++ b/apps/backend/src/history/history.service.ts @@ -2,25 +2,54 @@ import { Injectable } from '@nestjs/common'; import { History } from './entities/history.entity'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; +import { CompactSdJwtVc } from '@sphereon/ssi-types'; +import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc'; +import { digest } from '@sd-jwt/crypto-nodejs'; +import { HistoryResponse } from './dto/history-response.dto'; @Injectable() export class HistoryService { + instance: SDJwtVcInstance; + constructor( @InjectRepository(History) private historyRepository: Repository - ) {} + ) { + this.instance = new SDJwtVcInstance({ hasher: digest }); + } all(user: string) { return this.historyRepository.find({ where: { user }, order: { created_at: 'DESC' }, // we only the id, relyingParty, created_at, and status fields to represent it as a list - select: ['id', 'relyingParty', 'created_at', 'status'], + select: [ + 'id', + 'relyingParty', + 'relyingPartyLogo', + 'credentialType', + 'created_at', + 'status', + ], }); } getOne(id: string, user: string) { - return this.historyRepository.findOne({ where: { id, user } }); + //TODO: decode the presentation to return the values that got presented + return this.historyRepository + .findOne({ where: { id, user } }) + .then(async (element: HistoryResponse) => { + if (element.presentation) { + const pres = await this.instance.decode(element.presentation); + element.disclosed = pres.disclosures.map((d) => ({ + key: d.key, + value: d.value as string, + })); + } + element.user = undefined; + element.presentation = undefined; + return element; + }); } add( @@ -40,8 +69,20 @@ export class HistoryService { return this.historyRepository.save(history); } - setStatus(id: string, status: 'accepted' | 'declined') { - return this.historyRepository.update({ id }, { status }); + async accept(id: string, presentation: CompactSdJwtVc) { + const pres = await this.instance.decode(presentation); + return this.historyRepository.update( + { id }, + { + presentation, + status: 'accepted', + credentialType: pres.jwt.payload.vct as string, + } + ); + } + + decline(id: string) { + return this.historyRepository.update({ id }, { status: 'declined' }); } delete(sub: string) { diff --git a/apps/backend/src/oid4vc/oid4vp/oid4vp.service.ts b/apps/backend/src/oid4vc/oid4vp/oid4vp.service.ts index f482a189..cf480a2a 100644 --- a/apps/backend/src/oid4vc/oid4vp/oid4vp.service.ts +++ b/apps/backend/src/oid4vc/oid4vp/oid4vp.service.ts @@ -22,6 +22,7 @@ import { SubmissionRequest } from './dto/submission-request.dto'; import { HistoryService } from 'src/history/history.service'; import { Oid4vpParseRequest } from './dto/parse-request.dto'; import { Session } from './session'; +import { CompactSdJwtVc } from '@sphereon/ssi-types'; @Injectable() export class Oid4vpService { @@ -199,7 +200,9 @@ export class Oid4vpService { const res = await session.op .submitAuthorizationResponse(authenticationResponseWithJWT) .catch(() => ''); - await this.historyService.setStatus(sessionId, 'accepted'); + const response = authenticationResponseWithJWT.response.payload + .vp_token as CompactSdJwtVc; + await this.historyService.accept(sessionId, response); this.sessions.delete(sessionId); } @@ -214,7 +217,7 @@ export class Oid4vpService { if (!session || session.user !== user) { throw new ConflictException('Session not found'); } - await this.historyService.setStatus(id, 'declined'); + await this.historyService.decline(id); this.sessions.delete(id); } diff --git a/apps/holder/projects/shared/api/kms/.openapi-generator/FILES b/apps/holder/projects/shared/api/kms/.openapi-generator/FILES index 151764da..51283e3d 100644 --- a/apps/holder/projects/shared/api/kms/.openapi-generator/FILES +++ b/apps/holder/projects/shared/api/kms/.openapi-generator/FILES @@ -17,7 +17,9 @@ model/createKey.ts model/cred.ts model/credentialIssuer.ts model/credentialResponse.ts +model/disclosed.ts model/history.ts +model/historyResponse.ts model/issuerMetadataLogo.ts model/keyResponse.ts model/keyType.ts diff --git a/apps/holder/projects/shared/api/kms/api/history.service.ts b/apps/holder/projects/shared/api/kms/api/history.service.ts index cdd35ff4..f12d03b7 100644 --- a/apps/holder/projects/shared/api/kms/api/history.service.ts +++ b/apps/holder/projects/shared/api/kms/api/history.service.ts @@ -20,6 +20,8 @@ import { Observable } from 'rxjs'; // @ts-ignore import { History } from '../model/history'; +// @ts-ignore +import { HistoryResponse } from '../model/historyResponse'; // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; @@ -230,9 +232,9 @@ export class HistoryApiService { * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ - public historyControllerGetOne(id: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable; - public historyControllerGetOne(id: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; - public historyControllerGetOne(id: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public historyControllerGetOne(id: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable; + public historyControllerGetOne(id: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public historyControllerGetOne(id: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; public historyControllerGetOne(id: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable { if (id === null || id === undefined) { throw new Error('Required parameter id was null or undefined when calling historyControllerGetOne.'); @@ -282,7 +284,7 @@ export class HistoryApiService { } let localVarPath = `/history/${this.configuration.encodeParam({name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; - return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, + return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, { context: localVarHttpContext, responseType: responseType_, diff --git a/apps/holder/projects/shared/api/kms/model/disclosed.ts b/apps/holder/projects/shared/api/kms/model/disclosed.ts new file mode 100644 index 00000000..acc28a95 --- /dev/null +++ b/apps/holder/projects/shared/api/kms/model/disclosed.ts @@ -0,0 +1,18 @@ +/** + * API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export interface Disclosed { + key: string; + value: string; +} + diff --git a/apps/holder/projects/shared/api/kms/model/history.ts b/apps/holder/projects/shared/api/kms/model/history.ts index 7c64855c..b8d73556 100644 --- a/apps/holder/projects/shared/api/kms/model/history.ts +++ b/apps/holder/projects/shared/api/kms/model/history.ts @@ -33,6 +33,8 @@ export interface History { */ relyingParty: string; relyingPartyLogo: string; + credentialType: string; + presentation: string; /** * Date of creation */ diff --git a/apps/holder/projects/shared/api/kms/model/historyResponse.ts b/apps/holder/projects/shared/api/kms/model/historyResponse.ts new file mode 100644 index 00000000..a7aebdaf --- /dev/null +++ b/apps/holder/projects/shared/api/kms/model/historyResponse.ts @@ -0,0 +1,57 @@ +/** + * API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { Disclosed } from './disclosed'; + + +export interface HistoryResponse { + /** + * Status of the history entry + */ + status: HistoryResponse.StatusEnum; + /** + * The values that were presented + */ + disclosed: Array; + /** + * Unique ID of the history entry + */ + id: string; + /** + * The user that owns the key + */ + user: string; + /** + * Values + */ + value: string; + /** + * Relying party + */ + relyingParty: string; + relyingPartyLogo: string; + credentialType: string; + presentation: string; + /** + * Date of creation + */ + created_at: string; +} +export namespace HistoryResponse { + export type StatusEnum = 'pending' | 'accepted' | 'declined'; + export const StatusEnum = { + pending: 'pending' as StatusEnum, + accepted: 'accepted' as StatusEnum, + declined: 'declined' as StatusEnum + }; +} + + diff --git a/apps/holder/projects/shared/api/kms/model/models.ts b/apps/holder/projects/shared/api/kms/model/models.ts index 32c85996..0c0c05ee 100644 --- a/apps/holder/projects/shared/api/kms/model/models.ts +++ b/apps/holder/projects/shared/api/kms/model/models.ts @@ -3,7 +3,9 @@ export * from './createKey'; export * from './cred'; export * from './credentialIssuer'; export * from './credentialResponse'; +export * from './disclosed'; export * from './history'; +export * from './historyResponse'; export * from './issuerMetadataLogo'; export * from './keyResponse'; export * from './keyType'; diff --git a/apps/holder/projects/shared/history/history-list/history-list.component.html b/apps/holder/projects/shared/history/history-list/history-list.component.html index 579dd7f2..6b890545 100644 --- a/apps/holder/projects/shared/history/history-list/history-list.component.html +++ b/apps/holder/projects/shared/history/history-list/history-list.component.html @@ -7,17 +7,13 @@

History

@for (history of values; track history) { - - call_made -

{{ history.relyingParty }}

-

{{ history.created_at | date: 'medium' }}

+ logo +

+ {{ history.credentialType }} +

+

Declined

+ {{ history.relyingParty }} + {{ history.created_at | date: 'medium' }}
}
diff --git a/apps/holder/projects/shared/history/history-show/history-show.component.html b/apps/holder/projects/shared/history/history-show/history-show.component.html index c6b78fa0..5fa41119 100644 --- a/apps/holder/projects/shared/history/history-show/history-show.component.html +++ b/apps/holder/projects/shared/history/history-show/history-show.component.html @@ -18,6 +18,21 @@

{{ element.relyingParty }}

Action
{{ element.status }}
+ + +
Credential
+
{{ element.credentialType }}
+
+
+ +
Presented values
+ @for (disclosed of element.disclosed; track disclosed) { + +
{{ disclosed.key }}
+
{{ disclosed.value }}
+
+ } +
diff --git a/apps/holder/projects/shared/history/history-show/history-show.component.ts b/apps/holder/projects/shared/history/history-show/history-show.component.ts index d70f5f00..e0697ec7 100644 --- a/apps/holder/projects/shared/history/history-show/history-show.component.ts +++ b/apps/holder/projects/shared/history/history-show/history-show.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Router, RouterModule } from '@angular/router'; -import { History, HistoryApiService } from '../../api/kms'; +import { History, HistoryApiService, HistoryResponse } from '../../api/kms'; import { firstValueFrom } from 'rxjs'; import { MatCardModule } from '@angular/material/card'; import { CommonModule } from '@angular/common'; @@ -25,7 +25,7 @@ import { MatListModule } from '@angular/material/list'; styleUrl: './history-show.component.scss', }) export class HistoryShowComponent implements OnInit { - element!: History; + element!: HistoryResponse; constructor( private route: ActivatedRoute,