chore(backend): Loki configureren
De meeste console statements vervangen door Loki
This commit is contained in:
		
							parent
							
								
									0f8bd3df6a
								
							
						
					
					
						commit
						7fd6305fd9
					
				
					 8 changed files with 767 additions and 40 deletions
				
			
		|  | @ -18,12 +18,16 @@ | ||||||
|         "@mikro-orm/postgresql": "^6.4.6", |         "@mikro-orm/postgresql": "^6.4.6", | ||||||
|         "@mikro-orm/reflection": "^6.4.6", |         "@mikro-orm/reflection": "^6.4.6", | ||||||
|         "dotenv": "^16.4.7", |         "dotenv": "^16.4.7", | ||||||
|         "express": "^5.0.1" |         "express": "^5.0.1", | ||||||
|  |         "response-time": "^2.3.3", | ||||||
|  |         "winston": "^3.17.0", | ||||||
|  |         "winston-loki": "^6.1.3" | ||||||
|     }, |     }, | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@mikro-orm/cli": "^6.4.6", |         "@mikro-orm/cli": "^6.4.6", | ||||||
|         "@types/express": "^5.0.0", |         "@types/express": "^5.0.0", | ||||||
|         "@types/node": "^22.13.4", |         "@types/node": "^22.13.4", | ||||||
|  |         "@types/response-time": "^2.3.8", | ||||||
|         "globals": "^15.15.0", |         "globals": "^15.15.0", | ||||||
|         "ts-node": "^10.9.2", |         "ts-node": "^10.9.2", | ||||||
|         "tsx": "^4.19.3", |         "tsx": "^4.19.3", | ||||||
|  |  | ||||||
|  | @ -1,11 +1,21 @@ | ||||||
| import express, { Express, Response } from 'express'; | import express, { Express, Response } from 'express'; | ||||||
| import initORM from './orm.js'; | import initORM from './orm.js'; | ||||||
|  | import { getLogger } from './logging/initalize.js'; | ||||||
|  | import { responseTimeLogger } from './logging/responseTimeLogger.js'; | ||||||
|  | import responseTime from 'response-time'; | ||||||
|  | import { Logger } from 'winston'; | ||||||
|  | 
 | ||||||
|  | const logger: Logger = getLogger(); | ||||||
| 
 | 
 | ||||||
| const app: Express = express(); | const app: Express = express(); | ||||||
| const port: string | number = process.env.PORT || 3000; | const port: string | number = process.env.PORT || 3000; | ||||||
| 
 | 
 | ||||||
|  | app.use(express.json()); | ||||||
|  | app.use(responseTime(responseTimeLogger)); | ||||||
|  | 
 | ||||||
| // TODO Replace with Express routes
 | // TODO Replace with Express routes
 | ||||||
