@uppy: upgrade deps (#6307)

will do a separte PR for changes which would require code changes so
it's easier to review , didn't upgrade any deps for `@uppy/aws-s3` since
we'll merge the rewrite so I think we should do that upgrade in the
rewrite branch before merging.

update : Dependency upgrades which required code changes were raised
separately

- #6309 
- #6310

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Prakash 2026-05-29 18:58:42 +05:30 committed by GitHub
parent ef370da2b3
commit c3c7cef4ed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
76 changed files with 715 additions and 614 deletions

View file

@ -0,0 +1,45 @@
---
"@uppy/angular": patch
"@uppy/google-photos-picker": patch
"@uppy/google-drive-picker": patch
"@uppy/thumbnail-generator": patch
"@uppy/companion-client": patch
"@uppy/golden-retriever": patch
"@uppy/image-generator": patch
"@uppy/provider-views": patch
"@uppy/remote-sources": patch
"@uppy/screen-capture": patch
"@uppy/store-default": patch
"@uppy/google-drive": patch
"@uppy/image-editor": patch
"@uppy/transloadit": patch
"@uppy/components": patch
"@uppy/compressor": patch
"@uppy/status-bar": patch
"@uppy/xhr-upload": patch
"@uppy/companion": patch
"@uppy/dashboard": patch
"@uppy/drag-drop": patch
"@uppy/facebook": patch
"@uppy/onedrive": patch
"@uppy/unsplash": patch
"@uppy/dropbox": patch
"@uppy/locales": patch
"@uppy/aws-s3": patch
"@uppy/svelte": patch
"@uppy/webcam": patch
"@uppy/webdav": patch
"@uppy/audio": patch
"@uppy/react": patch
"@uppy/utils": patch
"@uppy/core": patch
"@uppy/form": patch
"@uppy/zoom": patch
"@uppy/box": patch
"@uppy/tus": patch
"@uppy/url": patch
"@uppy/vue": patch
"uppy": patch
---
Bump shared runtime dependencies (preact, nanoid, lodash, classnames, shallow-equal, pretty-bytes, p-queue, tus-js-client, @transloadit/types @transloadit/prettier-bytes v1, is-mobile, exifr, compressorjs, rxjs, tslib). Also includes type-only fixes in `@uppy/companion`'s `jwt.ts` and `request.ts` to track `@types/jsonwebtoken` v9 and `@types/node`.

View file

@ -10,7 +10,7 @@
"@uppy/google-drive": "workspace:*",
"@uppy/provider-views": "workspace:*",
"@uppy/tus": "workspace:*",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"engines": {
"node": ">=18.0.0"

View file

@ -24,12 +24,13 @@
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
"@vitejs/plugin-react": "^4.6.0",
"@vitest/browser": "^3.2.4",
"@vitest/browser": "^4.1.6",
"@vitest/browser-playwright": "^4.1.6",
"msw": "^2.10.4",
"playwright": "1.57.0",
"typescript": "^5.7.3",
"vite": "^7.1.11",
"vitest": "^3.2.4",
"vitest-browser-react": "^1.0.0"
"vitest": "^4.1.6",
"vitest-browser-react": "^2.2.0"
}
}

View file

