Commit graph

10574 commits

Author SHA1 Message Date
prakash
1a255a8178
make "Debug packaged uppy dependencies" fail when package.json has
workspace:* entries rather than just logging it
2026-07-02 13:29:01 +05:30
Prakash
ad8295c3d5
Merge branch 'main' into restore/pr-6284 2026-07-01 13:21:36 +05:30
Prakash
08bd2ef8bb
Restore #6314 : @uppy/tus: don't abort errored request (#6365)
restore #6314 to d30c93df37

- merged `main` to it
- resolved confilicts
- squashed all commits into a single commit and sign it ( I had to do
this as signing the past unsigned commits was difficult it was messing
up the history everytime I tried )
2026-06-30 23:31:34 +05:30
prakash
942db47234
add changeset 2026-06-30 21:15:42 +05:30
prakash
ad84895e08
remove unused dep nock 2026-06-30 21:15:28 +05:30
Prakash
f28afb9eea
Merge branch 'main' into restore/pr-6314 2026-06-28 08:53:15 +05:30
Mikael Finstad
cd34c9cf4f
upgrade @types/cors and @types/morgan (#6360)
see #6297

---------

Co-authored-by: Prakash <qxprakash@gmail.com>
2026-06-28 01:39:06 +02:00
prakash
4c30023e35
yarn check 2026-06-25 20:35:45 +05:30
prakash
a05035f70f
remove stale config and fix failing test 2026-06-25 20:34:11 +05:30
prakash
500e848eb8
#6287 fix squash all commits 2026-06-25 19:59:31 +05:30
Arvind
32b9f06a22
@uppy/locales: update Norwegian Bokmål (nb_NO) (#6346)
The Norwegian Bokmål (`nb_NO`) locale had fallen behind `en_US` by ~55
strings. This brings it up to date.

**Added** translations for the missing keys, including: AI image
generation (`generateImage`, `generating1`–`5`), audio recording
(`allowAudioAccess*`, `noAudio*`, `startAudioRecording`,
`stopAudioRecording`), required meta fields
(`missingRequiredMetaField*`), session recovery (`recoveredAllFiles`,
`recoveredXFiles`, `sessionRestored`), plugin names (`pluginName*`),
image compression (`compressedX`, `compressingImages`), and various UI
strings (`error`, `search`, `pleaseWait`, `unnamed`, `uploadStalled`,
etc.).

**Removed** keys no longer present in `en_US` (`backToSearch`,
`fileSource`, `selectFileNamed`, `timedOut`, `unselectFileNamed`).

**Fixed** `exceedsSize` to include the `%{file}` placeholder, and
aligned key order with `en_US`.

I'm a native Norwegian speaker and reviewed every string. Translation
was done with AI assistance (Claude) and checked by me.

---------

Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2026-06-23 22:37:53 +02:00
prakash
1d41bcf342
fix lint based on new biome rules after merge 2026-06-20 02:02:11 +05:30
prakash
9f88450929
update comments , update type casing and update examples based on feedback 2026-06-20 01:56:45 +05:30
prakash
5585a796af
Merge remote-tracking branch 'origin/main' into restore/pr-6284 2026-06-20 01:37:42 +05:30
prakash
1b3602405f
Merge branch 'restore/pr-6284' of github.com:transloadit/uppy into restore/pr-6284 2026-06-20 01:14:30 +05:30
prakash
f88e037395
revert body = null in fetcher 2026-06-20 01:05:57 +05:30
Prakash
113a5c5747
exclude minio.test.ts from jsdom test
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-20 00:49:49 +05:30
prakash
1c0c402b71
remove .claude/worktrees gitlink 2026-06-17 14:38:55 +05:30
Prakash
49398593bd
@uppy/aws-s3: update examples (#6311)
- update outdated examples based on latest api changes
2026-06-17 13:54:48 +05:30
Prakash
2d429a8aef
@uppy/aws-s3: remote uploads and golden retriever (#6186)
- add support for remote uploads
- add support for restore using golden-retriever
- update examples
- #6181 still persists

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2026-06-17 13:54:48 +05:30
Prakash
da46951771
@uppy/aws-s3: wrong upload meta in upload-success event (#6234)
right now whenever you upload any file through multipart upload you'll
find empty body returned in `upload-success` event

cause : response from completeMultipartRequest returned in CamelCase
which was not parsed correctly

```xml
<?xml version="1.0" encoding="UTF-8"?>

<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Location>https://testbucketnewfix.s3.eu-north-1.amazonaws.com/13febe01-8d5b-4ed3-bda1-9620fc37c694-VSCode-darwin-universal.dmg</Location><Bucket>testbucketnewfix</Bucket><Key>13febe01-8d5b-4ed3-bda1-9620fc37c694-VSCode-darwin-universal.dmg</Key><ETag>"be4129821e06a893b453f1373995202b-49"</ETag><ChecksumCRC64NVME>Wjr7mcJOfU0=</ChecksumCRC64NVME><ChecksumType>FULL_OBJECT</ChecksumType></CompleteMultipartUploadResult>
```

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-17 13:54:47 +05:30
Prakash
50de6d1066
update aws-nodejs examples (#6187)
- removed old examples , entirely remove withCustomEndpoints.html as
every s3 operations are now handled by s3mini so no need of it.
- add new examples and update README.md
2026-06-17 13:54:47 +05:30
Prakash
779c19c9d7
@uppy/aws-s3 add queue (#6171)
- queue support added for file level concurrency.
2026-06-17 13:54:47 +05:30
Prakash
3529f97899
fix signature mismatch in @uppy/aws-s3 (#6165)
shouldUseMultipart: true was not working due to signature mismatch

AI summary :

This pull request improves support for specifying the `contentType`
during S3 uploads, ensuring that the correct content type is set when
generating presigned URLs for both single and multipart uploads. It also
updates the client-side and server-side code to handle this new
parameter.

**Backend and API enhancements:**
- Updated the `/s3/presign` endpoint in `index.js` to accept an optional
`contentType` parameter and to include it in the S3 `PutObjectCommand`
and `CreateMultipartUploadCommand` requests, defaulting to
`'application/octet-stream'` if not provided.
[[1]](diffhunk://#diff-0c4471088c62917198e1438777b4c7e78fd4d87d450d2a7c78b86b7c647ac97bL360-R360)
[[2]](diffhunk://#diff-0c4471088c62917198e1438777b4c7e78fd4d87d450d2a7c78b86b7c647ac97bR384-R391)

**Client-side and types improvements:**
- Added `contentType` to the `presignableRequest` type to ensure type
safety and clarity when passing this parameter.
- Modified the S3 client (`S3.ts`) to include `contentType` when making
presign requests.
- Updated the example HTML (`rewrite-test.html`) to send `contentType`
in presign requests and enabled multipart uploads for testing.
[[1]](diffhunk://#diff-ca9bc28a71d2d8ac4e0aa6844698f2244594a12e695fc3e153db36674ccb2b52L103-R103)
[[2]](diffhunk://#diff-ca9bc28a71d2d8ac4e0aa6844698f2244594a12e695fc3e153db36674ccb2b52R114)
2026-06-17 13:54:47 +05:30
Prakash
828b8df284
Use fetcher in s3mini for progress and retries with backoff (#6155)
Cherry-picked as the previous branch got messy ( from last PR )

- XHR-based uploads using `@uppy/utils/fetcher`
- Silent offline detection (without treating it as an error) with
automatic resume ( inspired from old plugin code )
- Retry with backoff using fetcher defaults:
  - Max retries: 3
  - Delays: 300ms → 600ms → 1200ms
  - Retries on 5xx and 429; skips other 4xx errors
- S3 Error Mappings
2026-06-17 13:54:47 +05:30
Prakash
af1ce527f5
implement minimal aws-s3 plugin (#6151)
Working :

- Simple uploads (putObject)
- Multipart uploads
- Pause / Resume / Abort , Resume works using listParts as before
- Progress tracking per chunk ( `#onProgress` ) - this is temporary ,
until we implement xhr based progress tracking as - before.

**added new examples to examples/aws-nodejs to test the rewrite , old
examples will eventually be removed**

Not Yet Implemented

- Rate limiting  – Currently uploads are sequential
- Retries
- Remote file uploads – Files from Google Drive, Dropbox, etc.
XHR progress
- full wiring with uppy state ( I saw few state bugs while testing it
manually )

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Murderlon <merlijn@soverin.net>
2026-06-17 13:54:47 +05:30
Prakash
8757a86b15
s3mini use presigned URLs instead of signed headers (#6130)
#### This PR replaces signed headers with presigned urls , for signing.
- I implemented this along with the uploader rewrite , but raised PR for
this it separately to reduce diffs.
- `signer.ts` now returns signed url , which is directly used by
`_presignedRequest` method to make calls to s3
- tested it with uploader rewrite working fine.

---------

Co-authored-by: Murderlon <merlijn@soverin.net>
2026-06-17 13:54:47 +05:30
Prakash
a3ca750b13
remove tests 2026-06-17 13:54:47 +05:30
Prakash
e7f62dd5c6
remove HTTPCommunication queue and clean index.ts and MultipartUplaoder.ts 2026-06-17 13:54:47 +05:30
Prakash
bd8d51b02d
@uppy/aws-s3: add support for tempCredentials in s3mini (#6110)
- added `getCredentials` callback in `S3Config`
- simplified signer test util ( `sigv4-signer.js` ) and moved to
`src/signer.ts`
- all tests run in a new non root minio user ( required for sts ) ,
which gets created before the tests start see `tests/s3-client/setup.js`
- tests added for sts , using `@aws-sdk/client-sts` for getting creds.
- credential caching inspired from the current implementation in
`@aws-s3` plugin , see `#getTemporarySecurityCredentials` inside
`@uppy/aws-s3/src/index.ts`

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-06-17 13:54:47 +05:30
Prakash
db9506a57c
give credit 2026-06-17 13:54:47 +05:30
Prakash
6b9521f6b1
add s3mini client to @uppy/aws-s3 plugin (#6103)
- base branch cleanup and ran `yarn && yarn dedupe`
- client copied and tests wired up
2026-06-17 13:54:47 +05:30
Kevin van Zonneveld
52cc4b3e5e
Pin third-party GitHub Actions to SHAs (#6327) 2026-06-08 19:51:10 +00:00
Prakash
981fcedd71
@uppy/upgrade devdeps v3 (#6319)
AI disclaimer: AI used
  
  ## Changes
  - **vite 7 → 8** 
- **@vitejs/plugin-react 4 → 6** (peer-requires vite ^8; drops Babel for
oxc)
- **@tailwindcss/vite 4.1 → 4.3** (first 4.x with a vite ^8 peer range)
- `examples/react/vitest.config.ts`: add `resolve.dedupe: ['react',
'react-dom']` : reason explained in comments
2026-06-03 15:39:24 +05:30
Prakash
675b48fa14
@uppy/upgrade devdeps v2 (#6318)
AI disclaimer : AI used

## Changes
- **jsdom 26 → 29** across all packages' devDependencies —
**except`@uppy/aws-s3`** (left at 26; that plugin is being rewritten and
its deps are handled on the rewrite branch).
- **`@uppy/xhr-upload` unit tests migrated from nock to MSW**, and
`nock` dropped from its devDependencies.
  ## Why the test migration was needed
jsdom **28** overhauled resource loading so `XMLHttpRequest` now goes
through jsdom's internal (undici-based) fetch instead of Node's `http`
module ([jsdom 28 release
notes](https://github.com/jsdom/jsdom/releases/tag/28.0.0)).
nock intercepts at the Node `http` / `http.ClientRequest` layer ([nock
README](https://github.com/nock/nock)), so it can no longer see uppy's
upload requests — the mocked responses never arrive and the tests time
out. (This is the long-standing nock + jsdom XHR incompatibility:
[nock#518](https://github.com/nock/nock/issues/518).)

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-03 15:30:55 +05:30
Prakash
1427add64a
@uppy/upgrade-devdeps-v1 (#6317)
Part of the dev-dependency major-version upgrades. These required code
changes so they're split out from the no-code-change batch (#6315).

**AI Disclaimer** : AI Used

- **glob 8 → 13** — `@uppy/locales` scripts: the callback API was
removed, so `getPaths()` uses the promise form and `test.mjs` uses the
named `globSync`.
- **npm-packlist 5 → 11** — `upload-to-cdn.js`: v7+ takes an
`@npmcli/arborist` tree instead of `{ path }`; loads the tree and passes
it to `packlist()`. Adds `@npmcli/arborist` as a devDependency.
- **nock 13 → 14** (`@uppy/companion`) — the v14 @mswjs/interceptors
rewrite crashed the SSRF tests in `http-agent.test.ts`; nock
interception is now kept off by default and only activated for the one
test that mocks a host.
- **@types/use-sync-external-store 0 → 1** — `@uppy/react`: v1's exports
map only exposes extensionless subpaths, so imports use
`use-sync-external-store/shim` and `/with-selector` (runtime supports
both).
2026-06-03 14:38:14 +05:30
Prakash
d7aaab7ad1
@uppy: upgrade dev deps (#6315)
addresses #6297

I'll raise another PR which would include deps which require code
changes
2026-06-02 10:48:58 +08:00
Prakash
7ea7530997
upgrade playwright (#6316)
fixes the timeout which we're facing in "CI / Test" in the past few days
which gets stuck at "Install Playwright Browsers"


https://github.com/transloadit/uppy/actions/runs/26646754991/job/78534314307?pr=6315

tested on my local fork
2026-06-01 18:08:22 +05:30
Prakash
c3c7cef4ed
@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>
2026-05-29 18:58:42 +05:30
Prakash
ef370da2b3
Revert "@uppy/tus: don't abort errored request" (#6313)
Reverts transloadit/uppy#6312
2026-05-29 18:48:40 +05:30
Prakash
51acfe9e6c
@uppy/tus: don't abort errored request (#6312)
this fixes #6287 , another similar attempted fix which didn't got merged
: #5683

in #5683 we discussed a more longer term solution but IMO that would be
a breaking change as it would change the event contract

AI Disclaimer : AI Used 

This fix is Manually Tested across **Chrome and Firefox**
2026-05-29 18:42:58 +05:30
Prakash
5519b84409
@uppy: upgrade biome and more improvements (#6244)
- This PR upgrades `biome` from `2.0.5` -> `2.1.2` and adds two new
rules
-
[noUnusedImports](https://biomejs.dev/linter/rules/no-unused-private-class-members)
( we already had suppressions for this rule in code, but the rule itself
was never enabled in the config )
-
[noUnusedPrivateClassMembers](https://biomejs.dev/linter/rules/no-unused-private-class-members/)
- remove stale suppressions. 
- remove stale code.

---------

Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2026-05-21 12:28:03 +08:00
Prakash
9143d41bc2
@uppy/companion: upgrade dev deps (#6300)
all the dev deps upgraded excepts for these : 

  - `@types/cors: 2.8.6`
  - `@types/jsonwebtoken: 8.3.7`
  - `@types/morgan: 1.7.37`
  - `@types/node: ^20.19.0`
  - `nock: ^13.1.3`
  
upgrading these to their latest major either breaks the test suite or
requires us to do code changes on our end.
  
  #6297

---------

Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2026-05-21 12:26:42 +08:00
Mikael Finstad
3c537e2780
Companion upgrade deps (#6305)
recreates #6296

---------

Co-authored-by: Prakash <qxprakash@gmail.com>
2026-05-21 12:07:05 +08:00
Prakash
d9d44ce5e5
upgrade to express v5 (#6304)
exact copy of #6175 

- I will point the uppy deps upgrade pr to this PR's branch
- no other changes needed in this branch as #6175 was reviewed and all
the comments were resolved

this should be the order of merge : 

1. #6300
2. uppy deps upgrade ( yet to be raised ) 
3. merge this to main
4. merge biome changes #6244 

@mifi let me know if you think otherwise.

---------

Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2026-05-21 11:14:23 +08:00
Prakash
d9742ba4e4
Revert "Upgrade to express 5" (#6303)
Reverts transloadit/uppy#6175
2026-05-21 02:36:00 +05:30
Mikael Finstad
489d76717c
Upgrade to express 5 (#6175)
closes #6157

https://expressjs.com/en/guide/migrating-5.html

---------

Co-authored-by: Prakash <qxprakash@gmail.com>
2026-05-20 21:06:46 +05:30
Prakash
ca916f6580
@uppy/transloadit: fix stale assemblyStatus in 'transloadit:assembly-cancelled' event (#6294)
@mifi this is small change which we missed , based on our discussion in
uppy call.

---------

Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2026-05-20 13:03:47 +08:00
Prakash
622daa498c
@uppy/examples: update examples after recent breaking changes (#6299) 2026-05-18 21:03:42 +05:30
Mikael Finstad
5efc32a2e7
remove angular eslint (#6164)
closes #6161

---------

Co-authored-by: Prakash <qxprakash@gmail.com>
2026-05-18 20:35:10 +08:00