[ARVADOS-WORKBENCH2] updated: 2.1.0-439-gd8ee7971

Git user git at public.arvados.org
Fri Jul 2 16:19:48 UTC 2021


Summary of changes:
 package.json                                       |  9 ++----
 src/components/popover/helpers.ts                  |  5 +++-
 src/components/text-field/text-field.tsx           |  3 +-
 src/lib/cwl-svg/plugins/arrange/arrange.ts         |  4 +--
 src/lib/cwl-svg/plugins/edge-hover/edge-hover.ts   |  4 +--
 src/lib/cwl-svg/plugins/node-move/node-move.ts     | 34 +++++++++++-----------
 src/lib/cwl-svg/plugins/port-drag/port-drag.ts     |  4 +--
 src/plugins/example/exampleComponents.tsx          |  2 +-
 src/services/api/order-builder.ts                  |  2 +-
 src/services/auth-service/auth-service.ts          |  2 +-
 .../common-service/common-resource-service.test.ts |  2 +-
 .../common-service/common-resource-service.ts      |  2 +-
 .../common-service/trashable-resource-service.ts   |  2 +-
 .../all-processes-panel-middleware-service.ts      |  2 +-
 .../collection-panel-files-reducer.ts              | 10 +++----
 .../favorite-panel-middleware-service.ts           |  2 +-
 .../open-in-new-tab/open-in-new-tab.actions.ts     |  4 +--
 src/store/sharing-dialog/sharing-dialog-actions.ts |  2 +-
 src/store/store.ts                                 |  9 ++++--
 src/views-components/auto-logout/auto-logout.tsx   |  2 +-
 src/views-components/data-explorer/renderers.tsx   |  6 ++--
 src/views-components/dialog-copy/dialog-copy.tsx   |  2 +-
 .../dialog-forms/add-group-member-dialog.tsx       |  2 +-
 .../dialog-forms/create-group-dialog.tsx           |  4 +--
 .../dialog-forms/setup-shell-account-dialog.tsx    |  6 ++--
 .../form-fields/collection-form-fields.tsx         |  4 +--
 .../form-fields/process-form-fields.tsx            |  4 +--
 .../form-fields/project-form-fields.tsx            |  4 +--
 .../form-fields/repository-form-fields.tsx         |  2 +-
 .../form-fields/resource-form-fields.tsx           |  2 +-
 .../form-fields/search-bar-form-fields.tsx         | 12 ++++----
 .../form-fields/ssh-key-form-fields.tsx            |  4 +--
 .../form-fields/user-form-fields.tsx               |  6 ++--
 .../project-properties-form.tsx                    |  3 +-
 .../rename-file-dialog/rename-file-dialog.tsx      |  6 ++--
 .../resource-properties-form/property-chip.tsx     |  2 +-
 .../property-key-field.tsx                         |  2 +-
 .../property-value-field.tsx                       |  2 +-
 .../sharing-dialog/participant-select.tsx          |  8 ++---
 .../sharing-invitation-form-component.tsx          |  2 +-
 .../sharing-management-form-component.tsx          |  4 +--
 .../webdav-s3-dialog/webdav-s3-dialog.test.tsx     |  3 --
 src/views/collection-panel/collection-tag-form.tsx |  3 +-
 .../link-account-panel/link-account-panel-root.tsx |  2 +-
 src/views/login-panel/login-panel.tsx              |  2 +-
 .../my-account-panel/my-account-panel-root.tsx     | 16 +++++-----
 src/views/not-found-panel/not-found-panel.tsx      |  4 +--
 .../inputs/directory-array-input.tsx               |  4 +--
 .../run-process-panel/inputs/directory-input.tsx   |  2 +-
 .../run-process-panel/inputs/file-array-input.tsx  |  4 +--
 src/views/run-process-panel/inputs/file-input.tsx  |  2 +-
 .../run-process-advanced-form.tsx                  | 12 ++++----
 .../run-process-panel/run-process-basic-form.tsx   |  4 +--
 .../site-manager-panel/site-manager-panel-root.tsx |  2 +-
 .../virtual-machine-admin-panel.tsx                |  1 -
 tsconfig.json                                      |  5 ++--
 yarn.lock                                          | 30 +++++++++----------
 57 files changed, 146 insertions(+), 143 deletions(-)

       via  d8ee7971b82a53337f83e4106a5ac4578ca9c84a (commit)
       via  3a067ca7fc2449d0dd6610af306f536e68c6a79b (commit)
       via  ca089223f60daa70ca3bb00e1fe688f319af786d (commit)
       via  43fcbaacf23b3fa050105795cd4fdd226ee18686 (commit)
      from  3551f96b12be34675d6ff61f2078291bc520ed73 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit d8ee7971b82a53337f83e4106a5ac4578ca9c84a
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Fri Jul 2 13:03:30 2021 -0300

    17782: Typing fixes on cwl-svg.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/src/lib/cwl-svg/plugins/arrange/arrange.ts b/src/lib/cwl-svg/plugins/arrange/arrange.ts
