Skip to content

Commit

Permalink
Release 1.46.0 (#808)
Browse files Browse the repository at this point in the history
  • Loading branch information
d-gubert committed Sep 25, 2024
2 parents 7c32f9d + 675c144 commit 89e9358
Show file tree
Hide file tree
Showing 608 changed files with 2,725 additions and 71 deletions.
17 changes: 6 additions & 11 deletions deno-runtime/lib/accessors/mod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import { AppObjectRegistry } from '../../AppObjectRegistry.ts';
import { ModifyCreator } from './modify/ModifyCreator.ts';
import { ModifyUpdater } from './modify/ModifyUpdater.ts';
import { ModifyExtender } from './modify/ModifyExtender.ts';
import { MessageBuilder } from "./builders/MessageBuilder.ts";
import { Notifier } from './notifier.ts';

const httpMethods = ['get', 'post', 'put', 'delete', 'head', 'options', 'patch'] as const;

Expand Down Expand Up @@ -77,6 +77,7 @@ export class AppAccessors {
) as T;

this.http = new Http(this.getReader(), this.getPersistence(), this.httpExtend, this.getSenderFn());
this.notifier = new Notifier(this.getSenderFn());
}

public getSenderFn() {
Expand Down Expand Up @@ -225,7 +226,7 @@ export class AppAccessors {
getPersistenceReader: () => this.proxify('getReader:getPersistenceReader'),
getRoomReader: () => this.proxify('getReader:getRoomReader'),
getUserReader: () => this.proxify('getReader:getUserReader'),
getNotifier: () => this.getNotifier('getReader:getNotifier'),
getNotifier: () => this.getNotifier(),
getLivechatReader: () => this.proxify('getReader:getLivechatReader'),
getUploadReader: () => this.proxify('getReader:getUploadReader'),
getCloudWorkspaceReader: () => this.proxify('getReader:getCloudWorkspaceReader'),
Expand All @@ -246,7 +247,7 @@ export class AppAccessors {
getUpdater: this.getUpdater.bind(this),
getExtender: this.getExtender.bind(this),
getDeleter: () => this.proxify('getModifier:getDeleter'),
getNotifier: () => this.getNotifier('getModifier:getNotifier'),
getNotifier: () => this.getNotifier(),
getUiController: () => this.proxify('getModifier:getUiController'),
getScheduler: () => this.proxify('getModifier:getScheduler'),
getOAuthAppsModifier: () => this.proxify('getModifier:getOAuthAppsModifier'),
Expand Down Expand Up @@ -293,14 +294,8 @@ export class AppAccessors {
return this.extender;
}

private getNotifier(namespace: string) {
if (!this.notifier) {
this.notifier = this.proxify(namespace, {
getMessageBuilder: () => new MessageBuilder(),
});
}

return this.notifier;
private getNotifier() {
return this.notifier;
}
}

Expand Down
21 changes: 21 additions & 0 deletions deno-runtime/lib/accessors/modify/ModifyCreator.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type { IModifyCreator } from '@rocket.chat/apps-engine/definition/accessors/IModifyCreator.ts';
import type { IUploadCreator } from '@rocket.chat/apps-engine/definition/accessors/IUploadCreator.ts';
import type { IEmailCreator } from '@rocket.chat/apps-engine/definition/accessors/IEmailCreator.ts';
import type { ILivechatCreator } from '@rocket.chat/apps-engine/definition/accessors/ILivechatCreator.ts';
import type { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts';
import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts';
Expand Down Expand Up @@ -85,6 +86,26 @@ export class ModifyCreator implements IModifyCreator {
) as IUploadCreator;
}

getEmailCreator(): IEmailCreator {
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) => {
throw new Error(err.error);
}),
}
)
}

getBlockBuilder() {
return new BlockBuilder();
}
Expand Down
75 changes: 75 additions & 0 deletions deno-runtime/lib/accessors/notifier.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import type { IMessageBuilder, INotifier } from '@rocket.chat/apps-engine/definition/accessors';
import type { ITypingOptions } from '@rocket.chat/apps-engine/definition/accessors/INotifier.ts';
import type { _TypingScope } from '@rocket.chat/apps-engine/definition/accessors/INotifier.ts';
import type { IMessage } from '@rocket.chat/apps-engine/definition/messages';
import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms';
import type { IUser } from '@rocket.chat/apps-engine/definition/users';
import { MessageBuilder } from './builders/MessageBuilder.ts';
import { AppObjectRegistry } from '../../AppObjectRegistry.ts';
import * as Messenger from '../messenger.ts';
import { require } from "../require.ts";

const { TypingScope } = require('@rocket.chat/apps-engine/definition/accessors/INotifier.js') as {
TypingScope: typeof _TypingScope;
};

