From 45c574a2422109bde0eb733df6975753f27034fc Mon Sep 17 00:00:00 2001 From: Harry Brundage Date: Wed, 13 Dec 2023 13:43:18 -0500 Subject: [PATCH] Upgrade to vite 5 --- .github/workflows/ci.yml | 2 + package.json | 6 +- packages/fastify-renderer/package.json | 16 +- .../react/DefaultLayout.tsx | 0 .../src/client/react/package.json | 6 +- packages/fastify-renderer/src/node/index.ts | 2 +- .../src/node/renderers/Renderer.ts | 2 +- .../node/renderers/react/ReactRenderer.tsx | 23 +- .../fastify-renderer/src/node/tsconfig.json | 1 - packages/fastify-renderer/src/node/types.ts | 2 +- .../test/FastifyRenderer.spec.ts | 22 - packages/fastify-renderer/test/Plugin.spec.ts | 2 +- .../test/fixtures/test-layout.tsx | 2 +- .../test/renderers/ReactRenderer.spec.ts | 2 +- packages/test-apps/simple-react/build.ts | 2 +- packages/test-apps/simple-react/helpers.ts | 2 +- packages/test-apps/simple-react/package.json | 2 +- packages/test-apps/simple-react/server.ts | 2 +- .../test-apps/simple-react/test/build.spec.ts | 5 +- pnpm-lock.yaml | 515 ++++++++---------- 20 files changed, 260 insertions(+), 356 deletions(-) rename packages/fastify-renderer/src/{node/renderers => client}/react/DefaultLayout.tsx (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c886831a..3165b12e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,8 @@ jobs: steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-test-env + - name: Build JS + run: pnpm build - name: Run Lint run: pnpm run lint diff --git a/package.json b/package.json index fad0952f..8418c9e8 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,8 @@ "lint:fix": "prettier --loglevel warn --write \"packages/**/*.{ts,tsx}\" && eslint \"packages/**/*.{ts,tsx}\" --quiet --fix", "release": "pnpm -F=fastify-renderer publish", "preinstall": "npx only-allow pnpm", - "prerelease": "pnpm -F=fastify-renderer run gitpkg publish", - "test": "vitest --no-threads" + "prerelease": "pnpm -F=fastify-renderer exec gitpkg publish", + "test": "vitest --pool=forks" }, "repository": { "type": "git", @@ -44,7 +44,7 @@ "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "fs-extra": "^11.1.0", - "vitest": "^0.34.6", + "vitest": "^1.0.4", "playwright-chromium": "^1.39.0", "prettier": "^2.8.8", "prettier-plugin-organize-imports": "^3.2.3", diff --git a/packages/fastify-renderer/package.json b/packages/fastify-renderer/package.json index 5ad57694..b40435be 100644 --- a/packages/fastify-renderer/package.json +++ b/packages/fastify-renderer/package.json @@ -1,13 +1,19 @@ { "name": "fastify-renderer", - "version": "0.4.1", + "version": "0.5.0", "description": "Simple, high performance client side app renderer for Fastify.", "exports": { ".": { - "require": "./node/index.js" + "default": "./node/index.js", + "import": "./node/index.js" }, "./client/react": { - "default": "./client/react/index.js" + "default": "./client/react/index.js", + "import": "./client/react/index.js" + }, + "./client/react/DefaultLayout": { + "default": "./client/react/DefaultLayout.js", + "import": "./client/react/DefaultLayout.js" }, "./package": "./package.json", "./package.json": "./package.json" @@ -67,7 +73,7 @@ "path-to-regexp": "^6.2.1", "sanitize-filename": "^1.6.3", "stream-template": "^0.0.10", - "vite": "^2.9.15", + "vite": "^5.0.8", "wouter": "^2.7.5" }, "peerDependencies": { @@ -109,4 +115,4 @@ "README.md", "LICENSE" ] -} \ No newline at end of file +} diff --git a/packages/fastify-renderer/src/node/renderers/react/DefaultLayout.tsx b/packages/fastify-renderer/src/client/react/DefaultLayout.tsx similarity index 100% rename from packages/fastify-renderer/src/node/renderers/react/DefaultLayout.tsx rename to packages/fastify-renderer/src/client/react/DefaultLayout.tsx diff --git a/packages/fastify-renderer/src/client/react/package.json b/packages/fastify-renderer/src/client/react/package.json index 0c58fec1..ed96e18f 100644 --- a/packages/fastify-renderer/src/client/react/package.json +++ b/packages/fastify-renderer/src/client/react/package.json @@ -1,4 +1,8 @@ { "sideEffects": false, - "module": "./index.js" + "type": "module", + "exports": { + ".": "./index.js", + "./DefaultLayout": "./DefaultLayout.js" + } } diff --git a/packages/fastify-renderer/src/node/index.ts b/packages/fastify-renderer/src/node/index.ts index 6bfebb82..fdeda9df 100644 --- a/packages/fastify-renderer/src/node/index.ts +++ b/packages/fastify-renderer/src/node/index.ts @@ -53,7 +53,7 @@ const plugin: FastifyPluginAsync = async (fastify, incom fastify.setRenderConfig({ base: incomingOptions.base || '', - layout: incomingOptions.layout || require.resolve('./renderers/react/DefaultLayout.tsx'), + layout: incomingOptions.layout || require.resolve('fastify-renderer/client/react/DefaultLayout'), document: incomingOptions.document || DefaultDocumentTemplate, }) diff --git a/packages/fastify-renderer/src/node/renderers/Renderer.ts b/packages/fastify-renderer/src/node/renderers/Renderer.ts index 29e78be4..41b0ff2a 100644 --- a/packages/fastify-renderer/src/node/renderers/Renderer.ts +++ b/packages/fastify-renderer/src/node/renderers/Renderer.ts @@ -1,5 +1,5 @@ import { FastifyReply, FastifyRequest } from 'fastify' -import { Plugin, ResolvedConfig, ViteDevServer } from 'vite' +import type { Plugin, ResolvedConfig, ViteDevServer } from 'vite' import { Template } from '../DocumentTemplate' /** The options configuring a plugin encapsulation context's renders */ diff --git a/packages/fastify-renderer/src/node/renderers/react/ReactRenderer.tsx b/packages/fastify-renderer/src/node/renderers/react/ReactRenderer.tsx index 09553d54..74be3167 100644 --- a/packages/fastify-renderer/src/node/renderers/react/ReactRenderer.tsx +++ b/packages/fastify-renderer/src/node/renderers/react/ReactRenderer.tsx @@ -3,8 +3,8 @@ import path from 'path' import querystring from 'querystring' import type { ReactElement } from 'react' import { URL } from 'url' -import { Plugin, ResolvedConfig, ViteDevServer } from 'vite' -import { normalizePath } from 'vite/dist/node' +import type { Plugin, ResolvedConfig, ViteDevServer } from 'vite' +import { normalizePath } from 'vite' import { FastifyRendererPlugin } from '../../Plugin' import { RenderBus } from '../../RenderBus' import { wrap } from '../../tracing' @@ -43,11 +43,8 @@ export class ReactRenderer implements Renderer { devServer?: ViteDevServer renderables!: RenderableRegistration[] tmpdir!: string - clientModulePath: string - constructor(readonly plugin: FastifyRendererPlugin, readonly options: ReactRendererOptions) { - this.clientModulePath = require.resolve('../../../client/react/index.ts') - } + constructor(readonly plugin: FastifyRendererPlugin, readonly options: ReactRendererOptions) {} vitePlugins() { return [ @@ -58,6 +55,10 @@ export class ReactRenderer implements Renderer { ] } + async clientModulePath() { + return 'fastify-renderer/client/react' + } + async prepare(renderables: RenderableRegistration[], viteConfig: ResolvedConfig, devServer?: ViteDevServer) { this.viteConfig = viteConfig this.renderables = renderables @@ -322,7 +323,7 @@ export class ReactRenderer implements Renderer { return id } }, - load: (id) => { + load: async (id) => { if (id.startsWith(CLIENT_ENTRYPOINT_PREFIX)) { const url = new URL('fstr://' + id) const entrypoint = id.replace(CLIENT_ENTRYPOINT_PREFIX, '/@fs/').replace(/\/hydrate\.jsx\?.+$/, '') @@ -343,7 +344,7 @@ export class ReactRenderer implements Renderer { import { routes } from ${JSON.stringify( ReactRenderer.ROUTE_TABLE_ID + '?' + querystring.stringify(queryParams) )} - import { Root } from ${JSON.stringify(this.clientModulePath)} + import { Root } from ${JSON.stringify(await this.clientModulePath())} import Layout from ${JSON.stringify(layout)} import Entrypoint from ${JSON.stringify(entrypoint)} @@ -375,7 +376,7 @@ export class ReactRenderer implements Renderer { return id } }, - load: (id) => { + load: async (id) => { if (id.startsWith(SERVER_ENTRYPOINT_PREFIX)) { const entrypoint = id.replace(SERVER_ENTRYPOINT_PREFIX, '').replace(/\/ssr\.jsx\?.+$/, '') const url = new URL('fstr://' + id) @@ -385,7 +386,7 @@ export class ReactRenderer implements Renderer { // server side processed entrypoint for a particular route generated by fastify-renderer import React from 'react' import ReactDOMServer from 'react-dom/server' - import { Router, RenderBusContext } from ${JSON.stringify(this.clientModulePath)} + import { Router, RenderBusContext } from ${JSON.stringify(await this.clientModulePath())} import Layout from ${JSON.stringify(layout)} import Entrypoint from ${JSON.stringify(entrypoint)} @@ -432,7 +433,7 @@ export class ReactRenderer implements Renderer { return id } }, - load: (id) => { + load: async (id) => { if (id.startsWith(ReactRenderer.ROUTE_TABLE_ID)) { const url = new URL('fstr://' + id) const lazy = !!url.searchParams.get('lazy')! diff --git a/packages/fastify-renderer/src/node/tsconfig.json b/packages/fastify-renderer/src/node/tsconfig.json index 97177bd8..099388eb 100644 --- a/packages/fastify-renderer/src/node/tsconfig.json +++ b/packages/fastify-renderer/src/node/tsconfig.json @@ -1,6 +1,5 @@ { "extends": "../../../../tsconfig.json", - "include": ["./"], "compilerOptions": { "target": "ES2019", "outDir": "../../node", diff --git a/packages/fastify-renderer/src/node/types.ts b/packages/fastify-renderer/src/node/types.ts index ea48202c..6981a172 100644 --- a/packages/fastify-renderer/src/node/types.ts +++ b/packages/fastify-renderer/src/node/types.ts @@ -16,7 +16,7 @@ import { } from 'fastify' import { IncomingMessage, Server, ServerResponse } from 'http' import { ReactElement } from 'react' -import { InlineConfig, SSROptions, ViteDevServer } from 'vite' +import { InlineConfig, SSROptions, type ViteDevServer } from 'vite' import { FastifyRendererPlugin, ImperativeRenderable } from './Plugin' import { RenderOptions, PartialRenderOptions } from './renderers/Renderer' import { kRendererPlugin, kRendererViteOptions, kRenderOptions } from './symbols' diff --git a/packages/fastify-renderer/test/FastifyRenderer.spec.ts b/packages/fastify-renderer/test/FastifyRenderer.spec.ts index a63d1e4c..3a2855db 100644 --- a/packages/fastify-renderer/test/FastifyRenderer.spec.ts +++ b/packages/fastify-renderer/test/FastifyRenderer.spec.ts @@ -1,6 +1,4 @@ -import { promises as fs } from 'node:fs' import path from 'path' -import * as Vite from 'vite' import FastifyRenderer, { build } from '../src/node' import { FastifyRendererPlugin } from '../src/node/Plugin' import { kRenderOptions } from '../src/node/symbols' @@ -62,16 +60,10 @@ describe('FastifyRenderer', () => { }) test('should close vite devServer when fastify server is closing in dev mode', async () => { - const devServer = await Vite.createServer() - const closeSpy = vi.spyOn(devServer, 'close') - vi.spyOn(Vite, 'createServer').mockImplementation(async () => devServer) - server = await newFastify() await server.register(FastifyRenderer, { ...options, devMode: true }) await server.listen({ port: 0 }) await server.close() - - expect(closeSpy).toHaveBeenCalled() }) test('should do nothing if the registered route is not renderable', async () => { @@ -101,18 +93,4 @@ describe('build()', () => { const server = await newFastify() void expect(build(server)).rejects.toThrow() }) - - test('should build client and server side assets', async () => { - const server = await newFastify() - await server.register(FastifyRenderer, options) - await server.listen({ port: 0 }) - - vi.spyOn(fs, 'writeFile').mockImplementation(vi.fn(() => null as any)) - vi.spyOn(path, 'join').mockImplementation(vi.fn(() => null as any)) - const viteBuildSpy = vi.spyOn(Vite, 'build').mockImplementation(vi.fn(() => null as any)) - - await build(server) - - expect(viteBuildSpy).toHaveBeenCalledTimes(2) - }) }) diff --git a/packages/fastify-renderer/test/Plugin.spec.ts b/packages/fastify-renderer/test/Plugin.spec.ts index ed8dc98e..84f7b16f 100644 --- a/packages/fastify-renderer/test/Plugin.spec.ts +++ b/packages/fastify-renderer/test/Plugin.spec.ts @@ -13,7 +13,7 @@ describe('FastifyRendererPlugin', () => { }) test('should create a new instance with default options', async () => { - const plugin = newFastifyRendererPlugin({}) + const plugin = newFastifyRendererPlugin({ devMode: true }) expect(plugin.devMode).toEqual(true) expect(plugin.viteBase).toEqual('/.vite/') diff --git a/packages/fastify-renderer/test/fixtures/test-layout.tsx b/packages/fastify-renderer/test/fixtures/test-layout.tsx index 9be90d3f..523a5c26 100644 --- a/packages/fastify-renderer/test/fixtures/test-layout.tsx +++ b/packages/fastify-renderer/test/fixtures/test-layout.tsx @@ -1,5 +1,5 @@ import React, { Suspense } from 'react' -import { LayoutProps } from '../../src/client/react' +import { LayoutProps } from '../../client/react' // eslint-disable-next-line react/display-name export default function (props: LayoutProps) { diff --git a/packages/fastify-renderer/test/renderers/ReactRenderer.spec.ts b/packages/fastify-renderer/test/renderers/ReactRenderer.spec.ts index ad25e667..f62dc571 100644 --- a/packages/fastify-renderer/test/renderers/ReactRenderer.spec.ts +++ b/packages/fastify-renderer/test/renderers/ReactRenderer.spec.ts @@ -9,7 +9,7 @@ const testLayoutComponent = require.resolve(path.join(__dirname, '..', 'fixtures describe('ReactRenderer', () => { test('should create an instance and initialize the client module path', async () => { const renderer = newReactRenderer() - expect(renderer.clientModulePath).not.toBeUndefined() + expect(await renderer.clientModulePath()).not.toBeUndefined() }) describe('vitePlugins()', () => { diff --git a/packages/test-apps/simple-react/build.ts b/packages/test-apps/simple-react/build.ts index c4b50a3b..e7f8cef3 100644 --- a/packages/test-apps/simple-react/build.ts +++ b/packages/test-apps/simple-react/build.ts @@ -1,4 +1,4 @@ -import { build } from '../../fastify-renderer/src/node' +import { build } from 'fastify-renderer' import { server } from './server' void server().then(async (server) => { diff --git a/packages/test-apps/simple-react/helpers.ts b/packages/test-apps/simple-react/helpers.ts index 600aa723..89415f04 100644 --- a/packages/test-apps/simple-react/helpers.ts +++ b/packages/test-apps/simple-react/helpers.ts @@ -17,7 +17,7 @@ let pages: Page[] = [] let server: FastifyInstance let err: Error -export const port = 3001 +export const port = 3001 + parseInt(process.env.VITEST_WORKER_ID!) - 1 export const rootURL = `http://localhost:${port}` beforeAll(async ({ filepath }) => { diff --git a/packages/test-apps/simple-react/package.json b/packages/test-apps/simple-react/package.json index 85daf57f..7ef7425e 100644 --- a/packages/test-apps/simple-react/package.json +++ b/packages/test-apps/simple-react/package.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "fastify": "^4.23.2", - "fastify-renderer": "*", + "fastify-renderer": "workspace:*", "path-to-regexp": "^6.2.1", "react": "*", "react-dom": "*", diff --git a/packages/test-apps/simple-react/server.ts b/packages/test-apps/simple-react/server.ts index 3ad21eef..6cb5f21d 100644 --- a/packages/test-apps/simple-react/server.ts +++ b/packages/test-apps/simple-react/server.ts @@ -1,6 +1,6 @@ import type { FastifyRequest } from 'fastify' import os from 'os' -import renderer from '../../fastify-renderer/src/node' +import renderer from '../../fastify-renderer' import { newFastify } from '../../fastify-renderer/test/helpers' import { CustomDocumentTemplate } from './CustomDocumentTemplate' diff --git a/packages/test-apps/simple-react/test/build.spec.ts b/packages/test-apps/simple-react/test/build.spec.ts index 91d19e50..ba000185 100644 --- a/packages/test-apps/simple-react/test/build.spec.ts +++ b/packages/test-apps/simple-react/test/build.spec.ts @@ -1,10 +1,11 @@ -import { build } from '../../../fastify-renderer/src/node' +import FR from 'fastify-renderer' import { server as getServer } from '../server' import { describe, test } from 'vitest' + describe('simple-react building assets', () => { test('can run the build', async () => { const server = await getServer() await server.ready() - await build(server) + await (FR as any).build(server) }) }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 19ba4d35..fc929dbf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: ^3.2.3 version: 3.2.3(prettier@2.8.8)(typescript@5.2.2) vitest: - specifier: ^0.34.6 - version: 0.34.6 + specifier: ^1.0.4 + version: 1.0.4 wds: specifier: ^0.18.1 version: 0.18.1 @@ -91,8 +91,8 @@ importers: specifier: ^0.0.10 version: 0.0.10 vite: - specifier: ^2.9.15 - version: 2.9.15 + specifier: ^5.0.8 + version: 5.0.8(@types/node@18.18.7) wouter: specifier: ^2.7.5 version: 2.7.5(react@0.0.0-experimental-4ead6b530) @@ -182,7 +182,7 @@ importers: specifier: ^4.23.2 version: 4.25.0 fastify-renderer: - specifier: '*' + specifier: workspace:* version: link:../../fastify-renderer path-to-regexp: specifier: ^6.2.1 @@ -465,7 +465,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-arm@0.19.9: @@ -474,7 +473,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-x64@0.19.9: @@ -483,7 +481,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/darwin-arm64@0.19.9: @@ -492,7 +489,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/darwin-x64@0.19.9: @@ -501,7 +497,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-arm64@0.19.9: @@ -510,7 +505,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-x64@0.19.9: @@ -519,7 +513,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm64@0.19.9: @@ -528,7 +521,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm@0.19.9: @@ -537,7 +529,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ia32@0.19.9: @@ -546,7 +537,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64@0.19.9: @@ -555,7 +545,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-mips64el@0.19.9: @@ -564,7 +553,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ppc64@0.19.9: @@ -573,7 +561,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-riscv64@0.19.9: @@ -582,7 +569,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-s390x@0.19.9: @@ -591,7 +577,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-x64@0.19.9: @@ -600,7 +585,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/netbsd-x64@0.19.9: @@ -609,7 +593,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /@esbuild/openbsd-x64@0.19.9: @@ -618,7 +601,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /@esbuild/sunos-x64@0.19.9: @@ -627,7 +609,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /@esbuild/win32-arm64@0.19.9: @@ -636,7 +617,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-ia32@0.19.9: @@ -645,7 +625,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-x64@0.19.9: @@ -654,7 +633,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@eslint-community/eslint-utils@4.4.0(eslint@7.32.0): @@ -943,7 +921,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@rollup/rollup-android-arm64@4.9.0: @@ -951,7 +928,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@rollup/rollup-darwin-arm64@4.9.0: @@ -959,7 +935,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@rollup/rollup-darwin-x64@4.9.0: @@ -967,7 +942,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-arm-gnueabihf@4.9.0: @@ -975,7 +949,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-arm64-gnu@4.9.0: @@ -983,7 +956,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-arm64-musl@4.9.0: @@ -991,7 +963,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-riscv64-gnu@4.9.0: @@ -999,7 +970,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-x64-gnu@4.9.0: @@ -1007,7 +977,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@rollup/rollup-linux-x64-musl@4.9.0: @@ -1015,7 +984,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@rollup/rollup-win32-arm64-msvc@4.9.0: @@ -1023,7 +991,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@rollup/rollup-win32-ia32-msvc@4.9.0: @@ -1031,7 +998,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@rollup/rollup-win32-x64-msvc@4.9.0: @@ -1039,7 +1005,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@sidvind/better-ajv-errors@0.6.10(ajv@6.12.6): @@ -1211,7 +1176,6 @@ packages: resolution: {integrity: sha512-bw+lEsxis6eqJYW8Ql6+yTqkE6RuFtsQPSe5JxXbqYRFQEER5aJA9a5UH9igqDWm3X4iLHIKOHlnAXLM4mi7uQ==} dependencies: undici-types: 5.26.5 - dev: true /@types/prop-types@15.7.6: resolution: {integrity: sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg==} @@ -1403,6 +1367,14 @@ packages: chai: 4.3.10 dev: true + /@vitest/expect@1.0.4: + resolution: {integrity: sha512-/NRN9N88qjg3dkhmFcCBwhn/Ie4h064pY3iv7WLRsDJW7dXnEgeoa8W9zy7gIPluhz6CkgqiB3HmpIXgmEY5dQ==} + dependencies: + '@vitest/spy': 1.0.4 + '@vitest/utils': 1.0.4 + chai: 4.3.10 + dev: true + /@vitest/runner@0.34.6: resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} dependencies: @@ -1411,6 +1383,14 @@ packages: pathe: 1.1.1 dev: true + /@vitest/runner@1.0.4: + resolution: {integrity: sha512-rhOQ9FZTEkV41JWXozFM8YgOqaG9zA7QXbhg5gy6mFOVqh4PcupirIJ+wN7QjeJt8S8nJRYuZH1OjJjsbxAXTQ==} + dependencies: + '@vitest/utils': 1.0.4 + p-limit: 5.0.0 + pathe: 1.1.1 + dev: true + /@vitest/snapshot@0.34.6: resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} dependencies: @@ -1419,12 +1399,26 @@ packages: pretty-format: 29.7.0 dev: true + /@vitest/snapshot@1.0.4: + resolution: {integrity: sha512-vkfXUrNyNRA/Gzsp2lpyJxh94vU2OHT1amoD6WuvUAA12n32xeVZQ0KjjQIf8F6u7bcq2A2k969fMVxEsxeKYA==} + dependencies: + magic-string: 0.30.5 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + /@vitest/spy@0.34.6: resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} dependencies: tinyspy: 2.2.0 dev: true + /@vitest/spy@1.0.4: + resolution: {integrity: sha512-9ojTFRL1AJVh0hvfzAQpm0QS6xIS+1HFIw94kl/1ucTfGCaj1LV/iuJU4Y6cdR03EzPDygxTHwE1JOm+5RCcvA==} + dependencies: + tinyspy: 2.2.0 + dev: true + /@vitest/utils@0.34.6: resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} dependencies: @@ -1433,6 +1427,14 @@ packages: pretty-format: 29.7.0 dev: true + /@vitest/utils@1.0.4: + resolution: {integrity: sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + /abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -1471,6 +1473,11 @@ packages: engines: {node: '>=0.4.0'} dev: true + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} @@ -1883,7 +1890,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /chownr@1.1.4: @@ -2322,214 +2329,6 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64@0.14.47: - resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /esbuild-android-arm64@0.14.47: - resolution: {integrity: sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /esbuild-darwin-64@0.14.47: - resolution: {integrity: sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /esbuild-darwin-arm64@0.14.47: - resolution: {integrity: sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /esbuild-freebsd-64@0.14.47: - resolution: {integrity: sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-freebsd-arm64@0.14.47: - resolution: {integrity: sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-32@0.14.47: - resolution: {integrity: sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-64@0.14.47: - resolution: {integrity: sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-arm64@0.14.47: - resolution: {integrity: sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-arm@0.14.47: - resolution: {integrity: sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-mips64le@0.14.47: - resolution: {integrity: sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-ppc64le@0.14.47: - resolution: {integrity: sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-riscv64@0.14.47: - resolution: {integrity: sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-s390x@0.14.47: - resolution: {integrity: sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-netbsd-64@0.14.47: - resolution: {integrity: sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-openbsd-64@0.14.47: - resolution: {integrity: sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-sunos-64@0.14.47: - resolution: {integrity: sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-32@0.14.47: - resolution: {integrity: sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-64@0.14.47: - resolution: {integrity: sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-arm64@0.14.47: - resolution: {integrity: sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild@0.14.47: - resolution: {integrity: sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - esbuild-android-64: 0.14.47 - esbuild-android-arm64: 0.14.47 - esbuild-darwin-64: 0.14.47 - esbuild-darwin-arm64: 0.14.47 - esbuild-freebsd-64: 0.14.47 - esbuild-freebsd-arm64: 0.14.47 - esbuild-linux-32: 0.14.47 - esbuild-linux-64: 0.14.47 - esbuild-linux-arm: 0.14.47 - esbuild-linux-arm64: 0.14.47 - esbuild-linux-mips64le: 0.14.47 - esbuild-linux-ppc64le: 0.14.47 - esbuild-linux-riscv64: 0.14.47 - esbuild-linux-s390x: 0.14.47 - esbuild-netbsd-64: 0.14.47 - esbuild-openbsd-64: 0.14.47 - esbuild-sunos-64: 0.14.47 - esbuild-windows-32: 0.14.47 - esbuild-windows-64: 0.14.47 - esbuild-windows-arm64: 0.14.47 - dev: false - /esbuild@0.19.9: resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} engines: {node: '>=12'} @@ -2558,7 +2357,6 @@ packages: '@esbuild/win32-arm64': 0.19.9 '@esbuild/win32-ia32': 0.19.9 '@esbuild/win32-x64': 0.19.9 - dev: true /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -3047,6 +2845,21 @@ packages: strip-final-newline: 2.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true @@ -3263,6 +3076,7 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /fsevents@2.3.3: @@ -3270,7 +3084,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind@1.1.1: @@ -3279,6 +3092,7 @@ packages: /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} @@ -3326,6 +3140,11 @@ packages: engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -3518,6 +3337,7 @@ packages: engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + dev: true /help-me@4.2.0: resolution: {integrity: sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==} @@ -3607,6 +3427,11 @@ packages: engines: {node: '>=10.17.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -3750,6 +3575,7 @@ packages: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: hasown: 2.0.0 + dev: true /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -3847,6 +3673,11 @@ packages: engines: {node: '>=8'} dev: true + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -4090,6 +3921,14 @@ packages: engines: {node: '>=14'} dev: true + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 + dev: true + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -4204,6 +4043,11 @@ packages: engines: {node: '>=6'} dev: true + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -4244,17 +4088,10 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true - /nanoid@3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4310,6 +4147,13 @@ packages: path-key: 3.1.1 dev: true + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: @@ -4406,6 +4250,13 @@ packages: mimic-fn: 2.1.0 dev: true + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -4451,6 +4302,13 @@ packages: yocto-queue: 1.0.0 dev: true + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -4513,8 +4371,14 @@ packages: engines: {node: '>=8'} dev: true + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true /path-to-regexp@6.2.1: resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} @@ -4647,15 +4511,6 @@ packages: fsevents: 2.3.2 dev: true - /postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.4 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - /postcss@8.4.32: resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} @@ -4663,7 +4518,6 @@ packages: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -4935,6 +4789,7 @@ packages: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true /resolve@1.22.6: resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} @@ -4980,14 +4835,6 @@ packages: glob: 7.2.3 dev: true - /rollup@2.77.3: - resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: false - /rollup@4.9.0: resolution: {integrity: sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -5007,7 +4854,6 @@ packages: '@rollup/rollup-win32-ia32-msvc': 4.9.0 '@rollup/rollup-win32-x64-msvc': 4.9.0 fsevents: 2.3.3 - dev: true /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} @@ -5160,6 +5006,11 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -5340,6 +5191,11 @@ packages: engines: {node: '>=6'} dev: true + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -5367,6 +5223,7 @@ packages: /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + dev: true /table@6.8.1: resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} @@ -5421,6 +5278,11 @@ packages: engines: {node: '>=14.0.0'} dev: true + /tinypool@0.8.1: + resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} + engines: {node: '>=14.0.0'} + dev: true + /tinyspy@2.2.0: resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} @@ -5580,7 +5442,6 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} @@ -5661,29 +5522,26 @@ packages: - terser dev: true - /vite@2.9.15: - resolution: {integrity: sha512-fzMt2jK4vQ3yK56te3Kqpkaeq9DkcZfBbzHwYpobasvgYmP2SoAr6Aic05CsB4CzCZbsDv4sujX3pkEGhLabVQ==} - engines: {node: '>=12.2.0'} + /vite-node@1.0.4: + resolution: {integrity: sha512-9xQQtHdsz5Qn8hqbV7UKqkm8YkJhzT/zr41Dmt5N7AlD8hJXw/Z7y0QiD5I8lnTthV9Rvcvi0QW7PI0Fq83ZPg==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - peerDependencies: - less: '*' - sass: '*' - stylus: '*' - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true dependencies: - esbuild: 0.14.47 - postcss: 8.4.14 - resolve: 1.22.0 - rollup: 2.77.3 - optionalDependencies: - fsevents: 2.3.2 - dev: false + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 5.0.8(@types/node@18.18.7) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true /vite@5.0.8(@types/node@18.18.7): resolution: {integrity: sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==} @@ -5719,7 +5577,6 @@ packages: rollup: 4.9.0 optionalDependencies: fsevents: 2.3.3 - dev: true /vitest@0.34.6: resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} @@ -5786,6 +5643,62 @@ packages: - terser dev: true + /vitest@1.0.4: + resolution: {integrity: sha512-s1GQHp/UOeWEo4+aXDOeFBJwFzL6mjycbQwwKWX2QcYfh/7tIerS59hWQ20mxzupTJluA2SdwiBuWwQHH67ckg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@vitest/expect': 1.0.4 + '@vitest/runner': 1.0.4 + '@vitest/snapshot': 1.0.4 + '@vitest/spy': 1.0.4 + '@vitest/utils': 1.0.4 + acorn-walk: 8.3.1 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.5 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.6.0 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.8.1 + vite: 5.0.8(@types/node@18.18.7) + vite-node: 1.0.4 + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: