Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix super.toggleCheckbox bug #5004

Merged
merged 10 commits into from
Mar 19, 2024
Merged

fix super.toggleCheckbox bug #5004

merged 10 commits into from
Mar 19, 2024

Conversation

mifi
Copy link
Contributor

@mifi mifi commented Mar 17, 2024

this includes a new check which uncovers a bug with super.toggleCheckbox:

Error: packages/@uppy/google-drive/src/DriveProviderViews.ts(15,13): error TS2855: Class field 'toggleCheckbox' defined by the parent class is not accessible in the child class via super.

https://github.com/transloadit/uppy/actions/runs/8315808580/job/22754550095?pr=5004

TIL instance methods method() {} are accessible from subclasses via super, but instance fields are not! method = () => {} (thanks typescript!)

Also, currently main is broken for me when running in dev: the checkboxes for google drive don't do anything and there's an error about toggleCheckbox not being a method.

Edit: So I now also pushed a commit to fix this bug which apparently was introduced on apr 4 2023 in this commit 3dd1e5e when the method was converted into a field.

Why it currently works on https://uppy.io/examples/ (and apperently has been working since apr 2023) is beyond me.

Copy link
Contributor

github-actions bot commented Mar 17, 2024

Diff output files
diff --git a/packages/@uppy/google-drive/lib/DriveProviderViews.js b/packages/@uppy/google-drive/lib/DriveProviderViews.js
index 3343fdc..4ac63e3 100644
--- a/packages/@uppy/google-drive/lib/DriveProviderViews.js
+++ b/packages/@uppy/google-drive/lib/DriveProviderViews.js
@@ -1,13 +1,10 @@
 import { ProviderViews } from "@uppy/provider-views";
 export default class DriveProviderViews extends ProviderViews {
-  constructor() {
-    super(...arguments);
-    this.toggleCheckbox = (e, file) => {
-      e.stopPropagation();
-      e.preventDefault();
-      if (!file.custom.isSharedDrive) {
-        super.toggleCheckbox(e, file);
-      }
-    };
+  toggleCheckbox(e, file) {
+    e.stopPropagation();
+    e.preventDefault();
+    if (!file.custom.isSharedDrive) {
+      super.toggleCheckbox(e, file);
+    }
   }
 }
diff --git a/packages/@uppy/provider-views/lib/ProviderView/ProviderView.js b/packages/@uppy/provider-views/lib/ProviderView/ProviderView.js
index aa49d22..83e1cd9 100644
--- a/packages/@uppy/provider-views/lib/ProviderView/ProviderView.js
+++ b/packages/@uppy/provider-views/lib/ProviderView/ProviderView.js
@@ -361,7 +361,6 @@ export default class ProviderView extends View {
     } = this.plugin.getPluginState();
     const {
       isChecked,
-      toggleCheckbox,
       recordShiftKeyPress,
       filterItems,
     } = this;
@@ -379,7 +378,7 @@ export default class ProviderView extends View {
     };
     const browserProps = {
       isChecked,
-      toggleCheckbox,
+      toggleCheckbox: this.toggleCheckbox.bind(this),
       recordShiftKeyPress,
       currentSelection,
       files: hasInput ? filterItems(files) : files,
diff --git a/packages/@uppy/provider-views/lib/SearchProviderView/SearchProviderView.js b/packages/@uppy/provider-views/lib/SearchProviderView/SearchProviderView.js
index ed4dea4..e5ff004 100644
--- a/packages/@uppy/provider-views/lib/SearchProviderView/SearchProviderView.js
+++ b/packages/@uppy/provider-views/lib/SearchProviderView/SearchProviderView.js
@@ -134,14 +134,13 @@ export default class SearchProviderView extends View {
     } = this.plugin.getPluginState();
     const {
       isChecked,
-      toggleCheckbox,
       filterItems,
       recordShiftKeyPress,
     } = this;
     const hasInput = filterInput !== "";
     const browserProps = {
       isChecked,
-      toggleCheckbox,
+      toggleCheckbox: this.toggleCheckbox.bind(this),
       recordShiftKeyPress,
       currentSelection,
       files: hasInput ? filterItems(files) : files,
diff --git a/packages/@uppy/provider-views/lib/View.js b/packages/@uppy/provider-views/lib/View.js
index 782b4c5..69cd639 100644
--- a/packages/@uppy/provider-views/lib/View.js
+++ b/packages/@uppy/provider-views/lib/View.js
@@ -15,64 +15,6 @@ export default class View {
     this.recordShiftKeyPress = e => {
       this.isShiftKeyPressed = e.shiftKey;
     };
-    this.toggleCheckbox = (e, file) => {
-      e.stopPropagation();
-      e.preventDefault();
-      e.currentTarget.focus();
-      const {
-        folders,
-        files,
-      } = this.plugin.getPluginState();
-      const items = this.filterItems(folders.concat(files));
-      if (this.lastCheckbox && this.isShiftKeyPressed) {
-        const {
-          currentSelection,
-        } = this.plugin.getPluginState();
-        const prevIndex = items.indexOf(this.lastCheckbox);
-        const currentIndex = items.indexOf(file);
-        const newSelection = prevIndex < currentIndex
-          ? items.slice(prevIndex, currentIndex + 1)
-          : items.slice(currentIndex, prevIndex + 1);
-        const reducedNewSelection = [];
-        for (const item of newSelection) {
-          const {
-            uppy,
-          } = this.plugin;
-          const restrictionError = uppy.validateRestrictions(remoteFileObjToLocal(item), [
-            ...uppy.getFiles(),
-            ...reducedNewSelection,
-          ]);
-          if (!restrictionError) {
-            reducedNewSelection.push(item);
-          } else {
-            uppy.info(
-              {
-                message: restrictionError.message,
-              },
-              "error",
-              uppy.opts.infoTimeout,
-            );
-          }
-        }
-        this.plugin.setPluginState({
-          currentSelection: [...new Set([...currentSelection, ...reducedNewSelection])],
-        });
-        return;
-      }
-      this.lastCheckbox = file;
-      const {
-        currentSelection,
-      } = this.plugin.getPluginState();
-      if (this.isChecked(file)) {
-        this.plugin.setPluginState({
-          currentSelection: currentSelection.filter(item => item.id !== file.id),
-        });
-      } else {
-        this.plugin.setPluginState({
-          currentSelection: currentSelection.concat([file]),
-        });
-      }
-    };
     this.isChecked = file => {
       const {
         currentSelection,
@@ -182,6 +124,64 @@ export default class View {
     }
     return tagFile;
   }
+  toggleCheckbox(e, file) {
+    e.stopPropagation();
+    e.preventDefault();
+    e.currentTarget.focus();
+    const {
+      folders,
+      files,
+    } = this.plugin.getPluginState();
+    const items = this.filterItems(folders.concat(files));
+    if (this.lastCheckbox && this.isShiftKeyPressed) {
+      const {
+        currentSelection,
+      } = this.plugin.getPluginState();
+      const prevIndex = items.indexOf(this.lastCheckbox);
+      const currentIndex = items.indexOf(file);
+      const newSelection = prevIndex < currentIndex
+        ? items.slice(prevIndex, currentIndex + 1)
+        : items.slice(currentIndex, prevIndex + 1);
+      const reducedNewSelection = [];
+      for (const item of newSelection) {
+        const {
+          uppy,
+        } = this.plugin;
+        const restrictionError = uppy.validateRestrictions(remoteFileObjToLocal(item), [
+          ...uppy.getFiles(),
+          ...reducedNewSelection,
+        ]);
+        if (!restrictionError) {
+          reducedNewSelection.push(item);
+        } else {
+          uppy.info(
+            {
+              message: restrictionError.message,
+            },
+            "error",
+            uppy.opts.infoTimeout,
+          );
+        }
+      }
+      this.plugin.setPluginState({
+        currentSelection: [...new Set([...currentSelection, ...reducedNewSelection])],
+      });
+      return;
+    }
+    this.lastCheckbox = file;
+    const {
+      currentSelection,
+    } = this.plugin.getPluginState();
+    if (this.isChecked(file)) {
+      this.plugin.setPluginState({
+        currentSelection: currentSelection.filter(item => item.id !== file.id),
+      });
+    } else {
+      this.plugin.setPluginState({
+        currentSelection: currentSelection.concat([file]),
+      });
+    }
+  }
   setLoading(loading) {
     this.plugin.setPluginState({
       loading,

@mifi mifi changed the title upgrade typescript to 5.4 upgrade typescript to 5.4 and fix super.toggleCheckbox bug Mar 17, 2024
@aduh95
Copy link
Contributor

aduh95 commented Mar 18, 2024

Is the upgrade to TS 5.4 necessary? The version of Angular we're using is using 5.1, and using a single version seems preferable

Copy link
Member

@Murderlon Murderlon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch

@@ -1,9 +1,8 @@
{
"extends": "../tsconfig.shared",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want our e2e tests to share this? I don't think so, it's a very different setup.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did this because the current e2e/tsconfig.json doesn't work with newest typescript. if not extend, shall we instead just copy-paste everything from tsconfig.shared.json into e2e/tsconfig.json and just make sure to manually keep them up to date in the future?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only add the settings we need to add, not everything. Let's start minimal.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so we don't want complete/strict type checking for e2e?

@mifi
Copy link
Contributor Author

mifi commented Mar 19, 2024

Is the upgrade to TS 5.4 necessary? The version of Angular we're using is using 5.1, and using a single version seems preferable

seems like 5.2 is needed to have this check. maybe we can instead upgrade angular? I think keeping up to date with new typescript features is a good thing, no?

@aduh95
Copy link
Contributor

aduh95 commented Mar 19, 2024

Is the upgrade to TS 5.4 necessary? The version of Angular we're using is using 5.1, and using a single version seems preferable

seems like 5.2 is needed to have this check. maybe we can instead upgrade angular? I think keeping up to date with new typescript features is a good thing, no?

Of course, and it's on the roadmap, see #5008. However, given it's a breaking change, it will probably happen only on the 4.x branch. It seems to me we can land the fix without the TS upgrade, or we can wait for the Angular upgrade and land this afterwards. I'd prefer the former.

@mifi
Copy link
Contributor Author

mifi commented Mar 19, 2024

or a third option is we can merge this as-is and then later once we upgrade angular, we can also upgrade angular's own ts version? upgrading ts is not a breaking change afaik

@aduh95
Copy link
Contributor

aduh95 commented Mar 19, 2024

upgrading ts is not a breaking change afaik

It's not, I agree.

we can merge this as-is and then later once we upgrade angular, we can also upgrade angular's own ts version?

It seems to me preferable not to have several TS versions in the monorepo, I think we have more to lose than to gain. My preference would be to not land the TS upgrade with this PR.

e2e/package.json Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
packages/@uppy/angular/package.json Outdated Show resolved Hide resolved
yarn.lock Outdated Show resolved Hide resolved
@mifi
Copy link
Contributor Author

mifi commented Mar 19, 2024

ok i've now reverted all these changes

@aduh95 aduh95 changed the title upgrade typescript to 5.4 and fix super.toggleCheckbox bug fix super.toggleCheckbox bug Mar 19, 2024
Copy link
Contributor

@aduh95 aduh95 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I guess the rule from now on is that only private properties are allowed to be function, otherwise we should use a method and call .bind(this)

@mifi
Copy link
Contributor Author

mifi commented Mar 19, 2024

I don't think we need any rule, because typescript will take care of the problem once we upgrade

@mifi mifi merged commit 48f4f34 into main Mar 19, 2024
16 checks passed
@mifi mifi deleted the upgrade-typescript branch March 19, 2024 10:33
@aduh95
Copy link
Contributor

aduh95 commented Mar 19, 2024

I don't think we need any rule, because typescript will take care of the problem once we upgrade

Obviously TS can't detect if consumers of our package call super., it's important that we keep in mind our plugins are not used only in this monorepo.

@mifi
Copy link
Contributor Author

mifi commented Mar 19, 2024

that's a good point. i wonder if eslint could enforce using only methods (unless private). couldn't find a rule

Murderlon added a commit that referenced this pull request Mar 19, 2024
* main: (90 commits)
  crash if trying to set path to / (#5003)
  fix `super.toggleCheckbox` bug (#5004)
  @uppy/aws-s3-multipart: fix escaping issue with client signed request (#5006)
  add missing exports (#5009)
  @uppy/transloadit: migrate to TS (#4987)
  @uppy/utils: fix `RateLimitedQueue#wrapPromiseFunction` types (#5007)
  @uppy/golden-retriever: migrate to TS (#4989)
  Bump follow-redirects from 1.15.4 to 1.15.6 (#5002)
  meta: fix `resize-observer-polyfill` types (#4994)
  @uppy/core: various type fixes (#4995)
  @uppy/utils: fix `findAllDOMElements` type (#4997)
  @uppy/status-bar: fix `recoveredState` type (#4996)
  @uppy/utils: fix `AbortablePromise` type (#4988)
  Fix breadcrumbs (#4986)
  @uppy/drag-drop: refactor to TypeScript (#4983)
  @uppy/webcam: refactor to TypeScript (#4870)
  @uppy/url: migrate to TS (#4980)
  @uppy/zoom: refactor to TypeScript (#4979)
  @uppy/unsplash: refactor to TypeScript (#4979)
  @uppy/onedrive: refactor to TypeScript (#4979)
  ...
@github-actions github-actions bot mentioned this pull request Mar 27, 2024
github-actions bot added a commit that referenced this pull request Mar 27, 2024
| Package                   | Version | Package                   | Version |
| ------------------------- | ------- | ------------------------- | ------- |
| @uppy/audio               |   1.1.8 | @uppy/progress-bar        |   3.1.1 |
| @uppy/aws-s3-multipart    |  3.11.0 | @uppy/provider-views      |  3.11.0 |
| @uppy/box                 |   2.3.0 | @uppy/react               |   3.3.0 |
| @uppy/companion           |  4.13.0 | @uppy/remote-sources      |   1.2.0 |
| @uppy/companion-client    |   3.8.0 | @uppy/screen-capture      |   3.2.0 |
| @uppy/compressor          |   1.1.2 | @uppy/status-bar          |   3.3.1 |
| @uppy/core                |  3.10.0 | @uppy/thumbnail-generator |   3.1.0 |
| @uppy/dashboard           |   3.8.0 | @uppy/transloadit         |   3.6.0 |
| @uppy/drag-drop           |   3.1.0 | @uppy/tus                 |   3.5.4 |
| @uppy/drop-target         |   2.0.5 | @uppy/unsplash            |   3.3.0 |
| @uppy/dropbox             |   3.3.0 | @uppy/url                 |   3.6.0 |
| @uppy/facebook            |   3.3.0 | @uppy/utils               |   5.7.5 |
| @uppy/golden-retriever    |   3.2.0 | @uppy/webcam              |   3.4.0 |
| @uppy/google-drive        |   3.5.0 | @uppy/zoom                |   2.3.0 |
| @uppy/instagram           |   3.3.0 | uppy                      |  3.24.0 |
| @uppy/onedrive            |   3.3.0 |                           |         |

- @uppy/box,@uppy/companion-client,@uppy/provider-views,@uppy/status-bar: fix type imports (Antoine du Hamel / #5038)
- @uppy/aws-s3-multipart: mark `opts` as optional (Antoine du Hamel / #5039)
- e2e: bump Cypress version (Antoine du Hamel / #5034)
- @uppy/react: refactor to TS (Antoine du Hamel / #5012)
- @uppy/core: refine type of private variables (Antoine du Hamel / #5028)
- @uppy/dashboard: refine type of private variables (Antoine du Hamel / #5027)
- @uppy/drag-drop: refine type of private variables (Antoine du Hamel / #5026)
- @uppy/status-bar: refine type of private variables (Antoine du Hamel / #5025)
- @uppy/remote-sources: migrate to TS (Merlijn Vos / #5020)
- @uppy/dashboard: refine option types (Antoine du Hamel / #5022)
- @uppy/dashboard: add new `autoOpen` option (Chris Grigg / #5001)
- @uppy/core: fix some type errors (Antoine du Hamel / #5015)
- @uppy/audio,@uppy/dashboard,@uppy/drop-target,@uppy/webcam: add missing exports (Antoine du Hamel / #5014)
- meta: Bump webpack-dev-middleware from 5.3.3 to 5.3.4 (dependabot[bot] / #5013)
- @uppy/dashboard: refactor to TypeScript (Antoine du Hamel / #4984)
- @uppy/companion: improve error msg (Mikael Finstad / #5010)
- @uppy/aws-s3-multipart: refactor to TS (Antoine du Hamel / #4902)
- @uppy/dashboard: refactor to stable lifecycle method (Antoine du Hamel / #4999)
- @uppy/companion: crash if trying to set path to / (Mikael Finstad / #5003)
- @uppy/provider-views: fix `super.toggleCheckbox` bug (Mikael Finstad / #5004)
- @uppy/aws-s3-multipart: fix escaping issue with client signed request (Hiroki Shimizu / #5006)
- @uppy/drag-drop,@uppy/progress-bar: add missing exports (Antoine du Hamel / #5009)
- @uppy/transloadit: migrate to TS (Merlijn Vos / #4987)
- @uppy/utils: fix `RateLimitedQueue#wrapPromiseFunction` types (Antoine du Hamel / #5007)
- @uppy/golden-retriever: migrate to TS (Merlijn Vos / #4989)
- meta: Bump follow-redirects from 1.15.4 to 1.15.6 (dependabot[bot] / #5002)
- meta: fix `resize-observer-polyfill` types (Antoine du Hamel / #4994)
- @uppy/core: various type fixes (Antoine du Hamel / #4995)
- @uppy/utils: fix `findAllDOMElements` type (Antoine du Hamel / #4997)
- @uppy/status-bar: fix `recoveredState` type (Antoine du Hamel / #4996)
- @uppy/utils: fix `AbortablePromise` type (Antoine du Hamel / #4988)
- @uppy/core,@uppy/provider-views: Fix breadcrumbs (Evgenia Karunus / #4986)
- @uppy/drag-drop: refactor to TypeScript (Antoine du Hamel / #4983)
- @uppy/webcam: refactor to TypeScript (Antoine du Hamel / #4870)
- @uppy/url: migrate to TS (Merlijn Vos / #4980)
- @uppy/zoom: refactor to TypeScript (Murderlon / #4979)
- @uppy/unsplash: refactor to TypeScript (Murderlon / #4979)
- @uppy/onedrive: refactor to TypeScript (Murderlon / #4979)
- @uppy/instagram: refactor to TypeScript (Murderlon / #4979)
- @uppy/google-drive: refactor to TypeScript (Murderlon / #4979)
- @uppy/facebook: refactor to TypeScript (Murderlon / #4979)
- @uppy/dropbox: refactor to TypeScript (Murderlon / #4979)
- @uppy/box: refactor to TypeScript (Murderlon / #4979)
- @uppy/utils: migrate RateLimitedQueue to TS (Merlijn Vos / #4981)
- @uppy/thumbnail-generator: migrate to TS (Merlijn Vos / #4978)
- @uppy/screen-capture: migrate to TS (Merlijn Vos / #4965)
- @uppy/companion-client: Replace Provider.initPlugin with composition (Merlijn Vos / #4977)
This was referenced Mar 28, 2024
github-actions bot added a commit that referenced this pull request Mar 28, 2024
| Package                   |      Version | Package                   |      Version |
| ------------------------- | ------------ | ------------------------- | ------------ |
| @uppy/angular             | 0.7.0-beta.1 | @uppy/progress-bar        | 4.0.0-beta.1 |
| @uppy/audio               | 2.0.0-beta.1 | @uppy/provider-views      | 4.0.0-beta.1 |
| @uppy/aws-s3              | 4.0.0-beta.1 | @uppy/react               | 4.0.0-beta.1 |
| @uppy/aws-s3-multipart    | 4.0.0-beta.1 | @uppy/redux-dev-tools     | 4.0.0-beta.1 |
| @uppy/box                 | 3.0.0-beta.1 | @uppy/remote-sources      | 2.0.0-beta.1 |
| @uppy/companion           | 5.0.0-beta.1 | @uppy/screen-capture      | 4.0.0-beta.1 |
| @uppy/companion-client    | 4.0.0-beta.1 | @uppy/status-bar          | 4.0.0-beta.1 |
| @uppy/compressor          | 2.0.0-beta.1 | @uppy/store-default       | 4.0.0-beta.1 |
| @uppy/core                | 4.0.0-beta.1 | @uppy/store-redux         | 4.0.0-beta.1 |
| @uppy/dashboard           | 4.0.0-beta.1 | @uppy/svelte              | 4.0.0-beta.1 |
| @uppy/drag-drop           | 4.0.0-beta.1 | @uppy/thumbnail-generator | 4.0.0-beta.1 |
| @uppy/drop-target         | 3.0.0-beta.1 | @uppy/transloadit         | 4.0.0-beta.1 |
| @uppy/dropbox             | 4.0.0-beta.1 | @uppy/tus                 | 4.0.0-beta.1 |
| @uppy/facebook            | 4.0.0-beta.1 | @uppy/unsplash            | 4.0.0-beta.1 |
| @uppy/file-input          | 4.0.0-beta.1 | @uppy/url                 | 4.0.0-beta.1 |
| @uppy/form                | 4.0.0-beta.1 | @uppy/utils               | 6.0.0-beta.1 |
| @uppy/golden-retriever    | 4.0.0-beta.1 | @uppy/vue                 | 2.0.0-beta.1 |
| @uppy/google-drive        | 4.0.0-beta.1 | @uppy/webcam              | 4.0.0-beta.1 |
| @uppy/image-editor        | 3.0.0-beta.1 | @uppy/xhr-upload          | 4.0.0-beta.1 |
| @uppy/informer            | 4.0.0-beta.1 | @uppy/zoom                | 3.0.0-beta.1 |
| @uppy/instagram           | 4.0.0-beta.1 | uppy                      | 4.0.0-beta.1 |
| @uppy/onedrive            | 4.0.0-beta.1 |                           |              |

- @uppy/vue: migrate to Composition API with TS & drop Vue 2 support (Merlijn Vos / #5043)
- @uppy/angular: upgrade to Angular 17.x and to TS 5.4 (Antoine du Hamel / #5008)
- @uppy/svelte: remove UMD output and make it use newer types (Antoine du Hamel / #5023)
- @uppy/companion-client,@uppy/provider-views,@uppy/status-bar: fix type imports (Antoine du Hamel / #5038)
- @uppy/aws-s3-multipart: mark `opts` as optional (Antoine du Hamel / #5039)
- e2e: bump Cypress version (Antoine du Hamel / #5034)
- @uppy/react: remove `prop-types` dependency (Antoine du Hamel / #5031)
- @uppy/progress-bar: remove default target (Antoine du Hamel / #4971)
- @uppy/status-bar: remove default target (Antoine du Hamel / #4970)
- @uppy/react: remove `Wrapper.ts` (Antoine du Hamel / #5032)
- @uppy/react: refactor to TS (Antoine du Hamel / #5012)
- @uppy/core: refine type of private variables (Antoine du Hamel / #5028)
- @uppy/dashboard: refine type of private variables (Antoine du Hamel / #5027)
- @uppy/drag-drop: refine type of private variables (Antoine du Hamel / #5026)
- @uppy/status-bar: refine type of private variables (Antoine du Hamel / #5025)
- @uppy/remote-sources: migrate to TS (Merlijn Vos / #5020)
- @uppy/dashboard: refine option types (Antoine du Hamel / #5022)
- @uppy/dashboard: add new `autoOpen` option (Chris Grigg / #5001)
- @uppy/aws-s3-multipart,@uppy/tus,@uppy/utils,@uppy/xhr-upload: Make `allowedMetaFields` consistent (Merlijn Vos / #5011)
- @uppy/core: fix some type errors (Antoine du Hamel / #5015)
- @uppy/audio,@uppy/dashboard,@uppy/drop-target,@uppy/webcam: add missing exports (Antoine du Hamel / #5014)
- meta: Bump webpack-dev-middleware from 5.3.3 to 5.3.4 (dependabot[bot] / #5013)
- @uppy/dashboard: refactor to TypeScript (Antoine du Hamel / #4984)
- @uppy/companion: improve error msg (Mikael Finstad / #5010)
- @uppy/aws-s3-multipart: refactor to TS (Antoine du Hamel / #4902)
- @uppy/dashboard: refactor to stable lifecycle method (Antoine du Hamel / #4999)
- @uppy/companion: crash if trying to set path to / (Mikael Finstad / #5003)
- @uppy/provider-views: fix `super.toggleCheckbox` bug (Mikael Finstad / #5004)
- @uppy/aws-s3-multipart: fix escaping issue with client signed request (Hiroki Shimizu / #5006)
- @uppy/drag-drop,@uppy/progress-bar: add missing exports (Antoine du Hamel / #5009)
- @uppy/transloadit: migrate to TS (Merlijn Vos / #4987)
- @uppy/utils: fix `RateLimitedQueue#wrapPromiseFunction` types (Antoine du Hamel / #5007)
- @uppy/golden-retriever: migrate to TS (Merlijn Vos / #4989)
- meta: Bump follow-redirects from 1.15.4 to 1.15.6 (dependabot[bot] / #5002)
- meta: fix `resize-observer-polyfill` types (Antoine du Hamel / #4994)
- @uppy/core: various type fixes (Antoine du Hamel / #4995)
- @uppy/utils: fix `findAllDOMElements` type (Antoine du Hamel / #4997)
- @uppy/status-bar: fix `recoveredState` type (Antoine du Hamel / #4996)
- @uppy/utils: fix `AbortablePromise` type (Antoine du Hamel / #4988)
- @uppy/core,@uppy/provider-views: Fix breadcrumbs (Evgenia Karunus / #4986)
- @uppy/drag-drop: refactor to TypeScript (Antoine du Hamel / #4983)
- @uppy/webcam: refactor to TypeScript (Antoine du Hamel / #4870)
- @uppy/url: migrate to TS (Merlijn Vos / #4980)
- @uppy/zoom: refactor to TypeScript (Murderlon / #4979)
- @uppy/unsplash: refactor to TypeScript (Murderlon / #4979)
- @uppy/onedrive: refactor to TypeScript (Murderlon / #4979)
- @uppy/instagram: refactor to TypeScript (Murderlon / #4979)
- @uppy/google-drive: refactor to TypeScript (Murderlon / #4979)
- @uppy/facebook: refactor to TypeScript (Murderlon / #4979)
- @uppy/dropbox: refactor to TypeScript (Murderlon / #4979)
- @uppy/box: refactor to TypeScript (Murderlon / #4979)
- @uppy/utils: migrate RateLimitedQueue to TS (Merlijn Vos / #4981)
- @uppy/thumbnail-generator: migrate to TS (Merlijn Vos / #4978)
- @uppy/screen-capture: migrate to TS (Merlijn Vos / #4965)
- @uppy/companion-client: Replace Provider.initPlugin with composition (Merlijn Vos / #4977)
- uppy: remove legacy bundle (Antoine du Hamel)
- meta: include types in npm archive (Antoine du Hamel)
- @uppy/angular: fix build (Antoine du Hamel)
- meta: Remove generate types from locale-pack (Murderlon)
- meta: enable CI on `4.x` branch (Antoine du Hamel)
- @uppy/vue: [v4.x] remove manual types (Antoine du Hamel / #4803)
- meta: prepare release workflow for beta versions (Antoine du Hamel)




| Package                   | Version | Package                   | Version |
| ------------------------- | ------- | ------------------------- | ------- |
| @uppy/audio               |   1.1.8 | @uppy/progress-bar        |   3.1.1 |
| @uppy/aws-s3-multipart    |  3.11.0 | @uppy/provider-views      |  3.11.0 |
| @uppy/box                 |   2.3.0 | @uppy/react               |   3.3.0 |
| @uppy/companion           |  4.13.0 | @uppy/remote-sources      |   1.2.0 |
| @uppy/companion-client    |   3.8.0 | @uppy/screen-capture      |   3.2.0 |
| @uppy/compressor          |   1.1.2 | @uppy/status-bar          |   3.3.1 |
| @uppy/core                |  3.10.0 | @uppy/thumbnail-generator |   3.1.0 |
| @uppy/dashboard           |   3.8.0 | @uppy/transloadit         |   3.6.0 |
| @uppy/drag-drop           |   3.1.0 | @uppy/tus                 |   3.5.4 |
| @uppy/drop-target         |   2.0.5 | @uppy/unsplash            |   3.3.0 |
| @uppy/dropbox             |   3.3.0 | @uppy/url                 |   3.6.0 |
| @uppy/facebook            |   3.3.0 | @uppy/utils               |   5.7.5 |
| @uppy/golden-retriever    |   3.2.0 | @uppy/webcam              |   3.4.0 |
| @uppy/google-drive        |   3.5.0 | @uppy/zoom                |   2.3.0 |
| @uppy/instagram           |   3.3.0 | uppy                      |  3.24.0 |
| @uppy/onedrive            |   3.3.0 |                           |         |

- @uppy/box,@uppy/companion-client,@uppy/provider-views,@uppy/status-bar: fix type imports (Antoine du Hamel / #5038)
- @uppy/aws-s3-multipart: mark `opts` as optional (Antoine du Hamel / #5039)
- e2e: bump Cypress version (Antoine du Hamel / #5034)
- @uppy/react: refactor to TS (Antoine du Hamel / #5012)
- @uppy/core: refine type of private variables (Antoine du Hamel / #5028)
- @uppy/dashboard: refine type of private variables (Antoine du Hamel / #5027)
- @uppy/drag-drop: refine type of private variables (Antoine du Hamel / #5026)
- @uppy/status-bar: refine type of private variables (Antoine du Hamel / #5025)
- @uppy/remote-sources: migrate to TS (Merlijn Vos / #5020)
- @uppy/dashboard: refine option types (Antoine du Hamel / #5022)
- @uppy/dashboard: add new `autoOpen` option (Chris Grigg / #5001)
- @uppy/core: fix some type errors (Antoine du Hamel / #5015)
- @uppy/audio,@uppy/dashboard,@uppy/drop-target,@uppy/webcam: add missing exports (Antoine du Hamel / #5014)
- meta: Bump webpack-dev-middleware from 5.3.3 to 5.3.4 (dependabot[bot] / #5013)
- @uppy/dashboard: refactor to TypeScript (Antoine du Hamel / #4984)
- @uppy/companion: improve error msg (Mikael Finstad / #5010)
- @uppy/aws-s3-multipart: refactor to TS (Antoine du Hamel / #4902)
- @uppy/dashboard: refactor to stable lifecycle method (Antoine du Hamel / #4999)
- @uppy/companion: crash if trying to set path to / (Mikael Finstad / #5003)
- @uppy/provider-views: fix `super.toggleCheckbox` bug (Mikael Finstad / #5004)
- @uppy/aws-s3-multipart: fix escaping issue with client signed request (Hiroki Shimizu / #5006)
- @uppy/drag-drop,@uppy/progress-bar: add missing exports (Antoine du Hamel / #5009)
- @uppy/transloadit: migrate to TS (Merlijn Vos / #4987)
- @uppy/utils: fix `RateLimitedQueue#wrapPromiseFunction` types (Antoine du Hamel / #5007)
- @uppy/golden-retriever: migrate to TS (Merlijn Vos / #4989)
- meta: Bump follow-redirects from 1.15.4 to 1.15.6 (dependabot[bot] / #5002)
- meta: fix `resize-observer-polyfill` types (Antoine du Hamel / #4994)
- @uppy/core: various type fixes (Antoine du Hamel / #4995)
- @uppy/utils: fix `findAllDOMElements` type (Antoine du Hamel / #4997)
- @uppy/status-bar: fix `recoveredState` type (Antoine du Hamel / #4996)
- @uppy/utils: fix `AbortablePromise` type (Antoine du Hamel / #4988)
- @uppy/core,@uppy/provider-views: Fix breadcrumbs (Evgenia Karunus / #4986)
- @uppy/drag-drop: refactor to TypeScript (Antoine du Hamel / #4983)
- @uppy/webcam: refactor to TypeScript (Antoine du Hamel / #4870)
- @uppy/url: migrate to TS (Merlijn Vos / #4980)
- @uppy/zoom: refactor to TypeScript (Murderlon / #4979)
- @uppy/unsplash: refactor to TypeScript (Murderlon / #4979)
- @uppy/onedrive: refactor to TypeScript (Murderlon / #4979)
- @uppy/instagram: refactor to TypeScript (Murderlon / #4979)
- @uppy/google-drive: refactor to TypeScript (Murderlon / #4979)
- @uppy/facebook: refactor to TypeScript (Murderlon / #4979)
- @uppy/dropbox: refactor to TypeScript (Murderlon / #4979)
- @uppy/box: refactor to TypeScript (Murderlon / #4979)
- @uppy/utils: migrate RateLimitedQueue to TS (Merlijn Vos / #4981)
- @uppy/thumbnail-generator: migrate to TS (Merlijn Vos / #4978)
- @uppy/screen-capture: migrate to TS (Merlijn Vos / #4965)
- @uppy/companion-client: Replace Provider.initPlugin with composition (Merlijn Vos / #4977)
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.

3 participants