mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-17 16:50:22 +00:00
359 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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> |
||
|
|
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> |
||
|
|
779c19c9d7
|
@uppy/aws-s3 add queue (#6171)
- queue support added for file level concurrency. |
||
|
|
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) |
||
|
|
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 |
||
|
|
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> |
||
|
|
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> |
||
|
|
a3ca750b13
|
remove tests | ||
|
|
e7f62dd5c6
|
remove HTTPCommunication queue and clean index.ts and MultipartUplaoder.ts | ||
|
|
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> |
||
|
|
db9506a57c
|
give credit | ||
|
|
6b9521f6b1
|
add s3mini client to @uppy/aws-s3 plugin (#6103)
- base branch cleanup and ran `yarn && yarn dedupe` - client copied and tests wired up |
||
|
|
3c3034b408
|
Dedupe dependencies (#6085)
With `yarn dedupe`. New type error surfaced due to new types getting
loaded.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Dedupes dependencies and updates code: aligns S3 presign tests with
checksum behavior, narrows HMAC key type, tweaks AudioOscilloscope
buffer typing, and simplifies Tus success logging.
>
> - **AWS S3**:
> - Tests: add `requestChecksumCalculation` (from
`@aws-sdk/middleware-flexible-checksums`) to `S3Client` options to match
presign behavior.
> - Impl: change `generateHmacKey` signature to accept `string |
ArrayBuffer` (remove `Uint8Array`).
> - **Audio**:
> - `AudioOscilloscope`: change `dataArray` type to
`Uint8Array<ArrayBuffer>`.
> - **Tus**:
> - Simplify success log to `Download <url>` (remove file name
extraction).
> - **Dependencies**:
> - Deduplicate/upgrade various packages in lockfile.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
|
||
|
|
556e36de4c
|
[ci] release (#6060)
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @uppy/audio@3.1.0 ### Minor Changes - |
||
|
|
ac12f35f5b
|
Move completed uploads exclusion logic (#6058)
into uploader plugins
fixes #6051
also [fix deprecated usage of done
callback](
|
||
|
|
79e6460a6c
|
Make Generics Optional in uppy.getPlugin (#6057)
fixes #6024. ### Problem - `getPlugin()` defaults to `UnknownPlugin`, so methods like `openModal` are not visible , since core is not aware of that plugin type ### Proposed change - Introduce a types-only registry in core: - `export interface PluginTypeRegistry<M extends Meta, B extends Body> {}` - Overload `getPlugin` to return a precise type when the id is a known key of the registry. - add `Dashboard` to PluginTypeRegistry through module augmentation: - `'Dashboard': Dashboard<M, B>`. - When a project imports from `@uppy/dashboard`, its module augmentation extends PluginTypeRegistry, adding the correct type into it - I've added Tests , kept them in a separate file so it's easier to review , once this approach gets approved I'll add them to `Uppy.test.ts` Once this PR gets a positive review I'll add this for other plugins , currently only added for `@uppy/dashboard` **Build with Local tarball can be checked here** https://stackblitz.com/~/github.com/qxprakash/uppy-type-test?file=type_test.ts |
||
|
|
2c4727e5f4
|
[ci] release (#6011)
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @uppy/aws-s3@5.0.2 ### Patch Changes - |
||
|
|
0c16fe44b9
|
Golden retriever refactor and UppyFile type improvements (#5978)
Probably best reviewed commit by commit. I also split UppyFile into two intefaces distinguished by the `isRemote` boolean: - LocalUppyFile - RemoteUppyFile Also: - Removed the TagFile type - Don't re-upload completed files - fixes #5930 - Clean up stored files on `complete` event *only* if *all* files succeeded (no failed files). this allows the user to retry failed files if the browser & upload get interrupted - fixes #5927, closes #5955 - Only set `isGhost` for non-successful files. it doesn't make sense for successfully uploaded files to be ghosted because they're already done. #5930 fixes #6013 --------- Co-authored-by: Prakash <qxprakash@gmail.com> |
||
|
|
54ee01105d
|
[ci] release (#5939)
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @uppy/golden-retriever@5.1.0 ### Minor Changes - |
||
|
|
4b6a76cbf4
|
add missing exports (#5952)
fixes #5940 |
||
|
|
f997d8b401
|
Revert "add missing exports" (#5951)
Reverts transloadit/uppy#5944 |
||
|
|
06f8382338
|
add missing exports (#5944)
fixes #5940 |
||
|
|
975317dd17
|
remove main from package.json (#5950)
redo of #5943 , forgot to add changesets , reverted in #5949 |
||
|
|
d65e6e4179
|
Revert "packages/@uppy/* : remove "main" from package.json (#5943)" (#5949)
This reverts commit
|
||
|
|
2117874073
|
packages/@uppy/* : remove "main" from package.json (#5943)
- The blocker was `@uppy/angular` — its build was failing because it
could not resolve modules and types for its dependencies
(`@uppy/dashboard`, `@uppy/utils`, `@uppy/provider-views`,
`@uppy/core`).
```typescript
------------------------------------------------------------------------------
Building entry point '@uppy/angular'
------------------------------------------------------------------------------
✖ Compiling with Angular sources in Ivy partial compilation mode.
../dashboard/lib/Dashboard.d.ts:1:106 - error TS2307: Cannot find module '@uppy/core' or its corresponding type declarations.
1 import type { Body, DefinePluginOpts, Meta, State, UIPluginOptions, UnknownPlugin, Uppy, UppyFile } from '@uppy/core';
~~~~~~~~~~~~
../dashboard/lib/Dashboard.d.ts:2:26 - error TS2307: Cannot find module '@uppy/core' or its corresponding type declarations.
2 import { UIPlugin } from '@uppy/core';
~~~~~~~~~~~~
../dashboard/lib/Dashboard.d.ts:3:35 - error TS2307: Cannot find module '@uppy/provider-views' or its corresponding type declarations.
```
Angular (TypeScript with moduleResolution: node) required a "main" or
"types" field in each dependency’s package.json, and ignored their
"exports" map.
|
||
|
|
e183da8de9
|
[ci] release (#5918)
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @uppy/audio@3.0.0 ### Major Changes - |
||
|
|
6a33652458 | Merge branch 'main' of https://github.com/transloadit/uppy into 5.0 | ||
|
|
d301c01d6a
|
@uppy/utils: update export maps (#5900)
- cleanup `@uppy/utils ` removed unused / redundant modules . - migrated modules and tests from `.js` to `.ts` - removed all the nested export paths - updated `@uppy/utils` import paths for all packages - `@uppy/angular` is still failing while running`yarn build` , I'm looking into it. --------- Co-authored-by: Merlijn Vos <merlijn@soverin.net> |
||
|
|
62cf5bbb14
|
[ci] release (#5867)
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @uppy/angular@0.9.0 ### Minor Changes - |
||
|
|
1b1a9e3591
|
Add "files" to all package.json's (#5852)
Closes #5865 I noticed we are publishing all files, we should filter them. npm automatically adds package.json, license, and readme so you can leave them out of the files array. |
||
|
|
c5b51f6158
|
Add Export Maps (#5830)
- added export maps to all the @uppy packages . - imports remain unaffected except for peerDep packages in `@uppy/react` `@uppy/svelte` and `@uppy/vue3`. - export maps added for index files , css , and package.json. - Added side effects for all the packages. --------- Co-authored-by: Mikael Finstad <finstaden@gmail.com> Co-authored-by: Merlijn Vos <merlijn@soverin.net> |
||
|
|
7d6d90ba5c
|
Version packages
After manual releasing all packages as changesets messed things up |
||
|
|
4ccd3716af
|
[ci] release (#5849) | ||
|
|
7bf319646a
|
Migrate from Cypress to Vitest Browser Mode (#5828)
- Remove `e2e` folder entirely - Remove all hacky resolutions and yarn patches - Remove `@types/jasmine`, `js2ts` (convert a JS file to TS), and `vue-template-compiler` from `private/` - Remove e2e CI job - Add browsers tests for vue, svelte, and react headless components and hooks. - Add new (browser) tests for transloadit, aws-s3, and dashboard. - Remove final useless scripts from `package.json`, use direct references in CI. - Fix Dropzone component accessibility discovered during testing - Clean up github workflows (move linters.yml into ci.yml, update e2e.yml) **Why Vitest Browser Mode?** We could have used playwright but vitest browser mode uses it under the hood and we get the use the vitest we know a love. No two entirely different setups, no different assertions to relearn, write e2e tests as if you're writing unit tests. Easy, fast, beautiful. https://vitest.dev/guide/browser/ **Has every single e2e test been rewritten?** No there were quite a few tests that have a lot overlap with existing or newly added tests. There were also some tests that were so heavily mocked inside and out you start to wonder what the value still is. Open to discuss which tests still need to be added. |
||
|
|
0525a2c91a
|
Fix turbo race condition (#5839)
Closes #5822 - `"^build"` makes sure dependencies of the package are build first. - Make dependencies of @uppy/components actually dependencies - Remove concurrency setting. It was too high for computers with low RAM. |
||
|
|
8d312a8551
|
Resolve @uppy/core yarn install warnings (#5826)
Closes #5774 There are still some warnings left but they are better done in their own PRs as they require bigger changes. --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> |
||
|
|
7c609a56d9
|
Use turbo for all unit tests (#5815)
- Upgrade vitest from 1.x to 3.x. - Fix some tests that now became more strict and started failing - Add test command to all packages + needed dependencies - Add turbo config for running tests Another PR will completely redo the e2e test suite. |
||
|
|
271db86ad0
|
Use turbo for building and watching concurrently (#5808)
- Add `typecheck` command to all packages. - Use turbo to build and watch concurrently with caches. - Remove root `bin/` folder with last global scripts - `bin/companion.sh` -> `@uppy/companion/start-dev` (`yarn start:companion` still works) - `bin/build-components.mjs` -> `@uppy/components/migrate.mjs` (`yarn migrate:components` can be used to run it). This only needs to be ran for new components, not changing existing ones, so that's why it's not part of the build process. turbo is smart enough to build dependencies within a package first before building the package itself (e.g if wanting to build @uppy/audio, build @uppy/utils first). Unfortunately @uppy/core is a peer dep everywhere turbo does not take it into account, yet it must be build first to avoid race conditions. Therefor I added a turbo.json to each package, which you normally never need, but this is an odd case I suppose. Other solutions ran into cyclic dep errors. Another PR would move over the test commands to turbo too. |
||
|
|
78299475ae
|
Migrate from Eslint/Prettier/Stylelint to Biome (#5794) | ||
|
|
d408570373
|
From Babel to TS (#5792) | ||
|
|
09048be58b
|
build(deps-dev): bump vitest from 1.6.0 to 1.6.1 (#5641)
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.6.0 to 1.6.1. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v1.6.1/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
c6d4cdd3f5
|
Release: uppy@4.13.1 (#5617)
| Package | Version | Package | Version | | --------------- | ------- | --------------- | ------- | | @uppy/aws-s3 | 4.2.3 | @uppy/tus | 4.2.2 | | @uppy/companion | 5.5.1 | uppy | 4.13.1 | - @uppy/tus: fix resumeFromPreviousUpload race condition (Merlijn Vos / #5616) - @uppy/aws-s3: Fixed default shouldUseMultipart (Mika Laitinen / #5613) - meta: build(deps): bump docker/build-push-action from 6.11.0 to 6.12.0 (dependabot[bot] / #5611) - @uppy/aws-s3: remove console.error (Mikael Finstad / #5607) - @uppy/companion: unify http error responses (Mikael Finstad / #5595) |
||
|
|
b8dec76494
|
@uppy/aws-s3: Fixed default shouldUseMultipart (#5613)
fixed shouldUseMultipart and added tests for defaultOptions |
||
|
|
efec2374b8
|
@uppy/aws-s3: remove console.error (#5607)
Update HTTPCommunicationQueue.ts https://github.com/transloadit/uppy/pull/5602#discussion_r1916248098 |
||
|
|
ec8a3fe8b8
|
Release: uppy@4.13.0 (#5605)
| Package | Version | Package | Version | | --------------- | ------- | --------------- | ------- | | @uppy/aws-s3 | 4.2.2 | @uppy/unsplash | 4.3.2 | | @uppy/companion | 5.5.0 | uppy | 4.13.0 | - @uppy/aws-s3: always set S3 meta to UppyFile & include key (Merlijn Vos / #5602) - @uppy/companion: fix forcePathStyle boolean conversion (Mikael Finstad / #5308) - meta: Fix Webpack CI (Merlijn Vos / #5604) - @uppy/aws-s3: allow uploads to fail/succeed independently (Merlijn Vos / #5603) - meta: Add types for css files (Merlijn Vos / #5591) - @uppy/unsplash: make utmSource optional (Merlijn Vos / #5601) - meta: build(deps): bump docker/setup-qemu-action from 3.2.0 to 3.3.0 (dependabot[bot] / #5599) - meta: build(deps): bump docker/build-push-action from 6.10.0 to 6.11.0 (dependabot[bot] / #5600) - @uppy/companion: add COMPANION_TUS_DEFERRED_UPLOAD_LENGTH (Dominik Schmidt / #5561) |
||
|
|
45aecae58d
|
@uppy/aws-s3: always set S3 meta to UppyFile & include key (#5602) | ||
|
|
7586ab4b15
|
@uppy/aws-s3: allow uploads to fail/succeed independently (#5603) | ||
|
|
16b1670add
|
Revert "@uppy/aws-s3: allow uploads to fail/succeed independently"
This reverts commit
|
||
|
|
4d7448a907
|
@uppy/aws-s3: allow uploads to fail/succeed independently | ||
|
|
e0561585eb
|
Release: uppy@4.12.2 (#5590)
| Package | Version | Package | Version | | -------------------------- | ------- | -------------------------- | ------- | | @uppy/audio | 2.1.1 | @uppy/instagram | 4.2.1 | | @uppy/aws-s3 | 4.2.1 | @uppy/onedrive | 4.2.2 | | @uppy/box | 3.2.1 | @uppy/progress-bar | 4.2.1 | | @uppy/companion-client | 4.4.1 | @uppy/provider-views | 4.4.1 | | @uppy/compressor | 2.2.1 | @uppy/react | 4.2.1 | | @uppy/core | 4.4.1 | @uppy/remote-sources | 2.3.1 | | @uppy/dashboard | 4.3.1 | @uppy/screen-capture | 4.2.1 | | @uppy/drag-drop | 4.1.1 | @uppy/status-bar | 4.1.1 | | @uppy/drop-target | 3.1.1 | @uppy/thumbnail-generator | 4.1.1 | | @uppy/dropbox | 4.2.1 | @uppy/transloadit | 4.2.1 | | @uppy/facebook | 4.2.1 | @uppy/tus | 4.2.1 | | @uppy/file-input | 4.1.1 | @uppy/unsplash | 4.3.1 | | @uppy/form | 4.1.1 | @uppy/url | 4.2.1 | | @uppy/golden-retriever | 4.1.1 | @uppy/vue | 2.1.1 | | @uppy/google-drive | 4.3.1 | @uppy/webcam | 4.1.1 | | @uppy/google-drive-picker | 0.3.2 | @uppy/webdav | 0.3.1 | | @uppy/google-photos | 0.5.1 | @uppy/xhr-upload | 4.3.2 | | @uppy/google-photos-picker | 0.3.2 | @uppy/zoom | 3.2.1 | | @uppy/image-editor | 3.3.1 | uppy | 4.12.2 | | @uppy/informer | 4.2.1 | | | - @uppy/provider-views: Import types consistently from @uppy/core (Merlijn Vos / #5589) - @uppy/status-bar: fix double upload progress (Mikael Finstad / #5587) - @uppy/provider-views: fix incorrect import (Merlijn Vos / #5588) |