@ -1,6 +1,6 @@
import { userEvent } from '@vitest/browser/context'
import { setupWorker } from 'msw/browser'
import { afterAll, beforeAll, describe, expect, test } from 'vitest'
import { userEvent } from 'vitest/browser'
import { render } from 'vitest-browser-react'
import { tusHandlers } from '../../shared/tusHandlers.js'
import App from '../src/App'
@ -19,7 +19,7 @@ const createMockFile = (name: string, type: string, size: number = 1024) => {
describe('App', () => {
test('renders all main sections and upload button is initially disabled', async () => {
const screen = render(<App />)
const screen = await render(<App />)
await expect.element(screen.getByText('With list')).toBeInTheDocument()
await expect.element(screen.getByText('With grid')).toBeInTheDocument()
@ -33,7 +33,7 @@ describe('App', () => {
})
test('can add and remove files and upload', async () => {
const screen = render(<App />)
const screen = await render(<App />)
const fileInput = document.getElementById(
'uppy-dropzone-file-input-uppy',
@ -59,7 +59,7 @@ describe('App', () => {
describe('ScreenCapture Component', () => {
test('renders with title, control buttons, and close functionality works', async () => {
const screen = render(<App />)
const screen = await render(<App />)
await screen.getByRole('button', { name: 'Screen Capture' }).click()
@ -90,7 +90,7 @@ describe('ScreenCapture Component', () => {
describe('Webcam Component', () => {
test('renders with title, control buttons, and close functionality works', async () => {
const screen = render(<App />)
const screen = await render(<App />)
await screen.getByRole('button', { name: 'Webcam' }).click()
@ -121,7 +121,7 @@ describe('Webcam Component', () => {
describe('RemoteSource Component', () => {
test('renders login button and login interaction works', async () => {
const screen = render(<App />)
const screen = await render(<App />)
await screen.getByRole('button', { name: 'Dropbox' }).click()

View file

@ -1,5 +1,6 @@
import tailwindcss from '@tailwindcss/vite'
import react from '@vitejs/plugin-react'
import { playwright } from '@vitest/browser-playwright'
import { defineConfig } from 'vitest/config'
export default defineConfig({
@ -7,7 +8,7 @@ export default defineConfig({
test: {
browser: {
enabled: true,
provider: 'playwright',
provider: playwright(),
instances: [{ browser: 'chromium' }],
},
},

View file

@ -26,7 +26,8 @@
"@sveltejs/kit": "^2.49.5",
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"@tailwindcss/vite": "^4.0.0",
"@vitest/browser": "^3.2.4",
"@vitest/browser": "^4.1.6",
"@vitest/browser-playwright": "^4.1.6",
"msw": "^2.10.4",
"playwright": "1.57.0",
"svelte": "^5.0.0",
@ -34,7 +35,7 @@
"tailwindcss": "^4.0.0",
"typescript": "^5.0.0",
"vite": "^6.2.5",
"vitest": "^3.2.4",
"vitest-browser-svelte": "^1.0.0"
"vitest": "^4.1.6",
"vitest-browser-svelte": "^2.1.1"
}
}

View file

@ -1,6 +1,6 @@
import { userEvent } from '@vitest/browser/context'
import { setupWorker } from 'msw/browser'
import { afterAll, beforeAll, describe, expect, test } from 'vitest'
import { userEvent } from 'vitest/browser'
import { render } from 'vitest-browser-svelte'
import { tusHandlers } from '../../shared/tusHandlers.js'
import PropsReactivity from '../src/components/test/props-reactivity.svelte'
@ -20,7 +20,7 @@ const createMockFile = (name: string, type: string, size: number = 1024) => {
describe('App', () => {
test('renders all main sections and upload button is initially disabled', async () => {
const screen = render(App)
const screen = await render(App)
await expect.element(screen.getByText('With list')).toBeInTheDocument()
await expect.element(screen.getByText('With grid')).toBeInTheDocument()
@ -34,7 +34,7 @@ describe('App', () => {
})
test('can add and remove files and upload', async () => {
const screen = render(App)
const screen = await render(App)
const fileInput = document.getElementById(
'uppy-dropzone-file-input-uppy',
@ -60,7 +60,7 @@ describe('App', () => {
describe('ScreenCapture Component', () => {
test('renders with title, control buttons, and close functionality works', async () => {
const screen = render(App)
const screen = await render(App)
await screen
.getByRole('button', { name: 'Screen Capture', exact: true })
@ -93,7 +93,7 @@ describe('ScreenCapture Component', () => {
describe('Webcam Component', () => {
test('renders with title, control buttons, and close functionality works', async () => {
const screen = render(App)
const screen = await render(App)
await screen.getByRole('button', { name: 'Webcam', exact: true }).click()
@ -124,7 +124,7 @@ describe('Webcam Component', () => {
describe('RemoteSource Component', () => {
test('renders login button and login interaction works', async () => {
const screen = render(App)
const screen = await render(App)
await screen.getByRole('button', { name: 'Dropbox', exact: true }).click()
@ -136,7 +136,7 @@ describe('RemoteSource Component', () => {
})
test('Dashboard reacts to prop changes', async () => {
const screen = render(PropsReactivity)
const screen = await render(PropsReactivity)
const toggleButton = screen.getByText('Toggle dashboard')
const dashboard = screen.container.querySelector('.uppy-Dashboard')
@ -147,7 +147,7 @@ test('Dashboard reacts to prop changes', async () => {
})
test('StatusBar reacts to prop changes', async () => {
const screen = render(PropsReactivity)
const screen = await render(PropsReactivity)
const toggleButton = screen.getByText('Toggle statusbar')
expect(

View file

@ -1,5 +1,6 @@
import { sveltekit } from '@sveltejs/kit/vite'
import tailwindcss from '@tailwindcss/vite'
import { playwright } from '@vitest/browser-playwright'
import { defineConfig } from 'vite'
export default defineConfig({
@ -7,7 +8,7 @@ export default defineConfig({
test: {
browser: {
enabled: true,
provider: 'playwright',
provider: playwright(),
instances: [{ browser: 'chromium' }],
},
},

View file

@ -22,12 +22,13 @@
"devDependencies": {
"@tailwindcss/vite": "^4.1.11",
"@vitejs/plugin-vue": "^6.0.1",
"@vitest/browser": "^3.2.4",
"@vitest/browser": "^4.1.6",
"@vitest/browser-playwright": "^4.1.6",
"msw": "^2.10.4",
"playwright": "1.57.0",
"tailwindcss": "^4.0.0",
"vite": "^7.1.11",
"vitest": "^3.2.4",
"vitest-browser-vue": "^1.0.0"
"vitest": "^4.1.6",
"vitest-browser-vue": "^2.1.0"
}
}

View file

@ -1,6 +1,6 @@
import { userEvent } from '@vitest/browser/context'
import { setupWorker } from 'msw/browser'
import { afterAll, beforeAll, describe, expect, test } from 'vitest'
import { userEvent } from 'vitest/browser'
import { render } from 'vitest-browser-vue'
import { tusHandlers } from '../../shared/tusHandlers.js'
import App from '../src/App.vue'
@ -19,7 +19,7 @@ const createMockFile = (name: string, type: string, size: number = 1024) => {
describe('App', () => {
test('renders all main sections and upload button is initially disabled', async () => {
const screen = render(App)
const screen = await render(App)
await expect.element(screen.getByText('With list')).toBeInTheDocument()
await expect.element(screen.getByText('With grid')).toBeInTheDocument()
@ -33,7 +33,7 @@ describe('App', () => {
})
test('can add and remove files and upload', async () => {
const screen = render(App)
const screen = await render(App)
const fileInput = document.getElementById(
'uppy-dropzone-file-input-uppy',
@ -59,7 +59,7 @@ describe('App', () => {
describe('ScreenCapture Component', () => {
test('renders with title, control buttons, and close functionality works', async () => {
const screen = render(App)
const screen = await render(App)
await screen
.getByRole('button', { name: 'Screen Capture', exact: true })
@ -92,7 +92,7 @@ describe('ScreenCapture Component', () => {
describe('Webcam Component', () => {
test('renders with title, control buttons, and close functionality works', async () => {
const screen = render(App)
const screen = await render(App)
await screen.getByRole('button', { name: 'Webcam', exact: true }).click()
@ -123,7 +123,7 @@ describe('Webcam Component', () => {
describe('RemoteSource Component', () => {
test('renders login button and login interaction works', async () => {
const screen = render(App)
const screen = await render(App)
await screen.getByRole('button', { name: 'Dropbox', exact: true }).click()

View file

@ -1,5 +1,6 @@
import tailwindcss from '@tailwindcss/vite'
import vue from '@vitejs/plugin-vue'
import { playwright } from '@vitest/browser-playwright'
import { defineConfig } from 'vite'
export default defineConfig({
@ -7,7 +8,7 @@ export default defineConfig({
test: {
browser: {
enabled: true,
provider: 'playwright',
provider: playwright(),
instances: [{ browser: 'chromium' }],
},
},

View file

@ -17,8 +17,8 @@
"@angular/platform-browser": "^19.2.17",
"@angular/platform-browser-dynamic": "^19.2.17",
"@angular/router": "^19.2.17",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"rxjs": "~7.8.2",
"tslib": "^2.8.1",
"zone.js": "~0.15.0"
},
"devDependencies": {

View file

@ -22,7 +22,7 @@
"prepublishOnly": "rm -fr * && cp -r ../../../dist/uppy/angular .."
},
"dependencies": {
"tslib": "^2.0.0"
"tslib": "^2.8.1"
},
"peerDependencies": {
"@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",

View file

@ -41,7 +41,7 @@
},
"dependencies": {
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"devDependencies": {
"cssnano": "^7.0.7",
@ -50,7 +50,7 @@
"postcss-cli": "^11.0.1",
"sass": "^1.89.2",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -44,11 +44,12 @@
"devDependencies": {
"@aws-sdk/client-s3": "^3.362.0",
"@aws-sdk/s3-request-presigner": "^3.362.0",
"@types/node": "^20.19.0",
"@uppy/core": "workspace:^",
"jsdom": "^26.1.0",
"nock": "^13.1.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4",
"vitest": "^4.1.6",
"whatwg-fetch": "3.6.2"
},
"peerDependencies": {

View file

@ -2,7 +2,8 @@
"extends": "../../../tsconfig.shared",
"compilerOptions": {
"emitDeclarationOnly": false,
"noEmit": true
"noEmit": true,
"types": ["preact", "node"]
},
"include": ["./package.json", "./src/**/*.*"],
"references": [

View file

@ -37,7 +37,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -43,7 +43,7 @@
"devDependencies": {
"jsdom": "^26.1.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -86,12 +86,12 @@
"@types/eslint": "9.6.1",
"@types/express-session": "1.19.0",
"@types/http-proxy": "1.17.17",
"@types/jsonwebtoken": "8.3.7",
"@types/jsonwebtoken": "9.0.10",
"@types/lodash": "4.17.24",
"@types/mime-types": "3.0.1",
"@types/morgan": "1.7.37",
"@types/ms": "2.1.0",
"@types/node": "^20.19.0",
"@types/node": "20.19.41",
"@types/node-schedule": "2.1.8",
"@types/request": "2.48.13",
"@types/serialize-javascript": "5.0.4",

View file

@ -38,7 +38,7 @@ const verifyJwtToken = (token: string, secret: EncryptionSecret) => {
if (!decoded || typeof decoded !== 'object' || !('data' in decoded)) {
throw new Error('Invalid token payload')
}
return decoded.data
return decoded['data']
}
export const generateEncryptedToken = (

View file

@ -122,7 +122,7 @@ function getProtectedHttpAgent({
override createConnection(
options: http.ClientRequestArgs,
callback?: (err: Error | null, stream: Duplex) => void,
): Duplex {
): Duplex | null | undefined {
if (!allowLocalIPs && shouldBlockHost(options.host)) {
const socket = undefined as unknown as Duplex // not sure about this but it's how it always worked
callback?.(new Error(FORBIDDEN_IP_ADDRESS), socket)
@ -140,7 +140,7 @@ function getProtectedHttpAgent({
override createConnection(
options: http.ClientRequestArgs,
callback?: (err: Error | null, stream: Duplex) => void,
): Duplex {
): Duplex | null | undefined {
if (!allowLocalIPs && shouldBlockHost(options.host)) {
const socket = undefined as unknown as Duplex // not sure about this but it's how it always worked
callback?.(new Error(FORBIDDEN_IP_ADDRESS), socket)

View file

@ -43,8 +43,8 @@
"dependencies": {
"clsx": "^2.1.1",
"dequal": "^2.0.3",
"preact": "^10.26.10",
"pretty-bytes": "^6.1.1"
"preact": "^10.29.2",
"pretty-bytes": "^7.1.0"
},
"devDependencies": {
"@tailwindcss/cli": "^4.0.6",

View file

@ -31,10 +31,10 @@
"./package.json": "./package.json"
},
"dependencies": {
"@transloadit/prettier-bytes": "^0.3.4",
"@transloadit/prettier-bytes": "^1.1.0",
"@uppy/utils": "workspace:^",
"compressorjs": "^1.2.1",
"preact": "^10.26.10",
"compressorjs": "^1.3.0",
"preact": "^10.29.2",
"promise-queue": "^2.2.5"
},
"peerDependencies": {
@ -44,9 +44,10 @@
"access": "public"
},
"devDependencies": {
"@types/node": "^20.19.0",
"jsdom": "^26.1.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"scripts": {
"build": "tsc --build tsconfig.build.json",

View file

@ -1,4 +1,4 @@
import prettierBytes from '@transloadit/prettier-bytes'
import { prettierBytes } from '@transloadit/prettier-bytes'
import type { DefinePluginOpts, PluginOpts } from '@uppy/core'
import { BasePlugin, type Uppy } from '@uppy/core'
import type { Body, LocalUppyFile, Meta, UppyFile } from '@uppy/utils'

View file

@ -2,7 +2,8 @@
"extends": "../../../tsconfig.shared",
"compilerOptions": {
"emitDeclarationOnly": false,
"noEmit": true
"noEmit": true,
"types": ["preact", "node"]
},
"include": ["./package.json", "./src/**/*.*"],
"references": [

View file

@ -41,17 +41,18 @@
"./package.json": "./package.json"
},
"dependencies": {
"@transloadit/prettier-bytes": "^0.3.4",
"@transloadit/prettier-bytes": "^1.1.0",
"@uppy/store-default": "workspace:^",
"@uppy/utils": "workspace:^",
"lodash": "^4.17.23",
"lodash": "^4.18.1",
"mime-match": "^1.0.2",
"namespace-emitter": "^2.0.1",
"nanoid": "^5.0.9",
"preact": "^10.26.10"
"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",
@ -59,6 +60,6 @@
"postcss-cli": "^11.0.1",
"sass": "^1.89.2",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
}
}

View file

@ -1,4 +1,4 @@
import prettierBytes from '@transloadit/prettier-bytes'
import { prettierBytes } from '@transloadit/prettier-bytes'
import type { Body, I18n, Meta, UppyFile } from '@uppy/utils'
// @ts-expect-error untyped
import match from 'mime-match'

View file

@ -1,7 +1,7 @@
import assert from 'node:assert'
import fs from 'node:fs'
import path from 'node:path'
import prettierBytes from '@transloadit/prettier-bytes'
import { prettierBytes } from '@transloadit/prettier-bytes'
import type { Body, Meta } from '@uppy/core'
import type { Locale } from '@uppy/utils'
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'

View file

@ -1,8 +1,8 @@
import { vi } from 'vitest'
import { type Mock, vi } from 'vitest'
import UIPlugin from '../UIPlugin.js'
import type Uppy from '../Uppy.js'
type mock = ReturnType<typeof vi.fn>
type mock = Mock<(...args: any[]) => any>
export default class TestSelector1 extends UIPlugin<any, any, any> {
name: string

View file

@ -1,8 +1,8 @@
import { vi } from 'vitest'
import { type Mock, vi } from 'vitest'
import UIPlugin from '../UIPlugin.js'
import type Uppy from '../Uppy.js'
type mock = ReturnType<typeof vi.fn>
type mock = Mock<(...args: any[]) => any>
export default class TestSelector2 extends UIPlugin<any, any, any> {
name: string

View file

@ -2,7 +2,8 @@
"extends": "../../../tsconfig.shared",
"compilerOptions": {
"emitDeclarationOnly": false,
"noEmit": true
"noEmit": true,
"types": ["preact", "node"]
},
"include": ["./package.json", "./src/**/*.*"],
"references": [

View file

@ -44,15 +44,15 @@
"./package.json": "./package.json"
},
"dependencies": {
"@transloadit/prettier-bytes": "^0.3.4",
"@transloadit/prettier-bytes": "^1.1.0",
"@uppy/provider-views": "workspace:^",
"@uppy/thumbnail-generator": "workspace:^",
"@uppy/utils": "workspace:^",
"classnames": "^2.2.6",
"lodash": "^4.17.23",
"nanoid": "^5.0.9",
"preact": "^10.26.10",
"shallow-equal": "^3.0.0"
"classnames": "^2.5.1",
"lodash": "^4.18.1",
"nanoid": "^5.1.11",
"preact": "^10.29.2",
"shallow-equal": "^3.1.0"
},
"devDependencies": {
"@uppy/core": "workspace:^",
@ -60,7 +60,8 @@
"@uppy/google-drive": "workspace:^",
"@uppy/url": "workspace:^",
"@uppy/webcam": "workspace:^",
"@vitest/browser": "^3.2.4",
"@vitest/browser": "^4.1.6",
"@vitest/browser-playwright": "^4.1.6",
"cssnano": "^7.0.7",
"jsdom": "^26.1.0",
"playwright": "1.57.0",
@ -69,7 +70,7 @@
"resize-observer-polyfill": "^1.5.0",
"sass": "^1.89.2",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -3,8 +3,8 @@ import Dashboard from '@uppy/dashboard'
import Dropbox from '@uppy/dropbox'
import GoogleDrive from '@uppy/google-drive'
import { ProviderViews } from '@uppy/provider-views'
import { page, userEvent } from '@vitest/browser/context'
import { afterAll, afterEach, beforeAll, describe, expect, test } from 'vitest'
import { page, userEvent } from 'vitest/browser'
import { worker } from './setup.js'
import '@uppy/core/css/style.css'

View file

@ -1,4 +1,4 @@
import prettierBytes from '@transloadit/prettier-bytes'
import { prettierBytes } from '@transloadit/prettier-bytes'
import type { UppyFile } from '@uppy/core'
import type { I18n } from '@uppy/utils'
import { truncateString } from '@uppy/utils'

View file

@ -1,4 +1,4 @@
import prettierBytes from '@transloadit/prettier-bytes'
import { prettierBytes } from '@transloadit/prettier-bytes'
import type { Body, Meta, State, Uppy } from '@uppy/core'
import type { FileProcessingInfo, I18n } from '@uppy/utils'
import { prettyETA } from '@uppy/utils'

View file

@ -1,6 +1,6 @@
import Uppy from '@uppy/core'
import { page, userEvent } from '@vitest/browser/context'
import { expect, test } from 'vitest'
import { page, userEvent } from 'vitest/browser'
import Dashboard from './Dashboard.js'
import '@uppy/core/css/style.css'
import '@uppy/dashboard/css/style.css'

View file

@ -1,3 +1,4 @@
import { playwright } from '@vitest/browser-playwright'
import { defineConfig } from 'vitest/config'
export default defineConfig({
@ -19,7 +20,7 @@ export default defineConfig({
include: ['src/**/*.browser.test.{ts,tsx}'],
browser: {
enabled: true,
provider: 'playwright',
provider: playwright(),
instances: [{ browser: 'chromium' }],
},
},

View file

@ -46,7 +46,7 @@
},
"dependencies": {
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -37,7 +37,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -37,7 +37,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -43,7 +43,7 @@
},
"dependencies": {
"@uppy/utils": "workspace:^",
"lodash": "^4.17.23"
"lodash": "^4.18.1"
},
"peerDependencies": {
"@uppy/core": "workspace:^"
@ -52,8 +52,10 @@
"@uppy/core": "workspace:^",
"@uppy/dashboard": "workspace:^",
"@uppy/xhr-upload": "workspace:^",
"@vitest/browser": "^3.2.4",
"@vitest/browser": "^4.1.6",
"@vitest/browser-playwright": "^4.1.6",
"playwright": "1.57.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
}
}

View file

@ -1,8 +1,8 @@
import Uppy, { type UppyEventMap, type UppyOptions } from '@uppy/core'
import Dashboard from '@uppy/dashboard'
import XHRUpload from '@uppy/xhr-upload'
import { page, userEvent } from '@vitest/browser/context'
import { beforeEach, describe, expect } from 'vitest'
import { page, userEvent } from 'vitest/browser'
import '@uppy/core/css/style.css'
import '@uppy/dashboard/css/style.css'
import { HttpResponse, http } from 'msw'

View file

@ -1,3 +1,4 @@
import { playwright } from '@vitest/browser-playwright'
import { defineConfig } from 'vitest/config'
export default defineConfig({
@ -19,7 +20,7 @@ export default defineConfig({
include: ['src/**/*.browser.test.{ts,tsx}'],
browser: {
enabled: true,
provider: 'playwright',
provider: playwright(),
instances: [{ browser: 'chromium' }],
},
},

View file

@ -39,7 +39,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -38,7 +38,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -39,7 +39,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -48,7 +48,7 @@
"dependencies": {
"@uppy/utils": "workspace:^",
"cropperjs": "^1.6.2",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -42,7 +42,7 @@
"@uppy/provider-views": "workspace:^",
"@uppy/transloadit": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"devDependencies": {
"@uppy/core": "workspace:^",

View file

@ -37,7 +37,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -41,11 +41,11 @@
},
"dependencies": {
"@uppy/utils": "workspace:^",
"classnames": "^2.2.6",
"lodash": "^4.17.23",
"nanoid": "^5.0.9",
"p-queue": "^8.0.0",
"preact": "^10.26.10"
"classnames": "^2.5.1",
"lodash": "^4.18.1",
"nanoid": "^5.1.11",
"p-queue": "^9.3.0",
"preact": "^10.29.2"
},
"devDependencies": {
"@types/gapi": "^0.0.47",
@ -57,7 +57,7 @@
"postcss-cli": "^11.0.1",
"sass": "^1.89.2",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -36,21 +36,21 @@
],
"dependencies": {
"@uppy/components": "workspace:^",
"preact": "^10.26.10",
"use-sync-external-store": "^1.3.0"
"preact": "^10.29.2",
"use-sync-external-store": "^1.6.0"
},
"devDependencies": {
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^16.0.0",
"@types/react": "^18.0.8",
"@types/react": "^19.2.14",
"@types/use-sync-external-store": "^0.0.6",
"@uppy/core": "workspace:^",
"jsdom": "^26.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react": "^19.2.6",
"react-dom": "^19.2.6",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"exports": {
".": "./lib/index.js",

View file

@ -61,6 +61,6 @@
"jsdom": "^26.1.0",
"resize-observer-polyfill": "^1.5.1",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
}
}

View file

@ -45,7 +45,7 @@
},
"dependencies": {
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -46,10 +46,10 @@
"./package.json": "./package.json"
},
"dependencies": {
"@transloadit/prettier-bytes": "^0.3.4",
"@transloadit/prettier-bytes": "^1.1.0",
"@uppy/utils": "workspace:^",
"classnames": "^2.2.6",
"preact": "^10.26.10"
"classnames": "^2.5.1",
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -1,4 +1,4 @@
import prettierBytes from '@transloadit/prettier-bytes'
import { prettierBytes } from '@transloadit/prettier-bytes'
import type { Body, Meta, State, Uppy } from '@uppy/core'
import type { FileProcessingInfo, I18n } from '@uppy/utils'
import { prettyETA } from '@uppy/utils'

View file

@ -21,9 +21,10 @@
"url": "https://github.com/transloadit/uppy/issues"
},
"devDependencies": {
"@types/node": "^20.19.0",
"jsdom": "^26.1.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"repository": {
"type": "git",

View file

@ -2,7 +2,8 @@
"extends": "../../../tsconfig.shared",
"compilerOptions": {
"emitDeclarationOnly": false,
"noEmit": true
"noEmit": true,
"types": ["preact", "node"]
},
"include": ["./package.json", "./src/**/*.*"],
"references": []

View file

@ -54,19 +54,19 @@
},
"dependencies": {
"@uppy/components": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"devDependencies": {
"@sveltejs/adapter-auto": "^6.0.0",
"@sveltejs/kit": "^2.49.5",
"@sveltejs/package": "^2.3.11",
"@sveltejs/vite-plugin-svelte": "^5.0.3",
"@sveltejs/adapter-auto": "^7.0.1",
"@sveltejs/kit": "^2.60.1",
"@sveltejs/package": "^2.5.7",
"@sveltejs/vite-plugin-svelte": "^7.1.2",
"@uppy/core": "workspace:^",
"svelte": "^5.27.0",
"svelte-check": "^4.1.6",
"svelte": "^5.55.8",
"svelte-check": "^4.4.8",
"tslib": "^2.8.1",
"typescript": "^5.8.3",
"vite": "^6.3.6"
"vite": "^8.0.13"
},
"peerDependencies": {
"@uppy/core": "workspace:^",

View file

@ -38,13 +38,13 @@
},
"dependencies": {
"@uppy/utils": "workspace:^",
"exifr": "^7.0.0"
"exifr": "^7.1.3"
},
"devDependencies": {
"jsdom": "^26.1.0",
"namespace-emitter": "2.0.1",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -42,7 +42,7 @@
"./package.json": "./package.json"
},
"dependencies": {
"@transloadit/types": "^4.1.3",
"@transloadit/types": "^4.3.1",
"@uppy/tus": "workspace:^",
"@uppy/utils": "workspace:^",
"component-emitter": "^2.0.0"
@ -55,7 +55,7 @@
"jsdom": "^26.1.0",
"msw": "^2.10.4",
"typescript": "^5.8.3",
"vitest": "^3.2.4",
"vitest": "^4.1.6",
"whatwg-fetch": "^3.6.2"
}
}

View file

@ -5,12 +5,16 @@ import { describe, expect, it, vi } from 'vitest'
import Transloadit from './index.ts'
import 'whatwg-fetch'
// Mock EventSource for testing
global.EventSource = vi.fn(() => ({
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
close: vi.fn(),
}))
// Mock EventSource for testing. Vitest 4 made `vi.fn()` callable as a constructor,
// but arrow-function implementations throw "is not a constructor" when invoked
// with `new`. Use a regular function so `new EventSource(...)` works.
global.EventSource = vi.fn(function MockEventSource() {
return {
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
close: vi.fn(),
}
})
describe('Transloadit', () => {
it('Does not leave lingering progress if getAssemblyOptions fails', () => {

View file

@ -39,13 +39,13 @@
"dependencies": {
"@uppy/companion-client": "workspace:^",
"@uppy/utils": "workspace:^",
"tus-js-client": "^4.2.3"
"tus-js-client": "^4.3.1"
},
"devDependencies": {
"@uppy/core": "workspace:^",
"jsdom": "^26.1.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -37,7 +37,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -47,21 +47,22 @@
"dependencies": {
"@uppy/companion-client": "workspace:^",
"@uppy/utils": "workspace:^",
"nanoid": "^5.0.9",
"preact": "^10.26.10"
"nanoid": "^5.1.11",
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"
},
"devDependencies": {
"@uppy/core": "workspace:^",
"@vitest/browser": "^3.2.4",
"@vitest/browser": "^4.1.6",
"@vitest/browser-playwright": "^4.1.6",
"cssnano": "^7.0.7",
"playwright": "1.57.0",
"postcss": "^8.5.6",
"postcss-cli": "^11.0.1",
"sass": "^1.89.2",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
}
}

View file

@ -1,6 +1,6 @@
import Uppy from '@uppy/core'
import { page } from '@vitest/browser/context'
import { expect, test } from 'vitest'
import { page } from 'vitest/browser'
import Url from './Url.js'
// Normally you would use one of vitest's framework renderers, such as vitest-browser-react,

View file

@ -1,3 +1,4 @@
import { playwright } from '@vitest/browser-playwright'
import { defineConfig } from 'vitest/config'
export default defineConfig({
@ -10,7 +11,7 @@ export default defineConfig({
globalSetup: './vitest.setup.ts',
browser: {
enabled: true,
provider: 'playwright',
provider: playwright(),
instances: [{ browser: 'chromium' }],
},
},

View file

@ -33,13 +33,13 @@
"./package.json": "./package.json"
},
"dependencies": {
"lodash": "^4.17.23",
"preact": "^10.26.10"
"lodash": "^4.18.1",
"preact": "^10.29.2"
},
"devDependencies": {
"@types/lodash": "^4.14.199",
"jsdom": "^26.1.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
}
}

View file

@ -1,3 +1,8 @@
// @vitest-environment node
// `AbortController`/`AbortSignal` resolve to Node's globals; their abort event
// is a Node `Event`. Under the jsdom environment vitest 4 swaps in jsdom's
// `Event`, so cross-realm `instanceof Event` fails. This shim is DOM-agnostic,
// so the node environment keeps both in the same realm.
import { describe, expect, it, vi } from 'vitest'
import { AbortController, AbortSignal } from './AbortController.js'

View file

@ -19,8 +19,8 @@
],
"dependencies": {
"@uppy/components": "workspace:^",
"preact": "^10.26.10",
"shallow-equal": "^3.0.0"
"preact": "^10.29.2",
"shallow-equal": "^3.1.0"
},
"devDependencies": {
"@uppy/core": "workspace:^",

View file

@ -48,8 +48,8 @@
},
"dependencies": {
"@uppy/utils": "workspace:^",
"is-mobile": "^4.0.0",
"preact": "^10.26.10"
"is-mobile": "^5.0.0",
"preact": "^10.29.2"
},
"devDependencies": {
"cssnano": "^7.0.7",
@ -58,7 +58,7 @@
"postcss-cli": "^11.0.1",
"sass": "^1.89.2",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -41,7 +41,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -46,13 +46,14 @@
"devDependencies": {
"@uppy/core": "workspace:^",
"@uppy/dashboard": "workspace:^",
"@vitest/browser": "^3.2.4",
"@vitest/browser": "^4.1.6",
"@vitest/browser-playwright": "^4.1.6",
"jsdom": "^26.1.0",
"msw": "^2.10.4",
"nock": "^13.1.0",
"playwright": "1.57.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
"vitest": "^4.1.6"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

View file

@ -1,8 +1,8 @@
import Uppy, { type UppyEventMap } from '@uppy/core'
import Dashboard from '@uppy/dashboard'
import { page, userEvent } from '@vitest/browser/context'
import { HttpResponse, http } from 'msw'
import { afterEach, beforeEach, describe, expect } from 'vitest'
import { page, userEvent } from 'vitest/browser'
import '@uppy/core/css/style.css'
import '@uppy/dashboard/css/style.css'
import XHRUpload from './index.js'

View file

@ -1,3 +1,4 @@
import { playwright } from '@vitest/browser-playwright'
import { defineConfig } from 'vitest/config'
export default defineConfig({
@ -19,7 +20,7 @@ export default defineConfig({
include: ['src/**/*.browser.test.{ts,tsx}'],
browser: {
enabled: true,
provider: 'playwright',
provider: playwright(),
instances: [{ browser: 'chromium' }],
},
},

View file

@ -37,7 +37,7 @@
"@uppy/companion-client": "workspace:^",
"@uppy/provider-views": "workspace:^",
"@uppy/utils": "workspace:^",
"preact": "^10.26.10"
"preact": "^10.29.2"
},
"peerDependencies": {
"@uppy/core": "workspace:^"

942
yarn.lock

File diff suppressed because it is too large Load diff