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

@uppy/dashboard: refactor to TypeScript #4984

Merged
merged 28 commits into from Mar 20, 2024
Merged

@uppy/dashboard: refactor to TypeScript #4984

merged 28 commits into from Mar 20, 2024

Conversation

aduh95
Copy link
Member

@aduh95 aduh95 commented Mar 10, 2024

Requires @uppy/url and @uppy/webcam to be typed, those PRs have not landed at the time of writing.

Still a lot of TS errors to take care of (506).

Copy link
Contributor

github-actions bot commented Mar 10, 2024

Diff output files
diff --git a/packages/@uppy/dashboard/lib/Dashboard.js b/packages/@uppy/dashboard/lib/Dashboard.js
index 706584f..d32a8cf 100644
--- a/packages/@uppy/dashboard/lib/Dashboard.js
+++ b/packages/@uppy/dashboard/lib/Dashboard.js
@@ -36,6 +36,46 @@ function createPromise() {
   });
   return o;
 }
+const defaultOptions = {
+  target: "body",
+  metaFields: [],
+  inline: false,
+  width: 750,
+  height: 550,
+  thumbnailWidth: 280,
+  thumbnailType: "image/jpeg",
+  waitForThumbnailsBeforeUpload: false,
+  defaultPickerIcon,
+  showLinkToFileUploadResult: false,
+  showProgressDetails: false,
+  hideUploadButton: false,
+  hideCancelButton: false,
+  hideRetryButton: false,
+  hidePauseResumeButton: false,
+  hideProgressAfterFinish: false,
+  note: null,
+  closeModalOnClickOutside: false,
+  closeAfterFinish: false,
+  singleFileFullScreen: true,
+  disableStatusBar: false,
+  disableInformer: false,
+  disableThumbnailGenerator: false,
+  disablePageScrollWhenModalOpen: true,
+  animateOpenClose: true,
+  fileManagerSelectionType: "files",
+  proudlyDisplayPoweredByUppy: true,
+  showSelectedFiles: true,
+  showRemoveButtonAfterComplete: false,
+  browserBackButtonClose: false,
+  showNativePhotoCameraButton: false,
+  showNativeVideoCameraButton: false,
+  theme: "light",
+  autoOpenFileEditor: false,
+  disabled: false,
+  disableLocalFiles: false,
+  doneButtonHandler: null,
+  onRequestCloseModal: null,
+};
 var _disabledNodes = _classPrivateFieldLooseKey("disabledNodes");
 var _generateLargeThumbnailIfSingleFile = _classPrivateFieldLooseKey("generateLargeThumbnailIfSingleFile");
 var _openFileEditorWhenFilesAdded = _classPrivateFieldLooseKey("openFileEditorWhenFilesAdded");
