Merge branch 'main' into ai-image-generator

* main:
  [ci] release (#6060)
  build(deps): bump body-parser from 1.20.3 to 1.20.4 (#6070)
  build(deps): bump express from 4.19.2 to 4.22.0 (#6079)
  build(deps): bump @angular/common from 19.2.14 to 19.2.16 (#6072)
  build(deps): bump validator from 13.12.0 to 13.15.20 (#6041)
  build(deps): bump js-yaml from 3.14.1 to 3.14.2 (#6067)
  build(deps): bump node-forge from 1.3.1 to 1.3.2 (#6071)
  build(deps): bump docker/metadata-action from 5.9.0 to 5.10.0 (#6077)
  build(deps): bump @angular/compiler from 19.2.14 to 19.2.17 (#6078)
  Fix changeset
  move golden retriever clear files logic (#6076)
  allow selecting folders (#6074)
  @uppy/companion: fix broken icons for webdav provider (#6069)
This commit is contained in:
Murderlon 2025-12-02 10:10:58 +01:00
commit f3e284a379
No known key found for this signature in database
GPG key ID: 1FF861FF1DDBB953
97 changed files with 975 additions and 242 deletions

View file

@ -1,5 +0,0 @@
---
"@uppy/locales": patch
---
Improve zh-CN and zh-TW locale

View file

@ -1,5 +0,0 @@
---
"@uppy/locales": patch
---
Improve Dutch locale

View file

@ -1,36 +0,0 @@
---
"@uppy/google-photos-picker": minor
"@uppy/google-drive-picker": minor
"@uppy/thumbnail-generator": minor
"@uppy/golden-retriever": minor
"@uppy/provider-views": minor
"@uppy/remote-sources": minor
"@uppy/screen-capture": minor
"@uppy/google-drive": minor
"@uppy/image-editor": minor
"@uppy/drop-target": minor
"@uppy/transloadit": minor
"@uppy/compressor": minor
"@uppy/status-bar": minor
"@uppy/xhr-upload": minor
"@uppy/dashboard": minor
"@uppy/drag-drop": minor
"@uppy/instagram": minor
"@uppy/facebook": minor
"@uppy/onedrive": minor
"@uppy/unsplash": minor
"@uppy/dropbox": minor
"@uppy/aws-s3": minor
"@uppy/webcam": minor
"@uppy/webdav": minor
"@uppy/audio": minor
"@uppy/core": minor
"@uppy/form": minor
"@uppy/zoom": minor
"@uppy/box": minor
"@uppy/tus": minor
"@uppy/url": minor
---
- Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()

View file

@ -1,9 +0,0 @@
---
"@uppy/aws-s3": patch
"@uppy/core": patch
"@uppy/tus": patch
"@uppy/utils": patch
"@uppy/xhr-upload": patch
---
Fix: Move completed uploads exclusion logic into uploaders. This fixes the problem where postprocessors would not run for already uploaded files.

View file

@ -49,7 +49,7 @@ jobs:
uses: actions/checkout@v6
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
with:
images: transloadit/companion
tags: |

View file

@ -93,7 +93,7 @@ jobs:
uses: actions/checkout@v6
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
with:
images: transloadit/companion
tags: |

View file

@ -2,7 +2,7 @@
Hi, thanks for trying out the bundled version of the Uppy File Uploader. You can
use this from a CDN
(`<script src="https://releases.transloadit.com/uppy/v5.1.11/uppy.min.js"></script>`)
(`<script src="https://releases.transloadit.com/uppy/v5.1.12/uppy.min.js"></script>`)
or bundle it with your webapp.
Note that the recommended way to use Uppy is to install it with yarn/npm and use

View file

@ -103,7 +103,7 @@ npm install @uppy/core @uppy/dashboard @uppy/tus
```
Add CSS
[uppy.min.css](https://releases.transloadit.com/uppy/v5.1.11/uppy.min.css),
[uppy.min.css](https://releases.transloadit.com/uppy/v5.1.12/uppy.min.css),
either to your HTML pages `<head>` or include in JS, if your bundler of choice
supports it.
@ -117,7 +117,7 @@ CDN. In that case `Uppy` will attach itself to the global `window.Uppy` object.
```html
<!-- 1. Add CSS to `<head>` -->
<link
href="https://releases.transloadit.com/uppy/v5.1.11/uppy.min.css"
href="https://releases.transloadit.com/uppy/v5.1.12/uppy.min.css"
rel="stylesheet"
/>
@ -128,7 +128,7 @@ CDN. In that case `Uppy` will attach itself to the global `window.Uppy` object.
Uppy,
Dashboard,
Tus,
} from 'https://releases.transloadit.com/uppy/v5.1.11/uppy.min.mjs'
} from 'https://releases.transloadit.com/uppy/v5.1.12/uppy.min.mjs'
const uppy = new Uppy()
uppy.use(Dashboard, { target: '#files-drag-drop' })

View file

@ -10,8 +10,8 @@
},
"private": true,
"dependencies": {
"@angular/common": "^19.2.0",
"@angular/compiler": "^19.2.0",
"@angular/common": "^19.2.16",
"@angular/compiler": "^19.2.17",
"@angular/core": "^19.2.0",
"@angular/forms": "^19.2.0",
"@angular/platform-browser": "^19.2.0",

View file

@ -11,11 +11,11 @@
},
"devDependencies": {
"@uppy/companion": "workspace:*",
"body-parser": "^1.20.3",
"body-parser": "^1.20.4",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"dotenv": "^16.0.1",
"express": "^4.19.2",
"express": "^4.22.0",
"express-session": "^1.17.3",
"npm-run-all": "^4.1.5",
"vite": "^7.1.11"

View file

@ -13,8 +13,8 @@
"@aws-sdk/client-s3": "^3.338.0",
"@aws-sdk/client-sts": "^3.338.0",
"@aws-sdk/s3-request-presigner": "^3.338.0",
"body-parser": "^1.20.3",
"body-parser": "^1.20.4",
"dotenv": "^16.0.0",
"express": "^4.19.2"
"express": "^4.22.0"
}
}

View file

@ -17,9 +17,9 @@
},
"devDependencies": {
"@uppy/companion": "workspace:*",
"body-parser": "^1.20.3",
"body-parser": "^1.20.4",
"dotenv": "^16.0.1",
"express": "^4.19.2",
"express": "^4.22.0",
"express-session": "^1.15.6",
"npm-run-all": "^4.1.2",
"vite": "^7.1.11"

View file

@ -6,12 +6,12 @@
"@uppy/aws-s3": "workspace:*",
"@uppy/core": "workspace:*",
"@uppy/dashboard": "workspace:*",
"body-parser": "^1.20.3",
"body-parser": "^1.20.4",
"cors": "^2.8.5"
},
"devDependencies": {
"dotenv": "^16.0.1",
"express": "^4.19.2",
"express": "^4.22.0",
"vite": "^7.1.11"
},
"private": true,

View file

@ -3,8 +3,8 @@
"version": "0.0.0",
"dependencies": {
"@uppy/companion": "workspace:*",
"body-parser": "^1.20.3",
"express": "^4.19.2",
"body-parser": "^1.20.4",
"express": "^4.22.0",
"express-session": "^1.15.6",
"light-server": "^2.4.0"
},

View file

@ -20,7 +20,7 @@
"@uppy/transloadit": "workspace:*",
"@uppy/tus": "workspace:*",
"@uppy/xhr-upload": "workspace:*",
"express": "^4.19.2",
"express": "^4.22.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router": "latest"

View file

@ -15,7 +15,7 @@
"@uppy/remote-sources": "workspace:*",
"@uppy/transloadit": "workspace:*",
"@uppy/webcam": "workspace:*",
"express": "^4.19.2",
"express": "^4.22.0",
"he": "^1.2.0"
},
"private": true,

View file

@ -6,7 +6,7 @@
"@uppy/dashboard": "workspace:*",
"@uppy/xhr-upload": "workspace:*",
"cors": "^2.8.5",
"express": "^4.19.2",
"express": "^4.22.0",
"multer": "^2.0.2"
},
"devDependencies": {

View file

@ -10,7 +10,7 @@
"private": true,
"dependencies": {
"@angular/animations": "^19.0.0",
"@angular/common": "^19.0.0",
"@angular/common": "^19.2.16",
"@angular/compiler": "^19.0.0",
"@angular/core": "^19.0.0",
"@angular/forms": "^19.0.0",

View file

@ -1,5 +1,20 @@
# @uppy/audio
## 3.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 3.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/audio",
"description": "Uppy plugin that records audio using the devices microphone.",
"version": "3.0.1",
"version": "3.1.0",
"license": "MIT",
"style": "dist/style.min.css",
"keywords": [

View file

@ -1,5 +1,21 @@
# @uppy/aws-s3
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- ac12f35: Fix: Move completed uploads exclusion logic into uploaders. This fixes the problem where postprocessors would not run for already uploaded files.
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/aws-s3",
"description": "Upload to Amazon S3 with Uppy",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,22 @@
# @uppy/box
## 4.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 4.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/box",
"description": "Import files from Box, into Uppy.",
"version": "4.0.1",
"version": "4.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,11 @@
# @uppy/companion
## 6.2.1
### Patch Changes
- 4817585: added icon to webdav provider, add css to truncate large file names
## 6.2.0
### Minor Changes

View file

@ -1,6 +1,6 @@
{
"name": "@uppy/companion",
"version": "6.2.0",
"version": "6.2.1",
"description": "OAuth helper and remote fetcher for Uppy's (https://uppy.io) extensible file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Dropbox and Google Drive, S3 and more :dog:",
"types": "lib/companion.d.ts",
"author": "Transloadit.com",
@ -39,7 +39,7 @@
"@aws-sdk/lib-storage": "^3.338.0",
"@aws-sdk/s3-presigned-post": "^3.338.0",
"@aws-sdk/s3-request-presigner": "^3.338.0",
"body-parser": "1.20.3",
"body-parser": "1.20.4",
"common-tags": "1.8.2",
"connect-redis": "7.1.1",
"content-disposition": "^0.5.4",
@ -72,7 +72,7 @@
"serialize-javascript": "^6.0.0",
"supports-color": "8.x",
"tus-js-client": "^4.1.0",
"validator": "^13.0.0",
"validator": "^13.15.20",
"webdav": "^5.8.0",
"ws": "8.17.1"
},

View file

@ -115,8 +115,17 @@ export default class WebdavProvider extends Provider {
// ignore invalid date from server
}
// Determine icon based on type and MIME type
let icon = 'file'
if (isFolder) {
icon = 'folder'
} else if (item.mime?.startsWith('video/')) {
icon = 'video'
}
data.items.push({
isFolder,
icon,
id: requestPath,
name: item.basename,
modifiedDate,

View file

@ -1,5 +1,20 @@
# @uppy/compressor
## 3.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 3.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/compressor",
"description": "Uppy plugin that compresses images before upload, saving up to 60% in size",
"version": "3.0.2",
"version": "3.1.0",
"license": "MIT",
"keywords": [
"file uploader",

View file

@ -1,5 +1,19 @@
# @uppy/core
## 5.2.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- ac12f35: Fix: Move completed uploads exclusion logic into uploaders. This fixes the problem where postprocessors would not run for already uploaded files.
- 4817585: added icon to webdav provider, add css to truncate large file names
- Updated dependencies [ac12f35]
- @uppy/utils@7.1.4
## 5.1.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/core",
"description": "Core module for the extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:",
"version": "5.1.1",
"version": "5.2.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -49,6 +49,12 @@
text-align: right;
}
.uppy-truncate-text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
// Inputs
.uppy-c-textInput {

View file

@ -1,5 +1,24 @@
# @uppy/dashboard
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- cc3ff31: Move golden retriever clear files logic to the restore function. This prevents race condition bugs when storing state.
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/thumbnail-generator@5.1.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.4
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/dashboard",
"description": "Universal UI plugin for Uppy.",
"version": "5.0.4",
"version": "5.1.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -242,7 +242,7 @@ export default function Dashboard<M extends Meta, B extends Body>(
{showFileList && <PanelTopBar {...props} />}
{numberOfFilesForRecovery && (
{numberOfFilesForRecovery != null && numberOfFilesForRecovery > 0 && (
<div className="uppy-Dashboard-serviceMsg">
<svg
className="uppy-Dashboard-serviceMsg-icon"

View file

@ -1,5 +1,20 @@
# @uppy/drag-drop
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/drag-drop",
"description": "Droppable zone UI for Uppy. Drag and drop files into it to upload.",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -1,5 +1,20 @@
# @uppy/drop-target
## 4.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 4.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/drop-target",
"description": "Lets your users drag and drop files on a DOM element",
"version": "4.0.1",
"version": "4.1.0",
"license": "MIT",
"type": "module",
"sideEffects": [

View file

@ -1,5 +1,22 @@
# @uppy/dropbox
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/dropbox",
"description": "Import files from Dropbox, into Uppy.",
"version": "5.0.1",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,22 @@
# @uppy/facebook
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/facebook",
"description": "Import files from Facebook, into Uppy.",
"version": "5.0.1",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,20 @@
# @uppy/form
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/form",
"description": "Connect Uppy to an existing HTML <form>.",
"version": "5.0.1",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,21 @@
# @uppy/golden-retriever
## 5.2.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- cc3ff31: Move golden retriever clear files logic to the restore function. This prevents race condition bugs when storing state.
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.1.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/golden-retriever",
"description": "The GoldenRetriever Uppy plugin saves selected files in browser cache to seamlessly resume uploding after browser crash or accidentally closed tab",
"version": "5.1.1",
"version": "5.2.0",
"license": "MIT",
"type": "module",
"sideEffects": [

View file

@ -96,16 +96,33 @@ export default class GoldenRetriever<
}
const currentUploads = recoveredState.currentUploads || {}
const files = recoveredState.files || {}
this.uppy.log(
`[GoldenRetriever] Recovered ${Object.keys(currentUploads).length} current uploads and ${Object.keys(files).length} files from Local Storage`,
const recoveredFiles = Object.entries(recoveredState.files || {})
// If *all* files have completed *successfully*, ignore the whole stored restoration state.
// This makes sure that if the upload was only partially successful, the user can still restore and upload the remaining files.
// Here are some scenarios we have to take into account:
// todo (make unit/e2e tests for these scenarios)
// - the user removes all uploads one by one (once all are removed, we should not restore anything after reloading page)
// - the user uploads files with Transloadit plugin enabled, uploads complete successfully, and the user refreshes the page while the assembly is still running. golden retriever should then restore the files, and the ongoing assembly should progress
// - once a file finishes uploading successfully, it should have it its blob removed (even if a post processing step remains). if not successful upload it should not be removed
const files = Object.fromEntries(
recoveredFiles.every(([, f]) => f.progress.complete && !f.error)
? []
: recoveredFiles,
)
if (Object.keys(recoveredState.files).length <= 0) {
const filesEntries = Object.entries(files)
this.uppy.log(
`[GoldenRetriever] Recovered ${Object.keys(currentUploads).length} current uploads and ${filesEntries.length} files from Local Storage`,
)
const hasFiles = filesEntries.length > 0
if (!hasFiles) {
this.uppy.log(
'[GoldenRetriever] No files need to be loaded, restored only processing state...',
)
return
}
const [serviceWorkerBlobs, indexedDbBlobs] = await Promise.all([
@ -122,43 +139,41 @@ export default class GoldenRetriever<
UppyFileId,
UppyFile<M, B>
> = Object.fromEntries(
Object.entries(files).map(
([fileID, file]): [UppyFileId, UppyFile<M, B>] => {
if (file.isRemote) {
return [
fileID,
filesEntries.map(([fileID, file]): [UppyFileId, UppyFile<M, B>] => {
if (file.isRemote) {
return [
fileID,
{
...file,
isRestored: true,
data: { size: null }, // todo shouldn't we save/restore the size too?
},
]
}
const blob: Blob | undefined = blobs[fileID]
return [
fileID,
!file.progress.uploadComplete && blob == null
? // if we dont have the blob (and the file is not completed uploading), mark the file as a ghost
{
...file,
isRestored: true,
data: { size: null }, // todo shouldn't we save/restore the size too?
isGhost: true,
data: undefined,
}
: {
...file,
isRestored: true,
isGhost: false,
data: blob,
},
]
}
const blob: Blob | undefined = blobs[fileID]
return [
fileID,
!file.progress.uploadComplete && blob == null
? // if we dont have the blob (and the file is not completed uploading), mark the file as a ghost
{
...file,
isRestored: true,
isGhost: true,
data: undefined,
}
: {
...file,
isRestored: true,
isGhost: false,
data: blob,
},
]
},
),
]
}),
)
this.uppy.setState({
recoveredState,
recoveredState: hasFiles ? recoveredState : null, // recoveredState is used to control the UI (to show the "recovered" state), only set it if we actually have files
currentUploads,
files: filesWithBlobs,
})
@ -315,13 +330,6 @@ export default class GoldenRetriever<
}
if (nextState.files !== prevState.files) {
// If all files have completed *successfully*, remove the whole stored restoration state.
// This makes sure that if the upload was only partially successful, the user can still restore and upload the remaining files.
// Here are some scenarios we have to take into account:
// todo (make unit/e2e tests for these scenarios)
// - the user removes all uploads one by one (once all are removed, we should not restore anything after reloading page)
// - the user uploads files with Transloadit plugin enabled, uploads complete successfully, and the user refreshes the page while the assembly is still running. golden retriever should then restore the files, and the ongoing assembly should progress
// - once a file finishes uploading successfully, it should have it its blob removed (even if a post processing step remains). if not successful upload it should not be removed
if (
Object.values(prevState.files).some((f) => !f.progress.complete) &&
(Object.values(nextState.files).length === 0 ||
@ -333,18 +341,17 @@ export default class GoldenRetriever<
`[GoldenRetriever] All files have been uploaded and processed successfully, clearing recovery state`,
)
this.uppy.setState({ recoveredState: null })
this.#metaDataStore.set(null)
} else {
// We dont want to store file.data on local files, because the actual blob is too large and should therefore stored separately,
// and we want to avoid having weird properties in the serialized object (like file.preview).
const filesWithoutBlobs = Object.fromEntries(
Object.entries(nextState.files).map(
([fileID, { data, preview, ...fileInfo }]) => [fileID, fileInfo],
),
)
this.#patchMetadata({ files: filesWithoutBlobs })
}
// We dont want to store file.data on local files, because the actual blob is too large and should therefore stored separately,
// and we want to avoid having weird properties in the serialized object (like file.preview).
const filesWithoutBlobs = Object.fromEntries(
Object.entries(nextState.files).map(
([fileID, { data, preview, ...fileInfo }]) => [fileID, fileInfo],
),
)
this.#patchMetadata({ files: filesWithoutBlobs })
const addedFiles = Object.values(nextState.files).filter(
(nextFile) => prevState.files[nextFile.id] == null,
)

View file

@ -1,5 +1,23 @@
# @uppy/google-drive-picker
## 1.1.0
### Minor Changes
- e661348: Allow selecting folders with Google Drive Picker. They will be recursively resolved.
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 1.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/google-drive-picker",
"description": "The Google Drive Picker plugin for Uppy lets users import files from their Google Drive account",
"version": "1.0.1",
"version": "1.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,22 @@
# @uppy/google-drive
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/google-drive",
"description": "The Google Drive plugin for Uppy lets users import files from their Google Drive account",
"version": "5.0.1",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,22 @@
# @uppy/google-photos-picker
## 1.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 1.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/google-photos-picker",
"description": "The Google Photos Picker plugin for Uppy lets users import files from their Google Photos account",
"version": "1.0.1",
"version": "1.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,20 @@
# @uppy/image-editor
## 4.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 4.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/image-editor",
"description": "Image editor and cropping UI",
"version": "4.0.2",
"version": "4.1.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -1,5 +1,22 @@
# @uppy/instagram
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/instagram",
"description": "Import photos and videos from Instagram, into Uppy.",
"version": "5.0.1",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,14 @@
# @uppy/locales
## 5.0.1
### Patch Changes
- c3c16ae: Improve zh-CN and zh-TW locale
- 8744c4d: Improve Dutch locale
- Updated dependencies [ac12f35]
- @uppy/utils@7.1.4
## 5.0.0
### Major Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/locales",
"description": "Uppy language packs",
"version": "5.0.0",
"version": "5.0.1",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,22 @@
# @uppy/onedrive
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/onedrive",
"description": "Import files from OneDrive, into Uppy.",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,22 @@
# @uppy/provider-views
## 5.2.0
### Minor Changes
- e661348: Allow selecting folders with Google Drive Picker. They will be recursively resolved.
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- 4817585: added icon to webdav provider, add css to truncate large file names
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.1.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/provider-views",
"description": "View library for Uppy remote provider plugins.",
"version": "5.1.2",
"version": "5.2.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -105,6 +105,11 @@ export default function GooglePickerView({
appId,
onFilesPicked,
signal,
onLoadingChange: (isLoading: boolean) => setLoading(isLoading),
onError: (err: unknown) => {
uppy.log(err)
uppy.info(i18n('failedToAddFiles'), 'error')
},
})
} else {
// photos
@ -175,6 +180,7 @@ export default function GooglePickerView({
pickerType,
setAccessToken,
uppy,
i18n,
],
)

View file

@ -209,12 +209,16 @@ export async function showDrivePicker({
appId,
onFilesPicked,
signal,
onLoadingChange,
onError,
}: {
token: string
apiKey: string
appId: string
onFilesPicked: (files: PickedItem[], accessToken: string) => void
signal: AbortSignal | undefined
onLoadingChange: (loading: boolean) => void
onError: (err: unknown) => void
}): Promise<void> {
// google drive picker will crash hard if given an invalid token, so we need to check it first
// https://github.com/transloadit/uppy/pull/5443#pullrequestreview-2452439265
@ -222,18 +226,88 @@ export async function showDrivePicker({
throw new InvalidTokenError()
}
const onPicked = (picked: google.picker.ResponseObject) => {
if (picked.action === google.picker.Action.PICKED) {
// console.log('Picker response', JSON.stringify(picked, null, 2));
onFilesPicked(
picked.docs.map((doc) => ({
async function listFilesInDriveFolder({
doc,
token,
signal,
}: {
doc: PickedItemBase
token: string
signal?: AbortSignal
}): Promise<PickedDriveItem[]> {
if (doc.mimeType !== 'application/vnd.google-apps.folder') {
return [
{
platform: 'drive',
id: doc.id,
name: doc.name,
mimeType: doc.mimeType,
})),
token,
},
]
}
const headers = getAuthHeader(token)
const items: PickedDriveItem[] = []
let pageToken: string | undefined
do {
const params = new URLSearchParams({
q: `'${doc.id.replace(/'/g, "\\'")}' in parents and trashed = false`,
fields: 'nextPageToken, files(id, name, mimeType)',
pageSize: '1000',
...(pageToken && { pageToken }),
})
const res = await fetch(
`https://www.googleapis.com/drive/v3/files?${params.toString()}`,
{ headers, signal },
)
if (!res.ok) {
throw new Error(
`Failed to list folder contents for '${doc.name}' (${doc.id}): ${res.status} ${res.statusText}`,
)
}
const json: { nextPageToken?: string; files: PickedItemBase[] } =
await res.json()
pageToken = json.nextPageToken
for (const file of json.files) {
items.push(
...(await listFilesInDriveFolder({ doc: file, token, signal })),
)
}
} while (pageToken)
return items
}
const onPicked = async (picked: google.picker.ResponseObject) => {
if (picked.action !== google.picker.Action.PICKED) return
try {
onLoadingChange(true)
// console.log('Picker response', JSON.stringify(picked, null, 2));
const results: PickedDriveItem[] = []
for (const doc of picked.docs) {
if (doc.mimeType === 'application/vnd.google-apps.folder') {
results.push(
...(await listFilesInDriveFolder({ doc, token, signal })),
)
} else {
results.push({
platform: 'drive',
id: doc.id,
name: doc.name,
mimeType: doc.mimeType,
})
}
}
onFilesPicked(results, token)
} catch (err) {
onError(err)
} finally {
onLoadingChange(false)
}
}
@ -248,7 +322,7 @@ export async function showDrivePicker({
.setIncludeFolders(true)
// Note: setEnableDrives doesn't seem to work
// .setEnableDrives(true)
.setSelectFolderEnabled(false)
.setSelectFolderEnabled(true)
.setMode(google.picker.DocsViewMode.LIST),
)
// NOTE: photos is broken and results in an error being returned from Google

View file

@ -75,7 +75,7 @@ export default function ListItem({
<ItemIcon itemIconString={file.data.icon} />
</div>
{showTitles && file.data.name ? (
<span>{file.data.name}</span>
<span className="uppy-truncate-text">{file.data.name}</span>
) : (
i18n('unnamed')
)}
@ -89,7 +89,11 @@ export default function ListItem({
<div className="uppy-ProviderBrowserItem-iconWrap">
<ItemIcon itemIconString={file.data.icon} />
</div>
{showTitles && (file.data.name ?? i18n('unnamed'))}
{showTitles && (
<span className="uppy-truncate-text">
{file.data.name ?? i18n('unnamed')}
</span>
)}
</label>
)}
</li>

View file

@ -1,5 +1,30 @@
# @uppy/remote-sources
## 3.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [cc3ff31]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/dashboard@5.1.0
- @uppy/google-drive@5.1.0
- @uppy/instagram@5.1.0
- @uppy/facebook@5.1.0
- @uppy/onedrive@5.1.0
- @uppy/unsplash@5.1.0
- @uppy/dropbox@5.1.0
- @uppy/core@5.2.0
- @uppy/zoom@4.1.0
- @uppy/box@4.1.0
- @uppy/url@5.1.0
## 3.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/remote-sources",
"description": "Uppy plugin that includes all remote sources that Uppy+Companion offer, like Instagram, Google Drive, Dropox, Box, Unsplash, Url etc",
"version": "3.0.1",
"version": "3.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,20 @@
# @uppy/screen-capture
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/screen-capture",
"description": "Uppy plugin that captures video from display or application.",
"version": "5.0.1",
"version": "5.1.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -1,5 +1,20 @@
# @uppy/status-bar
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/status-bar",
"description": "A progress bar for Uppy, with many bells and whistles.",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -46,5 +46,6 @@ export default {
1: '%{smart_count} more files added',
},
showErrorDetails: 'Show error details',
failedToAddFiles: 'Failed to add files',
},
}

View file

@ -1,5 +1,20 @@
# @uppy/thumbnail-generator
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/thumbnail-generator",
"description": "Uppy plugin that generates small previews of images to show on your upload UI.",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,21 @@
# @uppy/transloadit
## 5.3.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/tus@5.1.0
- @uppy/utils@7.1.4
## 5.2.0
### Minor Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/transloadit",
"description": "The Transloadit plugin can be used to upload files to Transloadit for all kinds of processing, such as transcoding video, resizing images, zipping/unzipping, and more",
"version": "5.2.0",
"version": "5.3.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,21 @@
# @uppy/tus
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- ac12f35: Fix: Move completed uploads exclusion logic into uploaders. This fixes the problem where postprocessors would not run for already uploaded files.
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/tus",
"description": "Resumable uploads for Uppy using Tus.io",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,22 @@
# @uppy/unsplash
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/unsplash",
"description": "Import files from Unsplash, the free stock photography resource, into Uppy",
"version": "5.0.1",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,20 @@
# @uppy/url
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/url",
"description": "The Url plugin lets users import files from the Internet. Paste any URL and itll be added!",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -1,5 +1,11 @@
# @uppy/utils
## 7.1.4
### Patch Changes
- ac12f35: Fix: Move completed uploads exclusion logic into uploaders. This fixes the problem where postprocessors would not run for already uploaded files.
## 7.1.3
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/utils",
"description": "Shared utility functions for Uppy Core and plugins maintained by the Uppy team.",
"version": "7.1.3",
"version": "7.1.4",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,20 @@
# @uppy/webcam
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/webcam",
"description": "Uppy plugin that takes photos or records videos using the device's camera.",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"style": "dist/style.min.css",
"type": "module",

View file

@ -1,5 +1,22 @@
# @uppy/webdav
## 1.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 1.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/webdav",
"description": "Import files from WebDAV into Uppy.",
"version": "1.0.1",
"version": "1.1.0",
"license": "MIT",
"types": "types/index.d.ts",
"type": "module",

View file

@ -1,5 +1,21 @@
# @uppy/xhr-upload
## 5.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- ac12f35: Fix: Move completed uploads exclusion logic into uploaders. This fixes the problem where postprocessors would not run for already uploaded files.
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 5.0.2
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/xhr-upload",
"description": "Plain and simple classic HTML multipart form uploads with Uppy, as well as uploads using the HTTP PUT method.",
"version": "5.0.2",
"version": "5.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,22 @@
# @uppy/zoom
## 4.1.0
### Minor Changes
- 79e6460: - Add PluginTypeRegistry and typed getPlugin overload in @uppy/core
- Register plugin ids across packages so uppy.getPlugin('Dashboard' | 'Webcam') returns the concrete plugin type and removes the need to pass generics in getPlugin()
### Patch Changes
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/provider-views@5.2.0
- @uppy/core@5.2.0
- @uppy/utils@7.1.4
## 4.0.1
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "@uppy/zoom",
"description": "Import files from zoom, into Uppy.",
"version": "4.0.1",
"version": "4.1.0",
"license": "MIT",
"type": "module",
"sideEffects": false,

View file

@ -1,5 +1,49 @@
# uppy
## 5.1.12
### Patch Changes
- Updated dependencies [cc3ff31]
- Updated dependencies [c3c16ae]
- Updated dependencies [8744c4d]
- Updated dependencies [e661348]
- Updated dependencies [79e6460]
- Updated dependencies [ac12f35]
- Updated dependencies [4817585]
- @uppy/dashboard@5.1.0
- @uppy/golden-retriever@5.2.0
- @uppy/locales@5.0.1
- @uppy/provider-views@5.2.0
- @uppy/google-drive-picker@1.1.0
- @uppy/google-photos-picker@1.1.0
- @uppy/thumbnail-generator@5.1.0
- @uppy/remote-sources@3.1.0
- @uppy/screen-capture@5.1.0
- @uppy/google-drive@5.1.0
- @uppy/image-editor@4.1.0
- @uppy/drop-target@4.1.0
- @uppy/transloadit@5.3.0
- @uppy/compressor@3.1.0
- @uppy/status-bar@5.1.0
- @uppy/xhr-upload@5.1.0
- @uppy/drag-drop@5.1.0
- @uppy/instagram@5.1.0
- @uppy/facebook@5.1.0
- @uppy/onedrive@5.1.0
- @uppy/unsplash@5.1.0
- @uppy/dropbox@5.1.0
- @uppy/aws-s3@5.1.0
- @uppy/webcam@5.1.0
- @uppy/webdav@1.1.0
- @uppy/audio@3.1.0
- @uppy/core@5.2.0
- @uppy/form@5.1.0
- @uppy/zoom@4.1.0
- @uppy/box@4.1.0
- @uppy/tus@5.1.0
- @uppy/url@5.1.0
## 5.1.11
### Patch Changes

View file

@ -1,7 +1,7 @@
{
"name": "uppy",
"description": "Extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:",
"version": "5.1.11",
"version": "5.1.12",
"license": "MIT",
"main": "lib/index.js",
"module": "lib/index.js",

238
yarn.lock
View file

@ -610,27 +610,15 @@ __metadata:
languageName: node
linkType: hard
"@angular/common@npm:^19.0.0":
version: 19.2.5
resolution: "@angular/common@npm:19.2.5"
"@angular/common@npm:^19.2.16":
version: 19.2.17
resolution: "@angular/common@npm:19.2.17"
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
"@angular/core": 19.2.5
"@angular/core": 19.2.17
rxjs: ^6.5.3 || ^7.4.0
checksum: 10/f7788e90d438b8a9222de950e3e8ac72ffbf8c0650bd3561c21c7d19e48e0eeb85be3edb7243ff6fff3c0051612dbad292c3c0d544fb6ab6267d0f7ce3b0837b
languageName: node
linkType: hard
"@angular/common@npm:^19.2.0":
version: 19.2.14
resolution: "@angular/common@npm:19.2.14"
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
"@angular/core": 19.2.14
rxjs: ^6.5.3 || ^7.4.0
checksum: 10/53a7c50e799190df0805cc188496cc9ca3fcd03497deabaaa477da9cb08391ef3a55151abed24bb6bc19ee044f03a623fb53b33efa590000912ad944691e3f88
checksum: 10/3794a790fcff5d8cec17b9a51c6563966bc80667957660515c1eaebd6e384bf7a2d50a8c131a1a85f1c36ed2d88a9695612d6d6fc2356f92294d2da3fadf85ba
languageName: node
linkType: hard
@ -689,12 +677,12 @@ __metadata:
languageName: node
linkType: hard
"@angular/compiler@npm:^19.2.0":
version: 19.2.14
resolution: "@angular/compiler@npm:19.2.14"
"@angular/compiler@npm:^19.2.17":
version: 19.2.17
resolution: "@angular/compiler@npm:19.2.17"
dependencies:
tslib: "npm:^2.3.0"
checksum: 10/15938090b64caa0bacd3c14a09a382106c3821266c100990186077076fb2cbe324364b7706e1579d18ed9025e3a2d1ad2cc1e04c7d8134725e82cc14434aea26
checksum: 10/3787f5265028d290caec6940747012d3285be81fbac8537184f0fb8ccccf9812b8091fd03ad1c6866e5f089a2cecdb6eaa4c4bdaa6910044fa34ef69e0b5aa3c
languageName: node
linkType: hard
@ -10786,7 +10774,7 @@ __metadata:
"@types/request": "npm:2.48.8"
"@types/webpack": "npm:^5.28.0"
"@types/ws": "npm:8.5.3"
body-parser: "npm:1.20.3"
body-parser: "npm:1.20.4"
common-tags: "npm:1.8.2"
connect-redis: "npm:7.1.1"
content-disposition: "npm:^0.5.4"
@ -10824,7 +10812,7 @@ __metadata:
supports-color: "npm:8.x"
tus-js-client: "npm:^4.1.0"
typescript: "npm:^5.8.3"
validator: "npm:^13.0.0"
validator: "npm:^13.15.20"
vitest: "npm:^3.2.4"
webdav: "npm:^5.8.0"
ws: "npm:8.17.1"
@ -12175,7 +12163,7 @@ __metadata:
"@angular-eslint/eslint-plugin-template": "npm:^18.0.1"
"@angular/animations": "npm:^19.0.0"
"@angular/cli": "npm:^19.0.0"
"@angular/common": "npm:^19.0.0"
"@angular/common": "npm:^19.2.16"
"@angular/compiler": "npm:^19.0.0"
"@angular/compiler-cli": "npm:^19.0.0"
"@angular/core": "npm:^19.0.0"
@ -12675,7 +12663,7 @@ __metadata:
languageName: node
linkType: hard
"body-parser@npm:1.20.3, body-parser@npm:^1.19.0, body-parser@npm:^1.20.3":
"body-parser@npm:1.20.3, body-parser@npm:^1.19.0":
version: 1.20.3
resolution: "body-parser@npm:1.20.3"
dependencies:
@ -12695,6 +12683,26 @@ __metadata:
languageName: node
linkType: hard
"body-parser@npm:1.20.4, body-parser@npm:^1.20.4, body-parser@npm:~1.20.3":
version: 1.20.4
resolution: "body-parser@npm:1.20.4"
dependencies:
bytes: "npm:~3.1.2"
content-type: "npm:~1.0.5"
debug: "npm:2.6.9"
depd: "npm:2.0.0"
destroy: "npm:~1.2.0"
http-errors: "npm:~2.0.1"
iconv-lite: "npm:~0.4.24"
on-finished: "npm:~2.4.1"
qs: "npm:~6.14.0"
raw-body: "npm:~2.5.3"
type-is: "npm:~1.6.18"
unpipe: "npm:~1.0.0"
checksum: 10/ff67e28d3f426707be8697a75fdf8d564dc50c341b41f054264d8ab6e2924e519c7ce8acc9d0de05328fdc41e1d9f3f200aec9c1cfb1867d6b676a410d97c689
languageName: node
linkType: hard
"bonjour-service@npm:^1.2.1":
version: 1.2.1
resolution: "bonjour-service@npm:1.2.1"
@ -12857,7 +12865,7 @@ __metadata:
languageName: node
linkType: hard
"bytes@npm:3.1.2":
"bytes@npm:3.1.2, bytes@npm:~3.1.2":
version: 3.1.2
resolution: "bytes@npm:3.1.2"
checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388
@ -13580,7 +13588,7 @@ __metadata:
languageName: node
linkType: hard
"content-disposition@npm:0.5.4, content-disposition@npm:^0.5.4":
"content-disposition@npm:0.5.4, content-disposition@npm:^0.5.4, content-disposition@npm:~0.5.4":
version: 0.5.4
resolution: "content-disposition@npm:0.5.4"
dependencies:
@ -13634,7 +13642,7 @@ __metadata:
languageName: node
linkType: hard
"cookie-signature@npm:1.0.7":
"cookie-signature@npm:1.0.7, cookie-signature@npm:~1.0.6":
version: 1.0.7
resolution: "cookie-signature@npm:1.0.7"
checksum: 10/1a62808cd30d15fb43b70e19829b64d04b0802d8ef00275b57d152de4ae6a3208ca05c197b6668d104c4d9de389e53ccc2d3bc6bcaaffd9602461417d8c40710
@ -13662,7 +13670,7 @@ __metadata:
languageName: node
linkType: hard
"cookie@npm:0.7.2, cookie@npm:^0.7.2":
"cookie@npm:0.7.2, cookie@npm:^0.7.2, cookie@npm:~0.7.1":
version: 0.7.2
resolution: "cookie@npm:0.7.2"
checksum: 10/24b286c556420d4ba4e9bc09120c9d3db7d28ace2bd0f8ccee82422ce42322f73c8312441271e5eefafbead725980e5996cc02766dbb89a90ac7f5636ede608f
@ -14313,7 +14321,7 @@ __metadata:
languageName: node
linkType: hard
"destroy@npm:1.2.0":
"destroy@npm:1.2.0, destroy@npm:~1.2.0":
version: 1.2.0
resolution: "destroy@npm:1.2.0"
checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38
@ -15494,8 +15502,8 @@ __metadata:
dependencies:
"@angular-devkit/build-angular": "npm:^19.2.6"
"@angular/cli": "npm:^19.2.6"
"@angular/common": "npm:^19.2.0"
"@angular/compiler": "npm:^19.2.0"
"@angular/common": "npm:^19.2.16"
"@angular/compiler": "npm:^19.2.17"
"@angular/compiler-cli": "npm:^19.2.0"
"@angular/core": "npm:^19.2.0"
"@angular/forms": "npm:^19.2.0"
@ -15524,11 +15532,11 @@ __metadata:
"@uppy/dashboard": "workspace:*"
"@uppy/google-drive": "workspace:*"
"@uppy/webcam": "workspace:*"
body-parser: "npm:^1.20.3"
body-parser: "npm:^1.20.4"
cookie-parser: "npm:^1.4.7"
cors: "npm:^2.8.5"
dotenv: "npm:^16.0.1"
express: "npm:^4.19.2"
express: "npm:^4.22.0"
express-session: "npm:^1.17.3"
npm-run-all: "npm:^4.1.5"
vite: "npm:^7.1.11"
@ -15542,9 +15550,9 @@ __metadata:
"@aws-sdk/client-s3": "npm:^3.338.0"
"@aws-sdk/client-sts": "npm:^3.338.0"
"@aws-sdk/s3-request-presigner": "npm:^3.338.0"
body-parser: "npm:^1.20.3"
body-parser: "npm:^1.20.4"
dotenv: "npm:^16.0.0"
express: "npm:^4.19.2"
express: "npm:^4.22.0"
languageName: unknown
linkType: soft
@ -15577,9 +15585,9 @@ __metadata:
"@uppy/google-drive": "workspace:*"
"@uppy/provider-views": "workspace:*"
"@uppy/tus": "workspace:*"
body-parser: "npm:^1.20.3"
body-parser: "npm:^1.20.4"
dotenv: "npm:^16.0.1"
express: "npm:^4.19.2"
express: "npm:^4.22.0"
express-session: "npm:^1.15.6"
npm-run-all: "npm:^4.1.2"
preact: "npm:^10.5.13"
@ -15594,10 +15602,10 @@ __metadata:
"@uppy/aws-s3": "workspace:*"
"@uppy/core": "workspace:*"
"@uppy/dashboard": "workspace:*"
body-parser: "npm:^1.20.3"
body-parser: "npm:^1.20.4"
cors: "npm:^2.8.5"
dotenv: "npm:^16.0.1"
express: "npm:^4.19.2"
express: "npm:^4.22.0"
vite: "npm:^7.1.11"
languageName: unknown
linkType: soft
@ -15607,8 +15615,8 @@ __metadata:
resolution: "example-companion@workspace:examples/companion"
dependencies:
"@uppy/companion": "workspace:*"
body-parser: "npm:^1.20.3"
express: "npm:^4.19.2"
body-parser: "npm:^1.20.4"
express: "npm:^4.22.0"
express-session: "npm:^1.15.6"
light-server: "npm:^2.4.0"
languageName: unknown
@ -15683,7 +15691,7 @@ __metadata:
"@uppy/transloadit": "workspace:*"
"@uppy/tus": "workspace:*"
"@uppy/xhr-upload": "workspace:*"
express: "npm:^4.19.2"
express: "npm:^4.22.0"
react: "npm:^18.2.0"
react-dom: "npm:^18.2.0"
react-router: "npm:latest"
@ -15732,7 +15740,7 @@ __metadata:
"@uppy/remote-sources": "workspace:*"
"@uppy/transloadit": "workspace:*"
"@uppy/webcam": "workspace:*"
express: "npm:^4.19.2"
express: "npm:^4.22.0"
he: "npm:^1.2.0"
npm-run-all: "npm:^4.1.5"
vite: "npm:^7.1.11"
@ -15770,7 +15778,7 @@ __metadata:
"@uppy/dashboard": "workspace:*"
"@uppy/xhr-upload": "workspace:*"
cors: "npm:^2.8.5"
express: "npm:^4.19.2"
express: "npm:^4.22.0"
multer: "npm:^2.0.2"
npm-run-all: "npm:^4.1.5"
vite: "npm:^7.1.11"
@ -15959,7 +15967,7 @@ __metadata:
languageName: node
linkType: hard
"express@npm:^4.18.2, express@npm:^4.19.2":
"express@npm:^4.18.2":
version: 4.19.2
resolution: "express@npm:4.19.2"
dependencies:
@ -15998,6 +16006,45 @@ __metadata:
languageName: node
linkType: hard
"express@npm:^4.22.0":
version: 4.22.1
resolution: "express@npm:4.22.1"
dependencies:
accepts: "npm:~1.3.8"
array-flatten: "npm:1.1.1"
body-parser: "npm:~1.20.3"
content-disposition: "npm:~0.5.4"
content-type: "npm:~1.0.4"
cookie: "npm:~0.7.1"
cookie-signature: "npm:~1.0.6"
debug: "npm:2.6.9"
depd: "npm:2.0.0"
encodeurl: "npm:~2.0.0"
escape-html: "npm:~1.0.3"
etag: "npm:~1.8.1"
finalhandler: "npm:~1.3.1"
fresh: "npm:~0.5.2"
http-errors: "npm:~2.0.0"
merge-descriptors: "npm:1.0.3"
methods: "npm:~1.1.2"
on-finished: "npm:~2.4.1"
parseurl: "npm:~1.3.3"
path-to-regexp: "npm:~0.1.12"
proxy-addr: "npm:~2.0.7"
qs: "npm:~6.14.0"
range-parser: "npm:~1.2.1"
safe-buffer: "npm:5.2.1"
send: "npm:~0.19.0"
serve-static: "npm:~1.16.2"
setprototypeof: "npm:1.2.0"
statuses: "npm:~2.0.1"
type-is: "npm:~1.6.18"
utils-merge: "npm:1.0.1"
vary: "npm:~1.1.2"
checksum: 10/f33c1bd0c7d36e2a1f18de9cdc176469d32f68e20258d2941b8d296ab9a4fd9011872c246391bf87714f009fac5114c832ec5ac65cbee39421f1258801eb8470
languageName: node
linkType: hard
"extend@npm:^3.0.0":
version: 3.0.2
resolution: "extend@npm:3.0.2"
@ -16240,6 +16287,21 @@ __metadata:
languageName: node
linkType: hard
"finalhandler@npm:~1.3.1":
version: 1.3.2
resolution: "finalhandler@npm:1.3.2"
dependencies:
debug: "npm:2.6.9"
encodeurl: "npm:~2.0.0"
escape-html: "npm:~1.0.3"
on-finished: "npm:~2.4.1"
parseurl: "npm:~1.3.3"
statuses: "npm:~2.0.2"
unpipe: "npm:~1.0.0"
checksum: 10/6cb4f9f80eaeb5a0fac4fdbd27a65d39271f040a0034df16556d896bfd855fd42f09da886781b3102117ea8fceba97b903c1f8b08df1fb5740576d5e0f481eed
languageName: node
linkType: hard
"find-cache-dir@npm:^3.3.2":
version: 3.3.2
resolution: "find-cache-dir@npm:3.3.2"
@ -16456,7 +16518,7 @@ __metadata:
languageName: node
linkType: hard
"fresh@npm:0.5.2":
"fresh@npm:0.5.2, fresh@npm:~0.5.2":
version: 0.5.2
resolution: "fresh@npm:0.5.2"
checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1
@ -17264,6 +17326,19 @@ __metadata:
languageName: node
linkType: hard
"http-errors@npm:~2.0.0, http-errors@npm:~2.0.1":
version: 2.0.1
resolution: "http-errors@npm:2.0.1"
dependencies:
depd: "npm:~2.0.0"
inherits: "npm:~2.0.4"
setprototypeof: "npm:~1.2.0"
statuses: "npm:~2.0.2"
toidentifier: "npm:~1.0.1"
checksum: 10/9fe31bc0edf36566c87048aed1d3d0cbe03552564adc3541626a0613f542d753fbcb13bdfcec0a3a530dbe1714bb566c89d46244616b66bddd26ac413b06a207
languageName: node
linkType: hard
"http-parser-js@npm:>=0.5.1":
version: 0.5.8
resolution: "http-parser-js@npm:0.5.8"
@ -17429,7 +17504,7 @@ __metadata:
languageName: node
linkType: hard
"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24":
"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24, iconv-lite@npm:~0.4.24":
version: 0.4.24
resolution: "iconv-lite@npm:0.4.24"
dependencies:
@ -18291,14 +18366,14 @@ __metadata:
linkType: hard
"js-yaml@npm:^3.13.1, js-yaml@npm:^3.6.1":
version: 3.14.1
resolution: "js-yaml@npm:3.14.1"
version: 3.14.2
resolution: "js-yaml@npm:3.14.2"
dependencies:
argparse: "npm:^1.0.7"
esprima: "npm:^4.0.0"
bin:
js-yaml: bin/js-yaml.js
checksum: 10/9e22d80b4d0105b9899135365f746d47466ed53ef4223c529b3c0f7a39907743fdbd3c4379f94f1106f02755b5e90b2faaf84801a891135544e1ea475d1a1379
checksum: 10/172e0b6007b0bf0fc8d2469c94424f7dd765c64a047d2b790831fecef2204a4054eabf4d911eb73ab8c9a3256ab8ba1ee8d655b789bf24bf059c772acc2075a1
languageName: node
linkType: hard
@ -20392,9 +20467,9 @@ __metadata:
linkType: hard
"node-forge@npm:^1":
version: 1.3.1
resolution: "node-forge@npm:1.3.1"
checksum: 10/05bab6868633bf9ad4c3b1dd50ec501c22ffd69f556cdf169a00998ca1d03e8107a6032ba013852f202035372021b845603aeccd7dfcb58cdb7430013b3daa8d
version: 1.3.2
resolution: "node-forge@npm:1.3.2"
checksum: 10/dcc54aaffe0cf52367214a20c0032aa9b209d9095dd14526504f1972d1900a07e96046b3684cb0c8d0cc3d48744dd18e02b7b447ab28fac615ffb850beeabf18
languageName: node
linkType: hard
@ -20908,7 +20983,7 @@ __metadata:
languageName: node
linkType: hard
"on-finished@npm:2.4.1, on-finished@npm:^2.3.0, on-finished@npm:^2.4.1":
"on-finished@npm:2.4.1, on-finished@npm:^2.3.0, on-finished@npm:^2.4.1, on-finished@npm:~2.4.1":
version: 2.4.1
resolution: "on-finished@npm:2.4.1"
dependencies:
@ -21415,7 +21490,7 @@ __metadata:
languageName: node
linkType: hard
"path-to-regexp@npm:0.1.12":
"path-to-regexp@npm:0.1.12, path-to-regexp@npm:~0.1.12":
version: 0.1.12
resolution: "path-to-regexp@npm:0.1.12"
checksum: 10/2e30f6a0144679c1f95c98e166b96e6acd1e72be9417830fefc8de7ac1992147eb9a4c7acaa59119fb1b3c34eec393b2129ef27e24b2054a3906fc4fb0d1398e
@ -22373,7 +22448,7 @@ __metadata:
languageName: node
linkType: hard
"qs@npm:^6.14.0":
"qs@npm:^6.14.0, qs@npm:~6.14.0":
version: 6.14.0
resolution: "qs@npm:6.14.0"
dependencies:
@ -22445,6 +22520,18 @@ __metadata:
languageName: node
linkType: hard
"raw-body@npm:~2.5.3":
version: 2.5.3
resolution: "raw-body@npm:2.5.3"
dependencies:
bytes: "npm:~3.1.2"
http-errors: "npm:~2.0.1"
iconv-lite: "npm:~0.4.24"
unpipe: "npm:~1.0.0"
checksum: 10/f35759fe5a6548e7c529121ead1de4dd163f899749a5896c42e278479df2d9d7f98b5bb17312737c03617765e5a1433e586f717616e5cfbebc13b4738b820601
languageName: node
linkType: hard
"react-dom@npm:19.1.0, react-dom@npm:^19.0.0":
version: 19.1.0
resolution: "react-dom@npm:19.1.0"
@ -23648,6 +23735,27 @@ __metadata:
languageName: node
linkType: hard
"send@npm:~0.19.0":
version: 0.19.1
resolution: "send@npm:0.19.1"
dependencies:
debug: "npm:2.6.9"
depd: "npm:2.0.0"
destroy: "npm:1.2.0"
encodeurl: "npm:~2.0.0"
escape-html: "npm:~1.0.3"
etag: "npm:~1.8.1"
fresh: "npm:0.5.2"
http-errors: "npm:2.0.0"
mime: "npm:1.6.0"
ms: "npm:2.1.3"
on-finished: "npm:2.4.1"
range-parser: "npm:~1.2.1"
statuses: "npm:2.0.1"
checksum: 10/360bf50a839c7bbc181f67c3a0f3424a7ad8016dfebcd9eb90891f4b762b4377da14414c32250d67b53872e884171c27469110626f6c22765caa7c38c207ee1d
languageName: node
linkType: hard
"serialize-error@npm:^11.0.0":
version: 11.0.3
resolution: "serialize-error@npm:11.0.3"
@ -23693,7 +23801,7 @@ __metadata:
languageName: node
linkType: hard
"serve-static@npm:1.16.2":
"serve-static@npm:1.16.2, serve-static@npm:~1.16.2":
version: 1.16.2
resolution: "serve-static@npm:1.16.2"
dependencies:
@ -23771,7 +23879,7 @@ __metadata:
languageName: node
linkType: hard
"setprototypeof@npm:1.2.0":
"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0":
version: 1.2.0
resolution: "setprototypeof@npm:1.2.0"
checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e
@ -24357,7 +24465,7 @@ __metadata:
languageName: node
linkType: hard
"statuses@npm:^2.0.1":
"statuses@npm:^2.0.1, statuses@npm:~2.0.1, statuses@npm:~2.0.2":
version: 2.0.2
resolution: "statuses@npm:2.0.2"
checksum: 10/6927feb50c2a75b2a4caab2c565491f7a93ad3d8dbad7b1398d52359e9243a20e2ebe35e33726dee945125ef7a515e9097d8a1b910ba2bbd818265a2f6c39879
@ -25022,7 +25130,7 @@ __metadata:
languageName: node
linkType: hard
"toidentifier@npm:1.0.1":
"toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1":
version: 1.0.1
resolution: "toidentifier@npm:1.0.1"
checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45
@ -25839,10 +25947,10 @@ __metadata:
languageName: node
linkType: hard
"validator@npm:^13.0.0":
version: 13.12.0
resolution: "validator@npm:13.12.0"
checksum: 10/db6eb0725e2b67d60d30073ae8573982713b5903195d031dc3c7db7e82df8b74e8c13baef8e2106d146d979599fd61a06cde1fec5c148e4abd53d52817ff0fd9
"validator@npm:^13.15.20":
version: 13.15.20
resolution: "validator@npm:13.15.20"
checksum: 10/498f9b201dda7b09207bbc13606e6f90595987eab9e3a60fc5b8d8d96141c9351192aea56d392c78640e2462770eedccf545cf13b2ef43e87d73a755ba485c5d
languageName: node
linkType: hard