Skip to content

Commit

Permalink
Merge branch '4.x' into xhr-new-hooks
Browse files Browse the repository at this point in the history
* 4.x:
  meta: enable prettier for markdown (#5133)
  @uppy/xhr-upload: do not throw when res is missing url (#5132)
  Release: uppy@4.0.0-beta.4 (#5130)
  meta: fix release script
  Upgrade Yarn to 4.x (#4849)
  @uppy/companion: coerce `requestUrl` to a string (#5128)
  Release: uppy@3.25.0 (#5127)
  meta: enforce use of `.js` extension in `import type` declarations (#5126)
  @uppy/core: add instance ID to generated IDs (#5080)
  @uppy/core: reference updated i18n in Restricter (#5118)
  • Loading branch information
Murderlon committed May 2, 2024
2 parents 4097ed0 + 9d8fb57 commit 0060534
Show file tree
Hide file tree
Showing 185 changed files with 15,966 additions and 16,814 deletions.
6 changes: 5 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,6 @@ module.exports = {
'jsdoc/check-syntax': 'error',
'jsdoc/check-tag-names': ['error', { jsxTags: true }],
'jsdoc/check-types': 'error',
'jsdoc/newline-after-description': 'error',
'jsdoc/valid-types': 'error',
'jsdoc/check-indentation': ['off'],
},
Expand Down Expand Up @@ -474,6 +473,11 @@ module.exports = {
'plugin:@typescript-eslint/recommended',
],
rules: {
'no-extra-semi': 'off',
'no-restricted-syntax': ['error', {
selector: 'ImportDeclaration[importKind="type"][source.value=/^\\./]:not([source.value=/\\.js$/])',
message: 'Use ".js" file extension for import type declarations',
}],
'import/prefer-default-export': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-explicit-any': 'off',
Expand Down
277 changes: 202 additions & 75 deletions .github/CONTRIBUTING.md

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions .github/workflows/bundlers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,9 @@ jobs:
EOF
- name: Eject public packages from repo
run:
mkdir /tmp/artifacts && corepack yarn workspaces foreach --no-private
pack --install-if-needed -o /tmp/artifacts/%s-${{ github.sha }}.tgz
mkdir /tmp/artifacts && corepack yarn workspaces foreach --all
--no-private pack --install-if-needed -o /tmp/artifacts/%s-${{
github.sha }}.tgz
- name: Upload artifact
if: success()
uses: actions/upload-artifact@v4
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ jobs:
run: corepack yarn workspace @uppy/angular prepublishOnly
- name: Publish to the npm registry
run:
corepack yarn workspaces foreach --no-private npm publish --access
public --tag next --tolerate-republish
corepack yarn workspaces foreach --all --no-private npm publish
--access public --tag next --tolerate-republish
env:
YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Merge PR
Expand Down
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ node_modules/
*.cjs
*.mjs
!private/js2ts/*
*.md
*.lock
CHANGELOG.md

This file was deleted.

550 changes: 0 additions & 550 deletions .yarn/plugins/@yarnpkg/plugin-version.cjs

This file was deleted.

28 changes: 0 additions & 28 deletions .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs

This file was deleted.

9 changes: 2 additions & 7 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,8 @@ changesetBaseRefs:
- upstream/main
- origin/main

compressionLevel: mixed

initScope: uppy

enableGlobalCache: false
nodeLinker: node-modules

plugins:
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: '@yarnpkg/plugin-workspace-tools'
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
spec: '@yarnpkg/plugin-version'
130 changes: 94 additions & 36 deletions BACKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,84 +2,142 @@

<!--lint disable no-literal-urls no-undefined-references-->

These are ideas that are planned for specific versions or act as a backlog without a clear date.
PRs are welcome! Please do open an issue to discuss first if it's a big feature, priorities may have changed after something was added here.
These are ideas that are planned for specific versions or act as a backlog
without a clear date. PRs are welcome! Please do open an issue to discuss first
if it's a big feature, priorities may have changed after something was added
here.

## `3.0.0`

- [x] Switch to ES Modules (ESM)
- [x] @uppy/image-editor: Remove silly hack to work around non-ESM.
- [ ] Some not too breaking breaking changes. Go through TODOs (@arturi, @aduh95, @Murderlon)
- [ ] Some not too breaking breaking changes. Go through TODOs (@arturi,
@aduh95, @Murderlon)
- [ ] Companion breaking changes, like S3 keys (@mifi)
- [x] New remote-sources preset
- [x] Deprecate Robodog
- [x] Remove from 3.x branch (@aduh95)
- [x] Update docs that refer to Robodog (@arturi)
- [ ] Update Transloadit.com examples and docs to use @uppy/transloadit + @uppy/remote-sources plugins instead of @uppy/robodog (@arturi)
- [ ] Update Transloadit.com examples and docs to use @uppy/transloadit +
@uppy/remote-sources plugins instead of @uppy/robodog (@arturi)

## `4.0.0`

- [ ] core: change the preprocessing --> uploading flow to allow for files to start uploading right away after their preprocessing step has finished. See #1738 (@goto-but-stop)
- [ ] companion: add more reliable tests to catch edge cases in companion. For example testing that oauth works for multiple companion instances that use a master Oauth domain.
- [ ] Consider updating the name of @uppy/aws-s3 and @uppy/aws-s3-multipart to reflect it also supports Google Cloud Storage, Wasabi, and other cloud providers.
- [ ] Consider fixing all locale files to follow the bcp-47 standard (nl_NL --> nl-NL)
- [ ] core: change the preprocessing --> uploading flow to allow for files to
start uploading right away after their preprocessing step has finished.
See #1738 (@goto-but-stop)
- [ ] companion: add more reliable tests to catch edge cases in companion. For
example testing that oauth works for multiple companion instances that use
a master Oauth domain.
- [ ] Consider updating the name of @uppy/aws-s3 and @uppy/aws-s3-multipart to
reflect it also supports Google Cloud Storage, Wasabi, and other cloud
providers.
- [ ] Consider fixing all locale files to follow the bcp-47 standard (nl_NL -->
nl-NL)

## Unplanned

### Core

- [ ] Make sure Uppy works well in VR
- [ ] normalize file names when uploading from iOS? Can we do it with meta data? date? `image-${index}`? #678
- [ ] Can Uppy upload a lot of files at once? Seems to fail now: https://github.com/transloadit/uppy/issues/3313 (@aduh95, @Murderlon)
- [ ] Consider how we can make Uppy smaller. Replace some packages with smaller alternatives. Talk about Socket.io again (@aduh95)
- [ ] normalize file names when uploading from iOS? Can we do it with meta data?
date? `image-${index}`? #678
- [ ] Can Uppy upload a lot of files at once? Seems to fail now:
https://github.com/transloadit/uppy/issues/3313 (@aduh95, @Murderlon)
- [ ] Consider how we can make Uppy smaller. Replace some packages with smaller
alternatives. Talk about Socket.io again (@aduh95)
- [ ] Better events — more data, consistency, naming (@Murderlon)

### Dashboard

- [ ] Dashboard UI should support 20 providers (@arturi)
- [ ] Allow minimizing the Dashboard during upload (Uppy then becomes just a tiny progress indicator) (@arturi)
- [ ] Display data like image resolution on file cards. should be done by thumbnail generator maybe #783
- [ ] Possibility to edit/delete more than one file at once. example: add copyrigh info to 1000 files #118, #97
- [ ] Possibility to work on already uploaded / in progress files. We'll just provide the `fileId` to the `file-edit-complete` event so that folks can more easily roll out custom code for this themselves #112, #113, #2063
- [ ] Focus jumps weirdly if you remove a file https://github.com/transloadit/uppy/pull/2161#issuecomment-613565486
- [ ] A mini UI that features drop & progress (may involve a `mini: true` options for dashboard, may involve drop+progress or new plugin) (@arturi)
- [ ] Add a Load More button so you don't have to TAB endlessly to get to the upload button (https://github.com/transloadit/uppy/issues/1419)
- [ ] Allow minimizing the Dashboard during upload (Uppy then becomes just a
tiny progress indicator) (@arturi)
- [ ] Display data like image resolution on file cards. should be done by
thumbnail generator maybe #783
- [ ] Possibility to edit/delete more than one file at once. example: add
copyrigh info to 1000 files #118, #97
- [ ] Possibility to work on already uploaded / in progress files. We'll just
provide the `fileId` to the `file-edit-complete` event so that folks can
more easily roll out custom code for this themselves #112, #113, #2063
- [ ] Focus jumps weirdly if you remove a file
https://github.com/transloadit/uppy/pull/2161#issuecomment-613565486
- [ ] A mini UI that features drop & progress (may involve a `mini: true`
options for dashboard, may involve drop+progress or new plugin) (@arturi)
- [ ] Add a Load More button so you don't have to TAB endlessly to get to the
upload button (https://github.com/transloadit/uppy/issues/1419)

### New plugins

- [ ] WordPress Back-end plugin. Should be another Transloadit Integration based on Robodog Dashboard(?) we should add a provider, and possibly offer already-uploaded content
- [ ] WordPress Front-end Gravity Forms Uppy plugin so one form field could be an Uppy-powered file input
- [ ] A WakeLock based plugin that keeps your phone from going to sleep while an upload is ongoing https://github.com/transloadit/uppy/issues/1725
- [ ] WordPress Back-end plugin. Should be another Transloadit Integration based
on Robodog Dashboard(?) we should add a provider, and possibly offer
already-uploaded content
- [ ] WordPress Front-end Gravity Forms Uppy plugin so one form field could be
an Uppy-powered file input
- [ ] A WakeLock based plugin that keeps your phone from going to sleep while an
upload is ongoing https://github.com/transloadit/uppy/issues/1725
- [ ] Improve image editor: filters for images, no crashes (@aduh95)

### New providers

- [ ] Google Photos (#2163)
- [ ] MediaLibrary provider which shows you files that have already been uploaded #450, #1121, #1112 #362
- [ ] MediaLibrary provider which shows you files that have already been
uploaded #450, #1121, #1112 #362
- [ ] Giphy image search (on top of Unsplash plugin) ()
- [ ] Image search (via Google or Bing or DuckDuckGo): use duckduckgo-images-api or Google Search API (@arturi)
- [ ] Image search (via Google or Bing or DuckDuckGo): use duckduckgo-images-api
or Google Search API (@arturi)
- [ ] Vimeo #2872

### Miscellaneous

- [ ] goldenretriever: make it work with aws multipart https://community.transloadit.com/t/resumable-aws-s3-multipart-integration/14888 (@goto-bus-stop)
- [ ] goldenretriever: make it work with aws multipart
https://community.transloadit.com/t/resumable-aws-s3-multipart-integration/14888
(@goto-bus-stop)
- [ ] provider: add sorting (by date) #254
- [ ] qa: add one integration test (or add to existing test) that uses more exotic (tus) options such as `useFastRemoteRetry` or `removeFingerprintOnSuccess` https://github.com/transloadit/uppy/issues/1327 (@arturi, @ifedapoolarewaju)
- [x] react: Add a React Hook to manage an Uppy instance https://github.com/transloadit/uppy/pull/1247#issuecomment-458063951 (@goto-bus-stop)
- [ ] qa: add one integration test (or add to existing test) that uses more
exotic (tus) options such as `useFastRemoteRetry` or
`removeFingerprintOnSuccess`
https://github.com/transloadit/uppy/issues/1327 (@arturi,
@ifedapoolarewaju)
- [x] react: Add a React Hook to manage an Uppy instance
https://github.com/transloadit/uppy/pull/1247#issuecomment-458063951
(@goto-bus-stop)
- [ ] rn: Uppy React Native works with Expo, now let's make it work without
- [ ] rn: Uppy React Native works with Url Plugin, now let's make it work with Instagram
- [ ] security: consider iframe / more security for Transloadit/Uppy integration widget and Uppy itself. Page can’t get files from Google Drive if its an iframe
- [ ] statusbar: Add a confirmation of the cancel action (https://github.com/transloadit/uppy/issues/1418) as well as ask the user if they really want to navigate away while an upload is in progress via `onbeforeunload` (@arturi)
- [ ] uploaders: consider not showing progress updates from the server after an upload’s been paused. Perhaps the button can be disabled and say `Pausing..` until Companion has actually stopped transmitting updates (@arturi, @ifedapoolarewaju)
- [ ] rn: Uppy React Native works with Url Plugin, now let's make it work with
Instagram
- [ ] security: consider iframe / more security for Transloadit/Uppy integration
widget and Uppy itself. Page can’t get files from Google Drive if its an
iframe
- [ ] statusbar: Add a confirmation of the cancel action
(https://github.com/transloadit/uppy/issues/1418) as well as ask the user
if they really want to navigate away while an upload is in progress via
`onbeforeunload` (@arturi)
- [ ] uploaders: consider not showing progress updates from the server after an
upload’s been paused. Perhaps the button can be disabled and say
`Pausing..` until Companion has actually stopped transmitting updates
(@arturi, @ifedapoolarewaju)
- [ ] xhr: allow sending custom headers per file (as proposed in #785)
- [ ] website: It would be nice in the long run to have a dynamic package builder here right on the website where you can select the plugins you need/want and it builds and downloads a minified version of them? Sort of like jQuery UI: https://jqueryui.com/download/
- [ ] webcam: Specify the resolution of the webcam images/video. We should add a way to specify any custom 'constraints' (aspect ratio, resolution, mimetype (`/video/mp4;codec=h264`), bits per second, etc) to the Webcam plugin #876
- [ ] Constructor to build Uppy with what you need, “Dashboard example meets Transloadit Wizard”. Select language, modes, providers — get code ready to use. Maybe integrate Transloadit Wizard in there as well (@arturi, @Murderlon)
- [ ] website: It would be nice in the long run to have a dynamic package
builder here right on the website where you can select the plugins you
need/want and it builds and downloads a minified version of them? Sort of
like jQuery UI: https://jqueryui.com/download/
- [ ] webcam: Specify the resolution of the webcam images/video. We should add a
way to specify any custom 'constraints' (aspect ratio, resolution,
mimetype (`/video/mp4;codec=h264`), bits per second, etc) to the Webcam
plugin #876
- [ ] Constructor to build Uppy with what you need, “Dashboard example meets
Transloadit Wizard”. Select language, modes, providers — get code ready to
use. Maybe integrate Transloadit Wizard in there as well (@arturi,
@Murderlon)

### Needs research

- [ ] Add a prepublish test that checks if `npm pack` is not massive (@goto-bus-stop)
- [ ] Add a prepublish test that checks if `npm pack` is not massive
(@goto-bus-stop)
- [ ] Add https://github.com/pa11y/pa11y for automated accessibility testing?
- [ ] Add lighthouse for automated performance testing?
- [ ] Switch one existing e2e test to use Parcel (create-react-app already using webpack) (@arturi)
- [ ] Add typescript with JSDoc for @uppy/core https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files (@arturi)
- [ ] Switch one existing e2e test to use Parcel (create-react-app already using
webpack) (@arturi)
- [ ] Add typescript with JSDoc for @uppy/core
https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files
(@arturi)

0 comments on commit 0060534

Please sign in to comment.