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