From 09cf16fb64b42dc2c7d5d09718832cbc1408850b Mon Sep 17 00:00:00 2001 From: Polliog Date: Sun, 8 Feb 2026 12:54:18 +0100 Subject: [PATCH 1/5] feat: simplify DSN format and make service name optional in ClientOptions --- CHANGELOG.md | 22 ++++++++++++++++ README.md | 2 +- packages/angular/README.md | 4 +-- packages/angular/src/provide.ts | 2 ++ packages/core/README.md | 4 +-- packages/core/src/client.ts | 10 ++++--- packages/core/src/dsn.ts | 9 +++---- packages/core/src/scope.ts | 7 +++++ packages/core/src/transport/logtide-http.ts | 1 - packages/core/src/transport/otlp-http.ts | 1 - packages/core/tests/dsn.test.ts | 29 ++++++++++++++------- packages/elysia/README.md | 2 +- packages/elysia/src/plugin.ts | 1 + packages/express/README.md | 2 +- packages/express/src/middleware.ts | 1 + packages/fastify/README.md | 2 +- packages/fastify/src/middleware.ts | 1 + packages/hono/README.md | 2 +- packages/hono/src/middleware.ts | 1 + packages/nextjs/README.md | 4 +-- packages/nextjs/src/client/index.ts | 1 + packages/nextjs/src/server/index.ts | 1 + packages/nuxt/README.md | 2 +- packages/nuxt/src/module.ts | 2 +- packages/nuxt/src/runtime/client-plugin.ts | 4 +-- packages/nuxt/src/runtime/server-plugin.ts | 4 +-- packages/sveltekit/README.md | 4 +-- packages/sveltekit/src/server/index.ts | 1 + packages/types/README.md | 2 +- packages/types/src/client-options.ts | 7 +++-- test-apps/mock-server/src/server.ts | 6 +---- 31 files changed, 91 insertions(+), 50 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c695236..7de2b1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.5.6] - 2026-02-08 + +### Changed + +#### DSN Simplified +- Removed redundant `projectId` from DSN format — the API key already embeds the project ID +- New DSN format: `https://lp_APIKEY@host` (legacy format with path still accepted for backward compatibility) +- Removed `projectId` field from `DSN` interface (`@logtide/types`) +- Removed `X-Project-Id` header from `LogtideHttpTransport` and `OtlpHttpTransport` (`@logtide/core`) + +#### Dynamic Service Name +- `service` in `ClientOptions` is now **optional** — each framework package defaults to its own name (`'express'`, `'fastify'`, `'hono'`, `'elysia'`, `'nextjs'`, `'sveltekit'`, `'nuxt'`, `'angular'`) +- Added `service?: string` field and `setService()` method to `Scope` — allows overriding service name per-request or per-module +- Service resolution chain: `scope.service` → `options.service` → framework default → `'unknown'` + +#### Mock Server +- Removed `X-Project-Id` from CORS headers and request tracking + +#### Documentation +- Updated DSN format examples across all package READMEs + ## [0.5.5] - 2026-02-07 ### Added @@ -77,4 +98,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Root README with package table, architecture diagram, development guide - Branch protection documentation (`.github/BRANCH_PROTECTION.md`) +[0.5.6]: https://github.com/logtide-dev/logtide-javascript/releases/tag/v0.5.6 [0.5.5]: https://github.com/logtide-dev/logtide-javascript/releases/tag/v0.5.5 diff --git a/README.md b/README.md index 1349a04..31365bc 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ npm install @logtide/elysia # Elysia ```typescript // Every integration follows the same pattern: { - dsn: 'https://lp_your_key@your-logtide-instance.com/project-id', + dsn: 'https://lp_your_key@your-logtide-instance.com', service: 'my-app', } ``` diff --git a/packages/angular/README.md b/packages/angular/README.md index 1327aae..c7777e9 100644 --- a/packages/angular/README.md +++ b/packages/angular/README.md @@ -52,7 +52,7 @@ export const appConfig: ApplicationConfig = { providers: [ provideHttpClient(withInterceptorsFromDi()), provideLogtide({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-angular-app', environment: 'production', }), @@ -72,7 +72,7 @@ import { getLogtideProviders } from '@logtide/angular'; imports: [HttpClientModule], providers: [ ...getLogtideProviders({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-angular-app', }), ], diff --git a/packages/angular/src/provide.ts b/packages/angular/src/provide.ts index 01cd2e1..78b4f4f 100644 --- a/packages/angular/src/provide.ts +++ b/packages/angular/src/provide.ts @@ -33,6 +33,7 @@ export function provideLogtide(options: ClientOptions): EnvironmentProviders { useFactory: () => { return () => { hub.init({ + service: 'angular', ...options, integrations: [ new GlobalErrorIntegration(), @@ -72,6 +73,7 @@ export function getLogtideProviders(options: ClientOptions): Provider[] { useFactory: () => { return () => { hub.init({ + service: 'angular', ...options, integrations: [ new GlobalErrorIntegration(), diff --git a/packages/core/README.md b/packages/core/README.md index dd42b75..a54d889 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -49,7 +49,7 @@ import { hub } from '@logtide/core'; // Initialize once hub.init({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-app', }); @@ -81,7 +81,7 @@ process.on('SIGTERM', () => hub.close()); import { LogtideClient } from '@logtide/core'; const client = new LogtideClient({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-app', }); diff --git a/packages/core/src/client.ts b/packages/core/src/client.ts index 3d44ebd..f5267ad 100644 --- a/packages/core/src/client.ts +++ b/packages/core/src/client.ts @@ -41,7 +41,7 @@ class DefaultTransport implements Transport { }); this.spanTransport = new BatchTransport({ - inner: new OtlpHttpTransport(dsn, options.service), + inner: new OtlpHttpTransport(dsn, options.service || 'unknown'), batchSize: options.batchSize, flushInterval: options.flushInterval, maxBufferSize: options.maxBufferSize, @@ -103,7 +103,7 @@ export class LogtideClient implements IClient { return this._isInitialized; } - get service(): string { + get service(): string | undefined { return this.options.service; } @@ -115,6 +115,10 @@ export class LogtideClient implements IClient { return this.options.release; } + private resolveService(scope?: Scope): string { + return scope?.service || this.options.service || 'unknown'; + } + // ─── Logging ─────────────────────────────────────────── captureLog( @@ -124,7 +128,7 @@ export class LogtideClient implements IClient { scope?: Scope, ): void { const entry: InternalLogEntry = { - service: this.options.service, + service: this.resolveService(scope), level: level as LogLevel, message, time: new Date().toISOString(), diff --git a/packages/core/src/dsn.ts b/packages/core/src/dsn.ts index fec484a..d236284 100644 --- a/packages/core/src/dsn.ts +++ b/packages/core/src/dsn.ts @@ -2,23 +2,20 @@ import type { DSN } from '@logtide/types'; /** * Parse a LogTide DSN string into its components. - * Format: https://lp_APIKEY@host/PROJECT_ID + * Format: https://lp_APIKEY@host + * Legacy format with path (https://lp_APIKEY@host/PROJECT_ID) is also accepted; the path is ignored. */ export function parseDSN(dsn: string): DSN { try { const url = new URL(dsn); const apiKey = url.username; - const projectId = url.pathname.replace(/^\//, ''); const apiUrl = `${url.protocol}//${url.host}`; if (!apiKey) { throw new Error('Missing API key in DSN'); } - if (!projectId) { - throw new Error('Missing project ID in DSN'); - } - return { apiUrl, apiKey, projectId }; + return { apiUrl, apiKey }; } catch (err) { if (err instanceof Error && err.message.startsWith('Missing')) { throw err; diff --git a/packages/core/src/scope.ts b/packages/core/src/scope.ts index 8fcea94..2ff5e65 100644 --- a/packages/core/src/scope.ts +++ b/packages/core/src/scope.ts @@ -5,6 +5,7 @@ import { BreadcrumbBuffer } from './breadcrumb-buffer'; export class Scope { traceId: string; spanId?: string; + service?: string; tags: Record = {}; extras: Record = {}; private breadcrumbs: BreadcrumbBuffer; @@ -15,6 +16,11 @@ export class Scope { this.breadcrumbs = new BreadcrumbBuffer(maxBreadcrumbs); } + setService(service: string): this { + this.service = service; + return this; + } + setTag(key: string, value: string): this { this.tags[key] = value; return this; @@ -51,6 +57,7 @@ export class Scope { clone(): Scope { const scope = new Scope(this.traceId); scope.spanId = this.spanId; + scope.service = this.service; scope.tags = { ...this.tags }; scope.extras = { ...this.extras }; for (const bc of this.breadcrumbs.getAll()) { diff --git a/packages/core/src/transport/logtide-http.ts b/packages/core/src/transport/logtide-http.ts index e73f435..3dcac2a 100644 --- a/packages/core/src/transport/logtide-http.ts +++ b/packages/core/src/transport/logtide-http.ts @@ -15,7 +15,6 @@ export class LogtideHttpTransport implements Transport { headers: { 'Content-Type': 'application/json', 'X-API-Key': this.dsn.apiKey, - 'X-Project-Id': this.dsn.projectId, }, body: JSON.stringify({ logs }), }); diff --git a/packages/core/src/transport/otlp-http.ts b/packages/core/src/transport/otlp-http.ts index 57e1cfa..973ee70 100644 --- a/packages/core/src/transport/otlp-http.ts +++ b/packages/core/src/transport/otlp-http.ts @@ -69,7 +69,6 @@ export class OtlpHttpTransport implements Transport { headers: { 'Content-Type': 'application/json', 'X-API-Key': this.dsn.apiKey, - 'X-Project-Id': this.dsn.projectId, }, body: JSON.stringify(payload), }); diff --git a/packages/core/tests/dsn.test.ts b/packages/core/tests/dsn.test.ts index 3b72b6a..9b52267 100644 --- a/packages/core/tests/dsn.test.ts +++ b/packages/core/tests/dsn.test.ts @@ -2,39 +2,48 @@ import { describe, it, expect } from 'vitest'; import { parseDSN } from '../src/dsn'; describe('parseDSN', () => { - it('should parse a valid DSN', () => { + it('should parse a DSN without path (new format)', () => { + const result = parseDSN('https://lp_abc123@api.logtide.dev'); + expect(result).toEqual({ + apiUrl: 'https://api.logtide.dev', + apiKey: 'lp_abc123', + }); + }); + + it('should accept legacy DSN with project ID path and ignore it', () => { const result = parseDSN('https://lp_abc123@api.logtide.dev/my-project'); expect(result).toEqual({ apiUrl: 'https://api.logtide.dev', apiKey: 'lp_abc123', - projectId: 'my-project', }); }); it('should handle DSN with port', () => { - const result = parseDSN('https://lp_key@localhost:3000/proj1'); + const result = parseDSN('https://lp_key@localhost:3000'); expect(result).toEqual({ apiUrl: 'https://localhost:3000', apiKey: 'lp_key', - projectId: 'proj1', }); }); it('should handle http scheme', () => { - const result = parseDSN('http://lp_key@localhost/project'); + const result = parseDSN('http://lp_key@localhost'); expect(result).toEqual({ apiUrl: 'http://localhost', apiKey: 'lp_key', - projectId: 'project', }); }); - it('should throw on missing API key', () => { - expect(() => parseDSN('https://api.logtide.dev/project')).toThrow('Missing API key'); + it('should handle DSN with trailing slash', () => { + const result = parseDSN('https://lp_key@api.logtide.dev/'); + expect(result).toEqual({ + apiUrl: 'https://api.logtide.dev', + apiKey: 'lp_key', + }); }); - it('should throw on missing project ID', () => { - expect(() => parseDSN('https://lp_key@api.logtide.dev/')).toThrow('Missing project ID'); + it('should throw on missing API key', () => { + expect(() => parseDSN('https://api.logtide.dev/project')).toThrow('Missing API key'); }); it('should throw on invalid DSN string', () => { diff --git a/packages/elysia/README.md b/packages/elysia/README.md index e7354cd..ad092ca 100644 --- a/packages/elysia/README.md +++ b/packages/elysia/README.md @@ -47,7 +47,7 @@ import { logtide } from '@logtide/elysia'; const app = new Elysia() .use(logtide({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-elysia-api', environment: 'production', })) diff --git a/packages/elysia/src/plugin.ts b/packages/elysia/src/plugin.ts index ae70dcb..42f6cd7 100644 --- a/packages/elysia/src/plugin.ts +++ b/packages/elysia/src/plugin.ts @@ -27,6 +27,7 @@ export interface LogtideElysiaOptions extends ClientOptions {} */ export function logtide(options: LogtideElysiaOptions) { hub.init({ + service: 'elysia', ...options, integrations: [ new ConsoleIntegration(), diff --git a/packages/express/README.md b/packages/express/README.md index 4e94457..d0d769a 100644 --- a/packages/express/README.md +++ b/packages/express/README.md @@ -48,7 +48,7 @@ import { logtide } from '@logtide/express'; const app = express(); app.use(logtide({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-express-api', environment: 'production', })); diff --git a/packages/express/src/middleware.ts b/packages/express/src/middleware.ts index e26a108..f32bfc0 100644 --- a/packages/express/src/middleware.ts +++ b/packages/express/src/middleware.ts @@ -35,6 +35,7 @@ declare global { */ export function logtide(options: LogtideExpressOptions) { hub.init({ + service: 'express', ...options, integrations: [ new ConsoleIntegration(), diff --git a/packages/fastify/README.md b/packages/fastify/README.md index 1f3a509..b82f695 100644 --- a/packages/fastify/README.md +++ b/packages/fastify/README.md @@ -48,7 +48,7 @@ import { logtide } from '@logtide/fastify'; const app = Fastify(); await app.register(logtide, { - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-fastify-api', environment: 'production', }); diff --git a/packages/fastify/src/middleware.ts b/packages/fastify/src/middleware.ts index 7f97936..97147f8 100644 --- a/packages/fastify/src/middleware.ts +++ b/packages/fastify/src/middleware.ts @@ -35,6 +35,7 @@ declare module 'fastify' { export const logtide = fp( (fastify: FastifyInstance, options: LogtideFastifyOptions, done: (err?: Error) => void) => { hub.init({ + service: 'fastify', ...options, integrations: [ new ConsoleIntegration(), diff --git a/packages/hono/README.md b/packages/hono/README.md index 52e02a8..93e2c71 100644 --- a/packages/hono/README.md +++ b/packages/hono/README.md @@ -48,7 +48,7 @@ import { logtide } from '@logtide/hono'; const app = new Hono(); app.use('*', logtide({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-hono-api', environment: 'production', })); diff --git a/packages/hono/src/middleware.ts b/packages/hono/src/middleware.ts index 6f80cae..99f88a8 100644 --- a/packages/hono/src/middleware.ts +++ b/packages/hono/src/middleware.ts @@ -26,6 +26,7 @@ export interface LogtideHonoOptions extends ClientOptions {} */ export function logtide(options: LogtideHonoOptions) { hub.init({ + service: 'hono', ...options, integrations: [ new ConsoleIntegration(), diff --git a/packages/nextjs/README.md b/packages/nextjs/README.md index 646a048..3c4131b 100644 --- a/packages/nextjs/README.md +++ b/packages/nextjs/README.md @@ -51,7 +51,7 @@ import { registerLogtide, captureRequestError } from '@logtide/nextjs/server'; export async function register() { await registerLogtide({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-nextjs-app', environment: process.env.NODE_ENV, }); @@ -72,7 +72,7 @@ import { useEffect } from 'react'; import { initLogtide, trackNavigation } from '@logtide/nextjs/client'; initLogtide({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-nextjs-app', }); diff --git a/packages/nextjs/src/client/index.ts b/packages/nextjs/src/client/index.ts index 491f9bd..0f7eaea 100644 --- a/packages/nextjs/src/client/index.ts +++ b/packages/nextjs/src/client/index.ts @@ -17,6 +17,7 @@ export { trackNavigation } from './navigation'; */ export function initLogtide(options: ClientOptions): void { hub.init({ + service: 'nextjs', ...options, integrations: [ new GlobalErrorIntegration(), diff --git a/packages/nextjs/src/server/index.ts b/packages/nextjs/src/server/index.ts index 5e0e7ff..1ff8179 100644 --- a/packages/nextjs/src/server/index.ts +++ b/packages/nextjs/src/server/index.ts @@ -21,6 +21,7 @@ export { instrumentRequest, finishRequest } from './request-handler'; */ export async function registerLogtide(options: ClientOptions): Promise { hub.init({ + service: 'nextjs', ...options, integrations: [ new ConsoleIntegration(), diff --git a/packages/nuxt/README.md b/packages/nuxt/README.md index cc69e9b..0e07148 100644 --- a/packages/nuxt/README.md +++ b/packages/nuxt/README.md @@ -49,7 +49,7 @@ export default defineNuxtConfig({ modules: ['@logtide/nuxt'], logtide: { - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-nuxt-app', environment: 'production', release: '1.0.0', diff --git a/packages/nuxt/src/module.ts b/packages/nuxt/src/module.ts index 03268bf..b54d476 100644 --- a/packages/nuxt/src/module.ts +++ b/packages/nuxt/src/module.ts @@ -11,7 +11,7 @@ export default defineNuxtModule({ }, defaults: { dsn: '', - service: 'nuxt-app', + service: 'nuxt', }, setup(options, nuxt) { if (!options.dsn) { diff --git a/packages/nuxt/src/runtime/client-plugin.ts b/packages/nuxt/src/runtime/client-plugin.ts index 102db37..7a0fce2 100644 --- a/packages/nuxt/src/runtime/client-plugin.ts +++ b/packages/nuxt/src/runtime/client-plugin.ts @@ -7,7 +7,7 @@ import { defineNuxtPlugin, useRuntimeConfig } from '#app'; export default defineNuxtPlugin((nuxtApp) => { const config = useRuntimeConfig().public.logtide as { dsn: string; - service: string; + service?: string; environment?: string; release?: string; debug?: boolean; @@ -17,7 +17,7 @@ export default defineNuxtPlugin((nuxtApp) => { hub.init({ dsn: config.dsn, - service: config.service, + service: config.service ?? 'nuxt', environment: config.environment, release: config.release, debug: config.debug, diff --git a/packages/nuxt/src/runtime/server-plugin.ts b/packages/nuxt/src/runtime/server-plugin.ts index da48d5a..5dd9e50 100644 --- a/packages/nuxt/src/runtime/server-plugin.ts +++ b/packages/nuxt/src/runtime/server-plugin.ts @@ -13,7 +13,7 @@ import { defineNitroPlugin, getRequestURL, getRequestHeaders } from 'h3'; export default defineNitroPlugin((nitroApp) => { const config = useRuntimeConfig().logtide as { dsn: string; - service: string; + service?: string; environment?: string; release?: string; debug?: boolean; @@ -23,7 +23,7 @@ export default defineNitroPlugin((nitroApp) => { hub.init({ dsn: config.dsn, - service: config.service, + service: config.service ?? 'nuxt', environment: config.environment, release: config.release, debug: config.debug, diff --git a/packages/sveltekit/README.md b/packages/sveltekit/README.md index 4640338..c60c53b 100644 --- a/packages/sveltekit/README.md +++ b/packages/sveltekit/README.md @@ -48,7 +48,7 @@ yarn add @logtide/sveltekit import { logtideHandle, logtideHandleError, logtideHandleFetch } from '@logtide/sveltekit/server'; export const handle = logtideHandle({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-sveltekit-app', environment: 'production', }); @@ -65,7 +65,7 @@ export const handleFetch = logtideHandleFetch(); import { initLogtide } from '@logtide/sveltekit/client'; initLogtide({ - dsn: 'https://lp_your_key@your-instance.com/project-id', + dsn: 'https://lp_your_key@your-instance.com', service: 'my-sveltekit-app', }); ``` diff --git a/packages/sveltekit/src/server/index.ts b/packages/sveltekit/src/server/index.ts index 1c8c79b..f8e0a08 100644 --- a/packages/sveltekit/src/server/index.ts +++ b/packages/sveltekit/src/server/index.ts @@ -48,6 +48,7 @@ interface HandleFetchInput { */ export function logtideHandle(options: ClientOptions) { hub.init({ + service: 'sveltekit', ...options, integrations: [ new ConsoleIntegration(), diff --git a/packages/types/README.md b/packages/types/README.md index edee688..92edb25 100644 --- a/packages/types/README.md +++ b/packages/types/README.md @@ -88,7 +88,7 @@ import type { ClientOptions, DSN } from '@logtide/types'; | Type | Description | |------|-------------| | `ClientOptions` | Full configuration: DSN, service, batching, retry, circuit breaker, etc. | -| `DSN` | Parsed DSN with `apiUrl`, `apiKey`, `projectId` | +| `DSN` | Parsed DSN with `apiUrl`, `apiKey` | --- diff --git a/packages/types/src/client-options.ts b/packages/types/src/client-options.ts index 6276c2e..05c028b 100644 --- a/packages/types/src/client-options.ts +++ b/packages/types/src/client-options.ts @@ -4,14 +4,13 @@ import type { Transport } from './transport'; export interface DSN { apiUrl: string; apiKey: string; - projectId: string; } export interface ClientOptions { - /** DSN string: https://lp_APIKEY@api.logtide.dev/PROJECT_ID */ + /** DSN string: https://lp_APIKEY@api.logtide.dev */ dsn: string; - /** Service name for log attribution */ - service: string; + /** Service name for log attribution (optional, defaults to framework name) */ + service?: string; /** Environment (e.g. production, staging) */ environment?: string; /** Release / version identifier */ diff --git a/test-apps/mock-server/src/server.ts b/test-apps/mock-server/src/server.ts index 969676e..aecad90 100644 --- a/test-apps/mock-server/src/server.ts +++ b/test-apps/mock-server/src/server.ts @@ -30,7 +30,6 @@ export interface MockServerState { requests: Array<{ timestamp: number; apiKey: string | null; - projectId: string | null; endpoint: string; count: number; }>; @@ -59,7 +58,7 @@ export function createMockServer() { // CORS res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); - res.setHeader('Access-Control-Allow-Headers', 'Content-Type, X-API-Key, X-Project-Id'); + res.setHeader('Access-Control-Allow-Headers', 'Content-Type, X-API-Key'); if (method === 'OPTIONS') { res.writeHead(204); @@ -69,7 +68,6 @@ export function createMockServer() { try { const apiKey = req.headers['x-api-key'] as string | undefined; - const projectId = req.headers['x-project-id'] as string | undefined; // Ingest endpoint - receives logs from SDK if (url.pathname === '/api/v1/ingest' && method === 'POST') { @@ -81,7 +79,6 @@ export function createMockServer() { state.requests.push({ timestamp: Date.now(), apiKey: apiKey ?? null, - projectId: projectId ?? null, endpoint: '/api/v1/ingest', count: logs.length, }); @@ -118,7 +115,6 @@ export function createMockServer() { state.requests.push({ timestamp: Date.now(), apiKey: apiKey ?? null, - projectId: projectId ?? null, endpoint: '/v1/otlp/traces', count: spans.length, }); From 516a48dc446720770e11fc1ccc6ce80809ef075e Mon Sep 17 00:00:00 2001 From: Polliog Date: Sun, 8 Feb 2026 13:03:10 +0100 Subject: [PATCH 2/5] feat: simplify DSN format and make service name optional in ClientOptions --- CHANGELOG.md | 2 + README.md | 7 ++++ packages/angular/README.md | 4 ++ packages/core/README.md | 6 +++ packages/core/src/client.ts | 4 +- packages/core/src/dsn.ts | 19 +++++++++- packages/core/src/index.ts | 2 +- packages/core/tests/dsn.test.ts | 56 +++++++++++++++++++++++++++- packages/elysia/README.md | 3 ++ packages/express/README.md | 3 ++ packages/fastify/README.md | 3 ++ packages/hono/README.md | 3 ++ packages/nextjs/README.md | 10 ++++- packages/nuxt/README.md | 3 ++ packages/sveltekit/README.md | 4 ++ packages/types/README.md | 2 +- packages/types/src/client-options.ts | 6 ++- 17 files changed, 128 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7de2b1c..43fb355 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 #### DSN Simplified - Removed redundant `projectId` from DSN format — the API key already embeds the project ID - New DSN format: `https://lp_APIKEY@host` (legacy format with path still accepted for backward compatibility) +- Added `apiUrl` + `apiKey` as alternative to DSN string (backward compatible with `@logtide/sdk-node` config format) +- Added `resolveDSN()` helper that accepts either `dsn` or `apiUrl` + `apiKey` - Removed `projectId` field from `DSN` interface (`@logtide/types`) - Removed `X-Project-Id` header from `LogtideHttpTransport` and `OtlpHttpTransport` (`@logtide/core`) diff --git a/README.md b/README.md index 31365bc..1a7e992 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,13 @@ npm install @logtide/elysia # Elysia dsn: 'https://lp_your_key@your-logtide-instance.com', service: 'my-app', } + +// Or use apiUrl + apiKey separately: +{ + apiUrl: 'https://your-logtide-instance.com', + apiKey: 'lp_your_key', + service: 'my-app', +} ``` See each package's README for framework-specific setup instructions. diff --git a/packages/angular/README.md b/packages/angular/README.md index c7777e9..bad6cfe 100644 --- a/packages/angular/README.md +++ b/packages/angular/README.md @@ -53,6 +53,9 @@ export const appConfig: ApplicationConfig = { provideHttpClient(withInterceptorsFromDi()), provideLogtide({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-angular-app', environment: 'production', }), @@ -73,6 +76,7 @@ import { getLogtideProviders } from '@logtide/angular'; providers: [ ...getLogtideProviders({ dsn: 'https://lp_your_key@your-instance.com', + // Or: apiUrl + apiKey instead of dsn service: 'my-angular-app', }), ], diff --git a/packages/core/README.md b/packages/core/README.md index a54d889..bad173d 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -50,6 +50,9 @@ import { hub } from '@logtide/core'; // Initialize once hub.init({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-app', }); @@ -82,6 +85,9 @@ import { LogtideClient } from '@logtide/core'; const client = new LogtideClient({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-app', }); diff --git a/packages/core/src/client.ts b/packages/core/src/client.ts index f5267ad..efe6f26 100644 --- a/packages/core/src/client.ts +++ b/packages/core/src/client.ts @@ -8,7 +8,7 @@ import type { Span, Transport, } from '@logtide/types'; -import { parseDSN } from './dsn'; +import { resolveDSN } from './dsn'; import { Scope } from './scope'; import { SpanManager, type StartSpanOptions } from './span-manager'; import { BreadcrumbBuffer } from './breadcrumb-buffer'; @@ -26,7 +26,7 @@ class DefaultTransport implements Transport { private spanTransport: BatchTransport; constructor(options: ClientOptions) { - const dsn = parseDSN(options.dsn); + const dsn = resolveDSN(options); this.logTransport = new BatchTransport({ inner: new LogtideHttpTransport(dsn), diff --git a/packages/core/src/dsn.ts b/packages/core/src/dsn.ts index d236284..430e996 100644 --- a/packages/core/src/dsn.ts +++ b/packages/core/src/dsn.ts @@ -1,4 +1,4 @@ -import type { DSN } from '@logtide/types'; +import type { ClientOptions, DSN } from '@logtide/types'; /** * Parse a LogTide DSN string into its components. @@ -23,3 +23,20 @@ export function parseDSN(dsn: string): DSN { throw new Error(`Invalid DSN: ${dsn}`); } } + +/** + * Resolve a DSN from ClientOptions. + * Accepts either a `dsn` string or separate `apiUrl` + `apiKey` fields. + */ +export function resolveDSN(options: ClientOptions): DSN { + if (options.dsn) { + return parseDSN(options.dsn); + } + if (options.apiUrl && options.apiKey) { + return { + apiUrl: options.apiUrl.replace(/\/$/, ''), + apiKey: options.apiKey, + }; + } + throw new Error('Either "dsn" or both "apiUrl" and "apiKey" must be provided'); +} diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 3232db6..ed1ce83 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -23,7 +23,7 @@ export { SpanManager, type StartSpanOptions } from './span-manager'; export { BreadcrumbBuffer } from './breadcrumb-buffer'; // DSN -export { parseDSN } from './dsn'; +export { parseDSN, resolveDSN } from './dsn'; // Transports export { LogtideHttpTransport } from './transport/logtide-http'; diff --git a/packages/core/tests/dsn.test.ts b/packages/core/tests/dsn.test.ts index 9b52267..b96c202 100644 --- a/packages/core/tests/dsn.test.ts +++ b/packages/core/tests/dsn.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest'; -import { parseDSN } from '../src/dsn'; +import { parseDSN, resolveDSN } from '../src/dsn'; describe('parseDSN', () => { it('should parse a DSN without path (new format)', () => { @@ -54,3 +54,57 @@ describe('parseDSN', () => { expect(() => parseDSN('')).toThrow('Invalid DSN'); }); }); + +describe('resolveDSN', () => { + it('should resolve from dsn string', () => { + const result = resolveDSN({ dsn: 'https://lp_key@api.logtide.dev' }); + expect(result).toEqual({ + apiUrl: 'https://api.logtide.dev', + apiKey: 'lp_key', + }); + }); + + it('should resolve from apiUrl + apiKey', () => { + const result = resolveDSN({ apiUrl: 'http://localhost:8080', apiKey: 'lp_test_key' }); + expect(result).toEqual({ + apiUrl: 'http://localhost:8080', + apiKey: 'lp_test_key', + }); + }); + + it('should strip trailing slash from apiUrl', () => { + const result = resolveDSN({ apiUrl: 'http://localhost:8080/', apiKey: 'lp_key' }); + expect(result).toEqual({ + apiUrl: 'http://localhost:8080', + apiKey: 'lp_key', + }); + }); + + it('should prefer dsn over apiUrl + apiKey when both provided', () => { + const result = resolveDSN({ + dsn: 'https://lp_dsn_key@api.logtide.dev', + apiUrl: 'http://localhost:8080', + apiKey: 'lp_other_key', + }); + expect(result).toEqual({ + apiUrl: 'https://api.logtide.dev', + apiKey: 'lp_dsn_key', + }); + }); + + it('should throw when neither dsn nor apiUrl+apiKey provided', () => { + expect(() => resolveDSN({})).toThrow('Either "dsn" or both "apiUrl" and "apiKey" must be provided'); + }); + + it('should throw when only apiUrl provided without apiKey', () => { + expect(() => resolveDSN({ apiUrl: 'http://localhost:8080' })).toThrow( + 'Either "dsn" or both "apiUrl" and "apiKey" must be provided', + ); + }); + + it('should throw when only apiKey provided without apiUrl', () => { + expect(() => resolveDSN({ apiKey: 'lp_key' })).toThrow( + 'Either "dsn" or both "apiUrl" and "apiKey" must be provided', + ); + }); +}); diff --git a/packages/elysia/README.md b/packages/elysia/README.md index ad092ca..0e45fab 100644 --- a/packages/elysia/README.md +++ b/packages/elysia/README.md @@ -48,6 +48,9 @@ import { logtide } from '@logtide/elysia'; const app = new Elysia() .use(logtide({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-elysia-api', environment: 'production', })) diff --git a/packages/express/README.md b/packages/express/README.md index d0d769a..b0ee878 100644 --- a/packages/express/README.md +++ b/packages/express/README.md @@ -49,6 +49,9 @@ const app = express(); app.use(logtide({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-express-api', environment: 'production', })); diff --git a/packages/fastify/README.md b/packages/fastify/README.md index b82f695..4dd339c 100644 --- a/packages/fastify/README.md +++ b/packages/fastify/README.md @@ -49,6 +49,9 @@ const app = Fastify(); await app.register(logtide, { dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-fastify-api', environment: 'production', }); diff --git a/packages/hono/README.md b/packages/hono/README.md index 93e2c71..b9bfc31 100644 --- a/packages/hono/README.md +++ b/packages/hono/README.md @@ -49,6 +49,9 @@ const app = new Hono(); app.use('*', logtide({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-hono-api', environment: 'production', })); diff --git a/packages/nextjs/README.md b/packages/nextjs/README.md index 3c4131b..10e7329 100644 --- a/packages/nextjs/README.md +++ b/packages/nextjs/README.md @@ -52,6 +52,9 @@ import { registerLogtide, captureRequestError } from '@logtide/nextjs/server'; export async function register() { await registerLogtide({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-nextjs-app', environment: process.env.NODE_ENV, }); @@ -73,6 +76,9 @@ import { initLogtide, trackNavigation } from '@logtide/nextjs/client'; initLogtide({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-nextjs-app', }); @@ -99,7 +105,7 @@ Initialize LogTide in Next.js `instrumentation.ts`. Automatically installs `Cons import { registerLogtide } from '@logtide/nextjs/server'; await registerLogtide({ - dsn: 'https://lp_key@host/project', + dsn: 'https://lp_key@host', service: 'my-app', environment: 'production', release: '1.0.0', @@ -156,7 +162,7 @@ Initialize LogTide on the client side. Installs `GlobalErrorIntegration` for `un import { initLogtide } from '@logtide/nextjs/client'; initLogtide({ - dsn: 'https://lp_key@host/project', + dsn: 'https://lp_key@host', service: 'my-app', }); ``` diff --git a/packages/nuxt/README.md b/packages/nuxt/README.md index 0e07148..d32ab31 100644 --- a/packages/nuxt/README.md +++ b/packages/nuxt/README.md @@ -50,6 +50,9 @@ export default defineNuxtConfig({ logtide: { dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-nuxt-app', environment: 'production', release: '1.0.0', diff --git a/packages/sveltekit/README.md b/packages/sveltekit/README.md index c60c53b..655f1e9 100644 --- a/packages/sveltekit/README.md +++ b/packages/sveltekit/README.md @@ -49,6 +49,9 @@ import { logtideHandle, logtideHandleError, logtideHandleFetch } from '@logtide/ export const handle = logtideHandle({ dsn: 'https://lp_your_key@your-instance.com', + // Or use apiUrl + apiKey instead of dsn: + // apiUrl: 'https://your-instance.com', + // apiKey: 'lp_your_key', service: 'my-sveltekit-app', environment: 'production', }); @@ -66,6 +69,7 @@ import { initLogtide } from '@logtide/sveltekit/client'; initLogtide({ dsn: 'https://lp_your_key@your-instance.com', + // Or: apiUrl + apiKey instead of dsn service: 'my-sveltekit-app', }); ``` diff --git a/packages/types/README.md b/packages/types/README.md index 92edb25..3b2a5db 100644 --- a/packages/types/README.md +++ b/packages/types/README.md @@ -87,7 +87,7 @@ import type { ClientOptions, DSN } from '@logtide/types'; | Type | Description | |------|-------------| -| `ClientOptions` | Full configuration: DSN, service, batching, retry, circuit breaker, etc. | +| `ClientOptions` | Full configuration: DSN (or `apiUrl` + `apiKey`), service, batching, retry, circuit breaker, etc. | | `DSN` | Parsed DSN with `apiUrl`, `apiKey` | --- diff --git a/packages/types/src/client-options.ts b/packages/types/src/client-options.ts index 05c028b..c14c698 100644 --- a/packages/types/src/client-options.ts +++ b/packages/types/src/client-options.ts @@ -8,7 +8,11 @@ export interface DSN { export interface ClientOptions { /** DSN string: https://lp_APIKEY@api.logtide.dev */ - dsn: string; + dsn?: string; + /** API base URL (alternative to DSN, e.g. 'http://localhost:8080') */ + apiUrl?: string; + /** API key (alternative to DSN, e.g. 'lp_your_api_key_here') */ + apiKey?: string; /** Service name for log attribution (optional, defaults to framework name) */ service?: string; /** Environment (e.g. production, staging) */ From 84f39608c762c7b4593856aeabd9b9a2761dab95 Mon Sep 17 00:00:00 2001 From: Polliog Date: Sun, 8 Feb 2026 13:03:58 +0100 Subject: [PATCH 3/5] chore: bump version to 0.5.6 for all LogTide packages --- package.json | 2 +- packages/angular/package.json | 2 +- packages/core/package.json | 2 +- packages/elysia/package.json | 2 +- packages/express/package.json | 2 +- packages/fastify/package.json | 2 +- packages/hono/package.json | 2 +- packages/nextjs/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/sveltekit/package.json | 2 +- packages/types/package.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 0d8aead..eb9c908 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "0.5.5", + "version": "0.5.6", "scripts": { "build": "pnpm -r --filter @logtide/* build", "test": "pnpm -r --filter @logtide/* test", diff --git a/packages/angular/package.json b/packages/angular/package.json index b51e1a0..3820129 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/angular", - "version": "0.5.5", + "version": "0.5.6", "description": "LogTide SDK integration for Angular — ErrorHandler, HTTP Interceptor, trace propagation", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/core/package.json b/packages/core/package.json index 1591560..06beb10 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/core", - "version": "0.5.5", + "version": "0.5.6", "description": "Core client, hub, scope, transports, and utilities for the LogTide SDK", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/elysia/package.json b/packages/elysia/package.json index bb0b149..f0c61f4 100644 --- a/packages/elysia/package.json +++ b/packages/elysia/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/elysia", - "version": "0.5.5", + "version": "0.5.6", "description": "LogTide SDK plugin for Elysia — request tracing and error capture via lifecycle hooks", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/express/package.json b/packages/express/package.json index ec36df5..814895a 100644 --- a/packages/express/package.json +++ b/packages/express/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/express", - "version": "0.5.5", + "version": "0.5.6", "description": "LogTide SDK middleware for Express — request tracing and error capture", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/fastify/package.json b/packages/fastify/package.json index 39b9ed6..4729653 100644 --- a/packages/fastify/package.json +++ b/packages/fastify/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/fastify", - "version": "0.5.5", + "version": "0.5.6", "description": "LogTide SDK plugin for Fastify — request tracing and error capture", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/hono/package.json b/packages/hono/package.json index 80ba470..d8d9318 100644 --- a/packages/hono/package.json +++ b/packages/hono/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/hono", - "version": "0.5.5", + "version": "0.5.6", "description": "LogTide SDK middleware for Hono — request tracing and error capture", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 989e60d..7e0017f 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/nextjs", - "version": "0.5.5", + "version": "0.5.6", "description": "LogTide SDK integration for Next.js — auto error capture, request tracing, and performance spans", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 018097c..1e1ef73 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/nuxt", - "version": "0.5.5", + "version": "0.5.6", "description": "LogTide SDK integration for Nuxt — auto error capture, request tracing via Nitro hooks", "type": "module", "main": "./dist/module.cjs", diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index 611eb3c..0b5dc4f 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/sveltekit", - "version": "0.5.5", + "version": "0.5.6", "description": "LogTide SDK integration for SvelteKit — handle, handleError, handleFetch hooks", "type": "module", "main": "./dist/index.cjs", diff --git a/packages/types/package.json b/packages/types/package.json index 9d4e6aa..64ea3da 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/types", - "version": "0.5.5", + "version": "0.5.6", "description": "Shared type definitions for the LogTide SDK ecosystem", "type": "module", "main": "./dist/index.cjs", From 028b8135ff4b94d598926217bab34c08c8eb451b Mon Sep 17 00:00:00 2001 From: Polliog Date: Sun, 8 Feb 2026 13:53:52 +0100 Subject: [PATCH 4/5] chore: update fastify and webpack dependencies to latest versions --- package.json | 8 + packages/fastify/package.json | 2 +- pnpm-lock.yaml | 627 +++++----------------------- test-apps/node-fastify/package.json | 2 +- 4 files changed, 105 insertions(+), 534 deletions(-) diff --git a/package.json b/package.json index eb9c908..df565ed 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,13 @@ }, "devDependencies": { "vitest": "^3.0.0" + }, + "pnpm": { + "overrides": { + "tar": ">=7.5.7", + "esbuild": ">=0.25.0", + "webpack": ">=5.104.1", + "cookie": ">=0.7.0" + } } } diff --git a/packages/fastify/package.json b/packages/fastify/package.json index 4729653..4f52ec6 100644 --- a/packages/fastify/package.json +++ b/packages/fastify/package.json @@ -50,7 +50,7 @@ "fastify": "^4.0.0 || ^5.0.0" }, "devDependencies": { - "fastify": "^5.2.1", + "fastify": "^5.7.3", "tsup": "^8.5.1", "typescript": "^5.5.4" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d4078d..4f53d1d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,12 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + tar: '>=7.5.7' + esbuild: '>=0.25.0' + webpack: '>=5.104.1' + cookie: '>=0.7.0' + importers: .: @@ -110,7 +116,7 @@ importers: version: 5.1.0 devDependencies: fastify: - specifier: ^5.2.1 + specifier: ^5.7.3 version: 5.7.4 tsup: specifier: ^8.5.1 @@ -175,7 +181,7 @@ importers: specifier: ^5.1.0 version: 5.2.1 fastify: - specifier: ^5.7.2 + specifier: ^5.7.3 version: 5.7.4 fastify-plugin: specifier: ^4.5.1 @@ -405,8 +411,8 @@ importers: specifier: workspace:* version: link:../../packages/node fastify: - specifier: ^4.28.0 - version: 4.29.1 + specifier: ^5.7.3 + version: 5.7.4 devDependencies: logtide-mock-server: specifier: workspace:* @@ -535,7 +541,7 @@ packages: resolution: {integrity: sha512-x2tlGg5CsUveFzuRuqeHknSbGirSAoRynEh+KqPRGK0G3WpMViW/M8SuVurecasegfIrDWtYZ4FnVxKqNbKwXQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: - webpack: ^5.30.0 + webpack: '>=5.104.1' webpack-dev-server: ^5.0.2 '@angular-devkit/core@19.2.19': @@ -1219,12 +1225,6 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} @@ -1243,12 +1243,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.12': resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} @@ -1267,12 +1261,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.12': resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} @@ -1291,12 +1279,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.12': resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} @@ -1315,12 +1297,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.12': resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} @@ -1339,12 +1315,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.12': resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} @@ -1363,12 +1333,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.12': resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} @@ -1387,12 +1351,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} @@ -1411,12 +1369,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.12': resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} @@ -1435,12 +1387,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.12': resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} @@ -1459,12 +1405,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.12': resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} @@ -1483,12 +1423,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.12': resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} @@ -1507,12 +1441,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.12': resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} @@ -1531,12 +1459,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.12': resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} @@ -1555,12 +1477,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.12': resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} @@ -1579,12 +1495,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.12': resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} @@ -1603,12 +1513,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.12': resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} @@ -1645,12 +1549,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} @@ -1687,12 +1585,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} @@ -1723,12 +1615,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.12': resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} @@ -1747,12 +1633,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.12': resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} @@ -1771,12 +1651,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.12': resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} @@ -1795,12 +1669,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.12': resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} @@ -1819,30 +1687,18 @@ packages: cpu: [x64] os: [win32] - '@fastify/ajv-compiler@3.6.0': - resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==} - '@fastify/ajv-compiler@4.0.5': resolution: {integrity: sha512-KoWKW+MhvfTRWL4qrhUwAAZoaChluo0m0vbiJlGMt2GXvL4LVPQEjt8kSpHI3IBq5Rez8fg+XeH3cneztq+C7A==} - '@fastify/error@3.4.1': - resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} - '@fastify/error@4.2.0': resolution: {integrity: sha512-RSo3sVDXfHskiBZKBPRgnQTtIqpi/7zhJOEmAxCiBcM7d0uwdGdxLlsCaLzGs8v8NnxIRlfG0N51p5yFaOentQ==} - '@fastify/fast-json-stringify-compiler@4.3.0': - resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} - '@fastify/fast-json-stringify-compiler@5.0.3': resolution: {integrity: sha512-uik7yYHkLr6fxd8hJSZ8c+xF4WafPK+XzneQDPU+D10r5X19GW8lJcom2YijX2+qtFF1ENJlHXKFM9ouXNJYgQ==} '@fastify/forwarded@3.0.1': resolution: {integrity: sha512-JqDochHFqXs3C3Ml3gOY58zM7OqO9ENqPo0UqAjAjH8L01fRZqwX9iLeX34//kiJubF7r2ZQHtBRU36vONbLlw==} - '@fastify/merge-json-schemas@0.1.1': - resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} - '@fastify/merge-json-schemas@0.2.1': resolution: {integrity: sha512-OA3KGBCy6KtIvLf8DINC5880o5iBlDX4SxzLQS8HorJAbqluzLRn80UXU0bxZn7UOFhFgpRJDasfwn9nG4FG4A==} @@ -2551,7 +2407,7 @@ packages: peerDependencies: '@angular/compiler-cli': ^19.0.0 || ^19.2.0-next.0 typescript: '>=5.5 <5.9' - webpack: ^5.54.0 + webpack: '>=5.104.1' '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -3905,6 +3761,12 @@ packages: peerDependencies: acorn: ^8 + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 + acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} @@ -4050,9 +3912,6 @@ packages: peerDependencies: postcss: ^8.1.0 - avvio@8.4.0: - resolution: {integrity: sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==} - avvio@9.1.0: resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} @@ -4073,7 +3932,7 @@ packages: engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 - webpack: '>=5' + webpack: '>=5.104.1' babel-plugin-polyfill-corejs2@0.4.15: resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} @@ -4178,7 +4037,7 @@ packages: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: - esbuild: '>=0.18' + esbuild: '>=0.25.0' bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} @@ -4252,10 +4111,6 @@ packages: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -4407,10 +4262,6 @@ packages: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} @@ -4433,7 +4284,7 @@ packages: resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} engines: {node: '>= 18.12.0'} peerDependencies: - webpack: ^5.1.0 + webpack: '>=5.104.1' core-js-compat@3.48.0: resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} @@ -4481,7 +4332,7 @@ packages: engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x - webpack: ^5.27.0 + webpack: '>=5.104.1' peerDependenciesMeta: '@rspack/core': optional: true @@ -4791,11 +4642,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.25.12: resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} engines: {node: '>=18'} @@ -4908,9 +4754,6 @@ packages: externality@1.0.2: resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} - fast-content-type-parse@1.1.0: - resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} - fast-decode-uri-component@1.0.1: resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} @@ -4924,9 +4767,6 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fast-json-stringify@5.16.1: - resolution: {integrity: sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==} - fast-json-stringify@6.3.0: resolution: {integrity: sha512-oRCntNDY/329HJPlmdNLIdogNtt6Vyjb1WuT01Soss3slIdyUp8kAcDU3saQTOquEK8KFVfwIIF7FebxUAu+yA==} @@ -4936,9 +4776,6 @@ packages: fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} - fast-uri@2.4.0: - resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==} - fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} @@ -4948,9 +4785,6 @@ packages: fastify-plugin@5.1.0: resolution: {integrity: sha512-FAIDA8eovSt5qcDgcBvDuX/v0Cjz0ohGhENZ/wpc3y+oZCY2afZ9Baqql3g/lC+OHRnciQol4ww7tuthOb9idw==} - fastify@4.29.1: - resolution: {integrity: sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==} - fastify@5.7.4: resolution: {integrity: sha512-e6l5NsRdaEP8rdD8VR0ErJASeyaRbzXYpmkrpr2SuvuMq6Si3lvsaVy5C+7gLanEkvjpMDzBXWE5HPeb/hgTxA==} @@ -4993,10 +4827,6 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} - find-my-way@8.2.2: - resolution: {integrity: sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==} - engines: {node: '>=14'} - find-my-way@9.4.0: resolution: {integrity: sha512-5Ye4vHsypZRYtS01ob/iwHzGRUDELlsoCftI/OZFhcLs1M0tkGPcXldE80TAZC5yYuJMBPJQQ43UHlqbJWiX2w==} engines: {node: '>=20'} @@ -5043,10 +4873,6 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - fs-minipass@3.0.3: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5533,9 +5359,6 @@ packages: resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} engines: {node: ^18.17.0 || >=20.5.0} - json-schema-ref-resolver@1.0.1: - resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} - json-schema-ref-resolver@3.0.0: resolution: {integrity: sha512-hOrZIVL5jyYFjzk7+y7n5JDzGlU8rfWDuYyHwGa2WA8/pcmMHezp2xsVwxrebD/Q9t8Nc5DboieySDpCp4WG4A==} @@ -5589,7 +5412,7 @@ packages: peerDependencies: '@rspack/core': 0.x || 1.x less: ^3.5.0 || ^4.0.0 - webpack: ^5.0.0 + webpack: '>=5.104.1' peerDependenciesMeta: '@rspack/core': optional: true @@ -5609,9 +5432,6 @@ packages: webpack: optional: true - light-my-request@5.14.0: - resolution: {integrity: sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==} - light-my-request@6.6.0: resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} @@ -5825,7 +5645,7 @@ packages: resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==} engines: {node: '>= 12.13.0'} peerDependencies: - webpack: ^5.0.0 + webpack: '>=5.104.1' minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -5866,18 +5686,10 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} @@ -5885,11 +5697,6 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} @@ -6334,9 +6141,6 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pino-abstract-transport@2.0.0: - resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} - pino-abstract-transport@3.0.0: resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} @@ -6347,10 +6151,6 @@ packages: resolution: {integrity: sha512-0GNPNzHXBKw6U/InGe79A3Crzyk9bcSyObF9/Gfo9DLEf5qj5RF50RSjsu0W1rZ6ZqRGdzDFCRBQvi9/rSGPtA==} hasBin: true - pino@9.14.0: - resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} - hasBin: true - pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -6444,7 +6244,7 @@ packages: peerDependencies: '@rspack/core': 0.x || 1.x postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 + webpack: '>=5.104.1' peerDependenciesMeta: '@rspack/core': optional: true @@ -6632,9 +6432,6 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} - process-warning@4.0.1: resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} @@ -6826,10 +6623,6 @@ packages: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} - ret@0.4.3: - resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==} - engines: {node: '>=10'} - ret@0.5.0: resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} engines: {node: '>=10'} @@ -6902,9 +6695,6 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex2@3.1.0: - resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==} - safe-regex2@5.0.0: resolution: {integrity: sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==} @@ -6923,7 +6713,7 @@ packages: node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 sass: ^1.3.0 sass-embedded: '*' - webpack: ^5.0.0 + webpack: '>=5.104.1' peerDependenciesMeta: '@rspack/core': optional: true @@ -6955,9 +6745,6 @@ packages: scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - secure-json-parse@4.1.0: resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} @@ -7126,7 +6913,7 @@ packages: resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==} engines: {node: '>= 18.12.0'} peerDependencies: - webpack: ^5.72.1 + webpack: '>=5.104.1' source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -7314,11 +7101,6 @@ packages: tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - tar@7.5.7: resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} engines: {node: '>=18'} @@ -7330,7 +7112,7 @@ packages: '@swc/core': '*' esbuild: '*' uglify-js: '*' - webpack: ^5.1.0 + webpack: '>=5.104.1' peerDependenciesMeta: '@swc/core': optional: true @@ -7365,9 +7147,6 @@ packages: peerDependencies: tslib: ^2 - thread-stream@3.1.0: - resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} - thread-stream@4.0.0: resolution: {integrity: sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==} engines: {node: '>=20'} @@ -7997,7 +7776,7 @@ packages: resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==} engines: {node: '>= 18.12.0'} peerDependencies: - webpack: ^5.0.0 + webpack: '>=5.104.1' peerDependenciesMeta: webpack: optional: true @@ -8007,7 +7786,7 @@ packages: engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: - webpack: ^5.0.0 + webpack: '>=5.104.1' webpack-cli: '*' peerDependenciesMeta: webpack: @@ -8028,7 +7807,7 @@ packages: engines: {node: '>= 12'} peerDependencies: html-webpack-plugin: '>= 5.0.0-beta.1 < 6' - webpack: ^5.12.0 + webpack: '>=5.104.1' peerDependenciesMeta: html-webpack-plugin: optional: true @@ -8036,8 +7815,8 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.98.0: - resolution: {integrity: sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==} + webpack@5.105.0: + resolution: {integrity: sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -8179,7 +7958,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.19(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.3)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.98.0))(webpack@5.98.0(esbuild@0.25.4)) + '@angular-devkit/build-webpack': 0.1902.19(chokidar@4.0.3)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.105.0))(webpack@5.105.0(esbuild@0.25.4)) '@angular-devkit/core': 19.2.19(chokidar@4.0.3) '@angular/build': 19.2.19(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.3))(@angular/compiler@19.2.18)(@types/node@20.19.32)(chokidar@4.0.3)(jiti@2.6.1)(less@4.2.2)(postcss@8.5.2)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.3)(yaml@2.8.2) '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.3) @@ -8193,14 +7972,14 @@ snapshots: '@babel/preset-env': 7.26.9(@babel/core@7.26.10) '@babel/runtime': 7.26.10 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.2.19(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.4)) + '@ngtools/webpack': 19.2.19(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.105.0(esbuild@0.25.4)) '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.1(@types/node@20.19.32)(jiti@2.6.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.4)) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.105.0(esbuild@0.25.4)) browserslist: 4.28.1 - copy-webpack-plugin: 12.0.2(webpack@5.98.0(esbuild@0.25.4)) - css-loader: 7.1.2(webpack@5.98.0(esbuild@0.25.4)) + copy-webpack-plugin: 12.0.2(webpack@5.105.0(esbuild@0.25.4)) + css-loader: 7.1.2(webpack@5.105.0(esbuild@0.25.4)) esbuild-wasm: 0.25.4 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 @@ -8208,32 +7987,32 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.4)) - license-webpack-plugin: 4.0.2(webpack@5.98.0(esbuild@0.25.4)) + less-loader: 12.2.0(less@4.2.2)(webpack@5.105.0(esbuild@0.25.4)) + license-webpack-plugin: 4.0.2(webpack@5.105.0(esbuild@0.25.4)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.98.0(esbuild@0.25.4)) + mini-css-extract-plugin: 2.9.2(webpack@5.105.0(esbuild@0.25.4)) open: 10.1.0 ora: 5.4.1 picomatch: 4.0.2 piscina: 4.8.0 postcss: 8.5.2 - postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.4)) + postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.8.3)(webpack@5.105.0(esbuild@0.25.4)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.85.0 - sass-loader: 16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.4)) + sass-loader: 16.0.5(sass@1.85.0)(webpack@5.105.0(esbuild@0.25.4)) semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.98.0(esbuild@0.25.4)) + source-map-loader: 5.0.0(webpack@5.105.0(esbuild@0.25.4)) source-map-support: 0.5.21 terser: 5.39.0 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.8.3 - webpack: 5.98.0(esbuild@0.25.4) - webpack-dev-middleware: 7.4.2(tslib@2.8.1)(webpack@5.98.0) - webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.98.0) + webpack: 5.105.0(esbuild@0.25.4) + webpack-dev-middleware: 7.4.2(tslib@2.8.1)(webpack@5.105.0) + webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.105.0) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.98.0(esbuild@0.25.4)) + webpack-subresource-integrity: 5.1.0(webpack@5.105.0(esbuild@0.25.4)) optionalDependencies: esbuild: 0.25.4 transitivePeerDependencies: @@ -8259,12 +8038,12 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.1902.19(chokidar@4.0.3)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.98.0))(webpack@5.98.0(esbuild@0.25.4))': + '@angular-devkit/build-webpack@0.1902.19(chokidar@4.0.3)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.105.0))(webpack@5.105.0(esbuild@0.25.4))': dependencies: '@angular-devkit/architect': 0.1902.19(chokidar@4.0.3) rxjs: 7.8.1 - webpack: 5.98.0(esbuild@0.25.4) - webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.98.0) + webpack: 5.105.0(esbuild@0.25.4) + webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.105.0) transitivePeerDependencies: - chokidar @@ -8303,7 +8082,7 @@ snapshots: '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.4.1(@types/node@20.19.32)(jiti@2.6.1)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2)) beasties: 0.3.2 browserslist: 4.28.1 - esbuild: 0.25.4 + esbuild: 0.27.3 fast-glob: 3.3.3 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 @@ -9233,9 +9012,6 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.21.5': - optional: true - '@esbuild/aix-ppc64@0.25.12': optional: true @@ -9245,9 +9021,6 @@ snapshots: '@esbuild/aix-ppc64@0.27.3': optional: true - '@esbuild/android-arm64@0.21.5': - optional: true - '@esbuild/android-arm64@0.25.12': optional: true @@ -9257,9 +9030,6 @@ snapshots: '@esbuild/android-arm64@0.27.3': optional: true - '@esbuild/android-arm@0.21.5': - optional: true - '@esbuild/android-arm@0.25.12': optional: true @@ -9269,9 +9039,6 @@ snapshots: '@esbuild/android-arm@0.27.3': optional: true - '@esbuild/android-x64@0.21.5': - optional: true - '@esbuild/android-x64@0.25.12': optional: true @@ -9281,9 +9048,6 @@ snapshots: '@esbuild/android-x64@0.27.3': optional: true - '@esbuild/darwin-arm64@0.21.5': - optional: true - '@esbuild/darwin-arm64@0.25.12': optional: true @@ -9293,9 +9057,6 @@ snapshots: '@esbuild/darwin-arm64@0.27.3': optional: true - '@esbuild/darwin-x64@0.21.5': - optional: true - '@esbuild/darwin-x64@0.25.12': optional: true @@ -9305,9 +9066,6 @@ snapshots: '@esbuild/darwin-x64@0.27.3': optional: true - '@esbuild/freebsd-arm64@0.21.5': - optional: true - '@esbuild/freebsd-arm64@0.25.12': optional: true @@ -9317,9 +9075,6 @@ snapshots: '@esbuild/freebsd-arm64@0.27.3': optional: true - '@esbuild/freebsd-x64@0.21.5': - optional: true - '@esbuild/freebsd-x64@0.25.12': optional: true @@ -9329,9 +9084,6 @@ snapshots: '@esbuild/freebsd-x64@0.27.3': optional: true - '@esbuild/linux-arm64@0.21.5': - optional: true - '@esbuild/linux-arm64@0.25.12': optional: true @@ -9341,9 +9093,6 @@ snapshots: '@esbuild/linux-arm64@0.27.3': optional: true - '@esbuild/linux-arm@0.21.5': - optional: true - '@esbuild/linux-arm@0.25.12': optional: true @@ -9353,9 +9102,6 @@ snapshots: '@esbuild/linux-arm@0.27.3': optional: true - '@esbuild/linux-ia32@0.21.5': - optional: true - '@esbuild/linux-ia32@0.25.12': optional: true @@ -9365,9 +9111,6 @@ snapshots: '@esbuild/linux-ia32@0.27.3': optional: true - '@esbuild/linux-loong64@0.21.5': - optional: true - '@esbuild/linux-loong64@0.25.12': optional: true @@ -9377,9 +9120,6 @@ snapshots: '@esbuild/linux-loong64@0.27.3': optional: true - '@esbuild/linux-mips64el@0.21.5': - optional: true - '@esbuild/linux-mips64el@0.25.12': optional: true @@ -9389,9 +9129,6 @@ snapshots: '@esbuild/linux-mips64el@0.27.3': optional: true - '@esbuild/linux-ppc64@0.21.5': - optional: true - '@esbuild/linux-ppc64@0.25.12': optional: true @@ -9401,9 +9138,6 @@ snapshots: '@esbuild/linux-ppc64@0.27.3': optional: true - '@esbuild/linux-riscv64@0.21.5': - optional: true - '@esbuild/linux-riscv64@0.25.12': optional: true @@ -9413,9 +9147,6 @@ snapshots: '@esbuild/linux-riscv64@0.27.3': optional: true - '@esbuild/linux-s390x@0.21.5': - optional: true - '@esbuild/linux-s390x@0.25.12': optional: true @@ -9425,9 +9156,6 @@ snapshots: '@esbuild/linux-s390x@0.27.3': optional: true - '@esbuild/linux-x64@0.21.5': - optional: true - '@esbuild/linux-x64@0.25.12': optional: true @@ -9446,9 +9174,6 @@ snapshots: '@esbuild/netbsd-arm64@0.27.3': optional: true - '@esbuild/netbsd-x64@0.21.5': - optional: true - '@esbuild/netbsd-x64@0.25.12': optional: true @@ -9467,9 +9192,6 @@ snapshots: '@esbuild/openbsd-arm64@0.27.3': optional: true - '@esbuild/openbsd-x64@0.21.5': - optional: true - '@esbuild/openbsd-x64@0.25.12': optional: true @@ -9485,9 +9207,6 @@ snapshots: '@esbuild/openharmony-arm64@0.27.3': optional: true - '@esbuild/sunos-x64@0.21.5': - optional: true - '@esbuild/sunos-x64@0.25.12': optional: true @@ -9497,9 +9216,6 @@ snapshots: '@esbuild/sunos-x64@0.27.3': optional: true - '@esbuild/win32-arm64@0.21.5': - optional: true - '@esbuild/win32-arm64@0.25.12': optional: true @@ -9509,9 +9225,6 @@ snapshots: '@esbuild/win32-arm64@0.27.3': optional: true - '@esbuild/win32-ia32@0.21.5': - optional: true - '@esbuild/win32-ia32@0.25.12': optional: true @@ -9521,9 +9234,6 @@ snapshots: '@esbuild/win32-ia32@0.27.3': optional: true - '@esbuild/win32-x64@0.21.5': - optional: true - '@esbuild/win32-x64@0.25.12': optional: true @@ -9533,36 +9243,20 @@ snapshots: '@esbuild/win32-x64@0.27.3': optional: true - '@fastify/ajv-compiler@3.6.0': - dependencies: - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - fast-uri: 2.4.0 - '@fastify/ajv-compiler@4.0.5': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) fast-uri: 3.1.0 - '@fastify/error@3.4.1': {} - '@fastify/error@4.2.0': {} - '@fastify/fast-json-stringify-compiler@4.3.0': - dependencies: - fast-json-stringify: 5.16.1 - '@fastify/fast-json-stringify-compiler@5.0.3': dependencies: fast-json-stringify: 6.3.0 '@fastify/forwarded@3.0.1': {} - '@fastify/merge-json-schemas@0.1.1': - dependencies: - fast-deep-equal: 3.1.3 - '@fastify/merge-json-schemas@0.2.1': dependencies: dequal: 2.0.3 @@ -10156,11 +9850,11 @@ snapshots: '@next/swc-win32-x64-msvc@15.5.12': optional: true - '@ngtools/webpack@19.2.19(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.4))': + '@ngtools/webpack@19.2.19(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.105.0(esbuild@0.25.4))': dependencies: '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.3) typescript: 5.8.3 - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) '@nodelib/fs.scandir@2.1.5': dependencies: @@ -11080,7 +10774,7 @@ snapshots: '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.50.0)(vite@6.4.1(@types/node@20.19.32)(jiti@2.6.1)(less@4.2.2)(sass@1.85.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) '@types/cookie': 0.6.0 acorn: 8.15.0 - cookie: 0.6.0 + cookie: 1.1.1 devalue: 5.6.2 esm-env: 1.2.2 kleur: 4.1.5 @@ -11101,7 +10795,7 @@ snapshots: '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.50.0)(vite@7.3.1(@types/node@20.19.32)(jiti@2.6.1)(less@4.2.2)(sass@1.85.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) '@types/cookie': 0.6.0 acorn: 8.15.0 - cookie: 0.6.0 + cookie: 1.1.1 devalue: 5.6.2 esm-env: 1.2.2 kleur: 4.1.5 @@ -11683,6 +11377,10 @@ snapshots: dependencies: acorn: 8.15.0 + acorn-import-phases@1.0.4(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-walk@8.3.4: dependencies: acorn: 8.15.0 @@ -11815,11 +11513,6 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - avvio@8.4.0: - dependencies: - '@fastify/error': 3.4.1 - fastq: 1.20.1 - avvio@9.1.0: dependencies: '@fastify/error': 4.2.0 @@ -11829,12 +11522,12 @@ snapshots: b4a@1.7.3: {} - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.4)): + babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.105.0(esbuild@0.25.4)): dependencies: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.26.10): dependencies: @@ -12082,8 +11775,6 @@ snapshots: dependencies: readdirp: 5.0.0 - chownr@2.0.0: {} - chownr@3.0.0: {} chrome-trace-event@1.0.4: {} @@ -12211,8 +11902,6 @@ snapshots: cookie-signature@1.2.2: {} - cookie@0.6.0: {} - cookie@0.7.2: {} cookie@1.1.1: {} @@ -12229,7 +11918,7 @@ snapshots: dependencies: iconv-lite: 0.4.24 - copy-webpack-plugin@12.0.2(webpack@5.98.0(esbuild@0.25.4)): + copy-webpack-plugin@12.0.2(webpack@5.105.0(esbuild@0.25.4)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -12237,7 +11926,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) core-js-compat@3.48.0: dependencies: @@ -12277,7 +11966,7 @@ snapshots: dependencies: postcss: 8.5.6 - css-loader@7.1.2(webpack@5.98.0(esbuild@0.25.4)): + css-loader@7.1.2(webpack@5.105.0(esbuild@0.25.4)): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -12288,7 +11977,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) css-select@5.2.2: dependencies: @@ -12534,32 +12223,6 @@ snapshots: esbuild-wasm@0.25.4: {} - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.12: optionalDependencies: '@esbuild/aix-ppc64': 0.25.12 @@ -12616,6 +12279,7 @@ snapshots: '@esbuild/win32-arm64': 0.25.4 '@esbuild/win32-ia32': 0.25.4 '@esbuild/win32-x64': 0.25.4 + optional: true esbuild@0.27.3: optionalDependencies: @@ -12793,8 +12457,6 @@ snapshots: pathe: 1.1.2 ufo: 1.6.3 - fast-content-type-parse@1.1.0: {} - fast-decode-uri-component@1.0.1: {} fast-deep-equal@3.1.3: {} @@ -12809,16 +12471,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-stringify@5.16.1: - dependencies: - '@fastify/merge-json-schemas': 0.1.1 - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) - fast-deep-equal: 3.1.3 - fast-uri: 2.4.0 - json-schema-ref-resolver: 1.0.1 - rfdc: 1.4.1 - fast-json-stringify@6.3.0: dependencies: '@fastify/merge-json-schemas': 0.2.1 @@ -12834,33 +12486,12 @@ snapshots: dependencies: fast-decode-uri-component: 1.0.1 - fast-uri@2.4.0: {} - fast-uri@3.1.0: {} fastify-plugin@4.5.1: {} fastify-plugin@5.1.0: {} - fastify@4.29.1: - dependencies: - '@fastify/ajv-compiler': 3.6.0 - '@fastify/error': 3.4.1 - '@fastify/fast-json-stringify-compiler': 4.3.0 - abstract-logging: 2.0.1 - avvio: 8.4.0 - fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.16.1 - find-my-way: 8.2.2 - light-my-request: 5.14.0 - pino: 9.14.0 - process-warning: 3.0.0 - proxy-addr: 2.0.7 - rfdc: 1.4.1 - secure-json-parse: 2.7.0 - semver: 7.7.4 - toad-cache: 3.7.0 - fastify@5.7.4: dependencies: '@fastify/ajv-compiler': 4.0.5 @@ -12934,12 +12565,6 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - find-my-way@8.2.2: - dependencies: - fast-deep-equal: 3.1.3 - fast-querystring: 1.1.2 - safe-regex2: 3.1.0 - find-my-way@9.4.0: dependencies: fast-deep-equal: 3.1.3 @@ -12978,10 +12603,6 @@ snapshots: fresh@2.0.0: {} - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - fs-minipass@3.0.3: dependencies: minipass: 7.1.2 @@ -13451,10 +13072,6 @@ snapshots: json-parse-even-better-errors@4.0.0: {} - json-schema-ref-resolver@1.0.1: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-ref-resolver@3.0.0: dependencies: dequal: 2.0.3 @@ -13490,11 +13107,11 @@ snapshots: dependencies: readable-stream: 2.3.8 - less-loader@12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.4)): + less-loader@12.2.0(less@4.2.2)(webpack@5.105.0(esbuild@0.25.4)): dependencies: less: 4.2.2 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) less@4.2.2: dependencies: @@ -13510,17 +13127,11 @@ snapshots: needle: 3.3.1 source-map: 0.6.1 - license-webpack-plugin@4.0.2(webpack@5.98.0(esbuild@0.25.4)): + license-webpack-plugin@4.0.2(webpack@5.105.0(esbuild@0.25.4)): dependencies: webpack-sources: 3.3.3 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.4) - - light-my-request@5.14.0: - dependencies: - cookie: 0.7.2 - process-warning: 3.0.0 - set-cookie-parser: 2.7.2 + webpack: 5.105.0(esbuild@0.25.4) light-my-request@6.6.0: dependencies: @@ -13766,11 +13377,11 @@ snapshots: mimic-function@5.0.1: {} - mini-css-extract-plugin@2.9.2(webpack@5.98.0(esbuild@0.25.4)): + mini-css-extract-plugin@2.9.2(webpack@5.105.0(esbuild@0.25.4)): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) minimalistic-assert@1.0.1: {} @@ -13814,23 +13425,14 @@ snapshots: dependencies: yallist: 4.0.0 - minipass@5.0.0: {} - minipass@7.1.2: {} - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - minizlib@3.1.0: dependencies: minipass: 7.1.2 mitt@3.0.1: {} - mkdirp@1.0.4: {} - mlly@1.8.0: dependencies: acorn: 8.15.0 @@ -14483,7 +14085,7 @@ snapshots: promise-retry: 2.0.1 sigstore: 3.1.0 ssri: 12.0.0 - tar: 6.2.1 + tar: 7.5.7 transitivePeerDependencies: - supports-color @@ -14572,10 +14174,6 @@ snapshots: pify@4.0.1: optional: true - pino-abstract-transport@2.0.0: - dependencies: - split2: 4.2.0 - pino-abstract-transport@3.0.0: dependencies: split2: 4.2.0 @@ -14596,20 +14194,6 @@ snapshots: sonic-boom: 4.2.0 thread-stream: 4.0.0 - pino@9.14.0: - dependencies: - '@pinojs/redact': 0.4.0 - atomic-sleep: 1.0.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 - pino-std-serializers: 7.1.0 - process-warning: 5.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.5.0 - sonic-boom: 4.2.0 - thread-stream: 3.1.0 - pirates@4.0.7: {} piscina@4.8.0: @@ -14686,14 +14270,14 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 - postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.4)): + postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.8.3)(webpack@5.105.0(esbuild@0.25.4)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 1.21.7 postcss: 8.5.2 semver: 7.7.4 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) transitivePeerDependencies: - typescript @@ -14869,8 +14453,6 @@ snapshots: process-nextick-args@2.0.1: {} - process-warning@3.0.0: {} - process-warning@4.0.1: {} process-warning@5.0.0: {} @@ -15067,8 +14649,6 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 - ret@0.4.3: {} - ret@0.5.0: {} retry@0.12.0: {} @@ -15178,10 +14758,6 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex2@3.1.0: - dependencies: - ret: 0.4.3 - safe-regex2@5.0.0: dependencies: ret: 0.5.0 @@ -15190,12 +14766,12 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.4)): + sass-loader@16.0.5(sass@1.85.0)(webpack@5.105.0(esbuild@0.25.4)): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.85.0 - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) sass@1.85.0: dependencies: @@ -15218,8 +14794,6 @@ snapshots: scule@1.3.0: {} - secure-json-parse@2.7.0: {} - secure-json-parse@4.1.0: {} select-hose@2.0.0: {} @@ -15464,11 +15038,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.98.0(esbuild@0.25.4)): + source-map-loader@5.0.0(webpack@5.105.0(esbuild@0.25.4)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) source-map-support@0.5.21: dependencies: @@ -15682,15 +15256,6 @@ snapshots: - bare-abort-controller - react-native-b4a - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - tar@7.5.7: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -15699,14 +15264,14 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - terser-webpack-plugin@5.3.16(esbuild@0.25.4)(webpack@5.98.0): + terser-webpack-plugin@5.3.16(esbuild@0.25.4)(webpack@5.105.0): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.46.0 - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) optionalDependencies: esbuild: 0.25.4 @@ -15742,10 +15307,6 @@ snapshots: dependencies: tslib: 2.8.1 - thread-stream@3.1.0: - dependencies: - real-require: 0.2.0 - thread-stream@4.0.0: dependencies: real-require: 0.2.0 @@ -16152,7 +15713,7 @@ snapshots: vite@5.4.21(@types/node@20.19.32)(less@4.2.2)(sass@1.85.0)(terser@5.46.0): dependencies: - esbuild: 0.21.5 + esbuild: 0.27.3 postcss: 8.5.6 rollup: 4.57.1 optionalDependencies: @@ -16363,7 +15924,7 @@ snapshots: webidl-conversions@3.0.1: {} - webpack-dev-middleware@7.4.2(tslib@2.8.1)(webpack@5.98.0): + webpack-dev-middleware@7.4.2(tslib@2.8.1)(webpack@5.105.0): dependencies: colorette: 2.0.20 memfs: 4.56.10(tslib@2.8.1) @@ -16372,11 +15933,11 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) transitivePeerDependencies: - tslib - webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.98.0): + webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.105.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -16404,10 +15965,10 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(tslib@2.8.1)(webpack@5.98.0) + webpack-dev-middleware: 7.4.2(tslib@2.8.1)(webpack@5.105.0) ws: 8.19.0 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) transitivePeerDependencies: - bufferutil - debug @@ -16423,25 +15984,27 @@ snapshots: webpack-sources@3.3.3: {} - webpack-subresource-integrity@5.1.0(webpack@5.98.0(esbuild@0.25.4)): + webpack-subresource-integrity@5.1.0(webpack@5.105.0(esbuild@0.25.4)): dependencies: typed-assert: 1.0.9 - webpack: 5.98.0(esbuild@0.25.4) + webpack: 5.105.0(esbuild@0.25.4) webpack-virtual-modules@0.6.2: {} - webpack@5.98.0(esbuild@0.25.4): + webpack@5.105.0(esbuild@0.25.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) browserslist: 4.28.1 chrome-trace-event: 1.0.4 enhanced-resolve: 5.19.0 - es-module-lexer: 1.7.0 + es-module-lexer: 2.0.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -16452,7 +16015,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(esbuild@0.25.4)(webpack@5.98.0) + terser-webpack-plugin: 5.3.16(esbuild@0.25.4)(webpack@5.105.0) watchpack: 2.5.1 webpack-sources: 3.3.3 transitivePeerDependencies: diff --git a/test-apps/node-fastify/package.json b/test-apps/node-fastify/package.json index 26f3d12..87076fe 100644 --- a/test-apps/node-fastify/package.json +++ b/test-apps/node-fastify/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "@logtide/sdk-node": "workspace:*", - "fastify": "^4.28.0" + "fastify": "^5.7.3" }, "devDependencies": { "logtide-mock-server": "workspace:*", From c1d0884ff73776ba600cc0ec2344247a3e022865 Mon Sep 17 00:00:00 2001 From: Polliog Date: Sun, 8 Feb 2026 13:59:45 +0100 Subject: [PATCH 5/5] fix: update fastify compatibility to support v4 and v5 - Bump fastify devDependency to ^5.7.3 - Add fastify ^5.0.0 to peerDependencies - Update fastify-plugin version constraint from '4.x' to '>=4.0.0' --- packages/node/package.json | 6 +++--- packages/node/src/middleware/fastify.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/node/package.json b/packages/node/package.json index f622046..cec79e5 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -1,6 +1,6 @@ { "name": "@logtide/sdk-node", - "version": "0.5.5", + "version": "0.5.6", "description": "Official Node.js SDK for LogTide (logtide.dev) - Self-hosted log management with advanced features: retry logic, circuit breaker, query API, live streaming, and middleware support", "type": "module", "main": "./dist/index.cjs", @@ -74,7 +74,7 @@ "@types/express": "^4.17.21", "@types/node": "^20.14.15", "express": "^5.1.0", - "fastify": "^5.7.2", + "fastify": "^5.7.3", "fastify-plugin": "^4.5.1", "tsup": "^8.5.1", "typescript": "^5.5.4", @@ -82,7 +82,7 @@ }, "peerDependencies": { "express": "^4.0.0 || ^5.0.0", - "fastify": "^4.0.0" + "fastify": "^4.0.0 || ^5.0.0" }, "peerDependenciesMeta": { "express": { diff --git a/packages/node/src/middleware/fastify.ts b/packages/node/src/middleware/fastify.ts index 4a76794..c6de344 100644 --- a/packages/node/src/middleware/fastify.ts +++ b/packages/node/src/middleware/fastify.ts @@ -120,7 +120,7 @@ const logTidePlugin: FastifyPluginCallback = ( }; export const logTideFastifyPlugin = fp(logTidePlugin, { - fastify: '4.x', + fastify: '>=4.0.0', name: '@logtide/fastify-plugin', });