From 64f438fee000ccdc91ceb688be3eab96d986e115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C6=B0=C6=A1ng=20T=E1=BA=A5n=20Hu=E1=BB=B3nh=20Phong?= Date: Tue, 18 Apr 2023 19:23:33 +0700 Subject: [PATCH] refactor typing to use with cli - export more info for core nestjs server and client - fix incorrect value for grpcTimestampToDate - fix type for fastify server to use with cli - add cli to example to generate typing from protobuf files --- examples/fastify/grpc-cli.ts | 9 + examples/fastify/package.json | 6 +- examples/fastify/src/main.ts | 37 ++- .../src/protobufTypings/example.interface.ts | 32 +++ .../src/protobufTypings/example2.interface.ts | 32 +++ .../src/protobufTypings/example3.interface.ts | 30 +++ examples/nestjs/grpc-cli.ts | 8 + examples/nestjs/package.json | 4 +- .../protobufTypings/example.interface.ts | 32 +++ .../protobufTypings/example2.interface.ts | 32 +++ .../protobufTypings/example3.interface.ts | 30 +++ .../nestjs/src/client/client.controller.ts | 9 +- .../nestjs/src/server/server.controller.ts | 15 +- package.json | 2 +- packages/core/package.json | 2 +- packages/core/src/index.ts | 1 + packages/core/src/interface.ts | 10 +- packages/core/src/utils.ts | 24 +- packages/fastify/server/package.json | 2 +- packages/fastify/server/src/index.d.ts | 16 +- packages/fastify/server/src/interface.ts | 4 +- packages/nestjs/client/package.json | 2 +- packages/nestjs/client/src/index.ts | 2 + packages/nestjs/server/package.json | 2 +- packages/nestjs/server/src/index.ts | 2 + pnpm-lock.yaml | 237 +++++++++--------- 26 files changed, 428 insertions(+), 154 deletions(-) create mode 100644 examples/fastify/grpc-cli.ts create mode 100644 examples/fastify/src/protobufTypings/example.interface.ts create mode 100644 examples/fastify/src/protobufTypings/example2.interface.ts create mode 100644 examples/fastify/src/protobufTypings/example3.interface.ts create mode 100644 examples/nestjs/grpc-cli.ts create mode 100644 examples/nestjs/protobufTypings/example.interface.ts create mode 100644 examples/nestjs/protobufTypings/example2.interface.ts create mode 100644 examples/nestjs/protobufTypings/example3.interface.ts diff --git a/examples/fastify/grpc-cli.ts b/examples/fastify/grpc-cli.ts new file mode 100644 index 0000000..342aaf6 --- /dev/null +++ b/examples/fastify/grpc-cli.ts @@ -0,0 +1,9 @@ +import type { IConfigProps } from '@grpc.ts/cli'; + +const config: IConfigProps = { + paths: ['../proto/*.proto'], + external: ['google.protobuf'], + output: './src/protobufTypings', +}; + +export default config; diff --git a/examples/fastify/package.json b/examples/fastify/package.json index 589b5e5..8d81818 100644 --- a/examples/fastify/package.json +++ b/examples/fastify/package.json @@ -5,17 +5,19 @@ "type": "module", "scripts": { "dev": "vite-node -w src/main.ts", - "build": "vite build" + "build": "vite build", + "gen-type": "gen-grpc-typing" }, "dependencies": { "@grpc.ts/fastify-client": "workspace:*", "@grpc.ts/fastify-server": "workspace:*", "detect-port": "^1.5.1", "fastify": "^4.15.0", - "vite": "^4.2.1" + "vite": "^4.2.2" }, "devDependencies": { "@fastify/vite": "^4.0.0", + "@grpc.ts/cli": "workspace:*", "@types/detect-port": "^1.3.2", "fastify-cli": "^5.7.1", "vite-node": "^0.30.1" diff --git a/examples/fastify/src/main.ts b/examples/fastify/src/main.ts index 444c521..8c70732 100644 --- a/examples/fastify/src/main.ts +++ b/examples/fastify/src/main.ts @@ -6,6 +6,11 @@ import FastifyGrpcServer, { import { fastify } from 'config/fastify'; +import type { + IExampleService, + ISendMessageRequest, +} from './protobufTypings/example3.interface'; + async function bootstrap(): Promise { fastify.register(FastifyGrpcServer, { url: 'localhost:3010', @@ -61,9 +66,12 @@ async function bootstrap(): Promise { fastify.get('/', async (_request, reply) => { const result = await fastify.grpcClient - .getService('ExampleService') + .getService('ExampleService') .sendMessage( - { message: 'hello', createdAt: dateToGrpcTimestamp(new Date()) }, + { + message: 'hello', + createdAt: dateToGrpcTimestamp(new Date()), + }, createMetadata({ meta: 'test', }), @@ -81,16 +89,21 @@ async function bootstrap(): Promise { fastify.grpcServer .getServer() - .addUnaryHandler('ExampleService', 'sendMessage', (request, metadata) => { - console.log(request); - console.log(metadata); - return { - message: { - message: 'hola', - createdAt: dateToGrpcTimestamp(new Date()), - }, - }; - }); + .addUnaryHandler( + 'ExampleService', + 'sendMessage', + (request, metadata) => { + console.log(request); + console.log(metadata); + + return { + message: { + message: 'hola', + createdAt: dateToGrpcTimestamp(new Date()), + }, + }; + }, + ); return fastify; } diff --git a/examples/fastify/src/protobufTypings/example.interface.ts b/examples/fastify/src/protobufTypings/example.interface.ts new file mode 100644 index 0000000..d17de7a --- /dev/null +++ b/examples/fastify/src/protobufTypings/example.interface.ts @@ -0,0 +1,32 @@ +import type { + Metadata, + GrpcTimestamp, + ServiceClient, +} from '@grpc.ts/cli/node_modules/@grpc.ts/core'; + +export const PACKAGE_NAME = 'example.v1'; + +export interface IMessage { + message: string; + createdAt: GrpcTimestamp; +} + +export interface ISendMessageRequest { + message: string; + createdAt: GrpcTimestamp; +} + +export interface IGetMessageResponse { + message: IMessage; +} + +export interface IExampleService extends ServiceClient { + SendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; + sendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; +} diff --git a/examples/fastify/src/protobufTypings/example2.interface.ts b/examples/fastify/src/protobufTypings/example2.interface.ts new file mode 100644 index 0000000..7cbb194 --- /dev/null +++ b/examples/fastify/src/protobufTypings/example2.interface.ts @@ -0,0 +1,32 @@ +import type { + Metadata, + GrpcTimestamp, + ServiceClient, +} from '@grpc.ts/cli/node_modules/@grpc.ts/core'; + +export const PACKAGE_NAME = 'example2.v1'; + +export interface IMessage { + message: string; + createdAt: GrpcTimestamp; +} + +export interface ISendMessageRequest { + message: string; + createdAt: GrpcTimestamp; +} + +export interface IGetMessageResponse { + message: IMessage; +} + +export interface IExampleService extends ServiceClient { + SendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; + sendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; +} diff --git a/examples/fastify/src/protobufTypings/example3.interface.ts b/examples/fastify/src/protobufTypings/example3.interface.ts new file mode 100644 index 0000000..101ae47 --- /dev/null +++ b/examples/fastify/src/protobufTypings/example3.interface.ts @@ -0,0 +1,30 @@ +import type { + Metadata, + GrpcTimestamp, + ServiceClient, +} from '@grpc.ts/cli/node_modules/@grpc.ts/core'; + +export interface IMessage { + message: string; + createdAt: GrpcTimestamp; +} + +export interface ISendMessageRequest { + message: string; + createdAt: GrpcTimestamp; +} + +export interface IGetMessageResponse { + message: IMessage; +} + +export interface IExampleService extends ServiceClient { + SendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; + sendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; +} diff --git a/examples/nestjs/grpc-cli.ts b/examples/nestjs/grpc-cli.ts new file mode 100644 index 0000000..11c9b55 --- /dev/null +++ b/examples/nestjs/grpc-cli.ts @@ -0,0 +1,8 @@ +import type { IConfigProps } from '@grpc.ts/cli'; + +const config: IConfigProps = { + paths: ['../proto/*.proto'], + external: ['google.protobuf'], +}; + +export default config; diff --git a/examples/nestjs/package.json b/examples/nestjs/package.json index 6d68f8d..62fd44b 100644 --- a/examples/nestjs/package.json +++ b/examples/nestjs/package.json @@ -8,7 +8,8 @@ "scripts": { "build": "nest build", "dev": "nest start --watch", - "start:prod": "node dist/main" + "start:prod": "node dist/main", + "gen-type": "gen-grpc-typing" }, "dependencies": { "@grpc.ts/nestjs-client": "workspace:*", @@ -22,6 +23,7 @@ "rxjs": "^7.8.0" }, "devDependencies": { + "@grpc.ts/cli": "workspace:*", "@nestjs/cli": "^9.4.0", "@nestjs/schematics": "^9.1.0", "@types/detect-port": "^1.3.2", diff --git a/examples/nestjs/protobufTypings/example.interface.ts b/examples/nestjs/protobufTypings/example.interface.ts new file mode 100644 index 0000000..d17de7a --- /dev/null +++ b/examples/nestjs/protobufTypings/example.interface.ts @@ -0,0 +1,32 @@ +import type { + Metadata, + GrpcTimestamp, + ServiceClient, +} from '@grpc.ts/cli/node_modules/@grpc.ts/core'; + +export const PACKAGE_NAME = 'example.v1'; + +export interface IMessage { + message: string; + createdAt: GrpcTimestamp; +} + +export interface ISendMessageRequest { + message: string; + createdAt: GrpcTimestamp; +} + +export interface IGetMessageResponse { + message: IMessage; +} + +export interface IExampleService extends ServiceClient { + SendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; + sendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; +} diff --git a/examples/nestjs/protobufTypings/example2.interface.ts b/examples/nestjs/protobufTypings/example2.interface.ts new file mode 100644 index 0000000..7cbb194 --- /dev/null +++ b/examples/nestjs/protobufTypings/example2.interface.ts @@ -0,0 +1,32 @@ +import type { + Metadata, + GrpcTimestamp, + ServiceClient, +} from '@grpc.ts/cli/node_modules/@grpc.ts/core'; + +export const PACKAGE_NAME = 'example2.v1'; + +export interface IMessage { + message: string; + createdAt: GrpcTimestamp; +} + +export interface ISendMessageRequest { + message: string; + createdAt: GrpcTimestamp; +} + +export interface IGetMessageResponse { + message: IMessage; +} + +export interface IExampleService extends ServiceClient { + SendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; + sendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; +} diff --git a/examples/nestjs/protobufTypings/example3.interface.ts b/examples/nestjs/protobufTypings/example3.interface.ts new file mode 100644 index 0000000..101ae47 --- /dev/null +++ b/examples/nestjs/protobufTypings/example3.interface.ts @@ -0,0 +1,30 @@ +import type { + Metadata, + GrpcTimestamp, + ServiceClient, +} from '@grpc.ts/cli/node_modules/@grpc.ts/core'; + +export interface IMessage { + message: string; + createdAt: GrpcTimestamp; +} + +export interface ISendMessageRequest { + message: string; + createdAt: GrpcTimestamp; +} + +export interface IGetMessageResponse { + message: IMessage; +} + +export interface IExampleService extends ServiceClient { + SendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; + sendMessage( + params: ISendMessageRequest, + metadata?: Metadata, + ): Promise; +} diff --git a/examples/nestjs/src/client/client.controller.ts b/examples/nestjs/src/client/client.controller.ts index 8f1b5af..5511989 100644 --- a/examples/nestjs/src/client/client.controller.ts +++ b/examples/nestjs/src/client/client.controller.ts @@ -6,20 +6,25 @@ import { dateToGrpcTimestamp, } from '@grpc.ts/nestjs-client'; +import { IExampleService } from '../../protobufTypings/example3.interface'; + @Controller('/client') export class ClientController { constructor( @GrpcService({ serviceName: 'ExampleService', }) - private readonly exampleService: any, + private readonly exampleService: IExampleService, ) {} @Get() public async sendMessage(): Promise { this.exampleService .sendMessage( - { message: 'hello', createdAt: dateToGrpcTimestamp(new Date()) }, + { + message: 'hello', + createdAt: dateToGrpcTimestamp(new Date()), + }, createMetadata({ meta: 'test', }), diff --git a/examples/nestjs/src/server/server.controller.ts b/examples/nestjs/src/server/server.controller.ts index 8defc18..44172fe 100644 --- a/examples/nestjs/src/server/server.controller.ts +++ b/examples/nestjs/src/server/server.controller.ts @@ -3,25 +3,24 @@ import { GrpcUnaryMethod, dateToGrpcTimestamp, type Metadata, - type Timestamp, type ServerUnaryCall, } from '@grpc.ts/nestjs-server'; +import type { + IGetMessageResponse, + ISendMessageRequest, +} from '../../protobufTypings/example3.interface'; + @Controller() export class ServerController { @GrpcUnaryMethod({ serviceName: 'ExampleService', }) public async sendMessage( - request: unknown, + request: ISendMessageRequest, metadata: Metadata, call: ServerUnaryCall, - ): Promise<{ - message: { - message: string; - createdAt: Timestamp.AsObject; - }; - }> { + ): Promise { console.log('request', request); console.log('metadata', metadata); console.log('call', call); diff --git a/package.json b/package.json index ca4e588..55de44b 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "husky": "^8.0.3", "lint-staged": "^13.2.1", "prettier": "^2.8.7", - "rollup": "^3.20.5", + "rollup": "^3.20.6", "turbo": "^1.9.3", "typescript": "^5.0.4" }, diff --git a/packages/core/package.json b/packages/core/package.json index 7659597..155af06 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@grpc.ts/core", - "version": "1.1.0", + "version": "1.1.1", "license": "MIT", "directories": { "lib": "lib" diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 5aafade..1aeace6 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -11,6 +11,7 @@ export * from './utils'; export type { IClientProps, IServerProps, + TUnaryHandlerFunc, IServerWrapperProps, TAddUnaryHandlerFunc, IAddUnaryHandlerOptionsProps, diff --git a/packages/core/src/interface.ts b/packages/core/src/interface.ts index 95a0f47..a94e0dc 100644 --- a/packages/core/src/interface.ts +++ b/packages/core/src/interface.ts @@ -70,22 +70,22 @@ export interface IAddUnaryHandlerOptionsProps { package?: string; } -type TUnaryHandlerFunc = ( +export type TUnaryHandlerFunc = ( request: TRequest, metadata: Metadata, call: ServerUnaryCall, ) => TResponse; -export type TAddUnaryHandlerFunc = ( +export type TAddUnaryHandlerFunc = ( serviceName: string, rpcName: string, - impl: TUnaryHandlerFunc, + impl: TUnaryHandlerFunc, options?: IAddUnaryHandlerOptionsProps, ) => void; -export interface IServerWrapperProps { +export interface IServerWrapperProps { server: Server; - addUnaryHandler: TAddUnaryHandlerFunc; + addUnaryHandler: TAddUnaryHandlerFunc; } interface IGetServiceOptionsProps { diff --git a/packages/core/src/utils.ts b/packages/core/src/utils.ts index 5d3236d..11309df 100644 --- a/packages/core/src/utils.ts +++ b/packages/core/src/utils.ts @@ -1,7 +1,7 @@ import { Metadata, type MetadataValue } from '@grpc/grpc-js'; import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; -import type { GrpcTimestamp } from './dataType'; +import { GrpcTimestamp } from './dataType'; function isDate(data: Date | string | number): data is Date { return data instanceof Date; @@ -21,17 +21,33 @@ export function createMetadata( export function dateToGrpcTimestamp( data: Date | string | number, -): Timestamp.AsObject { +): GrpcTimestamp { if (!isDate(data)) { data = new Date(data); } - return Timestamp.fromDate(data).toObject(); + const { nanos, seconds } = Timestamp.fromDate(data).toObject(); + const timestamp = new GrpcTimestamp(); + timestamp.nanos = nanos; + timestamp.seconds = { + height: 0, + low: seconds, + unsigned: false, + }; + + return timestamp; } export function grpcTimestampToDate(data: GrpcTimestamp): Date { + let low: number; const { nanos, seconds } = data; - const { low } = seconds || {}; + + if (typeof seconds === 'string' || typeof seconds === 'number') { + low = parseInt(seconds, 10); + } else { + low = (seconds || {}).low; + } + const timestamp = new Timestamp(); timestamp.setNanos(nanos); diff --git a/packages/fastify/server/package.json b/packages/fastify/server/package.json index c1f13c7..88bc5e0 100644 --- a/packages/fastify/server/package.json +++ b/packages/fastify/server/package.json @@ -1,6 +1,6 @@ { "name": "@grpc.ts/fastify-server", - "version": "1.1.0", + "version": "1.1.1", "license": "MIT", "directories": { "lib": "lib" diff --git a/packages/fastify/server/src/index.d.ts b/packages/fastify/server/src/index.d.ts index 4c95ce7..f7ebaa5 100644 --- a/packages/fastify/server/src/index.d.ts +++ b/packages/fastify/server/src/index.d.ts @@ -1,9 +1,21 @@ -import type { TGetServerFunc } from './interface'; +import type { Server } from '@grpc.ts/core/node_modules/@grpc/grpc-js'; +import type { + TUnaryHandlerFunc, + IAddUnaryHandlerOptionsProps, +} from '@grpc.ts/core'; declare module 'fastify' { export interface FastifyInstance { grpcServer: { - getServer: TGetServerFunc; + getServer: (serverName?: string) => { + server: Server; + addUnaryHandler: ( + serviceName: string, + rpcName: string, + impl: TUnaryHandlerFunc, + options?: IAddUnaryHandlerOptionsProps, + ) => void; + }; }; } } diff --git a/packages/fastify/server/src/interface.ts b/packages/fastify/server/src/interface.ts index 0941188..60dae02 100644 --- a/packages/fastify/server/src/interface.ts +++ b/packages/fastify/server/src/interface.ts @@ -1,3 +1,5 @@ import type { IServerWrapperProps } from '@grpc.ts/core'; -export type TGetServerFunc = (serverName?: string) => IServerWrapperProps; +export type TGetServerFunc = ( + serverName?: string, +) => IServerWrapperProps; diff --git a/packages/nestjs/client/package.json b/packages/nestjs/client/package.json index 4d5ed1e..e2ce439 100644 --- a/packages/nestjs/client/package.json +++ b/packages/nestjs/client/package.json @@ -1,6 +1,6 @@ { "name": "@grpc.ts/nestjs-client", - "version": "1.0.0", + "version": "1.0.1", "license": "MIT", "directories": { "lib": "lib" diff --git a/packages/nestjs/client/src/index.ts b/packages/nestjs/client/src/index.ts index 18605b7..5312d38 100644 --- a/packages/nestjs/client/src/index.ts +++ b/packages/nestjs/client/src/index.ts @@ -1,6 +1,8 @@ export { Metadata, + GrpcTimestamp, createMetadata, + createSecureContext, grpcTimestampToDate, dateToGrpcTimestamp, } from '@grpc.ts/core'; diff --git a/packages/nestjs/server/package.json b/packages/nestjs/server/package.json index 3936309..6053580 100644 --- a/packages/nestjs/server/package.json +++ b/packages/nestjs/server/package.json @@ -1,6 +1,6 @@ { "name": "@grpc.ts/nestjs-server", - "version": "1.0.0", + "version": "1.0.1", "license": "MIT", "directories": { "lib": "lib" diff --git a/packages/nestjs/server/src/index.ts b/packages/nestjs/server/src/index.ts index 977cc6c..d4bf8e2 100644 --- a/packages/nestjs/server/src/index.ts +++ b/packages/nestjs/server/src/index.ts @@ -1,6 +1,8 @@ export { Metadata, + GrpcTimestamp, createMetadata, + createSecureContext, grpcTimestampToDate, dateToGrpcTimestamp, type Timestamp, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba51138..372926f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,16 @@ importers: devDependencies: '@rollup/plugin-commonjs': specifier: ^24.1.0 - version: 24.1.0(rollup@3.20.5) + version: 24.1.0(rollup@3.20.6) '@rollup/plugin-json': specifier: ^6.0.0 - version: 6.0.0(rollup@3.20.5) + version: 6.0.0(rollup@3.20.6) '@rollup/plugin-node-resolve': specifier: ^15.0.2 - version: 15.0.2(rollup@3.20.5) + version: 15.0.2(rollup@3.20.6) '@rollup/plugin-typescript': specifier: ^11.1.0 - version: 11.1.0(rollup@3.20.5)(tslib@2.5.0)(typescript@5.0.4) + version: 11.1.0(rollup@3.20.6)(tslib@2.5.0)(typescript@5.0.4) '@typescript-eslint/eslint-plugin': specifier: ^5.59.0 version: 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4) @@ -45,8 +45,8 @@ importers: specifier: ^2.8.7 version: 2.8.7 rollup: - specifier: ^3.20.5 - version: 3.20.5 + specifier: ^3.20.6 + version: 3.20.6 turbo: specifier: ^1.9.3 version: 1.9.3 @@ -69,12 +69,15 @@ importers: specifier: ^4.15.0 version: 4.15.0 vite: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.2.2 + version: 4.2.2 devDependencies: '@fastify/vite': specifier: ^4.0.0 - version: 4.0.0(fastify@4.15.0)(vite@4.2.1) + version: 4.0.0(fastify@4.15.0)(vite@4.2.2) + '@grpc.ts/cli': + specifier: workspace:* + version: link:../../packages/cli '@types/detect-port': specifier: ^1.3.2 version: 1.3.2 @@ -115,6 +118,9 @@ importers: specifier: ^7.8.0 version: 7.8.0 devDependencies: + '@grpc.ts/cli': + specifier: workspace:* + version: link:../../packages/cli '@nestjs/cli': specifier: ^9.4.0 version: 9.4.0 @@ -380,176 +386,176 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.9 - /@esbuild/android-arm64@0.17.15: - resolution: {integrity: sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==} + /@esbuild/android-arm64@0.17.17: + resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@esbuild/android-arm@0.17.15: - resolution: {integrity: sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==} + /@esbuild/android-arm@0.17.17: + resolution: {integrity: sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true optional: true - /@esbuild/android-x64@0.17.15: - resolution: {integrity: sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==} + /@esbuild/android-x64@0.17.17: + resolution: {integrity: sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.17.15: - resolution: {integrity: sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==} + /@esbuild/darwin-arm64@0.17.17: + resolution: {integrity: sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@esbuild/darwin-x64@0.17.15: - resolution: {integrity: sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==} + /@esbuild/darwin-x64@0.17.17: + resolution: {integrity: sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.17.15: - resolution: {integrity: sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==} + /@esbuild/freebsd-arm64@0.17.17: + resolution: {integrity: sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.17.15: - resolution: {integrity: sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==} + /@esbuild/freebsd-x64@0.17.17: + resolution: {integrity: sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/linux-arm64@0.17.15: - resolution: {integrity: sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==} + /@esbuild/linux-arm64@0.17.17: + resolution: {integrity: sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-arm@0.17.15: - resolution: {integrity: sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==} + /@esbuild/linux-arm@0.17.17: + resolution: {integrity: sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ia32@0.17.15: - resolution: {integrity: sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==} + /@esbuild/linux-ia32@0.17.17: + resolution: {integrity: sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-loong64@0.17.15: - resolution: {integrity: sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==} + /@esbuild/linux-loong64@0.17.17: + resolution: {integrity: sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.17.15: - resolution: {integrity: sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==} + /@esbuild/linux-mips64el@0.17.17: + resolution: {integrity: sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.17.15: - resolution: {integrity: sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==} + /@esbuild/linux-ppc64@0.17.17: + resolution: {integrity: sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.17.15: - resolution: {integrity: sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==} + /@esbuild/linux-riscv64@0.17.17: + resolution: {integrity: sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-s390x@0.17.15: - resolution: {integrity: sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==} + /@esbuild/linux-s390x@0.17.17: + resolution: {integrity: sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64@0.17.15: - resolution: {integrity: sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==} + /@esbuild/linux-x64@0.17.17: + resolution: {integrity: sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.17.15: - resolution: {integrity: sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==} + /@esbuild/netbsd-x64@0.17.17: + resolution: {integrity: sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.17.15: - resolution: {integrity: sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==} + /@esbuild/openbsd-x64@0.17.17: + resolution: {integrity: sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/sunos-x64@0.17.15: - resolution: {integrity: sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==} + /@esbuild/sunos-x64@0.17.17: + resolution: {integrity: sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /@esbuild/win32-arm64@0.17.15: - resolution: {integrity: sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==} + /@esbuild/win32-arm64@0.17.17: + resolution: {integrity: sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-ia32@0.17.15: - resolution: {integrity: sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==} + /@esbuild/win32-ia32@0.17.17: + resolution: {integrity: sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64@0.17.15: - resolution: {integrity: sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==} + /@esbuild/win32-x64@0.17.17: + resolution: {integrity: sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -646,7 +652,7 @@ packages: readable-stream: 4.3.0 dev: true - /@fastify/vite@4.0.0(fastify@4.15.0)(vite@4.2.1): + /@fastify/vite@4.0.0(fastify@4.15.0)(vite@4.2.2): resolution: {integrity: sha512-V/oAIdVoaCTbrxO1JQPV0296uSpSGjXrekproNYi7HPRmfJGzijBcxDKkki+ZsJyc0QrimYEuaRnLwjKOqQs1A==} peerDependencies: fastify: ^4 @@ -658,7 +664,7 @@ packages: fastify-plugin: 4.5.0 fs-extra: 10.1.0 klaw: 4.1.0 - vite: 4.2.1 + vite: 4.2.2 dev: true bundledDependencies: [] @@ -1010,7 +1016,7 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /@rollup/plugin-commonjs@24.1.0(rollup@3.20.5): + /@rollup/plugin-commonjs@24.1.0(rollup@3.20.6): resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1019,16 +1025,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.5) + '@rollup/pluginutils': 5.0.2(rollup@3.20.6) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.27.0 - rollup: 3.20.5 + rollup: 3.20.6 dev: true - /@rollup/plugin-json@6.0.0(rollup@3.20.5): + /@rollup/plugin-json@6.0.0(rollup@3.20.6): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1037,11 +1043,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.5) - rollup: 3.20.5 + '@rollup/pluginutils': 5.0.2(rollup@3.20.6) + rollup: 3.20.6 dev: true - /@rollup/plugin-node-resolve@15.0.2(rollup@3.20.5): + /@rollup/plugin-node-resolve@15.0.2(rollup@3.20.6): resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1050,16 +1056,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.5) + '@rollup/pluginutils': 5.0.2(rollup@3.20.6) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.1 - rollup: 3.20.5 + rollup: 3.20.6 dev: true - /@rollup/plugin-typescript@11.1.0(rollup@3.20.5)(tslib@2.5.0)(typescript@5.0.4): + /@rollup/plugin-typescript@11.1.0(rollup@3.20.6)(tslib@2.5.0)(typescript@5.0.4): resolution: {integrity: sha512-86flrfE+bSHB69znnTV6kVjkncs2LBMhcTCyxWgRxLyfXfQrxg4UwlAqENnjrrxnSNS/XKCDJCl8EkdFJVHOxw==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1072,14 +1078,14 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.5) + '@rollup/pluginutils': 5.0.2(rollup@3.20.6) resolve: 1.22.1 - rollup: 3.20.5 + rollup: 3.20.6 tslib: 2.5.0 typescript: 5.0.4 dev: true - /@rollup/pluginutils@5.0.2(rollup@3.20.5): + /@rollup/pluginutils@5.0.2(rollup@3.20.6): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1091,7 +1097,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.20.5 + rollup: 3.20.6 dev: true /@tsconfig/node10@1.0.9: @@ -2140,34 +2146,34 @@ packages: resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==} dev: true - /esbuild@0.17.15: - resolution: {integrity: sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==} + /esbuild@0.17.17: + resolution: {integrity: sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.15 - '@esbuild/android-arm64': 0.17.15 - '@esbuild/android-x64': 0.17.15 - '@esbuild/darwin-arm64': 0.17.15 - '@esbuild/darwin-x64': 0.17.15 - '@esbuild/freebsd-arm64': 0.17.15 - '@esbuild/freebsd-x64': 0.17.15 - '@esbuild/linux-arm': 0.17.15 - '@esbuild/linux-arm64': 0.17.15 - '@esbuild/linux-ia32': 0.17.15 - '@esbuild/linux-loong64': 0.17.15 - '@esbuild/linux-mips64el': 0.17.15 - '@esbuild/linux-ppc64': 0.17.15 - '@esbuild/linux-riscv64': 0.17.15 - '@esbuild/linux-s390x': 0.17.15 - '@esbuild/linux-x64': 0.17.15 - '@esbuild/netbsd-x64': 0.17.15 - '@esbuild/openbsd-x64': 0.17.15 - '@esbuild/sunos-x64': 0.17.15 - '@esbuild/win32-arm64': 0.17.15 - '@esbuild/win32-ia32': 0.17.15 - '@esbuild/win32-x64': 0.17.15 + '@esbuild/android-arm': 0.17.17 + '@esbuild/android-arm64': 0.17.17 + '@esbuild/android-x64': 0.17.17 + '@esbuild/darwin-arm64': 0.17.17 + '@esbuild/darwin-x64': 0.17.17 + '@esbuild/freebsd-arm64': 0.17.17 + '@esbuild/freebsd-x64': 0.17.17 + '@esbuild/linux-arm': 0.17.17 + '@esbuild/linux-arm64': 0.17.17 + '@esbuild/linux-ia32': 0.17.17 + '@esbuild/linux-loong64': 0.17.17 + '@esbuild/linux-mips64el': 0.17.17 + '@esbuild/linux-ppc64': 0.17.17 + '@esbuild/linux-riscv64': 0.17.17 + '@esbuild/linux-s390x': 0.17.17 + '@esbuild/linux-x64': 0.17.17 + '@esbuild/netbsd-x64': 0.17.17 + '@esbuild/openbsd-x64': 0.17.17 + '@esbuild/sunos-x64': 0.17.17 + '@esbuild/win32-arm64': 0.17.17 + '@esbuild/win32-ia32': 0.17.17 + '@esbuild/win32-x64': 0.17.17 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -2969,6 +2975,12 @@ packages: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 + dev: true + + /is-core-module@2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} + dependencies: + has: 1.0.3 /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} @@ -3790,8 +3802,8 @@ packages: engines: {node: '>=4'} dev: true - /postcss@8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + /postcss@8.4.22: + resolution: {integrity: sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -3986,6 +3998,15 @@ packages: is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + hasBin: true + dependencies: + is-core-module: 2.12.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} @@ -4021,20 +4042,12 @@ packages: glob: 9.3.5 dev: true - /rollup@3.20.2: - resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - - /rollup@3.20.5: - resolution: {integrity: sha512-Mx6NE3nLPIP6a9ReV4dTPOYYmDiyarJNtSbc37Jx0jvh8SHySoFPgyZAp9aDP3LnYvaJOrz+fclcwq3oZDzlnA==} + /rollup@3.20.6: + resolution: {integrity: sha512-2yEB3nQXp/tBQDN0hJScJQheXdvU2wFhh6ld7K/aiZ1vYcak6N/BKjY1QrU6BvO2JWYS8bEs14FRaxXosxy2zw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: true /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} @@ -4691,7 +4704,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.2.1 + vite: 4.2.2 transitivePeerDependencies: - '@types/node' - less @@ -4702,8 +4715,8 @@ packages: - terser dev: true - /vite@4.2.1: - resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} + /vite@4.2.2: + resolution: {integrity: sha512-PcNtT5HeDxb3QaSqFYkEum8f5sCVe0R3WK20qxgIvNBZPXU/Obxs/+ubBMeE7nLWeCo2LDzv+8hRYSlcaSehig==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -4727,10 +4740,10 @@ packages: terser: optional: true dependencies: - esbuild: 0.17.15 - postcss: 8.4.21 - resolve: 1.22.1 - rollup: 3.20.2 + esbuild: 0.17.17 + postcss: 8.4.22 + resolve: 1.22.2 + rollup: 3.20.6 optionalDependencies: fsevents: 2.3.2