From 3427e5ed84a62dcf4dfd2586fec668b874b9be2a Mon Sep 17 00:00:00 2001 From: Tasso Evangelista Date: Sat, 2 Jul 2022 00:22:43 -0300 Subject: [PATCH] Chore: `refactor/tsc-perf` (#26040) Co-authored-by: Guilherme Gazzo Co-authored-by: Pierre Lehnen Co-authored-by: Guilherme Gazzo --- .../app/2fa/server/functions/resetTOTP.ts | 5 +- .../action-links/server/lib/actionLinks.ts | 2 +- .../app/api/server/lib/getUploadFormData.ts | 22 +- apps/meteor/app/api/server/v1/voip/rooms.ts | 2 +- apps/meteor/app/apps/client/orchestrator.ts | 2 +- apps/meteor/app/apps/server/bridges/http.ts | 2 +- .../autotranslate/server/googleTranslate.ts | 2 +- .../server/functions/getConfirmationPoll.ts | 2 +- .../startRegisterWorkspaceSetupWizard.ts | 2 +- .../server/methods/sendFileMessage.ts | 4 +- .../server/classes/ImportDataConverter.ts | 6 +- .../server/lib/validateOutgoingIntegration.ts | 2 +- .../incoming/addIncomingIntegration.ts | 2 +- apps/meteor/app/katex/client/index.ts | 6 +- .../server/methods/saveBusinessHour.ts | 2 +- .../server/lib/ServiceProvider.ts | 4 +- .../server/lib/parsers/LogoutRequest.ts | 2 +- .../server/lib/parsers/Response.ts | 8 +- apps/meteor/app/models/server/models/Rooms.js | 5 + .../app/models/server/models/_oplogHandle.ts | 4 +- .../server/NotificationQueue.ts | 2 +- apps/meteor/app/ui/client/lib/fileUpload.ts | 2 +- .../app/utils/client/lib/RestApiClient.ts | 3 +- .../meteor/app/utils/lib/getUserPreference.js | 7 + apps/meteor/app/videobridge/client/tabBar.tsx | 2 +- .../webdav/server/lib/webdavClientAdapter.ts | 12 +- .../server/methods/uploadFileToWebdav.ts | 2 +- apps/meteor/client/components/TextCopy.tsx | 2 +- apps/meteor/client/hooks/useEndpointAction.ts | 8 +- .../hooks/useEndpointActionExperimental.ts | 2 +- apps/meteor/client/hooks/useEndpointData.ts | 11 +- apps/meteor/client/hooks/useUpdateAvatar.ts | 2 +- apps/meteor/client/lib/download.ts | 5 +- .../client/lib/rooms/roomTypes/unread.ts | 2 +- .../client/lib/utils/callWithErrorHandling.ts | 2 +- .../client/lib/utils/formatDateAndTime.ts | 2 +- apps/meteor/client/lib/utils/formatTime.ts | 8 +- apps/meteor/client/lib/utils/timeAgo.ts | 4 +- .../providers/CallProvider/CallProvider.tsx | 2 +- .../client/providers/ServerProvider.tsx | 13 +- apps/meteor/client/providers/UserProvider.tsx | 4 +- apps/meteor/client/sidebar/RoomMenu.tsx | 2 +- .../startup/renderMessage/highlightWords.ts | 2 +- apps/meteor/client/startup/startup.ts | 2 +- .../stories/contexts/ServerContextMock.tsx | 4 +- .../account/profile/AccountProfileForm.tsx | 2 +- .../account/profile/AccountProfilePage.tsx | 8 +- .../views/admin/apps/AppDetailsPage.tsx | 2 +- .../client/views/admin/apps/AppReleases.tsx | 4 +- .../client/views/admin/apps/AppsProvider.tsx | 8 +- .../client/views/admin/apps/AppsWhatIsIt.tsx | 4 +- .../views/admin/apps/hooks/useAppInfo.ts | 6 +- .../views/admin/apps/hooks/useCategories.ts | 2 +- .../apps/lib/getManifestFromZippedApp.ts | 2 +- .../client/views/admin/cloud/CloudPage.tsx | 4 +- .../client/views/admin/invites/InviteRow.tsx | 2 +- .../UsersInRole/UsersInRolePage.tsx | 2 +- .../UsersInRoleTable/UsersInRoleTable.tsx | 2 +- .../admin/permissions/hooks/useChangeRole.ts | 2 +- .../client/views/admin/users/InviteUsers.tsx | 2 +- .../views/admin/viewLogs/ServerLogs.tsx | 2 +- .../views/mailer/MailerUnsubscriptionPage.tsx | 4 +- .../omnichannel/appearance/AppearancePage.tsx | 2 +- .../facebook/FacebookPageContainer.tsx | 6 +- .../PruneMessages/PruneMessagesWithData.tsx | 2 +- .../RoomMembers/AddUsers/AddUsersWithData.tsx | 2 +- .../actions/useBlockUserAction.ts | 2 +- .../actions/useIgnoreUserAction.ts | 2 +- .../actions/useMuteUserAction.tsx | 2 +- .../views/room/threads/ThreadComponent.tsx | 2 +- .../steps/CloudAccountConfirmation.tsx | 2 +- .../AddExistingModal/AddExistingModal.tsx | 2 +- apps/meteor/ee/client/lib/getFromRestApi.ts | 20 - .../modals/CreateCannedResponse/index.tsx | 2 +- .../channels/useChannelsList.ts | 15 +- .../messages/useMessageOrigins.ts | 15 +- .../messages/useMessagesSent.ts | 15 +- .../messages/useTopFivePopularChannels.ts | 15 +- .../users/useActiveUsers.ts | 15 +- .../users/useHourlyChatActivity.ts | 14 +- .../engagementDashboard/users/useNewUsers.ts | 15 +- .../users/useUsersByTimeOfTheDay.ts | 15 +- .../users/useWeeklyChatActivity.ts | 14 +- apps/meteor/ee/server/lib/ldap/Manager.ts | 2 +- .../server/services/ecdh-proxy/lib/server.ts | 10 +- apps/meteor/ee/server/services/package.json | 2 +- apps/meteor/package.json | 2 +- apps/meteor/server/lib/resetUserE2EKey.ts | 12 +- apps/meteor/server/models/raw/BaseRaw.ts | 31 +- apps/meteor/server/sdk/lib/proxify.ts | 20 +- ee/apps/ddp-streamer/package.json | 2 +- package.json | 2 +- packages/api-client/package.json | 2 +- .../api-client/src/RestClientInterface.ts | 70 +- packages/api-client/src/index.ts | 109 +- packages/core-typings/package.json | 2 +- packages/favicon/package.json | 2 +- packages/gazzodown/package.json | 2 +- packages/livechat/package.json | 2 +- packages/model-typings/package.json | 2 +- packages/models/package.json | 2 +- packages/node-poplib/package.json | 2 +- packages/rest-typings/package.json | 2 +- packages/rest-typings/src/.eslintrc.js | 1 - packages/rest-typings/src/apps/index.ts | 34 +- packages/rest-typings/src/index.ts | 85 +- .../src/v1/channels/ChannelsMessagesProps.ts | 2 +- packages/rest-typings/src/v1/cloud.ts | 2 +- packages/rest-typings/src/v1/commands.ts | 5 +- .../rest-typings/src/v1/dm/DmHistoryProps.ts | 3 +- packages/rest-typings/src/v1/email-inbox.ts | 6 +- packages/rest-typings/src/v1/me.ts | 2 +- packages/rest-typings/src/v1/omnichannel.ts | 2 +- packages/ui-client/package.json | 2 +- packages/ui-contexts/package.json | 2 +- .../src/ServerContext/ServerContext.ts | 2 +- packages/ui-contexts/src/hooks/useEndpoint.ts | 14 +- .../src/hooks/useUserSubscriptions.ts | 2 +- packages/ui-contexts/src/index.ts | 1 + packages/ui-video-conf/package.json | 2 +- yarn.lock | 1611 ++--------------- 121 files changed, 673 insertions(+), 1815 deletions(-) delete mode 100644 apps/meteor/ee/client/lib/getFromRestApi.ts delete mode 120000 packages/rest-typings/src/.eslintrc.js diff --git a/apps/meteor/app/2fa/server/functions/resetTOTP.ts b/apps/meteor/app/2fa/server/functions/resetTOTP.ts index dd404515c8f2..decce3432be5 100644 --- a/apps/meteor/app/2fa/server/functions/resetTOTP.ts +++ b/apps/meteor/app/2fa/server/functions/resetTOTP.ts @@ -45,9 +45,10 @@ const sendResetNotification = async function (uid: string): Promise { html, } as any); } catch (error) { - throw new Meteor.Error('error-email-send-failed', `Error trying to send email: ${error.message}`, { + const message = error instanceof Error ? error.message : String(error); + throw new Meteor.Error('error-email-send-failed', `Error trying to send email: ${message}`, { function: 'resetUserTOTP', - message: error.message, + message, }); } }); diff --git a/apps/meteor/app/action-links/server/lib/actionLinks.ts b/apps/meteor/app/action-links/server/lib/actionLinks.ts index 634e5a54de9f..4b441df64fcd 100644 --- a/apps/meteor/app/action-links/server/lib/actionLinks.ts +++ b/apps/meteor/app/action-links/server/lib/actionLinks.ts @@ -11,7 +11,7 @@ function getMessageById(messageId: IMessage['_id']): IMessage | undefined { } return Promise.await(getMessageForUser(messageId, user)); } catch (e) { - throw new Meteor.Error(e.message, 'Invalid message', { + throw new Meteor.Error(e instanceof Error ? e.message : String(e), 'Invalid message', { function: 'actionLinks.getMessage', }); } diff --git a/apps/meteor/app/api/server/lib/getUploadFormData.ts b/apps/meteor/app/api/server/lib/getUploadFormData.ts index c9cf0263c5d8..f20075823bb5 100644 --- a/apps/meteor/app/api/server/lib/getUploadFormData.ts +++ b/apps/meteor/app/api/server/lib/getUploadFormData.ts @@ -13,26 +13,20 @@ type UploadResult = { fileBuffer: Buffer; }; -export const getUploadFormData = async >( +export const getUploadFormData = async < + T extends string, + K extends Record = Record, + V extends ValidateFunction = ValidateFunction, +>( { request }: { request: Request }, options: { field?: T; validate?: V; } = {}, -): Promise< - [ - UploadResult, - K extends unknown - ? { - [k: string]: string; - } - : K, - T, - ] -> => +): Promise<[UploadResult, K, T]> => new Promise((resolve, reject) => { const bb = busboy({ headers: request.headers, defParamCharset: 'utf8' }); - const fields: { [K: string]: string } = Object.create(null); + const fields = Object.create(null) as K; let uploadedFile: UploadResult | undefined; @@ -69,7 +63,7 @@ export const getUploadFormData = async { + bb.on('field', (fieldname: keyof K, value: K[keyof K]) => { fields[fieldname] = value; }); diff --git a/apps/meteor/app/api/server/v1/voip/rooms.ts b/apps/meteor/app/api/server/v1/voip/rooms.ts index 1199f67044b1..1798591f57db 100644 --- a/apps/meteor/app/api/server/v1/voip/rooms.ts +++ b/apps/meteor/app/api/server/v1/voip/rooms.ts @@ -1,6 +1,6 @@ import { Random } from 'meteor/random'; import type { ILivechatAgent, IVoipRoom } from '@rocket.chat/core-typings'; -import { isVoipRoomProps, isVoipRoomsProps, isVoipRoomCloseProps } from '@rocket.chat/rest-typings/dist/v1/voip'; +import { isVoipRoomProps, isVoipRoomsProps, isVoipRoomCloseProps } from '@rocket.chat/rest-typings'; import { VoipRoom, LivechatVisitors, Users } from '@rocket.chat/models'; import { API } from '../../api'; diff --git a/apps/meteor/app/apps/client/orchestrator.ts b/apps/meteor/app/apps/client/orchestrator.ts index 0b095bd40a83..d4052fa67308 100644 --- a/apps/meteor/app/apps/client/orchestrator.ts +++ b/apps/meteor/app/apps/client/orchestrator.ts @@ -89,7 +89,7 @@ class AppClientOrchestrator { } public async getApps(): Promise { - const result = await APIClient.get('/apps'); + const result = await APIClient.get<'/apps'>('/apps'); if ('apps' in result) { // TODO: chapter day: multiple results are returned, but we only need one diff --git a/apps/meteor/app/apps/server/bridges/http.ts b/apps/meteor/app/apps/server/bridges/http.ts index f93ac8a42459..cd0cae9122fe 100644 --- a/apps/meteor/app/apps/server/bridges/http.ts +++ b/apps/meteor/app/apps/server/bridges/http.ts @@ -114,7 +114,7 @@ export class AppHttpBridge extends HttpBridge { } return result; - } catch (e) { + } catch (e: any) { return e.response; } } diff --git a/apps/meteor/app/autotranslate/server/googleTranslate.ts b/apps/meteor/app/autotranslate/server/googleTranslate.ts index 13a861532e38..e519f56fdbb8 100644 --- a/apps/meteor/app/autotranslate/server/googleTranslate.ts +++ b/apps/meteor/app/autotranslate/server/googleTranslate.ts @@ -94,7 +94,7 @@ class GoogleAutoTranslate extends AutoTranslate { result = HTTP.get('https://translation.googleapis.com/language/translate/v2/languages', { params, }); - } catch (e) { + } catch (e: any) { // Fallback: Get the English names of the target languages if ( e.response && diff --git a/apps/meteor/app/cloud/server/functions/getConfirmationPoll.ts b/apps/meteor/app/cloud/server/functions/getConfirmationPoll.ts index 9c4533d2e79d..f83dd650d833 100644 --- a/apps/meteor/app/cloud/server/functions/getConfirmationPoll.ts +++ b/apps/meteor/app/cloud/server/functions/getConfirmationPoll.ts @@ -10,7 +10,7 @@ export async function getConfirmationPoll(deviceCode: string): Promise${escapeHTML(message)}`; + } catch (e) { + return `
${escapeHTML( + e instanceof Error ? e.message : String(e), + )}
`; } }; diff --git a/apps/meteor/app/livechat/server/methods/saveBusinessHour.ts b/apps/meteor/app/livechat/server/methods/saveBusinessHour.ts index bb0d585456b0..dcded190b982 100644 --- a/apps/meteor/app/livechat/server/methods/saveBusinessHour.ts +++ b/apps/meteor/app/livechat/server/methods/saveBusinessHour.ts @@ -8,7 +8,7 @@ Meteor.methods({ try { Promise.await(businessHourManager.saveBusinessHour(businessHourData)); } catch (e) { - throw new Meteor.Error(e.message); + throw new Meteor.Error(e instanceof Error ? e.message : String(e)); } }, }); diff --git a/apps/meteor/app/meteor-accounts-saml/server/lib/ServiceProvider.ts b/apps/meteor/app/meteor-accounts-saml/server/lib/ServiceProvider.ts index f1cd3d563052..a6adefb97cd0 100644 --- a/apps/meteor/app/meteor-accounts-saml/server/lib/ServiceProvider.ts +++ b/apps/meteor/app/meteor-accounts-saml/server/lib/ServiceProvider.ts @@ -95,7 +95,7 @@ export class SAMLServiceProvider { return callback(null, target); } catch (error) { - return callback(error); + return callback(error instanceof Error ? error : String(error)); } }); } @@ -154,7 +154,7 @@ export class SAMLServiceProvider { } callback(null, target); } catch (error) { - callback(error); + callback(error instanceof Error ? error : String(error)); } }); } diff --git a/apps/meteor/app/meteor-accounts-saml/server/lib/parsers/LogoutRequest.ts b/apps/meteor/app/meteor-accounts-saml/server/lib/parsers/LogoutRequest.ts index 22f5d05b6c36..e016e729073a 100644 --- a/apps/meteor/app/meteor-accounts-saml/server/lib/parsers/LogoutRequest.ts +++ b/apps/meteor/app/meteor-accounts-saml/server/lib/parsers/LogoutRequest.ts @@ -44,7 +44,7 @@ export class LogoutRequestParser { const msg = doc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:protocol', 'StatusMessage'); SAMLUtils.log(`Unexpected msg from IDP. Does your session still exist at IDP? Idp returned: \n ${msg}`); - return callback(e, null); + return callback(e instanceof Error ? e : String(e), null); } } } diff --git a/apps/meteor/app/meteor-accounts-saml/server/lib/parsers/Response.ts b/apps/meteor/app/meteor-accounts-saml/server/lib/parsers/Response.ts index bf92043a5976..c714b34937a3 100644 --- a/apps/meteor/app/meteor-accounts-saml/server/lib/parsers/Response.ts +++ b/apps/meteor/app/meteor-accounts-saml/server/lib/parsers/Response.ts @@ -62,7 +62,7 @@ export class ResponseParser { this.verifySignatures(response, assertionData, xml); } catch (e) { - return callback(e, null, false); + return callback(e instanceof Error ? e : String(e), null, false); } const profile: Record = {}; @@ -74,7 +74,7 @@ export class ResponseParser { try { issuer = this.getIssuer(assertion); } catch (e) { - return callback(e, null, false); + return callback(e instanceof Error ? e : String(e), null, false); } if (issuer) { @@ -95,14 +95,14 @@ export class ResponseParser { try { this.validateSubjectConditions(subject); } catch (e) { - return callback(e, null, false); + return callback(e instanceof Error ? e : String(e), null, false); } } try { this.validateAssertionConditions(assertion); } catch (e) { - return callback(e, null, false); + return callback(e instanceof Error ? e : String(e), null, false); } const authnStatement = assertion.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:assertion', 'AuthnStatement')[0]; diff --git a/apps/meteor/app/models/server/models/Rooms.js b/apps/meteor/app/models/server/models/Rooms.js index e0c6df1e814b..8ff57c1f75b8 100644 --- a/apps/meteor/app/models/server/models/Rooms.js +++ b/apps/meteor/app/models/server/models/Rooms.js @@ -990,6 +990,11 @@ export class Rooms extends Base { return this.update(query, update); } + /** + * @param {string} _id + * @param {string?} messageId + * @returns {Promise} + */ resetLastMessageById(_id, messageId = undefined) { const query = { _id }; const lastMessage = Messages.getLastVisibleMessageSentWithNoTypeByRoomId(_id, messageId); diff --git a/apps/meteor/app/models/server/models/_oplogHandle.ts b/apps/meteor/app/models/server/models/_oplogHandle.ts index 98f0e5608329..8017822582d1 100644 --- a/apps/meteor/app/models/server/models/_oplogHandle.ts +++ b/apps/meteor/app/models/server/models/_oplogHandle.ts @@ -34,7 +34,7 @@ class CustomOplogHandle { await mongo.db.admin().command({ replSetGetStatus: 1 }); } catch (e) { - if (e.message.startsWith('not authorized')) { + if (e instanceof Error && e.message.startsWith('not authorized')) { console.info( 'Change Stream is available for your installation, give admin permissions to your database user to use this improved version.', ); @@ -214,7 +214,7 @@ if (!isRunningMs()) { try { oplogHandle = Promise.await(new CustomOplogHandle().start()); } catch (e) { - console.error(e.message); + console.error(e instanceof Error ? e.message : e); } } } diff --git a/apps/meteor/app/notification-queue/server/NotificationQueue.ts b/apps/meteor/app/notification-queue/server/NotificationQueue.ts index 94958c3bbf21..d34a5ecb8381 100644 --- a/apps/meteor/app/notification-queue/server/NotificationQueue.ts +++ b/apps/meteor/app/notification-queue/server/NotificationQueue.ts @@ -83,7 +83,7 @@ class NotificationClass { NotificationQueue.removeById(notification._id); } catch (e) { SystemLogger.error(e); - await NotificationQueue.setErrorById(notification._id, e.message); + await NotificationQueue.setErrorById(notification._id, e instanceof Error ? e.message : String(e)); } if (counter >= this.maxBatchSize) { diff --git a/apps/meteor/app/ui/client/lib/fileUpload.ts b/apps/meteor/app/ui/client/lib/fileUpload.ts index dc4d70cf3070..0fb9d59925c5 100644 --- a/apps/meteor/app/ui/client/lib/fileUpload.ts +++ b/apps/meteor/app/ui/client/lib/fileUpload.ts @@ -130,7 +130,7 @@ export const uploadFileWithMessage = async ( if (!Session.get('uploading').length) { UserAction.stop(rid, USER_ACTIVITIES.USER_UPLOADING, { tmid }); } - } catch (error) { + } catch (error: any) { const uploads = Session.get('uploading'); uploads .filter((u) => u.id === upload.id) diff --git a/apps/meteor/app/utils/client/lib/RestApiClient.ts b/apps/meteor/app/utils/client/lib/RestApiClient.ts index 38b2dc44b5ee..a19b20c58fdb 100644 --- a/apps/meteor/app/utils/client/lib/RestApiClient.ts +++ b/apps/meteor/app/utils/client/lib/RestApiClient.ts @@ -36,8 +36,9 @@ APIClient.use(async function (request, next) { throw error; } + const e = await error.json(); + return new Promise(async (resolve, reject) => { - const e = await error.json(); process2faReturn({ error: e, result: null, diff --git a/apps/meteor/app/utils/lib/getUserPreference.js b/apps/meteor/app/utils/lib/getUserPreference.js index c1136a12daeb..e55154393ba9 100644 --- a/apps/meteor/app/utils/lib/getUserPreference.js +++ b/apps/meteor/app/utils/lib/getUserPreference.js @@ -1,6 +1,13 @@ import { Users } from '../../models'; import { settings } from '../../settings'; +/** + * @summary Get a user preference + * @param {String} userId The user ID + * @param {String} preference The preference name + * @param {unknown?} defaultValue The default value + * @returns {unknown} The preference value + */ export const getUserPreference = (user, key, defaultValue = undefined) => { let preference; if (typeof user === typeof '') { diff --git a/apps/meteor/app/videobridge/client/tabBar.tsx b/apps/meteor/app/videobridge/client/tabBar.tsx index de53d00659f5..38898d95daae 100644 --- a/apps/meteor/app/videobridge/client/tabBar.tsx +++ b/apps/meteor/app/videobridge/client/tabBar.tsx @@ -72,7 +72,7 @@ addAction('start-call', ({ room }) => { try { await VideoConfManager.loadCapabilities(); dispatchPopup({ rid: room._id }); - } catch (error) { + } catch (error: any) { dispatchWarning(error.error); } }); diff --git a/apps/meteor/app/webdav/server/lib/webdavClientAdapter.ts b/apps/meteor/app/webdav/server/lib/webdavClientAdapter.ts index 7ff6100cb801..61a35b4bff27 100644 --- a/apps/meteor/app/webdav/server/lib/webdavClientAdapter.ts +++ b/apps/meteor/app/webdav/server/lib/webdavClientAdapter.ts @@ -23,7 +23,7 @@ export class WebdavClientAdapter { async stat(path: string): Promise { try { return await this._client.stat(path); - } catch (error) { + } catch (error: any) { throw new Error( error.response && error.response.statusText ? error.response.statusText : 'Error checking if directory exists on webdav', ); @@ -33,7 +33,7 @@ export class WebdavClientAdapter { async createDirectory(path: string): Promise { try { return await this._client.createDirectory(path); - } catch (error) { + } catch (error: any) { throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error creating directory on webdav'); } } @@ -41,7 +41,7 @@ export class WebdavClientAdapter { async deleteFile(path: string): Promise { try { return await this._client.deleteFile(path); - } catch (error) { + } catch (error: any) { throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error deleting file on webdav'); } } @@ -49,7 +49,7 @@ export class WebdavClientAdapter { async getFileContents(filename: string): Promise { try { return (await this._client.getFileContents(filename)) as Buffer; - } catch (error) { + } catch (error: any) { throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error getting file contents webdav'); } } @@ -57,7 +57,7 @@ export class WebdavClientAdapter { async getDirectoryContents(path: string): Promise> { try { return await this._client.getDirectoryContents(path); - } catch (error) { + } catch (error: any) { throw new Error(error.response && error.response.statusText ? error.response.statusText : 'Error getting directory contents webdav'); } } @@ -65,7 +65,7 @@ export class WebdavClientAdapter { async putFileContents(path: string, data: Buffer, options: Record = {}): Promise { try { return await this._client.putFileContents(path, data, options); - } catch (error) { + } catch (error: any) { throw new Error(error.response?.statusText ?? 'Error updating file contents.'); } } diff --git a/apps/meteor/app/webdav/server/methods/uploadFileToWebdav.ts b/apps/meteor/app/webdav/server/methods/uploadFileToWebdav.ts index 5499445b825d..2c7c7cc8a386 100644 --- a/apps/meteor/app/webdav/server/methods/uploadFileToWebdav.ts +++ b/apps/meteor/app/webdav/server/methods/uploadFileToWebdav.ts @@ -39,7 +39,7 @@ Meteor.methods({ await client.createDirectory(uploadFolder).catch(() => {}); await client.putFileContents(`${uploadFolder}/${name}`, buffer, { overwrite: false }); return { success: true }; - } catch (error) { + } catch (error: any) { // @ts-ignore logger.error(error); diff --git a/apps/meteor/client/components/TextCopy.tsx b/apps/meteor/client/components/TextCopy.tsx index dc92e722a0a6..1ee0c89e6db4 100644 --- a/apps/meteor/client/components/TextCopy.tsx +++ b/apps/meteor/client/components/TextCopy.tsx @@ -22,7 +22,7 @@ const TextCopy = ({ text, wrapper = defaultWrapperRenderer, ...props }: TextCopy navigator.clipboard.writeText(text); dispatchToastMessage({ type: 'success', message: t('Copied') }); } catch (e) { - dispatchToastMessage({ type: 'error', message: e }); + dispatchToastMessage({ type: 'error', message: e instanceof Error ? e : String(e) }); } }, [dispatchToastMessage, t, text]); diff --git a/apps/meteor/client/hooks/useEndpointAction.ts b/apps/meteor/client/hooks/useEndpointAction.ts index e58d925adebf..ac386480973c 100644 --- a/apps/meteor/client/hooks/useEndpointAction.ts +++ b/apps/meteor/client/hooks/useEndpointAction.ts @@ -6,9 +6,7 @@ import { useCallback } from 'react'; export const useEndpointAction = >( method: TMethod, path: TPath, - params: Serialized>> = {} as Serialized< - OperationParams> - >, + params?: OperationParams>, successMessage?: string, ): (() => Promise>>>) => { const sendData = useEndpoint(method, path); @@ -16,7 +14,7 @@ export const useEndpointAction = { try { - const data = await sendData(params); + const data = await sendData(params as any); if (successMessage) { dispatchToastMessage({ type: 'success', message: successMessage }); @@ -24,7 +22,7 @@ export const useEndpointAction = >>, + params: OperationParams>, ) => Promise>>>) => { const sendData = useEndpoint(method, path); const dispatchToastMessage = useToastMessageDispatch(); diff --git a/apps/meteor/client/hooks/useEndpointData.ts b/apps/meteor/client/hooks/useEndpointData.ts index 4c7a289da029..f29eb2c161bf 100644 --- a/apps/meteor/client/hooks/useEndpointData.ts +++ b/apps/meteor/client/hooks/useEndpointData.ts @@ -7,14 +7,7 @@ import { AsyncState, useAsyncState } from './useAsyncState'; export const useEndpointData = >( endpoint: TPath, - params: void extends OperationParams<'GET', MatchPathPattern> - ? void - : Serialized>> = undefined as void extends OperationParams< - 'GET', - MatchPathPattern - > - ? void - : Serialized>>, + params?: OperationParams<'GET', MatchPathPattern>, initialValue?: | Serialized>> | (() => Serialized>>), @@ -27,7 +20,7 @@ export const useEndpointData = >( const fetchData = useCallback(() => { reset(); - getData(params) + getData(params as any) .then(resolve) .catch((error) => { console.error(error); diff --git a/apps/meteor/client/hooks/useUpdateAvatar.ts b/apps/meteor/client/hooks/useUpdateAvatar.ts index fcf255803df7..56e90f83fc4a 100644 --- a/apps/meteor/client/hooks/useUpdateAvatar.ts +++ b/apps/meteor/client/hooks/useUpdateAvatar.ts @@ -55,7 +55,7 @@ export const useUpdateAvatar = ( await setAvatarFromService(blob, contentType, service); dispatchToastMessage({ type: 'success', message: successText }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } return; } diff --git a/apps/meteor/client/lib/download.ts b/apps/meteor/client/lib/download.ts index 3f9c1a60c182..9baa8099cd52 100644 --- a/apps/meteor/client/lib/download.ts +++ b/apps/meteor/client/lib/download.ts @@ -8,10 +8,13 @@ export const download = (href: string, filename: string): void => { document.body.removeChild(anchorElement); }; +const hasMsSaveOrOpenBlob = (navigator: Navigator): navigator is Navigator & { msSaveOrOpenBlob: (blob: Blob) => void } => + 'msSaveOrOpenBlob' in navigator; + export const downloadAs = ({ data, ...options }: { data: BlobPart[] } & BlobPropertyBag, filename: string): void => { const blob = new Blob(data, options); - if (navigator.msSaveOrOpenBlob) { + if (hasMsSaveOrOpenBlob(navigator)) { navigator.msSaveOrOpenBlob(blob); return; } diff --git a/apps/meteor/client/lib/rooms/roomTypes/unread.ts b/apps/meteor/client/lib/rooms/roomTypes/unread.ts index 056b82462325..88483e398004 100644 --- a/apps/meteor/client/lib/rooms/roomTypes/unread.ts +++ b/apps/meteor/client/lib/rooms/roomTypes/unread.ts @@ -8,6 +8,6 @@ export const UnreadRoomType = getUnreadRoomType(roomCoordinator); roomCoordinator.add(UnreadRoomType, { condition(): boolean { - return getUserPreference(Meteor.userId(), 'sidebarShowUnread'); + return getUserPreference(Meteor.userId(), 'sidebarShowUnread') as boolean; }, }); diff --git a/apps/meteor/client/lib/utils/callWithErrorHandling.ts b/apps/meteor/client/lib/utils/callWithErrorHandling.ts index 2436a2fac6ac..49f728711399 100644 --- a/apps/meteor/client/lib/utils/callWithErrorHandling.ts +++ b/apps/meteor/client/lib/utils/callWithErrorHandling.ts @@ -10,7 +10,7 @@ export const callWithErrorHandling = async ( try { return await call(method, ...params); } catch (error) { - handleError(error); + handleError(error instanceof Error ? error : String(error)); throw error; } }; diff --git a/apps/meteor/client/lib/utils/formatDateAndTime.ts b/apps/meteor/client/lib/utils/formatDateAndTime.ts index 6bfba1da3630..c72ec1de6a04 100644 --- a/apps/meteor/client/lib/utils/formatDateAndTime.ts +++ b/apps/meteor/client/lib/utils/formatDateAndTime.ts @@ -6,7 +6,7 @@ import { settings } from '../../../app/settings/client'; import { getUserPreference } from '../../../app/utils/lib/getUserPreference'; export const formatDateAndTime = (time: MomentInput): string => { - const clockMode = Tracker.nonreactive(() => getUserPreference(Meteor.userId(), 'clockMode', false)); + const clockMode = Tracker.nonreactive(() => getUserPreference(Meteor.userId(), 'clockMode', false) as number | boolean); const messageTimeAndDateFormat = Tracker.nonreactive(() => settings.get('Message_TimeAndDateFormat')); switch (clockMode) { diff --git a/apps/meteor/client/lib/utils/formatTime.ts b/apps/meteor/client/lib/utils/formatTime.ts index 414d8f3bc202..9f0ee67d0c41 100644 --- a/apps/meteor/client/lib/utils/formatTime.ts +++ b/apps/meteor/client/lib/utils/formatTime.ts @@ -8,14 +8,16 @@ import { getUserPreference } from '../../../app/utils/lib/getUserPreference'; const dayFormat = ['h:mm A', 'H:mm']; export const formatTime = (time: MomentInput): string => { - const clockMode = Tracker.nonreactive(() => getUserPreference(Meteor.userId(), 'clockMode', false)); + const clockMode = Tracker.nonreactive(() => getUserPreference(Meteor.userId(), 'clockMode', false) as number | boolean); const messageTimeFormat = Tracker.nonreactive(() => settings.get('Message_TimeFormat')); - const sameDay = dayFormat[clockMode - 1] || messageTimeFormat; switch (clockMode) { case 1: - case 2: + case 2: { + const sameDay = dayFormat[clockMode - 1] || messageTimeFormat; return moment(time).format(sameDay); + } + default: return moment(time).format(messageTimeFormat); } diff --git a/apps/meteor/client/lib/utils/timeAgo.ts b/apps/meteor/client/lib/utils/timeAgo.ts index 686820da5fdf..0b83f9ae66e8 100644 --- a/apps/meteor/client/lib/utils/timeAgo.ts +++ b/apps/meteor/client/lib/utils/timeAgo.ts @@ -9,9 +9,9 @@ import { getUserPreference } from '../../../app/utils/lib/getUserPreference'; const dayFormat = ['h:mm A', 'H:mm']; export const timeAgo = (date: MomentInput): string => { - const clockMode = Tracker.nonreactive(() => getUserPreference(Meteor.userId(), 'clockMode', false)); + const clockMode = Tracker.nonreactive(() => getUserPreference(Meteor.userId(), 'clockMode', false) as number | boolean); const messageTimeFormat = Tracker.nonreactive(() => settings.get('Message_TimeFormat')); - const sameDay = dayFormat[clockMode - 1] || messageTimeFormat; + const sameDay = (typeof clockMode === 'number' ? dayFormat[clockMode - 1] : undefined) || messageTimeFormat; return moment(date).calendar(null, { lastDay: `[${t('yesterday')}]`, diff --git a/apps/meteor/client/providers/CallProvider/CallProvider.tsx b/apps/meteor/client/providers/CallProvider/CallProvider.tsx index 09990609786a..2ec028f9eea8 100644 --- a/apps/meteor/client/providers/CallProvider/CallProvider.tsx +++ b/apps/meteor/client/providers/CallProvider/CallProvider.tsx @@ -43,7 +43,7 @@ import { roomCoordinator } from '../../lib/rooms/roomCoordinator'; import { QueueAggregator } from '../../lib/voip/QueueAggregator'; const startRingback = (user: IUser): void => { - const audioVolume = getUserPreference(user, 'notificationsSoundVolume'); + const audioVolume = getUserPreference(user, 'notificationsSoundVolume', 100) as number; CustomSounds.play('telephone', { volume: Number((audioVolume / 100).toPrecision(2)), loop: true, diff --git a/apps/meteor/client/providers/ServerProvider.tsx b/apps/meteor/client/providers/ServerProvider.tsx index 50d288d73ec1..8861acfbf501 100644 --- a/apps/meteor/client/providers/ServerProvider.tsx +++ b/apps/meteor/client/providers/ServerProvider.tsx @@ -26,24 +26,27 @@ const callMethod = ( const callEndpoint = >( method: TMethod, path: TPath, - params: Serialized>>, + params: OperationParams>, ): Promise>>> => { switch (method) { case 'GET': - return APIClient.get(path as Parameters[0], params as any | undefined) as any; + return APIClient.get(path as any, params as any) as any; case 'POST': - return APIClient.post(path as Parameters[0], params as never) as ReturnType; + return APIClient.post(path as any, params as any) as any; + + case 'PUT': + return APIClient.put(path as any, params as any) as any; case 'DELETE': - return APIClient.delete(path as Parameters[0], params as never) as ReturnType; + return APIClient.delete(path as any, params as any) as any; default: throw new Error('Invalid HTTP method'); } }; -const uploadToEndpoint = (endpoint: PathFor<'POST'>, formData: any): Promise => APIClient.post(endpoint, formData as never); +const uploadToEndpoint = (endpoint: PathFor<'POST'>, formData: any): Promise => APIClient.post(endpoint as any, formData); const getStream = (streamName: string, options: {} = {}): ((eventName: string, callback: (data: T) => void) => () => void) => { const streamer = Meteor.StreamerCentral.instances[streamName] diff --git a/apps/meteor/client/providers/UserProvider.tsx b/apps/meteor/client/providers/UserProvider.tsx index 2f7cb37a784f..223d0af3aa50 100644 --- a/apps/meteor/client/providers/UserProvider.tsx +++ b/apps/meteor/client/providers/UserProvider.tsx @@ -48,7 +48,9 @@ const UserProvider: FC = ({ children }) => { user, loginWithPassword, logout, - queryPreference: createReactiveSubscriptionFactory((key, defaultValue) => getUserPreference(userId, key, defaultValue)), + queryPreference: createReactiveSubscriptionFactory( + (key: string, defaultValue?: T) => getUserPreference(userId, key, defaultValue) as T, + ), querySubscription: createReactiveSubscriptionFactory((query, fields) => Subscriptions.findOne(query, { fields }), ), diff --git a/apps/meteor/client/sidebar/RoomMenu.tsx b/apps/meteor/client/sidebar/RoomMenu.tsx index b6f493a8dd05..01a334cff29f 100644 --- a/apps/meteor/client/sidebar/RoomMenu.tsx +++ b/apps/meteor/client/sidebar/RoomMenu.tsx @@ -11,8 +11,8 @@ import { useMethod, useTranslation, TranslationKey, + Fields, } from '@rocket.chat/ui-contexts'; -import { Fields } from '@rocket.chat/ui-contexts/dist/UserContext'; import React, { memo, ReactElement, useMemo } from 'react'; import { RoomManager } from '../../app/ui-utils/client/lib/RoomManager'; diff --git a/apps/meteor/client/startup/renderMessage/highlightWords.ts b/apps/meteor/client/startup/renderMessage/highlightWords.ts index b83099c26c77..de2f2713ef48 100644 --- a/apps/meteor/client/startup/renderMessage/highlightWords.ts +++ b/apps/meteor/client/startup/renderMessage/highlightWords.ts @@ -6,7 +6,7 @@ import { callbacks } from '../../../lib/callbacks'; Meteor.startup(() => { Tracker.autorun(() => { - const highlights: (string | undefined)[] | undefined = getUserPreference(Meteor.userId(), 'highlights'); + const highlights = getUserPreference(Meteor.userId(), 'highlights') as (string | undefined)[] | undefined; const isEnabled = highlights?.some((highlight) => highlight?.trim()) ?? false; if (!isEnabled) { diff --git a/apps/meteor/client/startup/startup.ts b/apps/meteor/client/startup/startup.ts index 00619c968487..e1b9aa5a78bc 100644 --- a/apps/meteor/client/startup/startup.ts +++ b/apps/meteor/client/startup/startup.ts @@ -45,7 +45,7 @@ Meteor.startup(() => { } if (getUserPreference(user, 'enableAutoAway')) { - const idleTimeLimit = getUserPreference(user, 'idleTimeLimit') || 300; + const idleTimeLimit = (getUserPreference(user, 'idleTimeLimit') as number | null | undefined) || 300; UserPresence.awayTime = idleTimeLimit * 1000; } else { delete UserPresence.awayTime; diff --git a/apps/meteor/client/stories/contexts/ServerContextMock.tsx b/apps/meteor/client/stories/contexts/ServerContextMock.tsx index bba776e442df..be29bb78172b 100644 --- a/apps/meteor/client/stories/contexts/ServerContextMock.tsx +++ b/apps/meteor/client/stories/contexts/ServerContextMock.tsx @@ -91,7 +91,7 @@ const ServerContextMock = ({ return { match: (method: string, path: string): boolean => _method === method && pathRegexp.test(path[0] === '/' ? path : `/v1/${path}`), - handler, + handler: handler as any, }; }, ); @@ -99,7 +99,7 @@ const ServerContextMock = ({ const _callEndpoint: ServerContextValue['callEndpoint'] = async >( method: TMethod, path: TPath, - params: Serialized>>, + params: OperationParams>, ): Promise>>> => { const mockedEndpoint = mockedEndpoints.find((endpoint) => endpoint.match(method, path)); const handler = mockedEndpoint?.handler; diff --git a/apps/meteor/client/views/account/profile/AccountProfileForm.tsx b/apps/meteor/client/views/account/profile/AccountProfileForm.tsx index d8c01d884479..00fd9bcfb538 100644 --- a/apps/meteor/client/views/account/profile/AccountProfileForm.tsx +++ b/apps/meteor/client/views/account/profile/AccountProfileForm.tsx @@ -81,7 +81,7 @@ const AccountProfileForm = ({ values, handlers, user, settings, onSaveStateChang await sendConfirmationEmail(email); dispatchToastMessage({ type: 'success', message: t('Verification_email_sent') }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }, [dispatchToastMessage, email, previousEmail, sendConfirmationEmail, t]); diff --git a/apps/meteor/client/views/account/profile/AccountProfilePage.tsx b/apps/meteor/client/views/account/profile/AccountProfilePage.tsx index de1e0e6a729f..4c15be23640f 100644 --- a/apps/meteor/client/views/account/profile/AccountProfilePage.tsx +++ b/apps/meteor/client/views/account/profile/AccountProfilePage.tsx @@ -147,7 +147,7 @@ const AccountProfilePage = (): ReactElement => { commit(); dispatchToastMessage({ type: 'success', message: t('Profile_saved_successfully') }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }; @@ -187,7 +187,7 @@ const AccountProfilePage = (): ReactElement => { message: t('Logged_out_of_other_clients_successfully'), }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } setLoggingOut(false); }, [logoutOtherClients, dispatchToastMessage, t]); @@ -201,7 +201,7 @@ const AccountProfilePage = (): ReactElement => { closeModal(); logout(); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }; @@ -225,7 +225,7 @@ const AccountProfilePage = (): ReactElement => { await deleteOwnAccount(SHA256(passwordOrUsername)); dispatchToastMessage({ type: 'success', message: t('User_has_been_deleted') }); logout(); - } catch (error) { + } catch (error: any) { if (error.error === 'user-last-owner') { const { shouldChangeOwner, shouldBeRemoved } = error.details; return handleConfirmOwnerChange(passwordOrUsername, shouldChangeOwner, shouldBeRemoved); diff --git a/apps/meteor/client/views/admin/apps/AppDetailsPage.tsx b/apps/meteor/client/views/admin/apps/AppDetailsPage.tsx index e38059b57e5d..7433ce59373a 100644 --- a/apps/meteor/client/views/admin/apps/AppDetailsPage.tsx +++ b/apps/meteor/client/views/admin/apps/AppDetailsPage.tsx @@ -52,7 +52,7 @@ const AppDetailsPage: FC<{ id: string }> = function AppDetailsPage({ id }) { value: current?.[value.id], })), ); - } catch (e) { + } catch (e: any) { handleAPIError(e); } setIsSaving(false); diff --git a/apps/meteor/client/views/admin/apps/AppReleases.tsx b/apps/meteor/client/views/admin/apps/AppReleases.tsx index ac44fa93e3c1..f11deb7a38be 100644 --- a/apps/meteor/client/views/admin/apps/AppReleases.tsx +++ b/apps/meteor/client/views/admin/apps/AppReleases.tsx @@ -16,7 +16,7 @@ type release = { }; const AppReleases = ({ id }: { id: string }): JSX.Element => { - const { value, phase, error } = useEndpointData(`/apps/${id}/versions`); + const { value, phase, error } = useEndpointData(`/apps/${id}/versions`) as any; const [releases, setReleases] = useState([] as release[]); @@ -29,7 +29,7 @@ const AppReleases = ({ id }: { id: string }): JSX.Element => { const { apps } = value; setReleases( - apps.map((app) => ({ + apps.map((app: any) => ({ version: app.version, createdDate: app.createdDate, detailedChangelog: app.detailedChangelog, diff --git a/apps/meteor/client/views/admin/apps/AppsProvider.tsx b/apps/meteor/client/views/admin/apps/AppsProvider.tsx index 6473fb3ed0d1..f1255b554f4f 100644 --- a/apps/meteor/client/views/admin/apps/AppsProvider.tsx +++ b/apps/meteor/client/views/admin/apps/AppsProvider.tsx @@ -166,7 +166,7 @@ const AppsProvider: FC = ({ children }) => { } catch (e) { dispatchMarketplaceApps({ type: 'failure', - error: e, + error: e instanceof Error ? e : new Error(String(e)), reload: fetch, }); marketplaceError = true; @@ -183,7 +183,7 @@ const AppsProvider: FC = ({ children }) => { } catch (e) { dispatchInstalledApps({ type: 'failure', - error: e, + error: e instanceof Error ? e : new Error(String(e)), reload: fetch, }); installedAppsError = true; @@ -252,14 +252,14 @@ const AppsProvider: FC = ({ children }) => { try { installedApp = await Apps.getApp(appId); - } catch (error) { + } catch (error: any) { handleAPIError(error); throw error; } try { marketplaceApp = await Apps.getAppFromMarketplace(appId, installedApp.version); - } catch (error) { + } catch (error: any) { handleAPIError(error); } diff --git a/apps/meteor/client/views/admin/apps/AppsWhatIsIt.tsx b/apps/meteor/client/views/admin/apps/AppsWhatIsIt.tsx index 4f34ef0ee077..0597c75111d9 100644 --- a/apps/meteor/client/views/admin/apps/AppsWhatIsIt.tsx +++ b/apps/meteor/client/views/admin/apps/AppsWhatIsIt.tsx @@ -26,8 +26,8 @@ const AppsWhatIsIt: FC = () => { await Apps.load(true); } appsRouter.push(); - } catch (error) { - setError(error); + } catch (e) { + setError(e instanceof Error ? e : new Error(String(e))); } }; diff --git a/apps/meteor/client/views/admin/apps/hooks/useAppInfo.ts b/apps/meteor/client/views/admin/apps/hooks/useAppInfo.ts index f7450f408f1d..435406d0301e 100644 --- a/apps/meteor/client/views/admin/apps/hooks/useAppInfo.ts +++ b/apps/meteor/client/views/admin/apps/hooks/useAppInfo.ts @@ -1,5 +1,5 @@ import { App } from '@rocket.chat/core-typings'; -import { useEndpoint, EndpointFunction } from '@rocket.chat/ui-contexts'; +import { useEndpoint } from '@rocket.chat/ui-contexts'; import { useState, useEffect, useContext } from 'react'; import { ISettings } from '../../../../../app/apps/client/@types/IOrchestrator'; @@ -29,7 +29,7 @@ export const useAppInfo = (appId: string): AppInfo | undefined => { const getApis = useEndpoint('GET', `/apps/${appId}/apis`); // TODO: remove EndpointFunction<'GET', 'apps/:id'> - const getBundledIn = useEndpoint('GET', `/apps/${appId}`) as EndpointFunction<'GET', '/apps/:id'>; + const getBundledIn = useEndpoint('GET', `/apps/${appId}`) as any; useEffect(() => { const apps: App[] = []; @@ -70,7 +70,7 @@ export const useAppInfo = (appId: string): AppInfo | undefined => { update: 'true', appVersion: appId, }) - .then(({ app }) => { + .then(({ app }: any) => { appResult.tosLink = app.tosLink; appResult.privacyLink = app.privacyLink; return getBundledInApp(app); diff --git a/apps/meteor/client/views/admin/apps/hooks/useCategories.ts b/apps/meteor/client/views/admin/apps/hooks/useCategories.ts index 61dfae4e2999..366ccf948f8b 100644 --- a/apps/meteor/client/views/admin/apps/hooks/useCategories.ts +++ b/apps/meteor/client/views/admin/apps/hooks/useCategories.ts @@ -40,7 +40,7 @@ export const useCategories = (): [ items: mappedCategories, }, ]); - } catch (e) { + } catch (e: any) { handleAPIError(e); } }, [t]); diff --git a/apps/meteor/client/views/admin/apps/lib/getManifestFromZippedApp.ts b/apps/meteor/client/views/admin/apps/lib/getManifestFromZippedApp.ts index 2a7fe7476f10..e9a292de6181 100644 --- a/apps/meteor/client/views/admin/apps/lib/getManifestFromZippedApp.ts +++ b/apps/meteor/client/views/admin/apps/lib/getManifestFromZippedApp.ts @@ -24,7 +24,7 @@ function getAppManifest(unzippedAppBuffer: Uint8ArrayObject): AppManifestSchema try { return JSON.parse(strFromU8(unzippedAppBuffer['app.json'])); } catch (e) { - throw new Error(`Failed to parse app.json: ${e.message}`); + throw new Error(`Failed to parse app.json: ${e instanceof Error ? e.message : String(e)}`); } } diff --git a/apps/meteor/client/views/admin/cloud/CloudPage.tsx b/apps/meteor/client/views/admin/cloud/CloudPage.tsx index c12c109705c9..b729676119a0 100644 --- a/apps/meteor/client/views/admin/cloud/CloudPage.tsx +++ b/apps/meteor/client/views/admin/cloud/CloudPage.tsx @@ -64,7 +64,7 @@ const CloudPage = function CloudPage(): ReactNode { try { await finishOAuthAuthorization(code, state); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } finally { cloudRoute.push(); } @@ -88,7 +88,7 @@ const CloudPage = function CloudPage(): ReactNode { dispatchToastMessage({ type: 'success', message: t('Connected') }); } } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } finally { await reload(); } diff --git a/apps/meteor/client/views/admin/invites/InviteRow.tsx b/apps/meteor/client/views/admin/invites/InviteRow.tsx index 5adad4152c93..c18bb47ffeee 100644 --- a/apps/meteor/client/views/admin/invites/InviteRow.tsx +++ b/apps/meteor/client/views/admin/invites/InviteRow.tsx @@ -56,7 +56,7 @@ const InviteRow = ({ _id, createdAt, expires, uses, maxUses, onRemove }: InviteR const handleRemoveButtonClick = async (event: MouseEvent): Promise => { event.stopPropagation(); - onRemove(removeInvite); + onRemove(() => removeInvite()); }; const notSmall = useMediaQuery('(min-width: 768px)'); diff --git a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx index 837b412521ec..88f91d1dda83 100644 --- a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx +++ b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx @@ -39,7 +39,7 @@ const UsersInRolePage = ({ role }: { role: IRole }): ReactElement => { setUser(''); reload.current?.(); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }); diff --git a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.tsx b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.tsx index 3577fde2c89f..ef6f0d4d8269 100644 --- a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.tsx +++ b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.tsx @@ -35,7 +35,7 @@ const UsersInRoleTable = ({ users, reload, roleName, roleId, description, total, await removeUser({ roleId, username, scope: rid }); dispatchToastMessage({ type: 'success', message: t('User_removed') }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } finally { closeModal(); reload(); diff --git a/apps/meteor/client/views/admin/permissions/hooks/useChangeRole.ts b/apps/meteor/client/views/admin/permissions/hooks/useChangeRole.ts index 93a4155b72ab..d1133dff1ff0 100644 --- a/apps/meteor/client/views/admin/permissions/hooks/useChangeRole.ts +++ b/apps/meteor/client/views/admin/permissions/hooks/useChangeRole.ts @@ -22,7 +22,7 @@ export const useChangeRole = ({ } return !granted; } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } return granted; }); diff --git a/apps/meteor/client/views/admin/users/InviteUsers.tsx b/apps/meteor/client/views/admin/users/InviteUsers.tsx index 082c90115f32..8f58d7042c79 100644 --- a/apps/meteor/client/views/admin/users/InviteUsers.tsx +++ b/apps/meteor/client/views/admin/users/InviteUsers.tsx @@ -19,7 +19,7 @@ const InviteUsers = (props: InviteUsersProps): ReactElement => { await sendInvites(getEmails(text)); dispatchToastMessage({ type: 'success', message: t('Emails_sent_successfully!') }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error.message }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }; diff --git a/apps/meteor/client/views/admin/viewLogs/ServerLogs.tsx b/apps/meteor/client/views/admin/viewLogs/ServerLogs.tsx index 73f6f07c15b7..6bf417e59cee 100644 --- a/apps/meteor/client/views/admin/viewLogs/ServerLogs.tsx +++ b/apps/meteor/client/views/admin/viewLogs/ServerLogs.tsx @@ -32,7 +32,7 @@ const ServerLogs = (): ReactElement => { const { queue } = await getStdoutQueue(undefined); setEntries(queue.map(unserializeEntry).sort(compareEntries)); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }; diff --git a/apps/meteor/client/views/mailer/MailerUnsubscriptionPage.tsx b/apps/meteor/client/views/mailer/MailerUnsubscriptionPage.tsx index a727a4c8c181..5b84916cd757 100644 --- a/apps/meteor/client/views/mailer/MailerUnsubscriptionPage.tsx +++ b/apps/meteor/client/views/mailer/MailerUnsubscriptionPage.tsx @@ -18,8 +18,8 @@ const useMailerUnsubscriptionState = (): AsyncState => { await unsubscribe(_id, createdAt); resolve(true); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); - reject(error); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); + reject(error instanceof Error ? error : new Error(String(error))); } }; diff --git a/apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx b/apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx index e7e14d1896e5..3f6c023a4334 100644 --- a/apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx +++ b/apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx @@ -59,7 +59,7 @@ const AppearancePage: FC = ({ settings }) => { dispatchToastMessage({ type: 'success', message: t('Settings_updated') }); commit(); } catch (error) { - dispatchToastMessage({ type: 'success', message: error }); + dispatchToastMessage({ type: 'success', message: error instanceof Error ? error : String(error) }); } }); diff --git a/apps/meteor/client/views/omnichannel/facebook/FacebookPageContainer.tsx b/apps/meteor/client/views/omnichannel/facebook/FacebookPageContainer.tsx index 90b0b47b1304..db0331e7872e 100644 --- a/apps/meteor/client/views/omnichannel/facebook/FacebookPageContainer.tsx +++ b/apps/meteor/client/views/omnichannel/facebook/FacebookPageContainer.tsx @@ -65,7 +65,7 @@ const FacebookPageContainer: FC = () => { page: id, }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); setSubscribed(isSubscribed); } }); @@ -77,7 +77,7 @@ const FacebookPageContainer: FC = () => { reloadInitial(); reloadData(); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }); @@ -103,7 +103,7 @@ const FacebookPageContainer: FC = () => { reloadData(); } } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }); diff --git a/apps/meteor/client/views/room/contextualBar/PruneMessages/PruneMessagesWithData.tsx b/apps/meteor/client/views/room/contextualBar/PruneMessages/PruneMessagesWithData.tsx index cacbb05d349d..0aac84ee59fe 100644 --- a/apps/meteor/client/views/room/contextualBar/PruneMessages/PruneMessagesWithData.tsx +++ b/apps/meteor/client/views/room/contextualBar/PruneMessages/PruneMessagesWithData.tsx @@ -93,7 +93,7 @@ const PruneMessagesWithData = ({ rid, tabBar }: { rid: IRoom['_id']; tabBar: Too closeModal(); reset(); } catch (error) { - dispatchToastMessage({ type: 'error', message: error.message }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); closeModal(); } }; diff --git a/apps/meteor/client/views/room/contextualBar/RoomMembers/AddUsers/AddUsersWithData.tsx b/apps/meteor/client/views/room/contextualBar/RoomMembers/AddUsers/AddUsersWithData.tsx index bf9359a7e725..023b79a64d36 100644 --- a/apps/meteor/client/views/room/contextualBar/RoomMembers/AddUsers/AddUsersWithData.tsx +++ b/apps/meteor/client/views/room/contextualBar/RoomMembers/AddUsers/AddUsersWithData.tsx @@ -35,7 +35,7 @@ const AddUsersWithData = ({ rid, onClickBack, reload }: AddUsersWithDataProps): onClickBack(); reload(); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }); diff --git a/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useBlockUserAction.ts b/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useBlockUserAction.ts index 0a0574d6b762..5b9c7ba1ab3e 100644 --- a/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useBlockUserAction.ts +++ b/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useBlockUserAction.ts @@ -31,7 +31,7 @@ export const useBlockUserAction = (user: Pick, rid: I message: t(isUserBlocked ? 'User_is_unblocked' : 'User_is_blocked'), }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }); diff --git a/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useIgnoreUserAction.ts b/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useIgnoreUserAction.ts index 8147c461ef8d..9ec28d6d2957 100644 --- a/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useIgnoreUserAction.ts +++ b/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useIgnoreUserAction.ts @@ -32,7 +32,7 @@ export const useIgnoreUserAction = (user: Pick, rid: dispatchToastMessage({ type: 'success', message: t('User_has_been_ignored') }); } } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }); diff --git a/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useMuteUserAction.tsx b/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useMuteUserAction.tsx index b3fc6fe926b4..1ad803566e7b 100644 --- a/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useMuteUserAction.tsx +++ b/apps/meteor/client/views/room/hooks/useUserInfoActions/actions/useMuteUserAction.tsx @@ -76,7 +76,7 @@ export const useMuteUserAction = (user: Pick, rid: IR }), }); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } finally { closeModal(); } diff --git a/apps/meteor/client/views/room/threads/ThreadComponent.tsx b/apps/meteor/client/views/room/threads/ThreadComponent.tsx index ed123346152a..9cb925b2a778 100644 --- a/apps/meteor/client/views/room/threads/ThreadComponent.tsx +++ b/apps/meteor/client/views/room/threads/ThreadComponent.tsx @@ -87,7 +87,7 @@ const ThreadComponent: FC<{ } catch (error) { dispatchToastMessage({ type: 'error', - message: error, + message: error instanceof Error ? error : String(error), }); } }, diff --git a/apps/meteor/client/views/setupWizard/steps/CloudAccountConfirmation.tsx b/apps/meteor/client/views/setupWizard/steps/CloudAccountConfirmation.tsx index 4d5b73c00888..12b82a64df8d 100644 --- a/apps/meteor/client/views/setupWizard/steps/CloudAccountConfirmation.tsx +++ b/apps/meteor/client/views/setupWizard/steps/CloudAccountConfirmation.tsx @@ -30,7 +30,7 @@ const CloudAccountConfirmation = (): ReactElement => { return setShowSetupWizard('completed'); } } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }, [cloudConfirmationPoll, registrationData.device_code, setShowSetupWizard, saveWorkspaceData, dispatchToastMessage, t]); diff --git a/apps/meteor/client/views/teams/contextualBar/channels/AddExistingModal/AddExistingModal.tsx b/apps/meteor/client/views/teams/contextualBar/channels/AddExistingModal/AddExistingModal.tsx index 156a85e0b93d..539416b6210d 100644 --- a/apps/meteor/client/views/teams/contextualBar/channels/AddExistingModal/AddExistingModal.tsx +++ b/apps/meteor/client/views/teams/contextualBar/channels/AddExistingModal/AddExistingModal.tsx @@ -58,7 +58,7 @@ const useAddExistingModalState = (onClose: () => void, teamId: string, reload: ( onClose(); reload(); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }, [addRoomEndpoint, rooms, teamId, onClose, dispatchToastMessage, t, reload]); diff --git a/apps/meteor/ee/client/lib/getFromRestApi.ts b/apps/meteor/ee/client/lib/getFromRestApi.ts deleted file mode 100644 index 328264b530e0..000000000000 --- a/apps/meteor/ee/client/lib/getFromRestApi.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { Serialized } from '@rocket.chat/core-typings'; -import type { MatchPathPattern, OperationParams, OperationResult, PathFor } from '@rocket.chat/rest-typings'; - -import { APIClient } from '../../../app/utils/client/lib/RestApiClient'; - -export const getFromRestApi = - >(endpoint: TPath) => - async ( - params: void extends OperationParams<'GET', MatchPathPattern> - ? void - : Serialized>>, - ): Promise>>> => { - const response = await APIClient.get(endpoint.replace(/^\/+/, '') as TPath, params as any); - - if (typeof response === 'string') { - throw new Error('invalid response data type'); - } - - return response; - }; diff --git a/apps/meteor/ee/client/omnichannel/components/CannedResponse/modals/CreateCannedResponse/index.tsx b/apps/meteor/ee/client/omnichannel/components/CannedResponse/modals/CreateCannedResponse/index.tsx index 10a494dd2aa4..b247df890fbf 100644 --- a/apps/meteor/ee/client/omnichannel/components/CannedResponse/modals/CreateCannedResponse/index.tsx +++ b/apps/meteor/ee/client/omnichannel/components/CannedResponse/modals/CreateCannedResponse/index.tsx @@ -92,7 +92,7 @@ const WrapCreateCannedResponseModal: FC<{ data?: any; reloadCannedList?: any }> closeModal(null); reloadCannedList?.(); } catch (error) { - dispatchToastMessage({ type: 'error', message: error }); + dispatchToastMessage({ type: 'error', message: error instanceof Error ? error : String(error) }); } }, [values, saveCannedResponse, dispatchToastMessage, t, closeModal, reloadCannedList]); diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/channels/useChannelsList.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/channels/useChannelsList.ts index 21d1f0b575b0..8406c1f4c01f 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/channels/useChannelsList.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/channels/useChannelsList.ts @@ -1,6 +1,6 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; import { getPeriodRange, Period } from '../dataView/periods'; type UseChannelsListOptions = { @@ -10,15 +10,17 @@ type UseChannelsListOptions = { }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useChannelsList = ({ period, offset, count }: UseChannelsListOptions) => - useQuery( +export const useChannelsList = ({ period, offset, count }: UseChannelsListOptions) => { + const getChannelsList = useEndpoint('GET', '/v1/engagement-dashboard/channels/list'); + + return useQuery( ['admin/engagement-dashboard/channels/list', { period, offset, count }], async () => { const { start, end } = getPeriodRange(period); - const response = await getFromRestApi('/v1/engagement-dashboard/channels/list')({ - start: start.toISOString(), - end: end.toISOString(), + const response = await getChannelsList({ + start, + end, offset, count, }); @@ -36,3 +38,4 @@ export const useChannelsList = ({ period, offset, count }: UseChannelsListOption refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useMessageOrigins.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useMessageOrigins.ts index 2e787c6df709..28354f461749 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useMessageOrigins.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useMessageOrigins.ts @@ -1,20 +1,22 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; import { getPeriodRange, Period } from '../dataView/periods'; type UseMessageOriginsOptions = { period: Period['key'] }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useMessageOrigins = ({ period }: UseMessageOriginsOptions) => - useQuery( +export const useMessageOrigins = ({ period }: UseMessageOriginsOptions) => { + const getMessageOrigins = useEndpoint('GET', '/v1/engagement-dashboard/messages/origin'); + + return useQuery( ['admin/engagement-dashboard/messages/origins', { period }], async () => { const { start, end } = getPeriodRange(period); - const response = await getFromRestApi('/v1/engagement-dashboard/messages/origin')({ - start: start.toISOString(), - end: end.toISOString(), + const response = await getMessageOrigins({ + start, + end, }); return response @@ -29,3 +31,4 @@ export const useMessageOrigins = ({ period }: UseMessageOriginsOptions) => refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useMessagesSent.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useMessagesSent.ts index 539de3bde6ab..427db46816b4 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useMessagesSent.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useMessagesSent.ts @@ -1,20 +1,22 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; import { getPeriodRange, Period } from '../dataView/periods'; type UseMessagesSentOptions = { period: Period['key'] }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useMessagesSent = ({ period }: UseMessagesSentOptions) => - useQuery( +export const useMessagesSent = ({ period }: UseMessagesSentOptions) => { + const getMessagesSent = useEndpoint('GET', '/v1/engagement-dashboard/messages/messages-sent'); + + return useQuery( ['admin/engagement-dashboard/messages/messages-sent', { period }], async () => { const { start, end } = getPeriodRange(period); - const response = await getFromRestApi('/v1/engagement-dashboard/messages/messages-sent')({ - start: start.toISOString(), - end: end.toISOString(), + const response = await getMessagesSent({ + start, + end, }); return response @@ -29,3 +31,4 @@ export const useMessagesSent = ({ period }: UseMessagesSentOptions) => refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useTopFivePopularChannels.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useTopFivePopularChannels.ts index fb74732c2076..2672427c4aa5 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useTopFivePopularChannels.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/messages/useTopFivePopularChannels.ts @@ -1,20 +1,22 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; import { getPeriodRange, Period } from '../dataView/periods'; type UseTopFivePopularChannelsOptions = { period: Period['key'] }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useTopFivePopularChannels = ({ period }: UseTopFivePopularChannelsOptions) => - useQuery( +export const useTopFivePopularChannels = ({ period }: UseTopFivePopularChannelsOptions) => { + const getTopFivePopularChannels = useEndpoint('GET', '/v1/engagement-dashboard/messages/top-five-popular-channels'); + + return useQuery( ['admin/engagement-dashboard/messages/top-five-popular-channels', { period }], async () => { const { start, end } = getPeriodRange(period); - const response = await getFromRestApi('/v1/engagement-dashboard/messages/top-five-popular-channels')({ - start: start.toISOString(), - end: end.toISOString(), + const response = await getTopFivePopularChannels({ + start, + end, }); return response @@ -29,3 +31,4 @@ export const useTopFivePopularChannels = ({ period }: UseTopFivePopularChannelsO refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useActiveUsers.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useActiveUsers.ts index a20a389e896d..6e618a5d63f1 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useActiveUsers.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useActiveUsers.ts @@ -1,21 +1,23 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import moment from 'moment'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; import { getPeriodRange } from '../dataView/periods'; type UseActiveUsersOptions = { utc: boolean }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useActiveUsers = ({ utc }: UseActiveUsersOptions) => - useQuery( +export const useActiveUsers = ({ utc }: UseActiveUsersOptions) => { + const getActiveUsers = useEndpoint('GET', '/v1/engagement-dashboard/users/active-users'); + + return useQuery( ['admin/engagement-dashboard/users/active', { utc }], async () => { const { start, end } = getPeriodRange('last 30 days', utc); - const response = await getFromRestApi('/v1/engagement-dashboard/users/active-users')({ - start: (utc ? moment.utc(start) : moment(start)).subtract(29, 'days').toISOString(), - end: end.toISOString(), + const response = await getActiveUsers({ + start: (utc ? moment.utc(start) : moment(start)).subtract(29, 'days').toDate(), + end, }); return response @@ -30,3 +32,4 @@ export const useActiveUsers = ({ utc }: UseActiveUsersOptions) => refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useHourlyChatActivity.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useHourlyChatActivity.ts index 3930ce4dfc5e..84db37eb8b0d 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useHourlyChatActivity.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useHourlyChatActivity.ts @@ -1,22 +1,23 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import moment from 'moment'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; - type UseHourlyChatActivityOptions = { displacement: number; utc: boolean; }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useHourlyChatActivity = ({ displacement, utc }: UseHourlyChatActivityOptions) => - useQuery( +export const useHourlyChatActivity = ({ displacement, utc }: UseHourlyChatActivityOptions) => { + const getHourlyChatActivity = useEndpoint('GET', '/v1/engagement-dashboard/users/chat-busier/hourly-data'); + + return useQuery( ['admin/engagement-dashboard/users/hourly-chat-activity', { displacement, utc }], async () => { const day = (utc ? moment.utc().endOf('day') : moment().endOf('day')).subtract(displacement, 'days').toDate(); - const response = await getFromRestApi('/v1/engagement-dashboard/users/chat-busier/hourly-data')({ - start: day.toISOString(), + const response = await getHourlyChatActivity({ + start: day, }); return response @@ -30,3 +31,4 @@ export const useHourlyChatActivity = ({ displacement, utc }: UseHourlyChatActivi refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useNewUsers.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useNewUsers.ts index 9a8cd65363b5..9e9294ed6c99 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useNewUsers.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useNewUsers.ts @@ -1,20 +1,22 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; import { getPeriodRange, Period } from '../dataView/periods'; type UseNewUsersOptions = { period: Period['key']; utc: boolean }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useNewUsers = ({ period, utc }: UseNewUsersOptions) => - useQuery( +export const useNewUsers = ({ period, utc }: UseNewUsersOptions) => { + const getNewUsers = useEndpoint('GET', '/v1/engagement-dashboard/users/new-users'); + + return useQuery( ['admin/engagement-dashboard/users/new', { period, utc }], async () => { const { start, end } = getPeriodRange(period, utc); - const response = await getFromRestApi('/v1/engagement-dashboard/users/new-users')({ - start: start.toISOString(), - end: end.toISOString(), + const response = await getNewUsers({ + start, + end, }); return response @@ -29,3 +31,4 @@ export const useNewUsers = ({ period, utc }: UseNewUsersOptions) => refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useUsersByTimeOfTheDay.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useUsersByTimeOfTheDay.ts index d2d3dc3c2e83..16af4bde2a83 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useUsersByTimeOfTheDay.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useUsersByTimeOfTheDay.ts @@ -1,20 +1,22 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; import { getPeriodRange, Period } from '../dataView/periods'; type UseUsersByTimeOfTheDayOptions = { period: Period['key']; utc: boolean }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useUsersByTimeOfTheDay = ({ period, utc }: UseUsersByTimeOfTheDayOptions) => - useQuery( +export const useUsersByTimeOfTheDay = ({ period, utc }: UseUsersByTimeOfTheDayOptions) => { + const getUsersByTimeOfTheDay = useEndpoint('GET', '/v1/engagement-dashboard/users/users-by-time-of-the-day-in-a-week'); + + return useQuery( ['admin/engagement-dashboard/users/users-by-time-of-the-day', { period, utc }], async () => { const { start, end } = getPeriodRange(period, utc); - const response = await getFromRestApi('/v1/engagement-dashboard/users/users-by-time-of-the-day-in-a-week')({ - start: start.toISOString(), - end: end.toISOString(), + const response = await getUsersByTimeOfTheDay({ + start, + end, }); return response @@ -29,3 +31,4 @@ export const useUsersByTimeOfTheDay = ({ period, utc }: UseUsersByTimeOfTheDayOp refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useWeeklyChatActivity.ts b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useWeeklyChatActivity.ts index 7fd368a21a62..4851bb16cf95 100644 --- a/apps/meteor/ee/client/views/admin/engagementDashboard/users/useWeeklyChatActivity.ts +++ b/apps/meteor/ee/client/views/admin/engagementDashboard/users/useWeeklyChatActivity.ts @@ -1,22 +1,23 @@ +import { useEndpoint } from '@rocket.chat/ui-contexts'; import moment from 'moment'; import { useQuery } from 'react-query'; -import { getFromRestApi } from '../../../../lib/getFromRestApi'; - type UseWeeklyChatActivityOptions = { displacement: number; utc: boolean; }; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export const useWeeklyChatActivity = ({ displacement, utc }: UseWeeklyChatActivityOptions) => - useQuery( +export const useWeeklyChatActivity = ({ displacement, utc }: UseWeeklyChatActivityOptions) => { + const getWeeklyChatActivity = useEndpoint('GET', '/v1/engagement-dashboard/users/chat-busier/weekly-data'); + + return useQuery( ['admin/engagement-dashboard/users/weekly-chat-activity', { displacement, utc }], async () => { const day = (utc ? moment.utc().endOf('day') : moment().endOf('day')).subtract(displacement, 'weeks').toDate(); - const response = await getFromRestApi('/v1/engagement-dashboard/users/chat-busier/weekly-data')({ - start: day.toISOString(), + const response = await getWeeklyChatActivity({ + start: day, }); return response @@ -30,3 +31,4 @@ export const useWeeklyChatActivity = ({ displacement, utc }: UseWeeklyChatActivi refetchInterval: 5 * 60 * 1000, }, ); +}; diff --git a/apps/meteor/ee/server/lib/ldap/Manager.ts b/apps/meteor/ee/server/lib/ldap/Manager.ts index e48c38c0af9f..a4fe52b781ce 100644 --- a/apps/meteor/ee/server/lib/ldap/Manager.ts +++ b/apps/meteor/ee/server/lib/ldap/Manager.ts @@ -172,7 +172,7 @@ export class LDAPEEManager extends LDAPManager { try { return JSON.parse(json); } catch (err) { - logger.error(`Unexpected error : ${err.message}`); + logger.error(`Unexpected error : ${err instanceof Error ? err.message : String(err)}`); } } diff --git a/apps/meteor/ee/server/services/ecdh-proxy/lib/server.ts b/apps/meteor/ee/server/services/ecdh-proxy/lib/server.ts index 75060527a95a..55bdc3d13d94 100644 --- a/apps/meteor/ee/server/services/ecdh-proxy/lib/server.ts +++ b/apps/meteor/ee/server/services/ecdh-proxy/lib/server.ts @@ -104,7 +104,7 @@ app.post('/api/ecdh_proxy/initEncryptedSession', async (req, res) => { publicKeyString: session.publicKeyString, }); } catch (e) { - res.status(400).send(e.message); + res.status(400).send(e instanceof Error ? e.message : String(e)); } }); @@ -124,7 +124,7 @@ app.post('/api/ecdh_proxy/echo', async (req, res) => { res.send(await session.encrypt(result)); } catch (e) { console.error(e); - res.status(400).send(e.message); + res.status(400).send(e instanceof Error ? e.message : String(e)); } }); @@ -193,7 +193,7 @@ app.use('/api/*', async (req, res) => { try { proxy(req, res, session); } catch (e) { - res.status(400).send(e.message); + res.status(400).send(e instanceof Error ? e.message : String(e)); } }); @@ -229,7 +229,7 @@ app.use('/sockjs/:id1/:id2/xhr_send', async (req, res) => { try { proxy(req, res, session, xhrDataRequestProcess, xhrDataResponseProcess); } catch (e) { - res.status(400).send(e.message); + res.status(400).send(e instanceof Error ? e.message : String(e)); } }); @@ -245,7 +245,7 @@ app.use('/sockjs/:id1/:id2/xhr', async (req, res) => { try { proxy(req, res, session, undefined, xhrDataResponseProcess); } catch (e) { - res.status(400).send(e.message); + res.status(400).send(e instanceof Error ? e.message : String(e)); } }); diff --git a/apps/meteor/ee/server/services/package.json b/apps/meteor/ee/server/services/package.json index 09c37751792a..967c6b318aa3 100644 --- a/apps/meteor/ee/server/services/package.json +++ b/apps/meteor/ee/server/services/package.json @@ -67,7 +67,7 @@ "pino-pretty": "^7.6.1", "pm2": "^5.2.0", "ts-node": "^10.7.0", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "volta": { "extends": "../../package.json" diff --git a/apps/meteor/package.json b/apps/meteor/package.json index 397736123694..494540e2314a 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -181,7 +181,7 @@ "supertest": "^6.2.2", "template-file": "^6.0.1", "ts-node": "^10.7.0", - "typescript": "~4.3.4", + "typescript": "~4.5.5", "webpack": "^4.46.0" }, "dependencies": { diff --git a/apps/meteor/server/lib/resetUserE2EKey.ts b/apps/meteor/server/lib/resetUserE2EKey.ts index 00e14ae88c18..3897d18bbba1 100644 --- a/apps/meteor/server/lib/resetUserE2EKey.ts +++ b/apps/meteor/server/lib/resetUserE2EKey.ts @@ -43,10 +43,14 @@ const sendResetNotitification = function (uid: string): void { html, } as any); } catch (error) { - throw new Meteor.Error('error-email-send-failed', `Error trying to send email: ${error.message}`, { - function: 'resetUserE2EEncriptionKey', - message: error.message, - }); + throw new Meteor.Error( + 'error-email-send-failed', + `Error trying to send email: ${error instanceof Error ? error.message : String(error)}`, + { + function: 'resetUserE2EEncriptionKey', + message: error instanceof Error ? error.message : String(error), + }, + ); } }); } diff --git a/apps/meteor/server/models/raw/BaseRaw.ts b/apps/meteor/server/models/raw/BaseRaw.ts index 9b36132a1e81..136d18a2515c 100644 --- a/apps/meteor/server/models/raw/BaseRaw.ts +++ b/apps/meteor/server/models/raw/BaseRaw.ts @@ -65,7 +65,7 @@ export abstract class BaseRaw = undefined> impleme // noop } - private doNotMixInclusionAndExclusionFields(options: FindOneOptions = {}): FindOneOptions { + private doNotMixInclusionAndExclusionFields(options: FindOneOptions | WithoutProjection> = {}): FindOneOptions { const optionsDef = this.ensureDefaultFields(options); if (optionsDef?.projection === undefined) { return optionsDef; @@ -118,13 +118,18 @@ export abstract class BaseRaw = undefined> impleme return this.col.findOneAndUpdate(query, update, options); } - async findOneById(_id: string, options?: WithoutProjection> | undefined): Promise; + async findOneById(_id: string, options?: WithoutProjection>): Promise; async findOneById

(_id: string, options: FindOneOptions

): Promise

; - async findOneById

(_id: string, options?: any): Promise { + async findOneById

( + _id: string, + options?: WithoutProjection> | FindOneOptions

, + ): Promise { const query = { _id } as FilterQuery; - const optionsDef = this.doNotMixInclusionAndExclusionFields(options); + const optionsDef = this.doNotMixInclusionAndExclusionFields(options as WithoutProjection>) as WithoutProjection< + FindOneOptions + >; return this.col.findOne(query, optionsDef); } @@ -134,10 +139,15 @@ export abstract class BaseRaw = undefined> impleme async findOne

(query: FilterQuery | string, options: FindOneOptions

): Promise

; - async findOne

(query: FilterQuery | string = {}, options?: any): Promise { + async findOne

( + query: FilterQuery | string = {}, + options?: WithoutProjection> | FindOneOptions

, + ): Promise { const q = typeof query === 'string' ? ({ _id: query } as FilterQuery) : query; - const optionsDef = this.doNotMixInclusionAndExclusionFields(options); + const optionsDef = this.doNotMixInclusionAndExclusionFields(options as WithoutProjection>) as WithoutProjection< + FindOneOptions + >; return this.col.findOne(q, optionsDef); } @@ -151,8 +161,13 @@ export abstract class BaseRaw = undefined> impleme find

(query: FilterQuery, options: FindOneOptions

): Cursor

; - find

(query: FilterQuery | undefined = {}, options?: any): Cursor

| Cursor { - const optionsDef = this.doNotMixInclusionAndExclusionFields(options); + find

( + query: FilterQuery | undefined = {}, + options?: WithoutProjection> | FindOneOptions

, + ): Cursor

| Cursor { + const optionsDef = this.doNotMixInclusionAndExclusionFields(options as WithoutProjection>) as WithoutProjection< + FindOneOptions + >; return this.col.find(query, optionsDef); } diff --git a/apps/meteor/server/sdk/lib/proxify.ts b/apps/meteor/server/sdk/lib/proxify.ts index 31112364ebaf..fa4c1dc6f4b3 100644 --- a/apps/meteor/server/sdk/lib/proxify.ts +++ b/apps/meteor/server/sdk/lib/proxify.ts @@ -1,19 +1,19 @@ import { api } from '../api'; -type FunctionPropertyNames = { - [K in keyof T]: T[K] extends Function ? K : never; -}[keyof T]; - type Prom = { - [K in FunctionPropertyNames]: ReturnType extends Promise + [K in keyof T as T[K] extends Function ? K : never]: T[K] extends (...params: any) => Promise ? T[K] - : (...params: Parameters) => Promise>; + : T[K] extends (...params: infer P) => infer R + ? (...params: P) => Promise + : never; }; type PromOrError = { - [K in FunctionPropertyNames]: ReturnType extends Promise - ? (...params: Parameters) => ReturnType | Promise - : (...params: Parameters) => Promise | Error>; + [K in keyof T as T[K] extends Function ? K : never]: T[K] extends (...params: any) => Promise + ? T[K] + : T[K] extends (...params: infer P) => infer R + ? (...params: P) => Promise + : never; }; function handler(namespace: string, waitService: boolean): ProxyHandler { @@ -31,5 +31,5 @@ export function proxifyWithWait(namespace: string): Prom { } export function proxify(namespace: string): PromOrError { - return new Proxy({}, handler(namespace, false)) as unknown as Prom; + return new Proxy({}, handler(namespace, false)) as unknown as PromOrError; } diff --git a/ee/apps/ddp-streamer/package.json b/ee/apps/ddp-streamer/package.json index 0711ebc72610..53ff1f298a37 100644 --- a/ee/apps/ddp-streamer/package.json +++ b/ee/apps/ddp-streamer/package.json @@ -45,7 +45,7 @@ "@types/uuid": "^8.3.4", "@types/ws": "^8.5.3", "pino-pretty": "^7.6.0", - "typescript": "~4.3.5" + "typescript": "~4.5.5" }, "main": "./dist/service.js", "files": [ diff --git a/package.json b/package.json index 4ad871604c5e..c4a23caae77f 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@types/chart.js": "^2.9.37", "@types/js-yaml": "^4.0.5", "husky": "^7.0.4", - "turbo": "1.2.5" + "turbo": "~1.2.5" }, "workspaces": [ "apps/*", diff --git a/packages/api-client/package.json b/packages/api-client/package.json index 6cfbc434909b..c1ce8e5076bc 100644 --- a/packages/api-client/package.json +++ b/packages/api-client/package.json @@ -8,7 +8,7 @@ "eslint": "^8.12.0", "jest": "^27.5.1", "ts-jest": "^27.1.4", - "typescript": "~4.3.5" + "typescript": "~4.5.5" }, "scripts": { "lint": "eslint --ext .js,.jsx,.ts,.tsx .", diff --git a/packages/api-client/src/RestClientInterface.ts b/packages/api-client/src/RestClientInterface.ts index d9e3dd9ca373..6e97153fba64 100644 --- a/packages/api-client/src/RestClientInterface.ts +++ b/packages/api-client/src/RestClientInterface.ts @@ -1,5 +1,12 @@ -import type { Serialized } from '@rocket.chat/core-typings/dist'; -import type { MatchPathPattern, OperationParams, OperationResult, PathFor } from '@rocket.chat/rest-typings'; +import type { Serialized } from '@rocket.chat/core-typings'; +import type { + MatchPathPattern, + OperationParams, + OperationResult, + PathFor, + PathWithParamsFor, + PathWithoutParamsFor, +} from '@rocket.chat/rest-typings'; type Next any> = (...args: Parameters) => ReturnType; @@ -7,23 +14,53 @@ export type Middleware any> = (context: Parameters // eslint-disable-next-line @typescript-eslint/interface-name-prefix export interface RestClientInterface { - get>( + get, TPath extends PathWithParamsFor<'GET'> = PathWithParamsFor<'GET'>>( endpoint: TPath, - params: void extends OperationParams<'GET', MatchPathPattern> ? never : OperationParams<'GET', MatchPathPattern>, + params: OperationParams<'GET', TPathPattern>, options?: Omit, - ): Promise>>>; + ): Promise>>; - get>( + get, TPath extends PathWithoutParamsFor<'GET'> = PathWithoutParamsFor<'GET'>>( endpoint: TPath, - params?: void extends OperationParams<'GET', MatchPathPattern> ? undefined : never, + params?: undefined, options?: Omit, - ): Promise>>>; + ): Promise>>; - post>( + post, TPath extends PathWithParamsFor<'POST'> = PathWithParamsFor<'POST'>>( endpoint: TPath, - params: void extends OperationParams<'POST', MatchPathPattern> ? void : OperationParams<'POST', MatchPathPattern>, + params: OperationParams<'POST', TPathPattern>, + options?: Omit, + ): Promise>>; + + post, TPath extends PathWithoutParamsFor<'POST'> = PathWithoutParamsFor<'POST'>>( + endpoint: TPath, + params?: undefined, options?: Omit, - ): Promise>>>; + ): Promise>>; + + put, TPath extends PathWithParamsFor<'PUT'> = PathWithParamsFor<'PUT'>>( + endpoint: TPath, + params: OperationParams<'PUT', TPathPattern>, + options?: Omit, + ): Promise>>; + + put, TPath extends PathWithoutParamsFor<'PUT'> = PathWithoutParamsFor<'PUT'>>( + endpoint: TPath, + params?: undefined, + options?: Omit, + ): Promise>>; + + delete, TPath extends PathWithParamsFor<'DELETE'> = PathWithParamsFor<'DELETE'>>( + endpoint: TPath, + params: OperationParams<'DELETE', TPathPattern>, + options?: Omit, + ): Promise>>; + + delete, TPath extends PathWithoutParamsFor<'DELETE'> = PathWithoutParamsFor<'DELETE'>>( + endpoint: TPath, + params?: undefined, + options?: Omit, + ): Promise>>; upload>( endpoint: TPath, @@ -36,17 +73,6 @@ export interface RestClientInterface { }, ): XMLHttpRequest; - put>( - endpoint: TPath, - params: void extends OperationParams<'PUT', MatchPathPattern> ? void : OperationParams<'PUT', MatchPathPattern>, - options?: Omit, - ): Promise>>>; - - delete>( - endpoint: TPath, - params: void extends OperationParams<'DELETE', MatchPathPattern> ? void : OperationParams<'DELETE', MatchPathPattern>, - options?: Omit, - ): Promise>>>; getCredentials(): | { 'X-User-Id': string; diff --git a/packages/api-client/src/index.ts b/packages/api-client/src/index.ts index 02a40b8a54f9..8177ddf309a3 100644 --- a/packages/api-client/src/index.ts +++ b/packages/api-client/src/index.ts @@ -1,7 +1,14 @@ import { stringify } from 'query-string'; +import type { Serialized } from '@rocket.chat/core-typings'; +import type { + MatchPathPattern, + ParamsFor, + OperationResult, + PathFor, + PathWithoutParamsFor, + PathWithParamsFor, +} from '@rocket.chat/rest-typings'; -import type { Serialized } from '../../core-typings/dist'; -import type { MatchPathPattern, OperationParams, OperationResult, PathFor } from '../../rest-typings/dist'; import type { Middleware, RestClientInterface } from './RestClientInterface'; export { RestClientInterface }; @@ -78,37 +85,52 @@ export class RestClient implements RestClientInterface { this.credentials = credentials; }; - get>( + get, TPath extends PathWithParamsFor<'GET'> = PathWithParamsFor<'GET'>>( endpoint: TPath, - params: void extends OperationParams<'GET', MatchPathPattern> ? never : OperationParams<'GET', MatchPathPattern>, + params: ParamsFor<'GET', TPathPattern>, options?: Omit, - ): Promise>>>; + ): Promise>>; - get>( + get, TPath extends PathWithoutParamsFor<'GET'> = PathWithoutParamsFor<'GET'>>( endpoint: TPath, - params?: void extends OperationParams<'GET', MatchPathPattern> ? undefined : never, + params?: undefined, options?: Omit, - ): Promise>>>; + ): Promise>>; - get>( + async get, TPath extends PathFor<'GET'>>( endpoint: TPath, - params?: OperationParams<'GET', MatchPathPattern>, + params?: ParamsFor<'GET', TPathPattern>, options?: Omit, - ): Promise>>> { + ): Promise>> { if (/\?/.test(endpoint)) { // throw new Error('Endpoint cannot contain query string'); console.warn('Endpoint cannot contain query string', endpoint); } const queryParams = this.getParams(params); - return this.send(`${endpoint}${queryParams ? `?${queryParams}` : ''}`, 'GET', options ?? {}).then(function (response) { - return response.json(); - }); + const response = await this.send(`${endpoint}${queryParams ? `?${queryParams}` : ''}`, 'GET', options ?? {}); + return response.json(); } - post: RestClientInterface['post'] = (endpoint, params, { headers, ...options } = {}) => { + post, TPath extends PathWithParamsFor<'POST'> = PathWithParamsFor<'POST'>>( + endpoint: TPath, + params: ParamsFor<'POST', TPathPattern>, + options?: Omit, + ): Promise>>; + + post, TPath extends PathWithoutParamsFor<'POST'> = PathWithoutParamsFor<'POST'>>( + endpoint: TPath, + params?: undefined, + options?: Omit, + ): Promise>>; + + async post, TPath extends PathFor<'POST'>>( + endpoint: TPath, + params?: ParamsFor<'POST', TPathPattern>, + { headers, ...options }: Omit = {}, + ): Promise>> { const isFormData = checkIfIsFormData(params); - return this.send(endpoint, 'POST', { + const response = await this.send(endpoint, 'POST', { body: isFormData ? buildFormData(params) : JSON.stringify(params), headers: { @@ -118,14 +140,29 @@ export class RestClient implements RestClientInterface { }, ...options, - }).then(function (response) { - return response.json(); }); - }; + return response.json(); + } + + put, TPath extends PathWithParamsFor<'PUT'> = PathWithParamsFor<'PUT'>>( + endpoint: TPath, + params: ParamsFor<'PUT', TPathPattern>, + options?: Omit, + ): Promise>>; - put: RestClientInterface['put'] = (endpoint, params, { headers, ...options } = {}) => { + put, TPath extends PathWithoutParamsFor<'PUT'> = PathWithoutParamsFor<'PUT'>>( + endpoint: TPath, + params?: undefined, + options?: Omit, + ): Promise>>; + + async put, TPath extends PathFor<'PUT'>>( + endpoint: TPath, + params?: ParamsFor<'PUT', TPathPattern>, + { headers, ...options }: Omit = {}, + ): Promise>> { const isFormData = checkIfIsFormData(params); - return this.send(endpoint, 'PUT', { + const response = await this.send(endpoint, 'PUT', { body: isFormData ? buildFormData(params) : JSON.stringify(params), headers: { @@ -135,16 +172,30 @@ export class RestClient implements RestClientInterface { }, ...options, - }).then(function (response) { - return response.json(); }); - }; + return response.json(); + } - delete: RestClientInterface['delete'] = (endpoint, params, options) => { - return this.send(endpoint, 'DELETE', options ?? {}).then(function (response) { - return response.json(); - }); - }; + delete, TPath extends PathWithParamsFor<'DELETE'> = PathWithParamsFor<'DELETE'>>( + endpoint: TPath, + params: ParamsFor<'DELETE', TPathPattern>, + options?: Omit, + ): Promise>>; + + delete, TPath extends PathWithoutParamsFor<'DELETE'> = PathWithoutParamsFor<'DELETE'>>( + endpoint: TPath, + params?: undefined, + options?: Omit, + ): Promise>>; + + async delete, TPath extends PathFor<'DELETE'>>( + endpoint: TPath, + params?: ParamsFor<'DELETE', TPathPattern>, + { headers, ...options }: Omit = {}, + ): Promise>> { + const response = await this.send(endpoint, 'DELETE', options ?? {}); + return response.json(); + } protected getCredentialsAsHeaders(): Record { const credentials = this.getCredentials(); diff --git a/packages/core-typings/package.json b/packages/core-typings/package.json index 8a89b54d4856..2a6c767492a2 100644 --- a/packages/core-typings/package.json +++ b/packages/core-typings/package.json @@ -7,7 +7,7 @@ "@types/mongodb": "^3.6.10", "eslint": "^8.14.0", "prettier": "^2.6.2", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "scripts": { "lint": "eslint --ext .js,.jsx,.ts,.tsx .", diff --git a/packages/favicon/package.json b/packages/favicon/package.json index 359853747b27..f73a859e9270 100644 --- a/packages/favicon/package.json +++ b/packages/favicon/package.json @@ -4,7 +4,7 @@ "private": true, "devDependencies": { "eslint": "^8.12.0", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "scripts": { "lint": "eslint --ext .js,.jsx,.ts,.tsx .", diff --git a/packages/gazzodown/package.json b/packages/gazzodown/package.json index e895cbf439e3..5604c697f4ff 100644 --- a/packages/gazzodown/package.json +++ b/packages/gazzodown/package.json @@ -43,7 +43,7 @@ "outdent": "^0.8.0", "react-dom": "~17.0.2", "ts-jest": "^27.1.4", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "scripts": { "lint": "eslint --ext .js,.jsx,.ts,.tsx .", diff --git a/packages/livechat/package.json b/packages/livechat/package.json index d0c0ea179570..480a03fcb5b4 100644 --- a/packages/livechat/package.json +++ b/packages/livechat/package.json @@ -74,7 +74,7 @@ "stylelint-order": "^4.1.0", "svg-loader": "^0.0.2", "ts-loader": "^8.3.0", - "typescript": "^4.6.3", + "typescript": "~4.5.5", "url-loader": "^4.1.0", "webpack": "^4.44.1", "webpack-cli": "^3.3.12", diff --git a/packages/model-typings/package.json b/packages/model-typings/package.json index 5759c40708da..29cbf668ddd6 100644 --- a/packages/model-typings/package.json +++ b/packages/model-typings/package.json @@ -9,7 +9,7 @@ "eslint": "^8.12.0", "jest": "^27.5.1", "ts-jest": "^27.1.4", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "scripts": { "lint": "eslint --ext .js,.jsx,.ts,.tsx .", diff --git a/packages/models/package.json b/packages/models/package.json index 87c6074d6b04..f9c1a67c461f 100644 --- a/packages/models/package.json +++ b/packages/models/package.json @@ -7,7 +7,7 @@ "eslint": "^8.12.0", "jest": "^27.5.1", "ts-jest": "^27.1.4", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "dependencies": { "@rocket.chat/model-typings": "workspace:^" diff --git a/packages/node-poplib/package.json b/packages/node-poplib/package.json index d209d09aaf3d..5a12cc299835 100644 --- a/packages/node-poplib/package.json +++ b/packages/node-poplib/package.json @@ -7,7 +7,7 @@ "eslint": "^8.12.0", "jest": "^27.5.1", "ts-jest": "^27.1.4", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "scripts": { "jest": "jest" diff --git a/packages/rest-typings/package.json b/packages/rest-typings/package.json index f4490e940749..5b32fae9abd9 100644 --- a/packages/rest-typings/package.json +++ b/packages/rest-typings/package.json @@ -9,7 +9,7 @@ "eslint": "^8.14.0", "jest": "^27.5.1", "ts-jest": "^27.1.4", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "scripts": { "lint": "eslint --ext .js,.jsx,.ts,.tsx .", diff --git a/packages/rest-typings/src/.eslintrc.js b/packages/rest-typings/src/.eslintrc.js deleted file mode 120000 index 4ce23c9428e7..000000000000 --- a/packages/rest-typings/src/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -../../client/.eslintrc.js \ No newline at end of file diff --git a/packages/rest-typings/src/apps/index.ts b/packages/rest-typings/src/apps/index.ts index c78a3d83f72e..dce095acc1ac 100644 --- a/packages/rest-typings/src/apps/index.ts +++ b/packages/rest-typings/src/apps/index.ts @@ -21,17 +21,26 @@ export type AppsEndpoints = { }; }; - '/apps/:id/versions': { - GET: () => { - apps: App[]; - success: boolean; - }; - }; - '/apps/actionButtons': { GET: () => IUIActionButton[]; }; + '/apps/languages': { + GET: () => { + apps: { + id: string; + languages: { + [key: string]: { + Params: string; + Description: string; + Setting_Name: string; + Setting_Description: string; + }; + }; + }; + }; + }; + '/apps/public/:appId/get-sidebar-icon': { GET: (params: { icon: string }) => unknown; }; @@ -49,6 +58,14 @@ export type AppsEndpoints = { }; }; + '/apps/:id/languages': { + GET: () => { + languages: { + [key: string]: object; + }; + }; + }; + '/apps/:id/apis': { GET: () => { apis: IApiEndpointMetadata[]; @@ -100,7 +117,8 @@ export type AppsEndpoints = { id: string; modifiedDate: Date; title: string; - }[]); + }[]) + | (() => { apps: App[] }); POST: (params: { appId: string; marketplace: boolean; version: string; permissionsGranted: IPermission[] }) => { app: App; diff --git a/packages/rest-typings/src/index.ts b/packages/rest-typings/src/index.ts index 375abbb11d44..5a268a04413f 100644 --- a/packages/rest-typings/src/index.ts +++ b/packages/rest-typings/src/index.ts @@ -82,24 +82,26 @@ export interface Endpoints SubscriptionsEndpoints, AutoTranslateEndpoints {} -type OperationsByPathPattern = TPathPattern extends any - ? OperationsByPathPatternAndMethod - : never; - type OperationsByPathPatternAndMethod< - TPathPattern extends keyof Endpoints, - TMethod extends KeyOfEach = KeyOfEach, + TEndpoints extends Endpoints, + TPathPattern extends keyof TEndpoints, + TMethod extends KeyOfEach = KeyOfEach, > = TMethod extends any ? { pathPattern: TPathPattern; method: TMethod; - path: ReplacePlaceholders; - params: GetParams; - result: GetResult; + fn: TEndpoints[TPathPattern][TMethod]; + path: ReplacePlaceholders; + params: GetParams; + result: GetResult; } : never; -type Operations = OperationsByPathPattern; +type OperationsByPathPattern = TPathPattern extends any + ? OperationsByPathPatternAndMethod + : never; + +type Operations = OperationsByPathPattern; export type PathPattern = Operations['pathPattern']; @@ -107,9 +109,59 @@ export type Method = Operations['method']; export type Path = Operations['path']; -export type MethodFor = TPath extends any ? Extract['method'] : never; - -export type PathFor = TMethod extends any ? Extract['path'] : never; +type MethodToPathMap = { + [TOperation in Operations as TOperation['method']]: TOperation['path']; +}; + +type MethodToPathWithParamsMap = { + [TOperation in Operations as Parameters extends { length: 0 } ? never : TOperation['method']]: TOperation['path']; +}; + +type MethodToPathWithoutParamsMap = { + [TOperation in Operations as Parameters extends { length: 0 } + ? TOperation['method'] + : undefined extends Parameters[0] + ? TOperation['method'] + : never]: TOperation['path']; +}; + +export type PathFor = MethodToPathMap[TMethod]; + +export type PathWithParamsFor = MethodToPathWithParamsMap[TMethod extends keyof MethodToPathWithParamsMap + ? TMethod + : never]; + +export type PathWithoutParamsFor = MethodToPathWithoutParamsMap[TMethod extends keyof MethodToPathWithoutParamsMap + ? TMethod + : never]; + +type MethodToPathPatternToParamsMap = { + [TMethod in Method]: { + [TPathPattern in keyof Endpoints]: TMethod extends keyof Endpoints[TPathPattern] + ? Endpoints[TPathPattern][TMethod] extends infer TOperation + ? TOperation extends (...args: any) => any + ? Parameters[0] + : never + : never + : never; + }; +}; + +type MethodToPathPatternToResultMap = { + [TMethod in Method]: { + [TPathPattern in keyof Endpoints]: TMethod extends keyof Endpoints[TPathPattern] + ? Endpoints[TPathPattern][TMethod] extends infer TOperation + ? TOperation extends (...args: any) => any + ? ReturnType + : never + : never + : never; + }; +}; + +export type ParamsFor = MethodToPathPatternToParamsMap[TMethod][TPathPattern]; + +export type ResultFor = MethodToPathPatternToResultMap[TMethod][TPathPattern]; export type MatchPathPattern = TPath extends any ? Extract['pathPattern'] : never; @@ -118,11 +170,7 @@ export type JoinPathPattern; -type GetParams = TOperation extends (...args: any) => any - ? Parameters[0] extends void - ? void - : Parameters[0] - : never; +type GetParams = TOperation extends (...args: any) => any ? Parameters[0] : never; type GetResult = TOperation extends (...args: any) => any ? ReturnType : never; @@ -199,3 +247,4 @@ export * from './v1/import/GetLatestImportOperationsParamsGET'; export * from './v1/import/DownloadPendingFilesParamsPOST'; export * from './v1/import/DownloadPendingAvatarsParamsPOST'; export * from './v1/import/GetCurrentImportOperationParamsGET'; +export * from './v1/voip'; diff --git a/packages/rest-typings/src/v1/channels/ChannelsMessagesProps.ts b/packages/rest-typings/src/v1/channels/ChannelsMessagesProps.ts index e385f74d00af..b44a16641555 100644 --- a/packages/rest-typings/src/v1/channels/ChannelsMessagesProps.ts +++ b/packages/rest-typings/src/v1/channels/ChannelsMessagesProps.ts @@ -1,6 +1,6 @@ import Ajv from 'ajv'; +import type { IRoom } from '@rocket.chat/core-typings'; -import type { IRoom } from '../../../../core-typings/dist'; import type { PaginatedRequest } from '../../helpers/PaginatedRequest'; const ajv = new Ajv({ coerceTypes: true }); diff --git a/packages/rest-typings/src/v1/cloud.ts b/packages/rest-typings/src/v1/cloud.ts index 1e265f0025d9..15a73d9da090 100644 --- a/packages/rest-typings/src/v1/cloud.ts +++ b/packages/rest-typings/src/v1/cloud.ts @@ -81,6 +81,6 @@ export type CloudEndpoints = { }; }; '/v1/cloud.registrationStatus': { - GET: (params: void) => { registrationStatus: CloudRegistrationStatus }; + GET: () => { registrationStatus: CloudRegistrationStatus }; }; }; diff --git a/packages/rest-typings/src/v1/commands.ts b/packages/rest-typings/src/v1/commands.ts index 5561963cbb7d..41a08435bade 100644 --- a/packages/rest-typings/src/v1/commands.ts +++ b/packages/rest-typings/src/v1/commands.ts @@ -1,4 +1,5 @@ -import type { SlashCommand, SlashCommandPreviews } from '../../../core-typings/dist'; +import type { SlashCommand, SlashCommandPreviews } from '@rocket.chat/core-typings'; + import type { PaginatedRequest } from '../helpers/PaginatedRequest'; import type { PaginatedResult } from '../helpers/PaginatedResult'; @@ -10,7 +11,7 @@ export type CommandsEndpoints = { }; '/v1/commands.list': { GET: ( - params: PaginatedRequest<{ + params?: PaginatedRequest<{ fields?: string; }>, ) => PaginatedResult<{ diff --git a/packages/rest-typings/src/v1/dm/DmHistoryProps.ts b/packages/rest-typings/src/v1/dm/DmHistoryProps.ts index dc8d46f4341d..44f930a595f2 100644 --- a/packages/rest-typings/src/v1/dm/DmHistoryProps.ts +++ b/packages/rest-typings/src/v1/dm/DmHistoryProps.ts @@ -1,6 +1,7 @@ -import type { PaginatedRequest } from '@rocket.chat/rest-typings/src/helpers/PaginatedRequest'; import Ajv from 'ajv'; +import type { PaginatedRequest } from '../../helpers/PaginatedRequest'; + const ajv = new Ajv({ coerceTypes: true, }); diff --git a/packages/rest-typings/src/v1/email-inbox.ts b/packages/rest-typings/src/v1/email-inbox.ts index d62b5845b454..87bc01953014 100644 --- a/packages/rest-typings/src/v1/email-inbox.ts +++ b/packages/rest-typings/src/v1/email-inbox.ts @@ -164,13 +164,13 @@ export type EmailInboxEndpoints = { POST: (params: EmailInboxProps) => { _id: string }; }; '/v1/email-inbox/:_id': { - GET: (params: void) => IEmailInbox | null; - DELETE: (params: void) => { _id: string }; + GET: () => IEmailInbox | null; + DELETE: () => { _id: string }; }; '/v1/email-inbox.search': { GET: (params: EmailInboxSearchProps) => { emailInbox: IEmailInbox | null }; }; '/v1/email-inbox.send-test/:_id': { - POST: (params: void) => { _id: string }; + POST: () => { _id: string }; }; }; diff --git a/packages/rest-typings/src/v1/me.ts b/packages/rest-typings/src/v1/me.ts index 048bd03f1f97..9a4b9697d683 100644 --- a/packages/rest-typings/src/v1/me.ts +++ b/packages/rest-typings/src/v1/me.ts @@ -36,7 +36,7 @@ type Keys = export type MeEndpoints = { '/v1/me': { - GET: (params: { fields: Record | Record; user: IUser }) => IUser & { + GET: (params?: { fields: Record | Record; user: IUser }) => IUser & { email?: string; settings: { profile: {}; diff --git a/packages/rest-typings/src/v1/omnichannel.ts b/packages/rest-typings/src/v1/omnichannel.ts index 1c7def526b47..8e6799312a83 100644 --- a/packages/rest-typings/src/v1/omnichannel.ts +++ b/packages/rest-typings/src/v1/omnichannel.ts @@ -969,7 +969,7 @@ export type OmnichannelEndpoints = { }; '/v1/livechat/visitor/:token': { - GET: (params: LivechatVisitorTokenGet) => { visitor: ILivechatVisitor }; + GET: (params?: LivechatVisitorTokenGet) => { visitor: ILivechatVisitor }; DELETE: (params: LivechatVisitorTokenDelete) => { visitor: { _id: string; ts: string }; }; diff --git a/packages/ui-client/package.json b/packages/ui-client/package.json index 618e92589518..e9b6b54a1b5e 100644 --- a/packages/ui-client/package.json +++ b/packages/ui-client/package.json @@ -22,7 +22,7 @@ "jest": "^27.5.1", "react": "~17.0.2", "ts-jest": "^27.1.4", - "typescript": "~4.3.4" + "typescript": "~4.5.5" }, "scripts": { "lint": "eslint --ext .js,.jsx,.ts,.tsx .", diff --git a/packages/ui-contexts/package.json b/packages/ui-contexts/package.json index 6ad0d35404f8..b09c937e7f6f 100644 --- a/packages/ui-contexts/package.json +++ b/packages/ui-contexts/package.json @@ -15,7 +15,7 @@ "jest": "^27.5.1", "react": "~17.0.2", "ts-jest": "^27.1.4", - "typescript": "~4.3.5", + "typescript": "~4.5.5", "use-sync-external-store": "^1.2.0" }, "peerDependencies": { diff --git a/packages/ui-contexts/src/ServerContext/ServerContext.ts b/packages/ui-contexts/src/ServerContext/ServerContext.ts index 41fe3215f4e4..08455d79cbb9 100644 --- a/packages/ui-contexts/src/ServerContext/ServerContext.ts +++ b/packages/ui-contexts/src/ServerContext/ServerContext.ts @@ -20,7 +20,7 @@ export type ServerContextValue = { callEndpoint: >( method: TMethod, path: TPath, - params: Serialized>>, + params: OperationParams>, ) => Promise>>>; uploadToEndpoint: ( endpoint: PathFor<'POST'>, diff --git a/packages/ui-contexts/src/hooks/useEndpoint.ts b/packages/ui-contexts/src/hooks/useEndpoint.ts index 9442d2285eb9..19dd00950bfe 100644 --- a/packages/ui-contexts/src/hooks/useEndpoint.ts +++ b/packages/ui-contexts/src/hooks/useEndpoint.ts @@ -4,9 +4,12 @@ import { useCallback, useContext } from 'react'; import { ServerContext } from '../ServerContext'; -export type EndpointFunction = ( - params: void extends OperationParams ? void : Serialized>, -) => Promise>>; +export type EndpointFunction = undefined extends OperationParams< + TMethod, + TPathPattern +> + ? (params?: OperationParams) => Promise>> + : (params: OperationParams) => Promise>>; export const useEndpoint = >( method: TMethod, @@ -14,8 +17,5 @@ export const useEndpoint = > => { const { callEndpoint } = useContext(ServerContext); - return useCallback( - (params: Serialized>>) => callEndpoint(method, path, params), - [callEndpoint, path, method], - ); + return useCallback((params: any) => callEndpoint(method, path, params), [callEndpoint, path, method]); }; diff --git a/packages/ui-contexts/src/hooks/useUserSubscriptions.ts b/packages/ui-contexts/src/hooks/useUserSubscriptions.ts index ffcb0b5cb7f5..1eee0cb2f6fa 100644 --- a/packages/ui-contexts/src/hooks/useUserSubscriptions.ts +++ b/packages/ui-contexts/src/hooks/useUserSubscriptions.ts @@ -1,7 +1,7 @@ import { useContext, useMemo } from 'react'; import { useSyncExternalStore } from 'use-sync-external-store/shim'; +import type { ISubscription } from '@rocket.chat/core-typings'; -import type { ISubscription } from '../../../core-typings/dist'; import { FindOptions, SubscriptionQuery, UserContext } from '../UserContext'; export const useUserSubscriptions = (query: SubscriptionQuery, options?: FindOptions): Array | [] => { diff --git a/packages/ui-contexts/src/index.ts b/packages/ui-contexts/src/index.ts index f5e8e50d6972..8176868e70d6 100644 --- a/packages/ui-contexts/src/index.ts +++ b/packages/ui-contexts/src/index.ts @@ -82,3 +82,4 @@ export { useSetInputMediaDevice } from './hooks/useSetInputMediaDevice'; export { ServerMethods, ServerMethodName, ServerMethodParameters, ServerMethodReturn, ServerMethodFunction } from './ServerContext/methods'; export { UploadResult } from './ServerContext'; export { TranslationKey, TranslationLanguage } from './TranslationContext'; +export { Fields } from './UserContext'; diff --git a/packages/ui-video-conf/package.json b/packages/ui-video-conf/package.json index c94a2280801e..4a2c943756af 100644 --- a/packages/ui-video-conf/package.json +++ b/packages/ui-video-conf/package.json @@ -12,7 +12,7 @@ "eslint": "^8.12.0", "jest": "^27.5.1", "ts-jest": "^27.1.4", - "typescript": "~4.3.5" + "typescript": "~4.5.5" }, "peerDependencies": { "@rocket.chat/css-in-js": "*", diff --git a/yarn.lock b/yarn.lock index 03e1d68a08f9..5bd8936e0a05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -70,30 +70,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:>=7.9.0, @babel/core@npm:^7.1.0, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.17.9, @babel/core@npm:^7.7.2, @babel/core@npm:^7.7.5, @babel/core@npm:^7.8.0": - version: 7.18.2 - resolution: "@babel/core@npm:7.18.2" - dependencies: - "@ampproject/remapping": ^2.1.0 - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.18.2 - "@babel/helper-compilation-targets": ^7.18.2 - "@babel/helper-module-transforms": ^7.18.0 - "@babel/helpers": ^7.18.2 - "@babel/parser": ^7.18.0 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.18.2 - "@babel/types": ^7.18.2 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.1 - semver: ^6.3.0 - checksum: 14a4142c12e004cd2477b7610408d5788ee5dd821ee9e4de204cbb72d9c399d858d9deabc3d49914d5d7c2927548160c19bdc7524b1a9f6acc1ec96a8d9848dd - languageName: node - linkType: hard - -"@babel/core@npm:^7.18.5": +"@babel/core@npm:>=7.9.0, @babel/core@npm:^7.1.0, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.17.9, @babel/core@npm:^7.18.5, @babel/core@npm:^7.7.2, @babel/core@npm:^7.7.5, @babel/core@npm:^7.8.0": version: 7.18.5 resolution: "@babel/core@npm:7.18.5" dependencies: @@ -416,16 +393,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.12.11, @babel/parser@npm:^7.12.7, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.7, @babel/parser@npm:^7.18.0, @babel/parser@npm:^7.7.0": - version: 7.18.4 - resolution: "@babel/parser@npm:7.18.4" - bin: - parser: ./bin/babel-parser.js - checksum: e05b2dc720c4b200e088258f3c2a2de5041c140444edc38181d1217b10074e881a7133162c5b62356061f26279f08df5a06ec14c5842996ee8601ad03c57a44f - languageName: node - linkType: hard - -"@babel/parser@npm:^7.18.5": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.12.11, @babel/parser@npm:^7.12.7, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.7, @babel/parser@npm:^7.18.5, @babel/parser@npm:^7.7.0": version: 7.18.5 resolution: "@babel/parser@npm:7.18.5" bin: @@ -1588,25 +1556,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.12.11, @babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.18.0, @babel/traverse@npm:^7.18.2, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.7.2": - version: 7.18.2 - resolution: "@babel/traverse@npm:7.18.2" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.18.2 - "@babel/helper-environment-visitor": ^7.18.2 - "@babel/helper-function-name": ^7.17.9 - "@babel/helper-hoist-variables": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - "@babel/parser": ^7.18.0 - "@babel/types": ^7.18.2 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: e21c2d550bf610406cf21ef6fbec525cb1d80b9d6d71af67552478a24ee371203cb4025b23b110ae7288a62a874ad5898daad19ad23daa95dfc8ab47a47a092f - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.18.5": +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.12.11, @babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.18.0, @babel/traverse@npm:^7.18.2, @babel/traverse@npm:^7.18.5, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.7.2": version: 7.18.5 resolution: "@babel/traverse@npm:7.18.5" dependencies: @@ -3323,7 +3273,7 @@ __metadata: split-on-first: ^3.0.0 strict-uri-encode: ^2.0.0 ts-jest: ^27.1.4 - typescript: ~4.3.5 + typescript: ~4.5.5 languageName: unknown linkType: soft @@ -3367,23 +3317,10 @@ __metadata: "@types/mongodb": ^3.6.10 eslint: ^8.14.0 prettier: ^2.6.2 - typescript: ~4.3.4 + typescript: ~4.5.5 languageName: unknown linkType: soft -"@rocket.chat/css-in-js@npm:^0.31.13": - version: 0.31.13 - resolution: "@rocket.chat/css-in-js@npm:0.31.13" - dependencies: - "@emotion/hash": ^0.8.0 - "@rocket.chat/css-supports": ^0.31.13 - "@rocket.chat/memo": ^0.31.13 - "@rocket.chat/stylis-logical-props-middleware": ^0.31.13 - stylis: ~4.0.13 - checksum: ca34f64727c9bf4505c858d59148e663731dea844864b0065548fb2c58e0a573296cf487096d3ac2e7eef6d8442d7c275864acd75c9403762215dd4f639c29b3 - languageName: node - linkType: hard - "@rocket.chat/css-in-js@npm:^0.31.14, @rocket.chat/css-in-js@npm:~0.31.14": version: 0.31.14 resolution: "@rocket.chat/css-in-js@npm:0.31.14" @@ -3410,7 +3347,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/css-supports@npm:^0.31.13, @rocket.chat/css-supports@npm:^0.31.14": +"@rocket.chat/css-supports@npm:^0.31.14": version: 0.31.14 resolution: "@rocket.chat/css-supports@npm:0.31.14" dependencies: @@ -3459,21 +3396,14 @@ __metadata: pino: ^7.9.2 pino-pretty: ^7.6.0 sharp: ^0.30.6 - typescript: ~4.3.5 + typescript: ~4.5.5 underscore: ^1.13.4 uuid: ^7.0.3 ws: ^8.5.0 languageName: unknown linkType: soft -"@rocket.chat/emitter@npm:^0.31.11, @rocket.chat/emitter@npm:~0.31.9": - version: 0.31.13 - resolution: "@rocket.chat/emitter@npm:0.31.13" - checksum: a6b00781b68eb4b584b184e67ad129a3599bb190f153f17d91547d1dacbe83d142c2e202ffbee664459cb9888497d4084d37a83cbd1d2f257c571967c0ee6afb - languageName: node - linkType: hard - -"@rocket.chat/emitter@npm:~0.31.14": +"@rocket.chat/emitter@npm:^0.31.11, @rocket.chat/emitter@npm:~0.31.14, @rocket.chat/emitter@npm:~0.31.9": version: 0.31.14 resolution: "@rocket.chat/emitter@npm:0.31.14" checksum: f862da2f8c103b95e2eb48e6817dd683ce36fad6238e1d64eb17597d4ff2836809ebe816cdd2360fe9152042fc4573a6953ce3e6216dc9e0b8f3e9cf0fc38bf5 @@ -3515,7 +3445,7 @@ __metadata: resolution: "@rocket.chat/favicon@workspace:packages/favicon" dependencies: eslint: ^8.12.0 - typescript: ~4.3.4 + typescript: ~4.5.5 languageName: unknown linkType: soft @@ -3579,7 +3509,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/fuselage-hooks@npm:^0.31.14, @rocket.chat/fuselage-hooks@npm:~0.31.14": +"@rocket.chat/fuselage-hooks@npm:^0.31.14, @rocket.chat/fuselage-hooks@npm:~0.31.14, @rocket.chat/fuselage-hooks@npm:~0.31.14-dev.9": version: 0.31.14 resolution: "@rocket.chat/fuselage-hooks@npm:0.31.14" dependencies: @@ -3591,18 +3521,6 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/fuselage-hooks@npm:~0.31.14-dev.9": - version: 0.31.14-dev.9 - resolution: "@rocket.chat/fuselage-hooks@npm:0.31.14-dev.9" - dependencies: - use-sync-external-store: ~1.2.0 - peerDependencies: - "@rocket.chat/fuselage-tokens": "*" - react: ^17.0.2 - checksum: fa79c8c8a5b56d0c5ccd2118735a6eef5aaf99f1392161d90e72da4dc0cd1dc9007387df71ab428545f72a3c5c8c1648c086078724cb4698ec05044a0462e0b6 - languageName: node - linkType: hard - "@rocket.chat/fuselage-polyfills@npm:~0.31.14": version: 0.31.14 resolution: "@rocket.chat/fuselage-polyfills@npm:0.31.14" @@ -3632,7 +3550,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/fuselage-tokens@npm:^0.31.13, @rocket.chat/fuselage-tokens@npm:^0.31.14, @rocket.chat/fuselage-tokens@npm:~0.31.14": +"@rocket.chat/fuselage-tokens@npm:^0.31.14, @rocket.chat/fuselage-tokens@npm:~0.31.14": version: 0.31.14 resolution: "@rocket.chat/fuselage-tokens@npm:0.31.14" checksum: 5b57182d336e5edfad8667b26a66dbd6cfef8ea6c5059e5f55062a02013b11c47d5325a35351df8ede1c2664427f8d7f66a9197388643e408251bcb7caab7db6 @@ -3664,29 +3582,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/fuselage@npm:^0.31.13": - version: 0.31.13 - resolution: "@rocket.chat/fuselage@npm:0.31.13" - dependencies: - "@rocket.chat/css-in-js": ^0.31.13 - "@rocket.chat/css-supports": ^0.31.13 - "@rocket.chat/fuselage-tokens": ^0.31.13 - "@rocket.chat/memo": ^0.31.13 - "@rocket.chat/styled": ^0.31.13 - invariant: ^2.2.4 - react-keyed-flatten-children: ^1.3.0 - peerDependencies: - "@rocket.chat/fuselage-hooks": "*" - "@rocket.chat/fuselage-polyfills": "*" - "@rocket.chat/icons": "*" - react: ^17.0.2 - react-dom: ^17.0.2 - react-virtuoso: 1.2.4 - checksum: 3608f36e87b309fadb4fe8cf2456fcab87dfdba1b76af52a5c6f9d2e43574c193d287c2f0789c50a218476e05286afaf155fd9369a1c0d4130b6dbd6c88ecf25 - languageName: node - linkType: hard - -"@rocket.chat/fuselage@npm:^0.31.14, @rocket.chat/fuselage@npm:~0.31.14": +"@rocket.chat/fuselage@npm:^0.31.13, @rocket.chat/fuselage@npm:^0.31.14, @rocket.chat/fuselage@npm:~0.31.14": version: 0.31.14 resolution: "@rocket.chat/fuselage@npm:0.31.14" dependencies: @@ -3775,7 +3671,7 @@ __metadata: outdent: ^0.8.0 react-dom: ~17.0.2 ts-jest: ^27.1.4 - typescript: ~4.3.4 + typescript: ~4.5.5 peerDependencies: "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/css-in-js": "*" @@ -3790,14 +3686,7 @@ __metadata: languageName: unknown linkType: soft -"@rocket.chat/icons@npm:^0.31.0, @rocket.chat/icons@npm:^0.31.9": - version: 0.31.13 - resolution: "@rocket.chat/icons@npm:0.31.13" - checksum: 17b9a6555a2bdfefdcbaabdbfcad766eb24f66ee5e02ac1e11b75918d8bf4256fdf42a082b1b56f4d748eb6171a7d54ff544e740e9e00702c79822710f9dc51f - languageName: node - linkType: hard - -"@rocket.chat/icons@npm:^0.31.14, @rocket.chat/icons@npm:~0.31.14": +"@rocket.chat/icons@npm:^0.31.0, @rocket.chat/icons@npm:^0.31.14, @rocket.chat/icons@npm:^0.31.9, @rocket.chat/icons@npm:~0.31.14": version: 0.31.14 resolution: "@rocket.chat/icons@npm:0.31.14" checksum: e9170d011fe9e3987fbc650619999642766df7525fcc367666e664707cf70b57a5f9d598e1dfb3cad61e9ffea3fb84d02a09e9cd232cefaeabd3cc0fe9dc770f @@ -3874,7 +3763,7 @@ __metadata: stylelint-order: ^4.1.0 svg-loader: ^0.0.2 ts-loader: ^8.3.0 - typescript: ^4.6.3 + typescript: ~4.5.5 url-loader: ^4.1.0 webpack: ^4.44.1 webpack-cli: ^3.3.12 @@ -3900,7 +3789,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/memo@npm:^0.31.13, @rocket.chat/memo@npm:^0.31.14, @rocket.chat/memo@npm:~0.31.14": +"@rocket.chat/memo@npm:^0.31.14, @rocket.chat/memo@npm:~0.31.14": version: 0.31.14 resolution: "@rocket.chat/memo@npm:0.31.14" checksum: b4ea5b6d0dc2cb4369c2948afc8d923fd0992ccfcc501735ba0a8add1baf9c291117db71a12caab3ff066952e2298a718b75c07e8f737c3805ad40ed7c183903 @@ -3914,14 +3803,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/message-parser@npm:^0.32.0-dev.5": - version: 0.32.0-dev.5 - resolution: "@rocket.chat/message-parser@npm:0.32.0-dev.5" - checksum: 111948c92c668467043895571f48eb8e4bf0ad9e57d37b2b88fa9084ab75b5d7adc070a69bc2b9d2640883a8011a6c537c6b0c020a91a0c7fba05a6fec0062cc - languageName: node - linkType: hard - -"@rocket.chat/message-parser@npm:next": +"@rocket.chat/message-parser@npm:^0.32.0-dev.5, @rocket.chat/message-parser@npm:next, @rocket.chat/message-parser@npm:~0.32.0-dev.5": version: 0.32.0-dev.17 resolution: "@rocket.chat/message-parser@npm:0.32.0-dev.17" checksum: 5a80bd059b5d97543d76be1ed08b3399316d00ac4ad8783c2f0b9ec52dd6f7c94ed39a31b6e42f6d9311477b76963bfbf1f082d8fe0e86c96845a6e841c8ed40 @@ -3935,13 +3817,6 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/message-parser@npm:~0.32.0-dev.5": - version: 0.32.0-dev.7 - resolution: "@rocket.chat/message-parser@npm:0.32.0-dev.7" - checksum: a48907ea5db3ce93d77fe3631a657f13b2ddda6dfe9a3376639514ef6ec2938f36d257376789aa67b210b5389b52ee4f04a4b0fda9e4541c2bd16a94c1fa527c - languageName: node - linkType: hard - "@rocket.chat/meteor@workspace:apps/meteor": version: 0.0.0-use.local resolution: "@rocket.chat/meteor@workspace:apps/meteor" @@ -4240,7 +4115,7 @@ __metadata: turndown: ^7.1.1 twilio: ^3.76.1 twit: ^2.2.11 - typescript: ~4.3.4 + typescript: ~4.5.5 ua-parser-js: ^1.0.2 underscore: ^1.13.3 underscore.string: ^3.3.6 @@ -4271,7 +4146,7 @@ __metadata: eslint: ^8.12.0 jest: ^27.5.1 ts-jest: ^27.1.4 - typescript: ~4.3.4 + typescript: ~4.5.5 languageName: unknown linkType: soft @@ -4284,7 +4159,7 @@ __metadata: eslint: ^8.12.0 jest: ^27.5.1 ts-jest: ^27.1.4 - typescript: ~4.3.4 + typescript: ~4.5.5 languageName: unknown linkType: soft @@ -4326,7 +4201,7 @@ __metadata: eslint: ^8.12.0 jest: ^27.5.1 ts-jest: ^27.1.4 - typescript: ~4.3.4 + typescript: ~4.5.5 languageName: unknown linkType: soft @@ -4345,7 +4220,7 @@ __metadata: eslint: ^8.14.0 jest: ^27.5.1 ts-jest: ^27.1.4 - typescript: ~4.3.4 + typescript: ~4.5.5 languageName: unknown linkType: soft @@ -4362,7 +4237,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/string-helpers@npm:~0.31.14": +"@rocket.chat/string-helpers@npm:~0.31.14, @rocket.chat/string-helpers@npm:~0.31.9": version: 0.31.14 resolution: "@rocket.chat/string-helpers@npm:0.31.14" dependencies: @@ -4371,16 +4246,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/string-helpers@npm:~0.31.9": - version: 0.31.13 - resolution: "@rocket.chat/string-helpers@npm:0.31.13" - dependencies: - tslib: ^2.3.1 - checksum: 3c1b28fc613948d014b79bd31e29d1cf064b27e3746e83683f6e29dea765ed20564ccd2b804a97dd8486ad2e937c2f01a78d8aeba2c6dbfb69fdc3d862272c35 - languageName: node - linkType: hard - -"@rocket.chat/styled@npm:^0.31.13, @rocket.chat/styled@npm:^0.31.14, @rocket.chat/styled@npm:~0.31.14": +"@rocket.chat/styled@npm:^0.31.14, @rocket.chat/styled@npm:~0.31.14": version: 0.31.14 resolution: "@rocket.chat/styled@npm:0.31.14" dependencies: @@ -4400,7 +4266,7 @@ __metadata: languageName: node linkType: hard -"@rocket.chat/stylis-logical-props-middleware@npm:^0.31.13, @rocket.chat/stylis-logical-props-middleware@npm:^0.31.14": +"@rocket.chat/stylis-logical-props-middleware@npm:^0.31.14": version: 0.31.14 resolution: "@rocket.chat/stylis-logical-props-middleware@npm:0.31.14" dependencies: @@ -4447,7 +4313,7 @@ __metadata: jest: ^27.5.1 react: ~17.0.2 ts-jest: ^27.1.4 - typescript: ~4.3.4 + typescript: ~4.5.5 peerDependencies: "@rocket.chat/fuselage": "*" react: ~17.0.2 @@ -4470,7 +4336,7 @@ __metadata: jest: ^27.5.1 react: ~17.0.2 ts-jest: ^27.1.4 - typescript: ~4.3.5 + typescript: ~4.5.5 use-sync-external-store: ^1.2.0 peerDependencies: "@rocket.chat/core-typings": "workspace:^" @@ -4516,7 +4382,7 @@ __metadata: eslint: ^8.12.0 jest: ^27.5.1 ts-jest: ^27.1.4 - typescript: ~4.3.5 + typescript: ~4.5.5 peerDependencies: "@rocket.chat/css-in-js": "*" "@rocket.chat/fuselage": "*" @@ -4692,42 +4558,7 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:6.5.8, @storybook/addon-actions@npm:^6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-actions@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.8 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - polished: ^4.2.2 - prop-types: ^15.7.2 - react-inspector: ^5.1.0 - regenerator-runtime: ^0.13.7 - telejson: ^6.0.8 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - uuid-browser: ^3.1.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 985587c943403b25292a667e3111091de9dd615194979cac089032cb2e26ceae769c68a9964cba8ce45e421266946bca760c8404891e57142f3220ada182c083 - languageName: node - linkType: hard - -"@storybook/addon-actions@npm:6.5.9, @storybook/addon-actions@npm:^6.5.9": +"@storybook/addon-actions@npm:6.5.9, @storybook/addon-actions@npm:^6.5.8, @storybook/addon-actions@npm:^6.5.9": version: 6.5.9 resolution: "@storybook/addon-actions@npm:6.5.9" dependencies: @@ -4762,36 +4593,7 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:6.5.8, @storybook/addon-backgrounds@npm:^6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-backgrounds@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.8 - core-js: ^3.8.2 - global: ^4.4.0 - memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 9c27457955c107f42072788a90d154539a86e05f102628f4ed1116a447c9af38e5f333c67a45bcc54e07544217619e7f180373b84c295349c4759eac7fd5f9fc - languageName: node - linkType: hard - -"@storybook/addon-backgrounds@npm:6.5.9": +"@storybook/addon-backgrounds@npm:6.5.9, @storybook/addon-backgrounds@npm:^6.5.8": version: 6.5.9 resolution: "@storybook/addon-backgrounds@npm:6.5.9" dependencies: @@ -4820,34 +4622,6 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-controls@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-controls@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-common": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/node-logger": 6.5.8 - "@storybook/store": 6.5.8 - "@storybook/theming": 6.5.8 - core-js: ^3.8.2 - lodash: ^4.17.21 - ts-dedent: ^2.0.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 4be91f9de83fc0ece68c2d4b53b59dce7ff32df6e8201922501dfdff54aca1940b437813fcf17ae20974bf3aa250e1b2f8effffbb8c13a14d9061fd55b45e3c6 - languageName: node - linkType: hard - "@storybook/addon-controls@npm:6.5.9": version: 6.5.9 resolution: "@storybook/addon-controls@npm:6.5.9" @@ -4876,53 +4650,6 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-docs@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-docs@npm:6.5.8" - dependencies: - "@babel/plugin-transform-react-jsx": ^7.12.12 - "@babel/preset-env": ^7.12.11 - "@jest/transform": ^26.6.2 - "@mdx-js/react": ^1.6.22 - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-common": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/docs-tools": 6.5.8 - "@storybook/mdx1-csf": ^0.0.1 - "@storybook/node-logger": 6.5.8 - "@storybook/postinstall": 6.5.8 - "@storybook/preview-web": 6.5.8 - "@storybook/source-loader": 6.5.8 - "@storybook/store": 6.5.8 - "@storybook/theming": 6.5.8 - babel-loader: ^8.0.0 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - regenerator-runtime: ^0.13.7 - remark-external-links: ^8.0.0 - remark-slug: ^6.0.0 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - "@storybook/mdx2-csf": ^0.0.3 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@storybook/mdx2-csf": - optional: true - react: - optional: true - react-dom: - optional: true - checksum: 4de04976f1aeab923b34d8a93cba5098c03233f26caa643ebd8011baf20518468a381433ddae28ed172de3657b0f7a605388890a6fe086ed51e17a4d58c4e5b7 - languageName: node - linkType: hard - "@storybook/addon-docs@npm:6.5.9, @storybook/addon-docs@npm:^6.5.9": version: 6.5.9 resolution: "@storybook/addon-docs@npm:6.5.9" @@ -4970,67 +4697,7 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-essentials@npm:^6.5.8, @storybook/addon-essentials@npm:~6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-essentials@npm:6.5.8" - dependencies: - "@storybook/addon-actions": 6.5.8 - "@storybook/addon-backgrounds": 6.5.8 - "@storybook/addon-controls": 6.5.8 - "@storybook/addon-docs": 6.5.8 - "@storybook/addon-measure": 6.5.8 - "@storybook/addon-outline": 6.5.8 - "@storybook/addon-toolbars": 6.5.8 - "@storybook/addon-viewport": 6.5.8 - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/core-common": 6.5.8 - "@storybook/node-logger": 6.5.8 - core-js: ^3.8.2 - regenerator-runtime: ^0.13.7 - ts-dedent: ^2.0.0 - peerDependencies: - "@babel/core": ^7.9.6 - peerDependenciesMeta: - "@storybook/angular": - optional: true - "@storybook/builder-manager4": - optional: true - "@storybook/builder-manager5": - optional: true - "@storybook/builder-webpack4": - optional: true - "@storybook/builder-webpack5": - optional: true - "@storybook/html": - optional: true - "@storybook/vue": - optional: true - "@storybook/vue3": - optional: true - "@storybook/web-components": - optional: true - lit: - optional: true - lit-html: - optional: true - react: - optional: true - react-dom: - optional: true - svelte: - optional: true - sveltedoc-parser: - optional: true - vue: - optional: true - webpack: - optional: true - checksum: 9a281356bae256fad477daecc4023a59f72d3382ec67abdaa80ecdc2acbe278658995ac69dacc018cb50362d74232f1dde84be9aa37367486eb0dbe8b95b4442 - languageName: node - linkType: hard - -"@storybook/addon-essentials@npm:^6.5.9": +"@storybook/addon-essentials@npm:^6.5.8, @storybook/addon-essentials@npm:^6.5.9, @storybook/addon-essentials@npm:~6.5.8": version: 6.5.9 resolution: "@storybook/addon-essentials@npm:6.5.9" dependencies: @@ -5090,7 +4757,7 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-interactions@npm:^6.5.9": +"@storybook/addon-interactions@npm:^6.5.9, @storybook/addon-interactions@npm:~6.5.8": version: 6.5.9 resolution: "@storybook/addon-interactions@npm:6.5.9" dependencies: @@ -5121,37 +4788,6 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-interactions@npm:~6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-interactions@npm:6.5.8" - dependencies: - "@devtools-ds/object-inspector": ^1.1.2 - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-common": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/instrumenter": 6.5.8 - "@storybook/theming": 6.5.8 - core-js: ^3.8.2 - global: ^4.4.0 - jest-mock: ^27.0.6 - polished: ^4.2.2 - ts-dedent: ^2.2.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: c7754c219f339e1bb18e2ee4ff0286674cbeb58d4ff89881c4ca74475a0722e9c49016c673871fca38fab9ce8f731cc3253b6259480913c6fff6eae880bc362b - languageName: node - linkType: hard - "@storybook/addon-knobs@npm:^6.4.0": version: 6.4.0 resolution: "@storybook/addon-knobs@npm:6.4.0" @@ -5212,15 +4848,15 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-measure@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-measure@npm:6.5.8" +"@storybook/addon-measure@npm:6.5.9": + version: 6.5.9 + resolution: "@storybook/addon-measure@npm:6.5.9" dependencies: - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-events": 6.5.8 + "@storybook/addons": 6.5.9 + "@storybook/api": 6.5.9 + "@storybook/client-logger": 6.5.9 + "@storybook/components": 6.5.9 + "@storybook/core-events": 6.5.9 "@storybook/csf": 0.0.2--canary.4566f4d.1 core-js: ^3.8.2 global: ^4.4.0 @@ -5232,63 +4868,13 @@ __metadata: optional: true react-dom: optional: true - checksum: 77a4dafd49805312656c936d829c67049a92f97129f2a11dd0d2b033384e0bcc93729060edfa15c3e0c3b0157541a2e77430a436657eec3d07ff84dea912a61a + checksum: 257f6f2cef6b7c8fdaa6592fae94cd395c3d0b619f54b902732df11bc3aab2470c1d0e7027e781b48d20328f83f80c80aae1226e86900a63413c756ea9c57b1c languageName: node linkType: hard -"@storybook/addon-measure@npm:6.5.9": +"@storybook/addon-outline@npm:6.5.9": version: 6.5.9 - resolution: "@storybook/addon-measure@npm:6.5.9" - dependencies: - "@storybook/addons": 6.5.9 - "@storybook/api": 6.5.9 - "@storybook/client-logger": 6.5.9 - "@storybook/components": 6.5.9 - "@storybook/core-events": 6.5.9 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - global: ^4.4.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 257f6f2cef6b7c8fdaa6592fae94cd395c3d0b619f54b902732df11bc3aab2470c1d0e7027e781b48d20328f83f80c80aae1226e86900a63413c756ea9c57b1c - languageName: node - linkType: hard - -"@storybook/addon-outline@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-outline@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - global: ^4.4.0 - regenerator-runtime: ^0.13.7 - ts-dedent: ^2.0.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 90ef996bb8cbf47f05af7508cdadec23a720069a019a3e4a6173748da31dd1b4238d114c9a359f2fcbe2937b03543817765ec32f923a7a9d5acd38c9cc71a1fd - languageName: node - linkType: hard - -"@storybook/addon-outline@npm:6.5.9": - version: 6.5.9 - resolution: "@storybook/addon-outline@npm:6.5.9" + resolution: "@storybook/addon-outline@npm:6.5.9" dependencies: "@storybook/addons": 6.5.9 "@storybook/api": 6.5.9 @@ -5325,29 +4911,6 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-toolbars@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-toolbars@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/theming": 6.5.8 - core-js: ^3.8.2 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 0ca1391956346bf89e3f35c3490e31e54e548e061a89283ae917a96bdda9bbcf6517430bf6a0f6dea824af7c5d293d69d10338f449873fc5618714f25f4ec374 - languageName: node - linkType: hard - "@storybook/addon-toolbars@npm:6.5.9": version: 6.5.9 resolution: "@storybook/addon-toolbars@npm:6.5.9" @@ -5371,34 +4934,7 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-viewport@npm:6.5.8, @storybook/addon-viewport@npm:^6.5.8": - version: 6.5.8 - resolution: "@storybook/addon-viewport@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/theming": 6.5.8 - core-js: ^3.8.2 - global: ^4.4.0 - memoizerific: ^1.11.3 - prop-types: ^15.7.2 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: ba51d7cdb6abc207c19dcdaf4ff09b06662e65994808d48fdd3feb462e0c982cc0692aaefc2785133795e24554b1d3392bb1dd3891386dbbc59da912404e67f2 - languageName: node - linkType: hard - -"@storybook/addon-viewport@npm:6.5.9": +"@storybook/addon-viewport@npm:6.5.9, @storybook/addon-viewport@npm:^6.5.8": version: 6.5.9 resolution: "@storybook/addon-viewport@npm:6.5.9" dependencies: @@ -5425,29 +4961,7 @@ __metadata: languageName: node linkType: hard -"@storybook/addons@npm:6.5.8, @storybook/addons@npm:~6.5.8": - version: 6.5.8 - resolution: "@storybook/addons@npm:6.5.8" - dependencies: - "@storybook/api": 6.5.8 - "@storybook/channels": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.8 - "@storybook/theming": 6.5.8 - "@types/webpack-env": ^1.16.0 - core-js: ^3.8.2 - global: ^4.4.0 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c3bd91f1f49eeb75c0b0ff549361f52ecee56f3fa2361206d00794d7e46dc1bf6fd8968c2615876cb9f0b26634e815b05936448814412da6429eb081460f91ee - languageName: node - linkType: hard - -"@storybook/addons@npm:6.5.9": +"@storybook/addons@npm:6.5.9, @storybook/addons@npm:~6.5.8": version: 6.5.9 resolution: "@storybook/addons@npm:6.5.9" dependencies: @@ -5469,34 +4983,6 @@ __metadata: languageName: node linkType: hard -"@storybook/api@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/api@npm:6.5.8" - dependencies: - "@storybook/channels": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.8 - "@storybook/semver": ^7.3.2 - "@storybook/theming": 6.5.8 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - store2: ^2.12.0 - telejson: ^6.0.8 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 46fa1a2e96a8c7744e9b93939e7d8c4bbbdabe90b30caba1ca79a17e0c80e5e95cb846baf5d3a26fa0ed9b293bcabf244ea16a785c29fbf38784af41c7111464 - languageName: node - linkType: hard - "@storybook/api@npm:6.5.9": version: 6.5.9 resolution: "@storybook/api@npm:6.5.9" @@ -5525,67 +5011,6 @@ __metadata: languageName: node linkType: hard -"@storybook/builder-webpack4@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/builder-webpack4@npm:6.5.8" - dependencies: - "@babel/core": ^7.12.10 - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/channel-postmessage": 6.5.8 - "@storybook/channels": 6.5.8 - "@storybook/client-api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-common": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/node-logger": 6.5.8 - "@storybook/preview-web": 6.5.8 - "@storybook/router": 6.5.8 - "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.8 - "@storybook/theming": 6.5.8 - "@storybook/ui": 6.5.8 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/webpack": ^4.41.26 - autoprefixer: ^9.8.6 - babel-loader: ^8.0.0 - case-sensitive-paths-webpack-plugin: ^2.3.0 - core-js: ^3.8.2 - css-loader: ^3.6.0 - file-loader: ^6.2.0 - find-up: ^5.0.0 - fork-ts-checker-webpack-plugin: ^4.1.6 - glob: ^7.1.6 - glob-promise: ^3.4.0 - global: ^4.4.0 - html-webpack-plugin: ^4.0.0 - pnp-webpack-plugin: 1.6.4 - postcss: ^7.0.36 - postcss-flexbugs-fixes: ^4.2.1 - postcss-loader: ^4.2.0 - raw-loader: ^4.0.2 - stable: ^0.1.8 - style-loader: ^1.3.0 - terser-webpack-plugin: ^4.2.3 - ts-dedent: ^2.0.0 - url-loader: ^4.1.1 - util-deprecate: ^1.0.2 - webpack: 4 - webpack-dev-middleware: ^3.7.3 - webpack-filter-warnings-plugin: ^1.2.1 - webpack-hot-middleware: ^2.25.1 - webpack-virtual-modules: ^0.2.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 66c817ba0eecd162eea63d25b99c5dd2332688a079ecc30c81ceb6beabe58c3d9b55c44491cd26f71fb86e0c3b2334ddd0027f4db6b28c2a4144398d3d4dfd04 - languageName: node - linkType: hard - "@storybook/builder-webpack4@npm:6.5.9, @storybook/builder-webpack4@npm:^6.5.9": version: 6.5.9 resolution: "@storybook/builder-webpack4@npm:6.5.9" @@ -5647,21 +5072,6 @@ __metadata: languageName: node linkType: hard -"@storybook/channel-postmessage@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/channel-postmessage@npm:6.5.8" - dependencies: - "@storybook/channels": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core-events": 6.5.8 - core-js: ^3.8.2 - global: ^4.4.0 - qs: ^6.10.0 - telejson: ^6.0.8 - checksum: fc677e080c55d939876ec5c73ca8067c84fe58f4e2a3edfe92507b38349441a0a7c0b42909a0a560f948e3f1671dba017f3ea31d2b03b2b34aad1698f3428e0b - languageName: node - linkType: hard - "@storybook/channel-postmessage@npm:6.5.9": version: 6.5.9 resolution: "@storybook/channel-postmessage@npm:6.5.9" @@ -5677,19 +5087,6 @@ __metadata: languageName: node linkType: hard -"@storybook/channel-websocket@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/channel-websocket@npm:6.5.8" - dependencies: - "@storybook/channels": 6.5.8 - "@storybook/client-logger": 6.5.8 - core-js: ^3.8.2 - global: ^4.4.0 - telejson: ^6.0.8 - checksum: 4a4177d08493b869a1f82905273797805e1ed935571e54fa06ed33267ebbe912eb71e87386d0e6e58a927afbe8dda34e15c889ee10e259056960edcd2ed994fb - languageName: node - linkType: hard - "@storybook/channel-websocket@npm:6.5.9": version: 6.5.9 resolution: "@storybook/channel-websocket@npm:6.5.9" @@ -5703,17 +5100,6 @@ __metadata: languageName: node linkType: hard -"@storybook/channels@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/channels@npm:6.5.8" - dependencies: - core-js: ^3.8.2 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - checksum: 7f129c7eccebdc1d5c40436ed9602ac43b7cbb86cb81934177e87c4de7505a05ccf0b5eeb74397641afdd3fafdf2060ba3357ca01411dc942152da302827d9cd - languageName: node - linkType: hard - "@storybook/channels@npm:6.5.9": version: 6.5.9 resolution: "@storybook/channels@npm:6.5.9" @@ -5725,37 +5111,6 @@ __metadata: languageName: node linkType: hard -"@storybook/client-api@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/client-api@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/channel-postmessage": 6.5.8 - "@storybook/channels": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.8 - "@types/qs": ^6.9.5 - "@types/webpack-env": ^1.16.0 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - memoizerific: ^1.11.3 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - store2: ^2.12.0 - synchronous-promise: ^2.0.15 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: d368c93c27f09ac287a615a0f6d8e18e1d68854b4b2f2dde3db8ec80cc14b72b08d44aba3bc280ac7024ede1f35ad46a64df6f622e1a8b943136b240542ebaf9 - languageName: node - linkType: hard - "@storybook/client-api@npm:6.5.9": version: 6.5.9 resolution: "@storybook/client-api@npm:6.5.9" @@ -5787,17 +5142,7 @@ __metadata: languageName: node linkType: hard -"@storybook/client-logger@npm:6.5.8, @storybook/client-logger@npm:^6.4.0 || >=6.5.0-0": - version: 6.5.8 - resolution: "@storybook/client-logger@npm:6.5.8" - dependencies: - core-js: ^3.8.2 - global: ^4.4.0 - checksum: 6d85471e5f987708ffd35b420651715f433213889b473bf74e3190194d912ad941bb0c01824f968191e75ae12a696f13ecd93d10938f5d472aa912cb0a994d16 - languageName: node - linkType: hard - -"@storybook/client-logger@npm:6.5.9, @storybook/client-logger@npm:^6.4.0": +"@storybook/client-logger@npm:6.5.9, @storybook/client-logger@npm:^6.4.0, @storybook/client-logger@npm:^6.4.0 || >=6.5.0-0": version: 6.5.9 resolution: "@storybook/client-logger@npm:6.5.9" dependencies: @@ -5807,26 +5152,6 @@ __metadata: languageName: node linkType: hard -"@storybook/components@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/components@npm:6.5.8" - dependencies: - "@storybook/client-logger": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.8 - "@types/react-syntax-highlighter": 11.0.5 - core-js: ^3.8.2 - qs: ^6.10.0 - react-syntax-highlighter: ^15.4.5 - regenerator-runtime: ^0.13.7 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 6109c2f4e43943dae63c9eb6ef7660493ec39371fc3f0e1d13bf91aeb13ec3aa6ddb747b51260405b1281effccbf80f9e3bd2b2d6739a021ad145292507c5574 - languageName: node - linkType: hard - "@storybook/components@npm:6.5.9": version: 6.5.9 resolution: "@storybook/components@npm:6.5.9" @@ -5848,41 +5173,6 @@ __metadata: languageName: node linkType: hard -"@storybook/core-client@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/core-client@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/channel-postmessage": 6.5.8 - "@storybook/channel-websocket": 6.5.8 - "@storybook/client-api": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/preview-web": 6.5.8 - "@storybook/store": 6.5.8 - "@storybook/ui": 6.5.8 - airbnb-js-shims: ^2.2.1 - ansi-to-html: ^0.6.11 - core-js: ^3.8.2 - global: ^4.4.0 - lodash: ^4.17.21 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - ts-dedent: ^2.0.0 - unfetch: ^4.2.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - webpack: "*" - peerDependenciesMeta: - typescript: - optional: true - checksum: 51f83765581f5acd07f6284bf1e883a053d97ab6346ef1c9310fdefbc75b69c60ed709be1859fd120fb2b04c7c8c4d1ee017ede8f4c06e9a1bb8fa381afa9a3b - languageName: node - linkType: hard - "@storybook/core-client@npm:6.5.9": version: 6.5.9 resolution: "@storybook/core-client@npm:6.5.9" @@ -5918,70 +5208,6 @@ __metadata: languageName: node linkType: hard -"@storybook/core-common@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/core-common@npm:6.5.8" - dependencies: - "@babel/core": ^7.12.10 - "@babel/plugin-proposal-class-properties": ^7.12.1 - "@babel/plugin-proposal-decorators": ^7.12.12 - "@babel/plugin-proposal-export-default-from": ^7.12.1 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.12.1 - "@babel/plugin-proposal-object-rest-spread": ^7.12.1 - "@babel/plugin-proposal-optional-chaining": ^7.12.7 - "@babel/plugin-proposal-private-methods": ^7.12.1 - "@babel/plugin-proposal-private-property-in-object": ^7.12.1 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-transform-arrow-functions": ^7.12.1 - "@babel/plugin-transform-block-scoping": ^7.12.12 - "@babel/plugin-transform-classes": ^7.12.1 - "@babel/plugin-transform-destructuring": ^7.12.1 - "@babel/plugin-transform-for-of": ^7.12.1 - "@babel/plugin-transform-parameters": ^7.12.1 - "@babel/plugin-transform-shorthand-properties": ^7.12.1 - "@babel/plugin-transform-spread": ^7.12.1 - "@babel/preset-env": ^7.12.11 - "@babel/preset-react": ^7.12.10 - "@babel/preset-typescript": ^7.12.7 - "@babel/register": ^7.12.1 - "@storybook/node-logger": 6.5.8 - "@storybook/semver": ^7.3.2 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/pretty-hrtime": ^1.0.0 - babel-loader: ^8.0.0 - babel-plugin-macros: ^3.0.1 - babel-plugin-polyfill-corejs3: ^0.1.0 - chalk: ^4.1.0 - core-js: ^3.8.2 - express: ^4.17.1 - file-system-cache: ^1.0.5 - find-up: ^5.0.0 - fork-ts-checker-webpack-plugin: ^6.0.4 - fs-extra: ^9.0.1 - glob: ^7.1.6 - handlebars: ^4.7.7 - interpret: ^2.2.0 - json5: ^2.1.3 - lazy-universal-dotenv: ^3.0.1 - picomatch: ^2.3.0 - pkg-dir: ^5.0.0 - pretty-hrtime: ^1.0.3 - resolve-from: ^5.0.0 - slash: ^3.0.0 - telejson: ^6.0.8 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - webpack: 4 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: a9dfe67d077a319976ad70b2dabd2e9e2a1de27d04e013e84f0952570f9d1fd0a8244ef4e7ea11626bac375d77c810aed56dd169532b8d14f1042aa9cc7ae7ea - languageName: node - linkType: hard - "@storybook/core-common@npm:6.5.9": version: 6.5.9 resolution: "@storybook/core-common@npm:6.5.9" @@ -6046,15 +5272,6 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/core-events@npm:6.5.8" - dependencies: - core-js: ^3.8.2 - checksum: 70b6c24930e1c9b859b851f1989aaf00a40354cff42731311a128bc418720a43f1262fea02229f156e671aad01f1d48598d34f1e37ddb354df271122e3ec9115 - languageName: node - linkType: hard - "@storybook/core-events@npm:6.5.9": version: 6.5.9 resolution: "@storybook/core-events@npm:6.5.9" @@ -6064,69 +5281,6 @@ __metadata: languageName: node linkType: hard -"@storybook/core-server@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/core-server@npm:6.5.8" - dependencies: - "@discoveryjs/json-ext": ^0.5.3 - "@storybook/builder-webpack4": 6.5.8 - "@storybook/core-client": 6.5.8 - "@storybook/core-common": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/csf-tools": 6.5.8 - "@storybook/manager-webpack4": 6.5.8 - "@storybook/node-logger": 6.5.8 - "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.8 - "@storybook/telemetry": 6.5.8 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/node-fetch": ^2.5.7 - "@types/pretty-hrtime": ^1.0.0 - "@types/webpack": ^4.41.26 - better-opn: ^2.1.1 - boxen: ^5.1.2 - chalk: ^4.1.0 - cli-table3: ^0.6.1 - commander: ^6.2.1 - compression: ^1.7.4 - core-js: ^3.8.2 - cpy: ^8.1.2 - detect-port: ^1.3.0 - express: ^4.17.1 - fs-extra: ^9.0.1 - global: ^4.4.0 - globby: ^11.0.2 - ip: ^2.0.0 - lodash: ^4.17.21 - node-fetch: ^2.6.7 - open: ^8.4.0 - pretty-hrtime: ^1.0.3 - prompts: ^2.4.0 - regenerator-runtime: ^0.13.7 - serve-favicon: ^2.5.0 - slash: ^3.0.0 - telejson: ^6.0.8 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - watchpack: ^2.2.0 - webpack: 4 - ws: ^8.2.3 - x-default-browser: ^0.4.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@storybook/builder-webpack5": - optional: true - "@storybook/manager-webpack5": - optional: true - typescript: - optional: true - checksum: c931bdfd578e1ccb06e861e1a6b73c1daa8ec1f5ade167467d48d50c192ca0069f69092ed611eda56cd03ac4b3686283ce12b3153667663ef08169330cce8113 - languageName: node - linkType: hard - "@storybook/core-server@npm:6.5.9": version: 6.5.9 resolution: "@storybook/core-server@npm:6.5.9" @@ -6190,27 +5344,6 @@ __metadata: languageName: node linkType: hard -"@storybook/core@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/core@npm:6.5.8" - dependencies: - "@storybook/core-client": 6.5.8 - "@storybook/core-server": 6.5.8 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - webpack: "*" - peerDependenciesMeta: - "@storybook/builder-webpack5": - optional: true - "@storybook/manager-webpack5": - optional: true - typescript: - optional: true - checksum: ee6a2cfe72a5b0ba84374313a20d12929f54ade6dd980144e4c480bc4b1ebc98f40771e35d30d676f6b8c98610be32e016eabd63bb5b66bf3748f4d4590965b2 - languageName: node - linkType: hard - "@storybook/core@npm:6.5.9": version: 6.5.9 resolution: "@storybook/core@npm:6.5.9" @@ -6232,33 +5365,6 @@ __metadata: languageName: node linkType: hard -"@storybook/csf-tools@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/csf-tools@npm:6.5.8" - dependencies: - "@babel/core": ^7.12.10 - "@babel/generator": ^7.12.11 - "@babel/parser": ^7.12.11 - "@babel/plugin-transform-react-jsx": ^7.12.12 - "@babel/preset-env": ^7.12.11 - "@babel/traverse": ^7.12.11 - "@babel/types": ^7.12.11 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/mdx1-csf": ^0.0.1 - core-js: ^3.8.2 - fs-extra: ^9.0.1 - global: ^4.4.0 - regenerator-runtime: ^0.13.7 - ts-dedent: ^2.0.0 - peerDependencies: - "@storybook/mdx2-csf": ^0.0.3 - peerDependenciesMeta: - "@storybook/mdx2-csf": - optional: true - checksum: c285c8d7d95c19cc2168d8592ce259d8b594119e6005cf13d8709e3fbb56a141b1fcac5ecadb163dbd4ccab41037bca9e3149f6ec1a071ce4658df1ffdf55f40 - languageName: node - linkType: hard - "@storybook/csf-tools@npm:6.5.9": version: 6.5.9 resolution: "@storybook/csf-tools@npm:6.5.9" @@ -6295,21 +5401,6 @@ __metadata: languageName: node linkType: hard -"@storybook/docs-tools@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/docs-tools@npm:6.5.8" - dependencies: - "@babel/core": ^7.12.10 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.8 - core-js: ^3.8.2 - doctrine: ^3.0.0 - lodash: ^4.17.21 - regenerator-runtime: ^0.13.7 - checksum: caab9e88668d21760039186954c23dc4cc0b013d4073a179f5916856d062027c29c3b0b49208979dbea99b469d2c0ef3a8196dd657f1c5405e133adfed7b3f4b - languageName: node - linkType: hard - "@storybook/docs-tools@npm:6.5.9": version: 6.5.9 resolution: "@storybook/docs-tools@npm:6.5.9" @@ -6325,20 +5416,7 @@ __metadata: languageName: node linkType: hard -"@storybook/instrumenter@npm:6.5.8, @storybook/instrumenter@npm:^6.4.0 || >=6.5.0-0": - version: 6.5.8 - resolution: "@storybook/instrumenter@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core-events": 6.5.8 - core-js: ^3.8.2 - global: ^4.4.0 - checksum: 9ff85bf8ff818f3e48a1bb60aee5fb3e46a1e64d6daaa56c68951316750589393d6eedaacd7f571ea50e70b6d3c7d6b66168a49295312e79bc970ff4765ffdd2 - languageName: node - linkType: hard - -"@storybook/instrumenter@npm:6.5.9, @storybook/instrumenter@npm:^6.4.0": +"@storybook/instrumenter@npm:6.5.9, @storybook/instrumenter@npm:^6.4.0, @storybook/instrumenter@npm:^6.4.0 || >=6.5.0-0": version: 6.5.9 resolution: "@storybook/instrumenter@npm:6.5.9" dependencies: @@ -6351,55 +5429,6 @@ __metadata: languageName: node linkType: hard -"@storybook/manager-webpack4@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/manager-webpack4@npm:6.5.8" - dependencies: - "@babel/core": ^7.12.10 - "@babel/plugin-transform-template-literals": ^7.12.1 - "@babel/preset-react": ^7.12.10 - "@storybook/addons": 6.5.8 - "@storybook/core-client": 6.5.8 - "@storybook/core-common": 6.5.8 - "@storybook/node-logger": 6.5.8 - "@storybook/theming": 6.5.8 - "@storybook/ui": 6.5.8 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/webpack": ^4.41.26 - babel-loader: ^8.0.0 - case-sensitive-paths-webpack-plugin: ^2.3.0 - chalk: ^4.1.0 - core-js: ^3.8.2 - css-loader: ^3.6.0 - express: ^4.17.1 - file-loader: ^6.2.0 - find-up: ^5.0.0 - fs-extra: ^9.0.1 - html-webpack-plugin: ^4.0.0 - node-fetch: ^2.6.7 - pnp-webpack-plugin: 1.6.4 - read-pkg-up: ^7.0.1 - regenerator-runtime: ^0.13.7 - resolve-from: ^5.0.0 - style-loader: ^1.3.0 - telejson: ^6.0.8 - terser-webpack-plugin: ^4.2.3 - ts-dedent: ^2.0.0 - url-loader: ^4.1.1 - util-deprecate: ^1.0.2 - webpack: 4 - webpack-dev-middleware: ^3.7.3 - webpack-virtual-modules: ^0.2.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: e3336978c6fe365c8486bc9a3baa7c1f969fdb229c2d33bed0a48513931b3dd5c337c5ecc51cadee4cf129add4c9d97dc26ae09a12dab4eb029a4d5a44f3b83f - languageName: node - linkType: hard - "@storybook/manager-webpack4@npm:6.5.9, @storybook/manager-webpack4@npm:^6.5.9": version: 6.5.9 resolution: "@storybook/manager-webpack4@npm:6.5.9" @@ -6458,30 +5487,17 @@ __metadata: "@babel/preset-env": ^7.12.11 "@babel/types": ^7.12.11 "@mdx-js/mdx": ^1.6.22 - "@types/lodash": ^4.14.167 - js-string-escape: ^1.0.1 - loader-utils: ^2.0.0 - lodash: ^4.17.21 - prettier: ">=2.2.1 <=2.3.0" - ts-dedent: ^2.0.0 - checksum: 34f952f4d00d4fbf680aadea53ca0d9b02b10c94ea492a47a6df916474ea1e36d08eece70ffaba760a4cdf6f634a8684360dc49355cf8a1461050b8a470d2666 - languageName: node - linkType: hard - -"@storybook/node-logger@npm:6.5.8, @storybook/node-logger@npm:^6.1.14": - version: 6.5.8 - resolution: "@storybook/node-logger@npm:6.5.8" - dependencies: - "@types/npmlog": ^4.1.2 - chalk: ^4.1.0 - core-js: ^3.8.2 - npmlog: ^5.0.1 - pretty-hrtime: ^1.0.3 - checksum: aa183f8681ba727b342ba40b8d5f69087e56fca046ec0f22d718cbdca305badb7a75079a889afb87244a118e8665b0fbeeae62a6c9eb6451938d03ff03bd405e + "@types/lodash": ^4.14.167 + js-string-escape: ^1.0.1 + loader-utils: ^2.0.0 + lodash: ^4.17.21 + prettier: ">=2.2.1 <=2.3.0" + ts-dedent: ^2.0.0 + checksum: 34f952f4d00d4fbf680aadea53ca0d9b02b10c94ea492a47a6df916474ea1e36d08eece70ffaba760a4cdf6f634a8684360dc49355cf8a1461050b8a470d2666 languageName: node linkType: hard -"@storybook/node-logger@npm:6.5.9": +"@storybook/node-logger@npm:6.5.9, @storybook/node-logger@npm:^6.1.14": version: 6.5.9 resolution: "@storybook/node-logger@npm:6.5.9" dependencies: @@ -6494,15 +5510,6 @@ __metadata: languageName: node linkType: hard -"@storybook/postinstall@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/postinstall@npm:6.5.8" - dependencies: - core-js: ^3.8.2 - checksum: 52b0c02bed8c6c968485b48c879127536bf0aca63390c3a6c12a6de31726498e510781a847f08021d57e2acaca30f08ac7d510b4123e29623f4a96fda5458469 - languageName: node - linkType: hard - "@storybook/postinstall@npm:6.5.9": version: 6.5.9 resolution: "@storybook/postinstall@npm:6.5.9" @@ -6512,33 +5519,6 @@ __metadata: languageName: node linkType: hard -"@storybook/preview-web@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/preview-web@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/channel-postmessage": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.8 - ansi-to-html: ^0.6.11 - core-js: ^3.8.2 - global: ^4.4.0 - lodash: ^4.17.21 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - synchronous-promise: ^2.0.15 - ts-dedent: ^2.0.0 - unfetch: ^4.2.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: de0928f2a66f896e5dbf5f7b3e2b60b8e64c0830c2f73c8fb52727348d707c5133b2eb27d5d50fdd4df71c975873e07c5722067fb563e8ba8079fc2f7378415a - languageName: node - linkType: hard - "@storybook/preview-web@npm:6.5.9": version: 6.5.9 resolution: "@storybook/preview-web@npm:6.5.9" @@ -6584,72 +5564,7 @@ __metadata: languageName: node linkType: hard -"@storybook/react@npm:^6.5.8, @storybook/react@npm:~6.5.8": - version: 6.5.8 - resolution: "@storybook/react@npm:6.5.8" - dependencies: - "@babel/preset-flow": ^7.12.1 - "@babel/preset-react": ^7.12.10 - "@pmmmwh/react-refresh-webpack-plugin": ^0.5.3 - "@storybook/addons": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core": 6.5.8 - "@storybook/core-common": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/docs-tools": 6.5.8 - "@storybook/node-logger": 6.5.8 - "@storybook/react-docgen-typescript-plugin": 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0 - "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.8 - "@types/estree": ^0.0.51 - "@types/node": ^14.14.20 || ^16.0.0 - "@types/webpack-env": ^1.16.0 - acorn: ^7.4.1 - acorn-jsx: ^5.3.1 - acorn-walk: ^7.2.0 - babel-plugin-add-react-displayname: ^0.0.5 - babel-plugin-react-docgen: ^4.2.1 - core-js: ^3.8.2 - escodegen: ^2.0.0 - fs-extra: ^9.0.1 - global: ^4.4.0 - html-tags: ^3.1.0 - lodash: ^4.17.21 - prop-types: ^15.7.2 - react-element-to-jsx-string: ^14.3.4 - react-refresh: ^0.11.0 - read-pkg-up: ^7.0.1 - regenerator-runtime: ^0.13.7 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - webpack: ">=4.43.0 <6.0.0" - peerDependencies: - "@babel/core": ^7.11.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - require-from-string: ^2.0.2 - peerDependenciesMeta: - "@babel/core": - optional: true - "@storybook/builder-webpack4": - optional: true - "@storybook/builder-webpack5": - optional: true - "@storybook/manager-webpack4": - optional: true - "@storybook/manager-webpack5": - optional: true - typescript: - optional: true - bin: - build-storybook: bin/build.js - start-storybook: bin/index.js - storybook-server: bin/index.js - checksum: 66aebd4d1b4744daf368ffb13c390cf3857b664380638f929c273cc6f0c816c02729da6b8f983355af1b8b07dc4c18241bcbe85eddb1a9f17cbb5842ffaba373 - languageName: node - linkType: hard - -"@storybook/react@npm:^6.5.9": +"@storybook/react@npm:^6.5.8, @storybook/react@npm:^6.5.9, @storybook/react@npm:~6.5.8": version: 6.5.9 resolution: "@storybook/react@npm:6.5.9" dependencies: @@ -6714,20 +5629,6 @@ __metadata: languageName: node linkType: hard -"@storybook/router@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/router@npm:6.5.8" - dependencies: - "@storybook/client-logger": 6.5.8 - core-js: ^3.8.2 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: e23c16a03a9c3dbe674649c0fe2e03a5b11b0f563b23d712a03cd37b3a6df66a01471a993dfce1837816a0c2be1d41bdb57c7a1052378dccb65314282f11feeb - languageName: node - linkType: hard - "@storybook/router@npm:6.5.9": version: 6.5.9 resolution: "@storybook/router@npm:6.5.9" @@ -6756,27 +5657,6 @@ __metadata: languageName: node linkType: hard -"@storybook/source-loader@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/source-loader@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - estraverse: ^5.2.0 - global: ^4.4.0 - loader-utils: ^2.0.0 - lodash: ^4.17.21 - prettier: ">=2.2.1 <=2.3.0" - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 817d59ef2a9777d5912e6246268be8ad0e3fd43056fd498974577ca8a517aa47f2a3c0cfbf7862540f3b6e936086ec091a3e5e8d9c8fd2b871f260f50e78996f - languageName: node - linkType: hard - "@storybook/source-loader@npm:6.5.9": version: 6.5.9 resolution: "@storybook/source-loader@npm:6.5.9" @@ -6798,32 +5678,6 @@ __metadata: languageName: node linkType: hard -"@storybook/store@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/store@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - slash: ^3.0.0 - stable: ^0.1.8 - synchronous-promise: ^2.0.15 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 5b529cefed504c5b776d14bb0ad1bf883afc1d039421c1dbdcf3a7c007253136f41ec6afd5e85110bbac70d6a77b1463c7aaaedec0c156b13b37cd9261849e17 - languageName: node - linkType: hard - "@storybook/store@npm:6.5.9": version: 6.5.9 resolution: "@storybook/store@npm:6.5.9" @@ -6850,26 +5704,6 @@ __metadata: languageName: node linkType: hard -"@storybook/telemetry@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/telemetry@npm:6.5.8" - dependencies: - "@storybook/client-logger": 6.5.8 - "@storybook/core-common": 6.5.8 - chalk: ^4.1.0 - core-js: ^3.8.2 - detect-package-manager: ^2.0.1 - fetch-retry: ^5.0.2 - fs-extra: ^9.0.1 - global: ^4.4.0 - isomorphic-unfetch: ^3.1.0 - nanoid: ^3.3.1 - read-pkg-up: ^7.0.1 - regenerator-runtime: ^0.13.7 - checksum: 8d0d204c41569679b56930aaa4441d864a98156d2ad37b5932df1d766bc4d742ac640081c1ce3ab5cb0820464303725f5f89415c7933721074e4af83534bc972 - languageName: node - linkType: hard - "@storybook/telemetry@npm:6.5.9": version: 6.5.9 resolution: "@storybook/telemetry@npm:6.5.9" @@ -6916,21 +5750,7 @@ __metadata: languageName: node linkType: hard -"@storybook/theming@npm:6.5.8, @storybook/theming@npm:^6.5.8": - version: 6.5.8 - resolution: "@storybook/theming@npm:6.5.8" - dependencies: - "@storybook/client-logger": 6.5.8 - core-js: ^3.8.2 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 6003dd1c3ac9f226c73d10b9991c4714a6580f8c04d6bb4fdd98e4b710609fda3a9e2ad402535078bd08f47738a94fa2bc84c41e357518a775e438a4bdd8bde1 - languageName: node - linkType: hard - -"@storybook/theming@npm:6.5.9": +"@storybook/theming@npm:6.5.9, @storybook/theming@npm:^6.5.8": version: 6.5.9 resolution: "@storybook/theming@npm:6.5.9" dependencies: @@ -6945,29 +5765,6 @@ __metadata: languageName: node linkType: hard -"@storybook/ui@npm:6.5.8": - version: 6.5.8 - resolution: "@storybook/ui@npm:6.5.8" - dependencies: - "@storybook/addons": 6.5.8 - "@storybook/api": 6.5.8 - "@storybook/channels": 6.5.8 - "@storybook/client-logger": 6.5.8 - "@storybook/components": 6.5.8 - "@storybook/core-events": 6.5.8 - "@storybook/router": 6.5.8 - "@storybook/semver": ^7.3.2 - "@storybook/theming": 6.5.8 - core-js: ^3.8.2 - regenerator-runtime: ^0.13.7 - resolve-from: ^5.0.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 455611abd5b32883cd777fa6ce8679aaab262db294214ca92d3bcba4880239c58453a94402ba9768fdb3fbb1211f56aedd2fcf185512c4ad2f2c408f58af7416 - languageName: node - linkType: hard - "@storybook/ui@npm:6.5.9": version: 6.5.9 resolution: "@storybook/ui@npm:6.5.9" @@ -8543,16 +7340,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/scope-manager@npm:5.21.0" - dependencies: - "@typescript-eslint/types": 5.21.0 - "@typescript-eslint/visitor-keys": 5.21.0 - checksum: 2bcb5947d7882f08fb8f40eea154c15152957105a3dc80bf8481212a66d35a8d2239437e095a9a7526c6c0043e9bd6bececf4f87d40da85abb2d2b69f774d805 - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:5.29.0": version: 5.29.0 resolution: "@typescript-eslint/scope-manager@npm:5.29.0" @@ -8586,13 +7373,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/types@npm:5.21.0" - checksum: 1581bf79f8c9236844ca8891e26c84503b654359fbfee80d76f9f57fb90c24210687cd30f61592e7d44cacf5417c83aaa5ae8559a4a8b6ce6b6c4a163b8b86c2 - languageName: node - linkType: hard - "@typescript-eslint/types@npm:5.29.0": version: 5.29.0 resolution: "@typescript-eslint/types@npm:5.29.0" @@ -8637,24 +7417,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.21.0" - dependencies: - "@typescript-eslint/types": 5.21.0 - "@typescript-eslint/visitor-keys": 5.21.0 - debug: ^4.3.2 - globby: ^11.0.4 - is-glob: ^4.0.3 - semver: ^7.3.5 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 4f78d61be2f35775d0f2d7fc4e3bb0bfc6b84e608e96a297c948f84a7254c1b9f0062f61a1dce67a8d4eb67476a9b4a9ebd8b6412e97db76f675c03363a5a0ad - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:5.29.0": version: 5.29.0 resolution: "@typescript-eslint/typescript-estree@npm:5.29.0" @@ -8673,7 +7435,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.29.0": +"@typescript-eslint/utils@npm:5.29.0, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.13.0": version: 5.29.0 resolution: "@typescript-eslint/utils@npm:5.29.0" dependencies: @@ -8689,22 +7451,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.13.0": - version: 5.21.0 - resolution: "@typescript-eslint/utils@npm:5.21.0" - dependencies: - "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.21.0 - "@typescript-eslint/types": 5.21.0 - "@typescript-eslint/typescript-estree": 5.21.0 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: ed339a4ccb9eeb2a1132c41999d6584c15c4b7e2f0132bce613f502faa1dbbad7e206b642360392a6e2b24e294df90910141c7da0959901efcd600aedc4c4253 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:3.10.1": version: 3.10.1 resolution: "@typescript-eslint/visitor-keys@npm:3.10.1" @@ -8714,16 +7460,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.21.0" - dependencies: - "@typescript-eslint/types": 5.21.0 - eslint-visitor-keys: ^3.0.0 - checksum: 328b18faa61872160f3e5faacb5b68022bdabd04b5414f115133245a4a1ecfb5762c67fd645ab3253005480bd25a38598f57fdc2ff2b01d830ac68b37d3d06a5 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:5.29.0": version: 5.29.0 resolution: "@typescript-eslint/visitor-keys@npm:5.29.0" @@ -9266,7 +8002,7 @@ __metadata: human-interval: ~1.0.0 moment-timezone: ~0.5.27 mongodb: ~3.5.0 - checksum: f5f68008298f9482631f1f494e392cd6b8ba7971a3b0ece81ae2abe60f53d67973ff4476156fa5c9c41b8b58c4ccd284e95c545e0523996dfd05f9a80b843e07 + checksum: acb4ebb7e7356f6e53e810d821eb6aa3d88bbfb9e85183e707517bee6d1eea1f189f38bdf0dd2b91360492ab7643134d510c320d2523d86596498ab98e59735b languageName: node linkType: hard @@ -14330,20 +13066,13 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.6": +"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9": version: 0.5.14 resolution: "dom-accessibility-api@npm:0.5.14" checksum: 782c813f75a09ba6735ef03b5e1624406a3829444ae49d5bdedd272a49d437ae3354f53e02ffc8c9fd9165880250f41546538f27461f839dd4ea1234e77e8d5e languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.9": - version: 0.5.13 - resolution: "dom-accessibility-api@npm:0.5.13" - checksum: a5a5f14c01e466d424750aaac9225f1dc43cf16d101a1c40e01a554abce63c48084707002c39b805f2ce212273c179dd6d2258175997cd06d5f79851bf52dd40 - languageName: node - linkType: hard - "dom-converter@npm:^0.2.0": version: 0.2.0 resolution: "dom-converter@npm:0.2.0" @@ -15283,16 +14012,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.1.0, eslint-plugin-react-hooks@npm:^4.4.0": - version: 4.5.0 - resolution: "eslint-plugin-react-hooks@npm:4.5.0" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 0389377de635dd9b769f6f52e2c9e6ab857a0cdfecc3734c95ce81676a752e781bb5c44fd180e01953a03a77278323d90729776438815557b069ceb988ab1f9f - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:^4.6.0": +"eslint-plugin-react-hooks@npm:^4.1.0, eslint-plugin-react-hooks@npm:^4.4.0, eslint-plugin-react-hooks@npm:^4.6.0": version: 4.6.0 resolution: "eslint-plugin-react-hooks@npm:4.6.0" peerDependencies: @@ -15409,7 +14129,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.0.0, eslint-visitor-keys@npm:^3.3.0": +"eslint-visitor-keys@npm:^3.3.0": version: 3.3.0 resolution: "eslint-visitor-keys@npm:3.3.0" checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808 @@ -17001,7 +15721,7 @@ __metadata: languageName: node linkType: hard -"fs-monkey@npm:1.0.3": +"fs-monkey@npm:^1.0.3": version: 1.0.3 resolution: "fs-monkey@npm:1.0.3" checksum: cf50804833f9b88a476911ae911fe50f61a98d986df52f890bd97e7262796d023698cb2309fa9b74fdd8974f04315b648748a0a8ee059e7d5257b293bfc409c0 @@ -17683,7 +16403,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.2, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": +"globby@npm:^11.0.2, globby@npm:^11.0.3, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -19447,20 +18167,13 @@ __metadata: languageName: node linkType: hard -"ip@npm:^1.1.0": +"ip@npm:^1.1.0, ip@npm:^1.1.5": version: 1.1.8 resolution: "ip@npm:1.1.8" checksum: a2ade53eb339fb0cbe9e69a44caab10d6e3784662285eb5d2677117ee4facc33a64679051c35e0dfdb1a3983a51ce2f5d2cb36446d52e10d01881789b76e28fb languageName: node linkType: hard -"ip@npm:^1.1.5": - version: 1.1.5 - resolution: "ip@npm:1.1.5" - checksum: 30133981f082a060a32644f6a7746e9ba7ac9e2bc07ecc8bbdda3ee8ca9bec1190724c390e45a1ee7695e7edfd2a8f7dda2c104ec5f7ac5068c00648504c7e5a - languageName: node - linkType: hard - "ip@npm:^2.0.0": version: 2.0.0 resolution: "ip@npm:2.0.0" @@ -22743,11 +21456,11 @@ __metadata: linkType: hard "memfs@npm:^3.1.2": - version: 3.4.1 - resolution: "memfs@npm:3.4.1" + version: 3.4.6 + resolution: "memfs@npm:3.4.6" dependencies: - fs-monkey: 1.0.3 - checksum: 6d2f49d447d1be24ff9c747618933784eeb059189bc6a0d77b7a51c7daf06e2d3a74674a2e2ff1520e2c312bf91e719ed37144cf05087379b3ba0aef0b6aa062 + fs-monkey: ^1.0.3 + checksum: 0164d79c5da42809d9590125ee713aac59b1c1e16c61d4b264460366514342da2867ac64874f098af348e13eadde4c6d8fb8188b16e766029d67adf8ec153b4c languageName: node linkType: hard @@ -23560,14 +22273,7 @@ __metadata: languageName: node linkType: hard -"moment@npm:>= 2.9.0, moment@npm:^2.29.1": - version: 2.29.2 - resolution: "moment@npm:2.29.2" - checksum: ee850b5776485e2af0775ceb3cfebaa7d7638f0a750fe0678fcae24c310749f96c1938808384bd422a55e5703834a71fcb09c8a1d36d9cf847f6ed0205d7a3e5 - languageName: node - linkType: hard - -"moment@npm:^2.10.2": +"moment@npm:>= 2.9.0, moment@npm:^2.10.2, moment@npm:^2.29.1": version: 2.29.3 resolution: "moment@npm:2.29.3" checksum: 2e780e36d9a1823c08a1b6313cbb08bd01ecbb2a9062095820a34f42c878991ccba53abaa6abb103fd5c01e763724f295162a8c50b7e95b4f1c992ef0772d3f0 @@ -27714,26 +26420,7 @@ __metadata: languageName: node linkType: hard -"react-i18next@npm:^11.16.7": - version: 11.16.7 - resolution: "react-i18next@npm:11.16.7" - dependencies: - "@babel/runtime": ^7.14.5 - html-escaper: ^2.0.2 - html-parse-stringify: ^3.0.1 - peerDependencies: - i18next: ">= 19.0.0" - react: ">= 16.8.0" - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - checksum: 666594e20dcff000294e904b6ea36f4e5fa2d3b7cebf8c78f04ec3b96ff52d9ad2931adb0d6865ccbd870cc8a782f76a77dfc134653647c8fd73c4217a65e0e6 - languageName: node - linkType: hard - -"react-i18next@npm:^11.16.9": +"react-i18next@npm:^11.16.7, react-i18next@npm:^11.16.9": version: 11.16.9 resolution: "react-i18next@npm:11.16.9" dependencies: @@ -28955,7 +27642,7 @@ __metadata: "@types/chart.js": ^2.9.37 "@types/js-yaml": ^4.0.5 husky: ^7.0.4 - turbo: 1.2.5 + turbo: ~1.2.5 languageName: unknown linkType: soft @@ -29003,7 +27690,7 @@ __metadata: sodium-native: ^3.3.0 sodium-plus: ^0.9.0 ts-node: ^10.7.0 - typescript: ~4.3.4 + typescript: ~4.5.5 underscore.string: ^3.3.6 uuid: ^8.3.2 ws: ^8.5.0 @@ -32038,106 +30725,114 @@ __metadata: languageName: node linkType: hard -"turbo-darwin-64@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-darwin-64@npm:1.2.5" +"turbo-darwin-64@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-darwin-64@npm:1.2.16" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"turbo-darwin-arm64@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-darwin-arm64@npm:1.2.5" +"turbo-darwin-arm64@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-darwin-arm64@npm:1.2.16" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"turbo-freebsd-64@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-freebsd-64@npm:1.2.5" +"turbo-freebsd-64@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-freebsd-64@npm:1.2.16" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"turbo-freebsd-arm64@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-freebsd-arm64@npm:1.2.5" +"turbo-freebsd-arm64@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-freebsd-arm64@npm:1.2.16" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"turbo-linux-32@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-linux-32@npm:1.2.5" +"turbo-linux-32@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-linux-32@npm:1.2.16" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"turbo-linux-64@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-linux-64@npm:1.2.5" +"turbo-linux-64@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-linux-64@npm:1.2.16" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"turbo-linux-arm64@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-linux-arm64@npm:1.2.5" +"turbo-linux-arm64@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-linux-arm64@npm:1.2.16" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"turbo-linux-arm@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-linux-arm@npm:1.2.5" +"turbo-linux-arm@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-linux-arm@npm:1.2.16" conditions: os=linux & cpu=arm languageName: node linkType: hard -"turbo-linux-mips64le@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-linux-mips64le@npm:1.2.5" +"turbo-linux-mips64le@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-linux-mips64le@npm:1.2.16" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"turbo-linux-ppc64le@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-linux-ppc64le@npm:1.2.5" +"turbo-linux-ppc64le@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-linux-ppc64le@npm:1.2.16" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"turbo-windows-32@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-windows-32@npm:1.2.5" +"turbo-windows-32@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-windows-32@npm:1.2.16" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"turbo-windows-64@npm:1.2.5": - version: 1.2.5 - resolution: "turbo-windows-64@npm:1.2.5" +"turbo-windows-64@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-windows-64@npm:1.2.16" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"turbo@npm:1.2.5": - version: 1.2.5 - resolution: "turbo@npm:1.2.5" - dependencies: - turbo-darwin-64: 1.2.5 - turbo-darwin-arm64: 1.2.5 - turbo-freebsd-64: 1.2.5 - turbo-freebsd-arm64: 1.2.5 - turbo-linux-32: 1.2.5 - turbo-linux-64: 1.2.5 - turbo-linux-arm: 1.2.5 - turbo-linux-arm64: 1.2.5 - turbo-linux-mips64le: 1.2.5 - turbo-linux-ppc64le: 1.2.5 - turbo-windows-32: 1.2.5 - turbo-windows-64: 1.2.5 +"turbo-windows-arm64@npm:1.2.16": + version: 1.2.16 + resolution: "turbo-windows-arm64@npm:1.2.16" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"turbo@npm:~1.2.5": + version: 1.2.16 + resolution: "turbo@npm:1.2.16" + dependencies: + turbo-darwin-64: 1.2.16 + turbo-darwin-arm64: 1.2.16 + turbo-freebsd-64: 1.2.16 + turbo-freebsd-arm64: 1.2.16 + turbo-linux-32: 1.2.16 + turbo-linux-64: 1.2.16 + turbo-linux-arm: 1.2.16 + turbo-linux-arm64: 1.2.16 + turbo-linux-mips64le: 1.2.16 + turbo-linux-ppc64le: 1.2.16 + turbo-windows-32: 1.2.16 + turbo-windows-64: 1.2.16 + turbo-windows-arm64: 1.2.16 dependenciesMeta: turbo-darwin-64: optional: true @@ -32163,9 +30858,11 @@ __metadata: optional: true turbo-windows-64: optional: true + turbo-windows-arm64: + optional: true bin: turbo: bin/turbo - checksum: cba41a5c0e586f47f30e37424a112923fab5b29fda84bf6e28dfd56e981babc3787b3c1ce487bcff1feb828045ea0369f9ec5b32b495778285aa0983d417693c + checksum: 245b1b28af153edd14ab35a4812a8651b1e7cbae44ce3f15b53e0a73a3cc9c4ea39734f18c966403496c37876dd57053070b5b7eb736a14f1bc7e1bfd36566f3 languageName: node linkType: hard @@ -32338,43 +31035,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.6.3": - version: 4.6.3 - resolution: "typescript@npm:4.6.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 255bb26c8cb846ca689dd1c3a56587af4f69055907aa2c154796ea28ee0dea871535b1c78f85a6212c77f2657843a269c3a742d09d81495b97b914bf7920415b - languageName: node - linkType: hard - -"typescript@npm:~4.3.4, typescript@npm:~4.3.5": - version: 4.3.5 - resolution: "typescript@npm:4.3.5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: bab033b5e2b0790dd35b77fd005df976ef80b8d84fd2c6e63cc31808151875beae9216e5a315fe7068e8499905c3c354248fe83272cdfc13b7705635f0c66c97 - languageName: node - linkType: hard - -"typescript@patch:typescript@^4.6.3#~builtin": - version: 4.6.3 - resolution: "typescript@patch:typescript@npm%3A4.6.3#~builtin::version=4.6.3&hash=bda367" +"typescript@npm:~4.5.5": + version: 4.5.5 + resolution: "typescript@npm:4.5.5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 6bf45caf847062420592e711bc9c28bf5f9a9a7fa8245343b81493e4ededae33f1774009d1234d911422d1646a2c839f44e1a23ecb111b40a60ac2ea4c1482a8 + checksum: 506f4c919dc8aeaafa92068c997f1d213b9df4d9756d0fae1a1e7ab66b585ab3498050e236113a1c9e57ee08c21ec6814ca7a7f61378c058d79af50a4b1f5a5e languageName: node linkType: hard -"typescript@patch:typescript@~4.3.4#~builtin, typescript@patch:typescript@~4.3.5#~builtin": - version: 4.3.5 - resolution: "typescript@patch:typescript@npm%3A4.3.5#~builtin::version=4.3.5&hash=bda367" +"typescript@patch:typescript@~4.5.5#~builtin": + version: 4.5.5 + resolution: "typescript@patch:typescript@npm%3A4.5.5#~builtin::version=4.5.5&hash=bda367" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 365df18cf979c971ef9543b2acaa8694377a803f98e1804c41d0ede0b09d7046cb0cd98f2eaf3884b0fe923c01a60af1f653841bd8805c9715d5479c09a4ebe4 + checksum: 858c61fa63f7274ca4aaaffeced854d550bf416cff6e558c4884041b3311fb662f476f167cf5c9f8680c607239797e26a2ee0bcc6467fbc05bfcb218e1c6c671 languageName: node linkType: hard