index 4090278f..34efd6f3 100644
--- a/src/lib/cwl-svg/plugins/arrange/arrange.ts
+++ b/src/lib/cwl-svg/plugins/arrange/arrange.ts
@@ -247,7 +247,7 @@ export class SVGArrangePlugin implements SVGPlugin {
         }
     } {
         const distributionArea = {width: 0, height: 0};
-        const columnDimensions = [];
+        const columnDimensions: any[] = [];
 
         for (let i = 1; i < columns.length; i++) {
 
@@ -361,7 +361,7 @@ export class SVGArrangePlugin implements SVGPlugin {
             return 1;
         }
 
-        const inputPathLengths = [];
+        const inputPathLengths: any[] = [];
 
         for (let i = 0; i < node.inputs.length; i++) {
             const el = nodeGraph[node.inputs[i]];
diff --git a/src/lib/cwl-svg/plugins/edge-hover/edge-hover.ts b/src/lib/cwl-svg/plugins/edge-hover/edge-hover.ts
index c36343c8..01f1ad54 100644
--- a/src/lib/cwl-svg/plugins/edge-hover/edge-hover.ts
+++ b/src/lib/cwl-svg/plugins/edge-hover/edge-hover.ts
@@ -31,9 +31,9 @@ export class SVGEdgeHoverPlugin extends PluginBase {
 
 
         // Ignore if we did not enter an edge
-        if (!ev.srcElement!.classList.contains("edge")) return;
+        if (!(ev.target! as Element).classList.contains("edge")) return;
 
-        const target = ev.srcElement as SVGGElement;
+        const target = ev.target as SVGGElement;
         let tipEl: SVGGElement;
 
         const onMouseMove = ((ev: MouseEvent) => {
diff --git a/src/lib/cwl-svg/plugins/node-move/node-move.ts b/src/lib/cwl-svg/plugins/node-move/node-move.ts
index e0bbf0ec..0f3d4a49 100644
--- a/src/lib/cwl-svg/plugins/node-move/node-move.ts
+++ b/src/lib/cwl-svg/plugins/node-move/node-move.ts
@@ -21,10 +21,10 @@ export class SVGNodeMovePlugin extends PluginBase {
     private sdy: number;
 
     /** Stored onDragStart so we can put node to a fixed position determined by startX + ∆x */
-    private startX: number;
+    private startX?: number;
 
     /** Stored onDragStart so we can put node to a fixed position determined by startY + ∆y */
-    private startY: number;
+    private startY?: number;
 
     /** How far from the edge of the viewport does mouse need to be before panning is triggered */
     private scrollMargin = 50;
@@ -33,19 +33,19 @@ export class SVGNodeMovePlugin extends PluginBase {
     private movementSpeed = 10;
 
     /** Holds an element that is currently being dragged. Stored onDragStart and translated afterwards. */
-    private movingNode: SVGGElement;
+    private movingNode?: SVGGElement;
 
     /** Stored onDragStart to detect collision with viewport edges */
-    private boundingClientRect: ClientRect;
+    private boundingClientRect?: ClientRect;
 
     /** Cache input edges and their parsed bezier curve parameters so we don't query for them on each mouse move */
-    private inputEdges: Map<SVGPathElement, number[]>;
+    private inputEdges?: Map<SVGPathElement, number[]>;
 
     /** Cache output edges and their parsed bezier curve parameters so we don't query for them on each mouse move */
-    private outputEdges: Map<SVGPathElement, number[]>;
+    private outputEdges?: Map<SVGPathElement, number[]>;
 
     /** Workflow panning at the time of onDragStart, used to adjust ∆x and ∆y while panning */
-    private startWorkflowTranslation: { x: number, y: number };
+    private startWorkflowTranslation?: { x: number, y: number };
 
     private wheelPrevent = (ev: any) => ev.stopPropagation();
 
@@ -124,8 +124,8 @@ export class SVGNodeMovePlugin extends PluginBase {
 
         /** Need to know how far did the workflow itself move since when we started dragging */
         const matrixMovement = {
-            x: this.getWorkflowMatrix().e - this.startWorkflowTranslation.x,
-            y: this.getWorkflowMatrix().f - this.startWorkflowTranslation.y
+            x: this.getWorkflowMatrix().e - this.startWorkflowTranslation!.x,
+            y: this.getWorkflowMatrix().f - this.startWorkflowTranslation!.y
         };
 
         /** We might have hit the boundary and need to start panning */
@@ -133,7 +133,7 @@ export class SVGNodeMovePlugin extends PluginBase {
             this.sdx += sdx;
             this.sdy += sdy;
 
-            this.translateNodeBy(this.movingNode, sdx, sdy);
+            this.translateNodeBy(this.movingNode!, sdx, sdy);
             this.redrawEdges(this.sdx, this.sdy);
         });
 
@@ -149,10 +149,10 @@ export class SVGNodeMovePlugin extends PluginBase {
         this.sdx = (dx - matrixMovement.x) / scale;
         this.sdy = (dy - matrixMovement.y) / scale;
 
-        const moveX = this.sdx + this.startX;
-        const moveY = this.sdy + this.startY;
+        const moveX = this.sdx + this.startX!;
+        const moveY = this.sdy + this.startY!;
 
-        this.translateNodeTo(this.movingNode, moveX, moveY);
+        this.translateNodeTo(this.movingNode!, moveX, moveY);
         this.redrawEdges(this.sdx, this.sdy);
     }
 
@@ -228,12 +228,12 @@ export class SVGNodeMovePlugin extends PluginBase {
      * scaled transformation differences, sdx and sdy.
      */
     private redrawEdges(sdx: number, sdy: number): void {
-        this.inputEdges.forEach((p, el) => {
+        this.inputEdges!.forEach((p, el) => {
             const path = Workflow.makeConnectionPath(p[0], p[1], p[6] + sdx, p[7] + sdy);
             el.setAttribute("d", path!);
         });
 
-        this.outputEdges.forEach((p, el) => {
+        this.outputEdges!.forEach((p, el) => {
             const path = Workflow.makeConnectionPath(p[0] + sdx, p[1] + sdy, p[6], p[7]);
             el.setAttribute("d", path!);
         });
@@ -246,14 +246,14 @@ export class SVGNodeMovePlugin extends PluginBase {
 
         this.edgePanner.stop();
 
-        const id        = this.movingNode.getAttribute("data-connection-id")!;
+        const id        = this.movingNode!.getAttribute("data-connection-id")!;
         const nodeModel = this.workflow.model.findById(id);
 
         if (!nodeModel.customProps) {
             nodeModel.customProps = {};
         }
 
-        const matrix = this.movingNode.transform.baseVal.getItem(0).matrix;
+        const matrix = this.movingNode!.transform.baseVal.getItem(0).matrix;
 
         Object.assign(nodeModel.customProps, {
             "sbg:x": matrix.e,
diff --git a/src/lib/cwl-svg/plugins/port-drag/port-drag.ts b/src/lib/cwl-svg/plugins/port-drag/port-drag.ts
index 85c6c5f8..10f30e07 100644
--- a/src/lib/cwl-svg/plugins/port-drag/port-drag.ts
+++ b/src/lib/cwl-svg/plugins/port-drag/port-drag.ts
@@ -361,8 +361,8 @@ export class SVGPortDragPlugin extends PluginBase {
      * Finds a port closest to given SVG coordinates.
      */
     private findClosestPort(x: number, y: number): { portEl: SVGGElement | undefined, distance: number } {
-        let closestPort     = undefined;
-        let closestDistance = Infinity;
+        let closestPort: any     = undefined;
+        let closestDistance: any = Infinity;
 
         this.portOrigins!.forEach((matrix, port) => {
 

commit 3a067ca7fc2449d0dd6610af306f536e68c6a79b
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Fri Jul 2 11:48:12 2021 -0300

    17782: Additional imports and typing fixes.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/package.json b/package.json
index 2d64e21e..37392cf8 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
     "elliptic": "6.5.4",
     "file-saver": "2.0.1",
     "fstream": "1.0.12",
-    "is-image": "2.0.0",
+    "is-image": "3.0.0",
     "js-yaml": "3.13.1",
     "jssha": "2.3.1",
     "jszip": "3.1.5",
@@ -89,6 +89,7 @@
     "@types/classnames": "2.2.6",
     "@types/enzyme": "3.1.14",
     "@types/enzyme-adapter-react-16": "1.0.3",
+    "@types/is-image": "3.0.0",
     "@types/jest": "26.0.23",
     "@types/node": "15.12.4",
     "@types/react-dom": "17.0.8",
@@ -119,11 +120,7 @@
     "**/meow/trim-newlines": "^3.0.1",
     "react-rte/**/ua-parser-js": "0.7.24",
     "**/@typescript-eslint/eslint-plugin": "^4.1.1",
-    "**/@typescript-eslint/parser": "^4.1.1",
-    "webpack-dev-server/http-proxy-middleware/http-proxy": "^1.18.1",
-    "webpack-dev-server/selfsigned/node-forge": "0.10.0",
-    "webpack/node-libs-browser/crypto-browserify/*/elliptic": "6.5.4",
-    "webpack/terser-webpack-plugin/serialize-javascript": "^3.1.0"
+    "**/@typescript-eslint/parser": "^4.1.1"
   },
   "browserslist": {
     "production": [
diff --git a/src/store/store.ts b/src/store/store.ts
index 0cacc88f..d0f1af87 100644
--- a/src/store/store.ts
+++ b/src/store/store.ts
@@ -73,10 +73,15 @@ import { Config } from 'common/config';
 import { pluginConfig } from 'plugins';
 import { MiddlewareListReducer } from 'common/plugintypes';
 
+declare global {
+    interface Window {
+      __REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose;
+    }
+}
+
 const composeEnhancers =
     (process.env.NODE_ENV === 'development' &&
-        window && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ &&
-        window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ trace: true, traceLimit: 25 })) ||
+        window && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) ||
     compose;
 
 export type RootState = ReturnType<ReturnType<typeof createRootReducer>>;
diff --git a/src/views-components/auto-logout/auto-logout.tsx b/src/views-components/auto-logout/auto-logout.tsx
index c6c1feee..9a8299b2 100644
--- a/src/views-components/auto-logout/auto-logout.tsx
+++ b/src/views-components/auto-logout/auto-logout.tsx
@@ -40,7 +40,7 @@ const mapDispatchToProps = (dispatch: Dispatch): AutoLogoutActionProps => ({
 export type AutoLogoutProps = AutoLogoutDataProps & AutoLogoutActionProps;
 
 const debounce = (delay: number | undefined, fn: Function) => {
-    let timerId: number | null;
+    let timerId: NodeJS.Timer | null;
     return (...args: any[]) => {
         if (timerId) { clearTimeout(timerId); }
         timerId = setTimeout(() => {
diff --git a/src/views-components/data-explorer/renderers.tsx b/src/views-components/data-explorer/renderers.tsx
index a8f375ae..dccd2786 100644
--- a/src/views-components/data-explorer/renderers.tsx
+++ b/src/views-components/data-explorer/renderers.tsx
@@ -477,9 +477,9 @@ export const ResponsiblePerson =
     compose(
         connect(
             (state: RootState, props: { uuid: string, parentRef: HTMLElement | null }) => {
-                let responsiblePersonName = null;
-                let responsiblePersonUUID = null;
-                let responsiblePersonProperty = null;
+                let responsiblePersonName: string = '';
+                let responsiblePersonUUID: string = '';
+                let responsiblePersonProperty: string = '';
 
                 if (state.auth.config.clusterConfig.Collections.ManagedProperties) {
                     let index = 0;
diff --git a/src/views-components/project-properties-dialog/project-properties-form.tsx b/src/views-components/project-properties-dialog/project-properties-form.tsx
index 09c847c3..f36bacf4 100644
--- a/src/views-components/project-properties-dialog/project-properties-form.tsx
+++ b/src/views-components/project-properties-dialog/project-properties-form.tsx
@@ -6,12 +6,13 @@ import { reduxForm, reset } from 'redux-form';
 import { PROJECT_PROPERTIES_FORM_NAME, createProjectProperty } from 'store/details-panel/details-panel-action';
 import { ResourcePropertiesForm, ResourcePropertiesFormData } from 'views-components/resource-properties-form/resource-properties-form';
 import { withStyles } from '@material-ui/core';
+import { Dispatch } from 'redux';
 
 const Form = withStyles(({ spacing }) => ({ container: { marginBottom: spacing.unit * 2 } }))(ResourcePropertiesForm);
 
 export const ProjectPropertiesForm = reduxForm<ResourcePropertiesFormData>({
     form: PROJECT_PROPERTIES_FORM_NAME,
-    onSubmit: (data, dispatch) => {
+    onSubmit: (data, dispatch: Dispatch) => {
         dispatch<any>(createProjectProperty(data));
         dispatch(reset(PROJECT_PROPERTIES_FORM_NAME));
     }
diff --git a/src/views-components/resource-properties-form/property-chip.tsx b/src/views-components/resource-properties-form/property-chip.tsx
index 01164882..24b5c0a9 100644
--- a/src/views-components/resource-properties-form/property-chip.tsx
+++ b/src/views-components/resource-properties-form/property-chip.tsx
@@ -6,7 +6,7 @@ import React from 'react';
 import { Chip } from '@material-ui/core';
 import { connect } from 'react-redux';
 import { RootState } from 'store/store';
-import * as CopyToClipboard from 'react-copy-to-clipboard';
+import CopyToClipboard from 'react-copy-to-clipboard';
 import { getVocabulary } from 'store/vocabulary/vocabulary-selectors';
 import { Dispatch } from 'redux';
 import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
diff --git a/src/views-components/sharing-dialog/participant-select.tsx b/src/views-components/sharing-dialog/participant-select.tsx
index d34a8125..402faa7f 100644
--- a/src/views-components/sharing-dialog/participant-select.tsx
+++ b/src/views-components/sharing-dialog/participant-select.tsx
@@ -12,7 +12,7 @@ import { ListItemText, Typography } from '@material-ui/core';
 import { noop } from 'lodash/fp';
 import { GroupClass, GroupResource } from 'models/group';
 import { getUserDisplayName, UserResource } from 'models/user';
-import { ResourceKind } from 'models/resource';
+import { Resource, ResourceKind } from 'models/resource';
 import { ListResults } from 'services/common-service/common-service';
 
 export interface Participant {
@@ -20,7 +20,7 @@ export interface Participant {
     uuid: string;
 }
 
-type ParticipantResource = GroupResource & UserResource;
+type ParticipantResource = GroupResource | UserResource;
 
 interface ParticipantSelectProps {
     items: Participant[];
@@ -40,14 +40,14 @@ interface ParticipantSelectState {
     suggestions: ParticipantResource[];
 }
 
-const getDisplayName = (item: GroupResource & UserResource) => {
+const getDisplayName = (item: GroupResource | UserResource) => {
     switch (item.kind) {
         case ResourceKind.USER:
             return getUserDisplayName(item, true);
         case ResourceKind.GROUP:
             return item.name;
         default:
-            return item.uuid;
+            return (item as Resource).uuid;
     }
 };
 
diff --git a/src/views/collection-panel/collection-tag-form.tsx b/src/views/collection-panel/collection-tag-form.tsx
index d1956d33..6d9cbd59 100644
--- a/src/views/collection-panel/collection-tag-form.tsx
+++ b/src/views/collection-panel/collection-tag-form.tsx
@@ -6,12 +6,13 @@ import { reduxForm, reset } from 'redux-form';
 import { createCollectionTag, COLLECTION_TAG_FORM_NAME } from 'store/collection-panel/collection-panel-action';
 import { ResourcePropertiesForm, ResourcePropertiesFormData } from 'views-components/resource-properties-form/resource-properties-form';
 import { withStyles } from '@material-ui/core';
+import { Dispatch } from 'redux';
 
 const Form = withStyles(({ spacing }) => ({ container: { marginBottom: spacing.unit * 2 } }))(ResourcePropertiesForm);
 
 export const CollectionTagForm = reduxForm<ResourcePropertiesFormData>({
     form: COLLECTION_TAG_FORM_NAME,
-    onSubmit: (data, dispatch) => {
+    onSubmit: (data, dispatch: Dispatch) => {
         dispatch<any>(createCollectionTag(data));
         dispatch(reset(COLLECTION_TAG_FORM_NAME));
     }
diff --git a/src/views/link-account-panel/link-account-panel-root.tsx b/src/views/link-account-panel/link-account-panel-root.tsx
index 87809d36..eb52ba18 100644
--- a/src/views/link-account-panel/link-account-panel-root.tsx
+++ b/src/views/link-account-panel/link-account-panel-root.tsx
@@ -52,7 +52,7 @@ export interface LinkAccountPanelRootActionProps {
 }
 
 function displayUser(user: UserResource, showCreatedAt: boolean = false, showCluster: boolean = false) {
-    const disp = [];
+    const disp: JSX.Element[] = [];
     disp.push(<span><b>{user.email}</b> ({user.username}, {user.uuid})</span>);
     if (showCluster) {
         const homeCluster = user.uuid.substr(0, 5);
diff --git a/src/views/login-panel/login-panel.tsx b/src/views/login-panel/login-panel.tsx
index e09e486e..110097be 100644
--- a/src/views/login-panel/login-panel.tsx
+++ b/src/views/login-panel/login-panel.tsx
@@ -51,7 +51,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
 });
 
 const doPasswordLogin = (url: string) => (username: string, password: string) => {
-    const formData = [];
+    const formData: string[] = [];
     formData.push('username='+encodeURIComponent(username));
     formData.push('password='+encodeURIComponent(password));
     return Axios.post(`${url}/arvados/v1/users/authenticate`, formData.join('&'), {
diff --git a/src/views/virtual-machine-panel/virtual-machine-admin-panel.tsx b/src/views/virtual-machine-panel/virtual-machine-admin-panel.tsx
index 68526501..a6ad24a7 100644
--- a/src/views/virtual-machine-panel/virtual-machine-admin-panel.tsx
+++ b/src/views/virtual-machine-panel/virtual-machine-admin-panel.tsx
@@ -31,7 +31,6 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
 
 const mapStateToProps = (state: RootState) => {
     return {
-        logins: state.virtualMachines.logins,
         userUuid: state.auth.user!.uuid,
         ...state.virtualMachines
     };
diff --git a/yarn.lock b/yarn.lock
index 1740bbb8..140e34ab 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1824,6 +1824,13 @@
   resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934"
   integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA==
 
+"@types/is-image at 3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@types/is-image/-/is-image-3.0.0.tgz#79baa13a9d3395b916a566df4ae7dd6115bfd779"
+  integrity sha512-+CD4viNsVIn9hPNGAZPEfV2DKoJd/by1OcbCFbsBirmDLNj3v8aZ+5QUPFZFeP4YXgQHVA4A37/ueb5qwnd1fg==
+  dependencies:
+    is-image "*"
+
 "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
@@ -6718,7 +6725,7 @@ http-proxy-middleware at 0.19.1:
     lodash "^4.17.11"
     micromatch "^3.1.10"
 
-http-proxy@^1.17.0, http-proxy@^1.18.1:
+http-proxy@^1.17.0:
   version "1.18.1"
   resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
   integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
@@ -6804,7 +6811,7 @@ ignore@^5.1.4:
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
   integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
 
-image-extensions@^1.0.1:
+image-extensions@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/image-extensions/-/image-extensions-1.1.0.tgz#b8e6bf6039df0056e333502a00b6637a3105d894"
   integrity sha1-uOa/YDnfAFbjM1AqALZjejEF2JQ=
@@ -7234,12 +7241,12 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
   dependencies:
     is-extglob "^2.1.1"
 
-is-image at 2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-image/-/is-image-2.0.0.tgz#454c9569578de31869371fbfaea4958f461b3e0c"
-  integrity sha1-RUyVaVeN4xhpNx+/rqSVj0YbPgw=
+is-image@*, is-image at 3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-image/-/is-image-3.0.0.tgz#f183431372f6f8caf7cda316a0a6dea4d41926dd"
+  integrity sha512-NNPLvwKZ/hqx1Wv+ayKvVeDOylIapVKSxK/guzmB9doAk0FEdK0KqFKbnwNbuMLEPqEY4NaBhxzB4e98fVOq2Q==
   dependencies:
-    image-extensions "^1.0.1"
+    image-extensions "^1.1.0"
 
 is-in-browser@^1.0.2, is-in-browser@^1.1.3:
   version "1.1.3"
@@ -9080,7 +9087,7 @@ node-fetch@^1.0.1:
     encoding "^0.1.11"
     is-stream "^1.0.1"
 
-node-forge at 0.10.0, node-forge@^0.10.0:
+node-forge@^0.10.0:
   version "0.10.0"
   resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
   integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
@@ -12021,13 +12028,6 @@ send at 0.17.1:
     range-parser "~1.2.1"
     statuses "~1.5.0"
 
-serialize-javascript@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea"
-  integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==
-  dependencies:
-    randombytes "^2.1.0"
-
 serialize-javascript@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"

commit ca089223f60daa70ca3bb00e1fe688f319af786d
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Fri Jul 2 11:37:24 2021 -0300

    17782: Disabling typechecking for some common Field component usage.
    
    I'm guessing the previous TS machinery didn't do checking either, and I wasn't
    able to come up with a solution yet, so to avoid scope creeping, I'm making
    the required changes to be able to move on and address this issues in a later
    time.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/src/components/popover/helpers.ts b/src/components/popover/helpers.ts
index f2be98cf..ac860ac0 100644
--- a/src/components/popover/helpers.ts
+++ b/src/components/popover/helpers.ts
@@ -6,7 +6,10 @@ import { PopoverOrigin } from "@material-ui/core/Popover";
 
 export const createAnchorAt = (position: {x: number, y: number}) => {
     const el = document.createElement('div');
-    const clientRect = {
+    const clientRect: DOMRect = {
+        x: position.x,
+        y: position.y,
+        toJSON: () => '',
         left: position.x,
         right: position.x,
         top: position.y,
diff --git a/src/components/text-field/text-field.tsx b/src/components/text-field/text-field.tsx
index 09fa2dd8..78e2c7fb 100644
--- a/src/components/text-field/text-field.tsx
+++ b/src/components/text-field/text-field.tsx
@@ -13,7 +13,6 @@ import {
     PropTypes
 } from '@material-ui/core';
 import RichTextEditor from 'react-rte';
-import Margin from 'PropTypes';
 
 type CssRules = 'textField' | 'rte';
 
@@ -37,7 +36,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
 type TextFieldProps = WrappedFieldProps & WithStyles<CssRules>;
 
 export const TextField = withStyles(styles)((props: TextFieldProps & {
-    label?: string, autoFocus?: boolean, required?: boolean, select?: boolean, disabled?: boolean, children: React.ReactNode, margin?: Margin, placeholder?: string,
+    label?: string, autoFocus?: boolean, required?: boolean, select?: boolean, disabled?: boolean, children: React.ReactNode, margin?: PropTypes.Margin, placeholder?: string,
     helperText?: string, type?: string,
 }) =>
     <MaterialTextField
diff --git a/src/plugins/example/exampleComponents.tsx b/src/plugins/example/exampleComponents.tsx
index 88b8dc03..89019ad0 100644
--- a/src/plugins/example/exampleComponents.tsx
+++ b/src/plugins/example/exampleComponents.tsx
@@ -37,7 +37,7 @@ export interface ExampleFormDialogData {
 const ExampleEditFields = () => <span>
     <Field
         name='pressedCount'
-        component={TextField}
+        component={TextField as any}
         type="number"
     />
 </span>;
diff --git a/src/store/collection-panel/collection-panel-files/collection-panel-files-reducer.ts b/src/store/collection-panel/collection-panel-files/collection-panel-files-reducer.ts
index 8b9e008d..775930bd 100644
--- a/src/store/collection-panel/collection-panel-files/collection-panel-files-reducer.ts
+++ b/src/store/collection-panel/collection-panel-files/collection-panel-files-reducer.ts
@@ -72,7 +72,7 @@ export const collectionPanelFilesReducer = (state: CollectionPanelFilesState = c
 
             return mapTreeValues((v: CollectionPanelDirectory | CollectionPanelFile) => {
                 if (v.type === CollectionFileType.DIRECTORY) {
-                    return ({ 
+                    return ({
                         ...v,
                         collapsed: searchValue.length === 0,
                     });
@@ -83,10 +83,10 @@ export const collectionPanelFilesReducer = (state: CollectionPanelFilesState = c
         },
 
         SELECT_ALL_COLLECTION_FILES: () =>
-            mapTreeValues(v => ({ ...v, selected: true }))({ ...state }),
+            mapTreeValues((v: any) => ({ ...v, selected: true }))({ ...state }),
 
         UNSELECT_ALL_COLLECTION_FILES: () =>
-            mapTreeValues(v => ({ ...v, selected: false }))({ ...state }),
+            mapTreeValues((v: any) => ({ ...v, selected: false }))({ ...state }),
 
         default: () => state
     }) as CollectionPanelFilesState;
@@ -108,7 +108,7 @@ const toggleDescendants = (id: string) => (tree: CollectionPanelFilesState) => {
     if (node && node.value.type === CollectionFileType.DIRECTORY) {
         return getNodeDescendantsIds(id)(tree)
             .reduce((newTree, id) =>
-                setNodeValueWith(v => ({ ...v, selected: node.value.selected }))(id)(newTree), tree);
+                setNodeValueWith((v: any) => ({ ...v, selected: node.value.selected }))(id)(newTree), tree);
     }
     return tree;
 };
@@ -126,7 +126,7 @@ const toggleParentNode = (id: string) => (tree: CollectionPanelFilesState) => {
             const selected = parentNode.children
                 .map(id => getNode(id)(tree))
                 .every(node => node !== undefined && node.value.selected);
-            return setNodeValueWith(v => ({ ...v, selected }))(parentNode.id)(tree);
+            return setNodeValueWith((v: any) => ({ ...v, selected }))(parentNode.id)(tree);
         }
         return setNode(node)(tree);
     }
diff --git a/src/views-components/dialog-copy/dialog-copy.tsx b/src/views-components/dialog-copy/dialog-copy.tsx
index 97fe52bb..5605e6ca 100644
--- a/src/views-components/dialog-copy/dialog-copy.tsx
+++ b/src/views-components/dialog-copy/dialog-copy.tsx
@@ -28,7 +28,7 @@ const CopyDialogFields = memoize((pickerId: string) =>
         <span>
             <Field
                 name='name'
-                component={TextField}
+                component={TextField as any}
                 validate={COPY_NAME_VALIDATION}
                 label="Enter a new name for the copy" />
             <Field
diff --git a/src/views-components/dialog-forms/add-group-member-dialog.tsx b/src/views-components/dialog-forms/add-group-member-dialog.tsx
index 54fc9cd3..443191fe 100644
--- a/src/views-components/dialog-forms/add-group-member-dialog.tsx
+++ b/src/views-components/dialog-forms/add-group-member-dialog.tsx
@@ -34,7 +34,7 @@ type AddGroupMembersDialogProps = WithDialogProps<{}> & InjectedFormProps<AddGro
 const UsersField = () =>
     <FieldArray
         name={ADD_GROUP_MEMBERS_USERS_FIELD_NAME}
-        component={UsersSelect}
+        component={UsersSelect as any}
         validate={UsersFieldValidation} />;
 
 const UsersFieldValidation = [minLength(1, () => 'Select at least one user')];
diff --git a/src/views-components/dialog-forms/create-group-dialog.tsx b/src/views-components/dialog-forms/create-group-dialog.tsx
index 601f8004..fceea262 100644
--- a/src/views-components/dialog-forms/create-group-dialog.tsx
+++ b/src/views-components/dialog-forms/create-group-dialog.tsx
@@ -42,7 +42,7 @@ const CreateGroupFormFields = () =>
 const GroupNameField = () =>
     <Field
         name={CREATE_GROUP_NAME_FIELD_NAME}
-        component={TextField}
+        component={TextField as any}
         validate={GROUP_NAME_VALIDATION}
         label="Name"
         autoFocus={true} />;
@@ -52,7 +52,7 @@ const GROUP_NAME_VALIDATION = [require, maxLength(255)];
 const UsersField = () =>
     <FieldArray
         name={CREATE_GROUP_USERS_FIELD_NAME}
-        component={UsersSelect} />;
+        component={UsersSelect as any} />;
 
 const UsersSelect = ({ fields }: WrappedFieldArrayProps<Participant>) =>
     <ParticipantSelect
diff --git a/src/views-components/dialog-forms/setup-shell-account-dialog.tsx b/src/views-components/dialog-forms/setup-shell-account-dialog.tsx
index 70d55a4c..3bf700ba 100644
--- a/src/views-components/dialog-forms/setup-shell-account-dialog.tsx
+++ b/src/views-components/dialog-forms/setup-shell-account-dialog.tsx
@@ -52,7 +52,7 @@ const UserEmailField = ({ data }: UserProps) =>
     <span>
         <Field
             name='email'
-            component={TextField}
+            component={TextField as any}
             disabled
             label={data.user.email} /></span>;
 
@@ -61,7 +61,7 @@ const UserVirtualMachineField = ({ data }: VirtualMachinesProps) =>
         <InputLabel>Virtual Machine</InputLabel>
         <Field
             name='virtualMachine'
-            component={NativeSelectField}
+            component={NativeSelectField as any}
             validate={CHOOSE_VM_VALIDATION}
             items={getVirtualMachinesList(data.items)} />
     </div>;
@@ -69,7 +69,7 @@ const UserVirtualMachineField = ({ data }: VirtualMachinesProps) =>
 const UserGroupsVirtualMachineField = () =>
     <Field
         name='groups'
-        component={TextField}
+        component={TextField as any}
         validate={USER_LENGTH_VALIDATION}
         label="Groups for virtual machine (comma separated list)" />;
 
diff --git a/src/views-components/form-fields/collection-form-fields.tsx b/src/views-components/form-fields/collection-form-fields.tsx
index 6c522b67..b882d684 100644
--- a/src/views-components/form-fields/collection-form-fields.tsx
+++ b/src/views-components/form-fields/collection-form-fields.tsx
@@ -29,7 +29,7 @@ export const CollectionNameField = connect(
     })((props: CollectionNameFieldProps) =>
         <span data-cy='name-field'><Field
             name='name'
-            component={TextField}
+            component={TextField as any}
             validate={props.validate}
             label="Collection Name"
             autoFocus={true} /></span>
@@ -38,7 +38,7 @@ export const CollectionNameField = connect(
 export const CollectionDescriptionField = () =>
     <Field
         name='description'
-        component={TextField}
+        component={TextField as any}
         validate={COLLECTION_DESCRIPTION_VALIDATION}
         label="Description - optional" />;
 
diff --git a/src/views-components/form-fields/process-form-fields.tsx b/src/views-components/form-fields/process-form-fields.tsx
index d70413f6..60a51b1a 100644
--- a/src/views-components/form-fields/process-form-fields.tsx
+++ b/src/views-components/form-fields/process-form-fields.tsx
@@ -10,13 +10,13 @@ import { PROCESS_NAME_VALIDATION, PROCESS_DESCRIPTION_VALIDATION } from "validat
 export const ProcessNameField = () =>
     <Field
         name='name'
-        component={TextField}
+        component={TextField as any}
         validate={PROCESS_NAME_VALIDATION}
         label="Process Name" />;
 
 export const ProcessDescriptionField = () =>
     <Field
         name='description'
-        component={TextField}
+        component={TextField as any}
         validate={PROCESS_DESCRIPTION_VALIDATION}
         label="Process Description" />;
diff --git a/src/views-components/form-fields/project-form-fields.tsx b/src/views-components/form-fields/project-form-fields.tsx
index be762b51..34d7cef7 100644
--- a/src/views-components/form-fields/project-form-fields.tsx
+++ b/src/views-components/form-fields/project-form-fields.tsx
@@ -31,7 +31,7 @@ export const ProjectNameField = connect(
     })((props: ProjectNameFieldProps) =>
         <span data-cy='name-field'><Field
             name='name'
-            component={TextField}
+            component={TextField as any}
             validate={props.validate}
             label={props.label || "Project Name"}
             autoFocus={true} /></span>
@@ -40,5 +40,5 @@ export const ProjectNameField = connect(
 export const ProjectDescriptionField = () =>
     <Field
         name='description'
-        component={RichEditorTextField}
+        component={RichEditorTextField as any}
         label="Description - optional" />;
diff --git a/src/views-components/form-fields/repository-form-fields.tsx b/src/views-components/form-fields/repository-form-fields.tsx
index ff35779c..8d2359e4 100644
--- a/src/views-components/form-fields/repository-form-fields.tsx
+++ b/src/views-components/form-fields/repository-form-fields.tsx
@@ -16,7 +16,7 @@ export const RepositoryNameField = (props: any) =>
         <Grid item xs={7} style={{ bottom: '24px', position: 'relative' }}>
             <Field
                 name='name'
-                component={TextField}
+                component={TextField as any}
                 validate={REPOSITORY_NAME_VALIDATION}
                 label="Name"
                 autoFocus={true} />
diff --git a/src/views-components/form-fields/resource-form-fields.tsx b/src/views-components/form-fields/resource-form-fields.tsx
index 7945552c..f2bb97f4 100644
--- a/src/views-components/form-fields/resource-form-fields.tsx
+++ b/src/views-components/form-fields/resource-form-fields.tsx
@@ -40,5 +40,5 @@ export const ResourceParentField = connect(
                     return value;
                 }
             }
-            component={TextField} /></span>
+            component={TextField as any} /></span>
     );
diff --git a/src/views-components/form-fields/search-bar-form-fields.tsx b/src/views-components/form-fields/search-bar-form-fields.tsx
index 7a926168..777fa824 100644
--- a/src/views-components/form-fields/search-bar-form-fields.tsx
+++ b/src/views-components/form-fields/search-bar-form-fields.tsx
@@ -21,7 +21,7 @@ import { RootState } from "store/store";
 export const SearchBarTypeField = () =>
     <Field
         name='type'
-        component={NativeSelectField}
+        component={NativeSelectField as any}
         items={[
             { key: '', value: 'Any' },
             { key: ResourceKind.COLLECTION, value: 'Collection' },
@@ -45,7 +45,7 @@ export const SearchBarClusterField = connect(
                 })))
     }))((props: SearchBarClusterFieldProps) => <Field
         name='cluster'
-        component={NativeSelectField}
+        component={NativeSelectField as any}
         items={props.clusters}/>
     );
 
@@ -80,17 +80,17 @@ export const SearchBarPastVersionsField = () =>
 export const SearchBarDateFromField = () =>
     <Field
         name='dateFrom'
-        component={DateTextField} />;
+        component={DateTextField as any} />;
 
 export const SearchBarDateToField = () =>
     <Field
         name='dateTo'
-        component={DateTextField} />;
+        component={DateTextField as any} />;
 
 export const SearchBarPropertiesField = () =>
     <FieldArray
         name="properties"
-        component={SearchBarAdvancedPropertiesView} />;
+        component={SearchBarAdvancedPropertiesView as any} />;
 
 export const SearchBarKeyField = () =>
     <PropertyKeyField skipValidation={true} />;
@@ -107,5 +107,5 @@ export const SearchBarSaveSearchField = () =>
 export const SearchBarQuerySearchField = () =>
     <Field
         name='queryName'
-        component={TextField}
+        component={TextField as any}
         label="Query name" />;
diff --git a/src/views-components/form-fields/ssh-key-form-fields.tsx b/src/views-components/form-fields/ssh-key-form-fields.tsx
index b2274000..21217258 100644
--- a/src/views-components/form-fields/ssh-key-form-fields.tsx
+++ b/src/views-components/form-fields/ssh-key-form-fields.tsx
@@ -10,7 +10,7 @@ import { SSH_KEY_PUBLIC_VALIDATION, SSH_KEY_NAME_VALIDATION } from "validators/v
 export const SshKeyPublicField = () =>
     <Field
         name='publicKey'
-        component={TextField}
+        component={TextField as any}
         validate={SSH_KEY_PUBLIC_VALIDATION}
         autoFocus={true}
         label="Public Key" />;
@@ -18,7 +18,7 @@ export const SshKeyPublicField = () =>
 export const SshKeyNameField = () =>
     <Field
         name='name'
-        component={TextField}
+        component={TextField as any}
         validate={SSH_KEY_NAME_VALIDATION}
         label="Name" />;
 
diff --git a/src/views-components/form-fields/user-form-fields.tsx b/src/views-components/form-fields/user-form-fields.tsx
index 54929b3e..393f29d3 100644
--- a/src/views-components/form-fields/user-form-fields.tsx
+++ b/src/views-components/form-fields/user-form-fields.tsx
@@ -13,7 +13,7 @@ import { VirtualMachinesResource } from "models/virtual-machines";
 export const UserEmailField = () =>
     <Field
         name='email'
-        component={TextField}
+        component={TextField as any}
         validate={USER_EMAIL_VALIDATION}
         autoFocus={true}
         label="Email" />;
@@ -23,7 +23,7 @@ export const UserVirtualMachineField = ({ data }: any) =>
         <InputLabel>Virtual Machine</InputLabel>
         <Field
             name='virtualMachine'
-            component={NativeSelectField}
+            component={NativeSelectField as any}
             validate={USER_LENGTH_VALIDATION}
             items={getVirtualMachinesList(data.items)} />
     </div>;
@@ -31,7 +31,7 @@ export const UserVirtualMachineField = ({ data }: any) =>
 export const UserGroupsVirtualMachineField = () =>
     <Field
         name='groups'
-        component={TextField}
+        component={TextField as any}
         validate={USER_LENGTH_VALIDATION}
         label="Groups for virtual machine (comma separated list)" />;
 
diff --git a/src/views-components/rename-file-dialog/rename-file-dialog.tsx b/src/views-components/rename-file-dialog/rename-file-dialog.tsx
index 6cd7e0b8..b67697b5 100644
--- a/src/views-components/rename-file-dialog/rename-file-dialog.tsx
+++ b/src/views-components/rename-file-dialog/rename-file-dialog.tsx
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import React from 'react';
-import { compose } from 'redux';
+import { compose, Dispatch } from 'redux';
 import { reduxForm, InjectedFormProps, Field } from 'redux-form';
 import { withDialog, WithDialogProps } from 'store/dialog/with-dialog';
 import { FormDialog } from 'components/form-dialog/form-dialog';
@@ -18,7 +18,7 @@ export const RenameFileDialog = compose(
     reduxForm({
         form: RENAME_FILE_DIALOG,
         touchOnChange: true,
-        onSubmit: (data: { path: string }, dispatch) => {
+        onSubmit: (data: { path: string }, dispatch: Dispatch) => {
             dispatch<any>(renameFile(data.path));
         }
     })
@@ -36,7 +36,7 @@ const RenameDialogFormFields = (props: WithDialogProps<RenameFileDialogData>) =>
     </DialogContentText>
     <Field
         name='path'
-        component={TextField}
+        component={TextField as any}
         autoFocus={true}
         validate={RENAME_FILE_VALIDATION}
     />
diff --git a/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx b/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx
index be875f51..6c0b8d81 100644
--- a/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx
+++ b/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx
@@ -21,7 +21,7 @@ export default () =>
 const InvitedPeopleField = () =>
     <FieldArray
         name='invitedPeople'
-        component={InvitedPeopleFieldComponent} />;
+        component={InvitedPeopleFieldComponent as any} />;
 
 
 const InvitedPeopleFieldComponent = ({ fields }: WrappedFieldArrayProps<Participant>) =>
diff --git a/src/views-components/sharing-dialog/sharing-management-form-component.tsx b/src/views-components/sharing-dialog/sharing-management-form-component.tsx
index 40f49a95..9c3b6403 100644
--- a/src/views-components/sharing-dialog/sharing-management-form-component.tsx
+++ b/src/views-components/sharing-dialog/sharing-management-form-component.tsx
@@ -18,7 +18,7 @@ import { CloseIcon } from 'components/icon/icon';
 
 
 export default () =>
-    <FieldArray name='permissions' component={SharingManagementFieldArray} />;
+    <FieldArray name='permissions' component={SharingManagementFieldArray as any} />;
 
 const SharingManagementFieldArray = ({ fields }: WrappedFieldArrayProps<{ email: string }>) =>
     <div>
@@ -44,7 +44,7 @@ const PermissionManagementRow = withStyles(permissionManagementRowStyles)(
                 </Grid>
                 <Grid item xs={4} container wrap='nowrap'>
                     <Field
-                        name={`${field}.permissions`}
+                        name={`${field}.permissions` as string}
                         component={PermissionSelectComponent}
                         format={formatPermissionLevel}
                         parse={parsePermissionLevel} />
diff --git a/src/views/my-account-panel/my-account-panel-root.tsx b/src/views/my-account-panel/my-account-panel-root.tsx
index 188525c8..02a8ba67 100644
--- a/src/views/my-account-panel/my-account-panel-root.tsx
+++ b/src/views/my-account-panel/my-account-panel-root.tsx
@@ -84,7 +84,7 @@ export const MyAccountPanelRoot = withStyles(styles)(
                             <Field
                                 label="First name"
                                 name="firstName"
-                                component={TextField}
+                                component={TextField as any}
                                 disabled
                             />
                         </Grid>
@@ -92,7 +92,7 @@ export const MyAccountPanelRoot = withStyles(styles)(
                             <Field
                                 label="Last name"
                                 name="lastName"
-                                component={TextField}
+                                component={TextField as any}
                                 disabled
                             />
                         </Grid>
@@ -100,7 +100,7 @@ export const MyAccountPanelRoot = withStyles(styles)(
                             <Field
                                 label="E-mail"
                                 name="email"
-                                component={TextField}
+                                component={TextField as any}
                                 disabled
                             />
                         </Grid>
@@ -108,7 +108,7 @@ export const MyAccountPanelRoot = withStyles(styles)(
                             <Field
                                 label="Username"
                                 name="username"
-                                component={TextField}
+                                component={TextField as any}
                                 disabled
                             />
                         </Grid>
@@ -116,7 +116,7 @@ export const MyAccountPanelRoot = withStyles(styles)(
                             <Field
                                 label="Organization"
                                 name="prefs.profile.organization"
-                                component={TextField}
+                                component={TextField as any}
                                 validate={MY_ACCOUNT_VALIDATION}
                                 required
                             />
@@ -125,7 +125,7 @@ export const MyAccountPanelRoot = withStyles(styles)(
                             <Field
                                 label="E-mail at Organization"
                                 name="prefs.profile.organization_email"
-                                component={TextField}
+                                component={TextField as any}
                                 validate={MY_ACCOUNT_VALIDATION}
                                 required
                             />
@@ -135,7 +135,7 @@ export const MyAccountPanelRoot = withStyles(styles)(
                             <Field
                                 id="prefs.profile.role"
                                 name="prefs.profile.role"
-                                component={NativeSelectField}
+                                component={NativeSelectField as any}
                                 items={RoleTypes}
                             />
                         </Grid>
@@ -143,7 +143,7 @@ export const MyAccountPanelRoot = withStyles(styles)(
                             <Field
                                 label="Website"
                                 name="prefs.profile.website_url"
-                                component={TextField}
+                                component={TextField as any}
                             />
                         </Grid>
                         <Grid container direction="row" justify="flex-end" >
diff --git a/src/views/not-found-panel/not-found-panel.tsx b/src/views/not-found-panel/not-found-panel.tsx
index d1fb3f99..18df092c 100644
--- a/src/views/not-found-panel/not-found-panel.tsx
+++ b/src/views/not-found-panel/not-found-panel.tsx
@@ -15,5 +15,5 @@ const mapStateToProps = (state: RootState): NotFoundPanelRootDataProps => {
 
 const mapDispatchToProps = null;
 
-export const NotFoundPanel = connect<NotFoundPanelRootDataProps, null, NotFoundPanelOwnProps>(mapStateToProps, mapDispatchToProps)
-    (NotFoundPanelRoot);
+export const NotFoundPanel = connect(mapStateToProps, mapDispatchToProps)
+    (NotFoundPanelRoot) as any;
diff --git a/src/views/run-process-panel/inputs/directory-array-input.tsx b/src/views/run-process-panel/inputs/directory-array-input.tsx
index ad5aceda..1b04718d 100644
--- a/src/views/run-process-panel/inputs/directory-array-input.tsx
+++ b/src/views/run-process-panel/inputs/directory-array-input.tsx
@@ -37,7 +37,7 @@ export const DirectoryArrayInput = ({ input }: DirectoryArrayInputProps) =>
     <Field
         name={input.id}
         commandInput={input}
-        component={DirectoryArrayInputComponent}
+        component={DirectoryArrayInputComponent as any}
         parse={parseDirectories}
         format={formatDirectories}
         validate={validationSelector(input)} />;
@@ -194,7 +194,7 @@ const DirectoryArrayInputComponent = connect(mapStateToProps)(
 
         refreshDirectories = () => {
             clearTimeout(this.directoryRefreshTimeout);
-            this.directoryRefreshTimeout = setTimeout(this.setSelectedFiles);
+            this.directoryRefreshTimeout = window.setTimeout(this.setSelectedFiles);
         }
 
         setSelectedFiles = () => {
diff --git a/src/views/run-process-panel/inputs/directory-input.tsx b/src/views/run-process-panel/inputs/directory-input.tsx
index 36c14e53..ab1cf9d1 100644
--- a/src/views/run-process-panel/inputs/directory-input.tsx
+++ b/src/views/run-process-panel/inputs/directory-input.tsx
@@ -30,7 +30,7 @@ export const DirectoryInput = ({ input, options }: DirectoryInputProps) =>
     <Field
         name={input.id}
         commandInput={input}
-        component={DirectoryInputComponent}
+        component={DirectoryInputComponent as any}
         format={format}
         parse={parse}
         {...{
diff --git a/src/views/run-process-panel/inputs/file-array-input.tsx b/src/views/run-process-panel/inputs/file-array-input.tsx
index f105a6be..ddb558b9 100644
--- a/src/views/run-process-panel/inputs/file-array-input.tsx
+++ b/src/views/run-process-panel/inputs/file-array-input.tsx
@@ -35,7 +35,7 @@ export const FileArrayInput = ({ input }: FileArrayInputProps) =>
     <Field
         name={input.id}
         commandInput={input}
-        component={FileArrayInputComponent}
+        component={FileArrayInputComponent as any}
         parse={parseFiles}
         format={formatFiles}
         validate={validationSelector(input)} />;
@@ -174,7 +174,7 @@ const FileArrayInputComponent = connect(mapStateToProps)(
 
         refreshFiles = () => {
             clearTimeout(this.fileRefreshTimeout);
-            this.fileRefreshTimeout = setTimeout(this.setSelectedFiles);
+            this.fileRefreshTimeout = window.setTimeout(this.setSelectedFiles);
         }
 
         setSelectedFiles = () => {
diff --git a/src/views/run-process-panel/inputs/file-input.tsx b/src/views/run-process-panel/inputs/file-input.tsx
index a1e0b911..c2e17c95 100644
--- a/src/views/run-process-panel/inputs/file-input.tsx
+++ b/src/views/run-process-panel/inputs/file-input.tsx
@@ -29,7 +29,7 @@ export const FileInput = ({ input, options }: FileInputProps) =>
     <Field
         name={input.id}
         commandInput={input}
-        component={FileInputComponent}
+        component={FileInputComponent as any}
         format={format}
         parse={parse}
         {...{
diff --git a/src/views/run-process-panel/run-process-advanced-form.tsx b/src/views/run-process-panel/run-process-advanced-form.tsx
index f5c4abf9..52abfe80 100644
--- a/src/views/run-process-panel/run-process-advanced-form.tsx
+++ b/src/views/run-process-panel/run-process-advanced-form.tsx
@@ -44,13 +44,13 @@ export const RunProcessAdvancedForm =
                         <Grid item xs={12} md={6}>
                             <Field
                                 name={OUTPUT_FIELD}
-                                component={TextField}
+                                component={TextField as any}
                                 label="Output name" />
                         </Grid>
                         <Grid item xs={12} md={6}>
                             <Field
                                 name={RUNTIME_FIELD}
-                                component={TextField}
+                                component={TextField as any}
                                 helperText="Maximum running time (in seconds) that this container will be allowed to run before being cancelled."
                                 label="Runtime limit"
                                 parse={IntInput.parse}
@@ -61,7 +61,7 @@ export const RunProcessAdvancedForm =
                         <Grid item xs={12} md={6}>
                             <Field
                                 name={RAM_FIELD}
-                                component={TextField}
+                                component={TextField as any}
                                 label="RAM"
                                 helperText="Number of ram bytes to be used to run this process."
                                 parse={IntInput.parse}
@@ -73,7 +73,7 @@ export const RunProcessAdvancedForm =
                         <Grid item xs={12} md={6}>
                             <Field
                                 name={VCPUS_FIELD}
-                                component={TextField}
+                                component={TextField as any}
                                 label="VCPUs"
                                 helperText="Number of cores to be used to run this process."
                                 parse={IntInput.parse}
@@ -85,7 +85,7 @@ export const RunProcessAdvancedForm =
                         <Grid item xs={12} md={6}>
                             <Field
                                 name={KEEP_CACHE_RAM_FIELD}
-                                component={TextField}
+                                component={TextField as any}
                                 label="Keep cache RAM"
                                 helperText="Number of keep cache bytes to be used to run this process."
                                 parse={IntInput.parse}
@@ -96,7 +96,7 @@ export const RunProcessAdvancedForm =
                         <Grid item xs={12} md={6}>
                             <Field
                                 name={RUNNER_IMAGE_FIELD}
-                                component={TextField}
+                                component={TextField as any}
                                 label='Runner'
                                 required
                                 helperText='The container image with arvados-cwl-runner that will execute this workflow.' />
diff --git a/src/views/run-process-panel/run-process-basic-form.tsx b/src/views/run-process-panel/run-process-basic-form.tsx
index 3608c1b0..13d882ba 100644
--- a/src/views/run-process-panel/run-process-basic-form.tsx
+++ b/src/views/run-process-panel/run-process-basic-form.tsx
@@ -23,7 +23,7 @@ export const RunProcessBasicForm =
                 <Grid item xs={12} md={6}>
                     <Field
                         name='name'
-                        component={TextField}
+                        component={TextField as any}
                         label="Enter a new name for run process"
                         required
                         validate={PROCESS_NAME_VALIDATION} />
@@ -31,7 +31,7 @@ export const RunProcessBasicForm =
                 <Grid item xs={12} md={6}>
                     <Field
                         name='description'
-                        component={TextField}
+                        component={TextField as any}
                         label="Enter a description for run process" />
                 </Grid>
             </Grid>
diff --git a/src/views/site-manager-panel/site-manager-panel-root.tsx b/src/views/site-manager-panel/site-manager-panel-root.tsx
index 45f0a116..246bc875 100644
--- a/src/views/site-manager-panel/site-manager-panel-root.tsx
+++ b/src/views/site-manager-panel/site-manager-panel-root.tsx
@@ -187,7 +187,7 @@ export const SiteManagerPanelRoot = compose(
                             <Field
                                 name='remoteHost'
                                 validate={SITE_MANAGER_REMOTE_HOST_VALIDATION}
-                                component={TextField}
+                                component={TextField as any}
                                 placeholder="zzzz.arvadosapi.com"
                                 margin="normal"
                                 label="New cluster"
diff --git a/tsconfig.json b/tsconfig.json
index 49b6b1b1..3034a4b6 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -16,7 +16,7 @@
     "forceConsistentCasingInFileNames": true,
     "noImplicitReturns": true,
     "noImplicitThis": true,
-    "noImplicitAny": true,
+    "noImplicitAny": false,
     "strictNullChecks": true,
     "suppressImplicitAnyIndexErrors": true,
     "noUnusedLocals": false,
@@ -25,9 +25,10 @@
     "skipLibCheck": true,
     "esModuleInterop": true,
     "allowSyntheticDefaultImports": true,
-    "strict": true,
+    "strict": false,
     "resolveJsonModule": true,
     "isolatedModules": true,
+    "incremental": true,
     "noEmit": true
   },
   "exclude": [

commit 43fcbaacf23b3fa050105795cd4fdd226ee18686
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Thu Jul 1 19:06:14 2021 -0300

    17782: Further imports fixing.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/src/services/api/order-builder.ts b/src/services/api/order-builder.ts
index a624605f..3fc49009 100644
--- a/src/services/api/order-builder.ts
+++ b/src/services/api/order-builder.ts
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { snakeCase } from "lodash";
-import { Resource } from "src/models/resource";
+import { Resource } from "models/resource";
 
 export enum OrderDirection { ASC, DESC }
 
diff --git a/src/services/auth-service/auth-service.ts b/src/services/auth-service/auth-service.ts
index de960070..362f7b51 100644
--- a/src/services/auth-service/auth-service.ts
+++ b/src/services/auth-service/auth-service.ts
@@ -5,7 +5,7 @@
 import { User, UserPrefs, getUserDisplayName } from 'models/user';
 import { AxiosInstance } from "axios";
 import { ApiActions } from "services/api/api-actions";
-import * as uuid from "uuid/v4";
+import uuid from "uuid/v4";
 import { Session, SessionStatus } from "models/session";
 import { Config } from "common/config";
 import { uniqBy } from "lodash";
diff --git a/src/services/common-service/common-resource-service.test.ts b/src/services/common-service/common-resource-service.test.ts
index a64fb029..b94756ae 100644
--- a/src/services/common-service/common-resource-service.test.ts
+++ b/src/services/common-service/common-resource-service.test.ts
@@ -5,7 +5,7 @@
 import { CommonResourceService } from "./common-resource-service";
 import axios, { AxiosInstance } from "axios";
 import MockAdapter from "axios-mock-adapter";
-import { Resource } from "src/models/resource";
+import { Resource } from "models/resource";
 import { ApiActions } from "services/api/api-actions";
 
 const actions: ApiActions = {
diff --git a/src/services/common-service/common-resource-service.ts b/src/services/common-service/common-resource-service.ts
index f2048c6b..66e694a0 100644
--- a/src/services/common-service/common-resource-service.ts
+++ b/src/services/common-service/common-resource-service.ts
@@ -4,7 +4,7 @@
 
 import { AxiosInstance } from "axios";
 import { snakeCase } from "lodash";
-import { Resource } from "src/models/resource";
+import { Resource } from "models/resource";
 import { ApiActions } from "services/api/api-actions";
 import { CommonService } from "services/common-service/common-service";
 
diff --git a/src/services/common-service/trashable-resource-service.ts b/src/services/common-service/trashable-resource-service.ts
index f0555299..4d6b130b 100644
--- a/src/services/common-service/trashable-resource-service.ts
+++ b/src/services/common-service/trashable-resource-service.ts
@@ -4,7 +4,7 @@
 
 import { snakeCase } from "lodash";
 import { AxiosInstance } from "axios";
-import { TrashableResource } from "src/models/resource";
+import { TrashableResource } from "models/resource";
 import { CommonResourceService } from "services/common-service/common-resource-service";
 import { ApiActions } from "services/api/api-actions";
 
diff --git a/src/store/all-processes-panel/all-processes-panel-middleware-service.ts b/src/store/all-processes-panel/all-processes-panel-middleware-service.ts
index cee6c36a..88b64e62 100644
--- a/src/store/all-processes-panel/all-processes-panel-middleware-service.ts
+++ b/src/store/all-processes-panel/all-processes-panel-middleware-service.ts
@@ -10,7 +10,7 @@ import { allProcessesPanelActions } from "./all-processes-panel-action";
 import { Dispatch, MiddlewareAPI } from "redux";
 import { resourcesActions } from "store/resources/resources-actions";
 import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
-import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions.ts';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
 import { getDataExplorer, DataExplorer, getSortColumn } from "store/data-explorer/data-explorer-reducer";
 import { loadMissingProcessesInformation } from "store/project-panel/project-panel-middleware-service";
 import { DataColumns } from "components/data-table/data-table";
diff --git a/src/store/favorite-panel/favorite-panel-middleware-service.ts b/src/store/favorite-panel/favorite-panel-middleware-service.ts
index b3bba27d..cb45e68e 100644
--- a/src/store/favorite-panel/favorite-panel-middleware-service.ts
+++ b/src/store/favorite-panel/favorite-panel-middleware-service.ts
@@ -18,7 +18,7 @@ import { LinkResource } from "models/link";
 import { GroupContentsResource, GroupContentsResourcePrefix } from "services/groups-service/groups-service";
 import { resourcesActions } from "store/resources/resources-actions";
 import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
-import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions.ts';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
 import { getDataExplorer } from "store/data-explorer/data-explorer-reducer";
 import { loadMissingProcessesInformation } from "store/project-panel/project-panel-middleware-service";
 import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
diff --git a/src/store/open-in-new-tab/open-in-new-tab.actions.ts b/src/store/open-in-new-tab/open-in-new-tab.actions.ts
index 92d1a45f..94aec140 100644
--- a/src/store/open-in-new-tab/open-in-new-tab.actions.ts
+++ b/src/store/open-in-new-tab/open-in-new-tab.actions.ts
@@ -2,12 +2,12 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import * as copy from 'copy-to-clipboard';
+import copy from 'copy-to-clipboard';
 import { ResourceKind } from 'models/resource';
 import { getClipboardUrl } from 'views-components/context-menu/actions/helpers';
 
 const getUrl = (resource: any) => {
-    let url = null;
+    let url: string | null = null;
     const { uuid, kind } = resource;
 
     if (kind === ResourceKind.COLLECTION) {
diff --git a/src/store/sharing-dialog/sharing-dialog-actions.ts b/src/store/sharing-dialog/sharing-dialog-actions.ts
index 2f624399..54ad6791 100644
--- a/src/store/sharing-dialog/sharing-dialog-actions.ts
+++ b/src/store/sharing-dialog/sharing-dialog-actions.ts
@@ -17,7 +17,7 @@ import { getPublicGroupUuid } from "store/workflow-panel/workflow-panel-actions"
 import { PermissionResource } from 'models/permission';
 import { differenceWith } from "lodash";
 import { withProgress } from "store/progress-indicator/with-progress";
-import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions.ts';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
 import { snackbarActions, SnackbarKind } from "../snackbar/snackbar-actions";
 import { extractUuidKind, ResourceKind } from "models/resource";
 
diff --git a/src/views-components/resource-properties-form/property-key-field.tsx b/src/views-components/resource-properties-form/property-key-field.tsx
index 2c047e58..029d44cc 100644
--- a/src/views-components/resource-properties-form/property-key-field.tsx
+++ b/src/views-components/resource-properties-form/property-key-field.tsx
@@ -16,7 +16,7 @@ import {
     buildProps
 } from 'views-components/resource-properties-form/property-field-common';
 import { TAG_KEY_VALIDATION } from 'validators/validators';
-import { escapeRegExp } from 'common/regexp.ts';
+import { escapeRegExp } from 'common/regexp';
 import { ChangeEvent } from 'react';
 
 export const PROPERTY_KEY_FIELD_NAME = 'key';
diff --git a/src/views-components/resource-properties-form/property-value-field.tsx b/src/views-components/resource-properties-form/property-value-field.tsx
index 5b09e148..a2b53b3c 100644
--- a/src/views-components/resource-properties-form/property-value-field.tsx
+++ b/src/views-components/resource-properties-form/property-value-field.tsx
@@ -17,7 +17,7 @@ import {
     buildProps
 } from 'views-components/resource-properties-form/property-field-common';
 import { TAG_VALUE_VALIDATION } from 'validators/validators';
-import { escapeRegExp } from 'common/regexp.ts';
+import { escapeRegExp } from 'common/regexp';
 import { ChangeEvent } from 'react';
 
 interface PropertyKeyProp {
diff --git a/src/views-components/webdav-s3-dialog/webdav-s3-dialog.test.tsx b/src/views-components/webdav-s3-dialog/webdav-s3-dialog.test.tsx
index 67d5aa2e..ec0a9c8a 100644
--- a/src/views-components/webdav-s3-dialog/webdav-s3-dialog.test.tsx
+++ b/src/views-components/webdav-s3-dialog/webdav-s3-dialog.test.tsx
@@ -12,9 +12,6 @@ import { WithDialogProps } from 'store/dialog/with-dialog';
 import { WebDavS3InfoDialogData, COLLECTION_WEBDAV_S3_DIALOG_NAME } from 'store/collections/collection-info-actions';
 import { Provider } from "react-redux";
 import { createStore, combineReducers } from 'redux';
-// import { configureStore, RootStore } from 'store/store';
-// import { createBrowserHistory } from "history";
-// import { createServices } from "services/services";
 
 configure({ adapter: new Adapter() });
 

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list