diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a2a6ddb8dc..113e3a078d7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,8 +36,8 @@ jobs: deno-version: ${{ steps.var.outputs.deno-version }} official-platform: 'alpine' # this is 100% intentional, secrets are not available for forks, so ee-tests will always fail - # to avoid this, we are using a dummy license, expiring at 2025-06-31 - enterprise-license: X/XumwIkgwQuld0alWKt37lVA90XjKOrfiMvMZ0/RtqsMtrdL9GoAk+4jXnaY1b2ePoG7XSzGhuxEDxFKIWJK3hIKGNTvrd980LgH5sM5+1T4P42ivSpd8UZi0bwjJkCFLIu9RozzYwslGG0IehMxe0S6VjcO0UYlUJtbMCBHuR2WmTAmO6YVU3ln+pZCbrPFaTPSS1RovhKaNCNkZwIx/CLWW8UTXUuFV/ML4PbKKVoa5nvvJwPeatgL7UCnlSD90lfCiiuikpzj/Y/JLkIL6velFbwNxsrxg9iRJ2k0sKheMMSmlTiGzSvZUm+na5WQq91aKGncih+DmaEZA7QGrjp4eoA0dqTk6OmItsy0fHmQhvZIOKNMeO7vNQiLbaSV6rqibrzu7WPpeIvsvL57T1h37USoCSB6+jDqkzdfoqIpz8BxTiJDj1d8xGPJFVrgxoqQqkj9qIP/gCaEz5DF39QFv5sovk4yK2O8fEQYod2d14V9yECYl4szZPMk1IBfCAC2w7czWGHHFonhL+CQGT403y5wmDmnsnjlCqMKF72odqfTPTI8XnCvJDriPMWohnQEAGtTTyciAhNokx/mjAVJ4NeZPcsbm4BjhvJvnjxx/BhYhBBTNWPaCSZzocfrGUj9Z+ZA7BEz+xAFQyGDx3xRzqIXfT0G7w8fvgYJMU= + # to avoid this, we are using a dummy license, expiring at 2026-07-01 + enterprise-license: Uo7Jcr6WW0XYA8ydHd+Sk6pZ9/0V6dIASnyTwvUrNym/zJg2Ma3eYNKkC8osXLCc72y1ahohnWY7/+7IYkvono3GYXQR+IGvYbbrVgNR6OjMahd9P/odHZL1GFTm2qHrEL5Hh/XEOG+YluFeRdWPzCizQlp4zGGOi0+PkQo096TR9NVCLrsErVl2MW1WM6ZM1W5EUJG9pKly4BQnaOTUAlor1im6i8qPTDCKrISZfLiZEWuQKaPW/GE3mRKjQNjDh0CabX1N2S880pRRGoozBYAnp2NmFfrQW0+5ihKisBTIeMbMZ7K5NE5PkYU1nhQDcc+rpDHtwG9Ceg5X0J+oea3UfrPTmDON2aSI0iO22kvL6G7QI3fyrEIvJrMbxcNKxAFeQYgnjisw/b06+chWSG4jG686Fx58XrVS87dFhWL9WoGltsk1dJCntUQvI1sX6zOfpvyg1iWRnHfYDOrwoWlX57XMm29fWineEoqnOOTOVnA/uP+DKEhercQ9Xuo7Cr6zJxpQpwd03e7ODVjiEbTDqlkZE687rmxRCD4Wmu8L86WIl2xSEIajKLX301Ww5mz/FdLqk+Mg32lkW66W3azQKvJ1440NBrYxhpJ+dl9vSFMb3s1+xnz1cYUbjUcq9mARvORcgy5mLwKulmqT6Sq0Uvbv10YCO0TW0beXYW8= steps: - uses: actions/checkout@v4 with: diff --git a/apps/meteor/CHANGELOG.md b/apps/meteor/CHANGELOG.md index 190a8fabffd..44ba2d05791 100644 --- a/apps/meteor/CHANGELOG.md +++ b/apps/meteor/CHANGELOG.md @@ -2,10 +2,6 @@ ## 7.8.0-rc.1 -### Patch Changes - -- Bump @rocket.chat/meteor version. - - ([#36263](https://github.com/RocketChat/Rocket.Chat/pull/36263)) Fixes an issue, where multiple reconnections would subscribe multiple times to the same stream, only a frontend issue, since the stream cache prevents sending multiple times to the backend, but does not prevent running the callback multiple times -
Updated dependencies []: @@ -137,9 +133,127 @@ - @rocket.chat/ui-client@20.0.0-rc.0 - @rocket.chat/ui-video-conf@20.0.0-rc.0 - @rocket.chat/ui-voip@10.0.0-rc.0 + + ### Patch Changes + +- Bump @rocket.chat/meteor version. - @rocket.chat/server-cloud-communication@0.0.2
+## 7.7.4 + +- ([#36360](https://github.com/RocketChat/Rocket.Chat/pull/36360) by [@dionisio-bot](https://github.com/dionisio-bot)) Fixes an issue where some error objects sent to apps' method calls would only contain the message '[object Object]' + +-
Updated dependencies [46662d78192b438914b2aedb974faa2367225fa5]: + + - @rocket.chat/apps-engine@1.52.1 + - @rocket.chat/presence@0.2.28 + - @rocket.chat/apps@0.5.7 + - @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/fuselage-ui-kit@19.0.4 + - @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/license@1.0.19 + - @rocket.chat/omnichannel-services@0.3.25 + - @rocket.chat/pdf-worker@0.3.7 + - @rocket.chat/api-client@0.2.28 + - @rocket.chat/cron@0.1.28 + - @rocket.chat/freeswitch@1.2.15 + - @rocket.chat/gazzodown@19.0.4 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/ui-contexts@19.0.4 + - @rocket.chat/models@1.5.7 + - @rocket.chat/server-cloud-communication@0.0.2 + - @rocket.chat/network-broker@0.2.7 + - @rocket.chat/ui-theming@0.4.3 + - @rocket.chat/ui-avatar@15.0.4 + - @rocket.chat/ui-client@19.0.4 + - @rocket.chat/ui-video-conf@19.0.4 + - @rocket.chat/ui-voip@9.0.4 + - @rocket.chat/web-ui-registration@19.0.4 + - @rocket.chat/instance-status@0.1.28 +
+ +## 7.7.3 + +### Patch Changes + +- Bump @rocket.chat/meteor version. + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/license@1.0.18 + - @rocket.chat/omnichannel-services@0.3.24 + - @rocket.chat/pdf-worker@0.3.6 + - @rocket.chat/presence@0.2.27 + - @rocket.chat/api-client@0.2.27 + - @rocket.chat/apps@0.5.6 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/cron@0.1.27 + - @rocket.chat/freeswitch@1.2.14 + - @rocket.chat/fuselage-ui-kit@19.0.3 + - @rocket.chat/gazzodown@19.0.3 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/ui-contexts@19.0.3 + - @rocket.chat/models@1.5.6 + - @rocket.chat/server-cloud-communication@0.0.2 + - @rocket.chat/network-broker@0.2.6 + - @rocket.chat/ui-theming@0.4.3 + - @rocket.chat/ui-avatar@15.0.3 + - @rocket.chat/ui-client@19.0.3 + - @rocket.chat/ui-video-conf@19.0.3 + - @rocket.chat/ui-voip@9.0.3 + - @rocket.chat/web-ui-registration@19.0.3 + - @rocket.chat/instance-status@0.1.27 +
+ +## 7.7.2 + +### Patch Changes + +- Bump @rocket.chat/meteor version. + +- Bump @rocket.chat/meteor version. + +- ([#36323](https://github.com/RocketChat/Rocket.Chat/pull/36323) by [@dionisio-bot](https://github.com/dionisio-bot)) Fixes an issue that was causing ddp-streamer process to break if the communication with presence service was interrupted for any reason. + +- ([#36250](https://github.com/RocketChat/Rocket.Chat/pull/36250) by [@dionisio-bot](https://github.com/dionisio-bot)) fix: Security Hotfix (https://docs.rocket.chat/docs/security-fixes-and-updates) + +- ([#36270](https://github.com/RocketChat/Rocket.Chat/pull/36270) by [@dionisio-bot](https://github.com/dionisio-bot)) Fixes an issue that caused the queue worker to stop processing if something failed when checking MAC limits or while fetching the list of queues + +- ([#36298](https://github.com/RocketChat/Rocket.Chat/pull/36298) by [@dionisio-bot](https://github.com/dionisio-bot)) Fixes an issue that prevented the action of removing an agent when editing a department to work. + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/omnichannel-services@0.3.23 + - @rocket.chat/presence@0.2.26 + - @rocket.chat/api-client@0.2.26 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/ui-contexts@19.0.2 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/cron@0.1.26 + - @rocket.chat/instance-status@0.1.26 + - @rocket.chat/ui-theming@0.4.3 + - @rocket.chat/fuselage-ui-kit@19.0.2 + - @rocket.chat/gazzodown@19.0.2 + - @rocket.chat/ui-avatar@15.0.2 + - @rocket.chat/ui-client@19.0.2 + - @rocket.chat/ui-video-conf@19.0.2 + - @rocket.chat/ui-voip@9.0.2 + - @rocket.chat/web-ui-registration@19.0.2 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/license@1.0.17 + - @rocket.chat/pdf-worker@0.3.5 + - @rocket.chat/apps@0.5.5 + - @rocket.chat/freeswitch@1.2.13 + - @rocket.chat/model-typings@1.6.5 + - @rocket.chat/server-cloud-communication@0.0.2 +
+ ## 7.7.1 ### Patch Changes diff --git a/apps/meteor/app/livechat/server/lib/departmentsLib.ts b/apps/meteor/app/livechat/server/lib/departmentsLib.ts index d0fe436a523..31c891c23e5 100644 --- a/apps/meteor/app/livechat/server/lib/departmentsLib.ts +++ b/apps/meteor/app/livechat/server/lib/departmentsLib.ts @@ -185,7 +185,7 @@ export async function saveDepartmentAgents( departmentAgents: { upsert?: (Pick & { count?: number; - sort?: number; + order?: number; })[]; remove?: Pick[]; }, diff --git a/apps/meteor/client/views/omnichannel/departments/utils/formatAgentListPayload.ts b/apps/meteor/client/views/omnichannel/departments/utils/formatAgentListPayload.ts index 267f0c68257..c498fce57d0 100644 --- a/apps/meteor/client/views/omnichannel/departments/utils/formatAgentListPayload.ts +++ b/apps/meteor/client/views/omnichannel/departments/utils/formatAgentListPayload.ts @@ -1,20 +1,20 @@ import type { IDepartmentAgent } from '../definitions'; export const formatAgentListPayload = (oldAgentList: IDepartmentAgent[], newAgentList: IDepartmentAgent[]) => { - const upsert: IDepartmentAgent[] = []; - const remove: IDepartmentAgent[] = []; + const upsert: Pick[] = []; + const remove: Pick[] = []; for (const agent of newAgentList) { const initialAgent = agent._id ? oldAgentList.find((initialAgent) => initialAgent._id === agent._id) : undefined; if (!initialAgent || agent.count !== initialAgent.count || agent.order !== initialAgent.order) { - upsert.push(agent); + upsert.push({ agentId: agent.agentId, username: agent.username, count: agent.count, order: agent.order }); } } for (const initialAgent of oldAgentList) { if (!newAgentList.some((agent) => initialAgent._id === agent._id)) { - remove.push(initialAgent); + remove.push({ agentId: initialAgent.agentId, username: initialAgent.username }); } } diff --git a/apps/meteor/ee/server/services/CHANGELOG.md b/apps/meteor/ee/server/services/CHANGELOG.md index 8d48e52ad9b..442a567f805 100644 --- a/apps/meteor/ee/server/services/CHANGELOG.md +++ b/apps/meteor/ee/server/services/CHANGELOG.md @@ -1,11 +1,10 @@ # rocketchat-services -## 2.0.17-rc.1 +## 2.0.20-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/rest-typings@7.8.0-rc.1 - @rocket.chat/core-services@0.9.5-rc.1 @@ -27,8 +26,51 @@ - @rocket.chat/core-typings@7.8.0-rc.0 - @rocket.chat/core-services@0.9.5-rc.0 - @rocket.chat/network-broker@0.2.5-rc.0 +
+ +## 2.0.19 + +### Patch Changes + +-
Updated dependencies [46662d78192b438914b2aedb974faa2367225fa5]: + + - @rocket.chat/apps-engine@1.52.1 + - @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/models@1.5.7 + - @rocket.chat/network-broker@0.2.7 +
+ +## 2.0.18 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 + - @rocket.chat/network-broker@0.2.6
+## 2.0.17 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5 + +
+ ## 2.0.16 ### Patch Changes diff --git a/apps/meteor/ee/server/services/package.json b/apps/meteor/ee/server/services/package.json index d8bd4c59149..242f3ccf3e4 100644 --- a/apps/meteor/ee/server/services/package.json +++ b/apps/meteor/ee/server/services/package.json @@ -1,7 +1,7 @@ { "name": "rocketchat-services", "private": true, - "version": "2.0.17-rc.1", + "version": "2.0.20-rc.1", "description": "Rocket.Chat Authorization service", "main": "index.js", "scripts": { diff --git a/apps/meteor/server/services/omnichannel/queue.ts b/apps/meteor/server/services/omnichannel/queue.ts index 31a159492cf..7e64b906799 100644 --- a/apps/meteor/server/services/omnichannel/queue.ts +++ b/apps/meteor/server/services/omnichannel/queue.ts @@ -27,6 +27,8 @@ export class OmnichannelQueue implements IOmnichannelQueue { private running = false; + private errorDelay = 10 * 1000; // 10 seconds + private delay() { const timeout = settings.get('Omnichannel_queue_delay_timeout') ?? 5; return timeout < 1 ? DEFAULT_RACE_TIMEOUT : timeout * 1000; @@ -79,28 +81,38 @@ export class OmnichannelQueue implements IOmnichannelQueue { } private async execute() { - if (!this.running) { - queueLogger.debug('Queue stopped. Cannot execute'); - return; - } + try { + if (!this.running) { + queueLogger.debug('Queue stopped. Cannot execute'); + return; + } - if (await License.shouldPreventAction('monthlyActiveContacts', 1)) { - queueLogger.debug('MAC limit reached. Queue wont execute'); - this.running = false; - return; - } + if (await License.shouldPreventAction('monthlyActiveContacts', 1)) { + queueLogger.debug('MAC limit reached. Queue wont execute'); + this.running = false; + return; + } + + // We still go 1 by 1, but we go with every queue every cycle instead of just 1 queue per cycle + // And we get tracing :) + const queues = await this.getActiveQueues(); + for await (const queue of queues) { + await tracerSpan( + 'omnichannel.queue', + { attributes: { workerTime: new Date().toISOString(), queue: queue || 'Public' }, root: true }, + () => this.checkQueue(queue), + ); + } - // We still go 1 by 1, but we go with every queue every cycle instead of just 1 queue per cycle - // And we get tracing :) - const queues = await this.getActiveQueues(); - for await (const queue of queues) { - await tracerSpan( - 'omnichannel.queue', - { attributes: { workerTime: new Date().toISOString(), queue: queue || 'Public' }, root: true }, - () => this.checkQueue(queue), - ); + this.scheduleExecution(); + } catch (e) { + queueLogger.error({ + msg: 'Queue Worker Error. Rescheduling with extra delay', + extraDelay: this.errorDelay, + err: e, + }); + this.scheduleExecution(this.errorDelay); } - this.scheduleExecution(); } private async checkQueue(queue: string | null) { @@ -136,15 +148,18 @@ export class OmnichannelQueue implements IOmnichannelQueue { } } - private scheduleExecution(): void { + private scheduleExecution(extraDelay?: number): void { if (this.timeoutHandler !== null) { return; } - this.timeoutHandler = setTimeout(() => { - this.timeoutHandler = null; - return this.execute(); - }, this.delay()); + this.timeoutHandler = setTimeout( + () => { + this.timeoutHandler = null; + return this.execute(); + }, + this.delay() + (extraDelay || 0), + ); } async shouldStart() { diff --git a/apps/meteor/tests/end-to-end/api/livechat/10-departments.ts b/apps/meteor/tests/end-to-end/api/livechat/10-departments.ts index 99ca5591b25..f219a7a4f00 100644 --- a/apps/meteor/tests/end-to-end/api/livechat/10-departments.ts +++ b/apps/meteor/tests/end-to-end/api/livechat/10-departments.ts @@ -911,6 +911,30 @@ import { IS_EE } from '../../../e2e/config/constants'; .send({ upsert: [{ agentId: agent._id, username: agent.username, name: agent.name }], remove: [] }) .expect(200); expect(res.body).to.have.property('success', true); + }); + it('should successfully remove an agent from a department', async () => { + const [dep, agent] = await Promise.all([createDepartment(), createAgent()]); + const res = await request + .post(api(`livechat/department/${dep._id}/agents`)) + .set(credentials) + // UI sends the whole agent object, but API only needs agentId and username + .send({ + remove: [ + { + agentId: agent._id, + username: agent.username, + name: agent.name, + count: 0, + order: 0, + departmentId: 'afdsfads', + _id: 'afsdfadsfaf', + _updatedAt: new Date(), + }, + ], + upsert: [], + }) + .expect(200); + expect(res.body).to.have.property('success', true); await deleteDepartment(dep._id); }); }); diff --git a/apps/uikit-playground/CHANGELOG.md b/apps/uikit-playground/CHANGELOG.md index 1e1a2eab100..fd53d85d85a 100644 --- a/apps/uikit-playground/CHANGELOG.md +++ b/apps/uikit-playground/CHANGELOG.md @@ -1,12 +1,10 @@ # @rocket.chat/uikit-playground -## 0.6.17-rc.1 +## 0.6.20-rc.1 ### Patch Changes --
Updated dependencies []: - - - @rocket.chat/core-typings@7.8.0-rc.1 +- @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/fuselage-ui-kit@20.0.0-rc.1 - @rocket.chat/ui-contexts@20.0.0-rc.1 - @rocket.chat/ui-avatar@16.0.0-rc.1 @@ -22,6 +20,43 @@ - @rocket.chat/ui-contexts@20.0.0-rc.0 - @rocket.chat/fuselage-ui-kit@20.0.0-rc.0 - @rocket.chat/ui-avatar@16.0.0-rc.0 + +-
Updated dependencies []: +
+ +## 0.6.19 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/fuselage-ui-kit@19.0.4 + - @rocket.chat/ui-contexts@19.0.4 + - @rocket.chat/ui-avatar@15.0.4 +
+ +## 0.6.18 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/fuselage-ui-kit@19.0.3 + - @rocket.chat/ui-contexts@19.0.3 + - @rocket.chat/ui-avatar@15.0.3 +
+ +## 0.6.17 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 + - @rocket.chat/fuselage-ui-kit@19.0.2 + - @rocket.chat/ui-avatar@15.0.2 + - @rocket.chat/core-typings@7.7.2
## 0.6.16 diff --git a/apps/uikit-playground/package.json b/apps/uikit-playground/package.json index 05778501394..f7e79f91251 100644 --- a/apps/uikit-playground/package.json +++ b/apps/uikit-playground/package.json @@ -1,7 +1,7 @@ { "name": "@rocket.chat/uikit-playground", "private": true, - "version": "0.6.17-rc.1", + "version": "0.6.20-rc.1", "type": "module", "scripts": { "dev": "vite", diff --git a/ee/apps/account-service/CHANGELOG.md b/ee/apps/account-service/CHANGELOG.md index 9dc050f3a96..1f89dcf71c9 100644 --- a/ee/apps/account-service/CHANGELOG.md +++ b/ee/apps/account-service/CHANGELOG.md @@ -1,12 +1,11 @@ # @rocket.chat/account-service -## 0.4.26-rc.1 +## 0.4.29-rc.1 ### Patch Changes -
Updated dependencies []: - - - @rocket.chat/core-typings@7.8.0-rc.1 +- @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/rest-typings@7.8.0-rc.1 - @rocket.chat/core-services@0.9.5-rc.1 - @rocket.chat/model-typings@1.6.5-rc.1 @@ -28,6 +27,47 @@ - @rocket.chat/network-broker@0.2.5-rc.0
+## 0.4.28 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/models@1.5.7 + - @rocket.chat/network-broker@0.2.7 +
+ +## 0.4.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 + - @rocket.chat/network-broker@0.2.6 +
+ +## 0.4.26 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5 +
+ ## 0.4.25 ### Patch Changes diff --git a/ee/apps/account-service/package.json b/ee/apps/account-service/package.json index 24e0d1dbca9..1941949a9c9 100644 --- a/ee/apps/account-service/package.json +++ b/ee/apps/account-service/package.json @@ -1,7 +1,7 @@ { "name": "@rocket.chat/account-service", "private": true, - "version": "0.4.26-rc.1", + "version": "0.4.29-rc.1", "description": "Rocket.Chat Account service", "scripts": { "build": "tsc -p tsconfig.json", diff --git a/ee/apps/authorization-service/CHANGELOG.md b/ee/apps/authorization-service/CHANGELOG.md index 528cb3b4dd4..610e573004f 100644 --- a/ee/apps/authorization-service/CHANGELOG.md +++ b/ee/apps/authorization-service/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/authorization-service -## 0.4.26-rc.1 +## 0.4.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/rest-typings@7.8.0-rc.1 - @rocket.chat/core-services@0.9.5-rc.1 @@ -28,6 +27,47 @@ - @rocket.chat/network-broker@0.2.5-rc.0
+## 0.4.28 + +### Patch Changes + +-
Updated dependencies []: +- @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/models@1.5.7 + - @rocket.chat/network-broker@0.2.7 +
+ +## 0.4.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 + - @rocket.chat/network-broker@0.2.6 +
+ +## 0.4.26 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5 +
+ ## 0.4.25 ### Patch Changes diff --git a/ee/apps/authorization-service/package.json b/ee/apps/authorization-service/package.json index 87bec84193a..eb1756cdad3 100644 --- a/ee/apps/authorization-service/package.json +++ b/ee/apps/authorization-service/package.json @@ -1,7 +1,7 @@ { "name": "@rocket.chat/authorization-service", "private": true, - "version": "0.4.26-rc.1", + "version": "0.4.29-rc.1", "description": "Rocket.Chat Authorization service", "scripts": { "build": "tsc -p tsconfig.json", diff --git a/ee/apps/ddp-streamer/CHANGELOG.md b/ee/apps/ddp-streamer/CHANGELOG.md index 1ae95c4b434..4d07e5e04c8 100644 --- a/ee/apps/ddp-streamer/CHANGELOG.md +++ b/ee/apps/ddp-streamer/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/ddp-streamer -## 0.3.26-rc.1 +## 0.3.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/rest-typings@7.8.0-rc.1 - @rocket.chat/core-services@0.9.5-rc.1 @@ -30,6 +29,52 @@ - @rocket.chat/network-broker@0.2.5-rc.0
+## 0.3.28 + +### Patch Changes + +-
Updated dependencies []: +- @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/models@1.5.7 + - @rocket.chat/network-broker@0.2.7 + - @rocket.chat/instance-status@0.1.28 +
+ +## 0.3.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 + - @rocket.chat/network-broker@0.2.6 + - @rocket.chat/instance-status@0.1.27 +
+ +## 0.3.26 + +### Patch Changes + +- ([#36323](https://github.com/RocketChat/Rocket.Chat/pull/36323) by [@dionisio-bot](https://github.com/dionisio-bot)) Fixes an issue that was causing ddp-streamer process to break if the communication with presence service was interrupted for any reason. + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/instance-status@0.1.26 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5 +
+ ## 0.3.25 ### Patch Changes diff --git a/ee/apps/ddp-streamer/package.json b/ee/apps/ddp-streamer/package.json index fa096d13a3b..7111f324da2 100644 --- a/ee/apps/ddp-streamer/package.json +++ b/ee/apps/ddp-streamer/package.json @@ -1,7 +1,7 @@ { "name": "@rocket.chat/ddp-streamer", "private": true, - "version": "0.3.26-rc.1", + "version": "0.3.29-rc.1", "description": "Rocket.Chat DDP-Streamer service", "scripts": { "build": "tsc -p tsconfig.json", diff --git a/ee/apps/ddp-streamer/src/service.ts b/ee/apps/ddp-streamer/src/service.ts index e0e430c7eeb..ab5c8108712 100755 --- a/ee/apps/ddp-streamer/src/service.ts +++ b/ee/apps/ddp-streamer/src/service.ts @@ -32,3 +32,39 @@ import { startTracing } from '@rocket.chat/tracing'; await api.start(); })(); + +/** + * If some promise is rejected and doesn't have a catch (unhandledRejection) it may cause the process to exit. + * + * Since unhandled rejections are deprecated in NodeJS: + * (node:83382) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections + * that are not handled will terminate the Node.js process with a non-zero exit code. + * we will start respecting this and exit the process to prevent these kind of problems. + */ + +process.on('unhandledRejection', (error) => { + console.error('=== UnHandledPromiseRejection ==='); + console.error(error); + console.error('---------------------------------'); + console.error( + 'Setting EXIT_UNHANDLEDPROMISEREJECTION will cause the process to exit allowing your service to automatically restart the process', + ); + console.error('Future node.js versions will automatically exit the process'); + console.error('================================='); + + if (process.env.TEST_MODE || process.env.NODE_ENV === 'development' || process.env.EXIT_UNHANDLEDPROMISEREJECTION) { + process.exit(1); + } +}); + +process.on('uncaughtException', async (error) => { + console.error('=== UnCaughtException ==='); + console.error(error); + console.error('-------------------------'); + console.error('Errors like this can cause oplog processing errors.'); + console.error('==========================='); + + if (process.env.TEST_MODE || process.env.NODE_ENV === 'development' || process.env.EXIT_UNHANDLEDPROMISEREJECTION) { + process.exit(1); + } +}); diff --git a/ee/apps/omnichannel-transcript/CHANGELOG.md b/ee/apps/omnichannel-transcript/CHANGELOG.md index ae47250d1ce..be1502da225 100644 --- a/ee/apps/omnichannel-transcript/CHANGELOG.md +++ b/ee/apps/omnichannel-transcript/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/omnichannel-transcript -## 0.4.26-rc.1 +## 0.4.20-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/omnichannel-services@0.3.23-rc.1 - @rocket.chat/pdf-worker@0.3.5-rc.1 @@ -29,6 +28,53 @@ - @rocket.chat/core-services@0.9.5-rc.0 - @rocket.chat/pdf-worker@0.3.5-rc.0 - @rocket.chat/network-broker@0.2.5-rc.0 + +
+ +## 0.4.28 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/omnichannel-services@0.3.25 + - @rocket.chat/pdf-worker@0.3.7 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/models@1.5.7 + - @rocket.chat/network-broker@0.2.7 +
+ +## 0.4.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/omnichannel-services@0.3.24 + - @rocket.chat/pdf-worker@0.3.6 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 + - @rocket.chat/network-broker@0.2.6 +
+ +## 0.4.26 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/omnichannel-services@0.3.23 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/pdf-worker@0.3.5 + +- @rocket.chat/model-typings@1.6.5 +
## 0.4.25 diff --git a/ee/apps/omnichannel-transcript/package.json b/ee/apps/omnichannel-transcript/package.json index d6f3692135d..70e1a8c8b28 100644 --- a/ee/apps/omnichannel-transcript/package.json +++ b/ee/apps/omnichannel-transcript/package.json @@ -1,7 +1,7 @@ { "name": "@rocket.chat/omnichannel-transcript", "private": true, - "version": "0.4.26-rc.1", + "version": "0.4.29-rc.1", "description": "Rocket.Chat service", "scripts": { "build": "tsc -p tsconfig.json", diff --git a/ee/apps/presence-service/CHANGELOG.md b/ee/apps/presence-service/CHANGELOG.md index a72ed45925e..4377930d6f1 100644 --- a/ee/apps/presence-service/CHANGELOG.md +++ b/ee/apps/presence-service/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/presence-service -## 0.4.26-rc.1 +## 0.4.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/presence@0.2.26-rc.1 - @rocket.chat/core-services@0.9.5-rc.1 @@ -28,6 +27,47 @@ - @rocket.chat/network-broker@0.2.5-rc.0
+## 0.4.28 + +### Patch Changes + +-
Updated dependencies []: +- @rocket.chat/presence@0.2.28 + - @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/models@1.5.7 + - @rocket.chat/network-broker@0.2.7 +
+ +## 0.4.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/presence@0.2.27 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 + - @rocket.chat/network-broker@0.2.6 +
+ +## 0.4.26 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/presence@0.2.26 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5 +
+ ## 0.4.25 ### Patch Changes diff --git a/ee/apps/presence-service/package.json b/ee/apps/presence-service/package.json index 63b17e2e68a..778f2d008a3 100644 --- a/ee/apps/presence-service/package.json +++ b/ee/apps/presence-service/package.json @@ -1,7 +1,7 @@ { "name": "@rocket.chat/presence-service", "private": true, - "version": "0.4.26-rc.1", + "version": "0.4.29-rc.1", "description": "Rocket.Chat Presence service", "scripts": { "build": "tsc -p tsconfig.json", diff --git a/ee/apps/queue-worker/CHANGELOG.md b/ee/apps/queue-worker/CHANGELOG.md index c888f5fa9f0..ada3be6d91b 100644 --- a/ee/apps/queue-worker/CHANGELOG.md +++ b/ee/apps/queue-worker/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/queue-worker -## 0.4.26-rc.1 +## 0.4.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/omnichannel-services@0.3.23-rc.1 - @rocket.chat/core-services@0.9.5-rc.1 @@ -28,6 +27,48 @@ - @rocket.chat/network-broker@0.2.5-rc.0
+## 0.4.28 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/omnichannel-services@0.3.25 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/models@1.5.7 + - @rocket.chat/network-broker@0.2.7 +
+ +## 0.4.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/omnichannel-services@0.3.24 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 + - @rocket.chat/network-broker@0.2.6 +
+ +## 0.4.26 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/omnichannel-services@0.3.23 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5 +
+ ## 0.4.25 ### Patch Changes diff --git a/ee/apps/queue-worker/package.json b/ee/apps/queue-worker/package.json index 9312a6fd370..f6be7d09e37 100644 --- a/ee/apps/queue-worker/package.json +++ b/ee/apps/queue-worker/package.json @@ -1,7 +1,7 @@ { "name": "@rocket.chat/queue-worker", "private": true, - "version": "0.4.26-rc.1", + "version": "0.4.29-rc.1", "description": "Rocket.Chat service", "scripts": { "build": "tsc -p tsconfig.json", diff --git a/ee/apps/stream-hub-service/CHANGELOG.md b/ee/apps/stream-hub-service/CHANGELOG.md index a06ef8f5ca9..90d434c2742 100644 --- a/ee/apps/stream-hub-service/CHANGELOG.md +++ b/ee/apps/stream-hub-service/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/stream-hub-service -## 0.4.26-rc.1 +## 0.4.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/core-services@0.9.5-rc.1 - @rocket.chat/model-typings@1.6.5-rc.1 @@ -24,6 +23,44 @@ - @rocket.chat/core-typings@7.8.0-rc.0 - @rocket.chat/core-services@0.9.5-rc.0 - @rocket.chat/network-broker@0.2.5-rc.0 +
+ +## 0.4.28 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-services@0.9.7 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/model-typings@1.6.7 + - @rocket.chat/models@1.5.7 + - @rocket.chat/network-broker@0.2.7 +
+ +## 0.4.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 + - @rocket.chat/network-broker@0.2.6 +
+ +## 0.4.26 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/network-broker@0.2.5 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5
## 0.4.25 diff --git a/ee/apps/stream-hub-service/package.json b/ee/apps/stream-hub-service/package.json index beb13bd758c..3e5d65d1fc7 100644 --- a/ee/apps/stream-hub-service/package.json +++ b/ee/apps/stream-hub-service/package.json @@ -1,7 +1,7 @@ { "name": "@rocket.chat/stream-hub-service", "private": true, - "version": "0.4.26-rc.1", + "version": "0.4.29-rc.1", "description": "Rocket.Chat Stream Hub service", "scripts": { "build": "tsc -p tsconfig.json", diff --git a/ee/packages/license/CHANGELOG.md b/ee/packages/license/CHANGELOG.md index 4771d3ecb1b..d900dbfc683 100644 --- a/ee/packages/license/CHANGELOG.md +++ b/ee/packages/license/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/license -## 1.0.17-rc.1 +## 1.0.20-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1
@@ -16,8 +15,34 @@ -
Updated dependencies [3d024a900426c8bbf646e7ebedce0e17c9f7c140, 3779de0e8c5787f266bdeda5052b27c023c65f1c]: - @rocket.chat/core-typings@7.8.0-rc.0 +
+ +## 1.0.19 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4
+## 1.0.18 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 +
+ +## 1.0.17 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.2 +
+ ## 1.0.16 ### Patch Changes diff --git a/ee/packages/license/__tests__/setLicense.spec.ts b/ee/packages/license/__tests__/setLicense.spec.ts index 2cd2ab845ac..8a502798f29 100644 --- a/ee/packages/license/__tests__/setLicense.spec.ts +++ b/ee/packages/license/__tests__/setLicense.spec.ts @@ -11,7 +11,7 @@ import { NotReadyForValidation } from '../src/errors/NotReadyForValidation'; // Same license used on ci tasks so no I didnt leak it const VALID_LICENSE = process.env.ENTERPRISE_LICENSE || - 'X/XumwIkgwQuld0alWKt37lVA90XjKOrfiMvMZ0/RtqsMtrdL9GoAk+4jXnaY1b2ePoG7XSzGhuxEDxFKIWJK3hIKGNTvrd980LgH5sM5+1T4P42ivSpd8UZi0bwjJkCFLIu9RozzYwslGG0IehMxe0S6VjcO0UYlUJtbMCBHuR2WmTAmO6YVU3ln+pZCbrPFaTPSS1RovhKaNCNkZwIx/CLWW8UTXUuFV/ML4PbKKVoa5nvvJwPeatgL7UCnlSD90lfCiiuikpzj/Y/JLkIL6velFbwNxsrxg9iRJ2k0sKheMMSmlTiGzSvZUm+na5WQq91aKGncih+DmaEZA7QGrjp4eoA0dqTk6OmItsy0fHmQhvZIOKNMeO7vNQiLbaSV6rqibrzu7WPpeIvsvL57T1h37USoCSB6+jDqkzdfoqIpz8BxTiJDj1d8xGPJFVrgxoqQqkj9qIP/gCaEz5DF39QFv5sovk4yK2O8fEQYod2d14V9yECYl4szZPMk1IBfCAC2w7czWGHHFonhL+CQGT403y5wmDmnsnjlCqMKF72odqfTPTI8XnCvJDriPMWohnQEAGtTTyciAhNokx/mjAVJ4NeZPcsbm4BjhvJvnjxx/BhYhBBTNWPaCSZzocfrGUj9Z+ZA7BEz+xAFQyGDx3xRzqIXfT0G7w8fvgYJMU='; + 'Uo7Jcr6WW0XYA8ydHd+Sk6pZ9/0V6dIASnyTwvUrNym/zJg2Ma3eYNKkC8osXLCc72y1ahohnWY7/+7IYkvono3GYXQR+IGvYbbrVgNR6OjMahd9P/odHZL1GFTm2qHrEL5Hh/XEOG+YluFeRdWPzCizQlp4zGGOi0+PkQo096TR9NVCLrsErVl2MW1WM6ZM1W5EUJG9pKly4BQnaOTUAlor1im6i8qPTDCKrISZfLiZEWuQKaPW/GE3mRKjQNjDh0CabX1N2S880pRRGoozBYAnp2NmFfrQW0+5ihKisBTIeMbMZ7K5NE5PkYU1nhQDcc+rpDHtwG9Ceg5X0J+oea3UfrPTmDON2aSI0iO22kvL6G7QI3fyrEIvJrMbxcNKxAFeQYgnjisw/b06+chWSG4jG686Fx58XrVS87dFhWL9WoGltsk1dJCntUQvI1sX6zOfpvyg1iWRnHfYDOrwoWlX57XMm29fWineEoqnOOTOVnA/uP+DKEhercQ9Xuo7Cr6zJxpQpwd03e7ODVjiEbTDqlkZE687rmxRCD4Wmu8L86WIl2xSEIajKLX301Ww5mz/FdLqk+Mg32lkW66W3azQKvJ1440NBrYxhpJ+dl9vSFMb3s1+xnz1cYUbjUcq9mARvORcgy5mLwKulmqT6Sq0Uvbv10YCO0TW0beXYW8='; describe('License set license procedures', () => { describe('Invalid formats', () => { diff --git a/ee/packages/license/package.json b/ee/packages/license/package.json index ec024267474..0af2d98293d 100644 --- a/ee/packages/license/package.json +++ b/ee/packages/license/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/license", - "version": "1.0.17-rc.1", + "version": "1.0.20-rc.1", "private": true, "devDependencies": { "@rocket.chat/jest-presets": "workspace:~", diff --git a/ee/packages/network-broker/CHANGELOG.md b/ee/packages/network-broker/CHANGELOG.md index 55093e7fae6..69696bfaedf 100644 --- a/ee/packages/network-broker/CHANGELOG.md +++ b/ee/packages/network-broker/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/network-broker -## 0.2.5-rc.1 +## 0.2.6-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-services@0.9.5-rc.1
@@ -14,10 +13,34 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-services@0.9.5-rc.0
+## 0.2.7 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-services@0.9.7 +
+ +## 0.2.6 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-services@0.9.6 +
+ +## 0.2.5 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-services@0.9.5 +
+ ## 0.2.4 ### Patch Changes diff --git a/ee/packages/network-broker/package.json b/ee/packages/network-broker/package.json index 6c3045e7d5c..af371e7c1ba 100644 --- a/ee/packages/network-broker/package.json +++ b/ee/packages/network-broker/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/network-broker", - "version": "0.2.5-rc.1", + "version": "0.2.8-rc.1", "private": true, "devDependencies": { "@rocket.chat/eslint-config": "workspace:^", diff --git a/ee/packages/omnichannel-services/CHANGELOG.md b/ee/packages/omnichannel-services/CHANGELOG.md index 66ce994ed6e..020acad1451 100644 --- a/ee/packages/omnichannel-services/CHANGELOG.md +++ b/ee/packages/omnichannel-services/CHANGELOG.md @@ -1,18 +1,14 @@ # @rocket.chat/omnichannel-services -## 0.3.23-rc.1 - -### Patch Changes - --
Updated dependencies []: - - - @rocket.chat/core-typings@7.8.0-rc.1 - - @rocket.chat/rest-typings@7.8.0-rc.1 - - @rocket.chat/pdf-worker@0.3.5-rc.1 - - @rocket.chat/core-services@0.9.5-rc.1 - - @rocket.chat/model-typings@1.6.5-rc.1 - - @rocket.chat/models@1.5.5-rc.1 -
+## 0.3.26-rc.1 + +- @rocket.chat/core-typings@7.8.0-rc.1 +- @rocket.chat/rest-typings@7.8.0-rc.1 +- @rocket.chat/pdf-worker@0.3.5-rc.1 +- @rocket.chat/core-services@0.9.5-rc.1 +- @rocket.chat/model-typings@1.6.5-rc.1 +- @rocket.chat/models@1.5.5-rc.1 +
## 0.3.23-rc.0 @@ -26,6 +22,48 @@ - @rocket.chat/core-typings@7.8.0-rc.0 - @rocket.chat/core-services@0.9.5-rc.0 - @rocket.chat/pdf-worker@0.3.5-rc.0 + +### Patch Changes + +-
Updated dependencies []: +
+ +## 0.3.25 + +- @rocket.chat/core-services@0.9.7 +- @rocket.chat/core-typings@7.7.4 +- @rocket.chat/rest-typings@7.7.4 +- @rocket.chat/pdf-worker@0.3.7 +- @rocket.chat/model-typings@1.6.7 +- @rocket.chat/models@1.5.7 + + +## 0.3.24 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/pdf-worker@0.3.6 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/model-typings@1.6.6 + - @rocket.chat/models@1.5.6 +
+ +## 0.3.23 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/pdf-worker@0.3.5 + - @rocket.chat/model-typings@1.6.5
## 0.3.22 diff --git a/ee/packages/omnichannel-services/package.json b/ee/packages/omnichannel-services/package.json index ec871cf0121..ba9f9d797b0 100644 --- a/ee/packages/omnichannel-services/package.json +++ b/ee/packages/omnichannel-services/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/omnichannel-services", - "version": "0.3.23-rc.1", + "version": "0.3.26-rc.1", "private": true, "devDependencies": { "@rocket.chat/eslint-config": "workspace:^", diff --git a/ee/packages/pdf-worker/CHANGELOG.md b/ee/packages/pdf-worker/CHANGELOG.md index 2482883ec98..e95a6d7f88e 100644 --- a/ee/packages/pdf-worker/CHANGELOG.md +++ b/ee/packages/pdf-worker/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/pdf-worker -## 0.3.5-rc.1 +## 0.3.8-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1
@@ -16,6 +15,32 @@ -
Updated dependencies [3d024a900426c8bbf646e7ebedce0e17c9f7c140, 3779de0e8c5787f266bdeda5052b27c023c65f1c]: - @rocket.chat/core-typings@7.8.0-rc.0 +
+ +## 0.3.7 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 +
+ +## 0.3.6 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 +
+ +## 0.3.5 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.2
## 0.3.4 diff --git a/ee/packages/pdf-worker/package.json b/ee/packages/pdf-worker/package.json index d27f2cfeee4..89ee059f8d9 100644 --- a/ee/packages/pdf-worker/package.json +++ b/ee/packages/pdf-worker/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/pdf-worker", - "version": "0.3.5-rc.1", + "version": "0.3.8-rc.1", "private": true, "main": "./dist/index.js", "typings": "./dist/index.d.ts", diff --git a/ee/packages/presence/CHANGELOG.md b/ee/packages/presence/CHANGELOG.md index c8c321eda0c..5c939f2fd95 100644 --- a/ee/packages/presence/CHANGELOG.md +++ b/ee/packages/presence/CHANGELOG.md @@ -1,15 +1,11 @@ # @rocket.chat/presence -## 0.2.26-rc.1 +## 0.2.28-rc.1 -### Patch Changes - --
Updated dependencies []: - - - @rocket.chat/core-typings@7.8.0-rc.1 - - @rocket.chat/core-services@0.9.5-rc.1 - - @rocket.chat/models@1.5.5-rc.1 -
+- @rocket.chat/core-typings@7.8.0-rc.1 +- @rocket.chat/core-services@0.9.5-rc.1 +- @rocket.chat/models@1.5.5-rc.1 + ## 0.2.26-rc.0 @@ -20,6 +16,43 @@ - @rocket.chat/models@1.5.5-rc.0 - @rocket.chat/core-typings@7.8.0-rc.0 - @rocket.chat/core-services@0.9.5-rc.0 + + ### Patch Changes + +-
Updated dependencies []: +
+ +## 0.2.28 + +- @rocket.chat/core-services@0.9.7 +- @rocket.chat/core-typings@7.7.4 +- @rocket.chat/models@1.5.7 + + +## 0.2.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/core-services@0.9.6 + - @rocket.chat/models@1.5.6 +
+ +## 0.2.26 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-services@0.9.5 + - @rocket.chat/models@1.5.5 + - @rocket.chat/core-typings@7.7.2 + + ### Patch Changes + +-
Updated dependencies []:
## 0.2.25 diff --git a/ee/packages/presence/package.json b/ee/packages/presence/package.json index cf5b97e4c79..f8d3a5d2641 100644 --- a/ee/packages/presence/package.json +++ b/ee/packages/presence/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/presence", - "version": "0.2.26-rc.1", + "version": "0.2.29-rc.1", "private": true, "devDependencies": { "@babel/core": "~7.26.0", diff --git a/packages/api-client/CHANGELOG.md b/packages/api-client/CHANGELOG.md index 76e544d9727..defa4fe254e 100644 --- a/packages/api-client/CHANGELOG.md +++ b/packages/api-client/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/api-client -## 0.2.26-rc.1 +## 0.2.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/rest-typings@7.8.0-rc.1
@@ -18,6 +17,37 @@ - @rocket.chat/rest-typings@7.8.0-rc.0 - @rocket.chat/core-typings@7.8.0-rc.0 + +
+ +## 0.2.28 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/rest-typings@7.7.4 +
+ +## 0.2.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 +
+ +## 0.2.26 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/core-typings@7.7.2 +
## 0.2.25 diff --git a/packages/api-client/package.json b/packages/api-client/package.json index b0ab23a8516..6f7e3881f94 100644 --- a/packages/api-client/package.json +++ b/packages/api-client/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/api-client", - "version": "0.2.26-rc.1", + "version": "0.2.29-rc.1", "devDependencies": { "@rocket.chat/jest-presets": "workspace:~", "@rocket.chat/tsconfig": "workspace:*", diff --git a/packages/apps-engine/CHANGELOG.md b/packages/apps-engine/CHANGELOG.md index 7a0865f1cd8..b4541329973 100644 --- a/packages/apps-engine/CHANGELOG.md +++ b/packages/apps-engine/CHANGELOG.md @@ -6,6 +6,12 @@ - ([#36169](https://github.com/RocketChat/Rocket.Chat/pull/36169)) Fix an issue where action buttons registered by apps would be displayed even if their apps were disabled +## 1.52.1 + +### Patch Changes + +- ([#36360](https://github.com/RocketChat/Rocket.Chat/pull/36360) by [@dionisio-bot](https://github.com/dionisio-bot)) Fixes an issue where some error objects sent to apps' method calls would only contain the message '[object Object]' + ## 1.52.0 ### Minor Changes diff --git a/packages/apps-engine/deno-runtime/lib/accessors/formatResponseErrorHandler.ts b/packages/apps-engine/deno-runtime/lib/accessors/formatResponseErrorHandler.ts new file mode 100644 index 00000000000..aa5defc7ac2 --- /dev/null +++ b/packages/apps-engine/deno-runtime/lib/accessors/formatResponseErrorHandler.ts @@ -0,0 +1,14 @@ +import { ErrorObject } from 'jsonrpc-lite'; + +// deno-lint-ignore no-explicit-any -- that is the type we get from `catch` +export const formatErrorResponse = (error: any): Error => { + if (error instanceof ErrorObject || typeof error?.error?.message === 'string') { + return new Error(error.error.message); + } + + if (error instanceof Error) { + return error; + } + + return new Error('An unknown error occurred', { cause: error }); +}; diff --git a/packages/apps-engine/deno-runtime/lib/accessors/http.ts b/packages/apps-engine/deno-runtime/lib/accessors/http.ts index 1a5e7098ef3..41f1025150f 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/http.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/http.ts @@ -4,6 +4,7 @@ import type { IRead } from '@rocket.chat/apps-engine/definition/accessors/IRead. import * as Messenger from '../messenger.ts'; import { AppObjectRegistry } from '../../AppObjectRegistry.ts'; +import { formatErrorResponse } from './formatResponseErrorHandler.ts'; type RequestMethod = 'get' | 'post' | 'put' | 'head' | 'delete' | 'patch'; @@ -70,12 +71,16 @@ export class Http implements IHttp { let { result: response } = await this.senderFn({ method: `bridges:getHttpBridge:doCall`, - params: [{ - appId: AppObjectRegistry.get('id'), - method, - url, - request, - }], + params: [ + { + appId: AppObjectRegistry.get('id'), + method, + url, + request, + }, + ], + }).catch((error) => { + throw formatErrorResponse(error); }); for (const handler of this.httpExtender.getPreResponseHandlers()) { diff --git a/packages/apps-engine/deno-runtime/lib/accessors/mod.ts b/packages/apps-engine/deno-runtime/lib/accessors/mod.ts index 4479a2fb6a1..01a42b31e67 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/mod.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/mod.ts @@ -22,6 +22,7 @@ import { ModifyCreator } from './modify/ModifyCreator.ts'; import { ModifyUpdater } from './modify/ModifyUpdater.ts'; import { ModifyExtender } from './modify/ModifyExtender.ts'; import { Notifier } from './notifier.ts'; +import { formatErrorResponse } from './formatResponseErrorHandler.ts'; const httpMethods = ['get', 'post', 'put', 'delete', 'head', 'options', 'patch'] as const; @@ -53,26 +54,28 @@ export class AppAccessors { new Proxy( { __kind: `accessor:${namespace}` }, { - get: (_target: unknown, prop: string) => (...params: unknown[]) => { - // We don't want to send a request for this prop - if (prop === 'toJSON') { - return {}; - } - - // If the prop is inteded to be overriden by the caller - if (prop in overrides) { - return overrides[prop].apply(undefined, params); - } - - return senderFn({ - method: `accessor:${namespace}:${prop}`, - params, - }) - .then((response) => response.result) - .catch((err) => { - throw new Error(err.error); - }); - }, + get: + (_target: unknown, prop: string) => + (...params: unknown[]) => { + // We don't want to send a request for this prop + if (prop === 'toJSON') { + return {}; + } + + // If the prop is inteded to be overriden by the caller + if (prop in overrides) { + return overrides[prop].apply(undefined, params); + } + + return senderFn({ + method: `accessor:${namespace}:${prop}`, + params, + }) + .then((response) => response.result) + .catch((err) => { + throw formatErrorResponse(err); + }); + }, }, ) as T; diff --git a/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyCreator.ts b/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyCreator.ts index 38740aef179..d30e22c1be1 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyCreator.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyCreator.ts @@ -28,6 +28,7 @@ import { UserBuilder } from '../builders/UserBuilder.ts'; import { AppVideoConference, VideoConferenceBuilder } from '../builders/VideoConferenceBuilder.ts'; import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; import { require } from '../../../lib/require.ts'; +import { formatErrorResponse } from '../formatResponseErrorHandler.ts'; const { UIHelper } = require('@rocket.chat/apps-engine/server/misc/UIHelper.js') as { UIHelper: typeof _UIHelper }; const { RoomType } = require('@rocket.chat/apps-engine/definition/rooms/RoomType.js') as { RoomType: typeof _RoomType }; @@ -60,13 +61,7 @@ export class ModifyCreator implements IModifyCreator { }) .then((response) => response.result) .catch((err) => { - if (err instanceof Error) { - throw err; - } - if (err?.error?.message) { - throw new Error(err.error.message); - } - throw new Error(err.error); + throw formatErrorResponse(err); }); }, }, @@ -77,21 +72,19 @@ export class ModifyCreator implements IModifyCreator { return new Proxy( { __kind: 'getUploadCreator' }, { - get: (_target: unknown, prop: string) => (...params: unknown[]) => - prop === 'toJSON' ? {} : this.senderFn({ - method: `accessor:getModifier:getCreator:getUploadCreator:${prop}`, - params, - }) - .then((response) => response.result) - .catch((err) => { - if (err instanceof Error) { - throw err; - } - if (err?.error?.message) { - throw new Error(err.error.message); - } - throw new Error(err.error); - }), + get: + (_target: unknown, prop: string) => + (...params: unknown[]) => + prop === 'toJSON' + ? {} + : this.senderFn({ + method: `accessor:getModifier:getCreator:getUploadCreator:${prop}`, + params, + }) + .then((response) => response.result) + .catch((err) => { + throw formatErrorResponse(err); + }), }, ) as IUploadCreator; } @@ -100,21 +93,19 @@ export class ModifyCreator implements IModifyCreator { return new Proxy( { __kind: 'getEmailCreator' }, { - get: (_target: unknown, prop: string) => (...params: unknown[]) => - prop === 'toJSON' ? {} : this.senderFn({ - method: `accessor:getModifier:getCreator:getEmailCreator:${prop}`, - params, - }) - .then((response) => response.result) - .catch((err) => { - if (err instanceof Error) { - throw err; - } - if (err?.error?.message) { - throw new Error(err.error.message); - } - throw new Error(err.error); - }), + get: + (_target: unknown, prop: string) => + (...params: unknown[]) => + prop === 'toJSON' + ? {} + : this.senderFn({ + method: `accessor:getModifier:getCreator:getEmailCreator:${prop}`, + params, + }) + .then((response) => response.result) + .catch((err) => { + throw formatErrorResponse(err); + }), }, ); } @@ -123,21 +114,19 @@ export class ModifyCreator implements IModifyCreator { return new Proxy( { __kind: 'getContactCreator' }, { - get: (_target: unknown, prop: string) => (...params: unknown[]) => - prop === 'toJSON' ? {} : this.senderFn({ - method: `accessor:getModifier:getCreator:getContactCreator:${prop}`, - params, - }) - .then((response) => response.result) - .catch((err) => { - if (err instanceof Error) { - throw err; - } - if (err?.error?.message) { - throw new Error(err.error.message); - } - throw new Error(err.error); - }), + get: + (_target: unknown, prop: string) => + (...params: unknown[]) => + prop === 'toJSON' + ? {} + : this.senderFn({ + method: `accessor:getModifier:getCreator:getContactCreator:${prop}`, + params, + }) + .then((response) => response.result) + .catch((err) => { + throw formatErrorResponse(err); + }), }, ); } @@ -236,6 +225,8 @@ export class ModifyCreator implements IModifyCreator { const response = await this.senderFn({ method: 'bridges:getUserBridge:doGetAppUser', params: ['APP_ID'], + }).catch((err) => { + throw formatErrorResponse(err); }); const appUser = response.result; @@ -255,6 +246,8 @@ export class ModifyCreator implements IModifyCreator { const response = await this.senderFn({ method: 'bridges:getMessageBridge:doCreate', params: [result, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); return String(response.result); @@ -277,6 +270,8 @@ export class ModifyCreator implements IModifyCreator { const response = await this.senderFn({ method: 'bridges:getLivechatBridge:doCreateMessage', params: [result, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); return String(response.result); @@ -311,6 +306,8 @@ export class ModifyCreator implements IModifyCreator { const response = await this.senderFn({ method: 'bridges:getRoomBridge:doCreate', params: [result, builder.getMembersToBeAddedUsernames(), AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); return String(response.result); @@ -339,6 +336,8 @@ export class ModifyCreator implements IModifyCreator { const response = await this.senderFn({ method: 'bridges:getRoomBridge:doCreateDiscussion', params: [room, builder.getParentMessage(), builder.getReply(), builder.getMembersToBeAddedUsernames(), AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); return String(response.result); @@ -362,6 +361,8 @@ export class ModifyCreator implements IModifyCreator { const response = await this.senderFn({ method: 'bridges:getVideoConferenceBridge:doCreate', params: [videoConference, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); return String(response.result); @@ -373,6 +374,8 @@ export class ModifyCreator implements IModifyCreator { const response = await this.senderFn({ method: 'bridges:getUserBridge:doCreate', params: [user, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); return String(response.result); diff --git a/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyExtender.ts b/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyExtender.ts index d9e9678e376..5f8e0c53ec0 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyExtender.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyExtender.ts @@ -14,6 +14,7 @@ import { MessageExtender } from '../extenders/MessageExtender.ts'; import { RoomExtender } from '../extenders/RoomExtender.ts'; import { VideoConferenceExtender } from '../extenders/VideoConferenceExtend.ts'; import { require } from '../../../lib/require.ts'; +import { formatErrorResponse } from '../formatResponseErrorHandler.ts'; const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { RocketChatAssociationModel: typeof _RocketChatAssociationModel; @@ -26,6 +27,8 @@ export class ModifyExtender implements IModifyExtender { const result = await this.senderFn({ method: 'bridges:getMessageBridge:doGetById', params: [messageId, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); const msg = result.result as IMessage; @@ -40,6 +43,8 @@ export class ModifyExtender implements IModifyExtender { const result = await this.senderFn({ method: 'bridges:getRoomBridge:doGetById', params: [roomId, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); const room = result.result as IRoom; @@ -53,6 +58,8 @@ export class ModifyExtender implements IModifyExtender { const result = await this.senderFn({ method: 'bridges:getVideoConferenceBridge:doGetById', params: [id, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); const call = result.result as VideoConference; @@ -68,6 +75,8 @@ export class ModifyExtender implements IModifyExtender { await this.senderFn({ method: 'bridges:getMessageBridge:doUpdate', params: [(extender as IMessageExtender).getMessage(), AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); break; case RocketChatAssociationModel.ROOM: @@ -78,12 +87,16 @@ export class ModifyExtender implements IModifyExtender { (extender as IRoomExtender).getUsernamesOfMembersBeingAdded(), AppObjectRegistry.get('id'), ], + }).catch((err) => { + throw formatErrorResponse(err); }); break; case RocketChatAssociationModel.VIDEO_CONFERENCE: await this.senderFn({ method: 'bridges:getVideoConferenceBridge:doUpdate', params: [(extender as IVideoConferenceExtender).getVideoConference(), AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); break; default: diff --git a/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyUpdater.ts b/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyUpdater.ts index 6664f86092f..dc9178be1f5 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyUpdater.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/modify/ModifyUpdater.ts @@ -18,6 +18,7 @@ import { RoomBuilder } from '../builders/RoomBuilder.ts'; import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; import { require } from '../../../lib/require.ts'; +import { formatErrorResponse } from '../formatResponseErrorHandler.ts'; const { UIHelper } = require('@rocket.chat/apps-engine/server/misc/UIHelper.js') as { UIHelper: typeof _UIHelper }; const { RoomType } = require('@rocket.chat/apps-engine/definition/rooms/RoomType.js') as { RoomType: typeof _RoomType }; @@ -32,15 +33,19 @@ export class ModifyUpdater implements IModifyUpdater { return new Proxy( { __kind: 'getLivechatUpdater' }, { - get: (_target: unknown, prop: string) => (...params: unknown[]) => - prop === 'toJSON' ? {} : this.senderFn({ - method: `accessor:getModifier:getUpdater:getLivechatUpdater:${prop}`, - params, - }) - .then((response) => response.result) - .catch((err) => { - throw new Error(err.error); - }), + get: + (_target: unknown, prop: string) => + (...params: unknown[]) => + prop === 'toJSON' + ? {} + : this.senderFn({ + method: `accessor:getModifier:getUpdater:getLivechatUpdater:${prop}`, + params, + }) + .then((response) => response.result) + .catch((err) => { + throw formatErrorResponse(err); + }), }, ) as ILivechatUpdater; } @@ -49,15 +54,19 @@ export class ModifyUpdater implements IModifyUpdater { return new Proxy( { __kind: 'getUserUpdater' }, { - get: (_target: unknown, prop: string) => (...params: unknown[]) => - prop === 'toJSON' ? {} : this.senderFn({ - method: `accessor:getModifier:getUpdater:getUserUpdater:${prop}`, - params, - }) - .then((response) => response.result) - .catch((err) => { - throw new Error(err.error); - }), + get: + (_target: unknown, prop: string) => + (...params: unknown[]) => + prop === 'toJSON' + ? {} + : this.senderFn({ + method: `accessor:getModifier:getUpdater:getUserUpdater:${prop}`, + params, + }) + .then((response) => response.result) + .catch((err) => { + throw formatErrorResponse(err); + }), }, ) as IUserUpdater; } @@ -66,6 +75,8 @@ export class ModifyUpdater implements IModifyUpdater { const response = await this.senderFn({ method: 'bridges:getMessageBridge:doGetById', params: [messageId, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); const builder = new MessageBuilder(response.result as IMessage); @@ -79,6 +90,8 @@ export class ModifyUpdater implements IModifyUpdater { const response = await this.senderFn({ method: 'bridges:getRoomBridge:doGetById', params: [roomId, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); return new RoomBuilder(response.result as IRoom); @@ -115,6 +128,8 @@ export class ModifyUpdater implements IModifyUpdater { await this.senderFn({ method: 'bridges:getMessageBridge:doUpdate', params: [changes, AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); } @@ -148,6 +163,8 @@ export class ModifyUpdater implements IModifyUpdater { await this.senderFn({ method: 'bridges:getRoomBridge:doUpdate', params: [changes, builder.getMembersToBeAddedUsernames(), AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); }); } } diff --git a/packages/apps-engine/deno-runtime/lib/accessors/notifier.ts b/packages/apps-engine/deno-runtime/lib/accessors/notifier.ts index 81868c2a85b..1a85cc12b57 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/notifier.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/notifier.ts @@ -8,6 +8,7 @@ import { MessageBuilder } from './builders/MessageBuilder.ts'; import { AppObjectRegistry } from '../../AppObjectRegistry.ts'; import * as Messenger from '../messenger.ts'; import { require } from '../require.ts'; +import { formatErrorResponse } from './formatResponseErrorHandler.ts'; const { TypingScope } = require('@rocket.chat/apps-engine/definition/accessors/INotifier.js') as { TypingScope: typeof _TypingScope; @@ -65,11 +66,19 @@ export class Notifier implements INotifier { await this.senderFn({ method: `bridges:getMessageBridge:${method}`, params, + }).catch((err) => { + throw formatErrorResponse(err); }); } private async getAppUser(): Promise { - const response = await this.senderFn({ method: 'bridges:getUserBridge:doGetAppUser', params: [AppObjectRegistry.get('id')] }); + const response = await this.senderFn({ + method: 'bridges:getUserBridge:doGetAppUser', + params: [AppObjectRegistry.get('id')], + }).catch((err) => { + throw formatErrorResponse(err); + }); + return response.result; } } diff --git a/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyCreator.test.ts b/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyCreator.test.ts index 43bb7d413dc..d88690a77db 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyCreator.test.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyCreator.test.ts @@ -151,7 +151,7 @@ describe('ModifyCreator', () => { name: 'Visitor Name', }), Error, - '[object Object]', + 'An unknown error occurred', ); }); @@ -176,7 +176,7 @@ describe('ModifyCreator', () => { const modifyCreator = new ModifyCreator(failingSenderFn); const uploadCreator = modifyCreator.getUploadCreator(); - await assertRejects(() => uploadCreator.uploadBuffer(new Uint8Array([1, 2, 3]), 'image/png'), Error, '[object Object]'); + await assertRejects(() => uploadCreator.uploadBuffer(new Uint8Array([1, 2, 3]), 'image/png'), Error, 'An unknown error occurred'); }); it('throws an error when a proxy method of getEmailCreator fails', async () => { @@ -229,7 +229,7 @@ describe('ModifyCreator', () => { text: 'This is a test email.', }), Error, - '[object Object]', + 'An unknown error occurred', ); }); @@ -254,6 +254,6 @@ describe('ModifyCreator', () => { const modifyCreator = new ModifyCreator(failingSenderFn); const contactCreator = modifyCreator.getContactCreator(); - await assertRejects(() => contactCreator.addContactEmail('test-contact-id', 'test@example.com'), Error, '[object Object]'); + await assertRejects(() => contactCreator.addContactEmail('test-contact-id', 'test@example.com'), Error, 'An unknown error occurred'); }); }); diff --git a/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyExtender.test.ts b/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyExtender.test.ts index 66e14a1680b..de6fd4a7053 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyExtender.test.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyExtender.test.ts @@ -1,9 +1,11 @@ // deno-lint-ignore-file no-explicit-any import { afterAll, beforeEach, describe, it } from 'https://deno.land/std@0.203.0/testing/bdd.ts'; -import { assertSpyCall, spy } from 'https://deno.land/std@0.203.0/testing/mock.ts'; +import { assertSpyCall, spy, stub } from 'https://deno.land/std@0.203.0/testing/mock.ts'; +import { assertRejects } from 'https://deno.land/std@0.203.0/assert/mod.ts'; import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; import { ModifyExtender } from '../modify/ModifyExtender.ts'; +import jsonrpc from 'jsonrpc-lite'; describe('ModifyExtender', () => { let extender: ModifyExtender; @@ -117,4 +119,126 @@ describe('ModifyExtender', () => { _spy.restore(); }); + + describe('Error Handling', () => { + describe('extendMessage', () => { + it('throws an instance of Error when senderFn throws an error', async () => { + const _stub = stub(extender, 'senderFn' as keyof ModifyExtender, () => Promise.reject(new Error('unit-test-error')) as any); + + await assertRejects(() => extender.extendMessage('message-id', { _id: 'user-id' } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws a jsonrpc error', async () => { + const _stub = stub( + extender, + 'senderFn' as keyof ModifyExtender, + () => Promise.reject(jsonrpc.error('unit-test-error', new jsonrpc.JsonRpcError('unit-test-error', 1000))) as any, + ); + + await assertRejects(() => extender.extendMessage('message-id', { _id: 'user-id' } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws an unknown value', async () => { + const _stub = stub(extender, 'senderFn' as keyof ModifyExtender, () => Promise.reject({}) as any); + + await assertRejects(() => extender.extendMessage('message-id', { _id: 'user-id' } as any), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + }); + + describe('extendRoom', () => { + it('throws an instance of Error when senderFn throws an error', async () => { + const _stub = stub(extender, 'senderFn' as keyof ModifyExtender, () => Promise.reject(new Error('unit-test-error')) as any); + + await assertRejects(() => extender.extendRoom('room-id', { _id: 'user-id' } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws a jsonrpc error', async () => { + const _stub = stub( + extender, + 'senderFn' as keyof ModifyExtender, + () => Promise.reject(jsonrpc.error('unit-test-error', new jsonrpc.JsonRpcError('unit-test-error', 1000))) as any, + ); + + await assertRejects(() => extender.extendRoom('room-id', { _id: 'user-id' } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws an unknown value', async () => { + const _stub = stub(extender, 'senderFn' as keyof ModifyExtender, () => Promise.reject({}) as any); + + await assertRejects(() => extender.extendRoom('room-id', { _id: 'user-id' } as any), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + }); + + describe('extendVideoConference', () => { + it('throws an instance of Error when senderFn throws an error', async () => { + const _stub = stub(extender, 'senderFn' as keyof ModifyExtender, () => Promise.reject(new Error('unit-test-error')) as any); + + await assertRejects(() => extender.extendVideoConference('video-conference-id'), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws a jsonrpc error', async () => { + const _stub = stub( + extender, + 'senderFn' as keyof ModifyExtender, + () => Promise.reject(jsonrpc.error('unit-test-error', new jsonrpc.JsonRpcError('unit-test-error', 1000))) as any, + ); + + await assertRejects(() => extender.extendVideoConference('video-conference-id'), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws an unknown value', async () => { + const _stub = stub(extender, 'senderFn' as keyof ModifyExtender, () => Promise.reject({}) as any); + + await assertRejects(() => extender.extendVideoConference('video-conference-id'), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + }); + + describe('finish', () => { + it('throws an instance of Error when senderFn throws an error', async () => { + const _stub = stub(extender, 'senderFn' as keyof ModifyExtender, () => Promise.reject(new Error('unit-test-error')) as any); + + await assertRejects(() => extender.finish({ kind: 'message', getMessage: () => ({}) } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws a jsonrpc error', async () => { + const _stub = stub( + extender, + 'senderFn' as keyof ModifyExtender, + () => Promise.reject(jsonrpc.error('unit-test-error', new jsonrpc.JsonRpcError('unit-test-error', 1000))) as any, + ); + + await assertRejects(() => extender.finish({ kind: 'message', getMessage: () => ({}) } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws an unknown value', async () => { + const _stub = stub(extender, 'senderFn' as keyof ModifyExtender, () => Promise.reject({}) as any); + + await assertRejects(() => extender.finish({ kind: 'message', getMessage: () => ({}) } as any), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + }); + }); }); diff --git a/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyUpdater.test.ts b/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyUpdater.test.ts index a93656a84c8..487c1072502 100644 --- a/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyUpdater.test.ts +++ b/packages/apps-engine/deno-runtime/lib/accessors/tests/ModifyUpdater.test.ts @@ -1,11 +1,12 @@ // deno-lint-ignore-file no-explicit-any import { afterAll, beforeEach, describe, it } from 'https://deno.land/std@0.203.0/testing/bdd.ts'; -import { assertSpyCall, spy } from 'https://deno.land/std@0.203.0/testing/mock.ts'; -import { assertEquals } from 'https://deno.land/std@0.203.0/assert/mod.ts'; +import { assertSpyCall, spy, stub } from 'https://deno.land/std@0.203.0/testing/mock.ts'; +import { assertEquals, assertRejects } from 'https://deno.land/std@0.203.0/assert/mod.ts'; import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; import { ModifyUpdater } from '../modify/ModifyUpdater.ts'; import { RoomBuilder } from '../builders/RoomBuilder.ts'; +import jsonrpc from 'jsonrpc-lite'; describe('ModifyUpdater', () => { let modifyUpdater: ModifyUpdater; @@ -73,7 +74,7 @@ describe('ModifyUpdater', () => { it('correctly formats requests for the update room flow', async () => { const _spy = spy(modifyUpdater, 'senderFn' as keyof ModifyUpdater); - const roomBuilder = await modifyUpdater.room('123', { id: '456' } as any) as RoomBuilder; + const roomBuilder = (await modifyUpdater.room('123', { id: '456' } as any)) as RoomBuilder; assertSpyCall(_spy, 0, { args: [ @@ -110,7 +111,7 @@ describe('ModifyUpdater', () => { }); it('correctly formats requests to UserUpdater methods', async () => { - const result = await modifyUpdater.getUserUpdater().updateStatusText({ id: '123' } as any, 'Hello World') as any; + const result = (await modifyUpdater.getUserUpdater().updateStatusText({ id: '123' } as any, 'Hello World')) as any; assertEquals(result, { method: 'accessor:getModifier:getUpdater:getUserUpdater:updateStatusText', @@ -119,11 +120,115 @@ describe('ModifyUpdater', () => { }); it('correctly formats requests to LivechatUpdater methods', async () => { - const result = await modifyUpdater.getLivechatUpdater().closeRoom({ id: '123' } as any, 'close it!') as any; + const result = (await modifyUpdater.getLivechatUpdater().closeRoom({ id: '123' } as any, 'close it!')) as any; assertEquals(result, { method: 'accessor:getModifier:getUpdater:getLivechatUpdater:closeRoom', params: [{ id: '123' }, 'close it!'], }); }); + + describe('Error Handling', () => { + describe('message', () => { + it('throws an instance of Error when senderFn throws an error', async () => { + const _stub = stub(modifyUpdater, 'senderFn' as keyof ModifyUpdater, () => Promise.reject(new Error('unit-test-error')) as any); + + await assertRejects(() => modifyUpdater.message('message-id', { _id: 'user-id' } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws a jsonrpc error', async () => { + const _stub = stub( + modifyUpdater, + 'senderFn' as keyof ModifyUpdater, + () => Promise.reject(jsonrpc.error('unit-test-error', new jsonrpc.JsonRpcError('unit-test-error', 1000))) as any, + ); + + await assertRejects(() => modifyUpdater.message('message-id', { _id: 'user-id' } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws an unknown value', async () => { + const _stub = stub(modifyUpdater, 'senderFn' as keyof ModifyUpdater, () => Promise.reject({}) as any); + + await assertRejects(() => modifyUpdater.message('message-id', { _id: 'user-id' } as any), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + }); + + describe('room', () => { + it('throws an instance of Error when senderFn throws an error', async () => { + const _stub = stub(modifyUpdater, 'senderFn' as keyof ModifyUpdater, () => Promise.reject(new Error('unit-test-error')) as any); + + await assertRejects(() => modifyUpdater.room('room-id', { _id: 'user-id' } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws a jsonrpc error', async () => { + const _stub = stub( + modifyUpdater, + 'senderFn' as keyof ModifyUpdater, + () => Promise.reject(jsonrpc.error('unit-test-error', new jsonrpc.JsonRpcError('unit-test-error', 1000))) as any, + ); + + await assertRejects(() => modifyUpdater.room('room-id', { _id: 'user-id' } as any), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws an unknown value', async () => { + const _stub = stub(modifyUpdater, 'senderFn' as keyof ModifyUpdater, () => Promise.reject({}) as any); + + await assertRejects(() => modifyUpdater.room('room-id', { _id: 'user-id' } as any), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + }); + + describe('finish', () => { + const messageUpdater = { + kind: 'message', + getMessage: () => ({ + id: 'message-id', + sender: { id: 'sender-id' }, + }), + getChanges: () => ({ + id: 'message-id', + sender: { id: 'sender-id' }, + }), + } as any; + + it('throws an instance of Error when senderFn throws an error', async () => { + const _stub = stub(modifyUpdater, 'senderFn' as keyof ModifyUpdater, () => Promise.reject(new Error('unit-test-error')) as any); + + await assertRejects(() => modifyUpdater.finish(messageUpdater), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws a jsonrpc error', async () => { + const _stub = stub( + modifyUpdater, + 'senderFn' as keyof ModifyUpdater, + () => Promise.reject(jsonrpc.error('unit-test-error', new jsonrpc.JsonRpcError('unit-test-error', 1000))) as any, + ); + + await assertRejects(() => modifyUpdater.finish(messageUpdater), Error, 'unit-test-error'); + + _stub.restore(); + }); + + it('throws an instance of Error when senderFn throws an unknown value', async () => { + const _stub = stub(modifyUpdater, 'senderFn' as keyof ModifyUpdater, () => Promise.reject({}) as any); + + await assertRejects(() => modifyUpdater.finish(messageUpdater), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + }); + }); }); diff --git a/packages/apps-engine/deno-runtime/lib/accessors/tests/formatResponseErrorHandler.test.ts b/packages/apps-engine/deno-runtime/lib/accessors/tests/formatResponseErrorHandler.test.ts new file mode 100644 index 00000000000..3fe5604740a --- /dev/null +++ b/packages/apps-engine/deno-runtime/lib/accessors/tests/formatResponseErrorHandler.test.ts @@ -0,0 +1,216 @@ +// deno-lint-ignore-file no-explicit-any +import { assertEquals, assertInstanceOf, assertStrictEquals } from 'https://deno.land/std@0.203.0/assert/mod.ts'; +import { describe, it } from 'https://deno.land/std@0.203.0/testing/bdd.ts'; +import * as jsonrpc from 'jsonrpc-lite'; + +import { formatErrorResponse } from '../formatResponseErrorHandler.ts'; + +describe('formatErrorResponse', () => { + describe('JSON-RPC ErrorObject handling', () => { + it('formats ErrorObject instances correctly', () => { + const errorObject = jsonrpc.error('test-id', new jsonrpc.JsonRpcError('Test error message', 1000)); + const result = formatErrorResponse(errorObject); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'Test error message'); + }); + + it('formats objects with error.message structure', () => { + const errorLikeObject = { + error: { + message: 'Custom error message', + code: 404, + }, + }; + const result = formatErrorResponse(errorLikeObject); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'Custom error message'); + }); + + it('handles nested error objects with complex structure', () => { + const complexError = { + error: { + message: 'Database connection failed', + details: { + host: 'localhost', + port: 5432, + }, + }, + id: 'req-123', + }; + const result = formatErrorResponse(complexError); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'Database connection failed'); + }); + + it('handles error objects with empty message', () => { + const emptyMessageError = { + error: { + message: '', + code: 500, + }, + }; + const result = formatErrorResponse(emptyMessageError); + + assertInstanceOf(result, Error); + assertEquals(result.message, ''); + }); + }); + + describe('Error instance passthrough', () => { + it('returns existing Error instances unchanged', () => { + const originalError = new Error('Original error message'); + const result = formatErrorResponse(originalError); + + assertStrictEquals(result, originalError); + assertEquals(result.message, 'Original error message'); + }); + + it('returns custom Error subclasses unchanged', () => { + class CustomError extends Error { + constructor(message: string, public code: number) { + super(message); + this.name = 'CustomError'; + } + } + + const customError = new CustomError('Custom error', 404); + const result = formatErrorResponse(customError); + + assertStrictEquals(result, customError); + assertEquals(result.message, 'Custom error'); + assertEquals((result as CustomError).code, 404); + }); + + it('handles Error instances with additional properties', () => { + const errorWithProps = new Error('Error with props') as any; + errorWithProps.statusCode = 500; + errorWithProps.details = { reason: 'timeout' }; + + const result = formatErrorResponse(errorWithProps); + + assertStrictEquals(result, errorWithProps); + assertEquals(result.message, 'Error with props'); + assertEquals((result as any).statusCode, 500); + }); + }); + + describe('Unknown error handling', () => { + it('wraps string errors with default message and cause', () => { + const stringError = 'Simple string error'; + const result = formatErrorResponse(stringError); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, stringError); + }); + + it('wraps number errors with default message and cause', () => { + const numberError = 404; + const result = formatErrorResponse(numberError); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, numberError); + }); + + it('wraps boolean errors with default message and cause', () => { + const booleanError = false; + const result = formatErrorResponse(booleanError); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, booleanError); + }); + + it('wraps null with default message and cause', () => { + const result = formatErrorResponse(null); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, null); + }); + + it('wraps undefined with default message and cause', () => { + const result = formatErrorResponse(undefined); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, undefined); + }); + + it('wraps arrays with default message and cause', () => { + const arrayError = ['error', 'details']; + const result = formatErrorResponse(arrayError); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, arrayError); + }); + + it('wraps functions with default message and cause', () => { + const functionError = () => 'error'; + const result = formatErrorResponse(functionError); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, functionError); + }); + + it('wraps plain objects without error.message with default message and cause', () => { + const plainObject = { + status: 'failed', + reason: 'timeout', + data: { id: 123 }, + }; + const result = formatErrorResponse(plainObject); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, plainObject); + }); + + it('wraps objects with error property but no message with default message and cause', () => { + const errorObjectNoMessage = { + error: { + code: 500, + details: 'Internal server error', + }, + }; + const result = formatErrorResponse(errorObjectNoMessage); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + assertEquals(result.cause, errorObjectNoMessage); + }); + }); + + it('ensures all returned values are proper Error instances', () => { + const testCases = [ + 'string error', + 123, + null, + undefined, + { error: { message: 'test' } }, + new Error('test'), + { plain: 'object' }, + ]; + + for (const testCase of testCases) { + const result = formatErrorResponse(testCase); + assertInstanceOf(result, Error, `Failed for input: ${JSON.stringify(testCase)}`); + } + }); + + it('prevents "[object Object]" error messages for plain objects', () => { + const plainObject = { status: 'error', code: 500 }; + const result = formatErrorResponse(plainObject); + + assertInstanceOf(result, Error); + assertEquals(result.message, 'An unknown error occurred'); + // Ensure the message is not "[object Object]" + assertEquals(result.message !== '[object Object]', true); + }); +}); diff --git a/packages/apps-engine/deno-runtime/lib/accessors/tests/http.test.ts b/packages/apps-engine/deno-runtime/lib/accessors/tests/http.test.ts new file mode 100644 index 00000000000..ae937f05dc4 --- /dev/null +++ b/packages/apps-engine/deno-runtime/lib/accessors/tests/http.test.ts @@ -0,0 +1,164 @@ +// deno-lint-ignore-file no-explicit-any +import { assertRejects } from 'https://deno.land/std@0.203.0/assert/mod.ts'; +import { beforeEach, describe, it, afterAll } from 'https://deno.land/std@0.203.0/testing/bdd.ts'; + +import { Http } from '../http.ts'; +import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; +import { stub } from 'https://deno.land/std@0.203.0/testing/mock.ts'; + +describe('Http accessor error handling integration', () => { + let http: Http; + + beforeEach(() => { + AppObjectRegistry.clear(); + AppObjectRegistry.set('id', 'test-app-id'); + + const mockHttpExtend = { + getDefaultHeaders: () => new Map(), + getDefaultParams: () => new Map(), + getPreRequestHandlers: () => [], + getPreResponseHandlers: () => [], + }; + + const mockRead = {}; + const mockPersistence = {}; + + http = new Http(mockRead as any, mockPersistence as any, mockHttpExtend as any, () => Promise.resolve({}) as any); + }); + + afterAll(() => { + AppObjectRegistry.clear(); + }); + + describe('HTTP method error handling', () => { + it('formats JSON-RPC errors correctly for GET requests', async () => { + const _stub = stub(http, 'senderFn' as keyof Http, () => + Promise.reject({ + error: { + message: 'HTTP GET request failed', + code: 404, + }, + }), + ); + + await assertRejects(() => http.get('https://api.example.com/data'), Error, 'HTTP GET request failed'); + + _stub.restore(); + }); + + it('formats JSON-RPC errors correctly for POST requests', async () => { + const _stub = stub(http, 'senderFn' as keyof Http, () => + Promise.reject({ + error: { + message: 'HTTP POST request validation failed', + code: 400, + }, + }), + ); + + await assertRejects( + () => http.post('https://api.example.com/create', { data: { name: 'test' } }), + Error, + 'HTTP POST request validation failed', + ); + + _stub.restore(); + }); + + it('formats JSON-RPC errors correctly for PUT requests', async () => { + const _stub = stub(http, 'senderFn' as keyof Http, () => + Promise.reject({ + error: { + message: 'HTTP PUT request unauthorized', + code: 401, + }, + }), + ); + + await assertRejects( + () => http.put('https://api.example.com/update/123', { data: { name: 'updated' } }), + Error, + 'HTTP PUT request unauthorized', + ); + + _stub.restore(); + }); + + it('formats JSON-RPC errors correctly for DELETE requests', async () => { + const _stub = stub(http, 'senderFn' as keyof Http, () => + Promise.reject({ + error: { + message: 'HTTP DELETE request forbidden', + code: 403, + }, + }), + ); + + await assertRejects(() => http.del('https://api.example.com/delete/123'), Error, 'HTTP DELETE request forbidden'); + + _stub.restore(); + }); + + it('formats JSON-RPC errors correctly for PATCH requests', async () => { + const _stub = stub(http, 'senderFn' as keyof Http, () => + Promise.reject({ + error: { + message: 'HTTP PATCH request conflict', + code: 409, + }, + }), + ); + + await assertRejects( + () => http.patch('https://api.example.com/patch/123', { data: { status: 'active' } }), + Error, + 'HTTP PATCH request conflict', + ); + + _stub.restore(); + }); + }); + + describe('Error instance passthrough', () => { + it('passes through existing Error instances unchanged for HTTP requests', async () => { + const originalError = new Error('Network timeout error'); + const _stub = stub(http, 'senderFn' as keyof Http, () => Promise.reject(originalError)); + + await assertRejects(() => http.get('https://api.example.com/data'), Error, 'Network timeout error'); + + _stub.restore(); + }); + }); + + describe('Unknown error handling', () => { + it('wraps unknown object errors with default message for HTTP requests', async () => { + const unknownError = { + status: 'failed', + details: 'Something went wrong', + timestamp: Date.now(), + }; + const _stub = stub(http, 'senderFn' as keyof Http, () => Promise.reject(unknownError)); + + await assertRejects(() => http.get('https://api.example.com/data'), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + + it('wraps string errors with default message for HTTP requests', async () => { + const stringError = 'Connection refused'; + const _stub = stub(http, 'senderFn' as keyof Http, () => Promise.reject(stringError)); + + await assertRejects(() => http.get('https://api.example.com/data'), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + + it('wraps null/undefined errors with default message for HTTP requests', async () => { + const _stub = stub(http, 'senderFn' as keyof Http, () => Promise.reject(null)); + + await assertRejects(() => http.get('https://api.example.com/data'), Error, 'An unknown error occurred'); + + _stub.restore(); + }); + }); +}); diff --git a/packages/apps-engine/deno-runtime/lib/roomFactory.ts b/packages/apps-engine/deno-runtime/lib/roomFactory.ts index 902eba92cfc..624c150141b 100644 --- a/packages/apps-engine/deno-runtime/lib/roomFactory.ts +++ b/packages/apps-engine/deno-runtime/lib/roomFactory.ts @@ -12,9 +12,11 @@ const getMockAppManager = (senderFn: AppAccessors['senderFn']) => ({ return senderFn({ method: 'bridges:getInternalBridge:doGetUsernamesOfRoomById', params: [roomId], - }).then((result) => result.result).catch((err) => { - throw new JsonRpcError(`Error getting usernames of room: ${err}`, -32000); - }); + }) + .then((result) => result.result) + .catch((err) => { + throw new JsonRpcError(`Error getting usernames of room: ${err}`, -32000); + }); }, }), }), diff --git a/packages/apps/CHANGELOG.md b/packages/apps/CHANGELOG.md index a1b7e0e69ee..e78779ec269 100644 --- a/packages/apps/CHANGELOG.md +++ b/packages/apps/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/apps -## 0.5.5-rc.1 +## 0.5.8-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/model-typings@1.6.5-rc.1
@@ -19,8 +18,38 @@ - @rocket.chat/apps-engine@1.53.0-rc.0 - @rocket.chat/model-typings@1.6.5-rc.0 - @rocket.chat/core-typings@7.8.0-rc.0 + + +## 0.5.7 + +### Patch Changes + +-
Updated dependencies [46662d78192b438914b2aedb974faa2367225fa5]: + + - @rocket.chat/apps-engine@1.52.1 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/model-typings@1.6.7 +
+ +## 0.5.6 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/model-typings@1.6.6
+## 0.5.5 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5 +
+ ## 0.5.4 ### Patch Changes diff --git a/packages/apps/package.json b/packages/apps/package.json index d9330399a70..73ae6d90036 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/apps", - "version": "0.5.5-rc.1", + "version": "0.5.8-rc.1", "private": true, "devDependencies": { "@rocket.chat/tsconfig": "workspace:*", diff --git a/packages/core-services/CHANGELOG.md b/packages/core-services/CHANGELOG.md index 9d0ed7f2fc2..06c31d55a3d 100644 --- a/packages/core-services/CHANGELOG.md +++ b/packages/core-services/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/core-services -## 0.9.5-rc.1 +## 0.9.8-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/rest-typings@7.8.0-rc.1 - @rocket.chat/models@1.5.5-rc.1 @@ -22,6 +21,38 @@ - @rocket.chat/core-typings@7.8.0-rc.0
+## 0.9.7 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/models@1.5.7 +
+ +## 0.9.6 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/models@1.5.6 +
+ +## 0.9.5 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/models@1.5.5 + - @rocket.chat/core-typings@7.7.2 +
+ ## 0.9.4 ### Patch Changes diff --git a/packages/core-services/package.json b/packages/core-services/package.json index 6b189c2c3e8..8ac026ab595 100644 --- a/packages/core-services/package.json +++ b/packages/core-services/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/core-services", - "version": "0.9.5-rc.1", + "version": "0.9.8-rc.1", "private": true, "devDependencies": { "@babel/core": "~7.26.0", diff --git a/packages/core-typings/CHANGELOG.md b/packages/core-typings/CHANGELOG.md index 2de324a26fa..bc90cdaf8e1 100644 --- a/packages/core-typings/CHANGELOG.md +++ b/packages/core-typings/CHANGELOG.md @@ -10,6 +10,12 @@ - ([#36153](https://github.com/RocketChat/Rocket.Chat/pull/36153)) Adds a new setting to override outlook calendar settings per user email domain +## 7.7.4 + +## 7.7.3 + +## 7.7.2 + ## 7.7.1 ## 7.7.0 diff --git a/packages/cron/CHANGELOG.md b/packages/cron/CHANGELOG.md index ac236086824..fb4df7662ec 100644 --- a/packages/cron/CHANGELOG.md +++ b/packages/cron/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/cron -## 0.1.26-rc.1 +## 0.1.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/models@1.5.5-rc.1
@@ -18,6 +17,37 @@ - @rocket.chat/models@1.5.5-rc.0 - @rocket.chat/core-typings@7.8.0-rc.0 + + + +## 0.1.28 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/models@1.5.7 +
+ +## 0.1.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/models@1.5.6 +
+ +## 0.1.26 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/models@1.5.5 + - @rocket.chat/core-typings@7.7.2 +
## 0.1.25 diff --git a/packages/cron/package.json b/packages/cron/package.json index fb01c798bb2..39a6fae50b1 100644 --- a/packages/cron/package.json +++ b/packages/cron/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/cron", - "version": "0.1.26-rc.1", + "version": "0.1.29-rc.1", "private": true, "devDependencies": { "@rocket.chat/tsconfig": "workspace:*", diff --git a/packages/ddp-client/CHANGELOG.md b/packages/ddp-client/CHANGELOG.md index 57448986be0..f0a1e0cc838 100644 --- a/packages/ddp-client/CHANGELOG.md +++ b/packages/ddp-client/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/ddp-client -## 0.3.26-rc.1 +## 0.3.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/rest-typings@7.8.0-rc.1 - @rocket.chat/api-client@0.2.26-rc.1 @@ -22,6 +21,38 @@ - @rocket.chat/api-client@0.2.26-rc.0
+## 0.3.28 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/api-client@0.2.28 +
+ +## 0.3.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/api-client@0.2.27 +
+ +## 0.3.26 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/api-client@0.2.26 + - @rocket.chat/core-typings@7.7.2 +
+ ## 0.3.25 ### Patch Changes diff --git a/packages/ddp-client/package.json b/packages/ddp-client/package.json index e9dc83e6774..6d3fbbe48f2 100644 --- a/packages/ddp-client/package.json +++ b/packages/ddp-client/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/ddp-client", - "version": "0.3.26-rc.1", + "version": "0.3.29-rc.1", "devDependencies": { "@rocket.chat/jest-presets": "workspace:~", "@rocket.chat/tsconfig": "workspace:*", diff --git a/packages/freeswitch/CHANGELOG.md b/packages/freeswitch/CHANGELOG.md index 903ce643d99..5ee9ad20a18 100644 --- a/packages/freeswitch/CHANGELOG.md +++ b/packages/freeswitch/CHANGELOG.md @@ -1,12 +1,11 @@ # @rocket.chat/freeswitch -## 1.2.13-rc.1 +## 1.2.16-rc.1 ### Patch Changes -
Updated dependencies []: - - - @rocket.chat/core-typings@7.8.0-rc.1 +- @rocket.chat/core-typings@7.8.0-rc.1
## 1.2.13-rc.0 @@ -16,6 +15,34 @@ -
Updated dependencies [3d024a900426c8bbf646e7ebedce0e17c9f7c140, 3779de0e8c5787f266bdeda5052b27c023c65f1c]: - @rocket.chat/core-typings@7.8.0-rc.0 + +
+ +## 1.2.15 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 +
+ +## 1.2.14 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 +
+ +## 1.2.13 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.2 +
## 1.2.12 diff --git a/packages/freeswitch/package.json b/packages/freeswitch/package.json index f591e3534e8..894088ae206 100644 --- a/packages/freeswitch/package.json +++ b/packages/freeswitch/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/freeswitch", - "version": "1.2.13-rc.1", + "version": "1.2.16-rc.1", "private": true, "devDependencies": { "@rocket.chat/jest-presets": "workspace:~", diff --git a/packages/fuselage-ui-kit/CHANGELOG.md b/packages/fuselage-ui-kit/CHANGELOG.md index 702acefc2d4..e496ddc1b9f 100644 --- a/packages/fuselage-ui-kit/CHANGELOG.md +++ b/packages/fuselage-ui-kit/CHANGELOG.md @@ -5,8 +5,7 @@ ### Patch Changes -
Updated dependencies []: - - - @rocket.chat/core-typings@7.8.0-rc.1 +- @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/gazzodown@20.0.0-rc.1 - @rocket.chat/ui-contexts@20.0.0-rc.1 - @rocket.chat/ui-avatar@16.0.0-rc.1 @@ -27,6 +26,45 @@ - @rocket.chat/ui-video-conf@20.0.0-rc.0
+## 19.0.4 + +### Patch Changes + +-
Updated dependencies [46662d78192b438914b2aedb974faa2367225fa5]: + + - @rocket.chat/apps-engine@1.52.1 + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/gazzodown@19.0.4 + - @rocket.chat/ui-contexts@19.0.4 + - @rocket.chat/ui-avatar@15.0.4 + - @rocket.chat/ui-video-conf@19.0.4 +
+ +## 19.0.3 + +### Patch Changes + +-
Updated dependencies []: +- @rocket.chat/core-typings@7.7.3 + - @rocket.chat/gazzodown@19.0.3 + - @rocket.chat/ui-contexts@19.0.3 + - @rocket.chat/ui-avatar@15.0.3 + - @rocket.chat/ui-video-conf@19.0.3 +
+ +## 19.0.2 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 + - @rocket.chat/gazzodown@19.0.2 + - @rocket.chat/ui-avatar@15.0.2 + - @rocket.chat/ui-video-conf@19.0.2 + - @rocket.chat/core-typings@7.7.2 +
+ ## 19.0.1 ### Patch Changes diff --git a/packages/gazzodown/CHANGELOG.md b/packages/gazzodown/CHANGELOG.md index 21805e15267..132fc0522a5 100644 --- a/packages/gazzodown/CHANGELOG.md +++ b/packages/gazzodown/CHANGELOG.md @@ -5,7 +5,6 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/ui-contexts@20.0.0-rc.1 - @rocket.chat/ui-client@20.0.0-rc.1 @@ -22,6 +21,38 @@ - @rocket.chat/ui-client@20.0.0-rc.0
+## 19.0.4 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/ui-contexts@19.0.4 + - @rocket.chat/ui-client@19.0.4 +
+ +## 19.0.3 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/ui-contexts@19.0.3 + - @rocket.chat/ui-client@19.0.3 +
+ +## 19.0.2 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 + - @rocket.chat/ui-client@19.0.2 + - @rocket.chat/core-typings@7.7.2 +
+ ## 19.0.1 ### Patch Changes diff --git a/packages/instance-status/CHANGELOG.md b/packages/instance-status/CHANGELOG.md index 0603df6ca74..597d49f5478 100644 --- a/packages/instance-status/CHANGELOG.md +++ b/packages/instance-status/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/instance-status -## 0.1.26-rc.1 +## 0.1.29-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/models@1.5.5-rc.1
@@ -18,6 +17,32 @@ - @rocket.chat/models@1.5.5-rc.0 +## 0.1.28 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/models@1.5.7 +
+ +## 0.1.27 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/models@1.5.6 +
+ +## 0.1.26 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/models@1.5.5 +
+ ## 0.1.25 ### Patch Changes diff --git a/packages/instance-status/package.json b/packages/instance-status/package.json index 95e06c57a1e..181c814878c 100644 --- a/packages/instance-status/package.json +++ b/packages/instance-status/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/instance-status", - "version": "0.1.26-rc.1", + "version": "0.1.29-rc.1", "private": true, "devDependencies": { "@rocket.chat/eslint-config": "workspace:^", diff --git a/packages/livechat/CHANGELOG.md b/packages/livechat/CHANGELOG.md index e37f6443a88..c95f067b8b2 100644 --- a/packages/livechat/CHANGELOG.md +++ b/packages/livechat/CHANGELOG.md @@ -5,7 +5,6 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/gazzodown@20.0.0-rc.1
@@ -19,8 +18,34 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/gazzodown@20.0.0-rc.0 + +
+ +## 1.22.15 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/gazzodown@19.0.4 +
+ +## 1.22.14 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/gazzodown@19.0.3 +
+ +## 1.22.13 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/gazzodown@19.0.2 +
## 1.22.12 diff --git a/packages/mock-providers/CHANGELOG.md b/packages/mock-providers/CHANGELOG.md index a67559de1ef..1eacbb0a83f 100644 --- a/packages/mock-providers/CHANGELOG.md +++ b/packages/mock-providers/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/mock-providers -## 0.2.5-rc.1 +## 0.2.8-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.1
@@ -17,6 +16,34 @@ - @rocket.chat/i18n@1.8.0-rc.0 - @rocket.chat/ui-contexts@20.0.0-rc.0 + + + +## 0.2.7 + +### Patch Changes + +-
Updated dependencies []: +- @rocket.chat/ui-contexts@19.0.4 +
+ +## 0.2.6 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.3 +
+ +## 0.2.5 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 +
## 0.2.4 diff --git a/packages/mock-providers/package.json b/packages/mock-providers/package.json index a94f3a28a3e..234dcd8842e 100644 --- a/packages/mock-providers/package.json +++ b/packages/mock-providers/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/mock-providers", - "version": "0.2.5-rc.1", + "version": "0.2.8-rc.1", "private": true, "dependencies": { "@rocket.chat/emitter": "~0.31.25", diff --git a/packages/model-typings/CHANGELOG.md b/packages/model-typings/CHANGELOG.md index f5f52a67641..30d5d994fdf 100644 --- a/packages/model-typings/CHANGELOG.md +++ b/packages/model-typings/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/model-typings -## 1.6.5-rc.1 +## 1.6.8-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1
@@ -22,6 +21,32 @@ - @rocket.chat/core-typings@7.8.0-rc.0 +## 1.6.7 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 +
+ +## 1.6.6 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 +
+ +## 1.6.5 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.2 +
+ ## 1.6.4 ### Patch Changes diff --git a/packages/model-typings/package.json b/packages/model-typings/package.json index b794da9462a..4ce0e9cbbbe 100644 --- a/packages/model-typings/package.json +++ b/packages/model-typings/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/model-typings", - "version": "1.6.5-rc.1", + "version": "1.6.8-rc.1", "private": true, "devDependencies": { "@types/node-rsa": "^1.1.4", diff --git a/packages/models/CHANGELOG.md b/packages/models/CHANGELOG.md index a6adcdcf263..76fd47365ce 100644 --- a/packages/models/CHANGELOG.md +++ b/packages/models/CHANGELOG.md @@ -1,11 +1,10 @@ # @rocket.chat/models -## 1.5.5-rc.1 +## 1.5.8-rc.1 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/rest-typings@7.8.0-rc.1 - @rocket.chat/model-typings@1.6.5-rc.1
@@ -26,6 +25,35 @@ - @rocket.chat/model-typings@1.6.5-rc.0 +## 1.5.7 + +### Patch Changes + +-
Updated dependencies []: +- @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/model-typings@1.6.7 +
+ +## 1.5.6 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/model-typings@1.6.6 +
+ +## 1.5.5 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/model-typings@1.6.5 +
+ ## 1.5.4 ### Patch Changes diff --git a/packages/models/package.json b/packages/models/package.json index ccafb5ecda9..7eca28930ea 100644 --- a/packages/models/package.json +++ b/packages/models/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/models", - "version": "1.5.5-rc.1", + "version": "1.5.8-rc.1", "private": true, "devDependencies": { "@rocket.chat/jest-presets": "workspace:~", diff --git a/packages/models/src/models/AppLogsModel.ts b/packages/models/src/models/AppLogsModel.ts index 5e370ad73f5..2d693a78f88 100644 --- a/packages/models/src/models/AppLogsModel.ts +++ b/packages/models/src/models/AppLogsModel.ts @@ -16,7 +16,6 @@ export class AppsLogsModel extends BaseRaw implements IAppLogsModel { _updatedAt: 1, }, expireAfterSeconds: 60 * 60 * 24 * 30, - name: 'ttl_30_days', }, // Index for specific queries from the logs screen (most common) { diff --git a/packages/rest-typings/CHANGELOG.md b/packages/rest-typings/CHANGELOG.md index 408755ef012..bb0c03dd679 100644 --- a/packages/rest-typings/CHANGELOG.md +++ b/packages/rest-typings/CHANGELOG.md @@ -5,7 +5,6 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1
@@ -24,6 +23,34 @@ - @rocket.chat/core-typings@7.8.0-rc.0 +## 7.7.4 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 +
+ +## 7.7.3 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 +
+ +## 7.7.2 + +### Patch Changes + +- ([#36298](https://github.com/RocketChat/Rocket.Chat/pull/36298) by [@dionisio-bot](https://github.com/dionisio-bot)) Fixes an issue that prevented the action of removing an agent when editing a department to work. + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.2 +
+ ## 7.7.1 ### Patch Changes diff --git a/packages/rest-typings/src/v1/omnichannel.ts b/packages/rest-typings/src/v1/omnichannel.ts index ec93ac58079..11c6eebe7f3 100644 --- a/packages/rest-typings/src/v1/omnichannel.ts +++ b/packages/rest-typings/src/v1/omnichannel.ts @@ -215,6 +215,10 @@ const LivechatDepartmentDepartmentIdAgentsPOSTSchema = { order: { type: 'number', }, + departmentEnabled: { type: 'boolean' }, + departmentId: { type: 'string' }, + _id: { type: 'string' }, + _updatedAt: { type: 'string' }, }, required: ['agentId', 'username'], additionalProperties: false, diff --git a/packages/ui-avatar/CHANGELOG.md b/packages/ui-avatar/CHANGELOG.md index b215a278e85..4d234ca314d 100644 --- a/packages/ui-avatar/CHANGELOG.md +++ b/packages/ui-avatar/CHANGELOG.md @@ -5,7 +5,6 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.1
@@ -14,8 +13,34 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.0 + +
+ +## 15.0.4 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/ui-contexts@19.0.4 +
+ +## 15.0.3 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/ui-contexts@19.0.3 +
+ +## 15.0.2 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 +
## 15.0.1 diff --git a/packages/ui-client/CHANGELOG.md b/packages/ui-client/CHANGELOG.md index a7ef15f01c5..2f095a36958 100644 --- a/packages/ui-client/CHANGELOG.md +++ b/packages/ui-client/CHANGELOG.md @@ -5,7 +5,6 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.1 - @rocket.chat/ui-avatar@16.0.0-rc.1
@@ -15,11 +14,39 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.0 - @rocket.chat/ui-avatar@16.0.0-rc.0
+## 19.0.4 + +### Patch Changes + +- @rocket.chat/ui-contexts@19.0.4 +- @rocket.chat/ui-avatar@15.0.4 + + +## 19.0.3 + +-
Updated dependencies []: + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/ui-contexts@19.0.3 + - @rocket.chat/ui-avatar@15.0.3 +
+ +## 19.0.2 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 + - @rocket.chat/ui-avatar@15.0.2 +
+ ## 19.0.1 ### Patch Changes diff --git a/packages/ui-contexts/CHANGELOG.md b/packages/ui-contexts/CHANGELOG.md index a8a6e9a1cef..9c848f19dd2 100644 --- a/packages/ui-contexts/CHANGELOG.md +++ b/packages/ui-contexts/CHANGELOG.md @@ -5,7 +5,6 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/core-typings@7.8.0-rc.1 - @rocket.chat/rest-typings@7.8.0-rc.1 - @rocket.chat/ddp-client@0.3.26-rc.1 @@ -21,6 +20,40 @@ - @rocket.chat/i18n@1.8.0-rc.0 - @rocket.chat/core-typings@7.8.0-rc.0 - @rocket.chat/ddp-client@0.3.26-rc.0 + +
+ +## 19.0.4 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/core-typings@7.7.4 + - @rocket.chat/rest-typings@7.7.4 + - @rocket.chat/ddp-client@0.3.28 +
+ +## 19.0.3 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/core-typings@7.7.3 + - @rocket.chat/rest-typings@7.7.3 + - @rocket.chat/ddp-client@0.3.27 +
+ +## 19.0.2 + +### Patch Changes + +-
Updated dependencies [8874a5aab72c962f213d128a54393d95f7dabef8]: + + - @rocket.chat/rest-typings@7.7.2 + - @rocket.chat/ddp-client@0.3.26 + - @rocket.chat/core-typings@7.7.2 +
## 19.0.1 diff --git a/packages/ui-video-conf/CHANGELOG.md b/packages/ui-video-conf/CHANGELOG.md index 27f7731bf28..16eb5c05246 100644 --- a/packages/ui-video-conf/CHANGELOG.md +++ b/packages/ui-video-conf/CHANGELOG.md @@ -5,7 +5,6 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.1 - @rocket.chat/ui-avatar@16.0.0-rc.1
@@ -15,9 +14,38 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.0 - @rocket.chat/ui-avatar@16.0.0-rc.0 + +
+ +## 19.0.4 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/ui-contexts@19.0.4 + - @rocket.chat/ui-avatar@15.0.4 +
+ +## 19.0.3 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/ui-contexts@19.0.3 + - @rocket.chat/ui-avatar@15.0.3 +
+ +## 19.0.2 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 + - @rocket.chat/ui-avatar@15.0.2 +
## 19.0.1 diff --git a/packages/ui-voip/CHANGELOG.md b/packages/ui-voip/CHANGELOG.md index 6057bd68e2e..847e53be346 100644 --- a/packages/ui-voip/CHANGELOG.md +++ b/packages/ui-voip/CHANGELOG.md @@ -1,25 +1,57 @@ # @rocket.chat/ui-voip -## 10.0.0-rc.1 - ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.1 - - @rocket.chat/ui-avatar@16.0.0-rc.1 - - @rocket.chat/ui-client@20.0.0-rc.1 -
+## 10.0.0-rc.1 + +- @rocket.chat/ui-contexts@20.0.0-rc.1 +- @rocket.chat/ui-avatar@16.0.0-rc.1 +- @rocket.chat/ui-client@20.0.0-rc.1 +
## 10.0.0-rc.0 ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.0 - @rocket.chat/ui-avatar@16.0.0-rc.0 - @rocket.chat/ui-client@20.0.0-rc.0 + +
+ +## 9.0.4 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/ui-contexts@19.0.4 + - @rocket.chat/ui-avatar@15.0.4 + - @rocket.chat/ui-client@19.0.4 +
+ +## 9.0.3 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/ui-contexts@19.0.3 + - @rocket.chat/ui-avatar@15.0.3 + - @rocket.chat/ui-client@19.0.3 +
+ +## 9.0.2 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 + - @rocket.chat/ui-avatar@15.0.2 + - @rocket.chat/ui-client@19.0.2 +
## 9.0.1 diff --git a/packages/web-ui-registration/CHANGELOG.md b/packages/web-ui-registration/CHANGELOG.md index 7ad1c31a66f..b31eaadea00 100644 --- a/packages/web-ui-registration/CHANGELOG.md +++ b/packages/web-ui-registration/CHANGELOG.md @@ -5,7 +5,6 @@ ### Patch Changes -
Updated dependencies []: - - @rocket.chat/ui-contexts@20.0.0-rc.1
@@ -20,6 +19,32 @@ - @rocket.chat/ui-contexts@20.0.0-rc.0 +## 19.0.4 + +### Patch Changes + +-
Updated dependencies []: + - @rocket.chat/ui-contexts@19.0.4 +
+ +## 19.0.3 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.3 +
+ +## 19.0.2 + +### Patch Changes + +-
Updated dependencies []: + + - @rocket.chat/ui-contexts@19.0.2 +
+ ## 19.0.1 ### Patch Changes