fork of hey-api/openapi-ts because I need some additional things

chore: remove old e2e files

Lubos 093aefdb 996021e4

-3
.github/workflows/ci.yml
··· 50 50 - name: Run unit tests 51 51 run: pnpm test 52 52 53 - - name: Run e2e tests 54 - run: pnpm test:e2e 55 - 56 53 - name: Publish preview packages 57 54 if: github.event_name == 'pull_request' && matrix.node-version == '22.12.0' && matrix.os == 'ubuntu-latest' 58 55 run: ./scripts/publish-preview-packages.sh
-1
.gitignore
··· 21 21 22 22 # test files 23 23 test/generated 24 - test/e2e/generated 25 24 26 25 # debug files 27 26 openapi-ts-debug-*
-1
.prettierignore
··· 8 8 **/.svelte-kit 9 9 **/.vitepress/cache 10 10 **/.vitepress/dist 11 - **/test/e2e 12 11 **/test/generated 13 12 **/__snapshots__ 14 13
-7
eslint.config.js
··· 48 48 }, 49 49 }, 50 50 { 51 - files: ['packages/openapi-ts/test/e2e/assets/main-angular-module.ts'], 52 - rules: { 53 - '@typescript-eslint/consistent-type-imports': 'off', 54 - }, 55 - }, 56 - { 57 51 files: ['**/*.cjs'], 58 52 rules: { 59 53 '@typescript-eslint/no-require-imports': 'off', ··· 68 62 'temp/', 69 63 'packages/openapi-ts/src/legacy/handlebars/compiled/**/*.js', 70 64 'packages/openapi-ts/src/legacy/handlebars/templates/**/*.hbs', 71 - '**/test/e2e/generated/', 72 65 '**/test/generated/', 73 66 '**/__snapshots__/', 74 67 '**/.next/',
-1
package.json
··· 30 30 "test:changelog": "vitest run .changeset", 31 31 "test:changelog:watch": "vitest watch .changeset", 32 32 "test:coverage": "turbo run test:coverage", 33 - "test:e2e": "turbo run test:e2e", 34 33 "test:update": "turbo run test:update", 35 34 "test:watch": "turbo run test:watch", 36 35 "test": "turbo run test",
-1
packages/openapi-ts-tests/main/.gitignore
··· 17 17 18 18 # test files 19 19 test/generated 20 - test/e2e/generated 21 20 generated/
+4 -9
packages/openapi-ts-tests/main/package.json
··· 4 4 "private": true, 5 5 "type": "module", 6 6 "scripts": { 7 - "test:coverage": "vitest run --config vitest.config.unit.ts --coverage", 8 - "test:e2e:disabled": "vitest run --config vitest.config.e2e.ts", 9 - "test:sample": "openapi-ts -i ../specs/3.1.x/validators.yaml -o ./test/generated/sample", 7 + "test:coverage": "vitest run --coverage", 10 8 "test:types": "tsc -p tsconfig.test.json --noEmit", 11 - "test:update": "vitest watch --config vitest.config.unit.ts --update", 12 - "test:watch": "vitest watch --config vitest.config.unit.ts", 13 - "test": "vitest run --config vitest.config.unit.ts", 9 + "test:update": "vitest watch --update", 10 + "test:watch": "vitest watch", 11 + "test": "vitest run", 14 12 "typecheck": "tsc --noEmit" 15 13 }, 16 14 "engines": { ··· 38 36 "@tanstack/svelte-query": "5.73.3", 39 37 "@tanstack/vue-query": "5.73.3", 40 38 "@types/cross-spawn": "6.0.6", 41 - "@types/express": "4.17.21", 42 39 "axios": "1.8.2", 43 40 "cross-spawn": "7.0.5", 44 41 "eslint": "9.17.0", 45 - "express": "4.21.0", 46 42 "fastify": "5.2.0", 47 43 "glob": "10.4.3", 48 44 "node-fetch": "3.3.2", 49 45 "nuxt": "3.14.1592", 50 46 "prettier": "3.4.2", 51 - "puppeteer": "22.12.1", 52 47 "rxjs": "7.8.1", 53 48 "ts-node": "10.9.2", 54 49 "tslib": "2.8.1",
-9
packages/openapi-ts-tests/main/test/e2e/assets/index.html
··· 1 - <!doctype html> 2 - <html lang="en"> 3 - <head> 4 - <meta charset="utf-8" /> 5 - <title></title> 6 - <script type="module" src="js/main.js"></script> 7 - </head> 8 - <body></body> 9 - </html>
-79
packages/openapi-ts-tests/main/test/e2e/assets/main-angular-module.ts
··· 1 - import { HttpClientModule } from '@angular/common/http' 2 - import { Component, NgModule } from '@angular/core' 3 - import { BrowserModule } from '@angular/platform-browser' 4 - import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' 5 - 6 - import { ApiModule } from './client/ApiModule' 7 - import { OpenAPI } from './client/core/OpenAPI' 8 - import type { 9 - CollectionFormatService, 10 - ComplexService, 11 - DefaultService, 12 - DefaultsService, 13 - DuplicateService, 14 - ErrorService, 15 - HeaderService, 16 - MultipleTags1Service, 17 - MultipleTags2Service, 18 - MultipleTags3Service, 19 - NoContentService, 20 - ParametersService, 21 - ResponseService, 22 - SimpleService, 23 - TypesService 24 - } from './client/sdk.gen' 25 - 26 - @Component({ 27 - selector: 'app-root', 28 - template: `<div>Angular is ready</div>` 29 - }) 30 - export class AppComponent { 31 - constructor( 32 - private readonly collectionFormatService: CollectionFormatService, 33 - private readonly complexService: ComplexService, 34 - private readonly defaultService: DefaultService, 35 - private readonly defaultsService: DefaultsService, 36 - private readonly duplicateService: DuplicateService, 37 - private readonly errorService: ErrorService, 38 - private readonly headerService: HeaderService, 39 - private readonly multipleTags1Service: MultipleTags1Service, 40 - private readonly multipleTags2Service: MultipleTags2Service, 41 - private readonly multipleTags3Service: MultipleTags3Service, 42 - private readonly noContentService: NoContentService, 43 - private readonly parametersService: ParametersService, 44 - private readonly responseService: ResponseService, 45 - private readonly simpleService: SimpleService, 46 - private readonly typesService: TypesService 47 - ) { 48 - // @ts-expect-error 49 - window.api = { 50 - ApiModule, 51 - CollectionFormatService: this.collectionFormatService, 52 - ComplexService: this.complexService, 53 - DefaultService: this.defaultService, 54 - DefaultsService: this.defaultsService, 55 - DuplicateService: this.duplicateService, 56 - ErrorService: this.errorService, 57 - HeaderService: this.headerService, 58 - MultipleTags1Service: this.multipleTags1Service, 59 - MultipleTags2Service: this.multipleTags2Service, 60 - MultipleTags3Service: this.multipleTags3Service, 61 - NoContentService: this.noContentService, 62 - OpenAPI, 63 - ParametersService: this.parametersService, 64 - ResponseService: this.responseService, 65 - SimpleService: this.simpleService, 66 - TypesService: this.typesService 67 - } 68 - } 69 - } 70 - 71 - @NgModule({ 72 - bootstrap: [AppComponent], 73 - imports: [BrowserModule, HttpClientModule, ApiModule] 74 - }) 75 - export class AppModule {} 76 - 77 - platformBrowserDynamic() 78 - .bootstrapModule(AppModule) 79 - .catch(err => console.error(err))
-94
packages/openapi-ts-tests/main/test/e2e/assets/main-angular.ts
··· 1 - import { HttpClientModule } from '@angular/common/http' 2 - import { Component, NgModule } from '@angular/core' 3 - import { BrowserModule } from '@angular/platform-browser' 4 - import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' 5 - 6 - import { OpenAPI } from './client/core/OpenAPI' 7 - import { 8 - CollectionFormatService, 9 - ComplexService, 10 - DefaultService, 11 - DefaultsService, 12 - DuplicateService, 13 - ErrorService, 14 - HeaderService, 15 - MultipleTags1Service, 16 - MultipleTags2Service, 17 - MultipleTags3Service, 18 - NoContentService, 19 - ParametersService, 20 - ResponseService, 21 - SimpleService, 22 - TypesService 23 - } from './client/sdk.gen' 24 - 25 - @Component({ 26 - selector: 'app-root', 27 - template: `<div>Angular is ready</div>` 28 - }) 29 - export class AppComponent { 30 - constructor( 31 - private readonly collectionFormatService: CollectionFormatService, 32 - private readonly complexService: ComplexService, 33 - private readonly defaultService: DefaultService, 34 - private readonly defaultsService: DefaultsService, 35 - private readonly duplicateService: DuplicateService, 36 - private readonly errorService: ErrorService, 37 - private readonly headerService: HeaderService, 38 - private readonly multipleTags1Service: MultipleTags1Service, 39 - private readonly multipleTags2Service: MultipleTags2Service, 40 - private readonly multipleTags3Service: MultipleTags3Service, 41 - private readonly noContentService: NoContentService, 42 - private readonly parametersService: ParametersService, 43 - private readonly responseService: ResponseService, 44 - private readonly simpleService: SimpleService, 45 - private readonly typesService: TypesService 46 - ) { 47 - // @ts-expect-error 48 - window.api = { 49 - CollectionFormatService: this.collectionFormatService, 50 - ComplexService: this.complexService, 51 - DefaultService: this.defaultService, 52 - DefaultsService: this.defaultsService, 53 - DuplicateService: this.duplicateService, 54 - ErrorService: this.errorService, 55 - HeaderService: this.headerService, 56 - MultipleTags1Service: this.multipleTags1Service, 57 - MultipleTags2Service: this.multipleTags2Service, 58 - MultipleTags3Service: this.multipleTags3Service, 59 - NoContentService: this.noContentService, 60 - OpenAPI, 61 - ParametersService: this.parametersService, 62 - ResponseService: this.responseService, 63 - SimpleService: this.simpleService, 64 - TypesService: this.typesService 65 - } 66 - } 67 - } 68 - 69 - @NgModule({ 70 - bootstrap: [AppComponent], 71 - imports: [BrowserModule, HttpClientModule], 72 - providers: [ 73 - CollectionFormatService, 74 - ComplexService, 75 - DefaultService, 76 - DefaultsService, 77 - DuplicateService, 78 - ErrorService, 79 - HeaderService, 80 - MultipleTags1Service, 81 - MultipleTags2Service, 82 - MultipleTags3Service, 83 - NoContentService, 84 - ParametersService, 85 - ResponseService, 86 - SimpleService, 87 - TypesService 88 - ] 89 - }) 90 - export class AppModule {} 91 - 92 - platformBrowserDynamic() 93 - .bootstrapModule(AppModule) 94 - .catch(err => console.error(err))
-4
packages/openapi-ts-tests/main/test/e2e/assets/main.ts
··· 1 - import * as api from './index' 2 - 3 - // @ts-expect-error 4 - window.api = api
-205
packages/openapi-ts-tests/main/test/e2e/client.angular.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { buildAngularProject, createAngularProject } from './scripts/angular' 4 - import browser from './scripts/browser' 5 - import { cleanup } from './scripts/cleanup' 6 - import { copyAsset } from './scripts/copyAsset' 7 - import { generateClient } from './scripts/generateClient' 8 - import server from './scripts/server' 9 - 10 - describe('client.angular', () => { 11 - beforeAll(async () => { 12 - cleanup('client/angular') 13 - createAngularProject('client/angular', 'app') 14 - await generateClient( 15 - 'client/angular/app/src/client', 16 - 'v3', 17 - 'legacy/angular', 18 - false, 19 - 'ApiModule' 20 - ) 21 - copyAsset('main-angular-module.ts', 'client/angular/app/src/main.ts') 22 - buildAngularProject('client/angular', 'app', 'dist') 23 - await server.start('client/angular/app/dist/browser') 24 - await browser.start() 25 - }, 100000) 26 - 27 - afterAll(async () => { 28 - await browser.stop() 29 - await server.stop() 30 - }) 31 - 32 - it('requests token', async () => { 33 - await browser.exposeFunction( 34 - 'tokenRequest', 35 - vi.fn().mockResolvedValue('MY_TOKEN') 36 - ) 37 - const result = await browser.evaluate( 38 - async () => 39 - await new Promise(resolve => { 40 - // @ts-expect-error 41 - const { SimpleService } = window.api 42 - // @ts-expect-error 43 - SimpleService.httpRequest.config.TOKEN = window.tokenRequest 44 - SimpleService.httpRequest.config.USERNAME = undefined 45 - SimpleService.httpRequest.config.PASSWORD = undefined 46 - SimpleService.getCallWithoutParametersAndResponse().subscribe(resolve) 47 - }) 48 - ) 49 - // @ts-expect-error 50 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 51 - }) 52 - 53 - it('uses credentials', async () => { 54 - const result = await browser.evaluate( 55 - async () => 56 - await new Promise(resolve => { 57 - // @ts-expect-error 58 - const { SimpleService } = window.api 59 - SimpleService.httpRequest.config.TOKEN = undefined 60 - SimpleService.httpRequest.config.USERNAME = 'username' 61 - SimpleService.httpRequest.config.PASSWORD = 'password' 62 - SimpleService.getCallWithoutParametersAndResponse().subscribe(resolve) 63 - }) 64 - ) 65 - // @ts-expect-error 66 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 67 - }) 68 - 69 - it('supports complex params', async () => { 70 - const result = await browser.evaluate( 71 - async () => 72 - await new Promise(resolve => { 73 - // @ts-expect-error 74 - const { ComplexService } = window.api 75 - ComplexService.complexTypes({ 76 - first: { 77 - second: { 78 - third: 'Hello World!' 79 - } 80 - } 81 - }).subscribe(resolve) 82 - }) 83 - ) 84 - expect(result).toBeDefined() 85 - }) 86 - 87 - it('support form data', async () => { 88 - const result = await browser.evaluate( 89 - async () => 90 - await new Promise(resolve => { 91 - // @ts-expect-error 92 - const { ParametersService } = window.api 93 - ParametersService.callWithParameters( 94 - 'valueHeader', 95 - 'valueQuery', 96 - 'valueForm', 97 - 'valueCookie', 98 - 'valuePath', 99 - { 100 - prop: 'valueBody' 101 - } 102 - ).subscribe(resolve) 103 - }) 104 - ) 105 - expect(result).toBeDefined() 106 - }) 107 - 108 - it('should throw known error (500)', async () => { 109 - const error = await browser.evaluate( 110 - async () => 111 - await new Promise(resolve => { 112 - // @ts-expect-error 113 - const { ErrorService } = window.api 114 - ErrorService.testErrorCode(500).subscribe({ 115 - error: (e: unknown) => { 116 - resolve( 117 - JSON.stringify({ 118 - // @ts-expect-error 119 - body: e.body, 120 - 121 - // @ts-expect-error 122 - message: e.message, 123 - 124 - // @ts-expect-error 125 - name: e.name, 126 - 127 - // @ts-expect-error 128 - status: e.status, 129 - 130 - // @ts-expect-error 131 - statusText: e.statusText, 132 - 133 - // @ts-expect-error 134 - url: e.url 135 - }) 136 - ) 137 - } 138 - }) 139 - }) 140 - ) 141 - expect(error).toBe( 142 - JSON.stringify({ 143 - body: { 144 - message: 'hello world', 145 - status: 500 146 - }, 147 - message: 'Custom message: Internal Server Error', 148 - name: 'ApiError', 149 - status: 500, 150 - statusText: 'Internal Server Error', 151 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 152 - }) 153 - ) 154 - }) 155 - 156 - it('should throw unknown error (599)', async () => { 157 - const error = await browser.evaluate( 158 - async () => 159 - await new Promise(resolve => { 160 - // @ts-expect-error 161 - const { ErrorService } = window.api 162 - ErrorService.testErrorCode(599).subscribe({ 163 - error: (e: unknown) => { 164 - resolve( 165 - JSON.stringify({ 166 - // @ts-expect-error 167 - body: e.body, 168 - 169 - // @ts-expect-error 170 - message: e.message, 171 - 172 - // @ts-expect-error 173 - name: e.name, 174 - 175 - // @ts-expect-error 176 - status: e.status, 177 - 178 - // @ts-expect-error 179 - statusText: e.statusText, 180 - 181 - // @ts-expect-error 182 - url: e.url 183 - }) 184 - ) 185 - } 186 - }) 187 - }) 188 - ) 189 - 190 - expect(error).toBe( 191 - JSON.stringify({ 192 - body: { 193 - message: 'hello world', 194 - status: 599 195 - }, 196 - message: 197 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 198 - name: 'ApiError', 199 - status: 599, 200 - statusText: 'unknown', 201 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 202 - }) 203 - ) 204 - }) 205 - })
-155
packages/openapi-ts-tests/main/test/e2e/client.axios.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('client.axios', () => { 9 - beforeAll(async () => { 10 - cleanup('client/axios') 11 - await generateClient('client/axios', 'v3', 'legacy/axios', false, 'ApiClient') 12 - compileWithTypescript('client/axios') 13 - await server.start('client/axios') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { ApiClient } = await import('./generated/client/axios/index.js') 22 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 23 - const client = new ApiClient({ 24 - PASSWORD: undefined, 25 - TOKEN: tokenRequest, 26 - USERNAME: undefined 27 - }) 28 - const result = await client.simple.getCallWithoutParametersAndResponse() 29 - expect(tokenRequest.mock.calls.length).toBe(1) 30 - // @ts-expect-error 31 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 32 - }) 33 - 34 - it('uses credentials', async () => { 35 - const { ApiClient } = await import('./generated/client/axios/index.js') 36 - const client = new ApiClient({ 37 - PASSWORD: 'password', 38 - TOKEN: undefined, 39 - USERNAME: 'username' 40 - }) 41 - const result = await client.simple.getCallWithoutParametersAndResponse() 42 - // @ts-expect-error 43 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 44 - }) 45 - 46 - it('supports complex params', async () => { 47 - const { ApiClient } = await import('./generated/client/axios/index.js') 48 - const client = new ApiClient() 49 - // @ts-expect-error 50 - const result = await client.complex.complexTypes({ 51 - first: { 52 - second: { 53 - third: 'Hello World!' 54 - } 55 - } 56 - }) 57 - expect(result).toBeDefined() 58 - }) 59 - 60 - it('supports form data', async () => { 61 - const { ApiClient } = await import('./generated/client/axios/index.js') 62 - const client = new ApiClient() 63 - // @ts-expect-error 64 - const result = await client.parameters.callWithParameters( 65 - 'valueHeader', 66 - 'valueQuery', 67 - 'valueForm', 68 - 'valueCookie', 69 - 'valuePath', 70 - { 71 - prop: 'valueBody' 72 - } 73 - ) 74 - expect(result).toBeDefined() 75 - }) 76 - 77 - it('can abort the request', async () => { 78 - let error 79 - try { 80 - const { ApiClient } = await import('./generated/client/axios/index.js') 81 - const client = new ApiClient() 82 - const promise = client.simple.getCallWithoutParametersAndResponse() 83 - setTimeout(() => { 84 - promise.cancel() 85 - }, 10) 86 - await promise 87 - } catch (e) { 88 - error = (e as Error).message 89 - } 90 - expect(error).toContain('Request aborted') 91 - }) 92 - 93 - it('should throw known error (500)', async () => { 94 - let error 95 - try { 96 - const { ApiClient } = await import('./generated/client/axios/index.js') 97 - const client = new ApiClient() 98 - await client.error.testErrorCode(500) 99 - } catch (err) { 100 - error = JSON.stringify({ 101 - body: err.body, 102 - message: err.message, 103 - name: err.name, 104 - status: err.status, 105 - statusText: err.statusText, 106 - url: err.url 107 - }) 108 - } 109 - expect(error).toBe( 110 - JSON.stringify({ 111 - body: { 112 - message: 'hello world', 113 - status: 500 114 - }, 115 - message: 'Custom message: Internal Server Error', 116 - name: 'ApiError', 117 - status: 500, 118 - statusText: 'Internal Server Error', 119 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 120 - }) 121 - ) 122 - }) 123 - 124 - it('should throw unknown error (599)', async () => { 125 - let error 126 - try { 127 - const { ApiClient } = await import('./generated/client/axios/index.js') 128 - const client = new ApiClient() 129 - await client.error.testErrorCode(599) 130 - } catch (err) { 131 - error = JSON.stringify({ 132 - body: err.body, 133 - message: err.message, 134 - name: err.name, 135 - status: err.status, 136 - statusText: err.statusText, 137 - url: err.url 138 - }) 139 - } 140 - expect(error).toBe( 141 - JSON.stringify({ 142 - body: { 143 - message: 'hello world', 144 - status: 599 145 - }, 146 - message: 147 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 148 - name: 'ApiError', 149 - status: 599, 150 - statusText: 'unknown', 151 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 152 - }) 153 - ) 154 - }) 155 - })
-175
packages/openapi-ts-tests/main/test/e2e/client.fetch.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('client.fetch', () => { 9 - beforeAll(async () => { 10 - cleanup('client/fetch') 11 - await generateClient('client/fetch', 'v3', 'legacy/fetch', false, 'ApiClient') 12 - compileWithTypescript('client/fetch') 13 - await server.start('client/fetch') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { ApiClient } = await import('./generated/client/fetch/index.js') 22 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 23 - const client = new ApiClient({ 24 - PASSWORD: undefined, 25 - TOKEN: tokenRequest, 26 - USERNAME: undefined 27 - }) 28 - const result = await client.simple.getCallWithoutParametersAndResponse() 29 - // @ts-expect-error 30 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 31 - }) 32 - 33 - it('uses credentials', async () => { 34 - const { ApiClient } = await import('./generated/client/fetch/index.js') 35 - const client = new ApiClient({ 36 - PASSWORD: 'password', 37 - TOKEN: undefined, 38 - USERNAME: 'username' 39 - }) 40 - const result = await client.simple.getCallWithoutParametersAndResponse() 41 - // @ts-expect-error 42 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 43 - }) 44 - 45 - it('supports complex params', async () => { 46 - const { ApiClient } = await import('./generated/client/fetch/index.js') 47 - const client = new ApiClient() 48 - // @ts-expect-error 49 - const result = await client.complex.complexTypes({ 50 - first: { 51 - second: { 52 - third: 'Hello World!' 53 - } 54 - } 55 - }) 56 - expect(result).toBeDefined() 57 - }) 58 - 59 - it('support form data', async () => { 60 - const { ApiClient } = await import('./generated/client/fetch/index.js') 61 - const client = new ApiClient() 62 - // @ts-expect-error 63 - const result = await client.parameters.callWithParameters( 64 - 'valueHeader', 65 - 'valueQuery', 66 - 'valueForm', 67 - 'valueCookie', 68 - 'valuePath', 69 - { 70 - prop: 'valueBody' 71 - } 72 - ) 73 - expect(result).toBeDefined() 74 - }) 75 - 76 - it('support blob response data', async () => { 77 - const { ApiClient } = await import('./generated/client/fetch/index.js') 78 - const client = new ApiClient() 79 - const result = await client.fileResponse.fileResponse('test') 80 - expect(result).toBeDefined() 81 - }) 82 - 83 - it('can abort the request', async () => { 84 - let error 85 - try { 86 - const { ApiClient } = await import('./generated/client/fetch/index.js') 87 - const client = new ApiClient() 88 - const promise = client.simple.getCallWithoutParametersAndResponse() 89 - setTimeout(() => { 90 - promise.cancel() 91 - }, 10) 92 - await promise 93 - } catch (e) { 94 - error = (e as Error).message 95 - } 96 - expect(error).toContain('Request aborted') 97 - }) 98 - 99 - it('should throw known error (500)', async () => { 100 - let error 101 - try { 102 - const { ApiClient } = await import('./generated/client/fetch/index.js') 103 - const client = new ApiClient() 104 - await client.error.testErrorCode(500) 105 - } catch (err) { 106 - error = JSON.stringify({ 107 - body: err.body, 108 - message: err.message, 109 - name: err.name, 110 - status: err.status, 111 - statusText: err.statusText, 112 - url: err.url 113 - }) 114 - } 115 - expect(error).toBe( 116 - JSON.stringify({ 117 - body: { 118 - message: 'hello world', 119 - status: 500 120 - }, 121 - message: 'Custom message: Internal Server Error', 122 - name: 'ApiError', 123 - status: 500, 124 - statusText: 'Internal Server Error', 125 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 126 - }) 127 - ) 128 - }) 129 - 130 - it('should throw unknown error (599)', async () => { 131 - let error 132 - try { 133 - const { ApiClient } = await import('./generated/client/fetch/index.js') 134 - const client = new ApiClient() 135 - await client.error.testErrorCode(599) 136 - } catch (err) { 137 - error = JSON.stringify({ 138 - body: err.body, 139 - message: err.message, 140 - name: err.name, 141 - status: err.status, 142 - statusText: err.statusText, 143 - url: err.url 144 - }) 145 - } 146 - expect(error).toBe( 147 - JSON.stringify({ 148 - body: { 149 - message: 'hello world', 150 - status: 599 151 - }, 152 - message: 153 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 154 - name: 'ApiError', 155 - status: 599, 156 - statusText: 'unknown', 157 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 158 - }) 159 - ) 160 - }) 161 - 162 - it('it should parse query params', async () => { 163 - const { ApiClient } = await import('./generated/client/fetch/index.js') 164 - const client = new ApiClient() 165 - const result = await client.parameters.postCallWithOptionalParam({ 166 - page: 0, 167 - size: 1, 168 - sort: ['location'] 169 - }) 170 - // @ts-expect-error 171 - expect(result.query).toStrictEqual({ 172 - parameter: { page: '0', size: '1', sort: 'location' } 173 - }) 174 - }) 175 - })
-155
packages/openapi-ts-tests/main/test/e2e/client.node.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('client.node', () => { 9 - beforeAll(async () => { 10 - cleanup('client/node') 11 - await generateClient('client/node', 'v3', 'legacy/node', false, 'ApiClient') 12 - compileWithTypescript('client/node') 13 - await server.start('client/node') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { ApiClient } = await import('./generated/client/node/index.js') 22 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 23 - const client = new ApiClient({ 24 - PASSWORD: undefined, 25 - TOKEN: tokenRequest, 26 - USERNAME: undefined 27 - }) 28 - const result = await client.simple.getCallWithoutParametersAndResponse() 29 - expect(tokenRequest.mock.calls.length).toBe(1) 30 - // @ts-expect-error 31 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 32 - }) 33 - 34 - it('uses credentials', async () => { 35 - const { ApiClient } = await import('./generated/client/node/index.js') 36 - const client = new ApiClient({ 37 - PASSWORD: 'password', 38 - TOKEN: undefined, 39 - USERNAME: 'username' 40 - }) 41 - const result = await client.simple.getCallWithoutParametersAndResponse() 42 - // @ts-expect-error 43 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 44 - }) 45 - 46 - it('supports complex params', async () => { 47 - const { ApiClient } = await import('./generated/client/node/index.js') 48 - const client = new ApiClient() 49 - // @ts-expect-error 50 - const result = await client.complex.complexTypes({ 51 - first: { 52 - second: { 53 - third: 'Hello World!' 54 - } 55 - } 56 - }) 57 - expect(result).toBeDefined() 58 - }) 59 - 60 - it('support form data', async () => { 61 - const { ApiClient } = await import('./generated/client/node/index.js') 62 - const client = new ApiClient() 63 - // @ts-expect-error 64 - const result = await client.parameters.callWithParameters( 65 - 'valueHeader', 66 - 'valueQuery', 67 - 'valueForm', 68 - 'valueCookie', 69 - 'valuePath', 70 - { 71 - prop: 'valueBody' 72 - } 73 - ) 74 - expect(result).toBeDefined() 75 - }) 76 - 77 - it('can abort the request', async () => { 78 - let error 79 - try { 80 - const { ApiClient } = await import('./generated/client/node/index.js') 81 - const client = new ApiClient() 82 - const promise = client.simple.getCallWithoutParametersAndResponse() 83 - setTimeout(() => { 84 - promise.cancel() 85 - }, 10) 86 - await promise 87 - } catch (e) { 88 - error = (e as Error).message 89 - } 90 - expect(error).toContain('Request aborted') 91 - }) 92 - 93 - it('should throw known error (500)', async () => { 94 - let error 95 - try { 96 - const { ApiClient } = await import('./generated/client/node/index.js') 97 - const client = new ApiClient() 98 - await client.error.testErrorCode(500) 99 - } catch (err) { 100 - error = JSON.stringify({ 101 - body: err.body, 102 - message: err.message, 103 - name: err.name, 104 - status: err.status, 105 - statusText: err.statusText, 106 - url: err.url 107 - }) 108 - } 109 - expect(error).toBe( 110 - JSON.stringify({ 111 - body: { 112 - message: 'hello world', 113 - status: 500 114 - }, 115 - message: 'Custom message: Internal Server Error', 116 - name: 'ApiError', 117 - status: 500, 118 - statusText: 'Internal Server Error', 119 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 120 - }) 121 - ) 122 - }) 123 - 124 - it('should throw unknown error (599)', async () => { 125 - let error 126 - try { 127 - const { ApiClient } = await import('./generated/client/node/index.js') 128 - const client = new ApiClient() 129 - await client.error.testErrorCode(599) 130 - } catch (err) { 131 - error = JSON.stringify({ 132 - body: err.body, 133 - message: err.message, 134 - name: err.name, 135 - status: err.status, 136 - statusText: err.statusText, 137 - url: err.url 138 - }) 139 - } 140 - expect(error).toBe( 141 - JSON.stringify({ 142 - body: { 143 - message: 'hello world', 144 - status: 599 145 - }, 146 - message: 147 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 148 - name: 'ApiError', 149 - status: 599, 150 - statusText: 'unknown', 151 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 152 - }) 153 - ) 154 - }) 155 - })
-154
packages/openapi-ts-tests/main/test/e2e/client.xhr.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe.skip('client.xhr', () => { 9 - beforeAll(async () => { 10 - cleanup('client/xhr') 11 - await generateClient('client/xhr', 'v3', 'legacy/xhr', false, 'ApiClient') 12 - compileWithTypescript('client/xhr') 13 - await server.start('client/xhr') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { ApiClient } = await import('./generated/client/xhr/index.js') 22 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 23 - const client = new ApiClient({ 24 - PASSWORD: undefined, 25 - TOKEN: tokenRequest, 26 - USERNAME: undefined 27 - }) 28 - const result = await client.simple.getCallWithoutParametersAndResponse() 29 - // @ts-expect-error 30 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 31 - }) 32 - 33 - it('uses credentials', async () => { 34 - const { ApiClient } = await import('./generated/client/xhr/index.js') 35 - const client = new ApiClient({ 36 - PASSWORD: 'password', 37 - TOKEN: undefined, 38 - USERNAME: 'username' 39 - }) 40 - const result = await client.simple.getCallWithoutParametersAndResponse() 41 - // @ts-expect-error 42 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 43 - }) 44 - 45 - it('supports complex params', async () => { 46 - const { ApiClient } = await import('./generated/client/xhr/index.js') 47 - const client = new ApiClient() 48 - // @ts-expect-error 49 - const result = await client.complex.complexTypes({ 50 - first: { 51 - second: { 52 - third: 'Hello World!' 53 - } 54 - } 55 - }) 56 - expect(result).toBeDefined() 57 - }) 58 - 59 - it('support form data', async () => { 60 - const { ApiClient } = await import('./generated/client/xhr/index.js') 61 - const client = new ApiClient() 62 - // @ts-expect-error 63 - const result = await client.parameters.callWithParameters( 64 - 'valueHeader', 65 - 'valueQuery', 66 - 'valueForm', 67 - 'valueCookie', 68 - 'valuePath', 69 - { 70 - prop: 'valueBody' 71 - } 72 - ) 73 - expect(result).toBeDefined() 74 - }) 75 - 76 - it('can abort the request', async () => { 77 - let error 78 - try { 79 - const { ApiClient } = await import('./generated/client/xhr/index.js') 80 - const client = new ApiClient() 81 - const promise = client.simple.getCallWithoutParametersAndResponse() 82 - setTimeout(() => { 83 - promise.cancel() 84 - }, 10) 85 - await promise 86 - } catch (e) { 87 - error = (e as Error).message 88 - } 89 - expect(error).toContain('Request aborted') 90 - }) 91 - 92 - it('should throw known error (500)', async () => { 93 - let error 94 - try { 95 - const { ApiClient } = await import('./generated/client/xhr/index.js') 96 - const client = new ApiClient() 97 - await client.error.testErrorCode(500) 98 - } catch (err) { 99 - error = JSON.stringify({ 100 - body: err.body, 101 - message: err.message, 102 - name: err.name, 103 - status: err.status, 104 - statusText: err.statusText, 105 - url: err.url 106 - }) 107 - } 108 - expect(error).toBe( 109 - JSON.stringify({ 110 - body: { 111 - message: 'hello world', 112 - status: 500 113 - }, 114 - message: 'Custom message: Internal Server Error', 115 - name: 'ApiError', 116 - status: 500, 117 - statusText: 'Internal Server Error', 118 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 119 - }) 120 - ) 121 - }) 122 - 123 - it('should throw unknown error (599)', async () => { 124 - let error 125 - try { 126 - const { ApiClient } = await import('./generated/client/xhr/index.js') 127 - const client = new ApiClient() 128 - await client.error.testErrorCode(599) 129 - } catch (err) { 130 - error = JSON.stringify({ 131 - body: err.body, 132 - message: err.message, 133 - name: err.name, 134 - status: err.status, 135 - statusText: err.statusText, 136 - url: err.url 137 - }) 138 - } 139 - expect(error).toBe( 140 - JSON.stringify({ 141 - body: { 142 - message: 'hello world', 143 - status: 599 144 - }, 145 - message: 146 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 147 - name: 'ApiError', 148 - status: 599, 149 - statusText: 'unknown', 150 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 151 - }) 152 - ) 153 - }) 154 - })
-70
packages/openapi-ts-tests/main/test/e2e/scripts/angular.ts
··· 1 - import fs from 'node:fs'; 2 - import path from 'node:path' 3 - 4 - import { sync } from 'cross-spawn' 5 - 6 - export const createAngularProject = (dir: string, name: string) => { 7 - const cwd = `./test/e2e/generated/${dir}/` 8 - fs.mkdirSync(cwd, { 9 - recursive: true 10 - }) 11 - sync( 12 - 'ng', 13 - [ 14 - 'new', 15 - name, 16 - '--minimal', 17 - 'true', 18 - '--style', 19 - 'css', 20 - '--inline-style', 21 - 'true', 22 - '--inline-template', 23 - 'true', 24 - '--routing', 25 - 'false', 26 - '--ssr', 27 - 'false', 28 - '--skip-tests', 29 - 'true', 30 - '--skip-git', 31 - 'true', 32 - '--commit', 33 - 'false', 34 - '--force' 35 - ], 36 - { 37 - cwd: path.resolve(cwd), 38 - stdio: 'inherit' 39 - } 40 - ) 41 - fs.rmSync(`${cwd}/${name}/src/app/`, { 42 - recursive: true 43 - }) 44 - } 45 - 46 - export const buildAngularProject = ( 47 - dir: string, 48 - name: string, 49 - output: string 50 - ) => { 51 - const cwd = `./test/e2e/generated/${dir}/${name}/` 52 - sync( 53 - 'ng', 54 - [ 55 - 'build', 56 - '--output-path', 57 - output, 58 - '--optimization', 59 - 'false', 60 - '--configuration', 61 - 'development', 62 - '--source-map', 63 - 'false' 64 - ], 65 - { 66 - cwd: path.resolve(cwd), 67 - stdio: 'inherit' 68 - } 69 - ) 70 - }
-38
packages/openapi-ts-tests/main/test/e2e/scripts/browser.ts
··· 1 - import type { Browser, EvaluateFunc, Page } from 'puppeteer'; 2 - import puppeteer from 'puppeteer' 3 - 4 - let _browser: Browser 5 - let _page: Page 6 - 7 - const start = async () => { 8 - // This starts a new puppeteer browser (Chrome) 9 - // and load the localhost page, this page will load the 10 - // javascript modules (see server.js for more info) 11 - _browser = await puppeteer.launch({ 12 - args: ['--no-sandbox', '--disable-setuid-sandbox'], 13 - headless: true 14 - }) 15 - _page = await _browser.newPage() 16 - // _page.on('console', msg => console.log(msg.text())); 17 - await _page.goto(`http://localhost:3000/`, { 18 - waitUntil: 'networkidle0' 19 - }) 20 - } 21 - 22 - const stop = async () => { 23 - await _page.close() 24 - await _browser.close() 25 - } 26 - 27 - const evaluate = async (fn: EvaluateFunc<unknown[]>) => await _page.evaluate(fn) 28 - 29 - // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type 30 - const exposeFunction = async (name: string, fn: Function) => 31 - await _page.exposeFunction(name, fn) 32 - 33 - export default { 34 - evaluate, 35 - exposeFunction, 36 - start, 37 - stop 38 - }
-8
packages/openapi-ts-tests/main/test/e2e/scripts/cleanup.ts
··· 1 - import fs from 'node:fs'; 2 - 3 - export const cleanup = (dir: string) => { 4 - fs.rmSync(`./test/e2e/generated/${dir}/`, { 5 - force: true, 6 - recursive: true 7 - }) 8 - }
-66
packages/openapi-ts-tests/main/test/e2e/scripts/compileWithTypescript.ts
··· 1 - import path from 'node:path' 2 - 3 - import { EOL } from 'os' 4 - import { 5 - createCompilerHost, 6 - createProgram, 7 - formatDiagnosticsWithColorAndContext, 8 - getPreEmitDiagnostics, 9 - parseConfigFileTextToJson, 10 - parseJsonConfigFileContent, 11 - sys 12 - } from 'typescript' 13 - 14 - export const compileWithTypescript = (dir: string) => { 15 - const cwd = `./test/e2e/generated/${dir}/` 16 - const tsconfig = { 17 - compilerOptions: { 18 - allowSyntheticDefaultImports: true, 19 - declaration: false, 20 - declarationMap: false, 21 - experimentalDecorators: true, 22 - lib: ['es2020', 'dom'], 23 - module: 'es2020', 24 - moduleResolution: 'node', 25 - noImplicitAny: true, 26 - noImplicitReturns: true, 27 - noImplicitThis: true, 28 - skipLibCheck: true, 29 - sourceMap: false, 30 - strict: true, 31 - target: 'es2020' 32 - }, 33 - include: ['**/*.ts'] 34 - } 35 - 36 - // Compile files to JavaScript (ES6 modules) 37 - const configFile = parseConfigFileTextToJson( 38 - 'tsconfig.json', 39 - JSON.stringify(tsconfig) 40 - ) 41 - const configFileResult = parseJsonConfigFileContent( 42 - configFile.config, 43 - sys, 44 - path.resolve(process.cwd(), cwd), 45 - undefined, 46 - 'tsconfig.json' 47 - ) 48 - const compilerHost = createCompilerHost(configFileResult.options) 49 - const compiler = createProgram( 50 - configFileResult.fileNames, 51 - configFileResult.options, 52 - compilerHost 53 - ) 54 - const result = compiler.emit() 55 - 56 - // Show errors or warnings 57 - const diagnostics = getPreEmitDiagnostics(compiler).concat(result.diagnostics) 58 - if (diagnostics.length) { 59 - const message = formatDiagnosticsWithColorAndContext(diagnostics, { 60 - getCanonicalFileName: f => f, 61 - getCurrentDirectory: () => sys.getCurrentDirectory(), 62 - getNewLine: () => EOL 63 - }) 64 - console.log(message) 65 - } 66 - }
-8
packages/openapi-ts-tests/main/test/e2e/scripts/copyAsset.ts
··· 1 - import fs from 'node:fs'; 2 - 3 - export const copyAsset = (fileNameIn: string, fileNameOut: string) => { 4 - fs.copyFileSync( 5 - `./test/e2e/assets/${fileNameIn}`, 6 - `./test/e2e/generated/${fileNameOut}` 7 - ) 8 - }
-27
packages/openapi-ts-tests/main/test/e2e/scripts/generateClient.ts
··· 1 - import { createClient } from '@hey-api/openapi-ts' 2 - 3 - import type { PluginClientNames } from '../../../../../openapi-ts/src/plugins/types' 4 - 5 - export const generateClient = async ( 6 - dir: string, 7 - version: string, 8 - client: PluginClientNames, 9 - useOptions: boolean = false, 10 - name?: string 11 - ) => { 12 - await createClient({ 13 - input: `../specs/${version}.json`, 14 - name, 15 - output: `./test/e2e/generated/${dir}/`, 16 - plugins: [ 17 - '@hey-api/typescript', 18 - '@hey-api/schemas', 19 - client, 20 - { 21 - asClass: true, 22 - name: '@hey-api/sdk', 23 - }, 24 - ], 25 - useOptions 26 - }) 27 - }
-103
packages/openapi-ts-tests/main/test/e2e/scripts/server.ts
··· 1 - import type { Server } from 'node:http' 2 - import path from 'node:path' 3 - 4 - import type { Express } from 'express'; 5 - import express from 'express' 6 - 7 - let _app: Express 8 - let _server: Server 9 - 10 - const start = async (dir: string) => 11 - new Promise<void>(resolve => { 12 - _app = express() 13 - 14 - // Serve the JavaScript files from the specific folder, since we are using browser 15 - // based ES6 modules, this also means that we can just request the js/index.js file 16 - // and all other relative paths are resolved from that file. 17 - _app.use( 18 - '/js', 19 - express.static(`./test/e2e/generated/${dir}/`, { 20 - extensions: ['', 'js'], 21 - index: 'index.js' 22 - }) 23 - ) 24 - 25 - _app.use( 26 - '/js', 27 - express.static(`./test/e2e/generated/${dir}/`, { 28 - extensions: ['', 'js'], 29 - index: 'index.js' 30 - }) 31 - ) 32 - 33 - // Serve static assets 34 - _app.get('/runtime.js', (req, res) => { 35 - res.sendFile(path.resolve(`./test/e2e/generated/${dir}/runtime.js`)) 36 - }) 37 - _app.get('/polyfills.js', (req, res) => { 38 - res.sendFile(path.resolve(`./test/e2e/generated/${dir}/polyfills.js`)) 39 - }) 40 - _app.get('/vendor.js', (req, res) => { 41 - res.sendFile(path.resolve(`./test/e2e/generated/${dir}/vendor.js`)) 42 - }) 43 - _app.get('/main.js', (req, res) => { 44 - res.sendFile(path.resolve(`./test/e2e/generated/${dir}/main.js`)) 45 - }) 46 - _app.get('/styles.css', (req, res) => { 47 - res.sendFile(path.resolve(`./test/e2e/generated/${dir}/styles.css`)) 48 - }) 49 - _app.get('/favicon.ico', (req, res) => { 50 - res.sendFile(path.resolve(`./test/e2e/generated/${dir}/favicon.ico`)) 51 - }) 52 - _app.get('/', (req, res) => { 53 - res.sendFile(path.resolve(`./test/e2e/generated/${dir}/index.html`)) 54 - }) 55 - 56 - // Register an 'echo' server for testing error codes. This will just grab the 57 - // status code from the query and return the default response (and text) from Express. 58 - // See the spec files for more information. 59 - _app.all('/base/api/v1.0/error', (req, res) => { 60 - const status = Number.parseInt(String(req.query.status), 10) 61 - res.status(status).json({ 62 - message: 'hello world', 63 - status 64 - }) 65 - }) 66 - 67 - // Register an 'echo' server that just returns all data from the API calls. 68 - // Although this might not be a 'correct' response, we can use this to test 69 - // the majority of API calls. 70 - _app.all('/base/api/v1.0/*', (req, res) => { 71 - setTimeout(() => { 72 - res.json({ 73 - body: req.body, 74 - headers: req.headers, 75 - hostname: req.hostname, 76 - method: req.method, 77 - path: req.path, 78 - protocol: req.protocol, 79 - query: req.query, 80 - url: req.url 81 - }) 82 - }, 100) 83 - }) 84 - _server = _app.listen(3000, () => { 85 - resolve() 86 - }) 87 - }) 88 - 89 - const stop = async () => 90 - new Promise<void>((resolve, reject) => { 91 - _server.close(err => { 92 - if (err) { 93 - reject(err) 94 - } else { 95 - resolve() 96 - } 97 - }) 98 - }) 99 - 100 - export default { 101 - start, 102 - stop 103 - }
-62
packages/openapi-ts-tests/main/test/e2e/v2.angular.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { buildAngularProject, createAngularProject } from './scripts/angular' 4 - import browser from './scripts/browser' 5 - import { cleanup } from './scripts/cleanup' 6 - import { copyAsset } from './scripts/copyAsset' 7 - import { generateClient } from './scripts/generateClient' 8 - import server from './scripts/server' 9 - 10 - describe('v2.angular', () => { 11 - beforeAll(async () => { 12 - cleanup('v2/angular') 13 - createAngularProject('v2/angular', 'app') 14 - await generateClient('v2/angular/app/src/client', 'v2', 'legacy/angular') 15 - copyAsset('main-angular.ts', 'v2/angular/app/src/main.ts') 16 - buildAngularProject('v2/angular', 'app', 'dist') 17 - await server.start('v2/angular/app/dist/browser') 18 - await browser.start() 19 - }, 100000) 20 - 21 - afterAll(async () => { 22 - await browser.stop() 23 - await server.stop() 24 - }) 25 - 26 - it('requests token', async () => { 27 - await browser.exposeFunction( 28 - 'tokenRequest', 29 - vi.fn().mockResolvedValue('MY_TOKEN') 30 - ) 31 - const result = await browser.evaluate( 32 - async () => 33 - await new Promise(resolve => { 34 - // @ts-expect-error 35 - const { OpenAPI, SimpleService } = window.api 36 - // @ts-expect-error 37 - OpenAPI.TOKEN = window.tokenRequest 38 - SimpleService.getCallWithoutParametersAndResponse().subscribe(resolve) 39 - }) 40 - ) 41 - // @ts-expect-error 42 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 43 - }) 44 - 45 - it('supports complex params', async () => { 46 - const result = await browser.evaluate( 47 - async () => 48 - await new Promise(resolve => { 49 - // @ts-expect-error 50 - const { ComplexService } = window.api 51 - ComplexService.complexTypes({ 52 - first: { 53 - second: { 54 - third: 'Hello World!' 55 - } 56 - } 57 - }).subscribe(resolve) 58 - }) 59 - ) 60 - expect(result).toBeDefined() 61 - }) 62 - })
-85
packages/openapi-ts-tests/main/test/e2e/v2.axios.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('v2.axios', () => { 9 - beforeAll(async () => { 10 - cleanup('v2/axios') 11 - await generateClient('v2/axios', 'v2', 'legacy/axios') 12 - compileWithTypescript('v2/axios') 13 - await server.start('v2/axios') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { OpenAPI, SimpleService } = await import( 22 - './generated/v2/axios/index.js' 23 - ) 24 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 25 - OpenAPI.TOKEN = tokenRequest 26 - const result = await SimpleService.getCallWithoutParametersAndResponse() 27 - expect(tokenRequest.mock.calls.length).toBe(1) 28 - // @ts-expect-error 29 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 30 - }) 31 - 32 - it('supports complex params', async () => { 33 - const { ComplexService } = await import('./generated/v2/axios/index.js') 34 - const result = await ComplexService.complexTypes({ 35 - // @ts-expect-error 36 - first: { 37 - second: { 38 - third: 'Hello World!' 39 - } 40 - } 41 - }) 42 - expect(result).toBeDefined() 43 - }) 44 - }) 45 - 46 - describe('v2.axios useOptions', () => { 47 - beforeAll(async () => { 48 - cleanup('v2/axios') 49 - await generateClient('v2/axios', 'v2', 'legacy/axios', true) 50 - compileWithTypescript('v2/axios') 51 - await server.start('v2/axios') 52 - }, 40000) 53 - 54 - afterAll(async () => { 55 - await server.stop() 56 - }) 57 - 58 - it('returns result body by default', async () => { 59 - const { SimpleService } = await import('./generated/v2/axios/index.js') 60 - const result = await SimpleService.getCallWithoutParametersAndResponse() 61 - // @ts-expect-error 62 - expect(result.body).toBeUndefined() 63 - }) 64 - 65 - it('returns result body', async () => { 66 - const { SimpleService } = await import('./generated/v2/axios/index.js') 67 - // @ts-expect-error 68 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 69 - _result: 'body' 70 - }) 71 - // @ts-expect-error 72 - expect(result.body).toBeUndefined() 73 - }) 74 - 75 - it('returns raw result', async ({ skip }) => { 76 - skip() 77 - const { SimpleService } = await import('./generated/v2/axios/index.js') 78 - // @ts-expect-error 79 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 80 - _result: 'raw' 81 - }) 82 - // @ts-expect-error 83 - expect(result.body).toBeDefined() 84 - }) 85 - })
-84
packages/openapi-ts-tests/main/test/e2e/v2.fetch.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('v2.fetch', () => { 9 - beforeAll(async () => { 10 - cleanup('v2/fetch') 11 - await generateClient('v2/fetch', 'v2', 'legacy/fetch') 12 - compileWithTypescript('v2/fetch') 13 - await server.start('v2/fetch') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { OpenAPI, SimpleService } = await import( 22 - './generated/v2/fetch/index.js' 23 - ) 24 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 25 - OpenAPI.TOKEN = tokenRequest 26 - const result = await SimpleService.getCallWithoutParametersAndResponse() 27 - // @ts-expect-error 28 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 29 - }) 30 - 31 - it('supports complex params', async () => { 32 - const { ComplexService } = await import('./generated/v2/fetch/index.js') 33 - const result = await ComplexService.complexTypes({ 34 - // @ts-expect-error 35 - first: { 36 - second: { 37 - third: 'Hello World!' 38 - } 39 - } 40 - }) 41 - expect(result).toBeDefined() 42 - }) 43 - }) 44 - 45 - describe('v2.fetch useOptions', () => { 46 - beforeAll(async () => { 47 - cleanup('v2/fetch') 48 - await generateClient('v2/fetch', 'v2', 'legacy/fetch', true) 49 - compileWithTypescript('v2/fetch') 50 - await server.start('v2/fetch') 51 - }, 40000) 52 - 53 - afterAll(async () => { 54 - await server.stop() 55 - }) 56 - 57 - it('returns result body by default', async () => { 58 - const { SimpleService } = await import('./generated/v2/fetch/index.js') 59 - const result = await SimpleService.getCallWithoutParametersAndResponse() 60 - // @ts-expect-error 61 - expect(result.body).toBeUndefined() 62 - }) 63 - 64 - it('returns result body', async () => { 65 - const { SimpleService } = await import('./generated/v2/fetch/index.js') 66 - // @ts-expect-error 67 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 68 - _result: 'body' 69 - }) 70 - // @ts-expect-error 71 - expect(result.body).toBeUndefined() 72 - }) 73 - 74 - it('returns raw result', async ({ skip }) => { 75 - skip() 76 - const { SimpleService } = await import('./generated/v2/fetch/index.js') 77 - // @ts-expect-error 78 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 79 - _result: 'raw' 80 - }) 81 - // @ts-expect-error 82 - expect(result.body).toBeDefined() 83 - }) 84 - })
-100
packages/openapi-ts-tests/main/test/e2e/v2.node.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('v2.node', () => { 9 - beforeAll(async () => { 10 - cleanup('v2/node') 11 - await generateClient('v2/node', 'v2', 'legacy/node') 12 - compileWithTypescript('v2/node') 13 - await server.start('v2/node') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { OpenAPI, SimpleService } = await import( 22 - './generated/v2/node/index.js' 23 - ) 24 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 25 - OpenAPI.TOKEN = tokenRequest 26 - const result = await SimpleService.getCallWithoutParametersAndResponse() 27 - expect(tokenRequest.mock.calls.length).toBe(1) 28 - // @ts-expect-error 29 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 30 - }) 31 - 32 - it('supports complex params', async () => { 33 - const { ComplexService } = await import('./generated/v2/node/index.js') 34 - const result = await ComplexService.complexTypes({ 35 - // @ts-expect-error 36 - first: { 37 - second: { 38 - third: 'Hello World!' 39 - } 40 - } 41 - }) 42 - expect(result).toBeDefined() 43 - }) 44 - 45 - it('can abort the request', async () => { 46 - let error 47 - try { 48 - const { SimpleService } = await import('./generated/v2/node/index.js') 49 - const promise = SimpleService.getCallWithoutParametersAndResponse() 50 - setTimeout(() => { 51 - promise.cancel() 52 - }, 10) 53 - await promise 54 - } catch (e) { 55 - error = (e as Error).message 56 - } 57 - expect(error).toContain('Request aborted') 58 - }) 59 - }) 60 - 61 - describe('v2.node useOptions', () => { 62 - beforeAll(async () => { 63 - cleanup('v2/node') 64 - await generateClient('v2/node', 'v2', 'legacy/node', true) 65 - compileWithTypescript('v2/node') 66 - await server.start('v2/node') 67 - }, 40000) 68 - 69 - afterAll(async () => { 70 - await server.stop() 71 - }) 72 - 73 - it('returns result body by default', async () => { 74 - const { SimpleService } = await import('./generated/v2/node/index.js') 75 - const result = await SimpleService.getCallWithoutParametersAndResponse() 76 - // @ts-expect-error 77 - expect(result.body).toBeUndefined() 78 - }) 79 - 80 - it('returns result body', async () => { 81 - const { SimpleService } = await import('./generated/v2/node/index.js') 82 - // @ts-expect-error 83 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 84 - _result: 'body' 85 - }) 86 - // @ts-expect-error 87 - expect(result.body).toBeUndefined() 88 - }) 89 - 90 - it('returns raw result', async ({ skip }) => { 91 - skip() 92 - const { SimpleService } = await import('./generated/v2/node/index.js') 93 - // @ts-expect-error 94 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 95 - _result: 'raw' 96 - }) 97 - // @ts-expect-error 98 - expect(result.body).toBeDefined() 99 - }) 100 - })
-84
packages/openapi-ts-tests/main/test/e2e/v2.xhr.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe.skip('v2.xhr', () => { 9 - beforeAll(async () => { 10 - cleanup('v2/xhr') 11 - await generateClient('v2/xhr', 'v2', 'legacy/xhr') 12 - compileWithTypescript('v2/xhr') 13 - await server.start('v2/xhr') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { OpenAPI, SimpleService } = await import( 22 - './generated/v2/xhr/index.js' 23 - ) 24 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 25 - OpenAPI.TOKEN = tokenRequest 26 - const result = await SimpleService.getCallWithoutParametersAndResponse() 27 - // @ts-expect-error 28 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 29 - }) 30 - 31 - it('supports complex params', async () => { 32 - const { ComplexService } = await import('./generated/v2/xhr/index.js') 33 - const result = await ComplexService.complexTypes({ 34 - // @ts-expect-error 35 - first: { 36 - second: { 37 - third: 'Hello World!' 38 - } 39 - } 40 - }) 41 - expect(result).toBeDefined() 42 - }) 43 - }) 44 - 45 - describe.skip('v2.xhr useOptions', () => { 46 - beforeAll(async () => { 47 - cleanup('v2/xhr') 48 - await generateClient('v2/xhr', 'v2', 'legacy/xhr', true) 49 - compileWithTypescript('v2/xhr') 50 - await server.start('v2/xhr') 51 - }, 40000) 52 - 53 - afterAll(async () => { 54 - await server.stop() 55 - }) 56 - 57 - it('returns result body by default', async () => { 58 - const { SimpleService } = await import('./generated/v2/xhr/index.js') 59 - const result = await SimpleService.getCallWithoutParametersAndResponse() 60 - // @ts-expect-error 61 - expect(result.body).toBeUndefined() 62 - }) 63 - 64 - it('returns result body', async () => { 65 - const { SimpleService } = await import('./generated/v2/xhr/index.js') 66 - // @ts-expect-error 67 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 68 - _result: 'body' 69 - }) 70 - // @ts-expect-error 71 - expect(result.body).toBeUndefined() 72 - }) 73 - 74 - it('returns raw result', async ({ skip }) => { 75 - skip() 76 - const { SimpleService } = await import('./generated/v2/xhr/index.js') 77 - // @ts-expect-error 78 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 79 - _result: 'raw' 80 - }) 81 - // @ts-expect-error 82 - expect(result.body).toBeDefined() 83 - }) 84 - })
-173
packages/openapi-ts-tests/main/test/e2e/v3.angular.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { buildAngularProject, createAngularProject } from './scripts/angular' 4 - import browser from './scripts/browser' 5 - import { cleanup } from './scripts/cleanup' 6 - import { copyAsset } from './scripts/copyAsset' 7 - import { generateClient } from './scripts/generateClient' 8 - import server from './scripts/server' 9 - 10 - describe('v3.angular', () => { 11 - beforeAll(async () => { 12 - cleanup('v3/angular') 13 - createAngularProject('v3/angular', 'app') 14 - await generateClient('v3/angular/app/src/client', 'v3', 'legacy/angular') 15 - copyAsset('main-angular.ts', 'v3/angular/app/src/main.ts') 16 - buildAngularProject('v3/angular', 'app', 'dist') 17 - await server.start('v3/angular/app/dist/browser') 18 - await browser.start() 19 - }, 100000) 20 - 21 - afterAll(async () => { 22 - await browser.stop() 23 - await server.stop() 24 - }) 25 - 26 - it('requests token', async () => { 27 - await browser.exposeFunction( 28 - 'tokenRequest', 29 - vi.fn().mockResolvedValue('MY_TOKEN') 30 - ) 31 - const result = await browser.evaluate( 32 - async () => 33 - await new Promise(resolve => { 34 - // @ts-expect-error 35 - const { OpenAPI, SimpleService } = window.api 36 - // @ts-expect-error 37 - OpenAPI.TOKEN = window.tokenRequest 38 - OpenAPI.USERNAME = undefined 39 - OpenAPI.PASSWORD = undefined 40 - SimpleService.getCallWithoutParametersAndResponse().subscribe(resolve) 41 - }) 42 - ) 43 - // @ts-expect-error 44 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 45 - }) 46 - 47 - it('uses credentials', async () => { 48 - const result = await browser.evaluate( 49 - async () => 50 - await new Promise(resolve => { 51 - // @ts-expect-error 52 - const { OpenAPI, SimpleService } = window.api 53 - OpenAPI.TOKEN = undefined 54 - OpenAPI.USERNAME = 'username' 55 - OpenAPI.PASSWORD = 'password' 56 - SimpleService.getCallWithoutParametersAndResponse().subscribe(resolve) 57 - }) 58 - ) 59 - // @ts-expect-error 60 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 61 - }) 62 - 63 - it('supports complex params', async () => { 64 - const result = await browser.evaluate( 65 - async () => 66 - await new Promise(resolve => { 67 - // @ts-expect-error 68 - const { ComplexService } = window.api 69 - ComplexService.complexTypes({ 70 - first: { 71 - second: { 72 - third: 'Hello World!' 73 - } 74 - } 75 - }).subscribe(resolve) 76 - }) 77 - ) 78 - expect(result).toBeDefined() 79 - }) 80 - 81 - it('support form data', async () => { 82 - const result = await browser.evaluate( 83 - async () => 84 - await new Promise(resolve => { 85 - // @ts-expect-error 86 - const { ParametersService } = window.api 87 - ParametersService.callWithParameters( 88 - 'valueHeader', 89 - 'valueQuery', 90 - 'valueForm', 91 - 'valueCookie', 92 - 'valuePath', 93 - { 94 - prop: 'valueBody' 95 - } 96 - ).subscribe(resolve) 97 - }) 98 - ) 99 - expect(result).toBeDefined() 100 - }) 101 - 102 - it('should throw known error (500)', async () => { 103 - const error = await browser.evaluate(async () => { 104 - try { 105 - await new Promise((resolve, reject) => { 106 - // @ts-expect-error 107 - const { ErrorService } = window.api 108 - ErrorService.testErrorCode(500).subscribe(resolve, reject) 109 - }) 110 - } catch (error) { 111 - return JSON.stringify({ 112 - body: error.body, 113 - message: error.message, 114 - name: error.name, 115 - status: error.status, 116 - statusText: error.statusText, 117 - url: error.url 118 - }) 119 - } 120 - return 121 - }) 122 - expect(error).toBe( 123 - JSON.stringify({ 124 - body: { 125 - message: 'hello world', 126 - status: 500 127 - }, 128 - message: 'Custom message: Internal Server Error', 129 - name: 'ApiError', 130 - status: 500, 131 - statusText: 'Internal Server Error', 132 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 133 - }) 134 - ) 135 - }) 136 - 137 - it('should throw unknown error (599)', async () => { 138 - const error = await browser.evaluate(async () => { 139 - // @ts-expect-error 140 - const { ErrorService } = window.api 141 - try { 142 - await new Promise((resolve, reject) => { 143 - // const { ErrorService } = window.api; 144 - ErrorService.testErrorCode(599).subscribe(resolve, reject) 145 - }) 146 - } catch (error) { 147 - return JSON.stringify({ 148 - body: error.body, 149 - message: error.message, 150 - name: error.name, 151 - status: error.status, 152 - statusText: error.statusText, 153 - url: error.url 154 - }) 155 - } 156 - return 157 - }) 158 - expect(error).toBe( 159 - JSON.stringify({ 160 - body: { 161 - message: 'hello world', 162 - status: 599 163 - }, 164 - message: 165 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 166 - name: 'ApiError', 167 - status: 599, 168 - statusText: 'unknown', 169 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 170 - }) 171 - ) 172 - }) 173 - })
-208
packages/openapi-ts-tests/main/test/e2e/v3.axios.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('v3.axios', () => { 9 - beforeAll(async () => { 10 - cleanup('v3/axios') 11 - await generateClient('v3/axios', 'v3', 'legacy/axios') 12 - compileWithTypescript('v3/axios') 13 - await server.start('v3/axios') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { OpenAPI, SimpleService } = await import( 22 - './generated/v3/axios/index.js' 23 - ) 24 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 25 - OpenAPI.TOKEN = tokenRequest 26 - OpenAPI.USERNAME = undefined 27 - OpenAPI.PASSWORD = undefined 28 - const result = await SimpleService.getCallWithoutParametersAndResponse() 29 - expect(tokenRequest.mock.calls.length).toBe(1) 30 - // @ts-expect-error 31 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 32 - }) 33 - 34 - it('uses credentials', async () => { 35 - const { OpenAPI, SimpleService } = await import( 36 - './generated/v3/axios/index.js' 37 - ) 38 - OpenAPI.TOKEN = undefined 39 - OpenAPI.USERNAME = 'username' 40 - OpenAPI.PASSWORD = 'password' 41 - const result = await SimpleService.getCallWithoutParametersAndResponse() 42 - // @ts-expect-error 43 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 44 - }) 45 - 46 - it('supports complex params', async () => { 47 - const { ComplexService } = await import('./generated/v3/axios/index.js') 48 - const result = await ComplexService.complexTypes({ 49 - // @ts-expect-error 50 - first: { 51 - second: { 52 - third: 'Hello World!' 53 - } 54 - } 55 - }) 56 - expect(result).toBeDefined() 57 - }) 58 - 59 - it('supports form data', async () => { 60 - const { ParametersService } = await import('./generated/v3/axios/index.js') 61 - // @ts-expect-error 62 - const result = await ParametersService.callWithParameters( 63 - 'valueHeader', 64 - // @ts-expect-error 65 - 'valueQuery', 66 - 'valueForm', 67 - 'valueCookie', 68 - 'valuePath', 69 - { 70 - prop: 'valueBody' 71 - } 72 - ) 73 - expect(result).toBeDefined() 74 - }) 75 - 76 - it('can abort the request', async () => { 77 - let error 78 - try { 79 - const { SimpleService } = await import('./generated/v3/axios/index.js') 80 - const promise = SimpleService.getCallWithoutParametersAndResponse() 81 - setTimeout(() => { 82 - promise.cancel() 83 - }, 10) 84 - await promise 85 - } catch (e) { 86 - error = (e as Error).message 87 - } 88 - expect(error).toContain('Request aborted') 89 - }) 90 - 91 - it('should throw known error (500)', async () => { 92 - let error 93 - try { 94 - const { ErrorService } = await import('./generated/v3/axios/index.js') 95 - // @ts-expect-error 96 - await ErrorService.testErrorCode(500) 97 - } catch (err) { 98 - error = JSON.stringify({ 99 - body: err.body, 100 - message: err.message, 101 - name: err.name, 102 - status: err.status, 103 - statusText: err.statusText, 104 - url: err.url 105 - }) 106 - } 107 - expect(error).toBe( 108 - JSON.stringify({ 109 - body: { 110 - message: 'hello world', 111 - status: 500 112 - }, 113 - message: 'Custom message: Internal Server Error', 114 - name: 'ApiError', 115 - status: 500, 116 - statusText: 'Internal Server Error', 117 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 118 - }) 119 - ) 120 - }) 121 - 122 - it('should throw unknown error (599)', async () => { 123 - let error 124 - try { 125 - const { ErrorService } = await import('./generated/v3/axios/index.js') 126 - // @ts-expect-error 127 - await ErrorService.testErrorCode(599) 128 - } catch (err) { 129 - error = JSON.stringify({ 130 - body: err.body, 131 - message: err.message, 132 - name: err.name, 133 - status: err.status, 134 - statusText: err.statusText, 135 - url: err.url 136 - }) 137 - } 138 - expect(error).toBe( 139 - JSON.stringify({ 140 - body: { 141 - message: 'hello world', 142 - status: 599 143 - }, 144 - message: 145 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 146 - name: 'ApiError', 147 - status: 599, 148 - statusText: 'unknown', 149 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 150 - }) 151 - ) 152 - }) 153 - 154 - it('it should parse query params', async () => { 155 - const { ParametersService } = await import('./generated/v3/axios/index.js') 156 - const result = await ParametersService.postCallWithOptionalParam({ 157 - // @ts-expect-error 158 - page: 0, 159 - size: 1, 160 - sort: ['location'] 161 - }) 162 - // @ts-expect-error 163 - expect(result.query).toStrictEqual({ 164 - parameter: { page: '0', size: '1', sort: 'location' } 165 - }) 166 - }) 167 - }) 168 - 169 - describe('v3.axios useOptions', () => { 170 - beforeAll(async () => { 171 - cleanup('v3/axios') 172 - await generateClient('v3/axios', 'v3', 'legacy/axios', true) 173 - compileWithTypescript('v3/axios') 174 - await server.start('v3/axios') 175 - }, 40000) 176 - 177 - afterAll(async () => { 178 - await server.stop() 179 - }) 180 - 181 - it('returns result body by default', async () => { 182 - const { SimpleService } = await import('./generated/v3/axios/index.js') 183 - const result = await SimpleService.getCallWithoutParametersAndResponse() 184 - // @ts-expect-error 185 - expect(result.body).toBeUndefined() 186 - }) 187 - 188 - it('returns result body', async () => { 189 - const { SimpleService } = await import('./generated/v3/axios/index.js') 190 - // @ts-expect-error 191 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 192 - _result: 'body' 193 - }) 194 - // @ts-expect-error 195 - expect(result.body).toBeUndefined() 196 - }) 197 - 198 - it('returns raw result', async ({ skip }) => { 199 - skip() 200 - const { SimpleService } = await import('./generated/v3/axios/index.js') 201 - // @ts-expect-error 202 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 203 - _result: 'raw' 204 - }) 205 - // @ts-expect-error 206 - expect(result.body).toBeDefined() 207 - }) 208 - })
-216
packages/openapi-ts-tests/main/test/e2e/v3.fetch.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('v3.fetch', () => { 9 - beforeAll(async () => { 10 - cleanup('v3/fetch') 11 - await generateClient('v3/fetch', 'v3', 'legacy/fetch') 12 - compileWithTypescript('v3/fetch') 13 - await server.start('v3/fetch') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { OpenAPI, SimpleService } = await import( 22 - './generated/v3/fetch/index.js' 23 - ) 24 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 25 - OpenAPI.TOKEN = tokenRequest 26 - OpenAPI.USERNAME = undefined 27 - OpenAPI.PASSWORD = undefined 28 - const result = await SimpleService.getCallWithoutParametersAndResponse() 29 - expect(tokenRequest.mock.calls.length).toBe(1) 30 - // @ts-expect-error 31 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 32 - }) 33 - 34 - it('uses credentials', async () => { 35 - const { OpenAPI, SimpleService } = await import( 36 - './generated/v3/fetch/index.js' 37 - ) 38 - OpenAPI.TOKEN = undefined 39 - OpenAPI.USERNAME = 'username' 40 - OpenAPI.PASSWORD = 'password' 41 - const result = await SimpleService.getCallWithoutParametersAndResponse() 42 - // @ts-expect-error 43 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 44 - }) 45 - 46 - it('supports complex params', async () => { 47 - const { ComplexService } = await import('./generated/v3/fetch/index.js') 48 - const result = await ComplexService.complexTypes({ 49 - // @ts-expect-error 50 - first: { 51 - second: { 52 - third: 'Hello World!' 53 - } 54 - } 55 - }) 56 - expect(result).toBeDefined() 57 - }) 58 - 59 - it('support form data', async () => { 60 - const { ParametersService } = await import('./generated/v3/fetch/index.js') 61 - const result = await ParametersService.callWithParameters( 62 - 'valueHeader', 63 - // @ts-expect-error 64 - 'valueQuery', 65 - 'valueForm', 66 - 'valueCookie', 67 - 'valuePath', 68 - { 69 - prop: 'valueBody' 70 - } 71 - ) 72 - expect(result).toBeDefined() 73 - }) 74 - 75 - it('support blob response data', async () => { 76 - const { FileResponseService } = await import( 77 - './generated/v3/fetch/index.js' 78 - ) 79 - // @ts-expect-error 80 - const result = await FileResponseService.fileResponse('test') 81 - expect(result).toBeDefined() 82 - }) 83 - 84 - it('can abort the request', async () => { 85 - let error 86 - try { 87 - const { SimpleService } = await import('./generated/v3/fetch/index.js') 88 - const promise = SimpleService.getCallWithoutParametersAndResponse() 89 - setTimeout(() => { 90 - promise.cancel() 91 - }, 10) 92 - await promise 93 - } catch (e) { 94 - error = (e as Error).message 95 - } 96 - expect(error).toContain('Request aborted') 97 - }) 98 - 99 - it('should throw known error (500)', async () => { 100 - let error 101 - try { 102 - const { ErrorService } = await import('./generated/v3/fetch/index.js') 103 - // @ts-expect-error 104 - await ErrorService.testErrorCode(500) 105 - } catch (err) { 106 - error = JSON.stringify({ 107 - body: err.body, 108 - message: err.message, 109 - name: err.name, 110 - status: err.status, 111 - statusText: err.statusText, 112 - url: err.url 113 - }) 114 - } 115 - expect(error).toBe( 116 - JSON.stringify({ 117 - body: { 118 - message: 'hello world', 119 - status: 500 120 - }, 121 - message: 'Custom message: Internal Server Error', 122 - name: 'ApiError', 123 - status: 500, 124 - statusText: 'Internal Server Error', 125 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 126 - }) 127 - ) 128 - }) 129 - 130 - it('should throw unknown error (599)', async () => { 131 - let error 132 - try { 133 - const { ErrorService } = await import('./generated/v3/fetch/index.js') 134 - // @ts-expect-error 135 - await ErrorService.testErrorCode(599) 136 - } catch (err) { 137 - error = JSON.stringify({ 138 - body: err.body, 139 - message: err.message, 140 - name: err.name, 141 - status: err.status, 142 - statusText: err.statusText, 143 - url: err.url 144 - }) 145 - } 146 - expect(error).toBe( 147 - JSON.stringify({ 148 - body: { 149 - message: 'hello world', 150 - status: 599 151 - }, 152 - message: 153 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 154 - name: 'ApiError', 155 - status: 599, 156 - statusText: 'unknown', 157 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 158 - }) 159 - ) 160 - }) 161 - 162 - it('it should parse query params', async () => { 163 - const { ParametersService } = await import('./generated/v3/fetch/index.js') 164 - const result = await ParametersService.postCallWithOptionalParam({ 165 - // @ts-expect-error 166 - page: 0, 167 - size: 1, 168 - sort: ['location'] 169 - }) 170 - // @ts-expect-error 171 - expect(result.query).toStrictEqual({ 172 - parameter: { page: '0', size: '1', sort: 'location' } 173 - }) 174 - }) 175 - }) 176 - 177 - describe('v3.fetch useOptions', () => { 178 - beforeAll(async () => { 179 - cleanup('v3/fetch') 180 - await generateClient('v3/fetch', 'v3', 'legacy/fetch', true) 181 - compileWithTypescript('v3/fetch') 182 - await server.start('v3/fetch') 183 - }, 40000) 184 - 185 - afterAll(async () => { 186 - await server.stop() 187 - }) 188 - 189 - it('returns result body by default', async () => { 190 - const { SimpleService } = await import('./generated/v3/fetch/index.js') 191 - const result = await SimpleService.getCallWithoutParametersAndResponse() 192 - // @ts-expect-error 193 - expect(result.body).toBeUndefined() 194 - }) 195 - 196 - it('returns result body', async () => { 197 - const { SimpleService } = await import('./generated/v3/fetch/index.js') 198 - // @ts-expect-error 199 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 200 - _result: 'body' 201 - }) 202 - // @ts-expect-error 203 - expect(result.body).toBeUndefined() 204 - }) 205 - 206 - it('returns raw result', async ({ skip }) => { 207 - skip() 208 - const { SimpleService } = await import('./generated/v3/fetch/index.js') 209 - // @ts-expect-error 210 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 211 - _result: 'raw' 212 - }) 213 - // @ts-expect-error 214 - expect(result.body).toBeDefined() 215 - }) 216 - })
-214
packages/openapi-ts-tests/main/test/e2e/v3.node.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe('v3.node', () => { 9 - beforeAll(async () => { 10 - cleanup('v3/node') 11 - await generateClient('v3/node', 'v3', 'legacy/node') 12 - compileWithTypescript('v3/node') 13 - await server.start('v3/node') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { OpenAPI, SimpleService } = await import( 22 - './generated/v3/node/index.js' 23 - ) 24 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 25 - OpenAPI.TOKEN = tokenRequest 26 - OpenAPI.USERNAME = undefined 27 - OpenAPI.PASSWORD = undefined 28 - const result = await SimpleService.getCallWithoutParametersAndResponse() 29 - expect(tokenRequest.mock.calls.length).toBe(1) 30 - // @ts-expect-error 31 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 32 - }) 33 - 34 - it('uses credentials', async () => { 35 - const { OpenAPI, SimpleService } = await import( 36 - './generated/v3/node/index.js' 37 - ) 38 - OpenAPI.TOKEN = undefined 39 - OpenAPI.USERNAME = 'username' 40 - OpenAPI.PASSWORD = 'password' 41 - const result = await SimpleService.getCallWithoutParametersAndResponse() 42 - // @ts-expect-error 43 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 44 - }) 45 - 46 - it('supports complex params', async () => { 47 - const { ComplexService } = await import('./generated/v3/node/index.js') 48 - const result = await ComplexService.complexTypes({ 49 - // @ts-expect-error 50 - first: { 51 - second: { 52 - third: 'Hello World!' 53 - } 54 - } 55 - }) 56 - expect(result).toBeDefined() 57 - }) 58 - 59 - it('support form data', async () => { 60 - const { ParametersService } = await import('./generated/v3/node/index.js') 61 - const result = await ParametersService.callWithParameters( 62 - 'valueHeader', 63 - // @ts-expect-error 64 - 'valueQuery', 65 - 'valueForm', 66 - 'valueCookie', 67 - 'valuePath', 68 - { 69 - prop: 'valueBody' 70 - } 71 - ) 72 - expect(result).toBeDefined() 73 - }) 74 - 75 - it('support blob response data', async () => { 76 - const { FileResponseService } = await import('./generated/v3/node/index.js') 77 - // @ts-expect-error 78 - const result = await FileResponseService.fileResponse('test') 79 - expect(result).toBeDefined() 80 - }) 81 - 82 - it('can abort the request', async () => { 83 - let error 84 - try { 85 - const { SimpleService } = await import('./generated/v3/node/index.js') 86 - const promise = SimpleService.getCallWithoutParametersAndResponse() 87 - setTimeout(() => { 88 - promise.cancel() 89 - }, 10) 90 - await promise 91 - } catch (e) { 92 - error = (e as Error).message 93 - } 94 - expect(error).toContain('Request aborted') 95 - }) 96 - 97 - it('should throw known error (500)', async () => { 98 - let error 99 - try { 100 - const { ErrorService } = await import('./generated/v3/node/index.js') 101 - // @ts-expect-error 102 - await ErrorService.testErrorCode(500) 103 - } catch (err) { 104 - error = JSON.stringify({ 105 - body: err.body, 106 - message: err.message, 107 - name: err.name, 108 - status: err.status, 109 - statusText: err.statusText, 110 - url: err.url 111 - }) 112 - } 113 - expect(error).toBe( 114 - JSON.stringify({ 115 - body: { 116 - message: 'hello world', 117 - status: 500 118 - }, 119 - message: 'Custom message: Internal Server Error', 120 - name: 'ApiError', 121 - status: 500, 122 - statusText: 'Internal Server Error', 123 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 124 - }) 125 - ) 126 - }) 127 - 128 - it('should throw unknown error (599)', async () => { 129 - let error 130 - try { 131 - const { ErrorService } = await import('./generated/v3/node/index.js') 132 - // @ts-expect-error 133 - await ErrorService.testErrorCode(599) 134 - } catch (err) { 135 - error = JSON.stringify({ 136 - body: err.body, 137 - message: err.message, 138 - name: err.name, 139 - status: err.status, 140 - statusText: err.statusText, 141 - url: err.url 142 - }) 143 - } 144 - expect(error).toBe( 145 - JSON.stringify({ 146 - body: { 147 - message: 'hello world', 148 - status: 599 149 - }, 150 - message: 151 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 152 - name: 'ApiError', 153 - status: 599, 154 - statusText: 'unknown', 155 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 156 - }) 157 - ) 158 - }) 159 - 160 - it('it should parse query params', async () => { 161 - const { ParametersService } = await import('./generated/v3/node/index.js') 162 - const result = await ParametersService.postCallWithOptionalParam({ 163 - // @ts-expect-error 164 - page: 0, 165 - size: 1, 166 - sort: ['location'] 167 - }) 168 - // @ts-expect-error 169 - expect(result.query).toStrictEqual({ 170 - parameter: { page: '0', size: '1', sort: 'location' } 171 - }) 172 - }) 173 - }) 174 - 175 - describe('v3.node useOptions', () => { 176 - beforeAll(async () => { 177 - cleanup('v3/node') 178 - await generateClient('v3/node', 'v3', 'legacy/node', true) 179 - compileWithTypescript('v3/node') 180 - await server.start('v3/node') 181 - }, 40000) 182 - 183 - afterAll(async () => { 184 - await server.stop() 185 - }) 186 - 187 - it('returns result body by default', async () => { 188 - const { SimpleService } = await import('./generated/v3/node/index.js') 189 - const result = await SimpleService.getCallWithoutParametersAndResponse() 190 - // @ts-expect-error 191 - expect(result.body).toBeUndefined() 192 - }) 193 - 194 - it('returns result body', async () => { 195 - const { SimpleService } = await import('./generated/v3/node/index.js') 196 - // @ts-expect-error 197 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 198 - _result: 'body' 199 - }) 200 - // @ts-expect-error 201 - expect(result.body).toBeUndefined() 202 - }) 203 - 204 - it('returns raw result', async ({ skip }) => { 205 - skip() 206 - const { SimpleService } = await import('./generated/v3/node/index.js') 207 - // @ts-expect-error 208 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 209 - _result: 'raw' 210 - }) 211 - // @ts-expect-error 212 - expect(result.body).toBeDefined() 213 - }) 214 - })
-207
packages/openapi-ts-tests/main/test/e2e/v3.xhr.test.ts
··· 1 - import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' 2 - 3 - import { cleanup } from './scripts/cleanup' 4 - import { compileWithTypescript } from './scripts/compileWithTypescript' 5 - import { generateClient } from './scripts/generateClient' 6 - import server from './scripts/server' 7 - 8 - describe.skip('v3.xhr', () => { 9 - beforeAll(async () => { 10 - cleanup('v3/xhr') 11 - await generateClient('v3/xhr', 'v3', 'legacy/xhr') 12 - compileWithTypescript('v3/xhr') 13 - await server.start('v3/xhr') 14 - }, 40000) 15 - 16 - afterAll(async () => { 17 - await server.stop() 18 - }) 19 - 20 - it('requests token', async () => { 21 - const { OpenAPI, SimpleService } = await import( 22 - './generated/v3/xhr/index.js' 23 - ) 24 - const tokenRequest = vi.fn().mockResolvedValue('MY_TOKEN') 25 - OpenAPI.TOKEN = tokenRequest 26 - OpenAPI.USERNAME = undefined 27 - OpenAPI.PASSWORD = undefined 28 - const result = await SimpleService.getCallWithoutParametersAndResponse() 29 - expect(tokenRequest.mock.calls.length).toBe(1) 30 - // @ts-expect-error 31 - expect(result.headers.authorization).toBe('Bearer MY_TOKEN') 32 - }) 33 - 34 - it('uses credentials', async () => { 35 - const { OpenAPI, SimpleService } = await import( 36 - './generated/v3/xhr/index.js' 37 - ) 38 - OpenAPI.TOKEN = undefined 39 - OpenAPI.USERNAME = 'username' 40 - OpenAPI.PASSWORD = 'password' 41 - const result = await SimpleService.getCallWithoutParametersAndResponse() 42 - // @ts-expect-error 43 - expect(result.headers.authorization).toBe('Basic dXNlcm5hbWU6cGFzc3dvcmQ=') 44 - }) 45 - 46 - it('supports complex params', async () => { 47 - const { ComplexService } = await import('./generated/v3/xhr/index.js') 48 - const result = await ComplexService.complexTypes({ 49 - // @ts-expect-error 50 - first: { 51 - second: { 52 - third: 'Hello World!' 53 - } 54 - } 55 - }) 56 - expect(result).toBeDefined() 57 - }) 58 - 59 - it('support form data', async () => { 60 - const { ParametersService } = await import('./generated/v3/xhr/index.js') 61 - const result = await ParametersService.callWithParameters( 62 - 'valueHeader', 63 - // @ts-expect-error 64 - 'valueQuery', 65 - 'valueForm', 66 - 'valueCookie', 67 - 'valuePath', 68 - { 69 - prop: 'valueBody' 70 - } 71 - ) 72 - expect(result).toBeDefined() 73 - }) 74 - 75 - it('can abort the request', async () => { 76 - let error 77 - try { 78 - const { SimpleService } = await import('./generated/v3/xhr/index.js') 79 - const promise = SimpleService.getCallWithoutParametersAndResponse() 80 - setTimeout(() => { 81 - promise.cancel() 82 - }, 10) 83 - await promise 84 - } catch (e) { 85 - error = (e as Error).message 86 - } 87 - expect(error).toContain('Request aborted') 88 - }) 89 - 90 - it('should throw known error (500)', async () => { 91 - let error 92 - try { 93 - const { ErrorService } = await import('./generated/v3/xhr/index.js') 94 - // @ts-expect-error 95 - await ErrorService.testErrorCode(500) 96 - } catch (err) { 97 - error = JSON.stringify({ 98 - body: err.body, 99 - message: err.message, 100 - name: err.name, 101 - status: err.status, 102 - statusText: err.statusText, 103 - url: err.url 104 - }) 105 - } 106 - expect(error).toBe( 107 - JSON.stringify({ 108 - body: { 109 - message: 'hello world', 110 - status: 500 111 - }, 112 - message: 'Custom message: Internal Server Error', 113 - name: 'ApiError', 114 - status: 500, 115 - statusText: 'Internal Server Error', 116 - url: 'http://localhost:3000/base/api/v1.0/error?status=500' 117 - }) 118 - ) 119 - }) 120 - 121 - it('should throw unknown error (599)', async () => { 122 - let error 123 - try { 124 - const { ErrorService } = await import('./generated/v3/xhr/index.js') 125 - // @ts-expect-error 126 - await ErrorService.testErrorCode(599) 127 - } catch (err) { 128 - error = JSON.stringify({ 129 - body: err.body, 130 - message: err.message, 131 - name: err.name, 132 - status: err.status, 133 - statusText: err.statusText, 134 - url: err.url 135 - }) 136 - } 137 - expect(error).toBe( 138 - JSON.stringify({ 139 - body: { 140 - message: 'hello world', 141 - status: 599 142 - }, 143 - message: 144 - 'Generic Error: status: 599; status text: unknown; body: {\n "message": "hello world",\n "status": 599\n}', 145 - name: 'ApiError', 146 - status: 599, 147 - statusText: 'unknown', 148 - url: 'http://localhost:3000/base/api/v1.0/error?status=599' 149 - }) 150 - ) 151 - }) 152 - 153 - it('it should parse query params', async () => { 154 - const { ParametersService } = await import('./generated/v3/xhr/index.js') 155 - const result = await ParametersService.postCallWithOptionalParam({ 156 - // @ts-expect-error 157 - page: 0, 158 - size: 1, 159 - sort: ['location'] 160 - }) 161 - // @ts-expect-error 162 - expect(result.query).toStrictEqual({ 163 - parameter: { page: '0', size: '1', sort: 'location' } 164 - }) 165 - }) 166 - }) 167 - 168 - describe.skip('v3.xhr useOptions', () => { 169 - beforeAll(async () => { 170 - cleanup('v3/xhr') 171 - await generateClient('v3/xhr', 'v3', 'legacy/xhr', true) 172 - compileWithTypescript('v3/xhr') 173 - await server.start('v3/xhr') 174 - }, 40000) 175 - 176 - afterAll(async () => { 177 - await server.stop() 178 - }) 179 - 180 - it('returns result body by default', async () => { 181 - const { SimpleService } = await import('./generated/v3/xhr/index.js') 182 - const result = await SimpleService.getCallWithoutParametersAndResponse() 183 - // @ts-expect-error 184 - expect(result.body).toBeUndefined() 185 - }) 186 - 187 - it('returns result body', async () => { 188 - const { SimpleService } = await import('./generated/v3/xhr/index.js') 189 - // @ts-expect-error 190 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 191 - _result: 'body' 192 - }) 193 - // @ts-expect-error 194 - expect(result.body).toBeUndefined() 195 - }) 196 - 197 - it('returns raw result', async ({ skip }) => { 198 - skip() 199 - const { SimpleService } = await import('./generated/v3/xhr/index.js') 200 - // @ts-expect-error 201 - const result = await SimpleService.getCallWithoutParametersAndResponse({ 202 - _result: 'raw' 203 - }) 204 - // @ts-expect-error 205 - expect(result.body).toBeDefined() 206 - }) 207 - })
+1 -1
packages/openapi-ts-tests/main/tsconfig.json
··· 6 6 "resolveJsonModule": true, 7 7 "skipLibCheck": true 8 8 }, 9 - "exclude": ["test/custom/request.ts", "test/e2e/**", "test/generated/**"] 9 + "exclude": ["test/custom/request.ts", "test/generated/**"] 10 10 }
-15
packages/openapi-ts-tests/main/vitest.config.e2e.ts
··· 1 - import { fileURLToPath } from 'node:url'; 2 - 3 - import { createVitestConfig } from '@config/vite-base'; 4 - 5 - export default createVitestConfig( 6 - fileURLToPath(new URL('./', import.meta.url)), 7 - { 8 - test: { 9 - // Dont run tests in parallel. This is to ensure the test server can start up. 10 - // And that the port was not previously taken. 11 - fileParallelism: false, 12 - include: ['test/e2e/**/*.test.ts'], 13 - }, 14 - }, 15 - );
+7
packages/openapi-ts-tests/main/vitest.config.ts
··· 1 + import { fileURLToPath } from 'node:url'; 2 + 3 + import { createVitestConfig } from '@config/vite-base'; 4 + 5 + export default createVitestConfig( 6 + fileURLToPath(new URL('./', import.meta.url)), 7 + );
-12
packages/openapi-ts-tests/main/vitest.config.unit.ts
··· 1 - import { fileURLToPath } from 'node:url'; 2 - 3 - import { createVitestConfig } from '@config/vite-base'; 4 - import { configDefaults } from 'vitest/config'; 5 - export default createVitestConfig( 6 - fileURLToPath(new URL('./', import.meta.url)), 7 - { 8 - test: { 9 - exclude: [...configDefaults.exclude, 'test/e2e/**/*.test.ts'], 10 - }, 11 - }, 12 - );
+1 -1
packages/openapi-ts/tsconfig.json
··· 6 6 "resolveJsonModule": true, 7 7 "skipLibCheck": true 8 8 }, 9 - "exclude": ["test/custom/request.ts", "test/e2e/**", "test/generated/**"] 9 + "exclude": ["test/custom/request.ts", "test/generated/**"] 10 10 }
+76 -648
pnpm-lock.yaml
··· 170 170 devDependencies: 171 171 '@angular-devkit/build-angular': 172 172 specifier: 19.2.0 173 - version: 19.2.0(2d14940f40ec266edc773a5f5d918fb0) 173 + version: 19.2.0(696c3532ef15b073c21785e1bc79a040) 174 174 '@angular/cli': 175 175 specifier: 19.2.0 176 176 version: 19.2.0(@types/node@22.10.5)(chokidar@4.0.3) ··· 264 264 devDependencies: 265 265 '@angular-devkit/build-angular': 266 266 specifier: 19.2.0 267 - version: 19.2.0(c051f58b50ee906cd14109939270cbce) 267 + version: 19.2.0(b57b04a4dfd0d7238fcb437f41884422) 268 268 '@angular/cli': 269 269 specifier: 19.2.0 270 270 version: 19.2.0(@types/node@22.10.5)(chokidar@4.0.3) ··· 825 825 devDependencies: 826 826 '@angular-devkit/build-angular': 827 827 specifier: ^19.2.15 828 - version: 19.2.15(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.8.3))(@angular/compiler@19.2.14)(@angular/platform-server@19.2.0(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.14)(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.14(@angular/animations@19.2.14(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))))(@angular/ssr@19.2.15(fc183c600d5538ac11e1814ee07b5dfc))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(yaml@2.8.0) 828 + version: 19.2.15(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.8.3))(@angular/compiler@19.2.14)(@angular/platform-server@19.2.0(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.14)(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.14(@angular/animations@19.2.14(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))))(@angular/ssr@19.2.15(fc183c600d5538ac11e1814ee07b5dfc))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(yaml@2.8.0) 829 829 '@angular/cli': 830 830 specifier: ^19.2.15 831 831 version: 19.2.15(@types/node@22.10.5)(chokidar@4.0.3) ··· 1143 1143 specifier: 1.7.4 1144 1144 version: 1.7.4 1145 1145 nuxt: 1146 - specifier: '>= 3.0.0 < 4' 1146 + specifier: '>=3.0.0' 1147 1147 version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.2)(encoding@0.1.13)(eslint@9.17.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@3.29.5)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 1148 1148 vue: 1149 - specifier: '>= 3.5.13 < 4' 1149 + specifier: '>=3.5.13' 1150 1150 version: 3.5.13(typescript@5.8.3) 1151 1151 devDependencies: 1152 1152 '@config/vite-base': ··· 1260 1260 version: 3.3.2 1261 1261 nuxt: 1262 1262 specifier: 3.14.1592 1263 - version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.2)(encoding@0.1.13)(eslint@9.17.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.49.0)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)) 1263 + version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.2)(encoding@0.1.13)(eslint@9.17.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.49.0)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 1264 1264 prettier: 1265 1265 specifier: 3.4.2 1266 1266 version: 3.4.2 ··· 1290 1290 devDependencies: 1291 1291 '@angular-devkit/build-angular': 1292 1292 specifier: 19.2.0 1293 - version: 19.2.0(15a86fe5dd2abc83e2961d572f8e7511) 1293 + version: 19.2.0(ac4ffa91faa637dff4fd6a93b49aaa4c) 1294 1294 '@angular/animations': 1295 1295 specifier: 19.2.0 1296 1296 version: 19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)) ··· 1351 1351 '@types/cross-spawn': 1352 1352 specifier: 6.0.6 1353 1353 version: 6.0.6 1354 - '@types/express': 1355 - specifier: 4.17.21 1356 - version: 4.17.21 1357 1354 axios: 1358 1355 specifier: 1.8.2 1359 1356 version: 1.8.2 ··· 1363 1360 eslint: 1364 1361 specifier: 9.17.0 1365 1362 version: 9.17.0(jiti@2.5.1) 1366 - express: 1367 - specifier: 4.21.0 1368 - version: 4.21.0 1369 1363 fastify: 1370 1364 specifier: 5.2.0 1371 1365 version: 5.2.0 ··· 1377 1371 version: 3.3.2 1378 1372 nuxt: 1379 1373 specifier: 3.14.1592 1380 - version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.2)(encoding@0.1.13)(eslint@9.17.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.49.0)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 1374 + version: 3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.2)(encoding@0.1.13)(eslint@9.17.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.49.0)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 1381 1375 prettier: 1382 1376 specifier: 3.4.2 1383 1377 version: 3.4.2 1384 - puppeteer: 1385 - specifier: 22.12.1 1386 - version: 22.12.1(typescript@5.8.3) 1387 1378 rxjs: 1388 1379 specifier: 7.8.1 1389 1380 version: 7.8.1 ··· 4613 4604 '@poppinss/exception@1.2.2': 4614 4605 resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} 4615 4606 4616 - '@puppeteer/browsers@2.2.3': 4617 - resolution: {integrity: sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==} 4618 - engines: {node: '>=18'} 4619 - hasBin: true 4620 - 4621 4607 '@radix-ui/colors@3.0.0': 4622 4608 resolution: {integrity: sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==} 4623 4609 ··· 5864 5850 '@vue/composition-api': 5865 5851 optional: true 5866 5852 5867 - '@tootallnate/quickjs-emscripten@0.23.0': 5868 - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} 5869 - 5870 5853 '@tsconfig/node10@1.0.11': 5871 5854 resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 5872 5855 ··· 6909 6892 ast-types-flow@0.0.8: 6910 6893 resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 6911 6894 6912 - ast-types@0.13.4: 6913 - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} 6914 - engines: {node: '>=4'} 6915 - 6916 6895 ast-walker-scope@0.6.2: 6917 6896 resolution: {integrity: sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==} 6918 6897 engines: {node: '>=16.14.0'} ··· 7005 6984 bare-events@2.6.1: 7006 6985 resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} 7007 6986 7008 - bare-fs@2.3.5: 7009 - resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} 7010 - 7011 - bare-os@2.4.4: 7012 - resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==} 7013 - 7014 - bare-path@2.1.3: 7015 - resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} 7016 - 7017 - bare-stream@2.7.0: 7018 - resolution: {integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==} 7019 - peerDependencies: 7020 - bare-buffer: '*' 7021 - bare-events: '*' 7022 - peerDependenciesMeta: 7023 - bare-buffer: 7024 - optional: true 7025 - bare-events: 7026 - optional: true 7027 - 7028 6987 base64-js@1.5.1: 7029 6988 resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 7030 6989 7031 6990 base64id@2.0.0: 7032 6991 resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} 7033 6992 engines: {node: ^4.5.0 || >= 5.9} 7034 - 7035 - basic-ftp@5.0.5: 7036 - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} 7037 - engines: {node: '>=10.0.0'} 7038 6993 7039 6994 batch@0.6.1: 7040 6995 resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} ··· 7261 7216 chrome-trace-event@1.0.4: 7262 7217 resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} 7263 7218 engines: {node: '>=6.0'} 7264 - 7265 - chromium-bidi@0.5.24: 7266 - resolution: {integrity: sha512-5xQNN2SVBdZv4TxeMLaI+PelrnZsHDhn8h2JtyriLr+0qHcZS8BMuo93qN6J1VmtmrgYP+rmcLHcbpnA8QJh+w==} 7267 - peerDependencies: 7268 - devtools-protocol: '*' 7269 7219 7270 7220 ci-info@3.9.0: 7271 7221 resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} ··· 7650 7600 resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} 7651 7601 engines: {node: '>= 12'} 7652 7602 7653 - data-uri-to-buffer@6.0.2: 7654 - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} 7655 - engines: {node: '>= 14'} 7656 - 7657 7603 data-urls@5.0.0: 7658 7604 resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 7659 7605 engines: {node: '>=18'} ··· 7796 7742 defu@6.1.4: 7797 7743 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 7798 7744 7799 - degenerator@5.0.1: 7800 - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} 7801 - engines: {node: '>= 14'} 7802 - 7803 7745 delayed-stream@1.0.0: 7804 7746 resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 7805 7747 engines: {node: '>=0.4.0'} ··· 7894 7836 7895 7837 devlop@1.1.0: 7896 7838 resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 7897 - 7898 - devtools-protocol@0.0.1299070: 7899 - resolution: {integrity: sha512-+qtL3eX50qsJ7c+qVyagqi7AWMoQCBGNfoyJZMwm/NSXVqLYbuitrWEEIzxfUmTNy7//Xe8yhMmQ+elj3uAqSg==} 7900 7839 7901 7840 di@0.0.1: 7902 7841 resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} ··· 8762 8701 get-tsconfig@4.10.1: 8763 8702 resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} 8764 8703 8765 - get-uri@6.0.5: 8766 - resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} 8767 - engines: {node: '>= 14'} 8768 - 8769 8704 giget@1.2.5: 8770 8705 resolution: {integrity: sha512-r1ekGw/Bgpi3HLV3h1MRBIlSAdHoIMklpaQ3OQLFcRw9PwAj2rqigvIbg+dBUI51OxVI2jsEtDywDBjSiuf7Ug==} 8771 8706 hasBin: true ··· 9822 9757 lru-cache@5.1.1: 9823 9758 resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 9824 9759 9825 - lru-cache@6.0.0: 9826 - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 9827 - engines: {node: '>=10'} 9828 - 9829 - lru-cache@7.18.3: 9830 - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} 9831 - engines: {node: '>=12'} 9832 - 9833 9760 luxon@3.7.1: 9834 9761 resolution: {integrity: sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==} 9835 9762 engines: {node: '>=12'} ··· 10280 10207 resolution: {integrity: sha512-Nc3loyVASW59W+8fLDZT1lncpG7llffyZ2o0UQLx/Fr20i7P8oP+lE7+TEcFvXj9IUWU6LjB9P3BH+iFGyp+mg==} 10281 10208 engines: {node: ^14.16.0 || >=16.0.0} 10282 10209 10283 - netmask@2.0.2: 10284 - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} 10285 - engines: {node: '>= 0.4.0'} 10286 - 10287 10210 next@15.2.4: 10288 10211 resolution: {integrity: sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==} 10289 10212 engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} ··· 10681 10604 p-wait-for@5.0.2: 10682 10605 resolution: {integrity: sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==} 10683 10606 engines: {node: '>=12'} 10684 - 10685 - pac-proxy-agent@7.2.0: 10686 - resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} 10687 - engines: {node: '>= 14'} 10688 - 10689 - pac-resolver@7.0.1: 10690 - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} 10691 - engines: {node: '>= 14'} 10692 10607 10693 10608 package-json-from-dist@1.0.1: 10694 10609 resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} ··· 11253 11168 resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 11254 11169 engines: {node: '>= 0.6.0'} 11255 11170 11256 - progress@2.0.3: 11257 - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 11258 - engines: {node: '>=0.4.0'} 11259 - 11260 11171 promise-retry@2.0.1: 11261 11172 resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} 11262 11173 engines: {node: '>=10'} ··· 11281 11192 resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 11282 11193 engines: {node: '>= 0.10'} 11283 11194 11284 - proxy-agent@6.4.0: 11285 - resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} 11286 - engines: {node: '>= 14'} 11287 - 11288 11195 proxy-from-env@1.1.0: 11289 11196 resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 11290 11197 ··· 11311 11218 resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 11312 11219 engines: {node: '>=6'} 11313 11220 11314 - puppeteer-core@22.12.1: 11315 - resolution: {integrity: sha512-XmqeDPVdC5/3nGJys1jbgeoZ02wP0WV1GBlPtr/ULRbGXJFuqgXMcKQ3eeNtFpBzGRbpeoCGWHge1ZWKWl0Exw==} 11316 - engines: {node: '>=18'} 11317 - 11318 - puppeteer@22.12.1: 11319 - resolution: {integrity: sha512-1GxY8dnEnHr1SLzdSDr0FCjM6JQfAh2E2I/EqzeF8a58DbGVk9oVjj4lFdqNoVbpgFSpAbz7VER9St7S1wDpNg==} 11320 - engines: {node: '>=18'} 11321 - deprecated: < 24.9.0 is no longer supported 11322 - hasBin: true 11323 - 11324 11221 qjobs@1.2.0: 11325 11222 resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} 11326 11223 engines: {node: '>=0.9'} ··· 11768 11665 11769 11666 semver@6.3.1: 11770 11667 resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 11771 - hasBin: true 11772 - 11773 - semver@7.6.0: 11774 - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 11775 - engines: {node: '>=10'} 11776 11668 hasBin: true 11777 11669 11778 11670 semver@7.7.1: ··· 12273 12165 resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} 12274 12166 engines: {node: '>=6'} 12275 12167 12276 - tar-fs@3.0.5: 12277 - resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} 12278 - 12279 12168 tar-stream@3.1.7: 12280 12169 resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} 12281 12170 ··· 12342 12231 12343 12232 thread-stream@3.1.0: 12344 12233 resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} 12345 - 12346 - through@2.3.8: 12347 - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 12348 12234 12349 12235 thunky@1.1.0: 12350 12236 resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} ··· 12652 12538 typescript: 12653 12539 optional: true 12654 12540 12655 - unbzip2-stream@1.4.3: 12656 - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} 12657 - 12658 12541 uncrypto@0.1.3: 12659 12542 resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} 12660 12543 ··· 12879 12762 12880 12763 url-parse@1.5.10: 12881 12764 resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} 12882 - 12883 - urlpattern-polyfill@10.0.0: 12884 - resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} 12885 12765 12886 12766 urlpattern-polyfill@10.1.0: 12887 12767 resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} ··· 13737 13617 resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} 13738 13618 engines: {node: '>= 14'} 13739 13619 13740 - zod@3.23.8: 13741 - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 13742 - 13743 13620 zod@3.25.3: 13744 13621 resolution: {integrity: sha512-VGZqnyYNrl8JpEJRZaFPqeVNIuqgXNu4cXZ5cOb6zEUO1OxKbRnWB4UdDIXMmiERWncs0yDQukssHov8JUxykQ==} 13745 13622 ··· 13780 13657 transitivePeerDependencies: 13781 13658 - chokidar 13782 13659 13783 - '@angular-devkit/build-angular@19.2.0(15a86fe5dd2abc83e2961d572f8e7511)': 13660 + '@angular-devkit/build-angular@19.2.0(696c3532ef15b073c21785e1bc79a040)': 13784 13661 dependencies: 13785 13662 '@ampproject/remapping': 2.3.0 13786 13663 '@angular-devkit/architect': 0.1902.0(chokidar@4.0.3) 13787 - '@angular-devkit/build-webpack': 0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.9)))(webpack@5.98.0(esbuild@0.25.0)) 13664 + '@angular-devkit/build-webpack': 0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.0)))(webpack@5.98.0(esbuild@0.25.0)) 13788 13665 '@angular-devkit/core': 19.2.0(chokidar@4.0.3) 13789 - '@angular/build': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/platform-server@19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))))(@angular/ssr@19.2.15(9944558d2409a9f62c85c46d55b3507e))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(less@4.2.2)(postcss@8.5.2)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0) 13790 - '@angular/compiler-cli': 19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(typescript@5.8.3) 13666 + '@angular/build': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/platform-server@19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))))(@angular/ssr@19.2.15(5c03da8199d2fcdf9ff93b70f9349edd))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(less@4.2.2)(postcss@8.5.2)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0) 13667 + '@angular/compiler-cli': 19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3) 13791 13668 '@babel/core': 7.26.9 13792 13669 '@babel/generator': 7.26.9 13793 13670 '@babel/helper-annotate-as-pure': 7.25.9 ··· 13798 13675 '@babel/preset-env': 7.26.9(@babel/core@7.26.9) 13799 13676 '@babel/runtime': 7.26.9 13800 13677 '@discoveryjs/json-ext': 0.6.3 13801 - '@ngtools/webpack': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.0)) 13802 - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 13678 + '@ngtools/webpack': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.0)) 13679 + '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)) 13803 13680 ansi-colors: 4.1.3 13804 13681 autoprefixer: 10.4.20(postcss@8.5.2) 13805 13682 babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(esbuild@0.25.0)) ··· 13836 13713 typescript: 5.8.3 13837 13714 webpack: 5.98.0(esbuild@0.25.9) 13838 13715 webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.9)) 13839 - webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.9)) 13716 + webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.0)) 13840 13717 webpack-merge: 6.0.1 13841 13718 webpack-subresource-integrity: 5.1.0(webpack@5.98.0(esbuild@0.25.9)) 13842 13719 optionalDependencies: 13843 - '@angular/platform-server': 19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))) 13844 - '@angular/ssr': 19.2.15(9944558d2409a9f62c85c46d55b3507e) 13720 + '@angular/platform-server': 19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))) 13721 + '@angular/ssr': 19.2.15(5c03da8199d2fcdf9ff93b70f9349edd) 13845 13722 esbuild: 0.25.0 13846 13723 karma: 6.4.4 13847 13724 tailwindcss: 3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)) ··· 13868 13745 - webpack-cli 13869 13746 - yaml 13870 13747 13871 - '@angular-devkit/build-angular@19.2.0(2d14940f40ec266edc773a5f5d918fb0)': 13748 + '@angular-devkit/build-angular@19.2.0(ac4ffa91faa637dff4fd6a93b49aaa4c)': 13872 13749 dependencies: 13873 13750 '@ampproject/remapping': 2.3.0 13874 13751 '@angular-devkit/architect': 0.1902.0(chokidar@4.0.3) 13875 - '@angular-devkit/build-webpack': 0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.9)))(webpack@5.98.0(esbuild@0.25.0)) 13752 + '@angular-devkit/build-webpack': 0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.0)))(webpack@5.98.0(esbuild@0.25.0)) 13876 13753 '@angular-devkit/core': 19.2.0(chokidar@4.0.3) 13877 - '@angular/build': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/platform-server@19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))))(@angular/ssr@19.2.15(5c03da8199d2fcdf9ff93b70f9349edd))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(less@4.2.2)(postcss@8.5.2)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0) 13878 - '@angular/compiler-cli': 19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3) 13754 + '@angular/build': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/platform-server@19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))))(@angular/ssr@19.2.15(9944558d2409a9f62c85c46d55b3507e))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(less@4.2.2)(postcss@8.5.2)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0) 13755 + '@angular/compiler-cli': 19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(typescript@5.8.3) 13879 13756 '@babel/core': 7.26.9 13880 13757 '@babel/generator': 7.26.9 13881 13758 '@babel/helper-annotate-as-pure': 7.25.9 ··· 13886 13763 '@babel/preset-env': 7.26.9(@babel/core@7.26.9) 13887 13764 '@babel/runtime': 7.26.9 13888 13765 '@discoveryjs/json-ext': 0.6.3 13889 - '@ngtools/webpack': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.0)) 13890 - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)) 13766 + '@ngtools/webpack': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.0)) 13767 + '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 13891 13768 ansi-colors: 4.1.3 13892 13769 autoprefixer: 10.4.20(postcss@8.5.2) 13893 13770 babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(esbuild@0.25.0)) ··· 13924 13801 typescript: 5.8.3 13925 13802 webpack: 5.98.0(esbuild@0.25.9) 13926 13803 webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.9)) 13927 - webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.9)) 13804 + webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.0)) 13928 13805 webpack-merge: 6.0.1 13929 13806 webpack-subresource-integrity: 5.1.0(webpack@5.98.0(esbuild@0.25.9)) 13930 13807 optionalDependencies: 13931 - '@angular/platform-server': 19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))) 13932 - '@angular/ssr': 19.2.15(5c03da8199d2fcdf9ff93b70f9349edd) 13808 + '@angular/platform-server': 19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.1))) 13809 + '@angular/ssr': 19.2.15(9944558d2409a9f62c85c46d55b3507e) 13933 13810 esbuild: 0.25.0 13934 13811 karma: 6.4.4 13935 13812 tailwindcss: 3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)) ··· 13956 13833 - webpack-cli 13957 13834 - yaml 13958 13835 13959 - '@angular-devkit/build-angular@19.2.0(c051f58b50ee906cd14109939270cbce)': 13836 + '@angular-devkit/build-angular@19.2.0(b57b04a4dfd0d7238fcb437f41884422)': 13960 13837 dependencies: 13961 13838 '@ampproject/remapping': 2.3.0 13962 13839 '@angular-devkit/architect': 0.1902.0(chokidar@4.0.3) 13963 - '@angular-devkit/build-webpack': 0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.9)))(webpack@5.98.0(esbuild@0.25.0)) 13840 + '@angular-devkit/build-webpack': 0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.0)))(webpack@5.98.0(esbuild@0.25.0)) 13964 13841 '@angular-devkit/core': 19.2.0(chokidar@4.0.3) 13965 13842 '@angular/build': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/platform-server@19.2.0(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.0(@angular/animations@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1))))(@angular/ssr@19.2.15(5c03da8199d2fcdf9ff93b70f9349edd))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(less@4.2.2)(postcss@8.5.2)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0) 13966 13843 '@angular/compiler-cli': 19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3) ··· 13975 13852 '@babel/runtime': 7.26.9 13976 13853 '@discoveryjs/json-ext': 0.6.3 13977 13854 '@ngtools/webpack': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.2)(zone.js@0.15.1)))(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.0)) 13978 - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 13855 + '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 13979 13856 ansi-colors: 4.1.3 13980 13857 autoprefixer: 10.4.20(postcss@8.5.2) 13981 13858 babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(esbuild@0.25.0)) ··· 14012 13889 typescript: 5.8.3 14013 13890 webpack: 5.98.0(esbuild@0.25.9) 14014 13891 webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.9)) 14015 - webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.9)) 13892 + webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.0)) 14016 13893 webpack-merge: 6.0.1 14017 13894 webpack-subresource-integrity: 5.1.0(webpack@5.98.0(esbuild@0.25.9)) 14018 13895 optionalDependencies: ··· 14044 13921 - webpack-cli 14045 13922 - yaml 14046 13923 14047 - '@angular-devkit/build-angular@19.2.15(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.8.3))(@angular/compiler@19.2.14)(@angular/platform-server@19.2.0(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.14)(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.14(@angular/animations@19.2.14(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))))(@angular/ssr@19.2.15(fc183c600d5538ac11e1814ee07b5dfc))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(yaml@2.8.0)': 13924 + '@angular-devkit/build-angular@19.2.15(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.8.3))(@angular/compiler@19.2.14)(@angular/platform-server@19.2.0(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@19.2.14)(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.14(@angular/animations@19.2.14(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.14(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.14(rxjs@7.8.2)(zone.js@0.15.1))))(@angular/ssr@19.2.15(fc183c600d5538ac11e1814ee07b5dfc))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.5.1)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(yaml@2.8.0)': 14048 13925 dependencies: 14049 13926 '@ampproject/remapping': 2.3.0 14050 13927 '@angular-devkit/architect': 0.1902.15(chokidar@4.0.3) ··· 14063 13940 '@babel/runtime': 7.26.10 14064 13941 '@discoveryjs/json-ext': 0.6.3 14065 13942 '@ngtools/webpack': 19.2.15(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.9)) 14066 - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)) 13943 + '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)) 14067 13944 ansi-colors: 4.1.3 14068 13945 autoprefixer: 10.4.20(postcss@8.5.2) 14069 13946 babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.9)) ··· 14132 14009 - webpack-cli 14133 14010 - yaml 14134 14011 14135 - '@angular-devkit/build-webpack@0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.9)))(webpack@5.98.0(esbuild@0.25.0))': 14012 + '@angular-devkit/build-webpack@0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.0)))(webpack@5.98.0(esbuild@0.25.0))': 14136 14013 dependencies: 14137 14014 '@angular-devkit/architect': 0.1902.0(chokidar@4.0.3) 14138 14015 rxjs: 7.8.1 14139 14016 webpack: 5.98.0(esbuild@0.25.9) 14140 - webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.9)) 14017 + webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.0)) 14141 14018 transitivePeerDependencies: 14142 14019 - chokidar 14143 14020 ··· 17633 17510 17634 17511 '@nuxt/devalue@2.0.2': {} 17635 17512 17636 - '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1))': 17637 - dependencies: 17638 - '@nuxt/kit': 3.15.4(magicast@0.3.5) 17639 - '@nuxt/schema': 3.16.2 17640 - execa: 7.2.0 17641 - vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1) 17642 - transitivePeerDependencies: 17643 - - magicast 17644 - - supports-color 17645 - 17646 - '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))': 17647 - dependencies: 17648 - '@nuxt/kit': 3.15.4(magicast@0.3.5) 17649 - '@nuxt/schema': 3.16.2 17650 - execa: 7.2.0 17651 - vite: 6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 17652 - transitivePeerDependencies: 17653 - - magicast 17654 - - supports-color 17655 - 17656 17513 '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))': 17657 17514 dependencies: 17658 17515 '@nuxt/kit': 3.15.4(magicast@0.3.5) ··· 17709 17566 semver: 7.7.2 17710 17567 simple-git: 3.28.0 17711 17568 sirv: 3.0.1 17712 - tinyglobby: 0.2.10 17569 + tinyglobby: 0.2.14 17713 17570 unimport: 3.14.6(rollup@3.29.5) 17714 17571 vite: 7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 17715 17572 vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@3.29.5)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) ··· 17723 17580 - utf-8-validate 17724 17581 - vue 17725 17582 17726 - '@nuxt/devtools@1.7.0(rollup@4.49.0)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1))(vue@3.5.13(typescript@5.8.3))': 17583 + '@nuxt/devtools@1.7.0(rollup@4.49.0)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3))': 17727 17584 dependencies: 17728 17585 '@antfu/utils': 0.7.10 17729 - '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)) 17586 + '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 17730 17587 '@nuxt/devtools-wizard': 1.7.0 17731 17588 '@nuxt/kit': 3.15.4(magicast@0.3.5) 17732 - '@vue/devtools-core': 7.6.8(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1))(vue@3.5.13(typescript@5.8.3)) 17589 + '@vue/devtools-core': 7.6.8(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)) 17733 17590 '@vue/devtools-kit': 7.6.8 17734 17591 birpc: 0.2.19 17735 17592 consola: 3.4.2 ··· 17756 17613 semver: 7.7.2 17757 17614 simple-git: 3.28.0 17758 17615 sirv: 3.0.1 17759 - tinyglobby: 0.2.10 17616 + tinyglobby: 0.2.14 17760 17617 unimport: 3.14.6(rollup@4.49.0) 17761 - vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1) 17762 - vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.49.0)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)) 17763 - vite-plugin-vue-inspector: 5.3.2(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)) 17764 - which: 3.0.1 17765 - ws: 8.18.3 17766 - transitivePeerDependencies: 17767 - - bufferutil 17768 - - rollup 17769 - - supports-color 17770 - - utf-8-validate 17771 - - vue 17772 - 17773 - '@nuxt/devtools@1.7.0(rollup@4.49.0)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3))': 17774 - dependencies: 17775 - '@antfu/utils': 0.7.10 17776 - '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 17777 - '@nuxt/devtools-wizard': 1.7.0 17778 - '@nuxt/kit': 3.15.4(magicast@0.3.5) 17779 - '@vue/devtools-core': 7.6.8(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)) 17780 - '@vue/devtools-kit': 7.6.8 17781 - birpc: 0.2.19 17782 - consola: 3.4.2 17783 - cronstrue: 2.59.0 17784 - destr: 2.0.5 17785 - error-stack-parser-es: 0.1.5 17786 - execa: 7.2.0 17787 - fast-npm-meta: 0.2.2 17788 - flatted: 3.3.3 17789 - get-port-please: 3.2.0 17790 - hookable: 5.5.3 17791 - image-meta: 0.2.1 17792 - is-installed-globally: 1.0.0 17793 - launch-editor: 2.11.1 17794 - local-pkg: 0.5.1 17795 - magicast: 0.3.5 17796 - nypm: 0.4.1 17797 - ohash: 1.1.6 17798 - pathe: 1.1.2 17799 - perfect-debounce: 1.0.0 17800 - pkg-types: 1.3.1 17801 - rc9: 2.1.2 17802 - scule: 1.3.0 17803 - semver: 7.7.2 17804 - simple-git: 3.28.0 17805 - sirv: 3.0.1 17806 - tinyglobby: 0.2.10 17807 - unimport: 3.14.6(rollup@4.49.0) 17808 - vite: 6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 17809 - vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.49.0)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 17810 - vite-plugin-vue-inspector: 5.3.2(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 17618 + vite: 7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 17619 + vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.49.0)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 17620 + vite-plugin-vue-inspector: 5.3.2(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 17811 17621 which: 3.0.1 17812 17622 ws: 8.18.3 17813 17623 transitivePeerDependencies: ··· 17850 17660 semver: 7.7.2 17851 17661 simple-git: 3.28.0 17852 17662 sirv: 3.0.1 17853 - tinyglobby: 0.2.10 17663 + tinyglobby: 0.2.14 17854 17664 unimport: 3.14.6(rollup@4.49.0) 17855 17665 vite: 7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 17856 17666 vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.49.0)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) ··· 18373 18183 supports-color: 10.2.0 18374 18184 18375 18185 '@poppinss/exception@1.2.2': {} 18376 - 18377 - '@puppeteer/browsers@2.2.3': 18378 - dependencies: 18379 - debug: 4.3.4 18380 - extract-zip: 2.0.1 18381 - progress: 2.0.3 18382 - proxy-agent: 6.4.0 18383 - semver: 7.6.0 18384 - tar-fs: 3.0.5 18385 - unbzip2-stream: 1.4.3 18386 - yargs: 17.7.2 18387 - transitivePeerDependencies: 18388 - - bare-buffer 18389 - - supports-color 18390 18186 18391 18187 '@radix-ui/colors@3.0.0': {} 18392 18188 ··· 19610 19406 vue: 3.5.13(typescript@5.8.3) 19611 19407 vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.3)) 19612 19408 19613 - '@tootallnate/quickjs-emscripten@0.23.0': {} 19614 - 19615 19409 '@tsconfig/node10@1.0.11': {} 19616 19410 19617 19411 '@tsconfig/node12@1.0.11': {} ··· 20108 19902 dependencies: 20109 19903 '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13) 20110 19904 '@rollup/pluginutils': 5.2.0(rollup@4.49.0) 20111 - acorn: 8.14.0 20112 - acorn-import-attributes: 1.9.5(acorn@8.14.0) 19905 + acorn: 8.15.0 19906 + acorn-import-attributes: 1.9.5(acorn@8.15.0) 20113 19907 async-sema: 3.1.1 20114 19908 bindings: 1.5.0 20115 19909 estree-walker: 2.0.2 ··· 20131 19925 dependencies: 20132 19926 vite: 6.2.7(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0) 20133 19927 20134 - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))': 19928 + '@vitejs/plugin-basic-ssl@1.2.0(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))': 20135 19929 dependencies: 20136 - vite: 6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0) 19930 + vite: 7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0) 20137 19931 20138 - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))': 19932 + '@vitejs/plugin-basic-ssl@1.2.0(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))': 20139 19933 dependencies: 20140 - vite: 6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 19934 + vite: 7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 20141 19935 20142 19936 '@vitejs/plugin-react@4.4.0-beta.1(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))': 20143 19937 dependencies: ··· 20435 20229 dependencies: 20436 20230 '@vue/devtools-kit': 8.0.1 20437 20231 20438 - '@vue/devtools-core@7.6.8(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1))(vue@3.5.13(typescript@5.8.3))': 20439 - dependencies: 20440 - '@vue/devtools-kit': 7.6.8 20441 - '@vue/devtools-shared': 7.7.7 20442 - mitt: 3.0.1 20443 - nanoid: 5.1.5 20444 - pathe: 1.1.2 20445 - vite-hot-client: 0.2.4(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)) 20446 - vue: 3.5.13(typescript@5.8.3) 20447 - transitivePeerDependencies: 20448 - - vite 20449 - 20450 - '@vue/devtools-core@7.6.8(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3))': 20451 - dependencies: 20452 - '@vue/devtools-kit': 7.6.8 20453 - '@vue/devtools-shared': 7.7.7 20454 - mitt: 3.0.1 20455 - nanoid: 5.1.5 20456 - pathe: 1.1.2 20457 - vite-hot-client: 0.2.4(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)) 20458 - vue: 3.5.13(typescript@5.8.3) 20459 - transitivePeerDependencies: 20460 - - vite 20461 - 20462 20232 '@vue/devtools-core@7.6.8(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3))': 20463 20233 dependencies: 20464 - '@vue/devtools-kit': 7.6.8 20234 + '@vue/devtools-kit': 7.7.7 20465 20235 '@vue/devtools-shared': 7.7.7 20466 20236 mitt: 3.0.1 20467 20237 nanoid: 5.1.5 ··· 20473 20243 20474 20244 '@vue/devtools-core@7.6.8(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.9.2))': 20475 20245 dependencies: 20476 - '@vue/devtools-kit': 7.6.8 20246 + '@vue/devtools-kit': 7.7.7 20477 20247 '@vue/devtools-shared': 7.7.7 20478 20248 mitt: 3.0.1 20479 20249 nanoid: 5.1.5 ··· 20779 20549 mime-types: 2.1.35 20780 20550 negotiator: 0.6.3 20781 20551 20782 - acorn-import-attributes@1.9.5(acorn@8.14.0): 20552 + acorn-import-attributes@1.9.5(acorn@8.15.0): 20783 20553 dependencies: 20784 - acorn: 8.14.0 20554 + acorn: 8.15.0 20785 20555 20786 20556 acorn-jsx@5.3.2(acorn@7.4.1): 20787 20557 dependencies: ··· 20991 20761 ast-module-types@6.0.1: {} 20992 20762 20993 20763 ast-types-flow@0.0.8: {} 20994 - 20995 - ast-types@0.13.4: 20996 - dependencies: 20997 - tslib: 2.8.1 20998 20764 20999 20765 ast-walker-scope@0.6.2: 21000 20766 dependencies: ··· 21151 20917 bare-events@2.6.1: 21152 20918 optional: true 21153 20919 21154 - bare-fs@2.3.5: 21155 - dependencies: 21156 - bare-events: 2.6.1 21157 - bare-path: 2.1.3 21158 - bare-stream: 2.7.0(bare-events@2.6.1) 21159 - transitivePeerDependencies: 21160 - - bare-buffer 21161 - optional: true 21162 - 21163 - bare-os@2.4.4: 21164 - optional: true 21165 - 21166 - bare-path@2.1.3: 21167 - dependencies: 21168 - bare-os: 2.4.4 21169 - optional: true 21170 - 21171 - bare-stream@2.7.0(bare-events@2.6.1): 21172 - dependencies: 21173 - streamx: 2.22.1 21174 - optionalDependencies: 21175 - bare-events: 2.6.1 21176 - optional: true 21177 - 21178 20920 base64-js@1.5.1: {} 21179 20921 21180 20922 base64id@2.0.0: {} 21181 - 21182 - basic-ftp@5.0.5: {} 21183 20923 21184 20924 batch@0.6.1: {} 21185 20925 ··· 21448 21188 chownr@3.0.0: {} 21449 21189 21450 21190 chrome-trace-event@1.0.4: {} 21451 - 21452 - chromium-bidi@0.5.24(devtools-protocol@0.0.1299070): 21453 - dependencies: 21454 - devtools-protocol: 0.0.1299070 21455 - mitt: 3.0.1 21456 - urlpattern-polyfill: 10.0.0 21457 - zod: 3.23.8 21458 21191 21459 21192 ci-info@3.9.0: {} 21460 21193 ··· 21851 21584 21852 21585 data-uri-to-buffer@4.0.1: {} 21853 21586 21854 - data-uri-to-buffer@6.0.2: {} 21855 - 21856 21587 data-urls@5.0.0: 21857 21588 dependencies: 21858 21589 whatwg-mimetype: 4.0.0 ··· 21949 21680 21950 21681 defu@6.1.4: {} 21951 21682 21952 - degenerator@5.0.1: 21953 - dependencies: 21954 - ast-types: 0.13.4 21955 - escodegen: 2.1.0 21956 - esprima: 4.0.1 21957 - 21958 21683 delayed-stream@1.0.0: {} 21959 21684 21960 21685 denque@2.1.0: {} ··· 22040 21765 devlop@1.1.0: 22041 21766 dependencies: 22042 21767 dequal: 2.0.3 22043 - 22044 - devtools-protocol@0.0.1299070: {} 22045 21768 22046 21769 di@0.0.1: {} 22047 21770 ··· 22535 22258 '@typescript-eslint/parser': 8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3) 22536 22259 eslint: 9.17.0(jiti@2.5.1) 22537 22260 eslint-import-resolver-node: 0.3.9 22538 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.17.0(jiti@2.5.1)) 22539 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.17.0(jiti@2.5.1)) 22261 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)) 22262 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)) 22540 22263 eslint-plugin-jsx-a11y: 6.10.2(eslint@9.17.0(jiti@2.5.1)) 22541 22264 eslint-plugin-react: 7.37.5(eslint@9.17.0(jiti@2.5.1)) 22542 22265 eslint-plugin-react-hooks: 5.2.0(eslint@9.17.0(jiti@2.5.1)) ··· 22559 22282 transitivePeerDependencies: 22560 22283 - supports-color 22561 22284 22562 - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.17.0(jiti@2.5.1)): 22285 + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)): 22563 22286 dependencies: 22564 22287 '@nolyfill/is-core-module': 1.0.39 22565 22288 debug: 4.4.1 ··· 22570 22293 tinyglobby: 0.2.14 22571 22294 unrs-resolver: 1.11.1 22572 22295 optionalDependencies: 22573 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.17.0(jiti@2.5.1)) 22296 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)) 22574 22297 transitivePeerDependencies: 22575 22298 - supports-color 22576 22299 22577 - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.17.0(jiti@2.5.1)): 22300 + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)): 22578 22301 dependencies: 22579 22302 debug: 3.2.7 22580 22303 optionalDependencies: 22581 22304 '@typescript-eslint/parser': 8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3) 22582 22305 eslint: 9.17.0(jiti@2.5.1) 22583 22306 eslint-import-resolver-node: 0.3.9 22584 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.17.0(jiti@2.5.1)) 22307 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)) 22585 22308 transitivePeerDependencies: 22586 22309 - supports-color 22587 22310 22588 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.17.0(jiti@2.5.1)): 22311 + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)): 22589 22312 dependencies: 22590 22313 '@rtsao/scc': 1.1.0 22591 22314 array-includes: 3.1.9 ··· 22596 22319 doctrine: 2.1.0 22597 22320 eslint: 9.17.0(jiti@2.5.1) 22598 22321 eslint-import-resolver-node: 0.3.9 22599 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.17.0(jiti@2.5.1)) 22322 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.29.1(eslint@9.17.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)))(eslint@9.17.0(jiti@2.5.1)) 22600 22323 hasown: 2.0.2 22601 22324 is-core-module: 2.16.1 22602 22325 is-glob: 4.0.3 ··· 23329 23052 get-tsconfig@4.10.1: 23330 23053 dependencies: 23331 23054 resolve-pkg-maps: 1.0.0 23332 - 23333 - get-uri@6.0.5: 23334 - dependencies: 23335 - basic-ftp: 5.0.5 23336 - data-uri-to-buffer: 6.0.2 23337 - debug: 4.3.4 23338 - transitivePeerDependencies: 23339 - - supports-color 23340 23055 23341 23056 giget@1.2.5: 23342 23057 dependencies: ··· 24526 24241 dependencies: 24527 24242 yallist: 3.1.1 24528 24243 24529 - lru-cache@6.0.0: 24530 - dependencies: 24531 - yallist: 4.0.0 24532 - 24533 - lru-cache@7.18.3: {} 24534 - 24535 24244 luxon@3.7.1: {} 24536 24245 24537 24246 magic-regexp@0.8.0: ··· 25082 24791 p-wait-for: 5.0.2 25083 24792 qs: 6.14.0 25084 24793 25085 - netmask@2.0.2: {} 25086 - 25087 24794 next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.0): 25088 24795 dependencies: 25089 24796 '@next/env': 15.2.4 ··· 25486 25193 - vue-tsc 25487 25194 - xml2js 25488 25195 25489 - nuxt@3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.2)(encoding@0.1.13)(eslint@9.17.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.49.0)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)): 25196 + nuxt@3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.2)(encoding@0.1.13)(eslint@9.17.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.49.0)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)): 25490 25197 dependencies: 25491 25198 '@nuxt/devalue': 2.0.2 25492 - '@nuxt/devtools': 1.7.0(rollup@4.49.0)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1))(vue@3.5.13(typescript@5.8.3)) 25493 - '@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.49.0) 25494 - '@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.49.0) 25495 - '@nuxt/telemetry': 2.6.6(magicast@0.3.5) 25496 - '@nuxt/vite-builder': 3.14.1592(@types/node@22.10.5)(eslint@9.17.0(jiti@2.5.1))(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.49.0)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)) 25497 - '@unhead/dom': 1.11.20 25498 - '@unhead/shared': 1.11.20 25499 - '@unhead/ssr': 1.11.20 25500 - '@unhead/vue': 1.11.20(vue@3.5.13(typescript@5.8.3)) 25501 - '@vue/shared': 3.5.20 25502 - acorn: 8.14.0 25503 - c12: 2.0.1(magicast@0.3.5) 25504 - chokidar: 4.0.3 25505 - compatx: 0.1.8 25506 - consola: 3.4.2 25507 - cookie-es: 1.2.2 25508 - defu: 6.1.4 25509 - destr: 2.0.5 25510 - devalue: 5.3.2 25511 - errx: 0.1.0 25512 - esbuild: 0.24.2 25513 - escape-string-regexp: 5.0.0 25514 - estree-walker: 3.0.3 25515 - globby: 14.1.0 25516 - h3: 1.15.4 25517 - hookable: 5.5.3 25518 - ignore: 6.0.2 25519 - impound: 0.2.2(rollup@4.49.0) 25520 - jiti: 2.5.1 25521 - klona: 2.0.6 25522 - knitwork: 1.2.0 25523 - magic-string: 0.30.18 25524 - mlly: 1.7.4 25525 - nanotar: 0.1.1 25526 - nitropack: 2.12.4(@netlify/blobs@9.1.2)(encoding@0.1.13) 25527 - nuxi: 3.28.0 25528 - nypm: 0.3.12 25529 - ofetch: 1.4.1 25530 - ohash: 1.1.6 25531 - pathe: 1.1.2 25532 - perfect-debounce: 1.0.0 25533 - pkg-types: 1.3.1 25534 - radix3: 1.1.2 25535 - scule: 1.3.0 25536 - semver: 7.7.2 25537 - std-env: 3.9.0 25538 - strip-literal: 2.1.1 25539 - tinyglobby: 0.2.10 25540 - ufo: 1.6.1 25541 - ultrahtml: 1.6.0 25542 - uncrypto: 0.1.3 25543 - unctx: 2.4.1 25544 - unenv: 1.10.0 25545 - unhead: 1.11.20 25546 - unimport: 3.14.6(rollup@4.49.0) 25547 - unplugin: 1.16.1 25548 - unplugin-vue-router: 0.10.9(rollup@4.49.0)(vue-router@4.5.0(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) 25549 - unstorage: 1.17.0(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.7.0) 25550 - untyped: 1.5.2 25551 - vue: 3.5.13(typescript@5.8.3) 25552 - vue-bundle-renderer: 2.1.2 25553 - vue-devtools-stub: 0.1.0 25554 - vue-router: 4.5.0(vue@3.5.13(typescript@5.8.3)) 25555 - optionalDependencies: 25556 - '@parcel/watcher': 2.5.1 25557 - '@types/node': 22.10.5 25558 - transitivePeerDependencies: 25559 - - '@azure/app-configuration' 25560 - - '@azure/cosmos' 25561 - - '@azure/data-tables' 25562 - - '@azure/identity' 25563 - - '@azure/keyvault-secrets' 25564 - - '@azure/storage-blob' 25565 - - '@biomejs/biome' 25566 - - '@capacitor/preferences' 25567 - - '@deno/kv' 25568 - - '@electric-sql/pglite' 25569 - - '@libsql/client' 25570 - - '@netlify/blobs' 25571 - - '@planetscale/database' 25572 - - '@upstash/redis' 25573 - - '@vercel/blob' 25574 - - '@vercel/functions' 25575 - - '@vercel/kv' 25576 - - aws4fetch 25577 - - better-sqlite3 25578 - - bufferutil 25579 - - db0 25580 - - drizzle-orm 25581 - - encoding 25582 - - eslint 25583 - - idb-keyval 25584 - - ioredis 25585 - - less 25586 - - lightningcss 25587 - - magicast 25588 - - meow 25589 - - mysql2 25590 - - optionator 25591 - - rolldown 25592 - - rollup 25593 - - sass 25594 - - sass-embedded 25595 - - sqlite3 25596 - - stylelint 25597 - - stylus 25598 - - sugarss 25599 - - supports-color 25600 - - terser 25601 - - typescript 25602 - - uploadthing 25603 - - utf-8-validate 25604 - - vite 25605 - - vls 25606 - - vti 25607 - - vue-tsc 25608 - - xml2js 25609 - 25610 - nuxt@3.14.1592(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.2)(encoding@0.1.13)(eslint@9.17.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.49.0)(sass@1.85.0)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)): 25611 - dependencies: 25612 - '@nuxt/devalue': 2.0.2 25613 - '@nuxt/devtools': 1.7.0(rollup@4.49.0)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)) 25199 + '@nuxt/devtools': 1.7.0(rollup@4.49.0)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)) 25614 25200 '@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.49.0) 25615 25201 '@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.49.0) 25616 25202 '@nuxt/telemetry': 2.6.6(magicast@0.3.5) ··· 26091 25677 dependencies: 26092 25678 p-timeout: 6.1.4 26093 25679 26094 - pac-proxy-agent@7.2.0: 26095 - dependencies: 26096 - '@tootallnate/quickjs-emscripten': 0.23.0 26097 - agent-base: 7.1.4 26098 - debug: 4.3.4 26099 - get-uri: 6.0.5 26100 - http-proxy-agent: 7.0.2 26101 - https-proxy-agent: 7.0.6 26102 - pac-resolver: 7.0.1 26103 - socks-proxy-agent: 8.0.5 26104 - transitivePeerDependencies: 26105 - - supports-color 26106 - 26107 - pac-resolver@7.0.1: 26108 - dependencies: 26109 - degenerator: 5.0.1 26110 - netmask: 2.0.2 26111 - 26112 25680 package-json-from-dist@1.0.1: {} 26113 25681 26114 25682 package-manager-detector@0.2.11: ··· 26635 26203 26636 26204 process@0.11.10: {} 26637 26205 26638 - progress@2.0.3: {} 26639 - 26640 26206 promise-retry@2.0.1: 26641 26207 dependencies: 26642 26208 err-code: 2.0.3 ··· 26664 26230 forwarded: 0.2.0 26665 26231 ipaddr.js: 1.9.1 26666 26232 26667 - proxy-agent@6.4.0: 26668 - dependencies: 26669 - agent-base: 7.1.4 26670 - debug: 4.3.4 26671 - http-proxy-agent: 7.0.2 26672 - https-proxy-agent: 7.0.6 26673 - lru-cache: 7.18.3 26674 - pac-proxy-agent: 7.2.0 26675 - proxy-from-env: 1.1.0 26676 - socks-proxy-agent: 8.0.5 26677 - transitivePeerDependencies: 26678 - - supports-color 26679 - 26680 26233 proxy-from-env@1.1.0: {} 26681 26234 26682 26235 prr@1.0.1: ··· 26699 26252 26700 26253 punycode@2.3.1: {} 26701 26254 26702 - puppeteer-core@22.12.1: 26703 - dependencies: 26704 - '@puppeteer/browsers': 2.2.3 26705 - chromium-bidi: 0.5.24(devtools-protocol@0.0.1299070) 26706 - debug: 4.4.1 26707 - devtools-protocol: 0.0.1299070 26708 - ws: 8.18.3 26709 - transitivePeerDependencies: 26710 - - bare-buffer 26711 - - bufferutil 26712 - - supports-color 26713 - - utf-8-validate 26714 - 26715 - puppeteer@22.12.1(typescript@5.8.3): 26716 - dependencies: 26717 - '@puppeteer/browsers': 2.2.3 26718 - cosmiconfig: 9.0.0(typescript@5.8.3) 26719 - devtools-protocol: 0.0.1299070 26720 - puppeteer-core: 22.12.1 26721 - transitivePeerDependencies: 26722 - - bare-buffer 26723 - - bufferutil 26724 - - supports-color 26725 - - typescript 26726 - - utf-8-validate 26727 - 26728 26255 qjobs@1.2.0: {} 26729 26256 26730 26257 qs@6.13.0: ··· 27255 26782 optional: true 27256 26783 27257 26784 semver@6.3.1: {} 27258 - 27259 - semver@7.6.0: 27260 - dependencies: 27261 - lru-cache: 6.0.0 27262 26785 27263 26786 semver@7.7.1: {} 27264 26787 ··· 27932 27455 27933 27456 tapable@2.2.3: {} 27934 27457 27935 - tar-fs@3.0.5: 27936 - dependencies: 27937 - pump: 3.0.3 27938 - tar-stream: 3.1.7 27939 - optionalDependencies: 27940 - bare-fs: 2.3.5 27941 - bare-path: 2.1.3 27942 - transitivePeerDependencies: 27943 - - bare-buffer 27944 - 27945 27458 tar-stream@3.1.7: 27946 27459 dependencies: 27947 27460 b4a: 1.6.7 ··· 27968 27481 27969 27482 term-size@2.2.1: {} 27970 27483 27971 - terser-webpack-plugin@5.3.14(esbuild@0.25.0)(webpack@5.98.0(esbuild@0.25.9)): 27484 + terser-webpack-plugin@5.3.14(esbuild@0.25.4)(webpack@5.98.0(esbuild@0.25.9)): 27972 27485 dependencies: 27973 27486 '@jridgewell/trace-mapping': 0.3.30 27974 27487 jest-worker: 27.5.1 ··· 27977 27490 terser: 5.39.0 27978 27491 webpack: 5.98.0(esbuild@0.25.9) 27979 27492 optionalDependencies: 27980 - esbuild: 0.25.0 27493 + esbuild: 0.25.4 27981 27494 27982 - terser-webpack-plugin@5.3.14(esbuild@0.25.4)(webpack@5.98.0(esbuild@0.25.9)): 27495 + terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.98.0(esbuild@0.25.0)): 27983 27496 dependencies: 27984 27497 '@jridgewell/trace-mapping': 0.3.30 27985 27498 jest-worker: 27.5.1 ··· 27988 27501 terser: 5.39.0 27989 27502 webpack: 5.98.0(esbuild@0.25.9) 27990 27503 optionalDependencies: 27991 - esbuild: 0.25.4 27504 + esbuild: 0.25.9 27992 27505 27993 27506 terser@5.39.0: 27994 27507 dependencies: ··· 28031 27544 thread-stream@3.1.0: 28032 27545 dependencies: 28033 27546 real-require: 0.2.0 28034 - 28035 - through@2.3.8: {} 28036 27547 28037 27548 thunky@1.1.0: {} 28038 27549 ··· 28344 27855 - supports-color 28345 27856 - vue-tsc 28346 27857 28347 - unbzip2-stream@1.4.3: 28348 - dependencies: 28349 - buffer: 5.7.1 28350 - through: 2.3.8 28351 - 28352 27858 uncrypto@0.1.3: {} 28353 27859 28354 27860 unctx@2.4.1: ··· 28413 27919 unimport@3.14.6(rollup@3.29.5): 28414 27920 dependencies: 28415 27921 '@rollup/pluginutils': 5.2.0(rollup@3.29.5) 28416 - acorn: 8.14.0 27922 + acorn: 8.15.0 28417 27923 escape-string-regexp: 5.0.0 28418 27924 estree-walker: 3.0.3 28419 27925 fast-glob: 3.3.3 ··· 28432 27938 unimport@3.14.6(rollup@4.49.0): 28433 27939 dependencies: 28434 27940 '@rollup/pluginutils': 5.2.0(rollup@4.49.0) 28435 - acorn: 8.14.0 27941 + acorn: 8.15.0 28436 27942 escape-string-regexp: 5.0.0 28437 27943 estree-walker: 3.0.3 28438 27944 fast-glob: 3.3.3 ··· 28609 28115 28610 28116 unplugin@2.0.0-beta.1: 28611 28117 dependencies: 28612 - acorn: 8.14.0 28118 + acorn: 8.15.0 28613 28119 webpack-virtual-modules: 0.6.2 28614 28120 28615 28121 unplugin@2.3.9: ··· 28711 28217 querystringify: 2.2.0 28712 28218 requires-port: 1.0.0 28713 28219 28714 - urlpattern-polyfill@10.0.0: {} 28715 - 28716 28220 urlpattern-polyfill@10.1.0: {} 28717 28221 28718 28222 urlpattern-polyfill@8.0.2: {} ··· 28770 28274 dependencies: 28771 28275 '@types/unist': 3.0.3 28772 28276 vfile-message: 4.0.3 28773 - 28774 - vite-hot-client@0.2.4(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)): 28775 - dependencies: 28776 - vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1) 28777 - 28778 - vite-hot-client@0.2.4(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)): 28779 - dependencies: 28780 - vite: 6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 28781 28277 28782 28278 vite-hot-client@0.2.4(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)): 28783 28279 dependencies: ··· 28909 28405 - rollup 28910 28406 - supports-color 28911 28407 28912 - vite-plugin-inspect@0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.49.0)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)): 28913 - dependencies: 28914 - '@antfu/utils': 0.7.10 28915 - '@rollup/pluginutils': 5.2.0(rollup@4.49.0) 28916 - debug: 4.4.1 28917 - error-stack-parser-es: 0.1.5 28918 - fs-extra: 11.3.1 28919 - open: 10.1.2 28920 - perfect-debounce: 1.0.0 28921 - picocolors: 1.1.1 28922 - sirv: 3.0.1 28923 - vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1) 28924 - optionalDependencies: 28925 - '@nuxt/kit': 3.15.4(magicast@0.3.5) 28926 - transitivePeerDependencies: 28927 - - rollup 28928 - - supports-color 28929 - 28930 - vite-plugin-inspect@0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.49.0)(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)): 28931 - dependencies: 28932 - '@antfu/utils': 0.7.10 28933 - '@rollup/pluginutils': 5.2.0(rollup@4.49.0) 28934 - debug: 4.4.1 28935 - error-stack-parser-es: 0.1.5 28936 - fs-extra: 11.3.1 28937 - open: 10.1.2 28938 - perfect-debounce: 1.0.0 28939 - picocolors: 1.1.1 28940 - sirv: 3.0.1 28941 - vite: 6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 28942 - optionalDependencies: 28943 - '@nuxt/kit': 3.15.4(magicast@0.3.5) 28944 - transitivePeerDependencies: 28945 - - rollup 28946 - - supports-color 28947 - 28948 28408 vite-plugin-inspect@0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.49.0)(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)): 28949 28409 dependencies: 28950 28410 '@antfu/utils': 0.7.10 ··· 28979 28439 - supports-color 28980 28440 - vue 28981 28441 28982 - vite-plugin-vue-inspector@5.3.2(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)): 28983 - dependencies: 28984 - '@babel/core': 7.28.3 28985 - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.3) 28986 - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3) 28987 - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.3) 28988 - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3) 28989 - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3) 28990 - '@vue/compiler-dom': 3.5.20 28991 - kolorist: 1.8.0 28992 - magic-string: 0.30.18 28993 - vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.43.1) 28994 - transitivePeerDependencies: 28995 - - supports-color 28996 - 28997 - vite-plugin-vue-inspector@5.3.2(vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)): 28998 - dependencies: 28999 - '@babel/core': 7.28.3 29000 - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.3) 29001 - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3) 29002 - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.3) 29003 - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3) 29004 - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3) 29005 - '@vue/compiler-dom': 3.5.20 29006 - kolorist: 1.8.0 29007 - magic-string: 0.30.18 29008 - vite: 6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0) 29009 - transitivePeerDependencies: 29010 - - supports-color 29011 - 29012 28442 vite-plugin-vue-inspector@5.3.2(vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0)): 29013 28443 dependencies: 29014 28444 '@babel/core': 7.28.3 ··· 29064 28494 terser: 5.39.0 29065 28495 yaml: 2.8.0 29066 28496 29067 - vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0): 28497 + vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0): 29068 28498 dependencies: 29069 28499 esbuild: 0.25.9 29070 28500 fdir: 6.5.0(picomatch@4.0.3) ··· 29078 28508 jiti: 2.5.1 29079 28509 less: 4.2.2 29080 28510 sass: 1.85.0 29081 - terser: 5.39.0 28511 + terser: 5.43.1 29082 28512 yaml: 2.8.0 29083 28513 29084 - vite@6.3.5(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0): 28514 + vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0): 29085 28515 dependencies: 29086 28516 esbuild: 0.25.9 29087 28517 fdir: 6.5.0(picomatch@4.0.3) ··· 29095 28525 jiti: 2.5.1 29096 28526 less: 4.2.2 29097 28527 sass: 1.85.0 29098 - terser: 5.43.1 28528 + terser: 5.39.0 29099 28529 yaml: 2.8.0 29100 28530 29101 28531 vite@7.1.2(@types/node@22.10.5)(jiti@2.5.1)(less@4.2.2)(sass@1.85.0)(terser@5.43.1)(yaml@2.8.0): ··· 29442 28872 optionalDependencies: 29443 28873 webpack: 5.98.0(esbuild@0.25.9) 29444 28874 29445 - webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.9)): 28875 + webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.0)): 29446 28876 dependencies: 29447 28877 '@types/bonjour': 3.5.13 29448 28878 '@types/connect-history-api-fallback': 1.5.4 ··· 29584 29014 neo-async: 2.6.2 29585 29015 schema-utils: 4.3.2 29586 29016 tapable: 2.2.3 29587 - terser-webpack-plugin: 5.3.14(esbuild@0.25.0)(webpack@5.98.0(esbuild@0.25.9)) 29017 + terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.98.0(esbuild@0.25.0)) 29588 29018 watchpack: 2.4.4 29589 29019 webpack-sources: 3.3.3 29590 29020 transitivePeerDependencies: ··· 29830 29260 archiver-utils: 5.0.2 29831 29261 compress-commons: 6.0.2 29832 29262 readable-stream: 4.7.0 29833 - 29834 - zod@3.23.8: {} 29835 29263 29836 29264 zod@3.25.3: {} 29837 29265
+1
pnpm-workspace.yaml
··· 6 6 onlyBuiltDependencies: 7 7 - esbuild 8 8 - lmdb 9 + - msgpackr-extract 9 10 - sharp 10 11 - unrs-resolver 11 12
-4
turbo.json
··· 25 25 "cache": false, 26 26 "dependsOn": [] 27 27 }, 28 - "test:e2e": { 29 - "cache": false, 30 - "dependsOn": [] 31 - }, 32 28 "test:update": { 33 29 "cache": false, 34 30 "dependsOn": []