uppy/packages/@uppy/core/package.json
Prakash 804363e86e
@uppy: upgrade vitest to v4 (#6309)
This PR Bumps the `vitest` across the monorepo:

AI Disclaimer : **AI Used**

  | Package | From | To |
  |---|---|---|
  | `vitest` | `^3.2.4` | `^4.1.6` |
  | `@vitest/browser` | `^3.2.4` | `^4.1.6` |
  | `@vitest/browser-playwright` | _(new)_ | `^4.1.6` |
| `vitest-browser-react/-vue/-svelte` | `^1.0.0` | `^2.x` (required by
vitest 4) |

Covers **21 `package.json` files** for `vitest`/`@vitest/browser` + the
**7 browser-mode packages** that need the new
  `@vitest/browser-playwright` provider.

  ### Code changes required by vitest 4

Per the [official migration
guide](https://vitest.dev/guide/migration.html#vitest-4):

- **Browser provider rework** — `provider: 'playwright'` (string) →
`playwright()` factory. Migrated 7 `vitest.config.ts` files
(`@uppy/{url,dashboard,golden-retriever,xhr-upload}` +
`examples/{react,vue,sveltekit}`).
- **Deprecated `@vitest/browser/context` imports** → `vitest/browser`.
Migrated 8 test files.
- **`vi.fn(arrow)` no longer constructible with `new`.** Vitest 4 made
`vi.fn()` callable as a constructor but arrow-fn
implementations throw. Switched `@uppy/transloadit`'s `EventSource` mock
to a regular function:
    ```js
global.EventSource = vi.fn(function MockEventSource() { return { /* ...
*/ } })
    ```
- **`Mock<T>` generic shape changed.** `ReturnType<typeof vi.fn>` now
resolves to `Mock<Procedure | Constructable>` (not directly
callable). Updated `@uppy/core`'s two `acquirerPlugin*.ts` mock helpers
to use an explicit `Mock<(...args: any[]) => any>`.
- **`vitest-browser-*` v2 made `render()` async.** Added `await
render(...)` in the 3 example test files.
- **`@types/node` needed in TS program for 4 packages** whose test files
import `node:assert`/`node:fs`/`node:path`
(`@uppy/{core,compressor,aws-s3,store-default}`). Vitest 3 transitively
pulled in `@types/node`; vitest 4 does not. Added the
  devDep + `types: ["preact", "node"]` to those four tsconfigs.
- **`@uppy/utils` `AbortController.test.ts`** — vitest 4's jsdom env
puts jsdom's `Event` on `globalThis`, while Node's
`AbortController` fires Node-realm `Event`s, breaking cross-realm
`instanceof`. Added `// @vitest-environment node` to that one
  file (DOM-agnostic test, no behavior change).
  
  ### Notes

- This PR is built on top of `uppy-upgrade-deps-v2` (the no-code-changes
dep bumps PR) and inherits those. If merging out of order,
   rebase onto `main` after `uppy-upgrade-deps-v2` lands.

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-26 21:54:07 +05:30

65 lines
1.8 KiB
JSON

{
"name": "@uppy/core",
"description": "Core module for the extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Dropbox, Google Drive, S3 and more :dog:",
"version": "5.2.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",
"sideEffects": [
"*.css"
],
"scripts": {
"build": "tsc --build tsconfig.build.json",
"build:css": "sass --load-path=../../ src/style.scss dist/style.css && postcss dist/style.css -u cssnano -o dist/style.min.css",
"typecheck": "tsc --build",
"test": "vitest run --environment=jsdom --silent='passed-only'"
},
"keywords": [
"file uploader",
"uppy",
"uppy-plugin"
],
"homepage": "https://uppy.io",
"bugs": {
"url": "https://github.com/transloadit/uppy/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/transloadit/uppy.git"
},
"files": [
"src",
"lib",
"dist",
"CHANGELOG.md"
],
"exports": {
".": "./lib/index.js",
"./css/style.min.css": "./dist/style.min.css",
"./css/style.css": "./dist/style.css",
"./css/style.scss": "./src/style.scss",
"./package.json": "./package.json"
},
"dependencies": {
"@transloadit/prettier-bytes": "^0.3.4",
"@uppy/store-default": "workspace:^",
"@uppy/utils": "workspace:^",
"lodash": "^4.18.1",
"mime-match": "^1.0.2",
"namespace-emitter": "^2.0.1",
"nanoid": "^5.1.11",
"preact": "^10.29.2"
},
"devDependencies": {
"@types/deep-freeze": "^0",
"@types/node": "^20.19.0",
"cssnano": "^7.0.7",
"deep-freeze": "^0.0.1",
"jsdom": "^26.1.0",
"postcss": "^8.5.6",
"postcss-cli": "^11.0.1",
"sass": "^1.89.2",
"typescript": "^5.8.3",
"vitest": "^4.1.6"
}
}