Skip to content

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Oct 14, 2025

This PR was opened by the Changesets release 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/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined). This means we have to add null checks in some packages
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
  • Updated dependencies [0c16fe4]
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

  • 6a60ee5: Reject request early instead of crashing on missing filename for /s3/multipart and /s3/params endpoints

@uppy/[email protected]

Patch Changes

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined). This means we have to add null checks in some packages
    • Move restore-confirmed from onUploadStart event listener to startUpload, else it would cause restore-confirmed to be triggered even if there is no recoveredState to recover
  • Updated dependencies [0c16fe4]
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined). This means we have to add null checks in some packages
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined)
    • Introduce new field progress.complete: if there is a post-processing step, set it to true once post processing is complete. If not, set it to true once upload has finished.
    • Throw a proper Nonexistent upload error message if trying to upload a non-existent upload, instead of TypeError
    • Rewrite Uppy.upload() - this fixes two bugs:
      1. No more duplicate emit call when this.#restricter.validateMinNumberOfFiles throws (#informAndEmit and this.emit('error'))
      2. 'restriction-failed' now also gets correctly called when checkRequiredMetaFields check errors.
    • Don't re-upload completed files Uppy + Golden Retriever + aws-s3: completed files handled incorrectly on restore #5930
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
    • Remove TagFile type - Use UppyFile instead.
    • Make name required on UppyFile (it is in reality always set)
    • Fix bug: RestrictionError sometimes thrown with a file property that was not a UppyFile, but a File. This would happen if someone passed a File instead of a MinimalRequiredUppyFile into core.addFile (which is valid to do according to our API)
    • Improve some log messages
    • Simplify Uppy postprocess-complete handler
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Internal inter-package breaking change: Remove hacky internal event restore:get-data that would send a function as its event data (to golden retriever for it to call the function to receive data from it). Add instead restore:plugin-data-changed that publishes data when it changes. This means that old versions of @uppy/transloadit are not compatible with newest version of @uppy/golden-retriever (and vice versa).
    • Large internal refactor of Golden Retriever
    • Use state-update handler to trigger save to local storage and blobs, instead of doing it in various other event handlers (complete, upload-success, file-removed, file-editor:complete, file-added). this way we don't miss any state updates. also simplifies the code a lot. this fixes:
      • Always store blob when it changes - this fixes the bug when using the compressor plugin, it would store the uncompressed original blob (like when using image editor plugin)
    • Add back throttle: but throttling must happen on the actual local storage save calls inside MetaDataStore, not the handleStateUpdate function, so we don't miss any state updates (and end up with inconsistent data). Note that there is still a race condition where if the user removes a file (causing the blob to be deleted), then quickly reloads the page before the throttled save has happened, the file will be restored but the blob will be missing, so it will become a ghost. this is probably not a big problem though. need to disable throttling when running tests (add it as an option to the plugin)
    • Fix implicit any types in #restore filesWithBlobs
    • Don't error when saving indexedDB file that already exists (make it idempotent)
    • Fix bug: Golden Retriever was not deleting from IndexedDbStore if ServiceWorkerStore exists, causing a storage leak
    • Remove unused Golden Retriever cleanup.ts
    • Clean up stored files on complete event only if all files succeeded (no failed files). this allows the user to retry failed files if they get interrupted - fixes Uppy + AWS S3: 'complete' event emitted when uploads have failed causes issues with Golden Retriever #5927, closes fix: @uppy/retriever state reset on reload  #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. Uppy + Golden Retriever + aws-s3: completed files handled incorrectly on restore #5930
    • Add upload-success event handler handleFileUploaded: this handler will remove blobs of files that have successfully uploaded. this prevents leaking blobs when an upload with multiple files gets interrupted (but some files have uploaded successfully), because #handleUploadComplete (which normally does the cleanup) doesn't get called untill all files are complete.
    • Fix file-editor:complete potential race condition: it would delete and add at the same time (without first awaiting delete operation)
    • Fix: Don't double setState when restoring
    • Improve types in golden retriever and MetaDataStore
    • MetaDataStore: move old state expiry to from constructor to load()
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined). This means we have to add null checks in some packages
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined). This means we have to add null checks in some packages
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Internal inter-package breaking change: Remove hacky internal event restore:get-data that would send a function as its event data (to golden retriever for it to call the function to receive data from it). Add instead restore:plugin-data-changed that publishes data when it changes. This means that old versions of @uppy/transloadit are not compatible with newest version of @uppy/golden-retriever (and vice versa).
    • Minor internal refactoring in order to make sure that we will always emit restore:plugin-data-changed whenever assembly state changes
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
  • Updated dependencies [0c16fe4]
  • Updated dependencies [0c16fe4]
  • Updated dependencies [0c16fe4]
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined). This means we have to add null checks in some packages
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
  • Updated dependencies [0c16fe4]
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined). This means we have to add null checks in some packages
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
  • Updated dependencies [0c16fe4]
  • Updated dependencies [0c16fe4]

@uppy/[email protected]

Patch Changes

  • 0c16fe4: - Make file.data nullable - Because for ghosts it will be undefined and we don't have any type to distinguish ghosts from other (local) files. This caused a crash, because we didn't check for undefined everywhere (when trying to store a blob that was undefined)
    • Introduce new field progress.complete: if there is a post-processing step, set it to true once post processing is complete. If not, set it to true once upload has finished.
    • Throw a proper Nonexistent upload error message if trying to upload a non-existent upload, instead of TypeError
    • Rewrite Uppy.upload() - this fixes two bugs:
      1. No more duplicate emit call when this.#restricter.validateMinNumberOfFiles throws (#informAndEmit and this.emit('error'))
      2. 'restriction-failed' now also gets correctly called when checkRequiredMetaFields check errors.
    • Don't re-upload completed files Uppy + Golden Retriever + aws-s3: completed files handled incorrectly on restore #5930
    • Split UppyFile into two intefaces distinguished by the isRemote boolean:
      • LocalUppyFile
      • RemoteUppyFile
    • Remove TagFile type - Use UppyFile instead.
    • Make name required on UppyFile (it is in reality always set)
    • Fix bug: RestrictionError sometimes thrown with a file property that was not a UppyFile, but a File. This would happen if someone passed a File instead of a MinimalRequiredUppyFile into core.addFile (which is valid to do according to our API)
    • Improve some log messages
    • Simplify Uppy postprocess-complete handler

[email protected]

Patch Changes

@github-actions github-actions bot force-pushed the changeset-release/main branch from 4525991 to f65625e Compare October 17, 2025 14:12
@socket-security
Copy link

socket-security bot commented Oct 17, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedtailwindcss@​4.1.141001008498100

View full report

@socket-security
Copy link

socket-security bot commented Oct 17, 2025

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@github-actions github-actions bot force-pushed the changeset-release/main branch from f65625e to 7719f9c Compare October 17, 2025 15:20
@Murderlon Murderlon merged commit 2c4727e into main Oct 17, 2025
2 checks passed
@Murderlon Murderlon deleted the changeset-release/main branch October 17, 2025 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Uppy + AWS S3: 'complete' event emitted when uploads have failed causes issues with Golden Retriever

2 participants