mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-20 16:53:33 +00:00
422 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
dabd878b87
|
[ci] release (#6170)
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/utils@7.2.0 ### Minor Changes - |
||
|
|
29d27726c8
|
remove monkey patch in bundle.ts (#6207)
full context here : https://transloadit.slack.com/archives/C0FMW9PSB/p1771342759948189 I tested the local bundle it works as expected with the same API and 15% reduced bundle size. |
||
|
|
47879609c7
|
Export AssemblyInstructionsInput type from @uppy/transloadit (#6184)
The `AssemblyInstructionsInput` type from `@transloadit/types` is now
publicly exported from `@uppy/transloadit`, allowing consumers to type
their assembly parameters without importing from the external package.
## Changes
- Re-exported `AssemblyInstructionsInput` type in
`packages/@uppy/transloadit/src/index.ts`
## Usage
```typescript
import type { AssemblyInstructionsInput } from '@uppy/transloadit'
const params: AssemblyInstructionsInput = {
steps: {
encode: {
robot: '/video/encode',
use: ':original',
preset: 'mp4',
},
},
}
```
The type was already imported internally and aliased as
`AssemblyParameters`. This change makes it available to plugin
consumers.
<!-- START COPILOT ORIGINAL PROMPT -->
<details>
<summary>Original prompt</summary>
> Make the AssemblyInstructionsInput type available from the
@uppy/transloadit package by re-exporting it from
packages/@uppy/transloadit/src/index.ts.
>
> Background
> - The Transloadit plugin imports the type AssemblyInstructionsInput
from the external package @transloadit/types and aliases it as
AssemblyParameters in packages/@uppy/transloadit/src/index.ts.
> - Consumers of the @uppy/transloadit package need direct access to the
AssemblyInstructionsInput type but it is not currently exported from the
plugin package.
>
> Change requested
> - Add a type re-export so that consumers can import
AssemblyInstructionsInput from the transloadit plugin package, e.g.
> import type { AssemblyInstructionsInput } from '@uppy/transloadit'
>
> Files to change
> - packages/@uppy/transloadit/src/index.ts
> - Add the following export alongside the other package exports (near
the end of the module where other exports live):
>
> ```typescript name=packages/@uppy/transloadit/src/index.ts
url=https://github.com/transloadit/uppy/blob/main/packages/@uppy/transloadit/src/index.ts
> -export { COMPANION_URL, COMPANION_ALLOWED_HOSTS }
> +export { COMPANION_URL, COMPANION_ALLOWED_HOSTS }
> +
> +// Re-export type from @transloadit/types so callers can import it
from the plugin package.
> +export type { AssemblyInstructionsInput } from '@transloadit/types'
> ```
>
> Notes
> - This is a purely type-only export and should be erased at compile
time; it does not add runtime code.
> - No other behavior or API surface should change.
>
> Please create a branch, apply the change, and open a pull request with
a descriptive title and a short description of the change. Run
TypeScript build checks if available.
>
</details>
<!-- START COPILOT CODING AGENT SUFFIX -->
*This pull request was created from Copilot chat.*
>
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).
---------
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: Mikael Finstad <finstaden@gmail.com>
|
||
|
|
f6efd2ebcc
|
Fix allowMultipleUploadBatches by preventing file operations during upload (#6156)
## Implementation Plan for Transloadit allowMultipleUploadBatches Fix - [x] Explore the codebase to understand existing structure - [x] Review transloadit/src/index.ts - [x] Review existing event handlers (#onError, #onCancelAll) - [x] Review install() and uninstall() methods - [x] Understand test structure - [x] Implement the proper fix in packages/@uppy/transloadit/src/index.ts - [x] Set allowNewUpload: false at start of #prepareUpload (preprocessor) - [x] Reset allowNewUpload: true at end of #afterUpload (postprocessor) - [x] Reset allowNewUpload: true in #prepareUpload error handler - [x] Keep existing resets in #onError and #onCancelAll handlers - [x] Removed event listener approach (was causing race conditions) - [x] Update tests to match implementation - [x] Test allowNewUpload lifecycle through actual upload flow (preprocessor/postprocessor) - [x] Test allowNewUpload reset on preprocessor error - [x] Test allowNewUpload reset on error event - [x] Test allowNewUpload reset on cancel-all - [x] Remove obsolete event listener tests <!-- START COPILOT CODING AGENT TIPS --> --- 💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs. --------- 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: Mikael Finstad <finstaden@gmail.com> |
||
|
|
9d87b9eab1
|
[ci] release (#6166)
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/components@1.2.0 ### Minor Changes - |
||
|
|
37f69d088d
|
Revert "[ci] release (#6162)"
This reverts commit
|
||
|
|
671e6b26f4
|
[ci] release (#6162)
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/components@1.2.0 ### Minor Changes - |
||
|
|
c0a8776484
|
Revert "[ci] release (#6153)"
This reverts commit
|
||
|
|
0ee8fef148
|
[ci] release (#6153)
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/components@1.2.0 ### Minor Changes - |
||
|
|
680052b3ce
|
Revert "[ci] release (#6144)"
This reverts commit
|
||
|
|
e290a176e7
|
[ci] release (#6144)
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/transloadit@5.5.0 ### Minor Changes - |
||
|
|
efda84cc23
|
@uppy/transloadit: use lighter types package (#6147)
We don't need to drag in the entire SDK just for types. |
||
|
|
5c6337682e
|
[ci] release (#6087)
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/image-generator@1.0.0 ### Major Changes - |
||
|
|
5684efa64e
|
Introduce @uppy/image-generator (#6056)
Closes #5378
- Introduce `@uppy/image-generator`, a new plugin to generate images
based on a prompt via Transloadit
- until we have "golden templates" the idea is to just send
[steps](https://transloadit.com/docs/topics/templates/#overruling-templates-at-runtime)
- because we must send steps and since we must use signature
authentication for security, which is signed based on the params we
send, we can't reuse the `assemblyOptions` the consumers is already
passing to `@uppy/transloadit` (if they use that uploaders, not needed).
- Remove `SearchInput` (this component was trying to be too many things,
all with conditional boolean props, which is bad practise) in favor of
`useSearchForm` and reuse this hook in two new components `SearchView`
and `FilterInput`
- Reuse all the styles from `SearchProviderView`. This deviates from the
design in #5378. It felt too inconsistent to me to do another UI here
again. For the initial version, I think it's best to stay consistent and
then redesign with search providers taken into account too.
- Because the service is so slow, I went a bit further with the loading
state to show funny messages that rotate while loading mostly because
users will start thinking it is broken after 5 seconds while it fact we
are still loading. But open to ideas here.
This unfortunately means the integration for the consumer is not as lean
and pretty as you would hope. On the upside, it does give them complete
freedom.
```ts
.use(ImageGenerator, {
assemblyOptions: async (prompt) => {
const res = await fetch(`/assembly-options?prompt=${encodeURIComponent(prompt)}`)
return res.json()
}
})
```
on the consumer's server:
```ts
import crypto from 'node:crypto'
const utcDateString = (ms) => {
return new Date(ms)
.toISOString()
.replace(/-/g, '/')
.replace(/T/, ' ')
.replace(/\.\d+Z$/, '+00:00')
}
// expire 1 hour from now (this must be milliseconds)
const expires = utcDateString(Date.now() + 1 * 60 * 60 * 1000)
const authKey = 'YOUR_TRANSLOADIT_KEY'
const authSecret = 'YOUR_TRANSLOADIT_SECRET'
const params = JSON.stringify({
auth: {
key: authKey,
expires,
},
// can not contain any more steps, the only step must be /image/generate
steps: {
generated_image: { // can be named different
robot: '/image/generate',
result: true, // mandatory
aspect_ratio: '2:3', // up to them
model: 'flux-1.1-pro-ultra', // up to them
prompt, // mandatory
num_outputs: 2, // up to them
},
},
})
const signatureBytes = crypto.createHmac('sha384', authSecret).update(Buffer.from(params, 'utf-8'))
// The final signature needs the hash name in front, so
// the hashing algorithm can be updated in a backwards-compatible
// way when old algorithms become insecure.
const signature = `sha384:${signatureBytes.digest('hex')}`
// respond with { params, signature } JSON to the client
```
https://github.com/user-attachments/assets/9217e457-b38b-48ac-81f0-37a417309e98
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Adds AI image generation plugin using Transloadit, exports low-level
Transloadit APIs, and replaces SearchInput with new
FilterInput/SearchView + useSearchForm across provider views.
>
> - **New plugin: `@uppy/image-generator`**
> - UI plugin to generate images from a prompt via Transloadit
(`src/index.tsx`, styles, locale, build configs).
> - Integrated into dev Dashboard and included in `uppy` bundle and
global styles.
> - **Provider Views refactor**
> - Remove `SearchInput`; introduce `useSearchForm`, `SearchView`, and
`FilterInput` components.
> - Update `ProviderView`, `SearchProviderView`, and `Webdav` to use new
components; export them from `@uppy/provider-views`.
> - **Transloadit updates**
> - Export `Assembly`, `AssemblyError`, and `Client` from
`@uppy/transloadit`.
> - Minor internal change: normalize `assemblyOptions.fields`.
> - **Locales**
> - Add strings for image generation and minor additions (e.g.,
`chooseFiles`).
> - Ensure locales build depends on `@uppy/image-generator`.
> - **Build config**
> - Turborepo: add `uppy#build:css` and hook `image-generator` into
locales build.
> - **Changesets**
> - `@uppy/image-generator` major; `@uppy/transloadit` minor;
`@uppy/locales` and `uppy` minor; `@uppy/provider-views` and
`@uppy/webdav` patch.
>
> <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 - |
||
|
|
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 |
||
|
|
76abdfb325
|
[ci] release (#6029)
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@1.1.0 ### Minor Changes - |
||
|
|
72d2d68ea3
|
Fix various deps and peer deps in packages (#6030)
**Fixes**
- `@uppy/components` incorrectly had a lot of packages in `dependencies`
while they should be `peerDependencies`. Also removed `remote-sources`
completely as this drags in a lot of plugins and we don't even need it
there.
- `@uppy/{react,vue,svelte}` now has to have the same `peerDependencies`
as `components` as the requirement has been moved up. We also mark them
as optional, they are only needed if you use a hook such as `useWebcam`
needing `@uppy/webcam`.
- Remove `companion-client` and `provider-views` from `transloadit`.
Those are never used by the package.
- Remove `@uppy/utils` from `@uppy/angular` and `@uppy/react`, we can
just use imports from `core`
- Place `@uppy/status-bar` back in peer deps. This is critical but
forgotten when status bar was put back inside frameworks.
**Implications**
- Moving peer deps to deps in `@uppy/components` now requires people to
install these dependencies. However, they kind of had to anyway before
as we require people to install the plugin on uppy (`.use(Webcam')`) if
you want to use `useWebcam` and if you try to import a dep you did not
install they would have gotten an error already.
- Note: this is not the same situation as with importing dashboard
component from @uppy/react which causes a runtime crash because
@uppy/dashboard is missing. In this case we only depend on _types_, so
we don't have this problem.
|
||
|
|
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> |
||
|
|
b7605df940
|
[ci] release (#6002)
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/transloadit@5.1.2 ### Patch Changes - |
||
|
|
201c42294d
|
@uppy/transloadit: move transloadit into dependencies (#6001)
Fixes #6000 |
||
|
|
98d8d1d0a1
|
[ci] release (#5997)
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/transloadit@5.1.1 ### Patch Changes - |
||
|
|
bc2d0ed235
|
Use assembly_ssl_url for final status fetch (#5996)
## Summary - ensure the final Transloadit status fetch prefers `assembly_ssl_url` - add a changeset preparing the patch release ## Testing - yarn workspace @uppy/transloadit test |
||
|
|
5bf7520dfa
|
[ci] release (#5988)
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/transloadit@5.1.0 ### Minor Changes - |
||
|
|
6f764122a9
|
Re-use types from the Transloadit node-sdk (#5992)
The schemas and types that we have in the Transloadit Node.js SDK v4 are used in our API's system tests. We've also ran hundreds of thousands of Assemblies through them, ever loosening them, until they all fit. This means the schemas are fairly wide, but model the reality of our 15 year old API. In the future we will make schema failures in the API fatal (as already is the case with system tests), and we don't want to break production traffic when we do. So we accept wider schemas than are beautiful, and once the schemas control what is allowed in all places, we gradually evolve the API and schemas towards being more pretty in lockstep. More on this in https://transloadit.com/blog/2025/09/nodejs-sdk-v4/#our-approach-to-type-retrofitting For uppy this means, we'll need a few more guards than we had with our handrolled types, that actually assumed things that turned out to be not true in all cases. Not all Assembly status responses have an id or a url for one example. There are for instance particular errors (by Node, Nginx, Haproxy) that would not return those. The added guards will ensure we don't break deeply inside customer code. This PR was completely written by gpt-5-codex, which means it was faster and of higher quality than if I had handrolled it as a founder unfamiliar with this codebase, but despite of that, please still review my contribution with as much care as you would normally :) --------- Co-authored-by: Mikael Finstad <finstaden@gmail.com> Co-authored-by: Merlijn Vos <merlijn@soverin.net> |
||
|
|
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 - |
||
|
|
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> |
||
|
|
d31c90e443
|
Run biome check on main (#5896)
this time on main closes #5891 also: fix a11y tabIndex (key event handler) |
||
|
|
bbfbbbea35
|
[ci] release (#5884)
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/locales@4.8.4 ### Patch Changes - |
||
|
|
ee0b2fc146
|
@uppy/transloadit: add user_meta type (#5881)
Closes #5850 |
||
|
|
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. |
||
|
|
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) | ||
|
|
cb1b753d8a
|
Release: uppy@4.14.0 (#5712)
| Package | Version | Package | Version | | -------------------------- | ------- | -------------------------- | ------- | | @uppy/audio | 2.1.2 | @uppy/locales | 4.5.2 | | @uppy/box | 3.2.2 | @uppy/onedrive | 4.2.3 | | @uppy/companion | 5.6.0 | @uppy/react | 4.2.3 | | @uppy/core | 4.4.4 | @uppy/remote-sources | 2.3.2 | | @uppy/dashboard | 4.3.3 | @uppy/screen-capture | 4.2.2 | | @uppy/drag-drop | 4.1.2 | @uppy/status-bar | 4.1.3 | | @uppy/dropbox | 4.2.2 | @uppy/transloadit | 4.2.2 | | @uppy/facebook | 4.2.2 | @uppy/unsplash | 4.3.3 | | @uppy/file-input | 4.1.2 | @uppy/url | 4.2.3 | | @uppy/google-drive | 4.3.2 | @uppy/utils | 6.1.3 | | @uppy/google-drive-picker | 0.3.4 | @uppy/webcam | 4.1.2 | | @uppy/google-photos-picker | 0.3.4 | @uppy/webdav | 0.3.2 | | @uppy/image-editor | 3.3.2 | @uppy/zoom | 3.2.2 | | @uppy/instagram | 4.2.2 | uppy | 4.14.0 | - @uppy/core: dry retryAll() and upload() (Mikael Finstad / #5691) - @uppy/angular: Revert "Support Angular 19" (Mikael Finstad / #5710) - @uppy/angular: Support Angular 19 (Arnaud Flaesch / #5709) - @uppy/companion: implement dropbox business teams (Mikael Finstad / #5708) - @uppy/utils: add msg mimetype (Merlijn Vos / #5699) - @uppy/core: fix locale type for plugins (Merlijn Vos / #5700) - examples: build(deps-dev): bump vite from 5.4.14 to 5.4.15 (dependabot[bot] / #5703) - @uppy/locales: Update nb_NO.ts (Tore Sinding Bekkedal / #5678) - meta: build(deps): bump docker/login-action from 3.3.0 to 3.4.0 (dependabot[bot] / #5689) - examples: @uppy-example/aws-nodejs: fix fileType not present in S3 objects (Prakash / #5680) - @uppy/core: fix events when retrying with upload() (Prakash / #5696) - meta: Fix locales building (Mikael Finstad / #5693) - @uppy/google-photos: remove google photos 😢 (Mikael Finstad / #5690) - @uppy/locales: Update cs_CZ.ts (David Petrásek / #5658) |