mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-18 00:55:35 +00:00
738 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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> |
||
|
|
d7aaab7ad1
|
@uppy: upgrade dev deps (#6315)
addresses #6297 I'll raise another PR which would include deps which require code changes |
||
|
|
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> |
||
|
|
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> |
||
|
|
12de077e6d
|
remove @uppy/instagram (#6257)
closes #5455 , this PR removes all Instagram support from both the client and Companion server. Removed: - Instagram from @uppy/remote-sources (src, package.json, keywords) - Instagram export from uppy bundle (bundle.ts, index.ts, package.json) - Companion Instagram OAuth provider (provider/index.js, grant.js) - Companion standalone helper Instagram env vars (helper.js, env_example) - All Companion Instagram tests (providers.test.js, provider-manager.test.js, fixtures/index.js, mockserver.js) |
||
|
|
588e1c0f88
|
@uppy/core: fix stale comments (#6272)
reported in https://github.com/transloadit/uppy/issues/6270 |
||
|
|
09bf6857a1
|
build(deps): bump lodash from 4.17.21 to 4.17.23 (#6152)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
fd8f54f542
|
build(deps): bump preact from 10.26.9 to 10.26.10 (#6123)
Bumps [preact](https://github.com/preactjs/preact) from 10.26.9 to 10.26.10. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/preactjs/preact/releases">preact's releases</a>.</em></p> <blockquote> <h2>10.26.10</h2> <h2>Fixes</h2> <ul> <li>Enforce strict equality for VNode object constructors</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
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 - |
||
|
|
4817585b66
|
@uppy/companion: fix broken icons for webdav provider (#6069)
This fixes #6063. It should be merged after #6059. Icon issue was fixed but This still doesn’t fix the thumbnail preview issue, because OwnCloud and Nextcloud don’t provide enough information about their thumbnail preview endpoints. The docs aren’t very helpful: they mention how to make a `PROPFIND` request to get extra metadata (such as has_preview) [doc_ref](https://docs.nextcloud.com/server/stable/developer_manual/client_apis/WebDAV/basic.html#requesting-properties), but I couldn’t get it to work with our webdav client. Even if we did manage to obtain the thumbnail preview URL, it would be a complicated capability to add, since we’d have to handle each WebDAV server separately. That would lead to the same problems discussed here: https://github.com/transloadit/uppy/pull/6059#issuecomment-3564642795 , so I don't think we need to spend anymore time on this. **Before** <img width="1238" height="1014" alt="image" src="https://github.com/user-attachments/assets/378c8b4b-640f-4e5d-9fef-48d255f729f9" /> **After** <img width="982" height="708" alt="image" src="https://github.com/user-attachments/assets/7e20b119-c5a9-45dd-a0bd-7ddf95672137" /> |
||
|
|
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> |
||
|
|
91c6bfd7d7
|
[ci] release (#6008)
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/companion@6.1.0 ### Minor Changes - |
||
|
|
5ba2c1c8d3
|
Server side search @uppy/Companion (#6003)
## High Level View <img width="3367" height="1576" alt="Global Search (1)" src="https://github.com/user-attachments/assets/134e8658-5cbd-4816-87a1-3bd42603089d" /> - Search View replicated , through minimal components `<GlobalSearchView />` and `<SearchResultItem />` - Both components take only the minimal state needed to render the search view no dependency on PartialTree. search response from companion server is directly passed to GlobalSearchView for file state. - `#buildPath` creates missing parent nodes in partialTree (if any) and opens the folder in the normal way using a minimal wrapper over openFolder function. - Both interactions : "checking a file/folder" and "opening a folder" use the same function `#buildPath` to build the path, then use the already existing `openFolder` and `toggleCheckBox`. - Max search results: 1000. Pagination removed for simplicity (can be added later). - From a UI/UX standpoint, all functionality works as expected. - The only limitation is occasional inconsistent partial checked states when the tree isn’t fully built — unavoidable since percolateUp and percolateDown require the complete partialTree to sync state correctly. This issue isn’t critical; even in other cases, we already mark folders "checked" whereas they may be empty if not yet fetched. - I figured out it's better to just derive the checkedState from PartialTree , and then pass it to `GlobalSearchView` rather than keep it separate and then worrying about checked state syncs across two views for UI to look right. - IMO this is the most simplest approach I could come up with. without sacrificing any user functionality and it carefully reuses all the util code. --------- Co-authored-by: Merlijn Vos <merlijn@soverin.net> Co-authored-by: Mikael Finstad <finstaden@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 - |
||
|
|
923197ccec
|
@uppy/golden-retriever : emit "complete" on restore (#5956)
fixes #5929 --------- Co-authored-by: Mikael Finstad <finstaden@gmail.com> |
||
|
|
84cf20ea4c
|
Add stability warning comment to SCSS source files (#5960)
Adds a stability warning comment to the top of all `src/style.scss` files in the following Uppy packages to inform consumers that the source code and variables are not part of the stable API: - @uppy/audio - @uppy/core - @uppy/dashboard - @uppy/drag-drop - @uppy/drop-target - @uppy/image-editor - @uppy/provider-views - @uppy/screen-capture - @uppy/status-bar - @uppy/url - @uppy/webcam The comment added is: ```scss // NOTE TO CONSUMERS: The code and variables in these source files are not considered stable and can change at any time, even in minor and patch releases! ``` This warning helps clarify that while the compiled CSS output and public APIs remain stable, the internal SCSS source files, variables, and implementation details should not be relied upon by consumers as they may change without notice in any release. The changes are minimal and surgical - exactly one line added to the top of each file with no other modifications to existing code. <!-- START COPILOT CODING AGENT SUFFIX --> *This pull request was created as a result of the following prompt from Copilot chat.* > Add the following comment at the very top of each src/style.scss file in the following Uppy packages: @uppy/audio, @uppy/core, @uppy/dashboard, @uppy/drag-drop, @uppy/drop-target, @uppy/image-editor, @uppy/provider-views, @uppy/screen-capture, @uppy/status-bar, @uppy/url, @uppy/webcam. > > Comment to add: > // NOTE TO CONSUMERS: The code and variables in these source files are not considered stable and can change at any time, even in minor and patch releases! > > Ensure the comment is the first line in each file, above any existing code or imports. <!-- START COPILOT CODING AGENT TIPS --> --- ✨ Let Copilot coding agent [set things up for you](https://github.com/transloadit/uppy/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: mifi <402547+mifi@users.noreply.github.com> Co-authored-by: Prakash <qxprakash@gmail.com> Co-authored-by: Mikael Finstad <finstaden@gmail.com> |
||
|
|
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.
|
||
|
|
d4bdb463c1
|
[ci] release (#5936)
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/companion@6.0.1 ### Patch Changes - |
||
|
|
49522ec5cb
|
Remove preact/compat (#5935)
We drag it in unneccesarily in the bundle and it can cause JSX clashes in React apps with `"jsx": "preserve"` in their `tsconfig.json` (https://github.com/preactjs/preact/issues/4908) - Remove `@types/react` from companion (unused) - Fix tsconfig's for @uppy/utils (build was fine, but editor diagnostics weren't) |
||
|
|
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 - |
||
|
|
58e9025d07 | Merge branch 'main' of https://github.com/transloadit/uppy into merge_v2 | ||
|
|
d82bbdbbfe | lint fix | ||
|
|
6a33652458 | Merge branch 'main' of https://github.com/transloadit/uppy into 5.0 | ||
|
|
1c3fc13957
|
[ci] release (#5901)
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/core@4.5.3 ### Patch Changes - |
||
|
|
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> |
||
|
|
eee05db260
|
fix retry after setting missed metaFields (#5805) | ||
|
|
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 |
||
|
|
acdc683d47
|
Refactor Companion to ESM (#5803)
- convert cjs to esm - refactor from jest to vitest closes #3979 --------- Co-authored-by: Merlijn Vos <merlijn@soverin.net> |
||
|
|
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. |
||
|
|
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. |
||
|
|
33e4b37106
|
@uppy/core: resolve stale state issue in checkAndUpdateFileState (#5814) | ||
|
|
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. |
||
|
|
75c8007cf9
|
Isolate CSS building per package (#5799)
- Isolate CSS bundling per package - Fix _all_ sass deprecation warnings - Remove global scripts - Run CSS building in parallel . Is it repetitive? Yes a bit. But it's mono repo best practice and once we introduce turbo each css build step can be individually cached. That means when you edit scss in one package, only that needs to be rebuild, not the TS of that package nor any other CSS. This PR lays the groundwork for that. |
||
|
|
a848a4f695
|
Revert "@uppy/core: resolve stale state issue in checkAndUpdateFileState (#5806)"
This reverts commit
|
||
|
|
da5f24b322
|
@uppy/core: resolve stale state issue in checkAndUpdateFileState (#5806) | ||
|
|
78299475ae
|
Migrate from Eslint/Prettier/Stylelint to Biome (#5794) | ||
|
|
d408570373
|
From Babel to TS (#5792) | ||
|
|
c16657e075
|
Release: uppy@4.18.0 (#5796)
| Package | Version | Package | Version | | -------------------------- | ------- | -------------------------- | ------- | | @uppy/components | 0.2.0 | @uppy/remote-sources | 2.3.4 | | @uppy/core | 4.4.7 | @uppy/screen-capture | 4.3.1 | | @uppy/google-drive-picker | 0.3.6 | @uppy/svelte | 4.5.0 | | @uppy/google-photos-picker | 0.3.6 | @uppy/vue | 2.3.0 | | @uppy/locales | 4.6.0 | @uppy/webcam | 4.2.1 | | @uppy/provider-views | 4.4.5 | uppy | 4.18.0 | | @uppy/react | 4.4.0 | | | - meta: Remove remark reference from CI (Murderlon) - @uppy/components,@uppy/screen-capture: useScreenCapture fixes (Prakash / #5793) - examples: Add useRemoteSource (Merlijn Vos / #5778) - @uppy/components: Use webcam fixes2 (Mikael Finstad / #5791) - meta: Remove remark (Merlijn Vos / #5790) - meta: Delete old, unused files (Merlijn Vos / #5788) - meta: Sort package.json (Murderlon) - examples: Headless Hooks: Add useScreenCapture (Prakash / #5784) - @uppy/locales: Update pt_BR localization (Gabriel Pereira / #5780) - e2e: Skip for now then (Murderlon) - e2e: fixup! Fix CI for now (Murderlon) - e2e: Fix CI for now (Murderlon) - examples: Add useWebcam (Merlijn Vos / #5741) - @uppy/react,@uppy/svelte,@uppy/vue: Add useDropzone & useFileInput (Merlijn Vos / #5735) - meta: build(deps): bump base-x from 3.0.9 to 3.0.11 (dependabot[bot] / #5772) - @uppy/provider-views: improve metadata handling in Google Photos Picker (ben rosenbaum / #5769) |