@@ -49,13 +89,18 @@ var _autoDiscoverPlugins = _classPrivateFieldLooseKey("autoDiscoverPlugins");
 var _addSupportedPluginIfNoTarget = _classPrivateFieldLooseKey("addSupportedPluginIfNoTarget");
 export default class Dashboard extends UIPlugin {
   constructor(uppy, _opts) {
-    var _this;
-    super(uppy, _opts);
-    _this = this;
+    var _this$opts4, _this$opts4$doneButto, _this$opts5, _this$opts5$onRequest;
+    super(uppy, {
+      ...defaultOptions,
+      ..._opts,
+    });
     Object.defineProperty(this, _disabledNodes, {
       writable: true,
-      value: null,
+      value: void 0,
     });
+    this.modalName = `uppy-Dashboard-${nanoid()}`;
+    this.superFocus = createSuperFocus();
+    this.ifFocusedOnUppyRecently = false;
     this.removeTarget = plugin => {
       const pluginState = this.getPluginState();
       const newTargets = pluginState.targets.filter(target => target.id !== plugin.id);
@@ -72,7 +117,7 @@ export default class Dashboard extends UIPlugin {
       ) {
         const msg = "Dashboard: can only be targeted by plugins of types: acquirer, progressindicator, editor";
         this.uppy.log(msg, "error");
-        return undefined;
+        return null;
       }
       const target = {
         id: callerPluginId,
@@ -88,9 +133,10 @@ export default class Dashboard extends UIPlugin {
       return this.el;
     };
     this.hideAllPanels = () => {
+      var _state$activePickerPa;
       const state = this.getPluginState();
       const update = {
-        activePickerPanel: false,
+        activePickerPanel: undefined,
         showAddFilesPanel: false,
         activeOverlayType: null,
         fileCardFor: null,
@@ -103,15 +149,18 @@ export default class Dashboard extends UIPlugin {
         return;
       }
       this.setPluginState(update);
-      this.uppy.emit("dashboard:close-panel", state.activePickerPanel.id);
+      this.uppy.emit(
+        "dashboard:close-panel",
+        (_state$activePickerPa = state.activePickerPanel) == null ? void 0 : _state$activePickerPa.id,
+      );
     };
     this.showPanel = id => {
       const {
         targets,
       } = this.getPluginState();
-      const activePickerPanel = targets.filter(target => {
+      const activePickerPanel = targets.find(target => {
         return target.type === "acquirer" && target.id === id;
-      })[0];
+      });
       this.setPluginState({
         activePickerPanel,
         activeOverlayType: "PickerPanel",
@@ -199,17 +248,15 @@ export default class Dashboard extends UIPlugin {
       this.uppy.emit("dashboard:modal-open");
       return promise;
     };
-    this.closeModal = function(opts) {
-      if (opts === void 0) {
-        opts = {};
-      }
-      const {
-        manualClose = true,
-      } = opts;
+    this.closeModal = opts => {
+      var _opts$manualClose;
+      const manualClose = (_opts$manualClose = opts == null ? void 0 : opts.manualClose) != null
+        ? _opts$manualClose
+        : true;
       const {
         isHidden,
         isClosing,
-      } = _this.getPluginState();
+      } = this.getPluginState();
       if (isHidden || isClosing) {
         return undefined;
       }
@@ -217,42 +264,42 @@ export default class Dashboard extends UIPlugin {
         promise,
         resolve,
       } = createPromise();
-      if (_this.opts.disablePageScrollWhenModalOpen) {
+      if (this.opts.disablePageScrollWhenModalOpen) {
         document.body.classList.remove("uppy-Dashboard-isFixed");
       }
-      if (_this.opts.animateOpenClose) {
-        _this.setPluginState({
+      if (this.opts.animateOpenClose) {
+        this.setPluginState({
           isClosing: true,
         });
         const handler = () => {
-          _this.setPluginState({
+          this.setPluginState({
             isHidden: true,
             isClosing: false,
           });
-          _this.superFocus.cancel();
-          _this.savedActiveElement.focus();
-          _this.el.removeEventListener("animationend", handler, false);
+          this.superFocus.cancel();
+          this.savedActiveElement.focus();
+          this.el.removeEventListener("animationend", handler, false);
           resolve();
         };
-        _this.el.addEventListener("animationend", handler, false);
+        this.el.addEventListener("animationend", handler, false);
       } else {
-        _this.setPluginState({
+        this.setPluginState({
           isHidden: true,
         });
-        _this.superFocus.cancel();
-        _this.savedActiveElement.focus();
+        this.superFocus.cancel();
+        this.savedActiveElement.focus();
         resolve();
       }
-      document.removeEventListener("keydown", _this.handleKeyDownInModal);
+      document.removeEventListener("keydown", this.handleKeyDownInModal);
       if (manualClose) {
-        if (_this.opts.browserBackButtonClose) {
+        if (this.opts.browserBackButtonClose) {
           var _history$state;
-          if ((_history$state = history.state) != null && _history$state[_this.modalName]) {
+          if ((_history$state = history.state) != null && _history$state[this.modalName]) {
             history.back();
           }
         }
       }
-      _this.uppy.emit("dashboard:modal-closed");
+      this.uppy.emit("dashboard:modal-closed");
       return promise;
     };
     this.isModalOpen = () => {
@@ -403,7 +450,7 @@ export default class Dashboard extends UIPlugin {
       }
     };
     this.handleKeyDownInModal = event => {
-      if (event.keyCode === ESC_KEY) this.requestCloseModal(event);
+      if (event.keyCode === ESC_KEY) this.requestCloseModal();
       if (event.keyCode === TAB_KEY) trapFocus.forModal(event, this.getPluginState().activeOverlayType, this.el);
     };
     this.handleClickOutside = () => {
@@ -448,8 +495,8 @@ export default class Dashboard extends UIPlugin {
         } = event.dataTransfer;
         return types.some(type => type === "Files");
       };
-      const somePluginCanHandleRootDrop = canSomePluginHandleRootDrop(event);
-      const hasFiles = doesEventHaveFiles(event);
+      const somePluginCanHandleRootDrop = canSomePluginHandleRootDrop();
+      const hasFiles = doesEventHaveFiles();
       if (
         !somePluginCanHandleRootDrop && !hasFiles || this.opts.disabled
         || this.opts.disableLocalFiles && (hasFiles || !somePluginCanHandleRootDrop)
@@ -534,7 +581,7 @@ export default class Dashboard extends UIPlugin {
       let {
         failed,
       } = _ref;
-      if (this.opts.closeAfterFinish && failed.length === 0) {
+      if (this.opts.closeAfterFinish && !(failed != null && failed.length)) {
         this.requestCloseModal();
       }
     };
@@ -558,7 +605,7 @@ export default class Dashboard extends UIPlugin {
             ...files[0],
             preview: undefined,
           };
-          thumbnailGenerator.requestThumbnail(fileForThumbnail).then(() => {
+          thumbnailGenerator == null || thumbnailGenerator.requestThumbnail(fileForThumbnail).then(() => {
             thumbnailGenerator == null || thumbnailGenerator.setOptions({
               thumbnailWidth: this.opts.thumbnailWidth,
             });
@@ -904,7 +951,7 @@ export default class Dashboard extends UIPlugin {
         fileCardFor: null,
         activeOverlayType: null,
         showAddFilesPanel: false,
-        activePickerPanel: false,
+        activePickerPanel: undefined,
         showFileEditor: false,
         metaFields: this.opts.metaFields,
         targets: [],
@@ -973,7 +1020,9 @@ export default class Dashboard extends UIPlugin {
       this.uppy.log(`[Dashboard] Dark mode is ${isDarkModeOnFromTheStart ? "on" : "off"}`);
       this.setDarkModeCapability(isDarkModeOnFromTheStart);
       if (this.opts.theme === "auto") {
-        this.darkModeMediaQuery.addListener(this.handleSystemDarkModeChange);
+        var _this$darkModeMediaQu;
+        (_this$darkModeMediaQu = this.darkModeMediaQuery) == null
+          || _this$darkModeMediaQu.addListener(this.handleSystemDarkModeChange);
       }
       _classPrivateFieldLooseBase(this, _addSpecifiedPluginsFromOptions)[_addSpecifiedPluginsFromOptions]();
       _classPrivateFieldLooseBase(this, _autoDiscoverPlugins)[_autoDiscoverPlugins]();
@@ -998,7 +1047,9 @@ export default class Dashboard extends UIPlugin {
         if (plugin) plugin.unmount();
       });
       if (this.opts.theme === "auto") {
-        this.darkModeMediaQuery.removeListener(this.handleSystemDarkModeChange);
+        var _this$darkModeMediaQu2;
+        (_this$darkModeMediaQu2 = this.darkModeMediaQuery) == null
+          || _this$darkModeMediaQu2.removeListener(this.handleSystemDarkModeChange);
       }
       if (this.opts.disablePageScrollWhenModalOpen) {
         document.body.classList.remove("uppy-Dashboard-isFixed");
@@ -1009,61 +1060,17 @@ export default class Dashboard extends UIPlugin {
     this.id = this.opts.id || "Dashboard";
     this.title = "Dashboard";
     this.type = "orchestrator";
-    this.modalName = `uppy-Dashboard-${nanoid()}`;
     this.defaultLocale = locale;
-    const defaultOptions = {
-      target: "body",
-      metaFields: [],
-      trigger: null,
-      inline: false,
-      width: 750,
-      height: 550,
-      thumbnailWidth: 280,
-      thumbnailType: "image/jpeg",
-      waitForThumbnailsBeforeUpload: false,
-      defaultPickerIcon,
-      showLinkToFileUploadResult: false,
-      showProgressDetails: false,
-      hideUploadButton: false,
-      hideCancelButton: false,
-      hideRetryButton: false,
-      hidePauseResumeButton: false,
-      hideProgressAfterFinish: false,
-      doneButtonHandler: () => {
+    (_this$opts4$doneButto = (_this$opts4 = this.opts).doneButtonHandler) != null
+      ? _this$opts4$doneButto
+      : _this$opts4.doneButtonHandler = () => {
         this.uppy.clearUploadedFiles();
         this.requestCloseModal();
-      },
-      note: null,
-      closeModalOnClickOutside: false,
-      closeAfterFinish: false,
-      singleFileFullScreen: true,
-      disableStatusBar: false,
-      disableInformer: false,
-      disableThumbnailGenerator: false,
-      disablePageScrollWhenModalOpen: true,
-      animateOpenClose: true,
-      fileManagerSelectionType: "files",
-      proudlyDisplayPoweredByUppy: true,
-      onRequestCloseModal: () => this.closeModal(),
-      showSelectedFiles: true,
-      showRemoveButtonAfterComplete: false,
-      browserBackButtonClose: false,
-      showNativePhotoCameraButton: false,
-      showNativeVideoCameraButton: false,
-      theme: "light",
-      autoOpenFileEditor: false,
-      disabled: false,
-      disableLocalFiles: false,
-    };
-    this.opts = {
-      ...defaultOptions,
-      ..._opts,
-    };
+      };
+    (_this$opts5$onRequest = (_this$opts5 = this.opts).onRequestCloseModal) != null
+      ? _this$opts5$onRequest
+      : _this$opts5.onRequestCloseModal = () => this.closeModal();
     this.i18nInit();
-    this.superFocus = createSuperFocus();
-    this.ifFocusedOnUppyRecently = false;
-    this.makeDashboardInsidesVisibleAnywayTimeout = null;
-    this.removeDragOverClassTimeout = null;
   }
 }
 Dashboard.VERSION = packageJson.version;
diff --git a/packages/@uppy/dashboard/lib/components/AddFiles.js b/packages/@uppy/dashboard/lib/components/AddFiles.js
index 51ad6b0..48fbe1b 100644
--- a/packages/@uppy/dashboard/lib/components/AddFiles.js
+++ b/packages/@uppy/dashboard/lib/components/AddFiles.js
@@ -224,6 +224,7 @@ class AddFiles extends Component {
       );
     };
     this.renderAcquirer = acquirer => {
+      var _this$props$activePic;
       return h(
         "div",
         {
@@ -240,7 +241,9 @@ class AddFiles extends Component {
             tabIndex: 0,
             "data-cy": acquirer.id,
             "aria-controls": `uppy-DashboardContent-panel--${acquirer.id}`,
-            "aria-selected": this.props.activePickerPanel.id === acquirer.id,
+            "aria-selected":
+              ((_this$props$activePic = this.props.activePickerPanel) == null ? void 0 : _this$props$activePic.id)
+                === acquirer.id,
             "data-uppy-super-focusable": true,
             onClick: () => this.props.showPanel(acquirer.id),
           },
@@ -370,7 +373,7 @@ class AddFiles extends Component {
       uppy: uppyBranding,
     });
     return h("a", {
-      tabIndex: "-1",
+      tabIndex: -1,
       href: "https://uppy.io",
       rel: "noreferrer noopener",
       target: "_blank",
diff --git a/packages/@uppy/dashboard/lib/components/Dashboard.js b/packages/@uppy/dashboard/lib/components/Dashboard.js
index 8132c43..b1edc75 100644
--- a/packages/@uppy/dashboard/lib/components/Dashboard.js
+++ b/packages/@uppy/dashboard/lib/components/Dashboard.js
@@ -90,7 +90,7 @@ export default function Dashboard(props) {
       {
         className: "uppy-Dashboard-inner",
         "aria-modal": !props.inline && "true",
-        role: !props.inline && "dialog",
+        role: props.inline ? undefined : "dialog",
         style: {
           width: props.inline && props.width ? props.width : "",
           height: props.inline && props.height ? props.height : "",
diff --git a/packages/@uppy/dashboard/lib/components/FileItem/Buttons/index.js b/packages/@uppy/dashboard/lib/components/FileItem/Buttons/index.js
index 66d9e0c..bd1d585 100644
--- a/packages/@uppy/dashboard/lib/components/FileItem/Buttons/index.js
+++ b/packages/@uppy/dashboard/lib/components/FileItem/Buttons/index.js
@@ -185,7 +185,7 @@ export default function Buttons(props) {
         i18n: i18n,
         file: file,
         uppy: uppy,
-        onClick: () => props.uppy.removeFile(file.id, "removed-by-user"),
+        onClick: () => uppy.removeFile(file.id, "removed-by-user"),
       })
       : null,
   );
diff --git a/packages/@uppy/dashboard/lib/components/FileItem/FilePreviewAndLink/index.js b/packages/@uppy/dashboard/lib/components/FileItem/FilePreviewAndLink/index.js
index ee882f7..0924085 100644
--- a/packages/@uppy/dashboard/lib/components/FileItem/FilePreviewAndLink/index.js
+++ b/packages/@uppy/dashboard/lib/components/FileItem/FilePreviewAndLink/index.js
@@ -11,7 +11,7 @@ export default function FilePreviewAndLink(props) {
     showLinkToFileUploadResult,
   } = props;
   const white = "rgba(255, 255, 255, 0.5)";
-  const previewBackgroundColor = file.preview ? white : getFileTypeIcon(props.file.type).color;
+  const previewBackgroundColor = file.preview ? white : getFileTypeIcon(file.type).color;
   return h(
     "div",
     {
diff --git a/packages/@uppy/dashboard/lib/components/FileItem/MetaErrorMessage.js b/packages/@uppy/dashboard/lib/components/FileItem/MetaErrorMessage.js
index d33d57b..a6588d5 100644
--- a/packages/@uppy/dashboard/lib/components/FileItem/MetaErrorMessage.js
+++ b/packages/@uppy/dashboard/lib/components/FileItem/MetaErrorMessage.js
@@ -4,7 +4,7 @@ const metaFieldIdToName = (metaFieldId, metaFields) => {
   const field = fields.filter(f => f.id === metaFieldId);
   return field[0].name;
 };
-export default function renderMissingMetaFieldsError(props) {
+export default function MetaErrorMessage(props) {
   const {
     file,
     toggleFileCard,
diff --git a/packages/@uppy/dashboard/lib/components/FileList.js b/packages/@uppy/dashboard/lib/components/FileList.js
index c445e4c..a407d68 100644
--- a/packages/@uppy/dashboard/lib/components/FileList.js
+++ b/packages/@uppy/dashboard/lib/components/FileList.js
@@ -16,7 +16,7 @@ function chunks(list, size) {
   if (currentChunk.length) chunked.push(currentChunk);
   return chunked;
 }
-export default (_ref => {
+export default function FileList(_ref) {
   let {
     id,
     error,
@@ -52,7 +52,7 @@ export default (_ref => {
     if (recoveredState) fileIds.sort(sortByGhostComesFirst);
     return chunks(fileIds, itemsPerRow);
   }, [files, itemsPerRow, recoveredState]);
-  const renderRow = row =>
+  const renderRow = (row) =>
     h(
       "div",
       {
@@ -104,4 +104,4 @@ export default (_ref => {
     renderRow: renderRow,
     rowHeight: rowHeight,
   });
-});
+}
diff --git a/packages/@uppy/dashboard/lib/components/Slide.js b/packages/@uppy/dashboard/lib/components/Slide.js
index 0f24d3f..459cdba 100644
--- a/packages/@uppy/dashboard/lib/components/Slide.js
+++ b/packages/@uppy/dashboard/lib/components/Slide.js
@@ -59,5 +59,4 @@ function Slide(_ref) {
     className: classNames(className, cachedChildren.props.className),
   });
 }
-
 export default Slide;
diff --git a/packages/@uppy/dashboard/lib/utils/copyToClipboard.js b/packages/@uppy/dashboard/lib/utils/copyToClipboard.js
index 5060b7c..ed94e73 100644
--- a/packages/@uppy/dashboard/lib/utils/copyToClipboard.js
+++ b/packages/@uppy/dashboard/lib/utils/copyToClipboard.js
@@ -19,7 +19,7 @@ export default function copyToClipboard(textToCopy, fallbackString) {
     textArea.value = textToCopy;
     document.body.appendChild(textArea);
     textArea.select();
-    const magicCopyFailed = () => {
+    const magicCopyFailed = cause => {
       document.body.removeChild(textArea);
       window.prompt(fallbackString, textToCopy);
       resolve();

id: string
name: string
placeholder?: string
render?: (field: FieldRenderOptions, h: PreactRender) => any
Copy link
Member

Choose a reason for hiding this comment

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

Since this is user facing, can we be more specific than any for the return value?

Copy link
Member Author

Choose a reason for hiding this comment

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

I simply copy/pasted the existing type:

interface MetaField {
id: string
name: string
placeholder?: string
render?: (field: FieldRenderOptions, h: PreactRender) => any
}

Copy link
Member

Choose a reason for hiding this comment

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

I don't mind some any's for when we can't work out internals, but user facing types should be sound. Can we improve this?

Copy link
Member Author

Choose a reason for hiding this comment

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

We certainly can, I'd rather not be the one doing it though. I think the improvement can (and should) happen independently from this PR.

Copy link
Member

@Murderlon Murderlon Mar 20, 2024

Choose a reason for hiding this comment

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

It's just changing one return type? Am I misunderstanding something or why so reluctant?

Note that I'm asking you to change it in the source, not the types folder which we currently ship.

Copy link
Member Author

Choose a reason for hiding this comment

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

Someone needs to do the work of figuring out what this used for, and what type we should put instead of any; as I said, I'd rather not be the one doing that work.

Copy link
Member

Choose a reason for hiding this comment

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

You submit a PR with +1,992 −1,142 changes, I'm asking you for one change in an important user facing type, while normally a PR this size has dozens of comments. You are the expert on this types because you wrote them, forcing someone else to contextualize what you already did sounds more unfair to me than letting the author of the PR resolve a single request.

Copy link
Member Author

Choose a reason for hiding this comment

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

You are the expert on this types because you wrote them

I did not write this type, according to git blame, Renée did.

forcing someone else to contextualize what you already did sounds more unfair to me than letting the author of the PR resolve a single request

Sorry if that's how I came across, but AFAICT I'm in no way in a better position than someone else to figure this out.

You submit a PR with +1,992 −1,142 changes

That's precisely why I'd rather not be the one doing that work.

Copy link
Member

Choose a reason for hiding this comment

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

1e733c1 took two minutes. I hope this serves as an inspiration that it's sometimes better to just take a look than argue.

@aduh95 aduh95 marked this pull request as ready for review March 19, 2024 19:20
@aduh95 aduh95 merged commit 5fcdd8f into main Mar 20, 2024
16 checks passed
@aduh95 aduh95 deleted the dashboard-ts branch March 20, 2024 12:23
@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.

None yet

2 participants