From a141604aad0e0eea6ac3684b10fa410c34344272 Mon Sep 17 00:00:00 2001 From: James Dabbs Date: Sun, 14 Jan 2024 15:57:53 -0800 Subject: [PATCH] feat: build and publish data-dev container --- .github/workflows/e2e.yaml | 3 +- .github/workflows/images.yaml | 58 +++++ .github/workflows/test.yaml | 3 +- images/compile/Dockerfile | 27 +++ packages/compile/action.yml | 11 - packages/compile/package.json | 1 - packages/compile/src/main.test.ts | 26 +-- packages/compile/src/main.ts | 37 ++- packages/compile/test/repo/.gitignore | 1 + packages/core/package.json | 2 +- pnpm-lock.yaml | 310 ++++++++++++++++++++------ 11 files changed, 359 insertions(+), 120 deletions(-) create mode 100644 .github/workflows/images.yaml create mode 100644 images/compile/Dockerfile delete mode 100644 packages/compile/action.yml create mode 100644 packages/compile/test/repo/.gitignore diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index ce2a82ea..425747d2 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -1,4 +1,5 @@ -name: e2e +name: End-to-end tests + on: pull_request: diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml new file mode 100644 index 00000000..27feb715 --- /dev/null +++ b/.github/workflows/images.yaml @@ -0,0 +1,58 @@ +name: Publish images + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + image: + - compile + - data-dev + + env: + REGISTRY: ghcr.io + IMAGE_NAME: pi-base/${{ matrix.image }} + + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Lint Dockerfiles + uses: hadolint/hadolint-action@v3.1.0 + with: + dockerfile: images/${{ matrix.image }}/Dockerfile + + - name: Log in to the container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/pi-base/${{ matrix.image }} + tags: | + type=semver,pattern={{version}} + type=sha + + - name: Build and push + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + file: images/${{ matrix.image }}/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index c8fcbdff..894c742e 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,4 +1,5 @@ -name: test +name: Unit tests + on: push: diff --git a/images/compile/Dockerfile b/images/compile/Dockerfile new file mode 100644 index 00000000..d4741a5a --- /dev/null +++ b/images/compile/Dockerfile @@ -0,0 +1,27 @@ +# See https://pnpm.io/docker +FROM node:18-slim AS base + +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" + +RUN corepack enable + +VOLUME /data + +COPY . /app +WORKDIR /app + +FROM base AS prod-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile + +FROM base AS build +RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ + pnpm install --frozen-lockfile && \ + pnpm run --filter core build && \ + pnpm run --filter compile build && \ + pnpm deploy --filter compile --prod /prod/compile + +FROM base +COPY --from=build /prod/compile /app + +ENTRYPOINT ["node", "/app/dist/esm/main.js"] diff --git a/packages/compile/action.yml b/packages/compile/action.yml deleted file mode 100644 index 42046c45..00000000 --- a/packages/compile/action.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: Compile -description: Build a viewer bundle from data in the repository -author: James Dabbs -inputs: - repo: - description: Path to the cloned repository - out: - description: Path to write the bundle to -runs: - using: "node12" - main: "dist/main.js" diff --git a/packages/compile/package.json b/packages/compile/package.json index cfe731c1..2645cff2 100644 --- a/packages/compile/package.json +++ b/packages/compile/package.json @@ -31,7 +31,6 @@ "test:watch": "vitest" }, "dependencies": { - "@actions/core": "^1.10.0", "@pi-base/core": "workspace:*", "chalk": "^5.2.0", "chokidar": "^3.5.3", diff --git a/packages/compile/src/main.test.ts b/packages/compile/src/main.test.ts index b1a5bf82..fcbc4ce6 100644 --- a/packages/compile/src/main.test.ts +++ b/packages/compile/src/main.test.ts @@ -5,18 +5,20 @@ import { join } from 'node:path' const main = join(__dirname, '..', 'src', 'main.ts') const repo = join(__dirname, '..', 'test', 'repo') -const out = join(repo, 'out.json') +const out = 'out.json' async function run(dir: string) { - const { stdout, stderr, error, status } = spawnSync('tsx', [main], { - env: { - GITHUB_REF: 'refs/heads/test', - GITHUB_SHA: 'c74d99cf46f6ed23e742f2617e9908294b4a608b', - GITHUB_WORKSPACE: join(repo, dir), - INPUT_OUT: out, - PATH: process.env.PATH, + const { stdout, stderr, error, status } = spawnSync( + 'tsx', + [main, join(repo, dir), out], + { + env: { + GITHUB_REF: 'refs/heads/test', + GITHUB_SHA: 'c74d99cf46f6ed23e742f2617e9908294b4a608b', + PATH: process.env.PATH, + }, }, - }) + ) if (error) { throw error @@ -43,12 +45,10 @@ afterAll(cleanup) it('builds a bundle', async () => { const { output, error } = await run('valid') - expect(output).toContain( - `::debug::Compiling repo=${repo}/valid to out=${out}`, - ) + expect(output).toContain(`::debug Compiling repo=${repo}/valid to out=`) expect(error).toBe(false) - const bundle = JSON.parse((await readFile(out)).toString()) + const bundle = JSON.parse((await readFile(`${repo}/valid/${out}`)).toString()) expect(bundle.properties.length).toEqual(3) expect(bundle.spaces.length).toEqual(2) diff --git a/packages/compile/src/main.ts b/packages/compile/src/main.ts index 6fb8e4ff..8d244192 100644 --- a/packages/compile/src/main.ts +++ b/packages/compile/src/main.ts @@ -1,44 +1,39 @@ -/** - * Entry point for running as a Github action, with the local workspace - * containing the data repository. Set GITHUB_WORKSPACE to use a different - * data repository. - */ -import * as core from '@actions/core' import * as fs from 'fs' import * as process from 'process' import { bundle as B } from '@pi-base/core' import load from './load.js' -async function run(): Promise { - const repo: string = process.env.GITHUB_WORKSPACE || '.' - const outpath: string = core.getInput('out') - - core.debug(`Compiling repo=${repo} to out=${outpath}`) +async function run(repo = '.', out = 'bundle.json'): Promise { + log(`Compiling repo=${repo} to out=${out}`, 'debug') const { bundle, errors } = await load(repo) if (errors) { errors.forEach((messages, path) => { messages.forEach(message => { - error(path, message) + log(`file=${path}::${message}`, 'error') }) }) } if (errors || !bundle) { - core.setFailed('Compilation finished with errors') - return + log('Compilation finished with errors', 'error') + process.exit(1) } - fs.writeFileSync(outpath, JSON.stringify(B.serialize(bundle))) + fs.writeFileSync(`${repo}/${out}`, JSON.stringify(B.serialize(bundle))) +} + +type Level = 'debug' | 'info' | 'error' + +function log(message: string, level: Level = 'info') { + console.log(`::${level} ${message}`) } -function error(file: string, message: string) { - console.log(`::error file=${file}::${message}`) +function fail(message: string) { + log(message, 'error') + process.exit(1) } -run().catch(err => { - core.setFailed(err.message) - core.error(err.message) -}) +run(...process.argv.slice(2)).catch(err => fail(err.message)) diff --git a/packages/compile/test/repo/.gitignore b/packages/compile/test/repo/.gitignore new file mode 100644 index 00000000..a6c57f5f --- /dev/null +++ b/packages/compile/test/repo/.gitignore @@ -0,0 +1 @@ +*.json diff --git a/packages/core/package.json b/packages/core/package.json index 36a7361f..7c64527f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -30,7 +30,7 @@ }, "dependencies": { "debug": "^4.3.4", - "micromark-util-types": "^1.0.2", + "micromark-util-types": "1.0.2", "rehype-katex": "^6.0.3", "rehype-stringify": "^9.0.3", "remark": "^14.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b33e4f3..9340e654 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,6 +10,9 @@ importers: '@vitest/coverage-v8': specifier: ^0.34.0 version: 0.34.0(vitest@0.34.6) + '@vitest/coverage-v8': + specifier: ^0.34.0 + version: 0.34.0(vitest@0.34.6) nodemon: specifier: ^2.0.22 version: 2.0.22 @@ -25,21 +28,25 @@ importers: ts-node: specifier: ^10.9.1 version: 10.9.1(@types/node@18.16.6)(typescript@5.3.3) + version: 10.9.1(@types/node@18.16.6)(typescript@5.3.3) typescript: specifier: ^5.3.3 version: 5.3.3 + specifier: ^5.3.3 + version: 5.3.3 vite: specifier: ^4.5.1 version: 4.5.1(@types/node@18.16.6) + specifier: ^4.5.1 + version: 4.5.1(@types/node@18.16.6) vitest: specifier: ^0.34.6 version: 0.34.6 + specifier: ^0.34.6 + version: 0.34.6 packages/compile: dependencies: - '@actions/core': - specifier: ^1.10.0 - version: 1.10.0 '@pi-base/core': specifier: workspace:* version: link:../core @@ -96,7 +103,7 @@ importers: specifier: ^4.3.4 version: 4.3.4(supports-color@8.1.1) micromark-util-types: - specifier: ^1.0.2 + specifier: 1.0.2 version: 1.0.2 rehype-katex: specifier: ^6.0.3 @@ -205,9 +212,11 @@ importers: '@sveltejs/kit': specifier: ^1.27.1 version: 1.27.1(svelte@3.59.2)(vite@4.5.1) + version: 1.27.1(svelte@3.59.2)(vite@4.5.1) '@sveltejs/vite-plugin-svelte': specifier: ^2.4.6 version: 2.4.6(svelte@3.59.2)(vite@4.5.1) + version: 2.4.6(svelte@3.59.2)(vite@4.5.1) '@tsconfig/svelte': specifier: ^3.0.0 version: 3.0.0 @@ -238,25 +247,13 @@ importers: svelte-preprocess: specifier: ^5.0.4 version: 5.0.4(svelte@3.59.2)(typescript@5.3.3) + version: 5.0.4(svelte@3.59.2)(typescript@5.3.3) tslib: specifier: ^2.6.2 version: 2.6.2 packages: - /@actions/core@1.10.0: - resolution: {integrity: sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==} - dependencies: - '@actions/http-client': 2.1.0 - uuid: 8.3.2 - dev: false - - /@actions/http-client@2.1.0: - resolution: {integrity: sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==} - dependencies: - tunnel: 0.0.6 - dev: false - /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -556,6 +553,22 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} @@ -571,6 +584,11 @@ packages: engines: {node: '>=6.0.0'} dev: true + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true @@ -640,7 +658,6 @@ packages: /@npmcli/installed-package-contents@2.0.2: resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true dependencies: npm-bundled: 3.0.0 npm-normalize-package-bin: 3.0.1 @@ -790,6 +807,10 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + /@sindresorhus/is@5.6.0: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} @@ -802,10 +823,12 @@ packages: dependencies: '@cloudflare/workers-types': 4.20230814.0 '@sveltejs/kit': 1.27.1(svelte@3.59.2)(vite@4.5.1) + '@sveltejs/kit': 1.27.1(svelte@3.59.2)(vite@4.5.1) esbuild: 0.18.20 worktop: 0.8.0-next.15 dev: true + /@sveltejs/kit@1.27.1(svelte@3.59.2)(vite@4.5.1): /@sveltejs/kit@1.27.1(svelte@3.59.2)(vite@4.5.1): resolution: {integrity: sha512-nYkOUJKbeI8fcwvt/cyhTdz6VG4kT6XVprNnzfIwif+IZ8RvxvJuPhPhYjz14ASIcMLpq8xC6D3X4xH3bvWi+Q==} engines: {node: ^16.14 || >=18} @@ -815,6 +838,7 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@3.59.2)(vite@4.5.1) '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@3.59.2)(vite@4.5.1) '@types/cookie': 0.5.1 cookie: 0.5.0 @@ -830,10 +854,12 @@ packages: tiny-glob: 0.2.9 undici: 5.26.5 vite: 4.5.1(@types/node@18.16.6) + vite: 4.5.1(@types/node@18.16.6) transitivePeerDependencies: - supports-color dev: true + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@3.59.2)(vite@4.5.1): /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@3.59.2)(vite@4.5.1): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} engines: {node: ^14.18.0 || >= 16} @@ -842,14 +868,17 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@3.59.2)(vite@4.5.1) '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@3.59.2)(vite@4.5.1) debug: 4.3.4(supports-color@8.1.1) svelte: 3.59.2 vite: 4.5.1(@types/node@18.16.6) + vite: 4.5.1(@types/node@18.16.6) transitivePeerDependencies: - supports-color dev: true + /@sveltejs/vite-plugin-svelte@2.4.6(svelte@3.59.2)(vite@4.5.1): /@sveltejs/vite-plugin-svelte@2.4.6(svelte@3.59.2)(vite@4.5.1): resolution: {integrity: sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==} engines: {node: ^14.18.0 || >= 16} @@ -857,6 +886,7 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@3.59.2)(vite@4.5.1) '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@3.59.2)(vite@4.5.1) debug: 4.3.4(supports-color@8.1.1) deepmerge: 4.3.1 @@ -866,6 +896,8 @@ packages: svelte-hmr: 0.15.3(svelte@3.59.2) vite: 4.5.1(@types/node@18.16.6) vitefu: 0.2.4(vite@4.5.1) + vite: 4.5.1(@types/node@18.16.6) + vitefu: 0.2.4(vite@4.5.1) transitivePeerDependencies: - supports-color dev: true @@ -931,12 +963,17 @@ packages: '@types/node': 20.1.1 dev: true + /@types/chai-subset@1.3.5: + resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} /@types/chai-subset@1.3.5: resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} dependencies: '@types/chai': 4.3.11 + '@types/chai': 4.3.11 dev: true + /@types/chai@4.3.11: + resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} /@types/chai@4.3.11: resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} dev: true @@ -1109,6 +1146,8 @@ packages: '@types/node': 20.1.1 dev: true + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true @@ -1117,11 +1156,21 @@ packages: dev: true optional: true + /@vitest/coverage-v8@0.34.0(vitest@0.34.6): + resolution: {integrity: sha512-rUFY9xX6nnrFvVfTDjlEaOFzfHqolUoA+Unz356T38W100QA+NiaekCFq/3XB/LXBISaFreCsVjAbPV3hjV7Jg==} /@vitest/coverage-v8@0.34.0(vitest@0.34.6): resolution: {integrity: sha512-rUFY9xX6nnrFvVfTDjlEaOFzfHqolUoA+Unz356T38W100QA+NiaekCFq/3XB/LXBISaFreCsVjAbPV3hjV7Jg==} peerDependencies: vitest: '>=0.32.0 <1' + vitest: '>=0.32.0 <1' dependencies: + '@ampproject/remapping': 2.2.1 + '@bcoe/v8-coverage': 0.2.3 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + magic-string: 0.30.5 '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 istanbul-lib-coverage: 3.2.2 @@ -1134,46 +1183,74 @@ packages: test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 vitest: 0.34.6 + transitivePeerDependencies: + - supports-color + std-env: 3.7.0 + test-exclude: 6.0.0 + v8-to-istanbul: 9.2.0 + vitest: 0.34.6 transitivePeerDependencies: - supports-color dev: true + /@vitest/expect@0.34.6: + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} /@vitest/expect@0.34.6: resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} dependencies: '@vitest/spy': 0.34.6 '@vitest/utils': 0.34.6 chai: 4.4.1 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.4.1 dev: true + /@vitest/runner@0.34.6: + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} /@vitest/runner@0.34.6: resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} dependencies: + '@vitest/utils': 0.34.6 '@vitest/utils': 0.34.6 p-limit: 4.0.0 pathe: 1.1.2 + pathe: 1.1.2 dev: true + /@vitest/snapshot@0.34.6: + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} /@vitest/snapshot@0.34.6: resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} dependencies: magic-string: 0.30.5 pathe: 1.1.2 pretty-format: 29.7.0 + magic-string: 0.30.5 + pathe: 1.1.2 + pretty-format: 29.7.0 dev: true + /@vitest/spy@0.34.6: + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} /@vitest/spy@0.34.6: resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} dependencies: tinyspy: 2.2.0 + tinyspy: 2.2.0 dev: true + /@vitest/utils@0.34.6: + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} /@vitest/utils@0.34.6: resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} dependencies: diff-sequences: 29.6.3 loupe: 2.3.7 pretty-format: 29.7.0 + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 dev: true /abbrev@1.1.1: @@ -1201,13 +1278,11 @@ packages: /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} - hasBin: true dev: true /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} - hasBin: true dev: true /agent-base@6.0.2: @@ -1561,15 +1636,20 @@ packages: /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.3 + check-error: 1.0.3 deep-eql: 4.1.3 get-func-name: 2.0.2 loupe: 2.3.7 + get-func-name: 2.0.2 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -1601,6 +1681,10 @@ packages: /character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 /check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: @@ -1693,7 +1777,6 @@ packages: /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true dev: true /colorette@2.0.20: @@ -1767,6 +1850,8 @@ packages: engines: {node: '>= 0.6'} dev: true + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true @@ -1815,7 +1900,6 @@ packages: /cypress@13.3.3: resolution: {integrity: sha512-mbdkojHhKB1xbrj7CrKWHi22uFx9P9vQFiR0sYDZZoK99OMp9/ZYN55TO5pjbXmV7xvCJ4JwBoADXjOJK8aCJw==} engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} - hasBin: true requiresBuild: true dependencies: '@cypress/request': 3.0.1 @@ -1992,6 +2076,11 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -2085,7 +2174,6 @@ packages: /esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} - hasBin: true requiresBuild: true optionalDependencies: '@esbuild/android-arm': 0.18.20 @@ -2133,7 +2221,6 @@ packages: /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} - hasBin: true dev: false /etag@1.8.1: @@ -2216,13 +2303,13 @@ packages: /extract-zip@2.0.1(supports-color@8.1.1): resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} - hasBin: true dependencies: debug: 4.3.4(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: '@types/yauzl': 2.10.3 + '@types/yauzl': 2.10.3 transitivePeerDependencies: - supports-color dev: true @@ -2397,6 +2484,8 @@ packages: wide-align: 1.1.5 dev: true + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true @@ -2453,7 +2542,6 @@ packages: /glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} - hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 @@ -2897,7 +2985,6 @@ packages: /is-ci@3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true dependencies: ci-info: 3.8.0 dev: true @@ -2986,15 +3073,22 @@ packages: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} /istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} /istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 @@ -3011,12 +3105,26 @@ packages: - supports-color dev: true + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-reports@3.1.6: resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + istanbul-lib-report: 3.0.1 dev: true /jackspeak@2.3.6: @@ -3038,7 +3146,6 @@ packages: /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 @@ -3046,7 +3153,6 @@ packages: /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true dependencies: argparse: 2.0.1 @@ -3080,7 +3186,6 @@ packages: /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} - hasBin: true dev: true /jsonc-parser@3.2.0: @@ -3116,7 +3221,6 @@ packages: /katex@0.16.7: resolution: {integrity: sha512-Xk9C6oGKRwJTfqfIbtr0Kes9OSv6IFsuhFGc7tW4urlpMJtuh+7YhzU6YEG9n8gmWKcMAFzkp7nr+r69kV0zrA==} - hasBin: true dependencies: commander: 8.3.0 dev: false @@ -3205,10 +3309,13 @@ packages: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} dev: false + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} /loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 + get-func-name: 2.0.2 dev: true /lowercase-keys@3.0.0: @@ -3240,6 +3347,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /magic-string@0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} /magic-string@0.30.3: resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} engines: {node: '>=12'} @@ -3247,6 +3356,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} @@ -3254,11 +3365,15 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: semver: 7.5.4 + semver: 7.5.4 dev: true /make-error@1.3.6: @@ -3573,7 +3688,6 @@ packages: /mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} - hasBin: true dev: true /mimic-fn@2.1.0: @@ -3700,7 +3814,6 @@ packages: /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true dependencies: minimist: 1.2.8 dev: true @@ -3708,22 +3821,25 @@ packages: /mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} - hasBin: true dev: true /mkdirp@2.1.6: resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} engines: {node: '>=10'} - hasBin: true dev: true + /mlly@1.5.0: + resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} /mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} dependencies: + acorn: 8.11.3 + pathe: 1.1.2 acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.0.3 ufo: 1.3.2 + ufo: 1.3.2 dev: true /mri@1.2.0: @@ -3746,10 +3862,11 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true dev: true /negotiator@0.6.3: @@ -3760,7 +3877,6 @@ packages: /node-gyp@9.4.0: resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==} engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 @@ -3780,7 +3896,6 @@ packages: /nodemon@2.0.22: resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} engines: {node: '>=8.10.0'} - hasBin: true dependencies: chokidar: 3.5.3 debug: 3.2.7(supports-color@5.5.0) @@ -3796,7 +3911,6 @@ packages: /nopt@1.0.10: resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} - hasBin: true dependencies: abbrev: 1.1.1 dev: true @@ -3804,7 +3918,6 @@ packages: /nopt@6.0.0: resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true dependencies: abbrev: 1.1.1 dev: true @@ -3838,7 +3951,6 @@ packages: /npm-check-updates@16.14.6: resolution: {integrity: sha512-sJ6w4AmSDP7YzBXah94Ul2JhiIbjBDfx9XYgib15um2wtiQkOyjE7Lov3MNUSQ84Ry7T81mE4ynMbl/mGbK4HQ==} engines: {node: '>=14.14'} - hasBin: true dependencies: chalk: 5.3.0 cli-table3: 0.6.3 @@ -4026,7 +4138,6 @@ packages: /pacote@15.2.0: resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true dependencies: '@npmcli/git': 4.1.0 '@npmcli/installed-package-contents': 2.0.2 @@ -4061,7 +4172,6 @@ packages: /parse-github-url@1.0.2: resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} engines: {node: '>=0.10.0'} - hasBin: true dev: true /parse5@6.0.1: @@ -4114,6 +4224,8 @@ packages: engines: {node: '>=8'} dev: true + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} /pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} dev: true @@ -4125,7 +4237,6 @@ packages: /peggy@3.0.2: resolution: {integrity: sha512-n7chtCbEoGYRwZZ0i/O3t1cPr6o+d9Xx4Zwy2LYfzv0vjchMBU0tO+qYYyvZloBPcgRgzYvALzGWHe609JjEpg==} engines: {node: '>=14'} - hasBin: true dependencies: commander: 10.0.1 source-map-generator: 0.8.0 @@ -4158,6 +4269,8 @@ packages: jsonc-parser: 3.2.0 mlly: 1.5.0 pathe: 1.1.2 + mlly: 1.5.0 + pathe: 1.1.2 dev: true /popper.js@1.16.1: @@ -4165,10 +4278,13 @@ packages: deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 dev: false + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} /postcss@8.4.33: resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} engines: {node: ^10 || ^12 || >=14} dependencies: + nanoid: 3.3.7 nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 @@ -4187,7 +4303,6 @@ packages: /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} - hasBin: true dev: true /pretty-bytes@5.6.0: @@ -4195,13 +4310,18 @@ packages: engines: {node: '>=6'} dev: true + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} /pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: + '@jest/schemas': 29.6.3 '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 + react-is: 18.2.0 dev: true /proc-log@3.0.0: @@ -4345,7 +4465,6 @@ packages: /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true dependencies: deep-extend: 0.6.0 ini: 1.3.8 @@ -4353,6 +4472,8 @@ packages: strip-json-comments: 2.0.1 dev: true + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -4539,14 +4660,12 @@ packages: /rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true dependencies: glob: 7.2.3 dev: true /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true dependencies: glob: 7.2.3 dev: true @@ -4554,15 +4673,15 @@ packages: /rimraf@5.0.5: resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} engines: {node: '>=14'} - hasBin: true dependencies: glob: 10.3.10 dev: true + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} /rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true optionalDependencies: fsevents: 2.3.3 dev: true @@ -4615,18 +4734,15 @@ packages: /semver@5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true dev: true /semver@7.0.0: resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} - hasBin: true dev: true /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} - hasBin: true dependencies: lru-cache: 6.0.0 dev: true @@ -4712,7 +4828,6 @@ packages: /sigstore@1.9.0: resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true dependencies: '@sigstore/bundle': 1.1.0 '@sigstore/protobuf-specs': 0.2.1 @@ -4792,7 +4907,6 @@ packages: /sorcery@0.11.0: resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} - hasBin: true dependencies: '@jridgewell/sourcemap-codec': 1.4.15 buffer-crc32: 0.2.13 @@ -4861,7 +4975,6 @@ packages: /sshpk@1.17.0: resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} engines: {node: '>=0.10.0'} - hasBin: true dependencies: asn1: 0.2.6 assert-plus: 1.0.0 @@ -4890,6 +5003,8 @@ packages: engines: {node: '>= 0.8'} dev: true + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true @@ -4960,10 +5075,13 @@ packages: engines: {node: '>=14.16'} dev: true + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.11.3 + acorn: 8.11.3 dev: true /style-to-object@0.4.1: @@ -5007,6 +5125,8 @@ packages: svelte: 3.59.2 svelte-preprocess: 5.0.4(svelte@3.59.2)(typescript@5.3.3) typescript: 5.3.3 + svelte-preprocess: 5.0.4(svelte@3.59.2)(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -5028,6 +5148,7 @@ packages: svelte: 3.59.2 dev: true + /svelte-preprocess@5.0.4(svelte@3.59.2)(typescript@5.3.3): /svelte-preprocess@5.0.4(svelte@3.59.2)(typescript@5.3.3): resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} @@ -5073,6 +5194,7 @@ packages: strip-indent: 3.0.0 svelte: 3.59.2 typescript: 5.3.3 + typescript: 5.3.3 dev: true /svelte@3.59.2: @@ -5116,15 +5238,21 @@ packages: globrex: 0.1.2 dev: true + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} /tinybench@2.5.1: resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} dev: true + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} /tinypool@0.7.0: resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} engines: {node: '>=14.0.0'} dev: true + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} /tinyspy@2.2.0: resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} @@ -5155,7 +5283,6 @@ packages: /touch@3.1.0: resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} - hasBin: true dependencies: nopt: 1.0.10 dev: true @@ -5185,6 +5312,7 @@ packages: code-block-writer: 12.0.0 dev: true + /ts-node@10.9.1(@types/node@18.16.6)(typescript@5.3.3): /ts-node@10.9.1(@types/node@18.16.6)(typescript@5.3.3): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -5212,6 +5340,7 @@ packages: diff: 4.0.2 make-error: 1.3.6 typescript: 5.3.3 + typescript: 5.3.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -5238,7 +5367,6 @@ packages: /tsx@4.6.2: resolution: {integrity: sha512-QPpBdJo+ZDtqZgAnq86iY/PD2KYCUPSUGIunHdGwyII99GKH+f3z3FZ8XNFLSGQIA4I365ui8wnQpl8OKLqcsg==} engines: {node: '>=18.0.0'} - hasBin: true dependencies: esbuild: 0.18.20 get-tsconfig: 4.7.2 @@ -5263,11 +5391,6 @@ packages: safe-buffer: 5.2.1 dev: true - /tunnel@0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} - engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - dev: false - /tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: true @@ -5309,9 +5432,10 @@ packages: /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} - hasBin: true dev: true + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} /ufo@1.3.2: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} dev: true @@ -5468,12 +5592,11 @@ packages: /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true + dev: true /uvu@0.5.6: resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} engines: {node: '>=8'} - hasBin: true dependencies: dequal: 2.0.3 diff: 5.1.0 @@ -5484,6 +5607,8 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} /v8-to-istanbul@9.2.0: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} @@ -5491,6 +5616,7 @@ packages: '@jridgewell/trace-mapping': 0.3.18 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 2.0.0 + convert-source-map: 2.0.0 dev: true /validate-npm-package-license@3.0.4: @@ -5541,21 +5667,26 @@ packages: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 + /vite-node@0.34.6(@types/node@18.18.7): + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} /vite-node@0.34.6(@types/node@18.18.7): resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} engines: {node: '>=v14.18.0'} - hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4(supports-color@8.1.1) mlly: 1.5.0 pathe: 1.1.2 + mlly: 1.5.0 + pathe: 1.1.2 picocolors: 1.0.0 vite: 4.5.1(@types/node@18.18.7) + vite: 4.5.1(@types/node@18.18.7) transitivePeerDependencies: - '@types/node' - less - lightningcss + - lightningcss - sass - stylus - sugarss @@ -5563,6 +5694,8 @@ packages: - terser dev: true + /vite@4.5.1(@types/node@18.16.6): + resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} /vite@4.5.1(@types/node@18.16.6): resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5571,6 +5704,7 @@ packages: '@types/node': '>= 14' less: '*' lightningcss: ^1.21.0 + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -5582,6 +5716,8 @@ packages: optional: true lightningcss: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -5595,10 +5731,15 @@ packages: esbuild: 0.18.20 postcss: 8.4.33 rollup: 3.29.4 + esbuild: 0.18.20 + postcss: 8.4.33 + rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 dev: true + /vite@4.5.1(@types/node@18.18.7): + resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} /vite@4.5.1(@types/node@18.18.7): resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5607,6 +5748,7 @@ packages: '@types/node': '>= 14' less: '*' lightningcss: ^1.21.0 + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -5618,6 +5760,8 @@ packages: optional: true lightningcss: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -5631,10 +5775,15 @@ packages: esbuild: 0.18.20 postcss: 8.4.33 rollup: 3.29.4 + '@types/node': 18.18.7 + esbuild: 0.18.20 + postcss: 8.4.33 + rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 dev: true + /vitefu@0.2.4(vite@4.5.1): /vitefu@0.2.4(vite@4.5.1): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: @@ -5644,8 +5793,11 @@ packages: optional: true dependencies: vite: 4.5.1(@types/node@18.16.6) + vite: 4.5.1(@types/node@18.16.6) dev: true + /vitest@0.34.6: + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} /vitest@0.34.6: resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} @@ -5677,6 +5829,16 @@ packages: webdriverio: optional: true dependencies: + '@types/chai': 4.3.11 + '@types/chai-subset': 1.3.5 + '@types/node': 18.18.7 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + acorn: 8.11.3 + acorn-walk: 8.3.2 '@types/chai': 4.3.11 '@types/chai-subset': 1.3.5 '@types/node': 18.18.7 @@ -5689,10 +5851,13 @@ packages: acorn-walk: 8.3.2 cac: 6.7.14 chai: 4.4.1 + chai: 4.4.1 debug: 4.3.4(supports-color@8.1.1) local-pkg: 0.4.3 magic-string: 0.30.5 pathe: 1.1.2 + magic-string: 0.30.5 + pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 1.3.0 @@ -5700,10 +5865,17 @@ packages: tinypool: 0.7.0 vite: 4.5.1(@types/node@18.18.7) vite-node: 0.34.6(@types/node@18.18.7) + std-env: 3.7.0 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.7.0 + vite: 4.5.1(@types/node@18.18.7) + vite-node: 0.34.6(@types/node@18.18.7) why-is-node-running: 2.2.2 transitivePeerDependencies: - less - lightningcss + - lightningcss - sass - stylus - sugarss @@ -5717,7 +5889,6 @@ packages: /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} - hasBin: true dependencies: isexe: 2.0.0 dev: true @@ -5725,7 +5896,6 @@ packages: /which@3.0.1: resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true dependencies: isexe: 2.0.0 dev: true @@ -5733,7 +5903,6 @@ packages: /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} - hasBin: true dependencies: siginfo: 2.0.0 stackback: 0.0.2 @@ -5810,7 +5979,6 @@ packages: /yaml-front-matter@4.1.1: resolution: {integrity: sha512-ULGbghCLsN8Hs8vfExlqrJIe8Hl2TUjD7/zsIGMP8U+dgRXEsDXk4yydxeZJgdGiimP1XB7zhmhOB4/HyfqOyQ==} - hasBin: true dependencies: commander: 6.2.1 js-yaml: 3.14.1