export class Notifier implements INotifier {
private senderFn: typeof Messenger.sendRequest;

constructor(senderFn: typeof Messenger.sendRequest) {
this.senderFn = senderFn;
}

public async notifyUser(user: IUser, message: IMessage): Promise<void> {
if (!message.sender || !message.sender.id) {
const appUser = await this.getAppUser();

message.sender = appUser;
}

await this.callMessageBridge('doNotifyUser', [user, message, AppObjectRegistry.get<string>('id')]);
}

public async notifyRoom(room: IRoom, message: IMessage): Promise<void> {
if (!message.sender || !message.sender.id) {
const appUser = await this.getAppUser();

message.sender = appUser;
}

await this.callMessageBridge('doNotifyRoom', [room, message, AppObjectRegistry.get<string>('id')]);
}

public async typing(options: ITypingOptions): Promise<() => Promise<void>> {
options.scope = options.scope || TypingScope.Room;

if (!options.username) {
const appUser = await this.getAppUser();
options.username = (appUser && appUser.name) || '';
}

const appId = AppObjectRegistry.get<string>('id');

await this.callMessageBridge('doTyping', [{ ...options, isTyping: true }, appId]);

return async () => {
await this.callMessageBridge('doTyping', [{ ...options, isTyping: false }, appId]);
};
}

public getMessageBuilder(): IMessageBuilder {
return new MessageBuilder();
}

private async callMessageBridge(method: string, params: Array<unknown>): Promise<void> {
await this.senderFn({
method: `bridges:getMessageBridge:${method}`,
params,
});
}

private async getAppUser(): Promise<IUser | undefined> {
const response = await this.senderFn({ method: 'bridges:getUserBridge:doGetAppUser', params: [AppObjectRegistry.get<string>('id')] });
return response.result;
}
}
2 changes: 1 addition & 1 deletion docs/assets/search.js

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions docs/classes/App.App.html
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,7 @@ <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon
<li><a href="../modules/accessors_IConfigurationExtend.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IConfiguration<wbr/>Extend</span></a></li>
<li><a href="../modules/accessors_IConfigurationModify.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IConfiguration<wbr/>Modify</span></a></li>
<li><a href="../modules/accessors_IDiscussionBuilder.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IDiscussion<wbr/>Builder</span></a></li>
<li><a href="../modules/accessors_IEmailCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEmail<wbr/>Creator</span></a></li>
<li><a href="../modules/accessors_IEnvironmentRead.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironment<wbr/>Read</span></a></li>
<li><a href="../modules/accessors_IEnvironmentWrite.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironment<wbr/>Write</span></a></li>
<li><a href="../modules/accessors_IEnvironmentalVariableRead.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironmental<wbr/>Variable<wbr/>Read</span></a></li>
Expand Down Expand Up @@ -617,6 +618,7 @@ <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon
<li><a href="../modules/cloud_IWorkspaceToken.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>cloud/IWorkspace<wbr/>Token</span></a></li>
<li><a href="../modules/definition_roles.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>definition/roles</span></a></li>
<li><a href="../modules/email.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email</span></a></li>
<li><a href="../modules/email_IEmail.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IEmail</span></a></li>
<li><a href="../modules/email_IEmailDescriptor.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IEmail<wbr/>Descriptor</span></a></li>
<li><a href="../modules/email_IPreEmailSent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IPre<wbr/>Email<wbr/>Sent</span></a></li>
<li><a href="../modules/email_IPreEmailSentContext.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IPre<wbr/>Email<wbr/>Sent<wbr/>Context</span></a></li>
Expand Down
2 changes: 2 additions & 0 deletions docs/classes/AppStatus.AppStatusUtilsDef.html
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon
<li><a href="../modules/accessors_IConfigurationExtend.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IConfiguration<wbr/>Extend</span></a></li>
<li><a href="../modules/accessors_IConfigurationModify.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IConfiguration<wbr/>Modify</span></a></li>
<li><a href="../modules/accessors_IDiscussionBuilder.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IDiscussion<wbr/>Builder</span></a></li>
<li><a href="../modules/accessors_IEmailCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEmail<wbr/>Creator</span></a></li>
<li><a href="../modules/accessors_IEnvironmentRead.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironment<wbr/>Read</span></a></li>
<li><a href="../modules/accessors_IEnvironmentWrite.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironment<wbr/>Write</span></a></li>
<li><a href="../modules/accessors_IEnvironmentalVariableRead.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironmental<wbr/>Variable<wbr/>Read</span></a></li>
Expand Down Expand Up @@ -199,6 +200,7 @@ <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon
<li><a href="../modules/cloud_IWorkspaceToken.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>cloud/IWorkspace<wbr/>Token</span></a></li>
<li><a href="../modules/definition_roles.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>definition/roles</span></a></li>
<li><a href="../modules/email.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email</span></a></li>
<li><a href="../modules/email_IEmail.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IEmail</span></a></li>
<li><a href="../modules/email_IEmailDescriptor.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IEmail<wbr/>Descriptor</span></a></li>
<li><a href="../modules/email_IPreEmailSent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IPre<wbr/>Email<wbr/>Sent</span></a></li>
<li><a href="../modules/email_IPreEmailSentContext.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IPre<wbr/>Email<wbr/>Sent<wbr/>Context</span></a></li>
Expand Down
2 changes: 2 additions & 0 deletions docs/classes/api_ApiEndpoint.ApiEndpoint.html
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon
<li><a href="../modules/accessors_IConfigurationExtend.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IConfiguration<wbr/>Extend</span></a></li>
<li><a href="../modules/accessors_IConfigurationModify.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IConfiguration<wbr/>Modify</span></a></li>
<li><a href="../modules/accessors_IDiscussionBuilder.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IDiscussion<wbr/>Builder</span></a></li>
<li><a href="../modules/accessors_IEmailCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEmail<wbr/>Creator</span></a></li>
<li><a href="../modules/accessors_IEnvironmentRead.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironment<wbr/>Read</span></a></li>
<li><a href="../modules/accessors_IEnvironmentWrite.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironment<wbr/>Write</span></a></li>
<li><a href="../modules/accessors_IEnvironmentalVariableRead.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironmental<wbr/>Variable<wbr/>Read</span></a></li>
Expand Down Expand Up @@ -229,6 +230,7 @@ <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon
<li><a href="../modules/cloud_IWorkspaceToken.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>cloud/IWorkspace<wbr/>Token</span></a></li>
<li><a href="../modules/definition_roles.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>definition/roles</span></a></li>
<li><a href="../modules/email.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email</span></a></li>
<li><a href="../modules/email_IEmail.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IEmail</span></a></li>
<li><a href="../modules/email_IEmailDescriptor.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IEmail<wbr/>Descriptor</span></a></li>
<li><a href="../modules/email_IPreEmailSent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IPre<wbr/>Email<wbr/>Sent</span></a></li>
<li><a href="../modules/email_IPreEmailSentContext.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IPre<wbr/>Email<wbr/>Sent<wbr/>Context</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,13 +130,13 @@ <h4>See</h4><p><a href="https://v8.dev/docs/stack-trace-api#customizing-stack-tr
</div></li></ul></li></ul></div><aside class="tsd-sources">
<p>Inherited from Error.prepareStackTrace</p>
<ul>
<li>Defined in node_modules/.deno/@types[email protected]/node_modules/@types/node/globals.d.ts:27</li></ul></aside></section>
<li>Defined in node_modules/@types/node/globals.d.ts:11</li></ul></aside></section>
<section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="stackTraceLimit" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <span>stack<wbr/>Trace<wbr/>Limit</span><a href="#stackTraceLimit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3>
<div class="tsd-signature"><span class="tsd-kind-property">stack<wbr/>Trace<wbr/>Limit</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<p>Inherited from Error.stackTraceLimit</p>
<ul>
<li>Defined in node_modules/.deno/@types[email protected]/node_modules/@types/node/globals.d.ts:29</li></ul></aside></section></section>
<li>Defined in node_modules/@types/node/globals.d.ts:13</li></ul></aside></section></section>
<section class="tsd-panel-group tsd-member-group">
<h2>Methods</h2>
<section class="tsd-panel tsd-member"><a id="getErrorInfo" class="tsd-anchor"></a>
Expand Down Expand Up @@ -170,7 +170,7 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</spa
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources">
<p>Inherited from Error.captureStackTrace</p>
<ul>
<li>Defined in node_modules/.deno/@types[email protected]/node_modules/@types/node/globals.d.ts:20</li></ul></aside></li></ul></section></section></div>
<li>Defined in node_modules/@types/node/globals.d.ts:4</li></ul></aside></li></ul></section></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
Expand Down Expand Up @@ -214,6 +214,7 @@ <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon
<li><a href="../modules/accessors_IConfigurationExtend.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IConfiguration<wbr/>Extend</span></a></li>
<li><a href="../modules/accessors_IConfigurationModify.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IConfiguration<wbr/>Modify</span></a></li>
<li><a href="../modules/accessors_IDiscussionBuilder.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IDiscussion<wbr/>Builder</span></a></li>
<li><a href="../modules/accessors_IEmailCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEmail<wbr/>Creator</span></a></li>
<li><a href="../modules/accessors_IEnvironmentRead.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironment<wbr/>Read</span></a></li>
<li><a href="../modules/accessors_IEnvironmentWrite.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironment<wbr/>Write</span></a></li>
<li><a href="../modules/accessors_IEnvironmentalVariableRead.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>accessors/IEnvironmental<wbr/>Variable<wbr/>Read</span></a></li>
Expand Down Expand Up @@ -283,6 +284,7 @@ <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon
<li><a href="../modules/cloud_IWorkspaceToken.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>cloud/IWorkspace<wbr/>Token</span></a></li>
<li><a href="../modules/definition_roles.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>definition/roles</span></a></li>
<li><a href="../modules/email.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email</span></a></li>
<li><a href="../modules/email_IEmail.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IEmail</span></a></li>
<li><a href="../modules/email_IEmailDescriptor.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IEmail<wbr/>Descriptor</span></a></li>
<li><a href="../modules/email_IPreEmailSent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IPre<wbr/>Email<wbr/>Sent</span></a></li>
<li><a href="../modules/email_IPreEmailSentContext.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>email/IPre<wbr/>Email<wbr/>Sent<wbr/>Context</span></a></li>
Expand Down
Loading

0 comments on commit 89e9358

Please sign in to comment.