From bdf9e19d11bc66b9b7279da8f292a889f0acbffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Vanvelthem?= Date: Sat, 12 Oct 2024 22:16:51 +0200 Subject: [PATCH] test: run tests on cloudflare workers (#1546) * test: run tests con cloudflare workers * test: run tests con cloudflare workers * test: run tests on cloudflare workers * test: run tests on cloudflare workers * test: run tests on cloudflare workers * Revert "test: run tests on cloudflare workers" This reverts commit 5b0453c00a2694a77ce5c88fcabcde3fe783b7e8. * test: run tests on cloudflare workers * test: run tests on cloudflare workers --- .changeset/config.json | 4 +- .changeset/cuddly-ties-breathe.md | 11 + .github/workflows/ci-packages.yml | 13 + CONTRIBUTING.md | 41 +- devtools/vitest/.eslintrc.cjs | 45 + devtools/vitest/package.json | 51 + devtools/vitest/src/vitest.codspeed.config.ts | 33 + devtools/vitest/src/vitest.common.ts | 62 + devtools/vitest/tsconfig.json | 24 + devtools/vitest/wrangler.toml | 3 + docs/package.json | 2 +- docs2/package.json | 2 +- examples/nextjs-app/package.json | 5 +- integrations/prisma-exception/package.json | 2 +- nx.json | 12 + package.json | 10 +- packages/assert/README.md | 16 +- packages/assert/package.json | 12 +- .../src/__tests__/object.guards.test.ts | 19 +- packages/assert/vitest.cloudflare.config.ts | 35 + packages/dsn-parser/README.md | 12 +- packages/dsn-parser/package.json | 12 +- .../dsn-parser/vitest.cloudflare.config.ts | 35 + packages/exception/README.md | 14 +- packages/exception/package.json | 12 +- .../statuses-messages-compatibility.test.ts | 82 +- .../exception/vitest.cloudflare.config.ts | 37 + packages/json-api/README.md | 11 +- packages/json-api/package.json | 12 +- packages/json-api/vitest.cloudflare.config.ts | 35 + packages/memo-intl/README.md | 12 +- packages/memo-intl/package.json | 12 +- .../memo-intl/vitest.cloudflare.config.ts | 35 + packages/plain-object/README.md | 4 +- packages/plain-object/package.json | 12 +- .../src/__tests__/is-plain-object.test.ts | 158 +- .../__tests__/is-plain-object.test.ts.backup | 201 +++ .../plain-object/vitest.cloudflare.config.ts | 35 + packages/treeu/README.md | 3 + packages/treeu/package.json | 12 +- .../treeu/src/mapper/flat-tree-ws-mapper.ts | 1 + packages/treeu/vitest.cloudflare.config.ts | 35 + yarn.lock | 1372 +++++++---------- 43 files changed, 1540 insertions(+), 1016 deletions(-) create mode 100644 .changeset/cuddly-ties-breathe.md create mode 100644 devtools/vitest/.eslintrc.cjs create mode 100644 devtools/vitest/package.json create mode 100644 devtools/vitest/src/vitest.codspeed.config.ts create mode 100644 devtools/vitest/src/vitest.common.ts create mode 100644 devtools/vitest/tsconfig.json create mode 100644 devtools/vitest/wrangler.toml create mode 100644 packages/assert/vitest.cloudflare.config.ts create mode 100644 packages/dsn-parser/vitest.cloudflare.config.ts create mode 100644 packages/exception/vitest.cloudflare.config.ts create mode 100644 packages/json-api/vitest.cloudflare.config.ts create mode 100644 packages/memo-intl/vitest.cloudflare.config.ts create mode 100644 packages/plain-object/src/__tests__/is-plain-object.test.ts.backup create mode 100644 packages/plain-object/vitest.cloudflare.config.ts create mode 100644 packages/treeu/vitest.cloudflare.config.ts diff --git a/.changeset/config.json b/.changeset/config.json index 89cb11d87..e8070521f 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -8,5 +8,7 @@ "linked": [], "access": "public", "baseBranch": "main", - "updateInternalDependencies": "patch" + "updateInternalDependencies": "patch", + "bumpVersionsWithWorkspaceProtocolOnly": true, + "exclude": ["@httpx/devtools-vitest"] } diff --git a/.changeset/cuddly-ties-breathe.md b/.changeset/cuddly-ties-breathe.md new file mode 100644 index 000000000..2efb89ece --- /dev/null +++ b/.changeset/cuddly-ties-breathe.md @@ -0,0 +1,11 @@ +--- +"@httpx/plain-object": patch +"@httpx/dsn-parser": patch +"@httpx/exception": patch +"@httpx/memo-intl": patch +"@httpx/json-api": patch +"@httpx/assert": patch +"@httpx/treeu": patch +--- + +Ensure CI tests on Clouflare workers and latest chrome (playwright) diff --git a/.github/workflows/ci-packages.yml b/.github/workflows/ci-packages.yml index 2c228d652..f27f8dc64 100644 --- a/.github/workflows/ci-packages.yml +++ b/.github/workflows/ci-packages.yml @@ -101,6 +101,19 @@ jobs: if: matrix.node-version == '20.x' run: yarn nx run-many --target=test-unit-edge --exclude='examples/**' --exclude='docs' + - name: πŸ§ͺ Unit tests (cloudflare - only node 20.x) + if: matrix.node-version == '20.x' + run: yarn nx run-many --target=test-unit-cloudflare --exclude='examples/**' --exclude='docs' + + - name: βš™οΈ Install Playwright Chrome (only node 20.x) + if: matrix.node-version == '20.x' + run: yarn playwright install chrome + + # @todo make this working + #- name: πŸ§ͺ Unit tests (playwright chrome - only node 20.x) + # if: matrix.node-version == '20.x' + # run: yarn nx run-many --target=test-unit-browser --exclude='examples/**' --exclude='docs' + - name: πŸ— Build packages run: yarn nx run-many --target=build --exclude='examples/**' --exclude='docs' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b23f2673f..b1b178f6b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,26 +43,27 @@ If applicable: ## Local scripts -| Name | Description | -|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------| -| `yarn g:changeset` | Add a changeset to declare a new version | -| `yarn g:typecheck` | Run typechecks in all workspaces | -| `yarn g:lint` | Display linter issues in all workspaces | -| `yarn g:lint --fix` | Attempt to run linter auto-fix in all workspaces | -| `yarn g:test-unit` | Run unit tests in all workspaces (node) | -| `yarn g:test-unit-edge` | Run unit tests in all workspaces (@vercel-edge-runtime) | -| `yarn g:test-unit-browser` | Run unit tests in all workspaces (latest chrome) | -| `yarn g:build` | Run build in all workspaces | -| `yarn g:clean` | Clean builds in all workspaces | -| `yarn g:check-dist` | Ensure build dist files passes es2017 (run `g:build` first). | -| `yarn g:check-size` | Ensure build files are within size limit (run `g:build` first). | -| `yarn g:docgen` | Build documentation (generally api doc) | -| `yarn g:bench` | Run benchmarks for all workspaces. | -| `yarn clean:global-cache` | Clean tooling caches (eslint, jest...) | -| `yarn deps:check --dep dev` | Will print what packages can be upgraded globally (see also [.ncurc.yml](https://github.com/belgattitude/httpx/blob/main/.ncurc.yml)) | -| `yarn deps:update --dep dev` | Apply possible updates (run `yarn install && yarn dedupe` after) | -| `yarn check:install` | Verify if there's no peer-deps missing in packages | -| `yarn dedupe` | Built-in yarn deduplication of the lock file | +| Name | Description | +|-------------------------------|---------------------------------------------------------------------------------------------------------------------------------------| +| `yarn g:changeset` | Add a changeset to declare a new version | +| `yarn g:typecheck` | Run typechecks in all workspaces | +| `yarn g:lint` | Display linter issues in all workspaces | +| `yarn g:lint --fix` | Attempt to run linter auto-fix in all workspaces | +| `yarn g:test-unit` | Run unit tests in all workspaces (node) | +| `yarn g:test-unit-edge` | Run unit tests in all workspaces (@vercel-edge-runtime) | +| `yarn g:test-unit-browser` | Run unit tests in all workspaces (latest chrome) | +| `yarn g:test-unit-cloudflare` | Run unit tests in all workspaces (latest chrome) | +| `yarn g:build` | Run build in all workspaces | +| `yarn g:clean` | Clean builds in all workspaces | +| `yarn g:check-dist` | Ensure build dist files passes es2017 (run `g:build` first). | +| `yarn g:check-size` | Ensure build files are within size limit (run `g:build` first). | +| `yarn g:docgen` | Build documentation (generally api doc) | +| `yarn g:bench` | Run benchmarks for all workspaces. | +| `yarn clean:global-cache` | Clean tooling caches (eslint, jest...) | +| `yarn deps:check --dep dev` | Will print what packages can be upgraded globally (see also [.ncurc.yml](https://github.com/belgattitude/httpx/blob/main/.ncurc.yml)) | +| `yarn deps:update --dep dev` | Apply possible updates (run `yarn install && yarn dedupe` after) | +| `yarn check:install` | Verify if there's no peer-deps missing in packages | +| `yarn dedupe` | Built-in yarn deduplication of the lock file | ## Git message format diff --git a/devtools/vitest/.eslintrc.cjs b/devtools/vitest/.eslintrc.cjs new file mode 100644 index 000000000..869db542d --- /dev/null +++ b/devtools/vitest/.eslintrc.cjs @@ -0,0 +1,45 @@ +/** + * Specific eslint rules for this workspace, learn how to compose + * @link https://github.com/belgattitude/perso/tree/main/packages/eslint-config-bases + */ + +// Workaround for https://github.com/eslint/eslint/issues/3458 +require('@belgattitude/eslint-config-bases/patch/modern-module-resolution'); + +const { + getDefaultIgnorePatterns, +} = require('@belgattitude/eslint-config-bases/helpers'); + +module.exports = { + extends: [ + '@belgattitude/eslint-config-bases/typescript', + '@belgattitude/eslint-config-bases/simple-import-sort', + '@belgattitude/eslint-config-bases/import-x', + '@belgattitude/eslint-config-bases/sonar', + '@belgattitude/eslint-config-bases/regexp', + '@belgattitude/eslint-config-bases/jest', + '@belgattitude/eslint-config-bases/performance', + + // Apply prettier and disable incompatible rules + '@belgattitude/eslint-config-bases/prettier-plugin', + ], + ignorePatterns: [ + ...getDefaultIgnorePatterns(), + '**/build', + '**/.cache', + '**/dist', + '**/_release', + '.cache', + '**/docs', + ], + overrides: [], + parser: '@typescript-eslint/parser', + parserOptions: { + projectService: true, + tsconfigRootDir: __dirname, + }, + root: true, + rules: { + 'import-x/no-extraneous-dependencies': 'off', + }, +}; diff --git a/devtools/vitest/package.json b/devtools/vitest/package.json new file mode 100644 index 000000000..05347455e --- /dev/null +++ b/devtools/vitest/package.json @@ -0,0 +1,51 @@ +{ + "name": "@httpx/devtools-vitest", + "description": "Shareable dev setups for vitest", + "version": "0.0.1", + "private": true, + "license": "MIT", + "author": { + "name": "Vanvelthem SΓ©bastien", + "url": "https://github.com/belgattitude" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/belgattitude/httpx.git", + "directory": "tools/vitest" + }, + "sideEffects": false, + "exports": { + "./package.json": "./package.json", + "./wrangler.toml": "./wrangler.toml" + }, + "scripts": { + "clean": "rimraf ./dist ./build ./coverage ./_release", + "fix-staged": "lint-staged --allow-empty", + "lint": "eslint . --ext .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts", + "typecheck": "tsc --project tsconfig.json --noEmit", + "install-playwright": "playwright install chromium" + }, + "peerDependencies": { + "vitest": "2.1.2" + }, + "dependencies": { + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", + "@cloudflare/vitest-pool-workers": "0.5.18", + "@codspeed/vitest-plugin": "3.1.1", + "@edge-runtime/vm": "4.0.3", + "@vitest/browser": "2.1.2", + "@vitest/coverage-istanbul": "2.1.2", + "@vitest/ui": "2.1.2", + "esbuild": "0.24.0", + "playwright": "1.48.0", + "typescript": "5.6.3", + "vite": "5.4.8", + "vite-tsconfig-paths": "5.0.1" + }, + "devDependencies": { + "vitest": "2.1.2" + }, + "engines": { + "node": ">=18" + } +} diff --git a/devtools/vitest/src/vitest.codspeed.config.ts b/devtools/vitest/src/vitest.codspeed.config.ts new file mode 100644 index 000000000..f3ab7fc15 --- /dev/null +++ b/devtools/vitest/src/vitest.codspeed.config.ts @@ -0,0 +1,33 @@ +import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +export default defineWorkersConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths()], + cacheDir: '../../.cache/vite/httpx-dsn-parser-cloudflare', + test: { + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + poolOptions: { + workers: { + wrangler: { configPath: '../../tools/cloudflare/wrangler.toml' }, + }, + }, + exclude: [ + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: true, + restoreMocks: true, + }, +}); diff --git a/devtools/vitest/src/vitest.common.ts b/devtools/vitest/src/vitest.common.ts new file mode 100644 index 000000000..f53631389 --- /dev/null +++ b/devtools/vitest/src/vitest.common.ts @@ -0,0 +1,62 @@ +import codspeedPlugin from '@codspeed/vitest-plugin'; +import tsconfigPaths from 'vite-tsconfig-paths'; +import { defineConfig } from 'vitest/config'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +const isCodeSpeedEnabled = process.env?.CODSPEED === '1'; +const cspeed = isCodeSpeedEnabled ? codspeedPlugin() : undefined; + +export default defineConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths(), ...[cspeed].filter(Boolean)], + cacheDir: '../../.cache/vite/httpx-plain-object', + test: { + browser: { + provider: 'playwright', + name: 'chromium', + }, + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + coverage: { + all: true, + include: ['src/**/*.{js,jsx,ts,tsx}'], + provider: 'istanbul', + reporter: ['text', 'json', 'clover'], + }, + typecheck: { + enabled: false, + }, + benchmark: { + reporters: ['default'], + outputJson: './bench/output/benchmark-results.json', + }, + pool: 'forks', + poolOptions: { + vmThreads: { + // useAtomics: true, + }, + threads: { + // minThreads: 1, + // maxThreads: 16, + useAtomics: true, // perf+ + isolate: false, // perf+++ + }, + }, + environment: 'node', + exclude: [ + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: false, + restoreMocks: true, + }, +}); diff --git a/devtools/vitest/tsconfig.json b/devtools/vitest/tsconfig.json new file mode 100644 index 000000000..f2291e7f4 --- /dev/null +++ b/devtools/vitest/tsconfig.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "strict": true, + "paths": {}, + "types": ["vitest/globals"] + }, + "exclude": ["**/node_modules", "**/.*/*", "dist", "coverage"], + "include": [ + ".eslintrc.*", + "**/*.ts", + "**/*.tsx", + "**/*.js", + "**/*.jsx", + "**/*.cjs", + "**/*.mjs", + "**/*.json" + ] +} diff --git a/devtools/vitest/wrangler.toml b/devtools/vitest/wrangler.toml new file mode 100644 index 000000000..abf2c0941 --- /dev/null +++ b/devtools/vitest/wrangler.toml @@ -0,0 +1,3 @@ +name = "basic-unit-integration-self" +compatibility_date = "2024-01-01" +compatibility_flags = ["nodejs_compat"] \ No newline at end of file diff --git a/docs/package.json b/docs/package.json index 46b5d402f..79577ae88 100644 --- a/docs/package.json +++ b/docs/package.json @@ -21,7 +21,7 @@ "react-dom": "18.3.1" }, "devDependencies": { - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", "eslint": "8.57.1", "eslint-config-next": "14.2.15", "eslint-plugin-tailwindcss": "3.17.5", diff --git a/docs2/package.json b/docs2/package.json index 558517d03..c25f94002 100644 --- a/docs2/package.json +++ b/docs2/package.json @@ -12,7 +12,7 @@ "dependencies": { "@astrojs/check": "0.9.4", "@astrojs/starlight": "0.28.3", - "astro": "4.16.1", + "astro": "4.16.2", "sharp": "0.33.5", "typescript": "5.6.3" } diff --git a/examples/nextjs-app/package.json b/examples/nextjs-app/package.json index 391499fac..4c43c0a51 100644 --- a/examples/nextjs-app/package.json +++ b/examples/nextjs-app/package.json @@ -30,7 +30,6 @@ "ky": "1.7.2", "next": "14.2.15", "pino": "9.4.0", - "primeicons": "7.0.0", "primereact": "10.8.4", "react": "18.3.1", "react-dom": "18.3.1", @@ -39,10 +38,10 @@ "zod": "3.23.8" }, "devDependencies": { - "@belgattitude/eslint-config-bases": "6.0.0-canary.9", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", "@types/node": "22.7.5", "@types/react": "18.3.11", - "@types/react-dom": "18.3.0", + "@types/react-dom": "18.3.1", "@vitejs/plugin-react-swc": "3.7.1", "@vitest/coverage-v8": "2.1.2", "@vitest/ui": "2.1.2", diff --git a/integrations/prisma-exception/package.json b/integrations/prisma-exception/package.json index daf375c74..b91d4a978 100644 --- a/integrations/prisma-exception/package.json +++ b/integrations/prisma-exception/package.json @@ -69,7 +69,7 @@ }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", "@size-limit/file": "11.1.6", "@size-limit/webpack": "11.1.6", "@size-limit/webpack-why": "11.1.6", diff --git a/nx.json b/nx.json index 6d482fc96..5e906cdf7 100644 --- a/nx.json +++ b/nx.json @@ -131,6 +131,18 @@ ], "cache": true }, + "test-unit-cloudflare": { + "dependsOn": ["^test-unit-cloudflare"], + "inputs": [ + "default", + "^public", + { + "externalDependencies": ["vitest"] + } + ], + "cache": true + }, + "docgen": { "dependsOn": ["^docgen"], "inputs": ["all", "^public"], diff --git a/package.json b/package.json index 340f589bf..dc2f9c6a7 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "g:test-unit-coverage": "nx run-many --output-style=static --target=test-unit-coverage --exclude='examples/**' --exclude='docs'", "g:test-unit-edge": "nx run-many --output-style=static --target=test-unit-edge --exclude='examples/**' --exclude='docs'", "g:test-unit-browser": "nx run-many --output-style=static --target=test-unit-browser --exclude='examples/**' --exclude='docs'", + "g:test-unit-cloudflare": "nx run-many --output-style=static --target=test-unit-cloudflare --exclude='examples/**' --exclude='docs'", "g:lint": "nx run-many --output-style=static --target=lint", "g:typecheck": "nx run-many --output-style=static --target=typecheck --exclude='examples/**' --exclude='docs'", "g:lint-staged-files": "lint-staged --allow-empty", @@ -53,11 +54,12 @@ "docs", "examples/*", "integrations/*", - "packages/*" + "packages/*", + "devtools/*" ], "packageManager": "yarn@4.5.0", "devDependencies": { - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", "@changesets/changelog-github": "0.5.0", "@changesets/cli": "2.27.9", "@commitlint/cli": "19.5.0", @@ -83,5 +85,9 @@ }, "engines": { "node": ">=18.18" + }, + "resolutions": { + "esbuild": "0.24.0", + "eslint-plugin-react-hooks": "5.0.0" } } diff --git a/packages/assert/README.md b/packages/assert/README.md index 65283fc77..3ec23b872 100644 --- a/packages/assert/README.md +++ b/packages/assert/README.md @@ -459,13 +459,15 @@ ESM individual imports are tracked by a ## Compatibility -| Level | CI | Description | -|------------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Node | βœ… | CI for 18.x, 20.x & 22.x. | -| Browsers | βœ… | [> 95%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/assert/.browserslistrc) | -| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | -| Typescript | βœ… | TS 5.0+ / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | -| ES2022 | βœ… | Dist files checked with [es-check](https://github.com/yowainwright/es-check) | +| Level | CI | Description | +|--------------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Node | βœ… | CI for 18.x, 20.x & 22.x. | +| Browser | βœ… | Tested with latest chrome (vitest/playwright) | +| Browserslist | βœ… | [> 95%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/assert/.browserslistrc) | +| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Cloudflare | βœ… | Ensured with @cloudflare/vitest-pool-workers (see [wrangler.toml](https://github.com/belgattitude/httpx/blob/main/devtools/vitest/wrangler.toml) | +| Typescript | βœ… | TS 5.0+ / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | +| ES2022 | βœ… | Dist files checked with [es-check](https://github.com/yowainwright/es-check) | > For _older_ browsers: most frontend frameworks can transpile the library (ie: [nextjs](https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages)...) diff --git a/packages/assert/package.json b/packages/assert/package.json index 2d494eeda..7709153fe 100644 --- a/packages/assert/package.json +++ b/packages/assert/package.json @@ -63,6 +63,7 @@ "test-unit-coverage": "vitest run --coverage", "test-unit-edge": "vitest run --environment edge-runtime", "test-unit-browser": "vitest run --browser", + "test-unit-cloudflare": "vitest run --config ./vitest.cloudflare.config.ts", "test-unit-watch": "vitest --ui --api 4110", "typecheck": "tsc --project tsconfig.json --noEmit", "typecheck-build": "tsc --project tsconfig.build.json --noEmit", @@ -70,17 +71,13 @@ }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", - "@codspeed/vitest-plugin": "3.1.1", - "@edge-runtime/vm": "4.0.3", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", + "@httpx/devtools-vitest": "workspace:^", "@sinclair/typebox": "0.33.16", "@sindresorhus/is": "7.0.1", "@size-limit/file": "11.1.6", "@size-limit/webpack": "11.1.6", "@types/lodash-es": "4.17.12", - "@vitest/browser": "2.1.2", - "@vitest/coverage-istanbul": "2.1.2", - "@vitest/ui": "2.1.2", "browserslist": "4.24.0", "browserslist-to-esbuild": "2.1.1", "cross-env": "7.0.3", @@ -91,7 +88,6 @@ "is-plain-obj": "4.1.0", "lodash-es": "4.17.21", "npm-run-all2": "6.2.3", - "playwright": "1.48.0", "publint": "0.2.11", "rimraf": "6.0.1", "rollup": "4.24.0", @@ -103,8 +99,6 @@ "typedoc-plugin-markdown": "4.2.9", "typescript": "5.6.3", "valibot": "0.42.1", - "vite": "5.4.8", - "vite-tsconfig-paths": "5.0.1", "vitest": "2.1.2", "webpack": "5.95.0", "zod": "3.23.8" diff --git a/packages/assert/src/__tests__/object.guards.test.ts b/packages/assert/src/__tests__/object.guards.test.ts index ab512e239..01927a966 100644 --- a/packages/assert/src/__tests__/object.guards.test.ts +++ b/packages/assert/src/__tests__/object.guards.test.ts @@ -2,6 +2,7 @@ import { isPlainObject } from '../object.guards'; describe('Object typeguards tests', () => { const isNodeLike = !('window' in globalThis); + const isCloudflareWorker = 'caches' in globalThis; describe('isPlainObject', () => { const str = 'key'; @@ -33,7 +34,6 @@ describe('Object typeguards tests', () => { [JSON.parse('{}'), true], [new Proxy({}, {}), true], [new Proxy({ key: 'proxied_key' }, {}), true], - [ { [Symbol.iterator]: function* () { @@ -42,7 +42,6 @@ describe('Object typeguards tests', () => { }, true, ], - [ { [Symbol.toStringTag]: 'string-tagged', @@ -75,8 +74,6 @@ describe('Object typeguards tests', () => { [fnWithProto, false], // Symbols [Symbol('cool'), false], - // globalThis - [globalThis, false], // Built-in classes [new Date(), false], [new Map(), false], @@ -123,8 +120,14 @@ describe('Object typeguards tests', () => { } ); - describe('Support node:vm.runInNewContext', () => { - it.skipIf(!isNodeLike)('should support vm', async () => { + it('should return true when globalThis is given', () => { + expect(isPlainObject(globalThis)).toBe(false); + }); + }); + describe.skipIf(!isNodeLike || isCloudflareWorker)( + 'Support node:vm.runInNewContext', + () => { + it('should support vm', async () => { // eslint-disable-next-line import-x/no-nodejs-modules const runInNewContext = await import('node:vm').then( (mod) => mod.runInNewContext @@ -133,6 +136,6 @@ describe('Object typeguards tests', () => { expect(isPlainObject(runInNewContext('(false)'))).toBe(false); expect(isPlainObject(runInNewContext('(new Date())'))).toBe(false); }); - }); - }); + } + ); }); diff --git a/packages/assert/vitest.cloudflare.config.ts b/packages/assert/vitest.cloudflare.config.ts new file mode 100644 index 000000000..763ced71a --- /dev/null +++ b/packages/assert/vitest.cloudflare.config.ts @@ -0,0 +1,35 @@ +import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +export default defineWorkersConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths()], + cacheDir: '../../.cache/vite/httpx-assert', + test: { + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + poolOptions: { + workers: { + wrangler: { + configPath: '../../devtools/vitest/wrangler.toml', + }, + }, + }, + exclude: [ + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: true, + restoreMocks: true, + }, +}); diff --git a/packages/dsn-parser/README.md b/packages/dsn-parser/README.md index 48a470288..b58d837de 100644 --- a/packages/dsn-parser/README.md +++ b/packages/dsn-parser/README.md @@ -335,11 +335,13 @@ Bundle size is tracked by a [size-limit configuration](https://github.com/belgat ## Compatibility -| Level | CI | Description | -|------------|----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Node | βœ… | CI for 18.x, 20.x & 22.x. | -| Browsers | βœ… | [> 95%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/dsn-parser/.browserslistrc) | -| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Level | CI | Description | +|--------------|----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Node | βœ… | CI for 18.x, 20.x & 22.x. | +| Browser | βœ… | Tested with latest chrome (vitest/playwright) | +| Browserslist | βœ… | [> 95%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/dsn-parser/.browserslistrc) | +| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Cloudflare | βœ… | Ensured with @cloudflare/vitest-pool-workers (see [wrangler.toml](https://github.com/belgattitude/httpx/blob/main/devtools/vitest/wrangler.toml) | | Typescript | βœ… | TS 5.0 + / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | | ES2022 | βœ… | Dist files checked with [es-check](https://github.com/yowainwright/es-check) | diff --git a/packages/dsn-parser/package.json b/packages/dsn-parser/package.json index f37b32641..0e3ba258a 100644 --- a/packages/dsn-parser/package.json +++ b/packages/dsn-parser/package.json @@ -63,6 +63,7 @@ "test-unit-coverage": "vitest run --coverage", "test-unit-edge": "vitest run --environment edge-runtime", "test-unit-browser": "vitest run --browser", + "test-unit-cloudflare": "vitest run --config ./vitest.cloudflare.config.ts", "test-unit-watch": "vitest --ui --api 4211", "typecheck": "tsc --project tsconfig.json --noEmit", "typecheck-build": "tsc --project tsconfig.build.json --noEmit", @@ -70,14 +71,10 @@ }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", - "@codspeed/vitest-plugin": "3.1.1", - "@edge-runtime/vm": "4.0.3", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", + "@httpx/devtools-vitest": "workspace:^", "@size-limit/file": "11.1.6", "@size-limit/webpack": "11.1.6", - "@vitest/browser": "2.1.2", - "@vitest/coverage-istanbul": "2.1.2", - "@vitest/ui": "2.1.2", "browserslist": "4.24.0", "browserslist-to-esbuild": "2.1.1", "cross-env": "7.0.3", @@ -85,7 +82,6 @@ "esbuild": "0.24.0", "eslint": "8.57.1", "npm-run-all2": "6.2.3", - "playwright": "1.48.0", "publint": "0.2.11", "rimraf": "6.0.1", "rollup": "4.24.0", @@ -94,8 +90,6 @@ "typedoc": "0.26.9", "typedoc-plugin-markdown": "4.2.9", "typescript": "5.6.3", - "vite": "5.4.8", - "vite-tsconfig-paths": "5.0.1", "vitest": "2.1.2", "webpack": "5.95.0" }, diff --git a/packages/dsn-parser/vitest.cloudflare.config.ts b/packages/dsn-parser/vitest.cloudflare.config.ts new file mode 100644 index 000000000..b2366909f --- /dev/null +++ b/packages/dsn-parser/vitest.cloudflare.config.ts @@ -0,0 +1,35 @@ +import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +export default defineWorkersConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths()], + cacheDir: '../../.cache/vite/httpx-dsn-parser-cloudflare', + test: { + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + poolOptions: { + workers: { + wrangler: { + configPath: '../../devtools/vitest/wrangler.toml', + }, + }, + }, + exclude: [ + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: true, + restoreMocks: true, + }, +}); diff --git a/packages/exception/README.md b/packages/exception/README.md index 2cab31975..d603abd1f 100644 --- a/packages/exception/README.md +++ b/packages/exception/README.md @@ -537,12 +537,14 @@ if (isObjectWithErrorStatusCode(noSuchUser)) { ### Compatibility -| Level | CI | Description | -| ---------- | --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Node | βœ… | CI for 18.x, 20.x & 22.x. | -| Browsers | βœ… | [> 93%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. [Chrome 96+, Firefox 90+, Edge 19+, ios 15+, Safari 15+ and Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/exception/.browserslistrc) | -| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | -| Typescript | βœ… | TS 4.7+ / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | +| Level | CI | Description | +|--------------| --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Node | βœ… | CI for 18.x, 20.x & 22.x. | +| Browser | βœ… | Tested with latest chrome (vitest/playwright) | +| Browserslist | βœ… | [> 93%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. [Chrome 96+, Firefox 90+, Edge 19+, ios 15+, Safari 15+ and Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/exception/.browserslistrc) | +| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Cloudflare | βœ… | Ensured with @cloudflare/vitest-pool-workers (see [wrangler.toml](https://github.com/belgattitude/httpx/blob/main/devtools/vitest/wrangler.toml) | + Typescript | βœ… | TS 4.7+ / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | | ES2022 | βœ… | Dist files checked with [es-check](https://github.com/yowainwright/es-check) | > For _older_ browsers: diff --git a/packages/exception/package.json b/packages/exception/package.json index 39e236c1d..f3e266f02 100644 --- a/packages/exception/package.json +++ b/packages/exception/package.json @@ -100,23 +100,20 @@ "test-unit-coverage": "vitest run --coverage", "test-unit-edge": "vitest run --environment edge-runtime", "test-unit-browser": "vitest run --browser", + "test-unit-cloudflare": "vitest run --config ./vitest.cloudflare.config.ts", "test-unit-watch": "vitest --ui --api 4212", "fix-all-files": "eslint . --ext .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts --fix", "ci-coverage-upload": "../../.github/scripts/download/codecov -F httpx-exception-unit --dir ./coverage" }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", - "@codspeed/vitest-plugin": "3.1.1", - "@edge-runtime/vm": "4.0.3", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", + "@httpx/devtools-vitest": "workspace:^", "@size-limit/file": "11.1.6", "@size-limit/webpack": "11.1.6", "@size-limit/webpack-why": "11.1.6", "@types/node": "22.7.5", "@types/statuses": "2.0.5", - "@vitest/browser": "2.1.2", - "@vitest/coverage-istanbul": "2.1.2", - "@vitest/ui": "2.1.2", "browserslist": "4.24.0", "browserslist-to-esbuild": "2.1.1", "cross-env": "7.0.3", @@ -124,7 +121,6 @@ "esbuild": "0.24.0", "eslint": "8.57.1", "npm-run-all2": "6.2.3", - "playwright": "1.48.0", "publint": "0.2.11", "rimraf": "6.0.1", "rollup": "4.24.0", @@ -136,8 +132,6 @@ "typedoc": "0.26.9", "typedoc-plugin-markdown": "4.2.9", "typescript": "5.6.3", - "vite": "5.4.8", - "vite-tsconfig-paths": "5.0.1", "vitest": "2.1.2", "webpack": "5.95.0" }, diff --git a/packages/exception/test/specs/statuses-messages-compatibility.test.ts b/packages/exception/test/specs/statuses-messages-compatibility.test.ts index bbe1ae4a4..c32c604f0 100644 --- a/packages/exception/test/specs/statuses-messages-compatibility.test.ts +++ b/packages/exception/test/specs/statuses-messages-compatibility.test.ts @@ -1,46 +1,54 @@ -import statuses from 'statuses'; import { describe, expect, it } from 'vitest'; import type { HttpException } from '../../src/base'; import { createHttpException } from '../../src/factory/createHttpException'; import { statusMap } from '../../src/status'; -describe('statuses messages compatibility', () => { - describe('ensure default messages are compatible with npm:statuses package', () => { - const all: [ - className: string, - status: number, - npmStatusMsg: string, - exception: HttpException, - ][] = Object.entries(statusMap).map(([code]) => { - const exception = createHttpException(Number.parseInt(code, 10)); - const status = Number.parseInt(code, 10); - const npmStatusesMsg = statuses(status).toString(); - return [exception?.name ?? '', status, npmStatusesMsg, exception]; - }); +const isCloudflareWorker = 'caches' in globalThis; - describe('class names matches with npm/statuses', () => { - it.each(all)( - '%s(%i) match statuses "%s"', - (className, status, npmStatusMsg) => { - const title = npmStatusMsg.replaceAll(/[\W_]+/g, '').toLowerCase(); - // eslint-disable-next-line jest/no-conditional-in-test - const expected = title.startsWith('http') ? title : `http${title}`; - expect(className.toLowerCase()).toStrictEqual(expected); - } - ); - }); +describe.skipIf(isCloudflareWorker)( + 'statuses messages compatibility', + async () => { + const statuses = await import('statuses').then((mod) => mod.default); + + describe('ensure default messages are compatible with npm:statuses package', () => { + const all: [ + className: string, + status: number, + npmStatusMsg: string, + exception: HttpException, + ][] = Object.entries(statusMap).map(([code]) => { + const exception = createHttpException(Number.parseInt(code, 10)); + const status = Number.parseInt(code, 10); + const npmStatusesMsg = statuses(status).toString(); + return [exception?.name ?? '', status, npmStatusesMsg, exception]; + }); + + describe('class names matches with npm/statuses', () => { + it.each(all)( + '%s(%i) match statuses "%s"', + (className, status, npmStatusMsg) => { + const title = npmStatusMsg.replaceAll(/[\W_]+/g, '').toLowerCase(); + // eslint-disable-next-line jest/no-conditional-in-test + const expected = title.startsWith('http') ? title : `http${title}`; + expect(className.toLowerCase()).toStrictEqual(expected); + } + ); + }); - describe('default messages', () => { - it.each(all)( - 'should match official npm/statuses messages', - (className, status, npmStatusMsg, exception) => { - const expected = npmStatusMsg.replaceAll(/[\W_]+/g, '').toLowerCase(); - expect( - exception?.message.toLowerCase().replaceAll(/[\W_]+/g, '') - ).toStrictEqual(expected); - } - ); + describe('default messages', () => { + it.each(all)( + 'should match official npm/statuses messages', + (className, status, npmStatusMsg, exception) => { + const expected = npmStatusMsg + .replaceAll(/[\W_]+/g, '') + .toLowerCase(); + expect( + exception?.message.toLowerCase().replaceAll(/[\W_]+/g, '') + ).toStrictEqual(expected); + } + ); + }); }); - }); -}); + } +); diff --git a/packages/exception/vitest.cloudflare.config.ts b/packages/exception/vitest.cloudflare.config.ts new file mode 100644 index 000000000..cf8e48cb4 --- /dev/null +++ b/packages/exception/vitest.cloudflare.config.ts @@ -0,0 +1,37 @@ +import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +export default defineWorkersConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths()], + cacheDir: '../../.cache/vite/httpx-exception', + test: { + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + poolOptions: { + workers: { + wrangler: { + configPath: '../../devtools/vitest/wrangler.toml', + }, + }, + }, + exclude: [ + /** package statuses is too old to be loaded in vitest */ + 'test/specs/statuses-messages-compatibility.test.ts', + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: true, + restoreMocks: true, + }, +}); diff --git a/packages/json-api/README.md b/packages/json-api/README.md index e8d549797..ba355aa27 100644 --- a/packages/json-api/README.md +++ b/packages/json-api/README.md @@ -20,9 +20,14 @@ Don't hesitate and open [an issue](https://github.com/belgattitude/httpx/issues) ### Compatibility -| Level | CI | Description | -|------------|----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Node | βœ… | CI for 18.x, 20.x & 22.x. | +| Level | CI | Description | +|------------|----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Node | βœ… | CI for 18.x, 20.x & 22.x. | +| Browser | βœ… | Tested with latest chrome (vitest/playwright) | +| Browserslist | βœ… | [> 95%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. [Chrome 96+, Firefox 90+, Edge 19+, ios 15+, Safari 15+ and Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/exception/.browserslistrc) | +| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Cloudflare | βœ… | Ensured with @cloudflare/vitest-pool-workers (see [wrangler.toml](https://github.com/belgattitude/httpx/blob/main/devtools/vitest/wrangler.toml) | + | Browsers | βœ… | [> 95%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/json-api/.browserslistrc) | | Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | | Typescript | βœ… | TS 5.0+ / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | diff --git a/packages/json-api/package.json b/packages/json-api/package.json index 86ff5ed41..94fbc2a76 100644 --- a/packages/json-api/package.json +++ b/packages/json-api/package.json @@ -60,6 +60,7 @@ "test-unit-coverage": "vitest run --coverage", "test-unit-edge": "vitest run --environment edge-runtime", "test-unit-browser": "vitest run --browser", + "test-unit-cloudflare": "vitest run --config ./vitest.cloudflare.config.ts", "test-unit-watch": "vitest --ui --api 4313", "typecheck": "tsc --project tsconfig.json --noEmit", "typecheck-build": "tsc --project tsconfig.build.json --noEmit", @@ -70,14 +71,10 @@ }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", - "@codspeed/vitest-plugin": "3.1.1", - "@edge-runtime/vm": "4.0.3", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", + "@httpx/devtools-vitest": "workspace:^", "@size-limit/file": "11.1.6", "@size-limit/webpack": "11.1.6", - "@vitest/browser": "2.1.2", - "@vitest/coverage-istanbul": "2.1.2", - "@vitest/ui": "2.1.2", "browserslist": "4.24.0", "browserslist-to-esbuild": "2.1.1", "cross-env": "7.0.3", @@ -85,7 +82,6 @@ "esbuild": "0.24.0", "eslint": "8.57.1", "npm-run-all2": "6.2.3", - "playwright": "1.48.0", "publint": "0.2.11", "rimraf": "6.0.1", "rollup": "4.24.0", @@ -94,8 +90,6 @@ "typedoc": "0.26.9", "typedoc-plugin-markdown": "4.2.9", "typescript": "5.6.3", - "vite": "5.4.8", - "vite-tsconfig-paths": "5.0.1", "vitest": "2.1.2", "webpack": "5.95.0" }, diff --git a/packages/json-api/vitest.cloudflare.config.ts b/packages/json-api/vitest.cloudflare.config.ts new file mode 100644 index 000000000..95cd2663d --- /dev/null +++ b/packages/json-api/vitest.cloudflare.config.ts @@ -0,0 +1,35 @@ +import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +export default defineWorkersConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths()], + cacheDir: '../../.cache/vite/httpx-json-api', + test: { + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + poolOptions: { + workers: { + wrangler: { + configPath: '../../devtools/vitest/wrangler.toml', + }, + }, + }, + exclude: [ + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: true, + restoreMocks: true, + }, +}); diff --git a/packages/memo-intl/README.md b/packages/memo-intl/README.md index 670594811..8ad852d17 100644 --- a/packages/memo-intl/README.md +++ b/packages/memo-intl/README.md @@ -106,11 +106,13 @@ Bundle size is tracked by a [size-limit configuration](https://github.com/belgat ## Compatibility -| Level | CI | Description | -|------------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Node | βœ… | CI for 18.x, 20.x & 22.x. | -| Browsers | βœ… | [> 96%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/memo-intl/.browserslistrc) | -| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Level | CI | Description | +|--------------|----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Node | βœ… | CI for 18.x, 20.x & 22.x. | +| Browser | βœ… | Tested with latest chrome (vitest/playwright) | +| Browserslist | βœ… | [> 96%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 12/2023. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/memo-intl/.browserslistrc) | +| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Cloudflare | βœ… | Ensured with @cloudflare/vitest-pool-workers (see [wrangler.toml](https://github.com/belgattitude/httpx/blob/main/devtools/vitest/wrangler.toml) | | Typescript | βœ… | TS 5.0 + / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | | ES2022 | βœ… | Dist files checked with [es-check](https://github.com/yowainwright/es-check) | | Performance| βœ… | Monitored with with [codspeed.io](https://codspeed.io/belgattitude/httpx) | diff --git a/packages/memo-intl/package.json b/packages/memo-intl/package.json index 1d20162ea..c56d3407d 100644 --- a/packages/memo-intl/package.json +++ b/packages/memo-intl/package.json @@ -61,6 +61,7 @@ "test-unit-coverage": "vitest run --coverage", "test-unit-edge": "vitest run --environment edge-runtime", "test-unit-browser": "vitest run --browser", + "test-unit-cloudflare": "vitest run --config ./vitest.cloudflare.config.ts", "test-unit-watch": "vitest --ui --api 4414", "typecheck": "tsc --project tsconfig.json --noEmit", "typecheck-build": "tsc --project tsconfig.build.json --noEmit", @@ -71,14 +72,10 @@ }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", - "@codspeed/vitest-plugin": "3.1.1", - "@edge-runtime/vm": "4.0.3", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", + "@httpx/devtools-vitest": "workspace:^", "@size-limit/file": "11.1.6", "@size-limit/webpack": "11.1.6", - "@vitest/browser": "2.1.2", - "@vitest/coverage-istanbul": "2.1.2", - "@vitest/ui": "2.1.2", "browserslist": "4.24.0", "browserslist-to-esbuild": "2.1.1", "cross-env": "7.0.3", @@ -86,7 +83,6 @@ "esbuild": "0.24.0", "eslint": "8.57.1", "npm-run-all2": "6.2.3", - "playwright": "1.48.0", "publint": "0.2.11", "rimraf": "6.0.1", "rollup": "4.24.0", @@ -95,8 +91,6 @@ "typedoc": "0.26.9", "typedoc-plugin-markdown": "4.2.9", "typescript": "5.6.3", - "vite": "5.4.8", - "vite-tsconfig-paths": "5.0.1", "vitest": "2.1.2", "webpack": "5.95.0" }, diff --git a/packages/memo-intl/vitest.cloudflare.config.ts b/packages/memo-intl/vitest.cloudflare.config.ts new file mode 100644 index 000000000..c971afc9f --- /dev/null +++ b/packages/memo-intl/vitest.cloudflare.config.ts @@ -0,0 +1,35 @@ +import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +export default defineWorkersConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths()], + cacheDir: '../../.cache/vite/httpx-memo-intl', + test: { + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + poolOptions: { + workers: { + wrangler: { + configPath: '../../devtools/vitest/wrangler.toml', + }, + }, + }, + exclude: [ + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: true, + restoreMocks: true, + }, +}); diff --git a/packages/plain-object/README.md b/packages/plain-object/README.md index f05da9331..1a930fd42 100644 --- a/packages/plain-object/README.md +++ b/packages/plain-object/README.md @@ -239,8 +239,10 @@ Bundle size is tracked by a [size-limit configuration](https://github.com/belgat | Level | CI | Description | |------------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Node | βœ… | CI for 18.x, 20.x & 22.x. | +| Browser | βœ… | Tested with latest chrome (vitest/playwright) | | Browsers | βœ… | [> 96%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 07/2024. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/plain-object/.browserslistrc) | -| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Cloudflare | βœ… | Ensured with @cloudflare/vitest-pool-workers (see [wrangler.toml](https://github.com/belgattitude/httpx/blob/main/devtools/vitest/wrangler.toml) | | Typescript | βœ… | TS 5.0 + / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | | ES2022 | βœ… | Dist files checked with [es-check](https://github.com/yowainwright/es-check) | | Performance| βœ… | Monitored with [codspeed.io](https://codspeed.io/belgattitude/httpx) | diff --git a/packages/plain-object/package.json b/packages/plain-object/package.json index 421ac582a..f424699e6 100644 --- a/packages/plain-object/package.json +++ b/packages/plain-object/package.json @@ -66,6 +66,7 @@ "test-unit-coverage": "vitest run --coverage", "test-unit-edge": "vitest run --environment edge-runtime", "test-unit-browser": "vitest run --browser", + "test-unit-cloudflare": "vitest run --config ./vitest.cloudflare.config.ts", "test-unit-watch": "vitest --ui --api 4515", "typecheck": "tsc --project tsconfig.json --noEmit", "typecheck-build": "tsc --project tsconfig.build.json --noEmit", @@ -73,16 +74,12 @@ }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", - "@codspeed/vitest-plugin": "3.1.1", - "@edge-runtime/vm": "4.0.3", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", + "@httpx/devtools-vitest": "workspace:^", "@sindresorhus/is": "7.0.1", "@size-limit/file": "11.1.6", "@size-limit/webpack": "11.1.6", "@types/lodash-es": "4.17.12", - "@vitest/browser": "2.1.2", - "@vitest/coverage-istanbul": "2.1.2", - "@vitest/ui": "2.1.2", "browserslist": "4.24.0", "browserslist-to-esbuild": "2.1.1", "cross-env": "7.0.3", @@ -94,7 +91,6 @@ "is-plain-object": "5.0.0", "lodash-es": "4.17.21", "npm-run-all2": "6.2.3", - "playwright": "1.48.0", "publint": "0.2.11", "redux": "5.0.1", "rimraf": "6.0.1", @@ -104,8 +100,6 @@ "typedoc": "0.26.9", "typedoc-plugin-markdown": "4.2.9", "typescript": "5.6.3", - "vite": "5.4.8", - "vite-tsconfig-paths": "5.0.1", "vitest": "2.1.2", "webpack": "5.95.0" }, diff --git a/packages/plain-object/src/__tests__/is-plain-object.test.ts b/packages/plain-object/src/__tests__/is-plain-object.test.ts index bc9945de6..ffd8eaafd 100644 --- a/packages/plain-object/src/__tests__/is-plain-object.test.ts +++ b/packages/plain-object/src/__tests__/is-plain-object.test.ts @@ -4,6 +4,7 @@ import { isPlainObject as reduxIsPlainObject } from 'redux'; import { isPlainObject } from '../is-plain-object'; const isNodeLike = !('window' in globalThis); +const isCloudflareWorker = 'caches' in globalThis; describe('isPlainObject', () => { const str = 'key'; @@ -32,7 +33,6 @@ describe('isPlainObject', () => { [JSON.parse('{}'), true], [new Proxy({}, {}), true], [new Proxy({ key: 'proxied_key' }, {}), true], - [ { [Symbol.iterator]: function* () { @@ -41,7 +41,6 @@ describe('isPlainObject', () => { }, true, ], - [ { [Symbol.toStringTag]: 'string-tagged', @@ -74,8 +73,6 @@ describe('isPlainObject', () => { [fnWithProto, false], // Symbols [Symbol('cool'), false], - // globalThis - [globalThis, false], // Built-in classes [new Date(), false], [new Map(), false], @@ -122,80 +119,89 @@ describe('isPlainObject', () => { } ); - describe('Compatibility with other libraries', () => { - describe.skip('Compatibility with is-plain-obj', () => { - it.each(cases)( - 'compat when "%s" is given, should return %s', - (v, _expected) => { - expect(isPlainObject(v)).toBe(isPlainObj(v)); - } - ); - }); + it('should return true when globalThis is given', () => { + expect(isPlainObject(globalThis)).toBe(false); + }); - // eslint-disable-next-line jest/valid-describe-callback - describe.skip('Compatibility with es-toolkit/is-plain-object', async () => { - const esToolkitIsPlainObject = await import('es-toolkit').then( - (mod) => mod.isPlainObject - ); - it.each(cases)( - 'compat when "%s" is given, should return %s', - (v, _expected) => { - expect(isPlainObject(v)).toBe(esToolkitIsPlainObject(v as object)); - } - ); - }); + describe.skipIf(isCloudflareWorker)( + 'Compatibility with other libraries', + () => { + describe.skip('Compatibility with is-plain-obj', () => { + it.each(cases)( + 'compat when "%s" is given, should return %s', + (v, _expected) => { + expect(isPlainObject(v)).toBe(isPlainObj(v)); + } + ); + }); - // eslint-disable-next-line jest/valid-describe-callback - describe('Compatibility with redux/isPlainObject', async () => { - it.each(cases)( - 'compat when "%s" is given, should return %s', - (v, _expected) => { - expect(reduxIsPlainObject(v)).toBe(isPlainObject(v)); - } - ); - it.skipIf(!isNodeLike)( - 'should support cross-realms - node:runInNewContext', - async () => { - // eslint-disable-next-line import-x/no-nodejs-modules - const runInNewContext = await import('node:vm').then( - (mod) => mod.runInNewContext - ); - expect(reduxIsPlainObject(runInNewContext('({})'))).toBe(true); - const sandbox = { fromAnotherRealm: false }; - runInNewContext('fromAnotherRealm = {}', sandbox); - expect(isPlainObject(sandbox.fromAnotherRealm)).toBe(true); - } - ); - }); + // eslint-disable-next-line jest/valid-describe-callback + describe.skip('Compatibility with es-toolkit/is-plain-object', async () => { + const esToolkitIsPlainObject = await import('es-toolkit').then( + (mod) => mod.isPlainObject + ); + it.each(cases)( + 'compat when "%s" is given, should return %s', + (v, _expected) => { + expect(isPlainObject(v)).toBe(esToolkitIsPlainObject(v as object)); + } + ); + }); - // eslint-disable-next-line jest/valid-describe-callback - describe.skip('Compatibility with jonschlinkert/is-plain-object', async () => { - // @ts-expect-error packaging of this lib is not compatible with latest ts / module - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - const jonschlinkertIsPlainObject = await import('is-plain-object').then( - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return - (mod) => mod.isPlainObject - ); - it.each(cases)( - 'compat when "%s" is given, should return %s', - (v, _expected) => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call - expect(isPlainObject(v)).toBe(jonschlinkertIsPlainObject(v)); - } - ); - }); - }); -}); + // eslint-disable-next-line jest/valid-describe-callback + describe('Compatibility with redux/isPlainObject', async () => { + it.each(cases)( + 'compat when "%s" is given, should return %s', + (v, _expected) => { + expect(reduxIsPlainObject(v)).toBe(isPlainObject(v)); + } + ); + it.skipIf(!isNodeLike)( + 'should support cross-realms - node:runInNewContext', + async () => { + // eslint-disable-next-line import-x/no-nodejs-modules + const runInNewContext = await import('node:vm').then( + (mod) => mod.runInNewContext + ); + expect(reduxIsPlainObject(runInNewContext('({})'))).toBe(true); + const sandbox = { fromAnotherRealm: false }; + runInNewContext('fromAnotherRealm = {}', sandbox); + expect(isPlainObject(sandbox.fromAnotherRealm)).toBe(true); + } + ); + }); -describe('Support node:vm.runInNewContext', () => { - it.skipIf(!isNodeLike)('should support vm', async () => { - // eslint-disable-next-line import-x/no-nodejs-modules - const runInNewContext = await import('node:vm').then( - (mod) => mod.runInNewContext - ); - expect(isPlainObject(runInNewContext('({})'))).toBe(true); - expect(isPlainObject(runInNewContext('(false)'))).toBe(false); - expect(isPlainObject(runInNewContext('(new Date())'))).toBe(false); - expect(reduxIsPlainObject(runInNewContext('({})'))).toBe(true); - }); + // eslint-disable-next-line jest/valid-describe-callback + describe.skip('Compatibility with jonschlinkert/is-plain-object', async () => { + // @ts-expect-error packaging of this lib is not compatible with latest ts / module + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const jonschlinkertIsPlainObject = await import('is-plain-object').then( + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return + (mod) => mod.isPlainObject + ); + it.each(cases)( + 'compat when "%s" is given, should return %s', + (v, _expected) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + expect(isPlainObject(v)).toBe(jonschlinkertIsPlainObject(v)); + } + ); + }); + } + ); }); + +describe.skipIf(!isNodeLike || isCloudflareWorker)( + 'Support node:vm.runInNewContext', + () => { + it('should support vm', async () => { + // eslint-disable-next-line import-x/no-nodejs-modules + const runInNewContext = await import('node:vm').then( + (mod) => mod.runInNewContext + ); + expect(isPlainObject(runInNewContext('({})'))).toBe(true); + expect(isPlainObject(runInNewContext('(false)'))).toBe(false); + expect(isPlainObject(runInNewContext('(new Date())'))).toBe(false); + }); + } +); diff --git a/packages/plain-object/src/__tests__/is-plain-object.test.ts.backup b/packages/plain-object/src/__tests__/is-plain-object.test.ts.backup new file mode 100644 index 000000000..bc9945de6 --- /dev/null +++ b/packages/plain-object/src/__tests__/is-plain-object.test.ts.backup @@ -0,0 +1,201 @@ +import isPlainObj from 'is-plain-obj'; +import { isPlainObject as reduxIsPlainObject } from 'redux'; + +import { isPlainObject } from '../is-plain-object'; + +const isNodeLike = !('window' in globalThis); + +describe('isPlainObject', () => { + const str = 'key'; + function fnWithProto(x: number) { + // @ts-expect-error for the sake of testing + this.x = x; + } + function ObjectConstructor() {} + ObjectConstructor.prototype.constructor = Object; + + const validPlainObjects = [ + [{}, true], + [Object.create(null), true], + [new Object({ key: 'new_object' }), true], + [new Object({ key: new Date() }), true], + [{ 1: 'integer_key' }, true], + [{ name: 'string_key' }, true], + [{ [str]: 'dynamic_string_key' }, true], + [{ [Symbol('tag')]: 'value' }, true], + [{ children: [{ key: 'deep-children' }], name: 'deep-plain' }, true], + [ + { children: [{ key: new Date() }], name: 'deep-with-regular-object' }, + true, + ], + [{ constructor: { name: 'Object2' } }, true], + [JSON.parse('{}'), true], + [new Proxy({}, {}), true], + [new Proxy({ key: 'proxied_key' }, {}), true], + + [ + { + [Symbol.iterator]: function* () { + yield 1; + }, + }, + true, + ], + + [ + { + [Symbol.toStringTag]: 'string-tagged', + }, + true, + ], + ] as const; + + const validPlainObjectsBuiltIn = [ + // Static built-in classes + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON + [JSON, true], + [Math, true], + [Atomics, true], + ] as const; + + const invalidPlainObjects = [ + ['hello', false], + [false, false], + [undefined, false], + [null, false], + [10, false], + [[], false], + [Number.NaN, false], + // functions and objects + [() => 'cool', false], + [new (class Cls {})(), false], + [new Intl.Locale('en'), false], + [new (class extends Object {})(), false], + [fnWithProto, false], + // Symbols + [Symbol('cool'), false], + // globalThis + [globalThis, false], + // Built-in classes + [new Date(), false], + [new Map(), false], + [new Error(), false], + [new Set(), false], + [new Request('http://localhost'), false], + [new Promise(() => {}), false], + [Promise.resolve({}), false], + [new Uint8Array([1, 2, 3]), false], + [Object.create({}), false], + [/(\d+)/, false], + // eslint-disable-next-line prefer-regex-literals + [new RegExp('/d+/'), false], + [/d+/, false], + // Template literals + [`cool`, false], + [String.raw`rawtemplate`, false], + // @ts-expect-error to allow testing crafted object + [new ObjectConstructor(), false], + [ + new Proxy(new Date(), { + get(target, _prop, _receiver) { + return target; + }, + }), + false, + ], + ] as const; + + const cases = [ + ...validPlainObjects, + ...validPlainObjectsBuiltIn, + ...invalidPlainObjects, + ] as const; + it.each(cases)('when "%s" is given, should return %s', (v, expected) => { + expect(isPlainObject(v)).toStrictEqual(expected); + }); + + it.skipIf(!isNodeLike)( + 'should return false when node Buffer is given', + () => { + // eslint-disable-next-line no-restricted-globals + expect(isPlainObject(Buffer.from('123123'))).toBe(false); + } + ); + + describe('Compatibility with other libraries', () => { + describe.skip('Compatibility with is-plain-obj', () => { + it.each(cases)( + 'compat when "%s" is given, should return %s', + (v, _expected) => { + expect(isPlainObject(v)).toBe(isPlainObj(v)); + } + ); + }); + + // eslint-disable-next-line jest/valid-describe-callback + describe.skip('Compatibility with es-toolkit/is-plain-object', async () => { + const esToolkitIsPlainObject = await import('es-toolkit').then( + (mod) => mod.isPlainObject + ); + it.each(cases)( + 'compat when "%s" is given, should return %s', + (v, _expected) => { + expect(isPlainObject(v)).toBe(esToolkitIsPlainObject(v as object)); + } + ); + }); + + // eslint-disable-next-line jest/valid-describe-callback + describe('Compatibility with redux/isPlainObject', async () => { + it.each(cases)( + 'compat when "%s" is given, should return %s', + (v, _expected) => { + expect(reduxIsPlainObject(v)).toBe(isPlainObject(v)); + } + ); + it.skipIf(!isNodeLike)( + 'should support cross-realms - node:runInNewContext', + async () => { + // eslint-disable-next-line import-x/no-nodejs-modules + const runInNewContext = await import('node:vm').then( + (mod) => mod.runInNewContext + ); + expect(reduxIsPlainObject(runInNewContext('({})'))).toBe(true); + const sandbox = { fromAnotherRealm: false }; + runInNewContext('fromAnotherRealm = {}', sandbox); + expect(isPlainObject(sandbox.fromAnotherRealm)).toBe(true); + } + ); + }); + + // eslint-disable-next-line jest/valid-describe-callback + describe.skip('Compatibility with jonschlinkert/is-plain-object', async () => { + // @ts-expect-error packaging of this lib is not compatible with latest ts / module + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const jonschlinkertIsPlainObject = await import('is-plain-object').then( + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return + (mod) => mod.isPlainObject + ); + it.each(cases)( + 'compat when "%s" is given, should return %s', + (v, _expected) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + expect(isPlainObject(v)).toBe(jonschlinkertIsPlainObject(v)); + } + ); + }); + }); +}); + +describe('Support node:vm.runInNewContext', () => { + it.skipIf(!isNodeLike)('should support vm', async () => { + // eslint-disable-next-line import-x/no-nodejs-modules + const runInNewContext = await import('node:vm').then( + (mod) => mod.runInNewContext + ); + expect(isPlainObject(runInNewContext('({})'))).toBe(true); + expect(isPlainObject(runInNewContext('(false)'))).toBe(false); + expect(isPlainObject(runInNewContext('(new Date())'))).toBe(false); + expect(reduxIsPlainObject(runInNewContext('({})'))).toBe(true); + }); +}); diff --git a/packages/plain-object/vitest.cloudflare.config.ts b/packages/plain-object/vitest.cloudflare.config.ts new file mode 100644 index 000000000..7c82d611d --- /dev/null +++ b/packages/plain-object/vitest.cloudflare.config.ts @@ -0,0 +1,35 @@ +import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +export default defineWorkersConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths()], + cacheDir: '../../.cache/vite/httpx-plain-object', + test: { + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + poolOptions: { + workers: { + wrangler: { + configPath: '../../devtools/vitest/wrangler.toml', + }, + }, + }, + exclude: [ + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: true, + restoreMocks: true, + }, +}); diff --git a/packages/treeu/README.md b/packages/treeu/README.md index 38763953d..a3a85ee4d 100644 --- a/packages/treeu/README.md +++ b/packages/treeu/README.md @@ -302,7 +302,10 @@ Bundle size is tracked by a [size-limit configuration](https://github.com/belgat | Level | CI | Description | |------------|----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Node | βœ… | CI for 18.x, 20.x & 22.x. | +| Browser | βœ… | Tested with latest chrome (vitest/playwright) | | Browsers | βœ… | [> 96%](https://browserslist.dev/?q=ZGVmYXVsdHMsIGNocm9tZSA%2BPSA5NixmaXJlZm94ID49IDkwLGVkZ2UgPj0gMTksc2FmYXJpID49IDEyLGlvcyA%2BPSAxMixvcGVyYSA%2BPSA3Nw%3D%3D) on 07/2024. Mins to [Chrome 96+, Firefox 90+, Edge 19+, iOS 12+, Safari 12+, Opera 77+](https://github.com/belgattitude/httpx/blob/main/packages/treeu/.browserslistrc) | +| Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | +| Cloudflare | βœ… | Ensured with @cloudflare/vitest-pool-workers (see [wrangler.toml](https://github.com/belgattitude/httpx/blob/main/devtools/vitest/wrangler.toml) | | Edge | βœ… | Ensured on CI with [@vercel/edge-runtime](https://github.com/vercel/edge-runtime). | | Typescript | βœ… | TS 5.0 + / [are-the-type-wrong](https://github.com/arethetypeswrong/arethetypeswrong.github.io) checks on CI. | | ES2022 | βœ… | Dist files checked with [es-check](https://github.com/yowainwright/es-check) | diff --git a/packages/treeu/package.json b/packages/treeu/package.json index 2f477dea6..e6b88adc5 100644 --- a/packages/treeu/package.json +++ b/packages/treeu/package.json @@ -60,6 +60,7 @@ "test-unit-coverage": "vitest run --coverage", "test-unit-edge": "vitest run --environment edge-runtime", "test-unit-browser": "vitest run --browser", + "test-unit-cloudflare": "vitest run --config ./vitest.cloudflare.config.ts", "test-unit-watch": "vitest --ui --api 4515", "typecheck": "tsc --project tsconfig.json --noEmit", "typecheck-build": "tsc --project tsconfig.build.json --noEmit", @@ -70,16 +71,12 @@ }, "devDependencies": { "@arethetypeswrong/cli": "0.16.4", - "@belgattitude/eslint-config-bases": "6.0.0-canary.16", - "@codspeed/vitest-plugin": "3.1.1", - "@edge-runtime/vm": "4.0.3", + "@belgattitude/eslint-config-bases": "6.0.0-canary.19", + "@httpx/devtools-vitest": "workspace:^", "@sindresorhus/is": "7.0.1", "@size-limit/file": "11.1.6", "@size-limit/webpack": "11.1.6", "@types/lodash-es": "4.17.12", - "@vitest/browser": "2.1.2", - "@vitest/coverage-istanbul": "2.1.2", - "@vitest/ui": "2.1.2", "browserslist": "4.24.0", "browserslist-to-esbuild": "2.1.1", "cross-env": "7.0.3", @@ -88,7 +85,6 @@ "eslint": "8.57.1", "lodash-es": "4.17.21", "npm-run-all2": "6.2.3", - "playwright": "1.48.0", "publint": "0.2.11", "rimraf": "6.0.1", "rollup": "4.24.0", @@ -97,8 +93,6 @@ "typedoc": "0.26.9", "typedoc-plugin-markdown": "4.2.9", "typescript": "5.6.3", - "vite": "5.4.8", - "vite-tsconfig-paths": "5.0.1", "vitest": "2.1.2", "webpack": "5.95.0" }, diff --git a/packages/treeu/src/mapper/flat-tree-ws-mapper.ts b/packages/treeu/src/mapper/flat-tree-ws-mapper.ts index 2c8413c14..f864583e6 100644 --- a/packages/treeu/src/mapper/flat-tree-ws-mapper.ts +++ b/packages/treeu/src/mapper/flat-tree-ws-mapper.ts @@ -61,6 +61,7 @@ export class FlatTreeWsMapper< const collector: CollectorContext = { result: [] }; + // eslint-disable-next-line no-restricted-syntax const d = data instanceof Map ? data : new Map(Object.entries(data)); try { diff --git a/packages/treeu/vitest.cloudflare.config.ts b/packages/treeu/vitest.cloudflare.config.ts new file mode 100644 index 000000000..e1b1be995 --- /dev/null +++ b/packages/treeu/vitest.cloudflare.config.ts @@ -0,0 +1,35 @@ +import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +const testFiles = ['./src/**/*.test.{js,ts}', './test/**/*.test.{js,ts}']; + +export default defineWorkersConfig({ + esbuild: { + target: ['node18'], + }, + plugins: [tsconfigPaths()], + cacheDir: '../../.cache/vite/httpx-treeu', + test: { + // @link https://vitest.dev/config/#clearmocks + clearMocks: true, + poolOptions: { + workers: { + wrangler: { + configPath: '../../devtools/vitest/wrangler.toml', + }, + }, + }, + exclude: [ + '**/node_modules/**', + 'dist/**', + '**/coverage/**', + '**/.{idea,git,cache,output,temp}/**', + ], + globals: true, + include: testFiles, + // To mimic Jest behaviour regarding mocks. + mockReset: true, + passWithNoTests: true, + restoreMocks: true, + }, +}); diff --git a/yarn.lock b/yarn.lock index 5512fdb6d..d985fc177 100644 --- a/yarn.lock +++ b/yarn.lock @@ -522,7 +522,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.5, @babel/helper-validator-identifier@npm:^7.24.7, @babel/helper-validator-identifier@npm:^7.25.7": +"@babel/helper-validator-identifier@npm:^7.24.7, @babel/helper-validator-identifier@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-validator-identifier@npm:7.25.7" checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 @@ -1719,9 +1719,9 @@ __metadata: languageName: node linkType: hard -"@belgattitude/eslint-config-bases@npm:6.0.0-canary.16": - version: 6.0.0-canary.16 - resolution: "@belgattitude/eslint-config-bases@npm:6.0.0-canary.16" +"@belgattitude/eslint-config-bases@npm:6.0.0-canary.19": + version: 6.0.0-canary.19 + resolution: "@belgattitude/eslint-config-bases@npm:6.0.0-canary.19" dependencies: "@rushstack/eslint-patch": "npm:^1.10.4" "@tanstack/eslint-plugin-query": "npm:^5.59.7" @@ -1736,10 +1736,10 @@ __metadata: eslint-plugin-jest-formatting: "npm:^3.1.0" eslint-plugin-jsx-a11y: "npm:^6.10.0" eslint-plugin-perfectionist: "npm:^3.8.0" - eslint-plugin-playwright: "npm:^1.6.2" + eslint-plugin-playwright: "npm:^1.7.0" eslint-plugin-prettier: "npm:^5.2.1" eslint-plugin-react: "npm:^7.37.1" - eslint-plugin-react-hooks: "npm:^4.6.2 || 5.0.0-canary-7118f5dd7-20230705" + eslint-plugin-react-hooks: "npm:^4.6.2 || ^5.0.0 || 5.0.0-canary-7118f5dd7-20230705" eslint-plugin-regexp: "npm:^2.6.0" eslint-plugin-simple-import-sort: "npm:^12.1.1" eslint-plugin-sonarjs: "npm:^2.0.3" @@ -1779,70 +1779,7 @@ __metadata: optional: true typescript: optional: true - checksum: 10c0/225778405a5e0d0de55904a49d6e8833619c3d0084b0c73d16e23feaed5120fbe71c4b73b84122336030bd58da141beca810815425d28c5094c7e31282029477 - languageName: node - linkType: hard - -"@belgattitude/eslint-config-bases@npm:6.0.0-canary.9": - version: 6.0.0-canary.9 - resolution: "@belgattitude/eslint-config-bases@npm:6.0.0-canary.9" - dependencies: - "@rushstack/eslint-patch": "npm:^1.10.4" - "@tanstack/eslint-plugin-query": "npm:^5.53.0" - "@typescript-eslint/eslint-plugin": "npm:^8.4.0" - "@typescript-eslint/parser": "npm:^8.4.0" - "@typescript-eslint/typescript-estree": "npm:^8.4.0" - "@typescript-eslint/utils": "npm:^8.4.0" - eslint-config-prettier: "npm:^9.1.0" - eslint-import-resolver-typescript: "npm:^3.6.3" - eslint-plugin-import-x: "npm:^4.2.1" - eslint-plugin-jest: "npm:^28.8.3" - eslint-plugin-jest-formatting: "npm:^3.1.0" - eslint-plugin-jsx-a11y: "npm:^6.10.0" - eslint-plugin-perfectionist: "npm:^3.5.0" - eslint-plugin-playwright: "npm:^1.6.2" - eslint-plugin-prettier: "npm:^5.2.1" - eslint-plugin-react: "npm:^7.35.2" - eslint-plugin-react-hooks: "npm:^4.6.2 || 5.0.0-canary-7118f5dd7-20230705" - eslint-plugin-regexp: "npm:^2.6.0" - eslint-plugin-simple-import-sort: "npm:^12.1.1" - eslint-plugin-sonarjs: "npm:^2.0.2" - eslint-plugin-storybook: "npm:^0.8.0" - eslint-plugin-testing-library: "npm:^6.3.0" - eslint-plugin-unicorn: "npm:^55.0.0" - peerDependencies: - "@graphql-eslint/eslint-plugin": ^3.20.1 - "@testing-library/dom": ^10.4.0 - eslint: ^8.57.0 - eslint-plugin-mdx: ^3.1.5 - eslint-plugin-tailwindcss: ^3.17.4 - graphql: ^16.8.1 - prettier: ">=3.2.0 <5.0.0" - react: ">=18.2.0" - react-dom: ">=18.2.0" - typescript: ^5.2.2 - peerDependenciesMeta: - "@graphql-eslint/eslint-plugin": - optional: true - "@testing-library/dom": - optional: true - eslint-plugin-mdx: - optional: true - eslint-plugin-tailwindcss: - optional: true - graphql: - optional: true - prettier: - optional: true - react: - optional: true - react-dom: - optional: true - tailwindcss: - optional: true - typescript: - optional: true - checksum: 10c0/90da4a0542b51fc406b1088a9c8efe0436a0352290eb7c0c91bd7b0f717d4046e878ce72c8ba12774d58159e8d5f08b6bf88522123b387d79ad6b4c138e6bb18 + checksum: 10c0/91a7158dfaf38210488df06ca1ba761274cb7f76f6a114ee30d19e8572175587e575875a2a09db9ed94093a2b4574992f100119d9e2f0ece57529aa7e5a0d048 languageName: node linkType: hard @@ -2136,6 +2073,80 @@ __metadata: languageName: node linkType: hard +"@cloudflare/kv-asset-handler@npm:0.3.4": + version: 0.3.4 + resolution: "@cloudflare/kv-asset-handler@npm:0.3.4" + dependencies: + mime: "npm:^3.0.0" + checksum: 10c0/5895d28a4489f470acd217485e3ffbbe2e4a63b0772bb2925ee0f646b6ccce1fd224e07c4610cf514b5e7d0100053c81745a21c0af9a89a98fe16990a4e38ce7 + languageName: node + linkType: hard + +"@cloudflare/vitest-pool-workers@npm:0.5.18": + version: 0.5.18 + resolution: "@cloudflare/vitest-pool-workers@npm:0.5.18" + dependencies: + birpc: "npm:0.2.14" + cjs-module-lexer: "npm:^1.2.3" + devalue: "npm:^4.3.0" + esbuild: "npm:0.17.19" + miniflare: "npm:3.20241004.0" + semver: "npm:^7.5.1" + wrangler: "npm:3.80.4" + zod: "npm:^3.22.3" + peerDependencies: + "@vitest/runner": 2.0.x - 2.1.x + "@vitest/snapshot": 2.0.x - 2.1.x + vitest: 2.0.x - 2.1.x + checksum: 10c0/86d703a1e88105a65c0c5e6263403516dd7ef2cbbc7c3b4cd8692257d065cb91efc55dd3278ad6fe8f9809a9c1ba059c3b50efa952fcdbd3d47d5dad60836ea4 + languageName: node + linkType: hard + +"@cloudflare/workerd-darwin-64@npm:1.20241004.0": + version: 1.20241004.0 + resolution: "@cloudflare/workerd-darwin-64@npm:1.20241004.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@cloudflare/workerd-darwin-arm64@npm:1.20241004.0": + version: 1.20241004.0 + resolution: "@cloudflare/workerd-darwin-arm64@npm:1.20241004.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@cloudflare/workerd-linux-64@npm:1.20241004.0": + version: 1.20241004.0 + resolution: "@cloudflare/workerd-linux-64@npm:1.20241004.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@cloudflare/workerd-linux-arm64@npm:1.20241004.0": + version: 1.20241004.0 + resolution: "@cloudflare/workerd-linux-arm64@npm:1.20241004.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@cloudflare/workerd-windows-64@npm:1.20241004.0": + version: 1.20241004.0 + resolution: "@cloudflare/workerd-windows-64@npm:1.20241004.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@cloudflare/workers-shared@npm:0.6.0": + version: 0.6.0 + resolution: "@cloudflare/workers-shared@npm:0.6.0" + dependencies: + mime: "npm:^3.0.0" + zod: "npm:^3.22.3" + checksum: 10c0/971672989724fe87f665a6b2aad4a960f65f21088365e2afcf3c99030a3816379c1547c068cbb4995e233171bba2bfd10470e920a562c76a915eca1cd87be4ac + languageName: node + linkType: hard + "@codspeed/core@npm:^3.1.1": version: 3.1.1 resolution: "@codspeed/core@npm:3.1.1" @@ -2365,6 +2376,15 @@ __metadata: languageName: node linkType: hard +"@cspotcode/source-map-support@npm:0.8.1": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 + languageName: node + linkType: hard + "@csstools/selector-resolve-nested@npm:^2.0.0": version: 2.0.0 resolution: "@csstools/selector-resolve-nested@npm:2.0.0" @@ -2501,21 +2521,21 @@ __metadata: linkType: hard "@emnapi/core@npm:^1.1.0": - version: 1.3.0 - resolution: "@emnapi/core@npm:1.3.0" + version: 1.3.1 + resolution: "@emnapi/core@npm:1.3.1" dependencies: "@emnapi/wasi-threads": "npm:1.0.1" tslib: "npm:^2.4.0" - checksum: 10c0/ec204a6a1d8caf189ae5268359c7fa58b8b07b730f86e0e4492ec2610a3dc2d236c256bd8ac3af970db141a58a1eed41f52dd0a47dc2613ee744b26bee71b039 + checksum: 10c0/d3be1044ad704e2c486641bc18908523490f28c7d38bd12d9c1d4ce37d39dae6c4aecd2f2eaf44c6e3bd90eaf04e0591acc440b1b038cdf43cce078a355a0ea0 languageName: node linkType: hard "@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.2.0": - version: 1.3.0 - resolution: "@emnapi/runtime@npm:1.3.0" + version: 1.3.1 + resolution: "@emnapi/runtime@npm:1.3.1" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/b5f454bf258c45fba8543de16f6c3042313f78efe50a57ad577bf5172b745e1b657c4e69848476e754be3a1e9d1742a1ef409cce3bd5a2808d7b472103aeb660 + checksum: 10c0/060ffede50f1b619c15083312b80a9e62a5b0c87aa8c1b54854c49766c9d69f8d1d3d87bd963a647071263a320db41b25eaa50b74d6a80dcc763c23dbeaafd6c languageName: node linkType: hard @@ -2528,17 +2548,24 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/aix-ppc64@npm:0.21.5" - conditions: os=aix & cpu=ppc64 +"@esbuild-plugins/node-globals-polyfill@npm:^0.2.3": + version: 0.2.3 + resolution: "@esbuild-plugins/node-globals-polyfill@npm:0.2.3" + peerDependencies: + esbuild: "*" + checksum: 10c0/da3591b3943076a8d4a78320c176f37e5a5802512e2c3a792d4dfe495c051e097668dc56513160147b43e86987078559490164905ef41d1326ac0a9e7a6498ac languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/aix-ppc64@npm:0.23.1" - conditions: os=aix & cpu=ppc64 +"@esbuild-plugins/node-modules-polyfill@npm:^0.2.2": + version: 0.2.2 + resolution: "@esbuild-plugins/node-modules-polyfill@npm:0.2.2" + dependencies: + escape-string-regexp: "npm:^4.0.0" + rollup-plugin-node-polyfills: "npm:^0.2.1" + peerDependencies: + esbuild: "*" + checksum: 10c0/8573eb409d19769ea6a2f621d8d7e344d84a9f19d03f37f4ace053e23dab8eeea08feea871c1704a2d39c0859adadfba808b59a50de4d227cb3879dbd90e7f52 languageName: node linkType: hard @@ -2549,20 +2576,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm64@npm:0.21.5" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-arm64@npm:0.23.1" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/android-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/android-arm64@npm:0.24.0" @@ -2570,20 +2583,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm@npm:0.21.5" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-arm@npm:0.23.1" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@esbuild/android-arm@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/android-arm@npm:0.24.0" @@ -2591,20 +2590,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-x64@npm:0.21.5" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-x64@npm:0.23.1" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - "@esbuild/android-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/android-x64@npm:0.24.0" @@ -2612,20 +2597,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-arm64@npm:0.21.5" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/darwin-arm64@npm:0.23.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/darwin-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/darwin-arm64@npm:0.24.0" @@ -2633,20 +2604,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-x64@npm:0.21.5" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/darwin-x64@npm:0.23.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@esbuild/darwin-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/darwin-x64@npm:0.24.0" @@ -2654,20 +2611,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-arm64@npm:0.21.5" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/freebsd-arm64@npm:0.23.1" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/freebsd-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/freebsd-arm64@npm:0.24.0" @@ -2675,20 +2618,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-x64@npm:0.21.5" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/freebsd-x64@npm:0.23.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/freebsd-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/freebsd-x64@npm:0.24.0" @@ -2696,20 +2625,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm64@npm:0.21.5" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-arm64@npm:0.23.1" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/linux-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-arm64@npm:0.24.0" @@ -2717,20 +2632,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm@npm:0.21.5" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-arm@npm:0.23.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@esbuild/linux-arm@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-arm@npm:0.24.0" @@ -2738,20 +2639,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ia32@npm:0.21.5" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-ia32@npm:0.23.1" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/linux-ia32@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-ia32@npm:0.24.0" @@ -2759,20 +2646,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-loong64@npm:0.21.5" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-loong64@npm:0.23.1" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - "@esbuild/linux-loong64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-loong64@npm:0.24.0" @@ -2780,20 +2653,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-mips64el@npm:0.21.5" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-mips64el@npm:0.23.1" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - "@esbuild/linux-mips64el@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-mips64el@npm:0.24.0" @@ -2801,20 +2660,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ppc64@npm:0.21.5" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-ppc64@npm:0.23.1" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/linux-ppc64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-ppc64@npm:0.24.0" @@ -2822,20 +2667,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-riscv64@npm:0.21.5" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-riscv64@npm:0.23.1" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - "@esbuild/linux-riscv64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-riscv64@npm:0.24.0" @@ -2843,20 +2674,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-s390x@npm:0.21.5" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-s390x@npm:0.23.1" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - "@esbuild/linux-s390x@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-s390x@npm:0.24.0" @@ -2864,20 +2681,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-x64@npm:0.21.5" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-x64@npm:0.23.1" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-x64@npm:0.24.0" @@ -2885,20 +2688,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/netbsd-x64@npm:0.21.5" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/netbsd-x64@npm:0.23.1" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/netbsd-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/netbsd-x64@npm:0.24.0" @@ -2906,31 +2695,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/openbsd-arm64@npm:0.23.1" - conditions: os=openbsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/openbsd-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/openbsd-arm64@npm:0.24.0" - conditions: os=openbsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/openbsd-x64@npm:0.21.5" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/openbsd-x64@npm:0.23.1" - conditions: os=openbsd & cpu=x64 + conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard @@ -2941,20 +2709,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/sunos-x64@npm:0.21.5" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/sunos-x64@npm:0.23.1" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - "@esbuild/sunos-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/sunos-x64@npm:0.24.0" @@ -2962,20 +2716,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-arm64@npm:0.21.5" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/win32-arm64@npm:0.23.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/win32-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/win32-arm64@npm:0.24.0" @@ -2983,20 +2723,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-ia32@npm:0.21.5" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/win32-ia32@npm:0.23.1" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/win32-ia32@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/win32-ia32@npm:0.24.0" @@ -3004,20 +2730,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-x64@npm:0.21.5" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/win32-x64@npm:0.23.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@esbuild/win32-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/win32-x64@npm:0.24.0" @@ -3071,7 +2783,7 @@ __metadata: version: 0.0.0-use.local resolution: "@examples/nextjs-app@workspace:examples/nextjs-app" dependencies: - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.9" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" "@httpx/assert": "workspace:^" "@httpx/dsn-parser": "workspace:^" "@httpx/exception": "workspace:^" @@ -3080,7 +2792,7 @@ __metadata: "@httpx/treeu": "workspace:^" "@types/node": "npm:22.7.5" "@types/react": "npm:18.3.11" - "@types/react-dom": "npm:18.3.0" + "@types/react-dom": "npm:18.3.1" "@vitejs/plugin-react-swc": "npm:3.7.1" "@vitest/coverage-v8": "npm:2.1.2" "@vitest/ui": "npm:2.1.2" @@ -3094,7 +2806,6 @@ __metadata: next: "npm:14.2.15" pino: "npm:9.4.0" postcss: "npm:8.4.47" - primeicons: "npm:7.0.0" primereact: "npm:10.8.4" react: "npm:18.3.1" react-dom: "npm:18.3.1" @@ -3157,6 +2868,13 @@ __metadata: languageName: node linkType: hard +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 10c0/6f8027a8cba7f8f7b736718b013f5a38c0476eea67034c94a0d3c375e2b114366ad4419e6a6fa7ffc2ef9c6d3e0435d76dd584a7a1cbac23962fda7650b579e3 + languageName: node + linkType: hard + "@headlessui/react@npm:^1.7.17": version: 1.7.19 resolution: "@headlessui/react@npm:1.7.19" @@ -3175,17 +2893,13 @@ __metadata: resolution: "@httpx/assert@workspace:packages/assert" dependencies: "@arethetypeswrong/cli": "npm:0.16.4" - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" - "@codspeed/vitest-plugin": "npm:3.1.1" - "@edge-runtime/vm": "npm:4.0.3" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" + "@httpx/devtools-vitest": "workspace:^" "@sinclair/typebox": "npm:0.33.16" "@sindresorhus/is": "npm:7.0.1" "@size-limit/file": "npm:11.1.6" "@size-limit/webpack": "npm:11.1.6" "@types/lodash-es": "npm:4.17.12" - "@vitest/browser": "npm:2.1.2" - "@vitest/coverage-istanbul": "npm:2.1.2" - "@vitest/ui": "npm:2.1.2" browserslist: "npm:4.24.0" browserslist-to-esbuild: "npm:2.1.1" cross-env: "npm:7.0.3" @@ -3196,7 +2910,6 @@ __metadata: is-plain-obj: "npm:4.1.0" lodash-es: "npm:4.17.21" npm-run-all2: "npm:6.2.3" - playwright: "npm:1.48.0" publint: "npm:0.2.11" rimraf: "npm:6.0.1" rollup: "npm:4.24.0" @@ -3208,27 +2921,43 @@ __metadata: typedoc-plugin-markdown: "npm:4.2.9" typescript: "npm:5.6.3" valibot: "npm:0.42.1" - vite: "npm:5.4.8" - vite-tsconfig-paths: "npm:5.0.1" vitest: "npm:2.1.2" webpack: "npm:5.95.0" zod: "npm:3.23.8" languageName: unknown linkType: soft -"@httpx/dsn-parser@workspace:^, @httpx/dsn-parser@workspace:packages/dsn-parser": +"@httpx/devtools-vitest@workspace:^, @httpx/devtools-vitest@workspace:devtools/vitest": version: 0.0.0-use.local - resolution: "@httpx/dsn-parser@workspace:packages/dsn-parser" + resolution: "@httpx/devtools-vitest@workspace:devtools/vitest" dependencies: - "@arethetypeswrong/cli": "npm:0.16.4" - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" + "@cloudflare/vitest-pool-workers": "npm:0.5.18" "@codspeed/vitest-plugin": "npm:3.1.1" "@edge-runtime/vm": "npm:4.0.3" - "@size-limit/file": "npm:11.1.6" - "@size-limit/webpack": "npm:11.1.6" "@vitest/browser": "npm:2.1.2" "@vitest/coverage-istanbul": "npm:2.1.2" "@vitest/ui": "npm:2.1.2" + esbuild: "npm:0.24.0" + playwright: "npm:1.48.0" + typescript: "npm:5.6.3" + vite: "npm:5.4.8" + vite-tsconfig-paths: "npm:5.0.1" + vitest: "npm:2.1.2" + peerDependencies: + vitest: 2.1.2 + languageName: unknown + linkType: soft + +"@httpx/dsn-parser@workspace:^, @httpx/dsn-parser@workspace:packages/dsn-parser": + version: 0.0.0-use.local + resolution: "@httpx/dsn-parser@workspace:packages/dsn-parser" + dependencies: + "@arethetypeswrong/cli": "npm:0.16.4" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" + "@httpx/devtools-vitest": "workspace:^" + "@size-limit/file": "npm:11.1.6" + "@size-limit/webpack": "npm:11.1.6" browserslist: "npm:4.24.0" browserslist-to-esbuild: "npm:2.1.1" cross-env: "npm:7.0.3" @@ -3236,7 +2965,6 @@ __metadata: esbuild: "npm:0.24.0" eslint: "npm:8.57.1" npm-run-all2: "npm:6.2.3" - playwright: "npm:1.48.0" publint: "npm:0.2.11" rimraf: "npm:6.0.1" rollup: "npm:4.24.0" @@ -3245,8 +2973,6 @@ __metadata: typedoc: "npm:0.26.9" typedoc-plugin-markdown: "npm:4.2.9" typescript: "npm:5.6.3" - vite: "npm:5.4.8" - vite-tsconfig-paths: "npm:5.0.1" vitest: "npm:2.1.2" webpack: "npm:5.95.0" languageName: unknown @@ -3257,17 +2983,13 @@ __metadata: resolution: "@httpx/exception@workspace:packages/exception" dependencies: "@arethetypeswrong/cli": "npm:0.16.4" - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" - "@codspeed/vitest-plugin": "npm:3.1.1" - "@edge-runtime/vm": "npm:4.0.3" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" + "@httpx/devtools-vitest": "workspace:^" "@size-limit/file": "npm:11.1.6" "@size-limit/webpack": "npm:11.1.6" "@size-limit/webpack-why": "npm:11.1.6" "@types/node": "npm:22.7.5" "@types/statuses": "npm:2.0.5" - "@vitest/browser": "npm:2.1.2" - "@vitest/coverage-istanbul": "npm:2.1.2" - "@vitest/ui": "npm:2.1.2" browserslist: "npm:4.24.0" browserslist-to-esbuild: "npm:2.1.1" cross-env: "npm:7.0.3" @@ -3275,7 +2997,6 @@ __metadata: esbuild: "npm:0.24.0" eslint: "npm:8.57.1" npm-run-all2: "npm:6.2.3" - playwright: "npm:1.48.0" publint: "npm:0.2.11" rimraf: "npm:6.0.1" rollup: "npm:4.24.0" @@ -3287,8 +3008,6 @@ __metadata: typedoc: "npm:0.26.9" typedoc-plugin-markdown: "npm:4.2.9" typescript: "npm:5.6.3" - vite: "npm:5.4.8" - vite-tsconfig-paths: "npm:5.0.1" vitest: "npm:2.1.2" webpack: "npm:5.95.0" languageName: unknown @@ -3299,15 +3018,11 @@ __metadata: resolution: "@httpx/json-api@workspace:packages/json-api" dependencies: "@arethetypeswrong/cli": "npm:0.16.4" - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" - "@codspeed/vitest-plugin": "npm:3.1.1" - "@edge-runtime/vm": "npm:4.0.3" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" + "@httpx/devtools-vitest": "workspace:^" "@httpx/exception": "workspace:^" "@size-limit/file": "npm:11.1.6" "@size-limit/webpack": "npm:11.1.6" - "@vitest/browser": "npm:2.1.2" - "@vitest/coverage-istanbul": "npm:2.1.2" - "@vitest/ui": "npm:2.1.2" browserslist: "npm:4.24.0" browserslist-to-esbuild: "npm:2.1.1" cross-env: "npm:7.0.3" @@ -3315,7 +3030,6 @@ __metadata: esbuild: "npm:0.24.0" eslint: "npm:8.57.1" npm-run-all2: "npm:6.2.3" - playwright: "npm:1.48.0" publint: "npm:0.2.11" rimraf: "npm:6.0.1" rollup: "npm:4.24.0" @@ -3324,8 +3038,6 @@ __metadata: typedoc: "npm:0.26.9" typedoc-plugin-markdown: "npm:4.2.9" typescript: "npm:5.6.3" - vite: "npm:5.4.8" - vite-tsconfig-paths: "npm:5.0.1" vitest: "npm:2.1.2" webpack: "npm:5.95.0" languageName: unknown @@ -3336,14 +3048,10 @@ __metadata: resolution: "@httpx/memo-intl@workspace:packages/memo-intl" dependencies: "@arethetypeswrong/cli": "npm:0.16.4" - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" - "@codspeed/vitest-plugin": "npm:3.1.1" - "@edge-runtime/vm": "npm:4.0.3" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" + "@httpx/devtools-vitest": "workspace:^" "@size-limit/file": "npm:11.1.6" "@size-limit/webpack": "npm:11.1.6" - "@vitest/browser": "npm:2.1.2" - "@vitest/coverage-istanbul": "npm:2.1.2" - "@vitest/ui": "npm:2.1.2" browserslist: "npm:4.24.0" browserslist-to-esbuild: "npm:2.1.1" cross-env: "npm:7.0.3" @@ -3351,7 +3059,6 @@ __metadata: esbuild: "npm:0.24.0" eslint: "npm:8.57.1" npm-run-all2: "npm:6.2.3" - playwright: "npm:1.48.0" publint: "npm:0.2.11" quick-lru: "npm:^7.0.0" rimraf: "npm:6.0.1" @@ -3361,8 +3068,6 @@ __metadata: typedoc: "npm:0.26.9" typedoc-plugin-markdown: "npm:4.2.9" typescript: "npm:5.6.3" - vite: "npm:5.4.8" - vite-tsconfig-paths: "npm:5.0.1" vitest: "npm:2.1.2" webpack: "npm:5.95.0" languageName: unknown @@ -3373,16 +3078,12 @@ __metadata: resolution: "@httpx/plain-object@workspace:packages/plain-object" dependencies: "@arethetypeswrong/cli": "npm:0.16.4" - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" - "@codspeed/vitest-plugin": "npm:3.1.1" - "@edge-runtime/vm": "npm:4.0.3" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" + "@httpx/devtools-vitest": "workspace:^" "@sindresorhus/is": "npm:7.0.1" "@size-limit/file": "npm:11.1.6" "@size-limit/webpack": "npm:11.1.6" "@types/lodash-es": "npm:4.17.12" - "@vitest/browser": "npm:2.1.2" - "@vitest/coverage-istanbul": "npm:2.1.2" - "@vitest/ui": "npm:2.1.2" browserslist: "npm:4.24.0" browserslist-to-esbuild: "npm:2.1.1" cross-env: "npm:7.0.3" @@ -3394,7 +3095,6 @@ __metadata: is-plain-object: "npm:5.0.0" lodash-es: "npm:4.17.21" npm-run-all2: "npm:6.2.3" - playwright: "npm:1.48.0" publint: "npm:0.2.11" redux: "npm:5.0.1" rimraf: "npm:6.0.1" @@ -3404,8 +3104,6 @@ __metadata: typedoc: "npm:0.26.9" typedoc-plugin-markdown: "npm:4.2.9" typescript: "npm:5.6.3" - vite: "npm:5.4.8" - vite-tsconfig-paths: "npm:5.0.1" vitest: "npm:2.1.2" webpack: "npm:5.95.0" languageName: unknown @@ -3416,17 +3114,13 @@ __metadata: resolution: "@httpx/treeu@workspace:packages/treeu" dependencies: "@arethetypeswrong/cli": "npm:0.16.4" - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" - "@codspeed/vitest-plugin": "npm:3.1.1" - "@edge-runtime/vm": "npm:4.0.3" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" + "@httpx/devtools-vitest": "workspace:^" "@httpx/plain-object": "workspace:^" "@sindresorhus/is": "npm:7.0.1" "@size-limit/file": "npm:11.1.6" "@size-limit/webpack": "npm:11.1.6" "@types/lodash-es": "npm:4.17.12" - "@vitest/browser": "npm:2.1.2" - "@vitest/coverage-istanbul": "npm:2.1.2" - "@vitest/ui": "npm:2.1.2" browserslist: "npm:4.24.0" browserslist-to-esbuild: "npm:2.1.1" cross-env: "npm:7.0.3" @@ -3435,7 +3129,6 @@ __metadata: eslint: "npm:8.57.1" lodash-es: "npm:4.17.21" npm-run-all2: "npm:6.2.3" - playwright: "npm:1.48.0" publint: "npm:0.2.11" rimraf: "npm:6.0.1" rollup: "npm:4.24.0" @@ -3444,8 +3137,6 @@ __metadata: typedoc: "npm:0.26.9" typedoc-plugin-markdown: "npm:4.2.9" typescript: "npm:5.6.3" - vite: "npm:5.4.8" - vite-tsconfig-paths: "npm:5.0.1" vitest: "npm:2.1.2" webpack: "npm:5.95.0" languageName: unknown @@ -3747,7 +3438,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.1.0": +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e @@ -3778,6 +3469,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" @@ -5086,7 +4787,7 @@ __metadata: languageName: node linkType: hard -"@tanstack/eslint-plugin-query@npm:^5.53.0, @tanstack/eslint-plugin-query@npm:^5.59.7": +"@tanstack/eslint-plugin-query@npm:^5.59.7": version: 5.59.7 resolution: "@tanstack/eslint-plugin-query@npm:5.59.7" dependencies: @@ -5419,6 +5120,15 @@ __metadata: languageName: node linkType: hard +"@types/node-forge@npm:^1.3.0": + version: 1.3.11 + resolution: "@types/node-forge@npm:1.3.11" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/3d7d23ca0ba38ac0cf74028393bd70f31169ab9aba43f21deb787840170d307d662644bac07287495effe2812ddd7ac8a14dbd43f16c2936bbb06312e96fc3b9 + languageName: node + linkType: hard + "@types/node@npm:*, @types/node@npm:22.7.5, @types/node@npm:^22.5.5": version: 22.7.5 resolution: "@types/node@npm:22.7.5" @@ -5472,12 +5182,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:18.3.0": - version: 18.3.0 - resolution: "@types/react-dom@npm:18.3.0" +"@types/react-dom@npm:18.3.1": + version: 18.3.1 + resolution: "@types/react-dom@npm:18.3.1" dependencies: "@types/react": "npm:*" - checksum: 10c0/6c90d2ed72c5a0e440d2c75d99287e4b5df3e7b011838cdc03ae5cd518ab52164d86990e73246b9d812eaf02ec351d74e3b4f5bd325bf341e13bf980392fd53b + checksum: 10c0/8b416551c60bb6bd8ec10e198c957910cfb271bc3922463040b0d57cf4739cdcd24b13224f8d68f10318926e1ec3cd69af0af79f0291b599a992f8c80d47f1eb languageName: node linkType: hard @@ -5599,7 +5309,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.8.1, @typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/eslint-plugin@npm:^8.4.0, @typescript-eslint/eslint-plugin@npm:^8.8.1": +"@typescript-eslint/eslint-plugin@npm:8.8.1, @typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/eslint-plugin@npm:^8.8.1": version: 8.8.1 resolution: "@typescript-eslint/eslint-plugin@npm:8.8.1" dependencies: @@ -5622,7 +5332,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.8.1, @typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/parser@npm:^8.4.0, @typescript-eslint/parser@npm:^8.8.1": +"@typescript-eslint/parser@npm:8.8.1, @typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/parser@npm:^8.8.1": version: 8.8.1 resolution: "@typescript-eslint/parser@npm:8.8.1" dependencies: @@ -5796,7 +5506,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.8.1, @typescript-eslint/typescript-estree@npm:^8.4.0, @typescript-eslint/typescript-estree@npm:^8.8.1": +"@typescript-eslint/typescript-estree@npm:8.8.1, @typescript-eslint/typescript-estree@npm:^8.8.1": version: 8.8.1 resolution: "@typescript-eslint/typescript-estree@npm:8.8.1" dependencies: @@ -5829,7 +5539,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.8.1, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.1.0, @typescript-eslint/utils@npm:^8.3.0, @typescript-eslint/utils@npm:^8.4.0, @typescript-eslint/utils@npm:^8.8.0, @typescript-eslint/utils@npm:^8.8.1": +"@typescript-eslint/utils@npm:8.8.1, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.1.0, @typescript-eslint/utils@npm:^8.3.0, @typescript-eslint/utils@npm:^8.8.0, @typescript-eslint/utils@npm:^8.8.1": version: 8.8.1 resolution: "@typescript-eslint/utils@npm:8.8.1" dependencies: @@ -6436,6 +6146,15 @@ __metadata: languageName: node linkType: hard +"acorn-walk@npm:^8.2.0": + version: 8.3.4 + resolution: "acorn-walk@npm:8.3.4" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10c0/76537ac5fb2c37a64560feaf3342023dadc086c46da57da363e64c6148dc21b57d49ace26f949e225063acb6fb441eabffd89f7a3066de5ad37ab3e328927c62 + languageName: node + linkType: hard + "acorn@npm:8.11.3": version: 8.11.3 resolution: "acorn@npm:8.11.3" @@ -6445,7 +6164,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.0, acorn@npm:^8.12.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.0.0, acorn@npm:^8.11.0, acorn@npm:^8.12.1, acorn@npm:^8.7.1, acorn@npm:^8.8.0, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -6805,6 +6524,15 @@ __metadata: languageName: node linkType: hard +"as-table@npm:^1.0.36": + version: 1.0.55 + resolution: "as-table@npm:1.0.55" + dependencies: + printable-characters: "npm:^1.0.42" + checksum: 10c0/8c5693a84621fe53c62fcad6b779dc55c5caf4d43b8e67077964baea4a337769ef53f590d7395c806805b4ef1a391b614ba9acdee19b2ca4309ddedaf13894e6 + languageName: node + linkType: hard + "assertion-error@npm:^2.0.1": version: 2.0.1 resolution: "assertion-error@npm:2.0.1" @@ -6839,9 +6567,9 @@ __metadata: languageName: node linkType: hard -"astro@npm:4.16.1": - version: 4.16.1 - resolution: "astro@npm:4.16.1" +"astro@npm:4.16.2": + version: 4.16.2 + resolution: "astro@npm:4.16.2" dependencies: "@astrojs/compiler": "npm:^2.10.3" "@astrojs/internal-helpers": "npm:0.4.1" @@ -6911,7 +6639,7 @@ __metadata: optional: true bin: astro: astro.js - checksum: 10c0/2bb3f7b675303db5918f0ce801f920458dfe0dd0bdb0a09ab78e53ea3239bd10a5d146ed7bfebbfbff8e8f3e3e25ae9cec6a8ce725db3e0ef1753450f68c9cd7 + checksum: 10c0/f1eeaa1473018fffcac30f97f03ff5687aaf52ff33ccd2e039baaf0042b7567c6936fe24384a40cabbed416d9335597e4e26e7ac4faa267dc7c30cabb1a3658e languageName: node linkType: hard @@ -7068,6 +6796,13 @@ __metadata: languageName: node linkType: hard +"birpc@npm:0.2.14": + version: 0.2.14 + resolution: "birpc@npm:0.2.14" + checksum: 10c0/1acff3dab8c089410982ab086f7bb788840e51ef38ae68967962782df58f044ec2dddf4f9cc8027a4813a6ea7f8721a3ff0a1ac25ac4faff1dacea2cc3670039 + languageName: node + linkType: hard + "bl@npm:^4.0.3": version: 4.1.0 resolution: "bl@npm:4.1.0" @@ -7079,6 +6814,13 @@ __metadata: languageName: node linkType: hard +"blake3-wasm@npm:^2.1.5": + version: 2.1.5 + resolution: "blake3-wasm@npm:2.1.5" + checksum: 10c0/5dc729d8e3a9d1d7ab016b36cdda264a327ada0239716df48435163e11d2bf6df25d6e421655a1f52649098ae49555268a654729b7d02768f77c571ab37ef814 + languageName: node + linkType: hard + "boolbase@npm:^1.0.0": version: 1.0.0 resolution: "boolbase@npm:1.0.0" @@ -7300,6 +7042,16 @@ __metadata: languageName: node linkType: hard +"capnp-ts@npm:^0.7.0": + version: 0.7.0 + resolution: "capnp-ts@npm:0.7.0" + dependencies: + debug: "npm:^4.3.1" + tslib: "npm:^2.2.0" + checksum: 10c0/83d559c3d59126ee39295973bf2e9228cd4b559c81bfc938268c63deba4020f0df6ce2f2d1e2b7d7e4421de21f4854424b774ab9ac4d9a66d1c57d2fef7da870 + languageName: node + linkType: hard + "ccount@npm:^2.0.0": version: 2.0.1 resolution: "ccount@npm:2.0.1" @@ -7913,7 +7665,7 @@ __metadata: languageName: node linkType: hard -"cookie@npm:^0.7.2": +"cookie@npm:^0.7.1, cookie@npm:^0.7.2": version: 0.7.2 resolution: "cookie@npm:0.7.2" checksum: 10c0/9596e8ccdbf1a3a88ae02cf5ee80c1c50959423e1022e4e60b91dd87c622af1da309253d8abdb258fb5e3eacb4f08e579dc58b4897b8087574eee0fd35dfa5d2 @@ -7929,7 +7681,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.37.0, core-js-compat@npm:^3.37.1, core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": +"core-js-compat@npm:^3.37.1, core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": version: 3.38.1 resolution: "core-js-compat@npm:3.38.1" dependencies: @@ -8453,6 +8205,13 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:^2.0.0": + version: 2.0.2 + resolution: "data-uri-to-buffer@npm:2.0.2" + checksum: 10c0/341b6191ed65fa453e97a6d44db06082121ebc2ef3e6e096dfb6a1ebbc75e8be39d4199a5b4dba0f0efc43f2a3b2bcc276d85cf1407eba880eb09ebf17c3c31e + languageName: node + linkType: hard + "data-view-buffer@npm:^1.0.1": version: 1.0.1 resolution: "data-view-buffer@npm:1.0.1" @@ -8608,6 +8367,13 @@ __metadata: languageName: node linkType: hard +"defu@npm:^6.1.4": + version: 6.1.4 + resolution: "defu@npm:6.1.4" + checksum: 10c0/2d6cc366262dc0cb8096e429368e44052fdf43ed48e53ad84cc7c9407f890301aa5fcb80d0995abaaf842b3949f154d060be4160f7a46cb2bc2f7726c81526f5 + languageName: node + linkType: hard + "delaunator@npm:5": version: 5.0.1 resolution: "delaunator@npm:5.0.1" @@ -8654,6 +8420,13 @@ __metadata: languageName: node linkType: hard +"devalue@npm:^4.3.0": + version: 4.3.3 + resolution: "devalue@npm:4.3.3" + checksum: 10c0/f7217b6fa631b2e7f56697d3354645d2f028f0c0734fa6e09462e7889082da08e57a3504cb208b6b80ec79a3f249f4f9289064fd59c7bc419c9c8cd0592201f7 + languageName: node + linkType: hard + "devalue@npm:^5.1.1": version: 5.1.1 resolution: "devalue@npm:5.1.1" @@ -9151,214 +8924,51 @@ __metadata: "es-toolkit@npm:1.24.0": version: 1.24.0 - resolution: "es-toolkit@npm:1.24.0" - dependenciesMeta: - "@trivago/prettier-plugin-sort-imports@4.3.0": - unplugged: true - prettier-plugin-sort-re-exports@0.0.1: - unplugged: true - checksum: 10c0/0b4cfcfae2dcd9efcf9292e0de9bf04f3fc63dcb70df8341b5f7b742f7794194bca6090a09a8dda0f8f706e6726051d94721a844b3daa8e071456efbde416d14 - languageName: node - linkType: hard - -"esbuild-plugin-file-path-extensions@npm:2.1.3": - version: 2.1.3 - resolution: "esbuild-plugin-file-path-extensions@npm:2.1.3" - checksum: 10c0/30f0c099fc77d0a436c5d4260245434c9f0b2fff5f76649caac310b424e23bde19c77d56c9bfe846595fc6204e0aeee8eaf2d29a1aa10c2cbd2225ff13aca686 - languageName: node - linkType: hard - -"esbuild@npm:0.24.0": - version: 0.24.0 - resolution: "esbuild@npm:0.24.0" - dependencies: - "@esbuild/aix-ppc64": "npm:0.24.0" - "@esbuild/android-arm": "npm:0.24.0" - "@esbuild/android-arm64": "npm:0.24.0" - "@esbuild/android-x64": "npm:0.24.0" - "@esbuild/darwin-arm64": "npm:0.24.0" - "@esbuild/darwin-x64": "npm:0.24.0" - "@esbuild/freebsd-arm64": "npm:0.24.0" - "@esbuild/freebsd-x64": "npm:0.24.0" - "@esbuild/linux-arm": "npm:0.24.0" - "@esbuild/linux-arm64": "npm:0.24.0" - "@esbuild/linux-ia32": "npm:0.24.0" - "@esbuild/linux-loong64": "npm:0.24.0" - "@esbuild/linux-mips64el": "npm:0.24.0" - "@esbuild/linux-ppc64": "npm:0.24.0" - "@esbuild/linux-riscv64": "npm:0.24.0" - "@esbuild/linux-s390x": "npm:0.24.0" - "@esbuild/linux-x64": "npm:0.24.0" - "@esbuild/netbsd-x64": "npm:0.24.0" - "@esbuild/openbsd-arm64": "npm:0.24.0" - "@esbuild/openbsd-x64": "npm:0.24.0" - "@esbuild/sunos-x64": "npm:0.24.0" - "@esbuild/win32-arm64": "npm:0.24.0" - "@esbuild/win32-ia32": "npm:0.24.0" - "@esbuild/win32-x64": "npm:0.24.0" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-arm64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10c0/9f1aadd8d64f3bff422ae78387e66e51a5e09de6935a6f987b6e4e189ed00fdc2d1bc03d2e33633b094008529c8b6e06c7ad1a9782fb09fec223bf95998c0683 + resolution: "es-toolkit@npm:1.24.0" + dependenciesMeta: + "@trivago/prettier-plugin-sort-imports@4.3.0": + unplugged: true + prettier-plugin-sort-re-exports@0.0.1: + unplugged: true + checksum: 10c0/0b4cfcfae2dcd9efcf9292e0de9bf04f3fc63dcb70df8341b5f7b742f7794194bca6090a09a8dda0f8f706e6726051d94721a844b3daa8e071456efbde416d14 languageName: node linkType: hard -"esbuild@npm:^0.21.3, esbuild@npm:^0.21.5": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" - dependencies: - "@esbuild/aix-ppc64": "npm:0.21.5" - "@esbuild/android-arm": "npm:0.21.5" - "@esbuild/android-arm64": "npm:0.21.5" - "@esbuild/android-x64": "npm:0.21.5" - "@esbuild/darwin-arm64": "npm:0.21.5" - "@esbuild/darwin-x64": "npm:0.21.5" - "@esbuild/freebsd-arm64": "npm:0.21.5" - "@esbuild/freebsd-x64": "npm:0.21.5" - "@esbuild/linux-arm": "npm:0.21.5" - "@esbuild/linux-arm64": "npm:0.21.5" - "@esbuild/linux-ia32": "npm:0.21.5" - "@esbuild/linux-loong64": "npm:0.21.5" - "@esbuild/linux-mips64el": "npm:0.21.5" - "@esbuild/linux-ppc64": "npm:0.21.5" - "@esbuild/linux-riscv64": "npm:0.21.5" - "@esbuild/linux-s390x": "npm:0.21.5" - "@esbuild/linux-x64": "npm:0.21.5" - "@esbuild/netbsd-x64": "npm:0.21.5" - "@esbuild/openbsd-x64": "npm:0.21.5" - "@esbuild/sunos-x64": "npm:0.21.5" - "@esbuild/win32-arm64": "npm:0.21.5" - "@esbuild/win32-ia32": "npm:0.21.5" - "@esbuild/win32-x64": "npm:0.21.5" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de +"esbuild-plugin-file-path-extensions@npm:2.1.3": + version: 2.1.3 + resolution: "esbuild-plugin-file-path-extensions@npm:2.1.3" + checksum: 10c0/30f0c099fc77d0a436c5d4260245434c9f0b2fff5f76649caac310b424e23bde19c77d56c9bfe846595fc6204e0aeee8eaf2d29a1aa10c2cbd2225ff13aca686 languageName: node linkType: hard -"esbuild@npm:^0.23.0": - version: 0.23.1 - resolution: "esbuild@npm:0.23.1" - dependencies: - "@esbuild/aix-ppc64": "npm:0.23.1" - "@esbuild/android-arm": "npm:0.23.1" - "@esbuild/android-arm64": "npm:0.23.1" - "@esbuild/android-x64": "npm:0.23.1" - "@esbuild/darwin-arm64": "npm:0.23.1" - "@esbuild/darwin-x64": "npm:0.23.1" - "@esbuild/freebsd-arm64": "npm:0.23.1" - "@esbuild/freebsd-x64": "npm:0.23.1" - "@esbuild/linux-arm": "npm:0.23.1" - "@esbuild/linux-arm64": "npm:0.23.1" - "@esbuild/linux-ia32": "npm:0.23.1" - "@esbuild/linux-loong64": "npm:0.23.1" - "@esbuild/linux-mips64el": "npm:0.23.1" - "@esbuild/linux-ppc64": "npm:0.23.1" - "@esbuild/linux-riscv64": "npm:0.23.1" - "@esbuild/linux-s390x": "npm:0.23.1" - "@esbuild/linux-x64": "npm:0.23.1" - "@esbuild/netbsd-x64": "npm:0.23.1" - "@esbuild/openbsd-arm64": "npm:0.23.1" - "@esbuild/openbsd-x64": "npm:0.23.1" - "@esbuild/sunos-x64": "npm:0.23.1" - "@esbuild/win32-arm64": "npm:0.23.1" - "@esbuild/win32-ia32": "npm:0.23.1" - "@esbuild/win32-x64": "npm:0.23.1" +"esbuild@npm:0.24.0": + version: 0.24.0 + resolution: "esbuild@npm:0.24.0" + dependencies: + "@esbuild/aix-ppc64": "npm:0.24.0" + "@esbuild/android-arm": "npm:0.24.0" + "@esbuild/android-arm64": "npm:0.24.0" + "@esbuild/android-x64": "npm:0.24.0" + "@esbuild/darwin-arm64": "npm:0.24.0" + "@esbuild/darwin-x64": "npm:0.24.0" + "@esbuild/freebsd-arm64": "npm:0.24.0" + "@esbuild/freebsd-x64": "npm:0.24.0" + "@esbuild/linux-arm": "npm:0.24.0" + "@esbuild/linux-arm64": "npm:0.24.0" + "@esbuild/linux-ia32": "npm:0.24.0" + "@esbuild/linux-loong64": "npm:0.24.0" + "@esbuild/linux-mips64el": "npm:0.24.0" + "@esbuild/linux-ppc64": "npm:0.24.0" + "@esbuild/linux-riscv64": "npm:0.24.0" + "@esbuild/linux-s390x": "npm:0.24.0" + "@esbuild/linux-x64": "npm:0.24.0" + "@esbuild/netbsd-x64": "npm:0.24.0" + "@esbuild/openbsd-arm64": "npm:0.24.0" + "@esbuild/openbsd-x64": "npm:0.24.0" + "@esbuild/sunos-x64": "npm:0.24.0" + "@esbuild/win32-arm64": "npm:0.24.0" + "@esbuild/win32-ia32": "npm:0.24.0" + "@esbuild/win32-x64": "npm:0.24.0" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -9410,7 +9020,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/08c2ed1105cc3c5e3a24a771e35532fe6089dd24a39c10097899072cef4a99f20860e41e9294e000d86380f353b04d8c50af482483d7f69f5208481cce61eec7 + checksum: 10c0/9f1aadd8d64f3bff422ae78387e66e51a5e09de6935a6f987b6e4e189ed00fdc2d1bc03d2e33633b094008529c8b6e06c7ad1a9782fb09fec223bf95998c0683 languageName: node linkType: hard @@ -9525,7 +9135,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import-x@npm:^4.2.1, eslint-plugin-import-x@npm:^4.3.1": +"eslint-plugin-import-x@npm:^4.3.1": version: 4.3.1 resolution: "eslint-plugin-import-x@npm:4.3.1" dependencies: @@ -9627,7 +9237,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-perfectionist@npm:^3.5.0, eslint-plugin-perfectionist@npm:^3.8.0": +"eslint-plugin-perfectionist@npm:^3.8.0": version: 3.8.0 resolution: "eslint-plugin-perfectionist@npm:3.8.0" dependencies: @@ -9654,9 +9264,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-playwright@npm:^1.6.2": - version: 1.6.2 - resolution: "eslint-plugin-playwright@npm:1.6.2" +"eslint-plugin-playwright@npm:^1.7.0": + version: 1.7.0 + resolution: "eslint-plugin-playwright@npm:1.7.0" dependencies: globals: "npm:^13.23.0" peerDependencies: @@ -9665,7 +9275,7 @@ __metadata: peerDependenciesMeta: eslint-plugin-jest: optional: true - checksum: 10c0/0785b7031507699eac6a45fdcd90705d9759d5943a4033354b735ae856c9d71345ecacb6a7ff0c4cd0e24f523e9d59dee7081dc96c7b5c492fcbed77496a0a19 + checksum: 10c0/da62c7335d3e1f6379b7e32c1951c26f91106d45670cbb1ca93dbd856be8282783c438f5acac8620af88d5265541c800b97606039b19387f3e4652554252f14f languageName: node linkType: hard @@ -9689,25 +9299,16 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:4.6.2": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:^4.5.0 || 5.0.0-canary-7118f5dd7-20230705, eslint-plugin-react-hooks@npm:^4.6.2 || 5.0.0-canary-7118f5dd7-20230705": - version: 5.0.0-canary-7118f5dd7-20230705 - resolution: "eslint-plugin-react-hooks@npm:5.0.0-canary-7118f5dd7-20230705" +"eslint-plugin-react-hooks@npm:5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-react-hooks@npm:5.0.0" peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 10c0/554c4e426bfeb126155510dcba8345391426af147ee629f1c56c9ef6af08340d11008213e4e15b0138830af2c4439d7158da2091987f7efb01aeab662c44b274 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: 10c0/bcb74b421f32e4203a7100405b57aab85526be4461e5a1da01bc537969a30012d2ee209a2c2a6cac543833a27188ce1e6ad71e4628d0bb4a2e5365cad86c5002 languageName: node linkType: hard -"eslint-plugin-react@npm:^7.33.2, eslint-plugin-react@npm:^7.35.2, eslint-plugin-react@npm:^7.36.1, eslint-plugin-react@npm:^7.37.1": +"eslint-plugin-react@npm:^7.33.2, eslint-plugin-react@npm:^7.36.1, eslint-plugin-react@npm:^7.37.1": version: 7.37.1 resolution: "eslint-plugin-react@npm:7.37.1" dependencies: @@ -9761,7 +9362,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-sonarjs@npm:^2.0.2, eslint-plugin-sonarjs@npm:^2.0.3": +"eslint-plugin-sonarjs@npm:^2.0.3": version: 2.0.3 resolution: "eslint-plugin-sonarjs@npm:2.0.3" dependencies: @@ -9794,20 +9395,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-storybook@npm:^0.8.0": - version: 0.8.0 - resolution: "eslint-plugin-storybook@npm:0.8.0" - dependencies: - "@storybook/csf": "npm:^0.0.1" - "@typescript-eslint/utils": "npm:^5.62.0" - requireindex: "npm:^1.2.0" - ts-dedent: "npm:^2.2.0" - peerDependencies: - eslint: ">=6" - checksum: 10c0/c76f6decdd4c826cd6a8bb613085e0cde804f4648093a0464a39867cc0ba4e1d34be15ff91eed827730da5efbbf55ae5e71af648bb0b461946d5e41384669ab8 - languageName: node - linkType: hard - "eslint-plugin-storybook@npm:^0.9.0": version: 0.9.0 resolution: "eslint-plugin-storybook@npm:0.9.0" @@ -9845,32 +9432,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-unicorn@npm:^55.0.0": - version: 55.0.0 - resolution: "eslint-plugin-unicorn@npm:55.0.0" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.5" - "@eslint-community/eslint-utils": "npm:^4.4.0" - ci-info: "npm:^4.0.0" - clean-regexp: "npm:^1.0.0" - core-js-compat: "npm:^3.37.0" - esquery: "npm:^1.5.0" - globals: "npm:^15.7.0" - indent-string: "npm:^4.0.0" - is-builtin-module: "npm:^3.2.1" - jsesc: "npm:^3.0.2" - pluralize: "npm:^8.0.0" - read-pkg-up: "npm:^7.0.1" - regexp-tree: "npm:^0.1.27" - regjsparser: "npm:^0.10.0" - semver: "npm:^7.6.1" - strip-indent: "npm:^3.0.0" - peerDependencies: - eslint: ">=8.56.0" - checksum: 10c0/31620da5c823abc791a3f4c9a0ab19baf21820bd38f018eafbc862ea0bbc3e4baedbdaaaf48f2dc1b2a59dfc7b341e654f2126c394f5d62fb5216e632d8a2c03 - languageName: node - linkType: hard - "eslint-plugin-unicorn@npm:^56.0.0": version: 56.0.0 resolution: "eslint-plugin-unicorn@npm:56.0.0" @@ -10023,7 +9584,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0, esquery@npm:^1.4.2, esquery@npm:^1.5.0, esquery@npm:^1.6.0": +"esquery@npm:^1.4.0, esquery@npm:^1.4.2, esquery@npm:^1.6.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: @@ -10161,6 +9722,13 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^0.6.1": + version: 0.6.1 + resolution: "estree-walker@npm:0.6.1" + checksum: 10c0/6dabc855faa04a1ffb17b6a9121b6008ba75ab5a163ad9dc3d7fca05cfda374c5f5e91418d783496620ca75e99a73c40874d8b75f23b4117508cc8bde78e7b41 + languageName: node + linkType: hard + "estree-walker@npm:^2.0.2": version: 2.0.2 resolution: "estree-walker@npm:2.0.2" @@ -10254,6 +9822,13 @@ __metadata: languageName: node linkType: hard +"exit-hook@npm:^2.2.1": + version: 2.2.1 + resolution: "exit-hook@npm:2.2.1" + checksum: 10c0/0803726d1b60aade6afd10c73e5a7e1bf256ac9bee78362a88e91a4f735e8c67899f2853ddc613072c05af07bbb067a9978a740e614db1aeef167d50c6dc5c09 + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -10810,6 +10385,16 @@ __metadata: languageName: node linkType: hard +"get-source@npm:^2.0.12": + version: 2.0.12 + resolution: "get-source@npm:2.0.12" + dependencies: + data-uri-to-buffer: "npm:^2.0.0" + source-map: "npm:^0.6.1" + checksum: 10c0/b1db46d28902344fd9407e1f0ed0b8f3a85cb4650f85ba8cee9c0b422fc75118172f12f735706e2c6e034617b13a2fbc5266e7fab617ecb184f0cee074b9dd3e + languageName: node + linkType: hard + "get-stream@npm:^3.0.0": version: 3.0.0 resolution: "get-stream@npm:3.0.0" @@ -11032,7 +10617,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^15.7.0, globals@npm:^15.9.0": +"globals@npm:^15.9.0": version: 15.11.0 resolution: "globals@npm:15.11.0" checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c @@ -11477,8 +11062,8 @@ __metadata: linkType: hard "hast-util-to-jsx-runtime@npm:^2.0.0": - version: 2.3.0 - resolution: "hast-util-to-jsx-runtime@npm:2.3.0" + version: 2.3.1 + resolution: "hast-util-to-jsx-runtime@npm:2.3.1" dependencies: "@types/estree": "npm:^1.0.0" "@types/hast": "npm:^3.0.0" @@ -11495,7 +11080,7 @@ __metadata: style-to-object: "npm:^1.0.0" unist-util-position: "npm:^5.0.0" vfile-message: "npm:^4.0.0" - checksum: 10c0/df7a36dcc792df7667a54438f044b721753d5e09692606d23bf7336bf4651670111fe7728eebbf9f0e4f96ab3346a05bb23037fa1b1d115482b3bc5bde8b6912 + checksum: 10c0/280e2069a4bff57a1cf93d8337117613db0c47dbbbdfea8dcdae811018538c8eb0b7b25edfe37d1f0fb92a081750961a53e3119439e910565b95071daada1a34 languageName: node linkType: hard @@ -11668,7 +11253,7 @@ __metadata: dependencies: "@astrojs/check": "npm:0.9.4" "@astrojs/starlight": "npm:0.28.3" - astro: "npm:4.16.1" + astro: "npm:4.16.2" sharp: "npm:0.33.5" typescript: "npm:5.6.3" languageName: unknown @@ -11678,7 +11263,7 @@ __metadata: version: 0.0.0-use.local resolution: "httpx-docs@workspace:docs" dependencies: - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" eslint: "npm:8.57.1" eslint-config-next: "npm:14.2.15" eslint-plugin-tailwindcss: "npm:3.17.5" @@ -11702,7 +11287,7 @@ __metadata: version: 0.0.0-use.local resolution: "httpx-monorepo@workspace:." dependencies: - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" "@changesets/changelog-github": "npm:0.5.0" "@changesets/cli": "npm:2.27.9" "@commitlint/cli": "npm:19.5.0" @@ -13308,6 +12893,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.25.3": + version: 0.25.9 + resolution: "magic-string@npm:0.25.9" + dependencies: + sourcemap-codec: "npm:^1.4.8" + checksum: 10c0/37f5e01a7e8b19a072091f0b45ff127cda676232d373ce2c551a162dd4053c575ec048b9cbb4587a1f03adb6c5d0fd0dd49e8ab070cd2c83a4992b2182d9cb56 + languageName: node + linkType: hard + "magic-string@npm:^0.30.11": version: 0.30.12 resolution: "magic-string@npm:0.30.12" @@ -14934,6 +14528,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 10c0/402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531 + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -14962,6 +14565,28 @@ __metadata: languageName: node linkType: hard +"miniflare@npm:3.20241004.0": + version: 3.20241004.0 + resolution: "miniflare@npm:3.20241004.0" + dependencies: + "@cspotcode/source-map-support": "npm:0.8.1" + acorn: "npm:^8.8.0" + acorn-walk: "npm:^8.2.0" + capnp-ts: "npm:^0.7.0" + exit-hook: "npm:^2.2.1" + glob-to-regexp: "npm:^0.4.1" + stoppable: "npm:^1.1.0" + undici: "npm:^5.28.4" + workerd: "npm:1.20241004.0" + ws: "npm:^8.17.1" + youch: "npm:^3.2.2" + zod: "npm:^3.22.3" + bin: + miniflare: bootstrap.js + checksum: 10c0/5a76a154f4863b9c8fe3b0a9353bcdd421a2c9cae21c7b89671ae98dce7080be77f5da9a6ec4660d8ce2ffff5dc7b16d074563412294fb80a13f69838134e18b + languageName: node + linkType: hard + "minimatch@npm:9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -15167,6 +14792,15 @@ __metadata: languageName: node linkType: hard +"mustache@npm:^4.2.0": + version: 4.2.0 + resolution: "mustache@npm:4.2.0" + bin: + mustache: bin/mustache + checksum: 10c0/1f8197e8a19e63645a786581d58c41df7853da26702dbc005193e2437c98ca49b255345c173d50c08fe4b4dbb363e53cb655ecc570791f8deb09887248dd34a2 + languageName: node + linkType: hard + "mute-stream@npm:^1.0.0": version: 1.0.0 resolution: "mute-stream@npm:1.0.0" @@ -15185,7 +14819,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.6, nanoid@npm:^3.3.7": +"nanoid@npm:^3.3.3, nanoid@npm:^3.3.6, nanoid@npm:^3.3.7": version: 3.3.7 resolution: "nanoid@npm:3.3.7" bin: @@ -15451,6 +15085,13 @@ __metadata: languageName: node linkType: hard +"node-forge@npm:^1": + version: 1.3.1 + resolution: "node-forge@npm:1.3.1" + checksum: 10c0/e882819b251a4321f9fc1d67c85d1501d3004b4ee889af822fd07f64de3d1a8e272ff00b689570af0465d65d6bf5074df9c76e900e0aff23e60b847f2a46fbe8 + languageName: node + linkType: hard + "node-gyp-build@npm:^4.6.0": version: 4.8.2 resolution: "node-gyp-build@npm:4.8.2" @@ -15822,6 +15463,13 @@ __metadata: languageName: node linkType: hard +"ohash@npm:^1.1.4": + version: 1.1.4 + resolution: "ohash@npm:1.1.4" + checksum: 10c0/73c3bcab2891ee2155ed62bb4c2906f622bf2204a3c9f4616ada8a6a76276bb6b4b4180eaf273b7c7d6232793e4d79d486aab436ebfc0d06d92a997f07122864 + languageName: node + linkType: hard + "on-exit-leak-free@npm:^2.1.0": version: 2.1.2 resolution: "on-exit-leak-free@npm:2.1.2" @@ -16245,11 +15893,11 @@ __metadata: linkType: hard "parse5@npm:^7.0.0": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" + version: 7.2.0 + resolution: "parse5@npm:7.2.0" dependencies: - entities: "npm:^4.4.0" - checksum: 10c0/297d7af8224f4b5cb7f6617ecdae98eeaed7f8cbd78956c42785e230505d5a4f07cef352af10d3006fa5c1544b76b57784d3a22d861ae071bbc460c649482bf4 + entities: "npm:^4.5.0" + checksum: 10c0/76d68684708befb41ff1d5e0e9835f566afb3950807d340941afc9dbe4c9c28db2414bda0c8503d459de863463869b8540c6abf8c9742cffa0b9b31eecd37951 languageName: node linkType: hard @@ -16715,13 +16363,6 @@ __metadata: languageName: node linkType: hard -"primeicons@npm:7.0.0": - version: 7.0.0 - resolution: "primeicons@npm:7.0.0" - checksum: 10c0/a7f6344d6db49e785d2040b35f8cae761d15bb8f8ee70ade8981d45438245414e913fe7235921122aade2b0a11a032c98b44dc527be2da11aa791ff145099c06 - languageName: node - linkType: hard - "primereact@npm:10.8.4": version: 10.8.4 resolution: "primereact@npm:10.8.4" @@ -16739,12 +16380,19 @@ __metadata: languageName: node linkType: hard +"printable-characters@npm:^1.0.42": + version: 1.0.42 + resolution: "printable-characters@npm:1.0.42" + checksum: 10c0/7c94d94c6041a37c385af770c7402ad5a2e8a3429ca4d2505a9f19fde39bac9a8fd1edfbfa02f1eae5b4b0f3536b6b8ee6c84621f7c0fcb41476b2df6ee20e4b + languageName: node + linkType: hard + "prisma-exception@workspace:integrations/prisma-exception": version: 0.0.0-use.local resolution: "prisma-exception@workspace:integrations/prisma-exception" dependencies: "@arethetypeswrong/cli": "npm:0.16.4" - "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.16" + "@belgattitude/eslint-config-bases": "npm:6.0.0-canary.19" "@httpx/exception": "workspace:^" "@size-limit/file": "npm:11.1.6" "@size-limit/webpack": "npm:11.1.6" @@ -17572,7 +17220,14 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.22.2, resolve@npm:^1.22.4": +"resolve.exports@npm:^2.0.2": + version: 2.0.2 + resolution: "resolve.exports@npm:2.0.2" + checksum: 10c0/cc4cffdc25447cf34730f388dca5021156ba9302a3bad3d7f168e790dc74b2827dff603f1bc6ad3d299bac269828dca96dd77e036dc9fba6a2a1807c47ab5c98 + languageName: node + linkType: hard + +"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.22.8": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -17598,7 +17253,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": +"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -17750,6 +17405,35 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-inject@npm:^3.0.0": + version: 3.0.2 + resolution: "rollup-plugin-inject@npm:3.0.2" + dependencies: + estree-walker: "npm:^0.6.1" + magic-string: "npm:^0.25.3" + rollup-pluginutils: "npm:^2.8.1" + checksum: 10c0/35b9d955039b56b43750a9e458bb51b7956b048b6d3ca57b1f03462aa5a0cb176d1b677d95e909b64eee4e9adf73c02f569ad8c0ab5aafdec818ff51700c114c + languageName: node + linkType: hard + +"rollup-plugin-node-polyfills@npm:^0.2.1": + version: 0.2.1 + resolution: "rollup-plugin-node-polyfills@npm:0.2.1" + dependencies: + rollup-plugin-inject: "npm:^3.0.0" + checksum: 10c0/30f9e09cbbf979b1212e0c455d74c3a061994fc19ddf160da4634b11377222cea5903a5ba05db66be849f550cde9ffc80ecbfcfb48544045d08bfc408501417d + languageName: node + linkType: hard + +"rollup-pluginutils@npm:^2.8.1": + version: 2.8.2 + resolution: "rollup-pluginutils@npm:2.8.2" + dependencies: + estree-walker: "npm:^0.6.1" + checksum: 10c0/20947bec5a5dd68b5c5c8423911e6e7c0ad834c451f1a929b1f4e2bc08836ad3f1a722ef2bfcbeca921870a0a283f13f064a317dc7a6768496e98c9a641ba290 + languageName: node + linkType: hard + "rollup@npm:4.24.0, rollup@npm:^4.19.0, rollup@npm:^4.20.0": version: 4.24.0 resolution: "rollup@npm:4.24.0" @@ -17939,6 +17623,16 @@ __metadata: languageName: node linkType: hard +"selfsigned@npm:^2.0.1": + version: 2.4.1 + resolution: "selfsigned@npm:2.4.1" + dependencies: + "@types/node-forge": "npm:^1.3.0" + node-forge: "npm:^1" + checksum: 10c0/521829ec36ea042f7e9963bf1da2ed040a815cf774422544b112ec53b7edc0bc50a0f8cc2ae7aa6cc19afa967c641fd96a15de0fc650c68651e41277d2e1df09 + languageName: node + linkType: hard + "semiver@npm:^1.0.0": version: 1.1.0 resolution: "semiver@npm:1.1.0" @@ -17955,7 +17649,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.3, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.1, semver@npm:^7.6.2, semver@npm:^7.6.3": +"semver@npm:7.6.3, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.1, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -18387,7 +18081,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.0": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 @@ -18401,6 +18095,13 @@ __metadata: languageName: node linkType: hard +"sourcemap-codec@npm:^1.4.8": + version: 1.4.8 + resolution: "sourcemap-codec@npm:1.4.8" + checksum: 10c0/f099279fdaae070ff156df7414bbe39aad69cdd615454947ed3e19136bfdfcb4544952685ee73f56e17038f4578091e12b17b283ed8ac013882916594d95b9e6 + languageName: node + linkType: hard + "space-separated-tokens@npm:^2.0.0": version: 2.0.2 resolution: "space-separated-tokens@npm:2.0.2" @@ -18503,6 +18204,16 @@ __metadata: languageName: node linkType: hard +"stacktracey@npm:^2.1.8": + version: 2.1.8 + resolution: "stacktracey@npm:2.1.8" + dependencies: + as-table: "npm:^1.0.36" + get-source: "npm:^2.0.12" + checksum: 10c0/e17357d0a532d303138899b910ab660572009a1f4cde1cbf73b99416957a2378e6e1c791b3c31b043cf7c5f37647da1dd114e66c9203f23c65b34f783665405b + languageName: node + linkType: hard + "statuses@npm:2.0.1, statuses@npm:^2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -18533,6 +18244,13 @@ __metadata: languageName: node linkType: hard +"stoppable@npm:^1.1.0": + version: 1.1.0 + resolution: "stoppable@npm:1.1.0" + checksum: 10c0/ba91b65e6442bf6f01ce837a727ece597a977ed92a05cb9aea6bf446c5e0dcbccc28f31b793afa8aedd8f34baaf3335398d35f903938d5493f7fbe386a1e090e + languageName: node + linkType: hard + "stream-replace-string@npm:^2.0.0": version: 2.0.0 resolution: "stream-replace-string@npm:2.0.0" @@ -19390,7 +19108,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3": +"tslib@npm:^2.0.3, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3": version: 2.7.0 resolution: "tslib@npm:2.7.0" checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 @@ -19648,6 +19366,13 @@ __metadata: languageName: node linkType: hard +"ufo@npm:^1.5.4": + version: 1.5.4 + resolution: "ufo@npm:1.5.4" + checksum: 10c0/b5dc4dc435c49c9ef8890f1b280a19ee4d0954d1d6f9ab66ce62ce64dd04c7be476781531f952a07c678d51638d02ad4b98e16237be29149295b0f7c09cda765 + languageName: node + linkType: hard + "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -19674,6 +19399,27 @@ __metadata: languageName: node linkType: hard +"undici@npm:^5.28.4": + version: 5.28.4 + resolution: "undici@npm:5.28.4" + dependencies: + "@fastify/busboy": "npm:^2.0.0" + checksum: 10c0/08d0f2596553aa0a54ca6e8e9c7f45aef7d042c60918564e3a142d449eda165a80196f6ef19ea2ef2e6446959e293095d8e40af1236f0d67223b06afac5ecad7 + languageName: node + linkType: hard + +"unenv@npm:unenv-nightly@2.0.0-20241009-125958-e8ea22f": + version: 2.0.0-20241009-125958-e8ea22f + resolution: "unenv-nightly@npm:2.0.0-20241009-125958-e8ea22f" + dependencies: + defu: "npm:^6.1.4" + ohash: "npm:^1.1.4" + pathe: "npm:^1.1.2" + ufo: "npm:^1.5.4" + checksum: 10c0/ec1e5b52f865c55e43d3d9eec333fda72901d16ea2d957db33d4bcc73eab40b96a0dacd61bed44d4f72cd4920f6754a6a47d5410bfb995f0918193b2e35ee562 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.1 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.1" @@ -20862,6 +20608,69 @@ __metadata: languageName: node linkType: hard +"workerd@npm:1.20241004.0": + version: 1.20241004.0 + resolution: "workerd@npm:1.20241004.0" + dependencies: + "@cloudflare/workerd-darwin-64": "npm:1.20241004.0" + "@cloudflare/workerd-darwin-arm64": "npm:1.20241004.0" + "@cloudflare/workerd-linux-64": "npm:1.20241004.0" + "@cloudflare/workerd-linux-arm64": "npm:1.20241004.0" + "@cloudflare/workerd-windows-64": "npm:1.20241004.0" + dependenciesMeta: + "@cloudflare/workerd-darwin-64": + optional: true + "@cloudflare/workerd-darwin-arm64": + optional: true + "@cloudflare/workerd-linux-64": + optional: true + "@cloudflare/workerd-linux-arm64": + optional: true + "@cloudflare/workerd-windows-64": + optional: true + bin: + workerd: bin/workerd + checksum: 10c0/794a5f40875bdb29f7373093114c534f5dfcb2f79c62a71a44c7992ac29b219e0e90a181257bf2e6e95112d5154ce3f1eb19f258ab19f6c82bb080da66c9396c + languageName: node + linkType: hard + +"wrangler@npm:3.80.4": + version: 3.80.4 + resolution: "wrangler@npm:3.80.4" + dependencies: + "@cloudflare/kv-asset-handler": "npm:0.3.4" + "@cloudflare/workers-shared": "npm:0.6.0" + "@esbuild-plugins/node-globals-polyfill": "npm:^0.2.3" + "@esbuild-plugins/node-modules-polyfill": "npm:^0.2.2" + blake3-wasm: "npm:^2.1.5" + chokidar: "npm:^3.5.3" + esbuild: "npm:0.17.19" + fsevents: "npm:~2.3.2" + miniflare: "npm:3.20241004.0" + nanoid: "npm:^3.3.3" + path-to-regexp: "npm:^6.3.0" + resolve: "npm:^1.22.8" + resolve.exports: "npm:^2.0.2" + selfsigned: "npm:^2.0.1" + source-map: "npm:^0.6.1" + unenv: "npm:unenv-nightly@2.0.0-20241009-125958-e8ea22f" + workerd: "npm:1.20241004.0" + xxhash-wasm: "npm:^1.0.1" + peerDependencies: + "@cloudflare/workers-types": ^4.20241004.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@cloudflare/workers-types": + optional: true + bin: + wrangler: bin/wrangler.js + wrangler2: bin/wrangler.js + checksum: 10c0/4a9b0fd8b020325db091ba572c27a2f5b7bfa82f9ddbb45d441e2264619e012b54f28918fc091fd46055bc8438072e6a45cfed27031fb9e4d7357d292c4f4faa + languageName: node + linkType: hard + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -20913,7 +20722,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0": +"ws@npm:^8.17.1, ws@npm:^8.18.0": version: 8.18.0 resolution: "ws@npm:8.18.0" peerDependencies: @@ -20928,7 +20737,7 @@ __metadata: languageName: node linkType: hard -"xxhash-wasm@npm:^1.0.2": +"xxhash-wasm@npm:^1.0.1, xxhash-wasm@npm:^1.0.2": version: 1.0.2 resolution: "xxhash-wasm@npm:1.0.2" checksum: 10c0/5ba899d9216d9897de2d61a5331b16c99226e75ce47895fc8c730bac5cb00e6e50856dd8f489c12b3012f0fc81b6894806b2e44d2eb3cc7843919793485a30d1 @@ -21068,6 +20877,17 @@ __metadata: languageName: node linkType: hard +"youch@npm:^3.2.2": + version: 3.3.4 + resolution: "youch@npm:3.3.4" + dependencies: + cookie: "npm:^0.7.1" + mustache: "npm:^4.2.0" + stacktracey: "npm:^2.1.8" + checksum: 10c0/ab573c7dccebdaf2d6b084d262d5bfb22ad5c049fb1ad3e2d6a840af851042dd3a8a072665c5a5ee73c75bbc1618fbc08f1371ac896e54556bced0ddf996b026 + languageName: node + linkType: hard + "zod-to-json-schema@npm:^3.23.3": version: 3.23.3 resolution: "zod-to-json-schema@npm:3.23.3"