| app.get('/', (_, res: Response) => { | app.get('/', (_, res: Response) => { | ||||||
|  |     logger.debug('GET /'); | ||||||
|     res.json({ |     res.json({ | ||||||
|         message: 'Hello Dwengo!', |         message: 'Hello Dwengo!', | ||||||
|     }); |     }); | ||||||
|  | @ -15,35 +25,8 @@ async function startServer() { | ||||||
|     await initORM(); |     await initORM(); | ||||||
| 
 | 
 | ||||||
|     app.listen(port, () => { |     app.listen(port, () => { | ||||||
|         console.log(`Server is running at http://localhost:${port}`); |         logger.info(`Server is running at http://localhost:${port}`); | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | startServer(); | ||||||
| import { LokiClient, LogError, LokiLabels, LogInfo } from 'loki-logger-ts'; |  | ||||||
| 
 |  | ||||||
| const HostData = { |  | ||||||
|     url: "http://localhost:3100/loki/api/v1/push", |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| const labels: LokiLabels = { |  | ||||||
|     source: "Test", |  | ||||||
|     job: "TestJob", |  | ||||||
|     host: "localhost", |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| async function main() { |  | ||||||
|     const client = new LokiClient(HostData.url); |  | ||||||
| 
 |  | ||||||
|     const msg = 'Hello World'; |  | ||||||
|     await LogError(client, msg, labels); |  | ||||||
|     await LogInfo(client, 'Dit is een goed bericht', labels); |  | ||||||
| 
 |  | ||||||
|     console.log(client.showMetrics()); |  | ||||||
| 
 |  | ||||||
|     console.log(client.getMetrics()); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| main(); |  | ||||||
| 
 |  | ||||||
| // startServer();
 |  | ||||||
|  |  | ||||||
							
								
								
									
										47
									
								
								backend/src/logging/initalize.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								backend/src/logging/initalize.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,47 @@ | ||||||
|  | import { createLogger, format, Logger, transports } from 'winston'; | ||||||
|  | import LokiTransport from 'winston-loki'; | ||||||
|  | import { LokiLabels } from 'loki-logger-ts'; | ||||||
|  | 
 | ||||||
|  | const LoggingLevel = 'development' === process.env.NODE_ENV ? 'debug' : 'info'; | ||||||
|  | const Host = 'http://localhost:3102'; | ||||||
|  | const Labels: LokiLabels = { | ||||||
|  |     source: 'Dwengo-Backend', | ||||||
|  |     job: 'Dwengo-Backend', | ||||||
|  |     host: 'localhost', | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | let logger: Logger; | ||||||
|  | 
 | ||||||
|  | function initializeLogger() { | ||||||
|  |     if (logger !== undefined) { | ||||||
|  |         return logger; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     const lokiTransport: LokiTransport = new LokiTransport({ | ||||||
|  |         host: Host, | ||||||
|  |         labels: Labels, | ||||||
|  |         level: LoggingLevel, | ||||||
|  |         json: true, | ||||||
|  |         format: format.combine(format.timestamp(), format.json()), | ||||||
|  |         onConnectionError: (err) => { | ||||||
|  |             console.error(`Connection error: ${err}`); | ||||||
|  |         }, | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     const consoleTransport = new transports.Console({ | ||||||
|  |         level: LoggingLevel, | ||||||
|  |         format: format.combine(format.simple(), format.colorize()), | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     logger = createLogger({ | ||||||
|  |         transports: [lokiTransport, consoleTransport], | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     logger.debug('Logger initialized'); | ||||||
|  |     return logger; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export function getLogger(): Logger { | ||||||
|  |     logger ||= initializeLogger(); | ||||||
|  |     return logger; | ||||||
|  | } | ||||||
							
								
								
									
										23
									
								
								backend/src/logging/responseTimeLogger.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								backend/src/logging/responseTimeLogger.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | import { getLogger } from './initalize.js'; | ||||||
|  | import { Logger } from 'winston'; | ||||||
|  | import { Request, Response } from 'express'; | ||||||
|  | 
 | ||||||
|  | export function responseTimeLogger(req: Request, res: Response, time: number) { | ||||||
|  |     const logger: Logger = getLogger(); | ||||||
|  | 
 | ||||||
|  |     const method = req.method; | ||||||
|  |     const url = req.url; | ||||||
|  |     const status = res.statusCode; | ||||||
|  | 
 | ||||||
|  |     logger.info({ | ||||||
|  |         message: 'Request completed', | ||||||
|  |         method: method, | ||||||
|  |         url: url, | ||||||
|  |         status: status, | ||||||
|  |         responseTime: Number(time), | ||||||
|  |         labels: { | ||||||
|  |             origin: 'api', | ||||||
|  |             type: 'responseTime', | ||||||
|  |         }, | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | @ -1,6 +1,13 @@ | ||||||
| import { MikroORM } from '@mikro-orm/core'; | import { MikroORM } from '@mikro-orm/core'; | ||||||
| import config from './mikro-orm.config.js'; | import config from './mikro-orm.config.js'; | ||||||
|  | import { getLogger } from './logging/initalize.js'; | ||||||
|  | import { Logger } from 'winston'; | ||||||
| 
 | 
 | ||||||
| export default async function initORM() { | export default async function initORM() { | ||||||
|  |     const logger: Logger = getLogger(); | ||||||
|  | 
 | ||||||
|  |     logger.info('Initializing ORM'); | ||||||
|  |     logger.debug('MikroORM config is', config); | ||||||
|  | 
 | ||||||
|     await MikroORM.init(config); |     await MikroORM.init(config); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ | ||||||
| auth_enabled: false | auth_enabled: false | ||||||
| 
 | 
 | ||||||
| server: | server: | ||||||
|     http_listen_port: 3100 |     http_listen_port: 3102 | ||||||
| 
 | 
 | ||||||
| common: | common: | ||||||
|     ring: |     ring: | ||||||
|  | @ -7,7 +7,6 @@ services: | ||||||
|             POSTGRES_DB: postgres |             POSTGRES_DB: postgres | ||||||
|         ports: |         ports: | ||||||
|             - '5432:5432' |             - '5432:5432' | ||||||
|         network_mode: 'host' |  | ||||||
|         volumes: |         volumes: | ||||||
|             - dwengo_postgres_data:/var/lib/postgresql/data |             - dwengo_postgres_data:/var/lib/postgresql/data | ||||||
|             - ./backend/config/db/init.sql:/docker-entrypoint-initdb.d/init.sql |             - ./backend/config/db/init.sql:/docker-entrypoint-initdb.d/init.sql | ||||||
|  | @ -15,12 +14,23 @@ services: | ||||||
|     logging: |     logging: | ||||||
|         image: grafana/loki:latest |         image: grafana/loki:latest | ||||||
|         ports: |         ports: | ||||||
|             - '3100:3100' |             - '3102:3102' | ||||||
|             - '9095:9095' |             - '9095:9095' | ||||||
|         network_mode: 'host' |  | ||||||
|         volumes: |         volumes: | ||||||
|             - ./config/loki-config.yml:/etc/loki/config.yaml |             - ./config/loki/config.yml:/etc/loki/config.yaml | ||||||
|  |             - dwengo_loki_data:/loki | ||||||
|         command: -config.file=/etc/loki/config.yaml |         command: -config.file=/etc/loki/config.yaml | ||||||
|  |         restart: unless-stopped | ||||||
|  | 
 | ||||||
|  |     dashboards: | ||||||
|  |         image: grafana/grafana:latest | ||||||
|  |         ports: | ||||||
|  |             - '3000:3000' | ||||||
|  |         volumes: | ||||||
|  |             - dwengo_grafana_data:/var/lib/grafana | ||||||
|  |         restart: unless-stopped | ||||||
| 
 | 
 | ||||||
| volumes: | volumes: | ||||||
|     dwengo_postgres_data: |     dwengo_postgres_data: | ||||||
|  |     dwengo_loki_data: | ||||||
|  |     dwengo_grafana_data: | ||||||
|  |  | ||||||
							
								
								
									
										663
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										663
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							|  | @ -35,12 +35,16 @@ | ||||||
|                 "@mikro-orm/postgresql": "^6.4.6", |                 "@mikro-orm/postgresql": "^6.4.6", | ||||||
|                 "@mikro-orm/reflection": "^6.4.6", |                 "@mikro-orm/reflection": "^6.4.6", | ||||||
|                 "dotenv": "^16.4.7", |                 "dotenv": "^16.4.7", | ||||||
|                 "express": "^5.0.1" |                 "express": "^5.0.1", | ||||||
|  |                 "response-time": "^2.3.3", | ||||||
|  |                 "winston": "^3.17.0", | ||||||
|  |                 "winston-loki": "^6.1.3" | ||||||
|             }, |             }, | ||||||
|             "devDependencies": { |             "devDependencies": { | ||||||
|                 "@mikro-orm/cli": "^6.4.6", |                 "@mikro-orm/cli": "^6.4.6", | ||||||
|                 "@types/express": "^5.0.0", |                 "@types/express": "^5.0.0", | ||||||
|                 "@types/node": "^22.13.4", |                 "@types/node": "^22.13.4", | ||||||
|  |                 "@types/response-time": "^2.3.8", | ||||||
|                 "globals": "^15.15.0", |                 "globals": "^15.15.0", | ||||||
|                 "ts-node": "^10.9.2", |                 "ts-node": "^10.9.2", | ||||||
|                 "tsx": "^4.19.3", |                 "tsx": "^4.19.3", | ||||||
|  | @ -647,6 +651,15 @@ | ||||||
|                 "node": ">=6.9.0" |                 "node": ">=6.9.0" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/@colors/colors": { | ||||||
|  |             "version": "1.6.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", | ||||||
|  |             "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">=0.1.90" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/@cspotcode/source-map-support": { |         "node_modules/@cspotcode/source-map-support": { | ||||||
|             "version": "0.8.1", |             "version": "0.8.1", | ||||||
|             "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", |             "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", | ||||||
|  | @ -775,6 +788,17 @@ | ||||||
|                 "node": ">=18" |                 "node": ">=18" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/@dabh/diagnostics": { | ||||||
|  |             "version": "2.0.3", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", | ||||||
|  |             "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "colorspace": "1.1.x", | ||||||
|  |                 "enabled": "2.0.x", | ||||||
|  |                 "kuler": "^2.0.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/@esbuild/aix-ppc64": { |         "node_modules/@esbuild/aix-ppc64": { | ||||||
|             "version": "0.25.0", |             "version": "0.25.0", | ||||||
|             "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", |             "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", | ||||||
|  | @ -1674,6 +1698,214 @@ | ||||||
|                 "@mikro-orm/core": "^6.0.0" |                 "@mikro-orm/core": "^6.0.0" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-android-arm-eabi": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-android-arm-eabi/-/snappy-android-arm-eabi-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-H7DuVkPCK5BlAr1NfSU8bDEN7gYs+R78pSHhDng83QxRnCLmVIZk33ymmIwurmoA1HrdTxbkbuNl+lMvNqnytw==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "arm" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "android" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-android-arm64": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-android-arm64/-/snappy-android-arm64-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-2R/A3qok+nGtpVK8oUMcrIi5OMDckGYNoBLFyli3zp8w6IArPRfg1yOfVUcHvpUDTo9T7LOS1fXgMOoC796eQw==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "arm64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "android" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-darwin-arm64": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-darwin-arm64/-/snappy-darwin-arm64-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-USgArHbfrmdbuq33bD5ssbkPIoT7YCXCRLmZpDS6dMDrx+iM7eD2BecNbOOo7/v1eu6TRmQ0xOzeQ6I/9FIi5g==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "arm64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "darwin" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-darwin-x64": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-darwin-x64/-/snappy-darwin-x64-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-0APDu8iO5iT0IJKblk2lH0VpWSl9zOZndZKnBYIc+ei1npw2L5QvuErFOTeTdHBtzvUHASB+9bvgaWnQo4PvTQ==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "x64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "darwin" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-freebsd-x64": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-freebsd-x64/-/snappy-freebsd-x64-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-mRTCJsuzy0o/B0Hnp9CwNB5V6cOJ4wedDTWEthsdKHSsQlO7WU9W1yP7H3Qv3Ccp/ZfMyrmG98Ad7u7lG58WXA==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "x64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "freebsd" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-linux-arm-gnueabihf": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-arm-gnueabihf/-/snappy-linux-arm-gnueabihf-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-v1uzm8+6uYjasBPcFkv90VLZ+WhLzr/tnfkZ/iD9mHYiULqkqpRuC8zvc3FZaJy5wLQE9zTDkTJN1IvUcZ+Vcg==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "arm" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "linux" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-linux-arm64-gnu": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-arm64-gnu/-/snappy-linux-arm64-gnu-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-LrEMa5pBScs4GXWOn6ZYXfQ72IzoolZw5txqUHVGs8eK4g1HR9HTHhb2oY5ySNaKakG5sOgMsb1rwaEnjhChmQ==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "arm64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "linux" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-linux-arm64-musl": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-arm64-musl/-/snappy-linux-arm64-musl-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-3orWZo9hUpGQcB+3aTLW7UFDqNCQfbr0+MvV67x8nMNYj5eAeUtMmUE/HxLznHO4eZ1qSqiTwLbVx05/Socdlw==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "arm64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "linux" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-linux-x64-gnu": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-x64-gnu/-/snappy-linux-x64-gnu-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-jZt8Jit/HHDcavt80zxEkDpH+R1Ic0ssiVCoueASzMXa7vwPJeF4ZxZyqUw4qeSy7n8UUExomu8G8ZbP6VKhgw==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "x64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "linux" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-linux-x64-musl": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-x64-musl/-/snappy-linux-x64-musl-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-Dh96IXgcZrV39a+Tej/owcd9vr5ihiZ3KRix11rr1v0MWtVb61+H1GXXlz6+Zcx9y8jM1NmOuiIuJwkV4vZ4WA==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "x64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "linux" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-win32-arm64-msvc": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-win32-arm64-msvc/-/snappy-win32-arm64-msvc-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-9No0b3xGbHSWv2wtLEn3MO76Yopn1U2TdemZpCaEgOGccz1V+a/1d16Piz3ofSmnA13HGFz3h9NwZH9EOaIgYA==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "arm64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "win32" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-win32-ia32-msvc": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-win32-ia32-msvc/-/snappy-win32-ia32-msvc-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-QiGe+0G86J74Qz1JcHtBwM3OYdTni1hX1PFyLRo3HhQUSpmi13Bzc1En7APn+6Pvo7gkrcy81dObGLDSxFAkQQ==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "ia32" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "win32" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@napi-rs/snappy-win32-x64-msvc": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@napi-rs/snappy-win32-x64-msvc/-/snappy-win32-x64-msvc-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-a43cyx1nK0daw6BZxVcvDEXxKMFLSBSDTAhsFD0VqSKcC7MGUBMaqyoWUcMiI7LBSz4bxUmxDWKfCYzpEmeb3w==", | ||||||
|  |             "cpu": [ | ||||||
|  |                 "x64" | ||||||
|  |             ], | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "os": [ | ||||||
|  |                 "win32" | ||||||
|  |             ], | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/@nodelib/fs.scandir": { |         "node_modules/@nodelib/fs.scandir": { | ||||||
|             "version": "2.1.5", |             "version": "2.1.5", | ||||||
|             "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", |             "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", | ||||||
|  | @ -1763,6 +1995,70 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/@protobufjs/aspromise": { | ||||||
|  |             "version": "1.1.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", | ||||||
|  |             "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/base64": { | ||||||
|  |             "version": "1.1.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", | ||||||
|  |             "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/codegen": { | ||||||
|  |             "version": "2.0.4", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", | ||||||
|  |             "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/eventemitter": { | ||||||
|  |             "version": "1.1.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", | ||||||
|  |             "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/fetch": { | ||||||
|  |             "version": "1.1.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", | ||||||
|  |             "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", | ||||||
|  |             "license": "BSD-3-Clause", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "@protobufjs/aspromise": "^1.1.1", | ||||||
|  |                 "@protobufjs/inquire": "^1.1.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/float": { | ||||||
|  |             "version": "1.0.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", | ||||||
|  |             "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/inquire": { | ||||||
|  |             "version": "1.1.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", | ||||||
|  |             "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/path": { | ||||||
|  |             "version": "1.1.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", | ||||||
|  |             "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/pool": { | ||||||
|  |             "version": "1.1.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", | ||||||
|  |             "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|  |         "node_modules/@protobufjs/utf8": { | ||||||
|  |             "version": "1.1.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", | ||||||
|  |             "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", | ||||||
|  |             "license": "BSD-3-Clause" | ||||||
|  |         }, | ||||||
|         "node_modules/@rollup/pluginutils": { |         "node_modules/@rollup/pluginutils": { | ||||||
|             "version": "5.1.4", |             "version": "5.1.4", | ||||||
|             "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", |             "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", | ||||||
|  | @ -2229,7 +2525,6 @@ | ||||||
|             "version": "22.13.4", |             "version": "22.13.4", | ||||||
|             "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", |             "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", | ||||||
|             "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", |             "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", | ||||||
|             "dev": true, |  | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "undici-types": "~6.20.0" |                 "undici-types": "~6.20.0" | ||||||
|  | @ -2249,6 +2544,17 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/@types/response-time": { | ||||||
|  |             "version": "2.3.8", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@types/response-time/-/response-time-2.3.8.tgz", | ||||||
|  |             "integrity": "sha512-7qGaNYvdxc0zRab8oHpYx7AW17qj+G0xuag1eCrw3M2VWPJQ/HyKaaghWygiaOUl0y9x7QGQwppDpqLJ5V9pzw==", | ||||||
|  |             "dev": true, | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "@types/express": "*", | ||||||
|  |                 "@types/node": "*" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/@types/send": { |         "node_modules/@types/send": { | ||||||
|             "version": "0.17.4", |             "version": "0.17.4", | ||||||
|             "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", |             "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", | ||||||
|  | @ -2279,6 +2585,12 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/@types/triple-beam": { | ||||||
|  |             "version": "1.3.5", | ||||||
|  |             "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", | ||||||
|  |             "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|         "node_modules/@typescript-eslint/eslint-plugin": { |         "node_modules/@typescript-eslint/eslint-plugin": { | ||||||
|             "version": "8.24.1", |             "version": "8.24.1", | ||||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", |             "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", | ||||||
|  | @ -3141,6 +3453,21 @@ | ||||||
|                 "node": ">=12" |                 "node": ">=12" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/async": { | ||||||
|  |             "version": "3.2.6", | ||||||
|  |             "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", | ||||||
|  |             "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|  |         "node_modules/async-exit-hook": { | ||||||
|  |             "version": "2.0.1", | ||||||
|  |             "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", | ||||||
|  |             "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">=0.12.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/asynckit": { |         "node_modules/asynckit": { | ||||||
|             "version": "0.4.0", |             "version": "0.4.0", | ||||||
|             "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", |             "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | ||||||
|  | @ -3270,6 +3597,18 @@ | ||||||
|                 "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" |                 "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/btoa": { | ||||||
|  |             "version": "1.2.1", | ||||||
|  |             "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", | ||||||
|  |             "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", | ||||||
|  |             "license": "(MIT OR Apache-2.0)", | ||||||
|  |             "bin": { | ||||||
|  |                 "btoa": "bin/btoa.js" | ||||||
|  |             }, | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 0.4.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/bundle-name": { |         "node_modules/bundle-name": { | ||||||
|             "version": "4.1.0", |             "version": "4.1.0", | ||||||
|             "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", |             "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", | ||||||
|  | @ -3493,6 +3832,16 @@ | ||||||
|             "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", |             "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/color": { | ||||||
|  |             "version": "3.2.1", | ||||||
|  |             "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", | ||||||
|  |             "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "color-convert": "^1.9.3", | ||||||
|  |                 "color-string": "^1.6.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/color-convert": { |         "node_modules/color-convert": { | ||||||
|             "version": "2.0.1", |             "version": "2.0.1", | ||||||
|             "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", |             "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||||||
|  | @ -3510,7 +3859,31 @@ | ||||||
|             "version": "1.1.4", |             "version": "1.1.4", | ||||||
|             "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", |             "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||||||
|             "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |             "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||||||
|             "dev": true, |             "license": "MIT" | ||||||
|  |         }, | ||||||
|  |         "node_modules/color-string": { | ||||||
|  |             "version": "1.9.1", | ||||||
|  |             "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", | ||||||
|  |             "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "color-name": "^1.0.0", | ||||||
|  |                 "simple-swizzle": "^0.2.2" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/color/node_modules/color-convert": { | ||||||
|  |             "version": "1.9.3", | ||||||
|  |             "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", | ||||||
|  |             "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "color-name": "1.1.3" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/color/node_modules/color-name": { | ||||||
|  |             "version": "1.1.3", | ||||||
|  |             "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", | ||||||
|  |             "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|         "node_modules/colorette": { |         "node_modules/colorette": { | ||||||
|  | @ -3519,6 +3892,16 @@ | ||||||
|             "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", |             "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/colorspace": { | ||||||
|  |             "version": "1.1.4", | ||||||
|  |             "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", | ||||||
|  |             "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "color": "^3.1.3", | ||||||
|  |                 "text-hex": "1.0.x" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/combined-stream": { |         "node_modules/combined-stream": { | ||||||
|             "version": "1.0.8", |             "version": "1.0.8", | ||||||
|             "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", |             "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", | ||||||
|  | @ -3932,6 +4315,12 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/enabled": { | ||||||
|  |             "version": "2.0.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", | ||||||
|  |             "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|         "node_modules/encodeurl": { |         "node_modules/encodeurl": { | ||||||
|             "version": "2.0.0", |             "version": "2.0.0", | ||||||
|             "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", |             "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", | ||||||
|  | @ -4611,6 +5000,12 @@ | ||||||
|                 "reusify": "^1.0.4" |                 "reusify": "^1.0.4" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/fecha": { | ||||||
|  |             "version": "4.2.3", | ||||||
|  |             "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", | ||||||
|  |             "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|         "node_modules/figlet": { |         "node_modules/figlet": { | ||||||
|             "version": "1.8.0", |             "version": "1.8.0", | ||||||
|             "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz", |             "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz", | ||||||
|  | @ -4745,6 +5140,12 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "ISC" |             "license": "ISC" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/fn.name": { | ||||||
|  |             "version": "1.1.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", | ||||||
|  |             "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|         "node_modules/follow-redirects": { |         "node_modules/follow-redirects": { | ||||||
|             "version": "1.15.9", |             "version": "1.15.9", | ||||||
|             "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", |             "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", | ||||||
|  | @ -5293,6 +5694,12 @@ | ||||||
|                 "node": ">= 0.10" |                 "node": ">= 0.10" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/is-arrayish": { | ||||||
|  |             "version": "0.3.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", | ||||||
|  |             "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|         "node_modules/is-core-module": { |         "node_modules/is-core-module": { | ||||||
|             "version": "2.16.1", |             "version": "2.16.1", | ||||||
|             "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", |             "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", | ||||||
|  | @ -5769,6 +6176,12 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/kuler": { | ||||||
|  |             "version": "2.0.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", | ||||||
|  |             "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|         "node_modules/levn": { |         "node_modules/levn": { | ||||||
|             "version": "0.4.1", |             "version": "0.4.1", | ||||||
|             "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", |             "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", | ||||||
|  | @ -5812,6 +6225,23 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/logform": { | ||||||
|  |             "version": "2.7.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", | ||||||
|  |             "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "@colors/colors": "1.6.0", | ||||||
|  |                 "@types/triple-beam": "^1.3.2", | ||||||
|  |                 "fecha": "^4.2.0", | ||||||
|  |                 "ms": "^2.1.1", | ||||||
|  |                 "safe-stable-stringify": "^2.3.1", | ||||||
|  |                 "triple-beam": "^1.3.0" | ||||||
|  |             }, | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 12.0.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/loki-logger-ts": { |         "node_modules/loki-logger-ts": { | ||||||
|             "version": "1.0.2", |             "version": "1.0.2", | ||||||
|             "resolved": "https://registry.npmjs.org/loki-logger-ts/-/loki-logger-ts-1.0.2.tgz", |             "resolved": "https://registry.npmjs.org/loki-logger-ts/-/loki-logger-ts-1.0.2.tgz", | ||||||
|  | @ -5820,6 +6250,12 @@ | ||||||
|                 "axios": "^1.4.0" |                 "axios": "^1.4.0" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/long": { | ||||||
|  |             "version": "5.3.1", | ||||||
|  |             "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", | ||||||
|  |             "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==", | ||||||
|  |             "license": "Apache-2.0" | ||||||
|  |         }, | ||||||
|         "node_modules/loupe": { |         "node_modules/loupe": { | ||||||
|             "version": "3.1.3", |             "version": "3.1.3", | ||||||
|             "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", |             "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", | ||||||
|  | @ -6222,6 +6658,15 @@ | ||||||
|                 "node": ">= 0.8" |                 "node": ">= 0.8" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/on-headers": { | ||||||
|  |             "version": "1.0.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", | ||||||
|  |             "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 0.8" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/once": { |         "node_modules/once": { | ||||||
|             "version": "1.4.0", |             "version": "1.4.0", | ||||||
|             "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |             "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||||||
|  | @ -6231,6 +6676,15 @@ | ||||||
|                 "wrappy": "1" |                 "wrappy": "1" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/one-time": { | ||||||
|  |             "version": "1.0.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", | ||||||
|  |             "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "fn.name": "1.x.x" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/open": { |         "node_modules/open": { | ||||||
|             "version": "10.1.0", |             "version": "10.1.0", | ||||||
|             "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", |             "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", | ||||||
|  | @ -6784,6 +7238,30 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "ISC" |             "license": "ISC" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/protobufjs": { | ||||||
|  |             "version": "7.4.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", | ||||||
|  |             "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", | ||||||
|  |             "hasInstallScript": true, | ||||||
|  |             "license": "BSD-3-Clause", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "@protobufjs/aspromise": "^1.1.2", | ||||||
|  |                 "@protobufjs/base64": "^1.1.2", | ||||||
|  |                 "@protobufjs/codegen": "^2.0.4", | ||||||
|  |                 "@protobufjs/eventemitter": "^1.1.0", | ||||||
|  |                 "@protobufjs/fetch": "^1.1.0", | ||||||
|  |                 "@protobufjs/float": "^1.0.2", | ||||||
|  |                 "@protobufjs/inquire": "^1.1.0", | ||||||
|  |                 "@protobufjs/path": "^1.1.2", | ||||||
|  |                 "@protobufjs/pool": "^1.1.0", | ||||||
|  |                 "@protobufjs/utf8": "^1.1.0", | ||||||
|  |                 "@types/node": ">=13.7.0", | ||||||
|  |                 "long": "^5.0.0" | ||||||
|  |             }, | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">=12.0.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/proxy-addr": { |         "node_modules/proxy-addr": { | ||||||
|             "version": "2.0.7", |             "version": "2.0.7", | ||||||
|             "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", |             "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", | ||||||
|  | @ -6898,6 +7376,20 @@ | ||||||
|                 "node": "^18.17.0 || >=20.5.0" |                 "node": "^18.17.0 || >=20.5.0" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/readable-stream": { | ||||||
|  |             "version": "3.6.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", | ||||||
|  |             "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "inherits": "^2.0.3", | ||||||
|  |                 "string_decoder": "^1.1.1", | ||||||
|  |                 "util-deprecate": "^1.0.1" | ||||||
|  |             }, | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 6" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/rechoir": { |         "node_modules/rechoir": { | ||||||
|             "version": "0.8.0", |             "version": "0.8.0", | ||||||
|             "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", |             "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", | ||||||
|  | @ -6966,6 +7458,19 @@ | ||||||
|                 "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" |                 "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/response-time": { | ||||||
|  |             "version": "2.3.3", | ||||||
|  |             "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.3.tgz", | ||||||
|  |             "integrity": "sha512-SsjjOPHl/FfrTQNgmc5oen8Hr1Jxpn6LlHNXxCIFdYMHuK1kMeYMobb9XN3mvxaGQm3dbegqYFMX4+GDORfbWg==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "depd": "~2.0.0", | ||||||
|  |                 "on-headers": "~1.0.1" | ||||||
|  |             }, | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 0.8.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/reusify": { |         "node_modules/reusify": { | ||||||
|             "version": "1.0.4", |             "version": "1.0.4", | ||||||
|             "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", |             "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", | ||||||
|  | @ -7099,6 +7604,15 @@ | ||||||
|             ], |             ], | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/safe-stable-stringify": { | ||||||
|  |             "version": "2.5.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", | ||||||
|  |             "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">=10" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/safer-buffer": { |         "node_modules/safer-buffer": { | ||||||
|             "version": "2.1.2", |             "version": "2.1.2", | ||||||
|             "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", |             "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||||||
|  | @ -7333,6 +7847,15 @@ | ||||||
|                 "url": "https://github.com/sponsors/isaacs" |                 "url": "https://github.com/sponsors/isaacs" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/simple-swizzle": { | ||||||
|  |             "version": "0.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", | ||||||
|  |             "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "is-arrayish": "^0.3.1" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/sirv": { |         "node_modules/sirv": { | ||||||
|             "version": "3.0.1", |             "version": "3.0.1", | ||||||
|             "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", |             "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", | ||||||
|  | @ -7357,6 +7880,35 @@ | ||||||
|                 "node": ">=8" |                 "node": ">=8" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/snappy": { | ||||||
|  |             "version": "7.2.2", | ||||||
|  |             "resolved": "https://registry.npmjs.org/snappy/-/snappy-7.2.2.tgz", | ||||||
|  |             "integrity": "sha512-iADMq1kY0v3vJmGTuKcFWSXt15qYUz7wFkArOrsSg0IFfI3nJqIJvK2/ZbEIndg7erIJLtAVX2nSOqPz7DcwbA==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "optional": true, | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 10" | ||||||
|  |             }, | ||||||
|  |             "funding": { | ||||||
|  |                 "type": "github", | ||||||
|  |                 "url": "https://github.com/sponsors/Brooooooklyn" | ||||||
|  |             }, | ||||||
|  |             "optionalDependencies": { | ||||||
|  |                 "@napi-rs/snappy-android-arm-eabi": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-android-arm64": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-darwin-arm64": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-darwin-x64": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-freebsd-x64": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-linux-arm-gnueabihf": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-linux-arm64-gnu": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-linux-arm64-musl": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-linux-x64-gnu": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-linux-x64-musl": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-win32-arm64-msvc": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-win32-ia32-msvc": "7.2.2", | ||||||
|  |                 "@napi-rs/snappy-win32-x64-msvc": "7.2.2" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/source-map-js": { |         "node_modules/source-map-js": { | ||||||
|             "version": "1.2.1", |             "version": "1.2.1", | ||||||
|             "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", |             "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", | ||||||
|  | @ -7394,6 +7946,15 @@ | ||||||
|                 "node": ">= 0.6" |                 "node": ">= 0.6" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/stack-trace": { | ||||||
|  |             "version": "0.0.10", | ||||||
|  |             "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", | ||||||
|  |             "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "engines": { | ||||||
|  |                 "node": "*" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/stackback": { |         "node_modules/stackback": { | ||||||
|             "version": "0.0.2", |             "version": "0.0.2", | ||||||
|             "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", |             "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", | ||||||
|  | @ -7417,6 +7978,15 @@ | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/string_decoder": { | ||||||
|  |             "version": "1.3.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", | ||||||
|  |             "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "safe-buffer": "~5.2.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/string-width": { |         "node_modules/string-width": { | ||||||
|             "version": "5.1.2", |             "version": "5.1.2", | ||||||
|             "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", |             "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", | ||||||
|  | @ -7634,6 +8204,12 @@ | ||||||
|                 "node": ">=8.0.0" |                 "node": ">=8.0.0" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/text-hex": { | ||||||
|  |             "version": "1.0.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", | ||||||
|  |             "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|         "node_modules/tildify": { |         "node_modules/tildify": { | ||||||
|             "version": "2.0.0", |             "version": "2.0.0", | ||||||
|             "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", |             "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", | ||||||
|  | @ -7764,6 +8340,15 @@ | ||||||
|                 "node": ">=18" |                 "node": ">=18" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/triple-beam": { | ||||||
|  |             "version": "1.4.1", | ||||||
|  |             "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", | ||||||
|  |             "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 14.0.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/ts-api-utils": { |         "node_modules/ts-api-utils": { | ||||||
|             "version": "2.0.1", |             "version": "2.0.1", | ||||||
|             "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", |             "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", | ||||||
|  | @ -7970,7 +8555,6 @@ | ||||||
|             "version": "6.20.0", |             "version": "6.20.0", | ||||||
|             "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", |             "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", | ||||||
|             "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", |             "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", | ||||||
|             "dev": true, |  | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|         "node_modules/unicorn-magic": { |         "node_modules/unicorn-magic": { | ||||||
|  | @ -8045,11 +8629,16 @@ | ||||||
|                 "punycode": "^2.1.0" |                 "punycode": "^2.1.0" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/url-polyfill": { | ||||||
|  |             "version": "1.1.13", | ||||||
|  |             "resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.13.tgz", | ||||||
|  |             "integrity": "sha512-tXzkojrv2SujumYthZ/WjF7jaSfNhSXlYMpE5AYdL2I3D7DCeo+mch8KtW2rUuKjDg+3VXODXHVgipt8yGY/eQ==", | ||||||
|  |             "license": "MIT" | ||||||
|  |         }, | ||||||
|         "node_modules/util-deprecate": { |         "node_modules/util-deprecate": { | ||||||
|             "version": "1.0.2", |             "version": "1.0.2", | ||||||
|             "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", |             "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||||
|             "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", |             "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", | ||||||
|             "dev": true, |  | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|         "node_modules/utils-merge": { |         "node_modules/utils-merge": { | ||||||
|  | @ -9084,6 +9673,70 @@ | ||||||
|                 "node": ">=8" |                 "node": ">=8" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "node_modules/winston": { | ||||||
|  |             "version": "3.17.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", | ||||||
|  |             "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "@colors/colors": "^1.6.0", | ||||||
|  |                 "@dabh/diagnostics": "^2.0.2", | ||||||
|  |                 "async": "^3.2.3", | ||||||
|  |                 "is-stream": "^2.0.0", | ||||||
|  |                 "logform": "^2.7.0", | ||||||
|  |                 "one-time": "^1.0.0", | ||||||
|  |                 "readable-stream": "^3.4.0", | ||||||
|  |                 "safe-stable-stringify": "^2.3.1", | ||||||
|  |                 "stack-trace": "0.0.x", | ||||||
|  |                 "triple-beam": "^1.3.0", | ||||||
|  |                 "winston-transport": "^4.9.0" | ||||||
|  |             }, | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 12.0.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/winston-loki": { | ||||||
|  |             "version": "6.1.3", | ||||||
|  |             "resolved": "https://registry.npmjs.org/winston-loki/-/winston-loki-6.1.3.tgz", | ||||||
|  |             "integrity": "sha512-DjWtJ230xHyYQWr9mZJa93yhwHttn3JEtSYWP8vXZWJOahiQheUhf+88dSIidbGXB3u0oLweV6G1vkL/ouT62Q==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "async-exit-hook": "2.0.1", | ||||||
|  |                 "btoa": "^1.2.1", | ||||||
|  |                 "protobufjs": "^7.2.4", | ||||||
|  |                 "url-polyfill": "^1.1.12", | ||||||
|  |                 "winston-transport": "^4.3.0" | ||||||
|  |             }, | ||||||
|  |             "optionalDependencies": { | ||||||
|  |                 "snappy": "^7.2.2" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/winston-transport": { | ||||||
|  |             "version": "4.9.0", | ||||||
|  |             "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", | ||||||
|  |             "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "dependencies": { | ||||||
|  |                 "logform": "^2.7.0", | ||||||
|  |                 "readable-stream": "^3.6.2", | ||||||
|  |                 "triple-beam": "^1.3.0" | ||||||
|  |             }, | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">= 12.0.0" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "node_modules/winston/node_modules/is-stream": { | ||||||
|  |             "version": "2.0.1", | ||||||
|  |             "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", | ||||||
|  |             "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", | ||||||
|  |             "license": "MIT", | ||||||
|  |             "engines": { | ||||||
|  |                 "node": ">=8" | ||||||
|  |             }, | ||||||
|  |             "funding": { | ||||||
|  |                 "url": "https://github.com/sponsors/sindresorhus" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "node_modules/word-wrap": { |         "node_modules/word-wrap": { | ||||||
|             "version": "1.2.5", |             "version": "1.2.5", | ||||||
|             "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", |             "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", | ||||||
|  |  | ||||||
		Reference in a new issue