From f405ae715b28e1f8c04d56f1efb65533401657fe Mon Sep 17 00:00:00 2001 From: fflorent Date: Sat, 30 Mar 2024 11:39:08 +0100 Subject: [PATCH] Bump dependencies versions --- app/client/ui/HomeImports.ts | 7 ++++--- app/common/UserAPI.ts | 5 +++-- app/server/lib/MinIOExternalStorage.ts | 4 ++-- package.json | 22 +++++++++++----------- test/formula-dataset/runCompletion_impl.ts | 2 +- test/gen-server/apiUtils.ts | 2 +- test/gen-server/testUtils.ts | 2 +- test/server/gristClient.ts | 2 +- test/server/lib/DocApi.ts | 14 +++++++------- 9 files changed, 31 insertions(+), 29 deletions(-) diff --git a/app/client/ui/HomeImports.ts b/app/client/ui/HomeImports.ts index 84d23af7..466e3e73 100644 --- a/app/client/ui/HomeImports.ts +++ b/app/client/ui/HomeImports.ts @@ -6,6 +6,7 @@ import {AppModel, reportError} from 'app/client/models/AppModel'; import {IProgress} from 'app/client/models/NotifyModel'; import {openFilePicker} from 'app/client/ui/FileDialog'; import {byteString} from 'app/common/gutil'; +import { AxiosProgressEvent } from 'axios'; import {Disposable} from 'grainjs'; /** @@ -39,9 +40,9 @@ export async function fileImport( const timezone = await guessTimezone(); if (workspaceId === "unsaved") { - function onUploadProgress(ev: ProgressEvent) { - if (ev.lengthComputable) { - progress.setUploadProgress(ev.loaded / ev.total * 100); // percentage complete + function onUploadProgress(ev: AxiosProgressEvent) { + if (ev.event.lengthComputable) { + progress.setUploadProgress(ev.event.loaded / ev.event.total * 100); // percentage complete } } return await app.api.importUnsavedDoc(files[0], {timezone, onUploadProgress}); diff --git a/app/common/UserAPI.ts b/app/common/UserAPI.ts index df4d0788..c4b06bdb 100644 --- a/app/common/UserAPI.ts +++ b/app/common/UserAPI.ts @@ -22,6 +22,7 @@ import { WebhookUpdate } from 'app/common/Triggers'; import {addCurrentOrgToPath, getGristConfig} from 'app/common/urlUtils'; +import { AxiosProgressEvent } from 'axios'; import omitBy from 'lodash/omitBy'; @@ -405,7 +406,7 @@ export interface UserAPI { importUnsavedDoc(material: UploadType, options?: { filename?: string, timezone?: string, - onUploadProgress?: (ev: ProgressEvent) => void, + onUploadProgress?: (ev: AxiosProgressEvent) => void, }): Promise; deleteUser(userId: number, name: string): Promise; getBaseUrl(): string; // Get the prefix for all the endpoints this object wraps. @@ -816,7 +817,7 @@ export class UserAPIImpl extends BaseAPI implements UserAPI { public async importUnsavedDoc(material: UploadType, options?: { filename?: string, timezone?: string, - onUploadProgress?: (ev: ProgressEvent) => void, + onUploadProgress?: (ev: AxiosProgressEvent) => void, }): Promise { options = options || {}; const formData = this.newFormData(); diff --git a/app/server/lib/MinIOExternalStorage.ts b/app/server/lib/MinIOExternalStorage.ts index 73258887..9179be64 100644 --- a/app/server/lib/MinIOExternalStorage.ts +++ b/app/server/lib/MinIOExternalStorage.ts @@ -7,7 +7,7 @@ import * as minio from 'minio'; // The minio typings appear to be quite stale. Extend them here to avoid // lots of casts to any. -type MinIOClient = minio.Client & { +export type MinIOClient = minio.Client & { statObject(bucket: string, key: string, options: {versionId?: string}): Promise; getObject(bucket: string, key: string, options: {versionId?: string}): Promise; listObjects(bucket: string, key: string, recursive: boolean, @@ -132,7 +132,7 @@ export class MinIOExternalStorage implements ExternalStorage { v.lastModified && (v as any).versionId && (options?.includeDeleteMarkers || !(v as any).isDeleteMarker)) .map(v => ({ - lastModified: v.lastModified.toISOString(), + lastModified: v.lastModified!.toISOString(), // Circumvent inconsistency of MinIO API with versionId by casting it to string // PR to MinIO so we don't have to do that anymore: // https://github.com/minio/minio-js/pull/1193 diff --git a/package.json b/package.json index 417abef8..2633c484 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "esbuild-loader": "2.19.0", "eslint": "8.18.0", "http-proxy": "1.18.1", - "i18next-scanner": "4.1.0", + "i18next-scanner": "^4.4.0", "mocha": "10.2.0", "mocha-webdriver": "0.3.2", "moment-locales-webpack-plugin": "^1.2.0", @@ -106,7 +106,7 @@ "tmp-promise": "1.0.5", "ts-interface-builder": "0.3.2", "typescript": "4.7.4", - "webpack": "5.73.0", + "webpack": "^5.91.0", "webpack-cli": "4.10.0", "why-is-node-running": "2.0.3" }, @@ -123,19 +123,19 @@ "accept-language-parser": "1.5.0", "ace-builds": "1.23.3", "async-mutex": "0.2.4", - "axios": "0.21.2", + "axios": "^1.6.8", "backbone": "1.3.3", - "bootstrap": "3.3.5", + "bootstrap": "^3.4.1", "bootstrap-datepicker": "1.9.0", "bowser": "2.7.0", "collect-js-deps": "^0.1.1", "color-convert": "2.0.1", "commander": "9.3.0", "components-jqueryui": "1.12.1", - "connect-redis": "3.4.0", + "connect-redis": "^3.4.0", "cookie": "0.5.0", "cookie-parser": "1.4.3", - "csv": "4.0.0", + "csv": "^6.3.8", "currency-symbol-map": "5.1.0", "diff-match-patch": "1.0.5", "dompurify": "3.0.6", @@ -143,7 +143,7 @@ "engine.io": "^6.5.4", "engine.io-client": "^6.5.3", "exceljs": "4.2.1", - "express": "4.18.2", + "express": "^4.19.2", "file-type": "16.5.4", "fs-extra": "7.0.0", "grain-rpc": "0.1.7", @@ -160,12 +160,12 @@ "js-yaml": "3.14.1", "jsdom": "^23.0.0", "jsesc": "3.0.2", - "jsonwebtoken": "8.3.0", + "jsonwebtoken": "^9.0.2", "knockout": "3.5.0", "locale-currency": "0.0.2", "lodash": "4.17.21", "marked": "4.2.12", - "minio": "7.0.32", + "minio": "^7.1.3", "moment": "2.29.4", "moment-timezone": "0.5.35", "morgan": "1.9.1", @@ -184,13 +184,13 @@ "randomcolor": "0.5.3", "redis": "3.1.1", "redlock": "3.1.2", - "saml2-js": "2.0.5", + "saml2-js": "^4.0.2", "short-uuid": "3.1.1", "slugify": "1.6.6", "swagger-ui-dist": "5.11.0", "tmp": "0.0.33", "ts-interface-checker": "1.0.2", - "typeorm": "0.3.9", + "typeorm": "^0.3.20", "underscore": "1.12.1", "uuid": "3.3.2", "winston": "2.4.5", diff --git a/test/formula-dataset/runCompletion_impl.ts b/test/formula-dataset/runCompletion_impl.ts index 5582faf2..eb915492 100644 --- a/test/formula-dataset/runCompletion_impl.ts +++ b/test/formula-dataset/runCompletion_impl.ts @@ -31,7 +31,7 @@ import { ActiveDoc, Deps as ActiveDocDeps } from "app/server/lib/ActiveDoc"; import { DEPS, sendForCompletion } from "app/server/lib/Assistance"; import log from 'app/server/lib/log'; import crypto from 'crypto'; -import parse from 'csv-parse/lib/sync'; +import { parse } from 'csv-parse/sync'; import fetch, {RequestInfo, RequestInit, Response} from 'node-fetch'; import * as fs from "fs"; import JSZip from "jszip"; diff --git a/test/gen-server/apiUtils.ts b/test/gen-server/apiUtils.ts index f269be63..5737a496 100644 --- a/test/gen-server/apiUtils.ts +++ b/test/gen-server/apiUtils.ts @@ -254,7 +254,7 @@ export class TestSession { ) { const resp = await axios.get(`${this.home.getOwnUrl()}/test/session`, {validateStatus: (s => s < 400), headers: this.headers}); - const cookie = this.headers.Cookie || resp.headers['set-cookie'][0]; + const cookie = this.headers.Cookie || resp.headers['set-cookie']![0]; const cid = decodeURIComponent(cookie.split('=')[1].split(';')[0]); const sessionId = this.home.getSessions().getSessionIdFromCookie(cid); const scopedSession = this.home.getSessions().getOrCreateSession(sessionId as string, org, ''); diff --git a/test/gen-server/testUtils.ts b/test/gen-server/testUtils.ts index 68b37c3f..ef14ad00 100644 --- a/test/gen-server/testUtils.ts +++ b/test/gen-server/testUtils.ts @@ -21,7 +21,7 @@ export function configForUser(username: string): AxiosRequestConfig { } }; if (username !== 'Anonymous') { - config.headers.Authorization = 'Bearer api_key_for_' + username.toLowerCase(); + config.headers!.Authorization = 'Bearer api_key_for_' + username.toLowerCase(); } return config; } diff --git a/test/server/gristClient.ts b/test/server/gristClient.ts index 911e7e8d..194e1210 100644 --- a/test/server/gristClient.ts +++ b/test/server/gristClient.ts @@ -166,7 +166,7 @@ export async function openClient(server: FlexServer, email: string, org: string, const headers: Record = {}; if (!emailHeader) { const resp = await axios.get(`${server.getOwnUrl()}/test/session`); - const cookie = resp.headers['set-cookie'][0]; + const cookie = resp.headers['set-cookie']![0]; if (email !== 'anon@getgrist.com') { const cid = decodeURIComponent(cookie.split('=')[1].split(';')[0]); const comm = server.getComm(); diff --git a/test/server/lib/DocApi.ts b/test/server/lib/DocApi.ts index 0372e7bb..156353f3 100644 --- a/test/server/lib/DocApi.ts +++ b/test/server/lib/DocApi.ts @@ -1351,10 +1351,10 @@ function testDocApi() { } } else { if (sort) { - config.headers['x-sort'] = sort.join(','); + config.headers!['x-sort'] = sort.join(','); } if (limit) { - config.headers['x-limit'] = String(limit); + config.headers!['x-limit'] = String(limit); } } return axios.get(url.href, config); @@ -4976,11 +4976,11 @@ function testDocApi() { const chimpyConfig = configForUser("Chimpy"); const anonConfig = configForUser("Anonymous"); - delete chimpyConfig.headers["X-Requested-With"]; - delete anonConfig.headers["X-Requested-With"]; + delete chimpyConfig.headers!["X-Requested-With"]; + delete anonConfig.headers!["X-Requested-With"]; // Target a more realistic Host than "localhost:port" - anonConfig.headers.Host = chimpyConfig.headers.Host = 'api.example.com'; + anonConfig.headers!.Host = chimpyConfig.headers!.Host = 'api.example.com'; const url = `${serverUrl}/api/docs/${docId}/tables/Table1/records`; const data = { records: [{ fields: {} }] }; @@ -4989,7 +4989,7 @@ function testDocApi() { const forbiddenOrigin = 'http://evil.com'; // Normal same origin requests - anonConfig.headers.Origin = allowedOrigin; + anonConfig.headers!.Origin = allowedOrigin; let response: AxiosResponse; for (response of [ await axios.post(url, data, anonConfig), @@ -5005,7 +5005,7 @@ function testDocApi() { // Cross origin requests from untrusted origin. for (const config of [anonConfig, chimpyConfig]) { - config.headers.Origin = forbiddenOrigin; + config.headers!.Origin = forbiddenOrigin; for (response of [ await axios.post(url, data, config), await axios.get(url, config),