diff --git a/packages/@uppy/audio/package.json b/packages/@uppy/audio/package.json index 2d64a3d7d..87432f6b7 100644 --- a/packages/@uppy/audio/package.json +++ b/packages/@uppy/audio/package.json @@ -45,7 +45,7 @@ }, "devDependencies": { "cssnano": "^8.0.1", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "postcss": "^8.5.15", "postcss-cli": "^11.0.1", "sass": "^1.89.2", diff --git a/packages/@uppy/companion-client/package.json b/packages/@uppy/companion-client/package.json index b6741da4c..e7c06cc5b 100644 --- a/packages/@uppy/companion-client/package.json +++ b/packages/@uppy/companion-client/package.json @@ -41,7 +41,7 @@ "p-retry": "^6.1.0" }, "devDependencies": { - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "typescript": "^5.8.3", "vitest": "^4.1.6" }, diff --git a/packages/@uppy/compressor/package.json b/packages/@uppy/compressor/package.json index 99e74c38b..6bebd8b23 100644 --- a/packages/@uppy/compressor/package.json +++ b/packages/@uppy/compressor/package.json @@ -45,7 +45,7 @@ }, "devDependencies": { "@types/node": "^20.19.0", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "typescript": "^5.8.3", "vitest": "^4.1.6" }, diff --git a/packages/@uppy/core/package.json b/packages/@uppy/core/package.json index c5c6b143a..540183e47 100644 --- a/packages/@uppy/core/package.json +++ b/packages/@uppy/core/package.json @@ -55,7 +55,7 @@ "@types/node": "^20.19.0", "cssnano": "^8.0.1", "deep-freeze": "^0.0.1", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "postcss": "^8.5.15", "postcss-cli": "^11.0.1", "sass": "^1.89.2", diff --git a/packages/@uppy/dashboard/package.json b/packages/@uppy/dashboard/package.json index 7d676ad8b..f52a7dc60 100644 --- a/packages/@uppy/dashboard/package.json +++ b/packages/@uppy/dashboard/package.json @@ -63,7 +63,7 @@ "@vitest/browser": "^4.1.6", "@vitest/browser-playwright": "^4.1.6", "cssnano": "^8.0.1", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "playwright": "1.60.0", "postcss": "^8.5.15", "postcss-cli": "^11.0.1", diff --git a/packages/@uppy/provider-views/package.json b/packages/@uppy/provider-views/package.json index ff612acd7..9a30735c6 100644 --- a/packages/@uppy/provider-views/package.json +++ b/packages/@uppy/provider-views/package.json @@ -52,7 +52,7 @@ "@types/google.accounts": "^0.0.14", "@types/google.picker": "^0.0.42", "cssnano": "^8.0.1", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "postcss": "^8.5.15", "postcss-cli": "^11.0.1", "sass": "^1.89.2", diff --git a/packages/@uppy/react/package.json b/packages/@uppy/react/package.json index 50f60b73a..28b61606c 100644 --- a/packages/@uppy/react/package.json +++ b/packages/@uppy/react/package.json @@ -46,7 +46,7 @@ "@types/react": "^19.2.14", "@types/use-sync-external-store": "^1.5.0", "@uppy/core": "workspace:^", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "react": "^19.2.6", "react-dom": "^19.2.6", "typescript": "^5.8.3", diff --git a/packages/@uppy/remote-sources/package.json b/packages/@uppy/remote-sources/package.json index 425e07639..0e7c78461 100644 --- a/packages/@uppy/remote-sources/package.json +++ b/packages/@uppy/remote-sources/package.json @@ -58,7 +58,7 @@ }, "devDependencies": { "@uppy/core": "workspace:^", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "resize-observer-polyfill": "^1.5.1", "typescript": "^5.8.3", "vitest": "^4.1.6" diff --git a/packages/@uppy/store-default/package.json b/packages/@uppy/store-default/package.json index be4e10858..fcb615c1b 100644 --- a/packages/@uppy/store-default/package.json +++ b/packages/@uppy/store-default/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@types/node": "^20.19.0", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "typescript": "^5.8.3", "vitest": "^4.1.6" }, diff --git a/packages/@uppy/thumbnail-generator/package.json b/packages/@uppy/thumbnail-generator/package.json index 60eca96de..4d55c344e 100644 --- a/packages/@uppy/thumbnail-generator/package.json +++ b/packages/@uppy/thumbnail-generator/package.json @@ -41,7 +41,7 @@ "exifr": "^7.1.3" }, "devDependencies": { - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "namespace-emitter": "2.0.1", "typescript": "^5.8.3", "vitest": "^4.1.6" diff --git a/packages/@uppy/transloadit/package.json b/packages/@uppy/transloadit/package.json index c2336b4f9..3ea4e4d05 100644 --- a/packages/@uppy/transloadit/package.json +++ b/packages/@uppy/transloadit/package.json @@ -52,7 +52,7 @@ }, "devDependencies": { "@uppy/core": "workspace:^", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "msw": "^2.10.4", "typescript": "^5.8.3", "vitest": "^4.1.6", diff --git a/packages/@uppy/tus/package.json b/packages/@uppy/tus/package.json index 4227b33e4..3b9ebfa24 100644 --- a/packages/@uppy/tus/package.json +++ b/packages/@uppy/tus/package.json @@ -43,7 +43,7 @@ }, "devDependencies": { "@uppy/core": "workspace:^", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "typescript": "^5.8.3", "vitest": "^4.1.6" }, diff --git a/packages/@uppy/utils/package.json b/packages/@uppy/utils/package.json index 5ca0a0238..7e4835034 100644 --- a/packages/@uppy/utils/package.json +++ b/packages/@uppy/utils/package.json @@ -38,7 +38,7 @@ }, "devDependencies": { "@types/lodash": "^4.14.199", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "typescript": "^5.8.3", "vitest": "^4.1.6" } diff --git a/packages/@uppy/webcam/package.json b/packages/@uppy/webcam/package.json index aaa9a0d71..da57fd599 100644 --- a/packages/@uppy/webcam/package.json +++ b/packages/@uppy/webcam/package.json @@ -53,7 +53,7 @@ }, "devDependencies": { "cssnano": "^8.0.1", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "postcss": "^8.5.15", "postcss-cli": "^11.0.1", "sass": "^1.89.2", diff --git a/packages/@uppy/xhr-upload/package.json b/packages/@uppy/xhr-upload/package.json index 2c28b43e4..d0af535f6 100644 --- a/packages/@uppy/xhr-upload/package.json +++ b/packages/@uppy/xhr-upload/package.json @@ -48,9 +48,8 @@ "@uppy/dashboard": "workspace:^", "@vitest/browser": "^4.1.6", "@vitest/browser-playwright": "^4.1.6", - "jsdom": "^26.1.0", + "jsdom": "^29.1.1", "msw": "^2.10.4", - "nock": "^13.1.0", "playwright": "1.60.0", "typescript": "^5.8.3", "vitest": "^4.1.6" diff --git a/packages/@uppy/xhr-upload/src/index.test.ts b/packages/@uppy/xhr-upload/src/index.test.ts index 6118638e8..a819d7d04 100644 --- a/packages/@uppy/xhr-upload/src/index.test.ts +++ b/packages/@uppy/xhr-upload/src/index.test.ts @@ -1,23 +1,47 @@ import Core, { type UppyEventMap } from '@uppy/core' -import nock from 'nock' -import { describe, expect, it, vi } from 'vitest' +import { HttpResponse, http } from 'msw' +import { setupServer } from 'msw/node' +import { + afterAll, + afterEach, + beforeAll, + describe, + expect, + it, + vi, +} from 'vitest' import XHRUpload from './index.js' +// MSW intercepts at the XMLHttpRequest layer (it patches the global +// XMLHttpRequest), so it works regardless of how jsdom implements XHR +// internally — unlike nock, which patches Node's http module and is bypassed +// by newer jsdom versions. Because the request is short-circuited before it +// ever hits the network, no CORS preflight (OPTIONS) is performed, so only the +// POST handlers need to be mocked. +const server = setupServer() + +const corsHeaders = { 'access-control-allow-origin': '*' } + +beforeAll(() => server.listen({ onUnhandledRequest: 'error' })) +afterEach(() => server.resetHandlers()) +afterAll(() => server.close()) + describe('XHRUpload', () => { it('should leverage hooks from fetcher', async () => { - nock('https://fake-endpoint.uppy.io') - .defaultReplyHeaders({ - 'access-control-allow-method': 'POST', - 'access-control-allow-origin': '*', - }) - .options('/') - .reply(204, {}) - .post('/') - .reply(401, {}) - .options('/') - .reply(204, {}) - .post('/') - .reply(200, 'https://fake-endpoint.uppy.io/random-id') + let postCount = 0 + server.use( + http.post('https://fake-endpoint.uppy.io/', () => { + postCount += 1 + // First attempt fails (triggers a retry), second succeeds. + if (postCount === 1) { + return new HttpResponse(null, { status: 401, headers: corsHeaders }) + } + return new HttpResponse('https://fake-endpoint.uppy.io/random-id', { + status: 200, + headers: corsHeaders, + }) + }), + ) const core = new Core() const shouldRetry = vi.fn(() => true) @@ -62,15 +86,14 @@ describe('XHRUpload', () => { }) it('should send response object over upload-error event', async () => { - nock('https://fake-endpoint.uppy.io') - .defaultReplyHeaders({ - 'access-control-allow-method': 'POST', - 'access-control-allow-origin': '*', - }) - .options('/') - .reply(204, {}) - .post('/') - .reply(400, { status: 400, message: 'Oh no' }) + server.use( + http.post('https://fake-endpoint.uppy.io/', () => + HttpResponse.json( + { status: 400, message: 'Oh no' }, + { status: 400, headers: corsHeaders }, + ), + ), + ) const core = new Core() const shouldRetry = vi.fn(() => false) @@ -123,13 +146,15 @@ describe('XHRUpload', () => { describe('headers', () => { it('can be a function', async () => { - const scope = nock('https://fake-endpoint.uppy.io').defaultReplyHeaders({ - 'access-control-allow-method': 'POST', - 'access-control-allow-origin': '*', - 'access-control-allow-headers': 'x-sample-header', - }) - scope.options('/').reply(200, {}) - scope.post('/').matchHeader('x-sample-header', 'test.jpg').reply(200, {}) + let postCount = 0 + let receivedHeader: string | null = null + server.use( + http.post('https://fake-endpoint.uppy.io/', ({ request }) => { + postCount += 1 + receivedHeader = request.headers.get('x-sample-header') + return HttpResponse.json({}, { status: 200, headers: corsHeaders }) + }), + ) const core = new Core() core.use(XHRUpload, { @@ -148,17 +173,20 @@ describe('XHRUpload', () => { await core.upload() - expect(scope.isDone()).toBe(true) + expect(postCount).toBe(1) + expect(receivedHeader).toBe('test.jpg') }) }) describe('endpoint', () => { it('can be a function', async () => { - const scope = nock('https://fake-endpoint.uppy.io').defaultReplyHeaders({ - 'access-control-allow-origin': '*', - }) - scope.options('/upload/test.jpg').reply(200, {}) - scope.post('/upload/test.jpg').reply(200, {}) + let postCount = 0 + server.use( + http.post('https://fake-endpoint.uppy.io/upload/test.jpg', () => { + postCount += 1 + return HttpResponse.json({}, { status: 200, headers: corsHeaders }) + }), + ) const core = new Core() core.use(XHRUpload, { @@ -178,15 +206,20 @@ describe('XHRUpload', () => { await core.upload() - expect(scope.isDone()).toBe(true) + expect(postCount).toBe(1) }) it('can be a function (bundle)', async () => { - const scope = nock('https://fake-endpoint.uppy.io').defaultReplyHeaders({ - 'access-control-allow-origin': '*', - }) - scope.options('/upload-bundle/test.jpg,test2.jpg').reply(200, {}) - scope.post('/upload-bundle/test.jpg,test2.jpg').reply(200, {}) + let postCount = 0 + server.use( + http.post( + 'https://fake-endpoint.uppy.io/upload-bundle/test.jpg,test2.jpg', + () => { + postCount += 1 + return HttpResponse.json({}, { status: 200, headers: corsHeaders }) + }, + ), + ) const core = new Core() core.use(XHRUpload, { @@ -212,7 +245,7 @@ describe('XHRUpload', () => { await core.upload() - expect(scope.isDone()).toBe(true) + expect(postCount).toBe(1) }) }) }) diff --git a/yarn.lock b/yarn.lock index fb0f74026..f4621b777 100644 --- a/yarn.lock +++ b/yarn.lock @@ -427,6 +427,46 @@ __metadata: languageName: node linkType: hard +"@asamuzakjp/css-color@npm:^5.1.11": + version: 5.1.11 + resolution: "@asamuzakjp/css-color@npm:5.1.11" + dependencies: + "@asamuzakjp/generational-cache": "npm:^1.0.1" + "@csstools/css-calc": "npm:^3.2.0" + "@csstools/css-color-parser": "npm:^4.1.0" + "@csstools/css-parser-algorithms": "npm:^4.0.0" + "@csstools/css-tokenizer": "npm:^4.0.0" + checksum: 10/2e337cc94b5a3f9741a27f92b4e4b7dc467a76b1dcf66c40e71808fed71695f10c8cf07c8b13313cbb637154314ca1d8626bb9a045fe94b404b242a390cf3bd3 + languageName: node + linkType: hard + +"@asamuzakjp/dom-selector@npm:^7.1.1": + version: 7.1.1 + resolution: "@asamuzakjp/dom-selector@npm:7.1.1" + dependencies: + "@asamuzakjp/generational-cache": "npm:^1.0.1" + "@asamuzakjp/nwsapi": "npm:^2.3.9" + bidi-js: "npm:^1.0.3" + css-tree: "npm:^3.2.1" + is-potential-custom-element-name: "npm:^1.0.1" + checksum: 10/49a065a64db5f53a3008c231d09606e4b67f509fa20148a67419451c2dc91a421202ed17bfc4bc679ad2f0432d7260720d602c1d5c9c5e165931fff5199c3f12 + languageName: node + linkType: hard + +"@asamuzakjp/generational-cache@npm:^1.0.1": + version: 1.0.1 + resolution: "@asamuzakjp/generational-cache@npm:1.0.1" + checksum: 10/e1cf3f1916a334c6153f624982f0eb3d50fa3048435ea5c5b0f441f8f1ab74a0fe992dac214b612d22c0acafad3cd1a1f6b45d99c7b6e3b63cfdf7f6ca5fc144 + languageName: node + linkType: hard + +"@asamuzakjp/nwsapi@npm:^2.3.9": + version: 2.3.9 + resolution: "@asamuzakjp/nwsapi@npm:2.3.9" + checksum: 10/95a6d1c102e1117fe818da087fcc5b914d23e0699855991bae50b891435dd1945ad7d384198f8bcf616207fd85b7ec32e3db6b96e9309d84c6903b8dc4151e34 + languageName: node + linkType: hard + "@aws-crypto/crc32@npm:5.2.0": version: 5.2.0 resolution: "@aws-crypto/crc32@npm:5.2.0" @@ -3068,6 +3108,17 @@ __metadata: languageName: node linkType: hard +"@bramus/specificity@npm:^2.4.2": + version: 2.4.2 + resolution: "@bramus/specificity@npm:2.4.2" + dependencies: + css-tree: "npm:^3.0.0" + bin: + specificity: bin/cli.js + checksum: 10/4255ed6ff12f7db9ec3c21acfd0da2327d30ec29deb199345810cdcad992618f40039c5483eefeb665913bffbc80b690e9f1b954fbbbfa93480c6a22f9c3a69c + languageName: node + linkType: hard + "@bundled-es-modules/cookie@npm:^2.0.1": version: 2.0.1 resolution: "@bundled-es-modules/cookie@npm:2.0.1" @@ -3422,6 +3473,13 @@ __metadata: languageName: node linkType: hard +"@csstools/color-helpers@npm:^6.0.2": + version: 6.0.2 + resolution: "@csstools/color-helpers@npm:6.0.2" + checksum: 10/c47a943e947d76980d0e1071027cb70481ac481968e744a05a7aea7ede9886f10d062b2e3691e03c115d97b053d4140c1ca28e24c1ffe2d21693e126de6522e9 + languageName: node + linkType: hard + "@csstools/css-calc@npm:^2.1.3, @csstools/css-calc@npm:^2.1.4": version: 2.1.4 resolution: "@csstools/css-calc@npm:2.1.4" @@ -3432,6 +3490,16 @@ __metadata: languageName: node linkType: hard +"@csstools/css-calc@npm:^3.2.0, @csstools/css-calc@npm:^3.2.1": + version: 3.2.1 + resolution: "@csstools/css-calc@npm:3.2.1" + peerDependencies: + "@csstools/css-parser-algorithms": ^4.0.0 + "@csstools/css-tokenizer": ^4.0.0 + checksum: 10/39042a9382cbd7c4fa241c1a6c10d64c23fa7653970fc11df532e9bc42a366a8b50c3ac3036bd5f2a77b94144e7f804f19d2b52800ad2f48bd9a3840377165d8 + languageName: node + linkType: hard + "@csstools/css-color-parser@npm:^3.0.9": version: 3.0.10 resolution: "@csstools/css-color-parser@npm:3.0.10" @@ -3445,6 +3513,19 @@ __metadata: languageName: node linkType: hard +"@csstools/css-color-parser@npm:^4.1.0": + version: 4.1.1 + resolution: "@csstools/css-color-parser@npm:4.1.1" + dependencies: + "@csstools/color-helpers": "npm:^6.0.2" + "@csstools/css-calc": "npm:^3.2.1" + peerDependencies: + "@csstools/css-parser-algorithms": ^4.0.0 + "@csstools/css-tokenizer": ^4.0.0 + checksum: 10/05bcfb0b05070387dbaf3b498091998fc23b4442c04e5469ce7b1af600113032c43946b07d4c6ae04f2e4c2c4d49ecfca8b2a42fe9d53d7cec4bf2642b2a33e8 + languageName: node + linkType: hard + "@csstools/css-parser-algorithms@npm:^3.0.4": version: 3.0.5 resolution: "@csstools/css-parser-algorithms@npm:3.0.5" @@ -3454,6 +3535,27 @@ __metadata: languageName: node linkType: hard +"@csstools/css-parser-algorithms@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/css-parser-algorithms@npm:4.0.0" + peerDependencies: + "@csstools/css-tokenizer": ^4.0.0 + checksum: 10/000f3ba55f440d9fbece50714e88f9d4479e2bde9e0568333492663f2c6034dc31d0b9ef5d66d196c76be58eea145ca6920aa8bdfdcc6361894806c21b5402d0 + languageName: node + linkType: hard + +"@csstools/css-syntax-patches-for-csstree@npm:^1.1.3": + version: 1.1.4 + resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.1.4" + peerDependencies: + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true + checksum: 10/f12bfd62737b49e81d12e83f325c58f9c1861739056c0467288890a2b195c2d800c14ee16b09f4e957d2c9df6da371f225b6b6e640fb5fc25fc68bd3a8ced789 + languageName: node + linkType: hard + "@csstools/css-tokenizer@npm:^3.0.3": version: 3.0.4 resolution: "@csstools/css-tokenizer@npm:3.0.4" @@ -3461,6 +3563,13 @@ __metadata: languageName: node linkType: hard +"@csstools/css-tokenizer@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/css-tokenizer@npm:4.0.0" + checksum: 10/074ade1a7fc3410b813c8982cf07a56814a55af509c533c2dc80d5689f34d2ba38219f8fa78fa36ea2adc6c5db506ea3c3a667388dda1b59b1281fdd2a2d1e28 + languageName: node + linkType: hard + "@discoveryjs/json-ext@npm:0.6.3": version: 0.6.3 resolution: "@discoveryjs/json-ext@npm:0.6.3" @@ -4063,6 +4172,18 @@ __metadata: languageName: node linkType: hard +"@exodus/bytes@npm:^1.11.0, @exodus/bytes@npm:^1.15.0, @exodus/bytes@npm:^1.6.0": + version: 1.15.1 + resolution: "@exodus/bytes@npm:1.15.1" + peerDependencies: + "@noble/hashes": ^1.8.0 || ^2.0.0 + peerDependenciesMeta: + "@noble/hashes": + optional: true + checksum: 10/7dde00ae8040ec032ba3c287d210d7d555986caaf81a1215311c180422697d739a1952eb9d91e841132b18a19a910cdd02e4914136db3cc87baaa0fdd84b1e87 + languageName: node + linkType: hard + "@gar/promise-retry@npm:^1.0.0, @gar/promise-retry@npm:^1.0.2": version: 1.0.3 resolution: "@gar/promise-retry@npm:1.0.3" @@ -8711,7 +8832,7 @@ __metadata: dependencies: "@uppy/utils": "workspace:^" cssnano: "npm:^8.0.1" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" postcss: "npm:^8.5.15" postcss-cli: "npm:^11.0.1" preact: "npm:^10.29.2" @@ -8763,7 +8884,7 @@ __metadata: resolution: "@uppy/companion-client@workspace:packages/@uppy/companion-client" dependencies: "@uppy/utils": "workspace:^" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" namespace-emitter: "npm:^2.0.1" p-retry: "npm:^6.1.0" typescript: "npm:^5.8.3" @@ -8889,7 +9010,7 @@ __metadata: "@types/node": "npm:^20.19.0" "@uppy/utils": "workspace:^" compressorjs: "npm:^1.3.0" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" preact: "npm:^10.29.2" promise-queue: "npm:^2.2.5" typescript: "npm:^5.8.3" @@ -8910,7 +9031,7 @@ __metadata: "@uppy/utils": "workspace:^" cssnano: "npm:^8.0.1" deep-freeze: "npm:^0.0.1" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" lodash: "npm:^4.18.1" mime-match: "npm:^1.0.2" namespace-emitter: "npm:^2.0.1" @@ -8941,7 +9062,7 @@ __metadata: "@vitest/browser-playwright": "npm:^4.1.6" classnames: "npm:^2.5.1" cssnano: "npm:^8.0.1" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" lodash: "npm:^4.18.1" nanoid: "npm:^5.1.11" playwright: "npm:1.60.0" @@ -9167,7 +9288,7 @@ __metadata: "@uppy/utils": "workspace:^" classnames: "npm:^2.5.1" cssnano: "npm:^8.0.1" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" lodash: "npm:^4.18.1" nanoid: "npm:^5.1.11" p-queue: "npm:^9.3.0" @@ -9193,7 +9314,7 @@ __metadata: "@types/use-sync-external-store": "npm:^1.5.0" "@uppy/components": "workspace:^" "@uppy/core": "workspace:^" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" preact: "npm:^10.29.2" react: "npm:^19.2.6" react-dom: "npm:^19.2.6" @@ -9234,7 +9355,7 @@ __metadata: "@uppy/unsplash": "workspace:^" "@uppy/url": "workspace:^" "@uppy/zoom": "workspace:^" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" resize-observer-polyfill: "npm:^1.5.1" typescript: "npm:^5.8.3" vitest: "npm:^4.1.6" @@ -9282,7 +9403,7 @@ __metadata: resolution: "@uppy/store-default@workspace:packages/@uppy/store-default" dependencies: "@types/node": "npm:^20.19.0" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" typescript: "npm:^5.8.3" vitest: "npm:^4.1.6" languageName: unknown @@ -9329,7 +9450,7 @@ __metadata: dependencies: "@uppy/utils": "workspace:^" exifr: "npm:^7.1.3" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" namespace-emitter: "npm:2.0.1" typescript: "npm:^5.8.3" vitest: "npm:^4.1.6" @@ -9347,7 +9468,7 @@ __metadata: "@uppy/tus": "workspace:^" "@uppy/utils": "workspace:^" component-emitter: "npm:^2.0.0" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" msw: "npm:^2.10.4" typescript: "npm:^5.8.3" vitest: "npm:^4.1.6" @@ -9364,7 +9485,7 @@ __metadata: "@uppy/companion-client": "workspace:^" "@uppy/core": "workspace:^" "@uppy/utils": "workspace:^" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" tus-js-client: "npm:^4.3.1" typescript: "npm:^5.8.3" vitest: "npm:^4.1.6" @@ -9416,7 +9537,7 @@ __metadata: resolution: "@uppy/utils@workspace:packages/@uppy/utils" dependencies: "@types/lodash": "npm:^4.14.199" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" lodash: "npm:^4.18.1" preact: "npm:^10.29.2" typescript: "npm:^5.8.3" @@ -9460,7 +9581,7 @@ __metadata: "@uppy/utils": "workspace:^" cssnano: "npm:^8.0.1" is-mobile: "npm:^5.0.0" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" postcss: "npm:^8.5.15" postcss-cli: "npm:^11.0.1" preact: "npm:^10.29.2" @@ -9497,9 +9618,8 @@ __metadata: "@uppy/utils": "workspace:^" "@vitest/browser": "npm:^4.1.6" "@vitest/browser-playwright": "npm:^4.1.6" - jsdom: "npm:^26.1.0" + jsdom: "npm:^29.1.1" msw: "npm:^2.10.4" - nock: "npm:^13.1.0" playwright: "npm:1.60.0" typescript: "npm:^5.8.3" vitest: "npm:^4.1.6" @@ -10522,6 +10642,15 @@ __metadata: languageName: node linkType: hard +"bidi-js@npm:^1.0.3": + version: 1.0.3 + resolution: "bidi-js@npm:1.0.3" + dependencies: + require-from-string: "npm:^2.0.2" + checksum: 10/c4341c7a98797efe3d186cd99d6f97e9030a4f959794ca200ef2ec0a678483a916335bba6c2c0608a21d04a221288a31c9fd0faa0cd9b3903b93594b42466a6a + languageName: node + linkType: hard + "big.js@npm:^5.2.2": version: 5.2.2 resolution: "big.js@npm:5.2.2" @@ -11729,7 +11858,7 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^3.0.1": +"css-tree@npm:^3.0.0, css-tree@npm:^3.0.1, css-tree@npm:^3.2.1": version: 3.2.1 resolution: "css-tree@npm:3.2.1" dependencies: @@ -11896,6 +12025,16 @@ __metadata: languageName: node linkType: hard +"data-urls@npm:^7.0.0": + version: 7.0.0 + resolution: "data-urls@npm:7.0.0" + dependencies: + whatwg-mimetype: "npm:^5.0.0" + whatwg-url: "npm:^16.0.0" + checksum: 10/60f88ded4306aea5d6251c4db100ca272fc026014004d68aad4db495397a73bb39d17a6bd29ed9ab348c88a28f6e97266a1759985df4e12dc8c02bb8544c7731 + languageName: node + linkType: hard + "data-view-buffer@npm:^1.0.1": version: 1.0.1 resolution: "data-view-buffer@npm:1.0.1" @@ -11976,7 +12115,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.5.0": +"decimal.js@npm:^10.5.0, decimal.js@npm:^10.6.0": version: 10.6.0 resolution: "decimal.js@npm:10.6.0" checksum: 10/c0d45842d47c311d11b38ce7ccc911121953d4df3ebb1465d92b31970eb4f6738a065426a06094af59bee4b0d64e42e7c8984abd57b6767c64ea90cf90bb4a69 @@ -12503,6 +12642,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^8.0.0": + version: 8.0.0 + resolution: "entities@npm:8.0.0" + checksum: 10/d6e2ba75e444fb101ee2fbb07c839e687306c8a509426b75186619c19196f97c1db9932ca083f823c03e4a20e7407b654aa34de8cbb7770468e20fb2d4573a0e + languageName: node + linkType: hard + "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -14630,6 +14776,15 @@ __metadata: languageName: node linkType: hard +"html-encoding-sniffer@npm:^6.0.0": + version: 6.0.0 + resolution: "html-encoding-sniffer@npm:6.0.0" + dependencies: + "@exodus/bytes": "npm:^1.6.0" + checksum: 10/97392e45d8aff57f180f62a1b12e62201c8451af68424b8bc3196f78e273891f2df285e5be43a3f28c7ba4badf9524ef305db65c4e4935a9e796afc86d9654b8 + languageName: node + linkType: hard + "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -15734,6 +15889,40 @@ __metadata: languageName: node linkType: hard +"jsdom@npm:^29.1.1": + version: 29.1.1 + resolution: "jsdom@npm:29.1.1" + dependencies: + "@asamuzakjp/css-color": "npm:^5.1.11" + "@asamuzakjp/dom-selector": "npm:^7.1.1" + "@bramus/specificity": "npm:^2.4.2" + "@csstools/css-syntax-patches-for-csstree": "npm:^1.1.3" + "@exodus/bytes": "npm:^1.15.0" + css-tree: "npm:^3.2.1" + data-urls: "npm:^7.0.0" + decimal.js: "npm:^10.6.0" + html-encoding-sniffer: "npm:^6.0.0" + is-potential-custom-element-name: "npm:^1.0.1" + lru-cache: "npm:^11.3.5" + parse5: "npm:^8.0.1" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^6.0.1" + undici: "npm:^7.25.0" + w3c-xmlserializer: "npm:^5.0.0" + webidl-conversions: "npm:^8.0.1" + whatwg-mimetype: "npm:^5.0.0" + whatwg-url: "npm:^16.0.1" + xml-name-validator: "npm:^5.0.0" + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10/344aed7f91839b6c7d1b40778c5542d6ded7d42d88e1b787e10bf12d4ccd65464a5f23f774eb84350885c75a48efc99f6972adbb94dffe324a1b065d3650843c + languageName: node + linkType: hard + "jsesc@npm:3.0.2, jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" @@ -16862,7 +17051,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1": +"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1, lru-cache@npm:^11.3.5": version: 11.5.1 resolution: "lru-cache@npm:11.5.1" checksum: 10/02c4f73967d91fb101f4accf8ebac9e0541e08e16d987bdb9e9737f13e5f2c4bc33c593b98ec30e4486bf899bc97edb36fbd133684b36087336559e41edafdea @@ -18744,6 +18933,15 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^8.0.1": + version: 8.0.1 + resolution: "parse5@npm:8.0.1" + dependencies: + entities: "npm:^8.0.0" + checksum: 10/671dedfe7cbf4714414317bc8c6b2a14c61ef44f8fd90c983b5b1870653af5aa2e3b4e25e38e9538a7120ea2b688c50908830da2bd0930d8fd4bce34aed024eb + languageName: node + linkType: hard + "parseurl@npm:^1.3.3, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -22296,6 +22494,13 @@ __metadata: languageName: node linkType: hard +"tldts-core@npm:^7.4.2": + version: 7.4.2 + resolution: "tldts-core@npm:7.4.2" + checksum: 10/5fb55cc9be7236b11f24cf633e50a4389ea490e0c68d771f2b15453d89d66b0a2aed69af45852bcbdeb17914e28d39dd38295f741907eb23e210295b5020a4ae + languageName: node + linkType: hard + "tldts@npm:^6.1.32": version: 6.1.86 resolution: "tldts@npm:6.1.86" @@ -22307,6 +22512,17 @@ __metadata: languageName: node linkType: hard +"tldts@npm:^7.0.5": + version: 7.4.2 + resolution: "tldts@npm:7.4.2" + dependencies: + tldts-core: "npm:^7.4.2" + bin: + tldts: bin/cli.js + checksum: 10/308ce17d569122e1ba35368eca91e728defcfe43b6bda964642c101c525cfe79e8310f9278ea6f671654a33f8815d2bbc3e3e602f4d1885db29f15c76530faf9 + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -22367,6 +22583,15 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^6.0.1": + version: 6.0.1 + resolution: "tough-cookie@npm:6.0.1" + dependencies: + tldts: "npm:^7.0.5" + checksum: 10/915b1167e0630598eb0644e8bc089ddc28a23bf05f3c329a4a0d879c6b9801a2603be65acb06b5d2dd0f589cabb06bb638837f8222dd82a7023655f07269451a + languageName: node + linkType: hard + "tr46@npm:^5.1.0": version: 5.1.1 resolution: "tr46@npm:5.1.1" @@ -22376,6 +22601,15 @@ __metadata: languageName: node linkType: hard +"tr46@npm:^6.0.0": + version: 6.0.0 + resolution: "tr46@npm:6.0.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10/e6d402eb2b780a40042f327f77b4ae316da1d2b18a29c16e48c239f5267c6005bbf780f854179cfae62b02dfaa70b0e9aad8f0078ccc4225f5b3b3b131928e8f + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -22778,6 +23012,13 @@ __metadata: languageName: node linkType: hard +"undici@npm:^7.25.0": + version: 7.26.0 + resolution: "undici@npm:7.26.0" + checksum: 10/c55b8f8e378dce6e645853faf0834d66b9f470c6ee1430c6e2b7971d831de36081f7e2e21ac1fc11297657d7c856241b0bf746b2a24f1277f8d156df9c181ba7 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -23564,6 +23805,13 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^8.0.1": + version: 8.0.1 + resolution: "webidl-conversions@npm:8.0.1" + checksum: 10/0f7007311f1fc257a8e406dd236f13b61fb57cf0fddb476aec33457d2d0add2d012d6df0eeb00934399238e3f3b9dad30f59dc6ac83024ae0ebd5a518bf365e8 + languageName: node + linkType: hard + "webpack-dev-middleware@npm:7.4.2, webpack-dev-middleware@npm:^7.4.2": version: 7.4.2 resolution: "webpack-dev-middleware@npm:7.4.2" @@ -23745,6 +23993,13 @@ __metadata: languageName: node linkType: hard +"whatwg-mimetype@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-mimetype@npm:5.0.0" + checksum: 10/a2d5da445f671ed34010b45283ffb9ba3c68c695b8ec91f7400cfc9149c35eb2bc47bd2c39bbe8e026786b955ace03402ba2e5cfde4955434a3ec3c511a85d0a + languageName: node + linkType: hard + "whatwg-url@npm:^14.0.0, whatwg-url@npm:^14.1.1": version: 14.2.0 resolution: "whatwg-url@npm:14.2.0" @@ -23755,6 +24010,17 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^16.0.0, whatwg-url@npm:^16.0.1": + version: 16.0.1 + resolution: "whatwg-url@npm:16.0.1" + dependencies: + "@exodus/bytes": "npm:^1.11.0" + tr46: "npm:^6.0.0" + webidl-conversions: "npm:^8.0.1" + checksum: 10/221cc15ef89288dc1fafdb409352c62ab12ba9ff7f0753e925d8799c87b20371f3bc762dc0a8a5b9c23cddc4b1860537fc6c1bcc9d816ace9b3d3c47212cd163 + languageName: node + linkType: hard + "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0"