From 5853a395349db26d6fb45dd888f94c7fa3664977 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Mon, 8 Jan 2024 10:54:57 -0300 Subject: [PATCH] Fix imports in accessors, builders and extenders (#695) --- deno-runtime/lib/accessors/BlockBuilder.ts | 208 ---------------- .../lib/accessors/DiscussionBuilder.ts | 53 ---- .../lib/accessors/LivechatMessageBuilder.ts | 198 --------------- deno-runtime/lib/accessors/MessageBuilder.ts | 226 ------------------ deno-runtime/lib/accessors/RoomBuilder.ts | 157 ------------ deno-runtime/lib/accessors/UserBuilder.ts | 75 ------ .../lib/accessors/VideoConferenceBuilder.ts | 79 ------ .../lib/accessors/builders/BlockBuilder.ts | 26 +- .../accessors/builders/DiscussionBuilder.ts | 24 +- .../builders/LivechatMessageBuilder.ts | 22 +- .../lib/accessors/builders/MessageBuilder.ts | 24 +- .../lib/accessors/builders/RoomBuilder.ts | 20 +- .../lib/accessors/builders/UserBuilder.ts | 18 +- .../builders/VideoConferenceBuilder.ts | 16 +- .../accessors/extenders/MessageExtender.ts | 16 +- .../lib/accessors/extenders/RoomExtender.ts | 16 +- .../extenders/VideoConferenceExtend.ts | 16 +- .../lib/accessors/modify/ModifyCreator.ts | 33 +-- .../lib/accessors/modify/ModifyExtender.ts | 43 ++-- .../lib/accessors/modify/ModifyUpdater.ts | 17 +- 20 files changed, 183 insertions(+), 1104 deletions(-) delete mode 100644 deno-runtime/lib/accessors/BlockBuilder.ts delete mode 100644 deno-runtime/lib/accessors/DiscussionBuilder.ts delete mode 100644 deno-runtime/lib/accessors/LivechatMessageBuilder.ts delete mode 100644 deno-runtime/lib/accessors/MessageBuilder.ts delete mode 100644 deno-runtime/lib/accessors/RoomBuilder.ts delete mode 100644 deno-runtime/lib/accessors/UserBuilder.ts delete mode 100644 deno-runtime/lib/accessors/VideoConferenceBuilder.ts diff --git a/deno-runtime/lib/accessors/BlockBuilder.ts b/deno-runtime/lib/accessors/BlockBuilder.ts deleted file mode 100644 index 52cd58025..000000000 --- a/deno-runtime/lib/accessors/BlockBuilder.ts +++ /dev/null @@ -1,208 +0,0 @@ -import { v1 as uuid } from 'uuid'; - -import { - BlockType, - IActionsBlock, - IBlock, - IConditionalBlock, - IConditionalBlockFilters, - IContextBlock, - IImageBlock, - IInputBlock, - ISectionBlock, -} from "@rocket.chat/apps-engine/definition/uikit/blocks/Blocks.ts"; -import type { - IBlockElement, - IButtonElement, - IImageElement, - IInputElement, - IInteractiveElement, - IMultiStaticSelectElement, - IOverflowMenuElement, - IPlainTextInputElement, - ISelectElement, - IStaticSelectElement, -} from '@rocket.chat/apps-engine/definition/uikit/blocks/Elements.ts'; -import { BlockElementType } from '@rocket.chat/apps-engine/definition/uikit/blocks/Elements.ts'; -import type { ITextObject } from '@rocket.chat/apps-engine/definition/uikit/blocks/Objects.ts'; -import { TextObjectType } from '@rocket.chat/apps-engine/definition/uikit/blocks/Objects.ts'; -import { AppObjectRegistry } from "../../AppObjectRegistry.ts"; - -type BlockFunctionParameter = Omit; -type ElementFunctionParameter = T extends IInteractiveElement - ? Omit | Partial> - : Omit; - -type SectionBlockParam = BlockFunctionParameter; -type ImageBlockParam = BlockFunctionParameter; -type ActionsBlockParam = BlockFunctionParameter; -type ContextBlockParam = BlockFunctionParameter; -type InputBlockParam = BlockFunctionParameter; - -type ButtonElementParam = ElementFunctionParameter; -type ImageElementParam = ElementFunctionParameter; -type OverflowMenuElementParam = ElementFunctionParameter; -type PlainTextInputElementParam = ElementFunctionParameter; -type StaticSelectElementParam = ElementFunctionParameter; -type MultiStaticSelectElementParam = ElementFunctionParameter; - -/** - * @deprecated please prefer the rocket.chat/ui-kit components - */ -export class BlockBuilder { - private readonly blocks: Array; - private readonly appId: string; - - constructor() { - this.blocks = []; - this.appId = String(AppObjectRegistry.get('appId')); - } - - public addSectionBlock(block: SectionBlockParam): BlockBuilder { - this.addBlock({ type: BlockType.SECTION, ...block } as ISectionBlock); - - return this; - } - - public addImageBlock(block: ImageBlockParam): BlockBuilder { - this.addBlock({ type: BlockType.IMAGE, ...block } as IImageBlock); - - return this; - } - - public addDividerBlock(): BlockBuilder { - this.addBlock({ type: BlockType.DIVIDER }); - - return this; - } - - public addActionsBlock(block: ActionsBlockParam): BlockBuilder { - this.addBlock({ type: BlockType.ACTIONS, ...block } as IActionsBlock); - - return this; - } - - public addContextBlock(block: ContextBlockParam): BlockBuilder { - this.addBlock({ type: BlockType.CONTEXT, ...block } as IContextBlock); - - return this; - } - - public addInputBlock(block: InputBlockParam): BlockBuilder { - this.addBlock({ type: BlockType.INPUT, ...block } as IInputBlock); - - return this; - } - - public addConditionalBlock(innerBlocks: BlockBuilder | Array, condition?: IConditionalBlockFilters): BlockBuilder { - const render = innerBlocks instanceof BlockBuilder ? innerBlocks.getBlocks() : innerBlocks; - - this.addBlock({ type: BlockType.CONDITIONAL, render, when: condition } as IConditionalBlock); - - return this; - } - - public getBlocks() { - return this.blocks; - } - - public newPlainTextObject(text: string, emoji = false): ITextObject { - return { - type: TextObjectType.PLAINTEXT, - text, - emoji, - }; - } - - public newMarkdownTextObject(text: string): ITextObject { - return { - type: TextObjectType.MARKDOWN, - text, - }; - } - - public newButtonElement(info: ButtonElementParam): IButtonElement { - return this.newInteractiveElement({ - type: BlockElementType.BUTTON, - ...info, - } as IButtonElement); - } - - public newImageElement(info: ImageElementParam): IImageElement { - return { - type: BlockElementType.IMAGE, - ...info, - }; - } - - public newOverflowMenuElement(info: OverflowMenuElementParam): IOverflowMenuElement { - return this.newInteractiveElement({ - type: BlockElementType.OVERFLOW_MENU, - ...info, - } as IOverflowMenuElement); - } - - public newPlainTextInputElement(info: PlainTextInputElementParam): IPlainTextInputElement { - return this.newInputElement({ - type: BlockElementType.PLAIN_TEXT_INPUT, - ...info, - } as IPlainTextInputElement); - } - - public newStaticSelectElement(info: StaticSelectElementParam): IStaticSelectElement { - return this.newSelectElement({ - type: BlockElementType.STATIC_SELECT, - ...info, - } as IStaticSelectElement); - } - - public newMultiStaticElement(info: MultiStaticSelectElementParam): IMultiStaticSelectElement { - return this.newSelectElement({ - type: BlockElementType.MULTI_STATIC_SELECT, - ...info, - } as IMultiStaticSelectElement); - } - - private newInteractiveElement(element: T): T { - if (!element.actionId) { - element.actionId = this.generateActionId(); - } - - return element; - } - - private newInputElement(element: T): T { - if (!element.actionId) { - element.actionId = this.generateActionId(); - } - - return element; - } - - private newSelectElement(element: T): T { - if (!element.actionId) { - element.actionId = this.generateActionId(); - } - - return element; - } - - private addBlock(block: IBlock): void { - if (!block.blockId) { - block.blockId = this.generateBlockId(); - } - - block.appId = this.appId; - - this.blocks.push(block); - } - - private generateBlockId(): string { - return uuid(); - } - - private generateActionId(): string { - return uuid(); - } - -} diff --git a/deno-runtime/lib/accessors/DiscussionBuilder.ts b/deno-runtime/lib/accessors/DiscussionBuilder.ts deleted file mode 100644 index 4b07c2536..000000000 --- a/deno-runtime/lib/accessors/DiscussionBuilder.ts +++ /dev/null @@ -1,53 +0,0 @@ -import type { IDiscussionBuilder as _IDiscussionBuilder } from "@rocket.chat/apps-engine/definition/accessors/IDiscussionBuilder.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"; - -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import { RoomType } from "@rocket.chat/apps-engine/definition/rooms/RoomType.ts"; - -import { RoomBuilder } from "./RoomBuilder.ts"; -import { IRoomBuilder } from "@rocket.chat/apps-engine/definition/accessors/IRoomBuilder.ts"; - -export interface IDiscussionBuilder extends _IDiscussionBuilder, IRoomBuilder {} - -export class DiscussionBuilder extends RoomBuilder implements IDiscussionBuilder { - public kind: RocketChatAssociationModel.DISCUSSION; - - private reply?: string; - - private parentMessage?: IMessage; - - constructor(data?: Partial) { - super(data); - this.kind = RocketChatAssociationModel.DISCUSSION; - this.room.type = RoomType.PRIVATE_GROUP; - } - - public setParentRoom(parentRoom: IRoom): IDiscussionBuilder { - this.room.parentRoom = parentRoom; - return this; - } - - public getParentRoom(): IRoom { - return this.room.parentRoom!; - } - - public setReply(reply: string): IDiscussionBuilder { - this.reply = reply; - return this; - } - - public getReply(): string { - return this.reply!; - } - - public setParentMessage(parentMessage: IMessage): IDiscussionBuilder { - this.parentMessage = parentMessage; - return this; - } - - public getParentMessage(): IMessage { - return this.parentMessage!; - } -} - diff --git a/deno-runtime/lib/accessors/LivechatMessageBuilder.ts b/deno-runtime/lib/accessors/LivechatMessageBuilder.ts deleted file mode 100644 index b90081e23..000000000 --- a/deno-runtime/lib/accessors/LivechatMessageBuilder.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import { RoomType } from "@rocket.chat/apps-engine/definition/rooms/RoomType.ts"; - -import type { ILivechatMessageBuilder } from "@rocket.chat/apps-engine/definition/accessors/ILivechatMessageBuilder.ts"; -import type { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts'; -import type { IMessageAttachment } from '@rocket.chat/apps-engine/definition/messages/IMessageAttachment.ts'; -import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts'; -import type { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; -import type { ILivechatMessage as EngineLivechatMessage } from '@rocket.chat/apps-engine/definition/livechat/ILivechatMessage.ts'; -import type { IVisitor } from "@rocket.chat/apps-engine/definition/livechat/IVisitor.ts"; -import type { IMessageBuilder } from "@rocket.chat/apps-engine/definition/accessors/IMessageBuilder.ts"; - -import { MessageBuilder } from "./MessageBuilder.ts"; - -export interface ILivechatMessage extends EngineLivechatMessage, IMessage {} - -export class LivechatMessageBuilder implements ILivechatMessageBuilder { - public kind: RocketChatAssociationModel.LIVECHAT_MESSAGE; - - private msg: ILivechatMessage; - - constructor(message?: ILivechatMessage) { - this.kind = RocketChatAssociationModel.LIVECHAT_MESSAGE; - this.msg = message || ({} as ILivechatMessage); - } - - public setData(data: ILivechatMessage): ILivechatMessageBuilder { - delete data.id; - this.msg = data; - - return this; - } - - public setRoom(room: IRoom): ILivechatMessageBuilder { - this.msg.room = room; - return this; - } - - public getRoom(): IRoom { - return this.msg.room; - } - - public setSender(sender: IUser): ILivechatMessageBuilder { - this.msg.sender = sender; - delete this.msg.visitor; - - return this; - } - - public getSender(): IUser { - return this.msg.sender; - } - - public setText(text: string): ILivechatMessageBuilder { - this.msg.text = text; - return this; - } - - public getText(): string { - return this.msg.text!; - } - - public setEmojiAvatar(emoji: string): ILivechatMessageBuilder { - this.msg.emoji = emoji; - return this; - } - - public getEmojiAvatar(): string { - return this.msg.emoji!; - } - - public setAvatarUrl(avatarUrl: string): ILivechatMessageBuilder { - this.msg.avatarUrl = avatarUrl; - return this; - } - - public getAvatarUrl(): string { - return this.msg.avatarUrl!; - } - - public setUsernameAlias(alias: string): ILivechatMessageBuilder { - this.msg.alias = alias; - return this; - } - - public getUsernameAlias(): string { - return this.msg.alias!; - } - - public addAttachment(attachment: IMessageAttachment): ILivechatMessageBuilder { - if (!this.msg.attachments) { - this.msg.attachments = []; - } - - this.msg.attachments.push(attachment); - return this; - } - - public setAttachments(attachments: Array): ILivechatMessageBuilder { - this.msg.attachments = attachments; - return this; - } - - public getAttachments(): Array { - return this.msg.attachments!; - } - - public replaceAttachment(position: number, attachment: IMessageAttachment): ILivechatMessageBuilder { - if (!this.msg.attachments) { - this.msg.attachments = []; - } - - if (!this.msg.attachments[position]) { - throw new Error(`No attachment found at the index of "${position}" to replace.`); - } - - this.msg.attachments[position] = attachment; - return this; - } - - public removeAttachment(position: number): ILivechatMessageBuilder { - if (!this.msg.attachments) { - this.msg.attachments = []; - } - - if (!this.msg.attachments[position]) { - throw new Error(`No attachment found at the index of "${position}" to remove.`); - } - - this.msg.attachments.splice(position, 1); - - return this; - } - - public setEditor(user: IUser): ILivechatMessageBuilder { - this.msg.editor = user; - return this; - } - - public getEditor(): IUser { - return this.msg.editor; - } - - public setGroupable(groupable: boolean): ILivechatMessageBuilder { - this.msg.groupable = groupable; - return this; - } - - public getGroupable(): boolean { - return this.msg.groupable!; - } - - public setParseUrls(parseUrls: boolean): ILivechatMessageBuilder { - this.msg.parseUrls = parseUrls; - return this; - } - - public getParseUrls(): boolean { - return this.msg.parseUrls!; - } - - public setToken(token: string): ILivechatMessageBuilder { - this.msg.token = token; - return this; - } - - public getToken(): string { - return this.msg.token!; - } - - public setVisitor(visitor: IVisitor): ILivechatMessageBuilder { - this.msg.visitor = visitor; - delete this.msg.sender; - - return this; - } - - public getVisitor(): IVisitor { - return this.msg.visitor; - } - - public getMessage(): ILivechatMessage { - if (!this.msg.room) { - throw new Error('The "room" property is required.'); - } - - if (this.msg.room.type !== RoomType.LIVE_CHAT) { - throw new Error('The room is not a Livechat room'); - } - - return this.msg; - } - - public getMessageBuilder(): IMessageBuilder { - return new MessageBuilder(this.msg as IMessage); - } -} - diff --git a/deno-runtime/lib/accessors/MessageBuilder.ts b/deno-runtime/lib/accessors/MessageBuilder.ts deleted file mode 100644 index f8bebbcc4..000000000 --- a/deno-runtime/lib/accessors/MessageBuilder.ts +++ /dev/null @@ -1,226 +0,0 @@ -import { Block } from '@rocket.chat/ui-kit'; - -import { IMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/IMessageBuilder.ts'; -import { RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; -import { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts'; -import { IMessageAttachment } from '@rocket.chat/apps-engine/definition/messages/IMessageAttachment.ts'; -import { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; -import { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts'; -import { IBlock } from '@rocket.chat/apps-engine/definition/uikit/blocks/Blocks.ts'; -import { BlockBuilder } from "./BlockBuilder.ts"; - -export class MessageBuilder implements IMessageBuilder { - public kind: RocketChatAssociationModel.MESSAGE; - - private msg: IMessage; - - constructor(message?: IMessage) { - this.kind = RocketChatAssociationModel.MESSAGE; - this.msg = message || ({} as IMessage); - } - - public setData(data: IMessage): IMessageBuilder { - delete data.id; - this.msg = data; - - return this as IMessageBuilder; - } - - public setUpdateData(data: IMessage, editor: IUser): IMessageBuilder { - this.msg = data; - this.msg.editor = editor; - this.msg.editedAt = new Date(); - - return this as IMessageBuilder; - } - - public setThreadId(threadId: string): IMessageBuilder { - this.msg.threadId = threadId; - - return this as IMessageBuilder; - } - - public getThreadId(): string { - return this.msg.threadId!; - } - - public setRoom(room: IRoom): IMessageBuilder { - this.msg.room = room; - return this as IMessageBuilder; - } - - public getRoom(): IRoom { - return this.msg.room; - } - - public setSender(sender: IUser): IMessageBuilder { - this.msg.sender = sender; - return this as IMessageBuilder; - } - - public getSender(): IUser { - return this.msg.sender; - } - - public setText(text: string): IMessageBuilder { - this.msg.text = text; - return this as IMessageBuilder; - } - - public getText(): string { - return this.msg.text!; - } - - public setEmojiAvatar(emoji: string): IMessageBuilder { - this.msg.emoji = emoji; - return this as IMessageBuilder; - } - - public getEmojiAvatar(): string { - return this.msg.emoji!; - } - - public setAvatarUrl(avatarUrl: string): IMessageBuilder { - this.msg.avatarUrl = avatarUrl; - return this as IMessageBuilder; - } - - public getAvatarUrl(): string { - return this.msg.avatarUrl!; - } - - public setUsernameAlias(alias: string): IMessageBuilder { - this.msg.alias = alias; - return this as IMessageBuilder; - } - - public getUsernameAlias(): string { - return this.msg.alias!; - } - - public addAttachment(attachment: IMessageAttachment): IMessageBuilder { - if (!this.msg.attachments) { - this.msg.attachments = []; - } - - this.msg.attachments.push(attachment); - return this as IMessageBuilder; - } - - public setAttachments(attachments: Array): IMessageBuilder { - this.msg.attachments = attachments; - return this as IMessageBuilder; - } - - public getAttachments(): Array { - return this.msg.attachments!; - } - - public replaceAttachment(position: number, attachment: IMessageAttachment): IMessageBuilder { - if (!this.msg.attachments) { - this.msg.attachments = []; - } - - if (!this.msg.attachments[position]) { - throw new Error(`No attachment found at the index of "${position}" to replace.`); - } - - this.msg.attachments[position] = attachment; - return this as IMessageBuilder; - } - - public removeAttachment(position: number): IMessageBuilder { - if (!this.msg.attachments) { - this.msg.attachments = []; - } - - if (!this.msg.attachments[position]) { - throw new Error(`No attachment found at the index of "${position}" to remove.`); - } - - this.msg.attachments.splice(position, 1); - - return this as IMessageBuilder; - } - - public setEditor(user: IUser): IMessageBuilder { - this.msg.editor = user; - return this as IMessageBuilder; - } - - public getEditor(): IUser { - return this.msg.editor; - } - - public setGroupable(groupable: boolean): IMessageBuilder { - this.msg.groupable = groupable; - return this as IMessageBuilder; - } - - public getGroupable(): boolean { - return this.msg.groupable!; - } - - public setParseUrls(parseUrls: boolean): IMessageBuilder { - this.msg.parseUrls = parseUrls; - return this as IMessageBuilder; - } - - public getParseUrls(): boolean { - return this.msg.parseUrls!; - } - - public getMessage(): IMessage { - if (!this.msg.room) { - throw new Error('The "room" property is required.'); - } - - return this.msg; - } - - public addBlocks(blocks: BlockBuilder | Array) { - if (!Array.isArray(this.msg.blocks)) { - this.msg.blocks = []; - } - - if (blocks instanceof BlockBuilder) { - this.msg.blocks.push(...blocks.getBlocks()); - } else { - this.msg.blocks.push(...blocks); - } - - return this as IMessageBuilder; - } - - public setBlocks(blocks: BlockBuilder | Array) { - if (blocks instanceof BlockBuilder) { - this.msg.blocks = blocks.getBlocks(); - } else { - this.msg.blocks = blocks; - } - - return this as IMessageBuilder; - } - - public getBlocks() { - return this.msg.blocks!; - } - - public addCustomField(key: string, value: unknown): IMessageBuilder { - if (!this.msg.customFields) { - this.msg.customFields = {}; - } - - if (this.msg.customFields[key]) { - throw new Error(`The message already contains a custom field by the key: ${key}`); - } - - if (key.includes('.')) { - throw new Error(`The given key contains a period, which is not allowed. Key: ${key}`); - } - - this.msg.customFields[key] = value; - - return this as IMessageBuilder; - } -} diff --git a/deno-runtime/lib/accessors/RoomBuilder.ts b/deno-runtime/lib/accessors/RoomBuilder.ts deleted file mode 100644 index 19b634b37..000000000 --- a/deno-runtime/lib/accessors/RoomBuilder.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { IRoomBuilder } from "@rocket.chat/apps-engine/definition/accessors/IRoomBuilder.ts"; -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import { IRoom } from "@rocket.chat/apps-engine/definition/rooms/IRoom.ts"; -import { RoomType } from "@rocket.chat/apps-engine/definition/rooms/RoomType.ts"; -import { IUser } from "@rocket.chat/apps-engine/definition/users/IUser.ts"; - -export class RoomBuilder implements IRoomBuilder { - public kind: RocketChatAssociationModel.ROOM | RocketChatAssociationModel.DISCUSSION; - - protected room: IRoom; - - private members: Array; - - constructor(data?: Partial) { - this.kind = RocketChatAssociationModel.ROOM; - this.room = (data || { customFields: {} }) as IRoom; - this.members = []; - } - - public setData(data: Partial): IRoomBuilder { - delete data.id; - this.room = data as IRoom; - - return this; - } - - public setDisplayName(name: string): IRoomBuilder { - this.room.displayName = name; - return this; - } - - public getDisplayName(): string { - return this.room.displayName!; - } - - public setSlugifiedName(name: string): IRoomBuilder { - this.room.slugifiedName = name; - return this; - } - - public getSlugifiedName(): string { - return this.room.slugifiedName; - } - - public setType(type: RoomType): IRoomBuilder { - this.room.type = type; - return this; - } - - public getType(): RoomType { - return this.room.type; - } - - public setCreator(creator: IUser): IRoomBuilder { - this.room.creator = creator; - return this; - } - - public getCreator(): IUser { - return this.room.creator; - } - - /** - * @deprecated - */ - public addUsername(username: string): IRoomBuilder { - this.addMemberToBeAddedByUsername(username); - return this; - } - - /** - * @deprecated - */ - public setUsernames(usernames: Array): IRoomBuilder { - this.setMembersToBeAddedByUsernames(usernames); - return this; - } - - /** - * @deprecated - */ - public getUsernames(): Array { - const usernames = this.getMembersToBeAddedUsernames(); - if (usernames && usernames.length > 0) { - return usernames; - } - return this.room.usernames || []; - } - - public addMemberToBeAddedByUsername(username: string): IRoomBuilder { - this.members.push(username); - return this; - } - - public setMembersToBeAddedByUsernames(usernames: Array): IRoomBuilder { - this.members = usernames; - return this; - } - - public getMembersToBeAddedUsernames(): Array { - return this.members; - } - - public setDefault(isDefault: boolean): IRoomBuilder { - this.room.isDefault = isDefault; - return this; - } - - public getIsDefault(): boolean { - return this.room.isDefault!; - } - - public setReadOnly(isReadOnly: boolean): IRoomBuilder { - this.room.isReadOnly = isReadOnly; - return this; - } - - public getIsReadOnly(): boolean { - return this.room.isReadOnly!; - } - - public setDisplayingOfSystemMessages(displaySystemMessages: boolean): IRoomBuilder { - this.room.displaySystemMessages = displaySystemMessages; - return this; - } - - public getDisplayingOfSystemMessages(): boolean { - return this.room.displaySystemMessages!; - } - - public addCustomField(key: string, value: object): IRoomBuilder { - if (typeof this.room.customFields !== 'object') { - this.room.customFields = {}; - } - - this.room.customFields[key] = value; - return this; - } - - public setCustomFields(fields: { [key: string]: object }): IRoomBuilder { - this.room.customFields = fields; - return this; - } - - public getCustomFields(): { [key: string]: object } { - return this.room.customFields!; - } - - public getUserIds(): Array { - return this.room.userIds!; - } - - public getRoom(): IRoom { - return this.room; - } -} - diff --git a/deno-runtime/lib/accessors/UserBuilder.ts b/deno-runtime/lib/accessors/UserBuilder.ts deleted file mode 100644 index 05fcc3d1f..000000000 --- a/deno-runtime/lib/accessors/UserBuilder.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { IUserBuilder } from '@rocket.chat/apps-engine/definition/accessors/IUserBuilder.ts'; -import { RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; -import { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; -import { IUserSettings } from '@rocket.chat/apps-engine/definition/users/IUserSettings.ts'; -import { IUserEmail } from '@rocket.chat/apps-engine/definition/users/IUserEmail.ts'; - -export class UserBuilder implements IUserBuilder { - public kind: RocketChatAssociationModel.USER; - - private user: Partial; - - constructor(user?: Partial) { - this.kind = RocketChatAssociationModel.USER; - this.user = user || ({} as Partial); - } - - public setData(data: Partial): IUserBuilder { - delete data.id; - this.user = data; - - return this; - } - - public setEmails(emails: Array): IUserBuilder { - this.user.emails = emails; - return this; - } - - public getEmails(): Array { - return this.user.emails!; - } - - public setDisplayName(name: string): IUserBuilder { - this.user.name = name; - return this; - } - - public getDisplayName(): string { - return this.user.name!; - } - - public setUsername(username: string): IUserBuilder { - this.user.username = username; - return this; - } - - public getUsername(): string { - return this.user.username!; - } - - public setRoles(roles: Array): IUserBuilder { - this.user.roles = roles; - return this; - } - - public getRoles(): Array { - return this.user.roles!; - } - - public getSettings(): Partial { - return this.user.settings; - } - - public getUser(): Partial { - if (!this.user.username) { - throw new Error('The "username" property is required.'); - } - - if (!this.user.name) { - throw new Error('The "name" property is required.'); - } - - return this.user; - } -} diff --git a/deno-runtime/lib/accessors/VideoConferenceBuilder.ts b/deno-runtime/lib/accessors/VideoConferenceBuilder.ts deleted file mode 100644 index 2b7af6c6a..000000000 --- a/deno-runtime/lib/accessors/VideoConferenceBuilder.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { IVideoConferenceBuilder } from "@rocket.chat/apps-engine/definition/accessors/IVideoConferenceBuilder.ts"; -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import type { IGroupVideoConference } from "@rocket.chat/apps-engine/definition/videoConferences/IVideoConference.ts"; - -export type AppVideoConference = Pick & { - createdBy: IGroupVideoConference['createdBy']['_id']; -}; - - -export class VideoConferenceBuilder implements IVideoConferenceBuilder { - public kind: RocketChatAssociationModel.VIDEO_CONFERENCE = RocketChatAssociationModel.VIDEO_CONFERENCE; - - protected call: AppVideoConference; - - constructor(data?: Partial) { - this.call = (data || {}) as AppVideoConference; - } - - public setData(data: Partial): IVideoConferenceBuilder { - this.call = { - rid: data.rid!, - createdBy: data.createdBy, - providerName: data.providerName!, - title: data.title!, - }; - - return this; - } - - public setRoomId(rid: string): IVideoConferenceBuilder { - this.call.rid = rid; - return this; - } - - public getRoomId(): string { - return this.call.rid; - } - - public setCreatedBy(userId: string): IVideoConferenceBuilder { - this.call.createdBy = userId; - return this; - } - - public getCreatedBy(): string { - return this.call.createdBy; - } - - public setProviderName(userId: string): IVideoConferenceBuilder { - this.call.providerName = userId; - return this; - } - - public getProviderName(): string { - return this.call.providerName; - } - - public setProviderData(data: Record | undefined): IVideoConferenceBuilder { - this.call.providerData = data; - return this; - } - - public getProviderData(): Record { - return this.call.providerData!; - } - - public setTitle(userId: string): IVideoConferenceBuilder { - this.call.title = userId; - return this; - } - - public getTitle(): string { - return this.call.title; - } - - public getVideoConference(): AppVideoConference { - return this.call; - } -} - diff --git a/deno-runtime/lib/accessors/builders/BlockBuilder.ts b/deno-runtime/lib/accessors/builders/BlockBuilder.ts index d643792fa..73aad8002 100644 --- a/deno-runtime/lib/accessors/builders/BlockBuilder.ts +++ b/deno-runtime/lib/accessors/builders/BlockBuilder.ts @@ -1,7 +1,7 @@ import { v1 as uuid } from 'uuid'; -import { - BlockType, +import type { + BlockType as _BlockType, IActionsBlock, IBlock, IConditionalBlock, @@ -10,8 +10,9 @@ import { IImageBlock, IInputBlock, ISectionBlock, -} from "@rocket.chat/apps-engine/definition/uikit/blocks/Blocks.ts"; +} from '@rocket.chat/apps-engine/definition/uikit/blocks/Blocks.ts'; import type { + BlockElementType as _BlockElementType, IBlockElement, IButtonElement, IImageElement, @@ -23,10 +24,14 @@ import type { ISelectElement, IStaticSelectElement, } from '@rocket.chat/apps-engine/definition/uikit/blocks/Elements.ts'; -import { BlockElementType } from '@rocket.chat/apps-engine/definition/uikit/blocks/Elements.ts'; -import type { ITextObject } from '@rocket.chat/apps-engine/definition/uikit/blocks/Objects.ts'; -import { TextObjectType } from '@rocket.chat/apps-engine/definition/uikit/blocks/Objects.ts'; -import { AppObjectRegistry } from "../../../AppObjectRegistry.ts"; +import type { ITextObject, TextObjectType as _TextObjectType } from '@rocket.chat/apps-engine/definition/uikit/blocks/Objects.ts'; + +import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; +import { require } from '../../../lib/require.ts'; + +const { BlockType } = require('@rocket.chat/apps-engine/definition/uikit/blocks/Blocks.js') as { BlockType: typeof _BlockType }; +const { BlockElementType } = require('@rocket.chat/apps-engine/definition/uikit/blocks/Elements.js') as { BlockElementType: typeof _BlockElementType }; +const { TextObjectType } = require('@rocket.chat/apps-engine/definition/uikit/blocks/Objects.js') as { TextObjectType: typeof _TextObjectType }; type BlockFunctionParameter = Omit; type ElementFunctionParameter = T extends IInteractiveElement @@ -97,7 +102,11 @@ export class BlockBuilder { public addConditionalBlock(innerBlocks: BlockBuilder | Array, condition?: IConditionalBlockFilters): BlockBuilder { const render = innerBlocks instanceof BlockBuilder ? innerBlocks.getBlocks() : innerBlocks; - this.addBlock({ type: BlockType.CONDITIONAL, render, when: condition } as IConditionalBlock); + this.addBlock({ + type: BlockType.CONDITIONAL, + render, + when: condition, + } as IConditionalBlock); return this; } @@ -204,5 +213,4 @@ export class BlockBuilder { private generateActionId(): string { return uuid(); } - } diff --git a/deno-runtime/lib/accessors/builders/DiscussionBuilder.ts b/deno-runtime/lib/accessors/builders/DiscussionBuilder.ts index b69142eff..e2c2dc021 100644 --- a/deno-runtime/lib/accessors/builders/DiscussionBuilder.ts +++ b/deno-runtime/lib/accessors/builders/DiscussionBuilder.ts @@ -1,17 +1,24 @@ -import type { IDiscussionBuilder as _IDiscussionBuilder } from "@rocket.chat/apps-engine/definition/accessors/IDiscussionBuilder.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"; -import type { IRoomBuilder } from "@rocket.chat/apps-engine/definition/accessors/IRoomBuilder.ts"; +import type { IDiscussionBuilder as _IDiscussionBuilder } from '@rocket.chat/apps-engine/definition/accessors/IDiscussionBuilder.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'; +import type { IRoomBuilder } from '@rocket.chat/apps-engine/definition/accessors/IRoomBuilder.ts'; -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import { RoomType } from "@rocket.chat/apps-engine/definition/rooms/RoomType.ts"; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; +import type { RoomType as _RoomType } from '@rocket.chat/apps-engine/definition/rooms/RoomType.ts'; -import { RoomBuilder } from "./RoomBuilder.ts"; +import { RoomBuilder } from './RoomBuilder.ts'; +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; + +const { RoomType } = require('@rocket.chat/apps-engine/definition/rooms/RoomType.js') as { RoomType: typeof _RoomType }; export interface IDiscussionBuilder extends _IDiscussionBuilder, IRoomBuilder {} export class DiscussionBuilder extends RoomBuilder implements IDiscussionBuilder { - public kind: RocketChatAssociationModel.DISCUSSION; + public kind: _RocketChatAssociationModel.DISCUSSION; private reply?: string; @@ -50,4 +57,3 @@ export class DiscussionBuilder extends RoomBuilder implements IDiscussionBuilder return this.parentMessage!; } } - diff --git a/deno-runtime/lib/accessors/builders/LivechatMessageBuilder.ts b/deno-runtime/lib/accessors/builders/LivechatMessageBuilder.ts index b90081e23..a12024ab7 100644 --- a/deno-runtime/lib/accessors/builders/LivechatMessageBuilder.ts +++ b/deno-runtime/lib/accessors/builders/LivechatMessageBuilder.ts @@ -1,21 +1,28 @@ -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import { RoomType } from "@rocket.chat/apps-engine/definition/rooms/RoomType.ts"; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; +import type { RoomType as _RoomType } from '@rocket.chat/apps-engine/definition/rooms/RoomType.ts'; -import type { ILivechatMessageBuilder } from "@rocket.chat/apps-engine/definition/accessors/ILivechatMessageBuilder.ts"; +import type { ILivechatMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/ILivechatMessageBuilder.ts'; import type { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts'; import type { IMessageAttachment } from '@rocket.chat/apps-engine/definition/messages/IMessageAttachment.ts'; import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts'; import type { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; import type { ILivechatMessage as EngineLivechatMessage } from '@rocket.chat/apps-engine/definition/livechat/ILivechatMessage.ts'; -import type { IVisitor } from "@rocket.chat/apps-engine/definition/livechat/IVisitor.ts"; -import type { IMessageBuilder } from "@rocket.chat/apps-engine/definition/accessors/IMessageBuilder.ts"; +import type { IVisitor } from '@rocket.chat/apps-engine/definition/livechat/IVisitor.ts'; +import type { IMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/IMessageBuilder.ts'; -import { MessageBuilder } from "./MessageBuilder.ts"; +import { MessageBuilder } from './MessageBuilder.ts'; +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; + +const { RoomType } = require('@rocket.chat/apps-engine/definition/rooms/RoomType.js') as { RoomType: typeof _RoomType }; export interface ILivechatMessage extends EngineLivechatMessage, IMessage {} export class LivechatMessageBuilder implements ILivechatMessageBuilder { - public kind: RocketChatAssociationModel.LIVECHAT_MESSAGE; + public kind: _RocketChatAssociationModel.LIVECHAT_MESSAGE; private msg: ILivechatMessage; @@ -195,4 +202,3 @@ export class LivechatMessageBuilder implements ILivechatMessageBuilder { return new MessageBuilder(this.msg as IMessage); } } - diff --git a/deno-runtime/lib/accessors/builders/MessageBuilder.ts b/deno-runtime/lib/accessors/builders/MessageBuilder.ts index f8bebbcc4..f01725819 100644 --- a/deno-runtime/lib/accessors/builders/MessageBuilder.ts +++ b/deno-runtime/lib/accessors/builders/MessageBuilder.ts @@ -1,16 +1,22 @@ import { Block } from '@rocket.chat/ui-kit'; -import { IMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/IMessageBuilder.ts'; -import { RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; -import { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts'; -import { IMessageAttachment } from '@rocket.chat/apps-engine/definition/messages/IMessageAttachment.ts'; -import { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; -import { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts'; -import { IBlock } from '@rocket.chat/apps-engine/definition/uikit/blocks/Blocks.ts'; -import { BlockBuilder } from "./BlockBuilder.ts"; +import type { IMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/IMessageBuilder.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; +import type { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts'; +import type { IMessageAttachment } from '@rocket.chat/apps-engine/definition/messages/IMessageAttachment.ts'; +import type { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; +import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts'; +import type { IBlock } from '@rocket.chat/apps-engine/definition/uikit/blocks/Blocks.ts'; + +import { BlockBuilder } from './BlockBuilder.ts'; +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class MessageBuilder implements IMessageBuilder { - public kind: RocketChatAssociationModel.MESSAGE; + public kind: _RocketChatAssociationModel.MESSAGE; private msg: IMessage; diff --git a/deno-runtime/lib/accessors/builders/RoomBuilder.ts b/deno-runtime/lib/accessors/builders/RoomBuilder.ts index 19b634b37..389834751 100644 --- a/deno-runtime/lib/accessors/builders/RoomBuilder.ts +++ b/deno-runtime/lib/accessors/builders/RoomBuilder.ts @@ -1,11 +1,18 @@ -import { IRoomBuilder } from "@rocket.chat/apps-engine/definition/accessors/IRoomBuilder.ts"; -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import { IRoom } from "@rocket.chat/apps-engine/definition/rooms/IRoom.ts"; -import { RoomType } from "@rocket.chat/apps-engine/definition/rooms/RoomType.ts"; -import { IUser } from "@rocket.chat/apps-engine/definition/users/IUser.ts"; +import type { IRoomBuilder } from '@rocket.chat/apps-engine/definition/accessors/IRoomBuilder.ts'; +import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts'; +import type { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; + +import type { RoomType } from '@rocket.chat/apps-engine/definition/rooms/RoomType.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; + +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class RoomBuilder implements IRoomBuilder { - public kind: RocketChatAssociationModel.ROOM | RocketChatAssociationModel.DISCUSSION; + public kind: _RocketChatAssociationModel.ROOM | _RocketChatAssociationModel.DISCUSSION; protected room: IRoom; @@ -154,4 +161,3 @@ export class RoomBuilder implements IRoomBuilder { return this.room; } } - diff --git a/deno-runtime/lib/accessors/builders/UserBuilder.ts b/deno-runtime/lib/accessors/builders/UserBuilder.ts index 05fcc3d1f..01c11a13f 100644 --- a/deno-runtime/lib/accessors/builders/UserBuilder.ts +++ b/deno-runtime/lib/accessors/builders/UserBuilder.ts @@ -1,11 +1,17 @@ -import { IUserBuilder } from '@rocket.chat/apps-engine/definition/accessors/IUserBuilder.ts'; -import { RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; -import { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; -import { IUserSettings } from '@rocket.chat/apps-engine/definition/users/IUserSettings.ts'; -import { IUserEmail } from '@rocket.chat/apps-engine/definition/users/IUserEmail.ts'; +import type { IUserBuilder } from '@rocket.chat/apps-engine/definition/accessors/IUserBuilder.ts'; +import type { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; +import type { IUserSettings } from '@rocket.chat/apps-engine/definition/users/IUserSettings.ts'; +import type { IUserEmail } from '@rocket.chat/apps-engine/definition/users/IUserEmail.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; + +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class UserBuilder implements IUserBuilder { - public kind: RocketChatAssociationModel.USER; + public kind: _RocketChatAssociationModel.USER; private user: Partial; diff --git a/deno-runtime/lib/accessors/builders/VideoConferenceBuilder.ts b/deno-runtime/lib/accessors/builders/VideoConferenceBuilder.ts index fad79aa3f..f29c62504 100644 --- a/deno-runtime/lib/accessors/builders/VideoConferenceBuilder.ts +++ b/deno-runtime/lib/accessors/builders/VideoConferenceBuilder.ts @@ -1,13 +1,20 @@ -import { IVideoConferenceBuilder } from "@rocket.chat/apps-engine/definition/accessors/IVideoConferenceBuilder.ts"; -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import type { IGroupVideoConference } from "@rocket.chat/apps-engine/definition/videoConferences/IVideoConference.ts"; +import type { IVideoConferenceBuilder } from '@rocket.chat/apps-engine/definition/accessors/IVideoConferenceBuilder.ts'; +import type { IGroupVideoConference } from '@rocket.chat/apps-engine/definition/videoConferences/IVideoConference.ts'; + +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; + +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export type AppVideoConference = Pick & { createdBy: IGroupVideoConference['createdBy']['_id']; }; export class VideoConferenceBuilder implements IVideoConferenceBuilder { - public kind: RocketChatAssociationModel.VIDEO_CONFERENCE = RocketChatAssociationModel.VIDEO_CONFERENCE; + public kind: _RocketChatAssociationModel.VIDEO_CONFERENCE = RocketChatAssociationModel.VIDEO_CONFERENCE; protected call: AppVideoConference; @@ -75,4 +82,3 @@ export class VideoConferenceBuilder implements IVideoConferenceBuilder { return this.call; } } - diff --git a/deno-runtime/lib/accessors/extenders/MessageExtender.ts b/deno-runtime/lib/accessors/extenders/MessageExtender.ts index 12eae78df..abf1629c7 100644 --- a/deno-runtime/lib/accessors/extenders/MessageExtender.ts +++ b/deno-runtime/lib/accessors/extenders/MessageExtender.ts @@ -1,10 +1,16 @@ -import { IMessageExtender } from '@rocket.chat/apps-engine/definition/accessors/IMessageExtender.ts'; -import { RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; -import { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts'; -import { IMessageAttachment } from '@rocket.chat/apps-engine/definition/messages/IMessageAttachment.ts'; +import type { IMessageExtender } from '@rocket.chat/apps-engine/definition/accessors/IMessageExtender.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; +import type { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts'; +import type { IMessageAttachment } from '@rocket.chat/apps-engine/definition/messages/IMessageAttachment.ts'; + +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class MessageExtender implements IMessageExtender { - public readonly kind: RocketChatAssociationModel.MESSAGE; + public readonly kind: _RocketChatAssociationModel.MESSAGE; constructor(private msg: IMessage) { this.kind = RocketChatAssociationModel.MESSAGE; diff --git a/deno-runtime/lib/accessors/extenders/RoomExtender.ts b/deno-runtime/lib/accessors/extenders/RoomExtender.ts index 7063bf90e..6509d5dae 100644 --- a/deno-runtime/lib/accessors/extenders/RoomExtender.ts +++ b/deno-runtime/lib/accessors/extenders/RoomExtender.ts @@ -1,10 +1,16 @@ -import { IRoomExtender } from "@rocket.chat/apps-engine/definition/accessors/IRoomExtender.ts"; -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; -import { IRoom } from "@rocket.chat/apps-engine/definition/rooms/IRoom.ts"; -import { IUser } from "@rocket.chat/apps-engine/definition/users/IUser.ts"; +import type { IRoomExtender } from '@rocket.chat/apps-engine/definition/accessors/IRoomExtender.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; +import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts'; +import type { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; + +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class RoomExtender implements IRoomExtender { - public kind: RocketChatAssociationModel.ROOM; + public kind: _RocketChatAssociationModel.ROOM; private members: Array; diff --git a/deno-runtime/lib/accessors/extenders/VideoConferenceExtend.ts b/deno-runtime/lib/accessors/extenders/VideoConferenceExtend.ts index 5e1027541..ff7265ce7 100644 --- a/deno-runtime/lib/accessors/extenders/VideoConferenceExtend.ts +++ b/deno-runtime/lib/accessors/extenders/VideoConferenceExtend.ts @@ -1,10 +1,16 @@ -import type { IVideoConferenceExtender } from "@rocket.chat/apps-engine/definition/accessors/IVideoConferenceExtend.ts"; -import type { VideoConference, VideoConferenceMember } from "@rocket.chat/apps-engine/definition/videoConferences/IVideoConference.ts"; -import type { IVideoConferenceUser } from "@rocket.chat/apps-engine/definition/videoConferences/IVideoConferenceUser.ts"; -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; +import type { IVideoConferenceExtender } from '@rocket.chat/apps-engine/definition/accessors/IVideoConferenceExtend.ts'; +import type { VideoConference, VideoConferenceMember } from '@rocket.chat/apps-engine/definition/videoConferences/IVideoConference.ts'; +import type { IVideoConferenceUser } from '@rocket.chat/apps-engine/definition/videoConferences/IVideoConferenceUser.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; + +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class VideoConferenceExtender implements IVideoConferenceExtender { - public kind: RocketChatAssociationModel.VIDEO_CONFERENCE; + public kind: _RocketChatAssociationModel.VIDEO_CONFERENCE; constructor(private videoConference: VideoConference) { this.kind = RocketChatAssociationModel.VIDEO_CONFERENCE; diff --git a/deno-runtime/lib/accessors/modify/ModifyCreator.ts b/deno-runtime/lib/accessors/modify/ModifyCreator.ts index 471280b00..b3f0018e7 100644 --- a/deno-runtime/lib/accessors/modify/ModifyCreator.ts +++ b/deno-runtime/lib/accessors/modify/ModifyCreator.ts @@ -1,20 +1,18 @@ -import { createRequire } from 'node:module'; - 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 { 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'; import type { IBotUser } from '@rocket.chat/apps-engine/definition/users/IBotUser.ts'; - -import { UserType } from '@rocket.chat/apps-engine/definition/users/UserType.ts'; -import { RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; -import { IMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/IMessageBuilder.ts'; -import { IRoomBuilder } from '@rocket.chat/apps-engine/definition/accessors/IRoomBuilder.ts'; -import { IUserBuilder } from '@rocket.chat/apps-engine/definition/accessors/IUserBuilder.ts'; -import { IVideoConferenceBuilder } from '@rocket.chat/apps-engine/definition/accessors/IVideoConferenceBuilder.ts'; -import { RoomType } from '@rocket.chat/apps-engine/definition/rooms/RoomType.ts'; -import { ILivechatMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/ILivechatMessageBuilder.ts'; +import type { UserType as _UserType } from '@rocket.chat/apps-engine/definition/users/UserType.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; +import type { IMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/IMessageBuilder.ts'; +import type { IRoomBuilder } from '@rocket.chat/apps-engine/definition/accessors/IRoomBuilder.ts'; +import type { IUserBuilder } from '@rocket.chat/apps-engine/definition/accessors/IUserBuilder.ts'; +import type { IVideoConferenceBuilder } from '@rocket.chat/apps-engine/definition/accessors/IVideoConferenceBuilder.ts'; +import type { RoomType as _RoomType } from '@rocket.chat/apps-engine/definition/rooms/RoomType.ts'; +import type { ILivechatMessageBuilder } from '@rocket.chat/apps-engine/definition/accessors/ILivechatMessageBuilder.ts'; +import type { UIHelper as _UIHelper } from '@rocket.chat/apps-engine/server/misc/UIHelper.ts'; import * as Messenger from '../../messenger.ts'; @@ -26,11 +24,14 @@ import { RoomBuilder } from '../builders/RoomBuilder.ts'; import { UserBuilder } from '../builders/UserBuilder.ts'; import { AppVideoConference, VideoConferenceBuilder } from '../builders/VideoConferenceBuilder.ts'; import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; +import { require } from '../../../lib/require.ts'; -const require = createRequire(import.meta.url); - -// @deno-types="../../../../server/misc/UIHelper.d.ts" -const UIHelper = require(import.meta.resolve('@rocket.chat/apps-engine/server/misc/UIHelper.js').replace('file://', '').replace('src/', '')); +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 }; +const { UserType } = require('@rocket.chat/apps-engine/definition/users/UserType.js') as { UserType: typeof _UserType }; +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class ModifyCreator implements IModifyCreator { constructor(private readonly senderFn: typeof Messenger.sendRequest) {} @@ -182,7 +183,7 @@ export class ModifyCreator implements IModifyCreator { if (result.blocks?.length) { // Can we move this elsewhere? This AppObjectRegistry usage doesn't really belong here, but where? - result.blocks = UIHelper.assignIds(result.blocks, AppObjectRegistry.get('appId')); + result.blocks = UIHelper.assignIds(result.blocks, AppObjectRegistry.get('appId') || ''); } const response = await this.senderFn({ diff --git a/deno-runtime/lib/accessors/modify/ModifyExtender.ts b/deno-runtime/lib/accessors/modify/ModifyExtender.ts index e380b53e5..ac30bd538 100644 --- a/deno-runtime/lib/accessors/modify/ModifyExtender.ts +++ b/deno-runtime/lib/accessors/modify/ModifyExtender.ts @@ -1,18 +1,23 @@ import type { IModifyExtender } from '@rocket.chat/apps-engine/definition/accessors/IModifyExtender.ts'; import type { IMessage } from '@rocket.chat/apps-engine/definition/messages/IMessage.ts'; -import type { IMessageExtender } from "@rocket.chat/apps-engine/definition/accessors/IMessageExtender.ts"; -import type { IRoomExtender } from "@rocket.chat/apps-engine/definition/accessors/IRoomExtender.ts"; -import type { IVideoConferenceExtender } from "@rocket.chat/apps-engine/definition/accessors/IVideoConferenceExtend.ts"; -import type { IUser } from "@rocket.chat/apps-engine/definition/users/IUser.ts"; -import type { VideoConference } from "@rocket.chat/apps-engine/definition/videoConferences/IVideoConference.ts"; -import type { IRoom } from "@rocket.chat/apps-engine/definition/rooms/IRoom.ts"; -import { RocketChatAssociationModel } from "@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts"; +import type { IMessageExtender } from '@rocket.chat/apps-engine/definition/accessors/IMessageExtender.ts'; +import type { IRoomExtender } from '@rocket.chat/apps-engine/definition/accessors/IRoomExtender.ts'; +import type { IVideoConferenceExtender } from '@rocket.chat/apps-engine/definition/accessors/IVideoConferenceExtend.ts'; +import type { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.ts'; +import type { VideoConference } from '@rocket.chat/apps-engine/definition/videoConferences/IVideoConference.ts'; +import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms/IRoom.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; import * as Messenger from '../../messenger.ts'; -import { AppObjectRegistry } from "../../../AppObjectRegistry.ts"; -import { MessageExtender } from "../extenders/MessageExtender.ts"; -import { RoomExtender } from "../extenders/RoomExtender.ts"; -import { VideoConferenceExtender } from "../extenders/VideoConferenceExtend.ts"; +import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; +import { MessageExtender } from '../extenders/MessageExtender.ts'; +import { RoomExtender } from '../extenders/RoomExtender.ts'; +import { VideoConferenceExtender } from '../extenders/VideoConferenceExtend.ts'; +import { require } from '../../../lib/require.ts'; + +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class ModifyExtender implements IModifyExtender { constructor(private readonly senderFn: typeof Messenger.sendRequest) {} @@ -61,20 +66,24 @@ export class ModifyExtender implements IModifyExtender { switch (extender.kind) { case RocketChatAssociationModel.MESSAGE: await this.senderFn({ - method: 'bridges:getMessageBridge:doUpdate', - params: [(extender as IMessageExtender).getMessage(), AppObjectRegistry.get('appId')], + method: 'bridges:getMessageBridge:doUpdate', + params: [(extender as IMessageExtender).getMessage(), AppObjectRegistry.get('appId')], }); break; case RocketChatAssociationModel.ROOM: await this.senderFn({ - method: 'bridges:getRoomBridge:doUpdate', - params: [(extender as IRoomExtender).getRoom(), (extender as IRoomExtender).getUsernamesOfMembersBeingAdded(), AppObjectRegistry.get('appId')], + method: 'bridges:getRoomBridge:doUpdate', + params: [ + (extender as IRoomExtender).getRoom(), + (extender as IRoomExtender).getUsernamesOfMembersBeingAdded(), + AppObjectRegistry.get('appId'), + ], }); break; case RocketChatAssociationModel.VIDEO_CONFERENCE: await this.senderFn({ - method: 'bridges:getVideoConferenceBridge:doUpdate', - params: [(extender as IVideoConferenceExtender).getVideoConference(), AppObjectRegistry.get('appId')], + method: 'bridges:getVideoConferenceBridge:doUpdate', + params: [(extender as IVideoConferenceExtender).getVideoConference(), AppObjectRegistry.get('appId')], }); break; default: diff --git a/deno-runtime/lib/accessors/modify/ModifyUpdater.ts b/deno-runtime/lib/accessors/modify/ModifyUpdater.ts index 89f0da526..a5511f24c 100644 --- a/deno-runtime/lib/accessors/modify/ModifyUpdater.ts +++ b/deno-runtime/lib/accessors/modify/ModifyUpdater.ts @@ -1,5 +1,3 @@ -import { createRequire } from 'node:module'; - import type { IModifyUpdater } from '@rocket.chat/apps-engine/definition/accessors/IModifyUpdater.ts'; import type { ILivechatUpdater } from '@rocket.chat/apps-engine/definition/accessors/ILivechatUpdater.ts'; import type { IUserUpdater } from '@rocket.chat/apps-engine/definition/accessors/IUserUpdater.ts'; @@ -9,8 +7,9 @@ import type { IUser } from '@rocket.chat/apps-engine/definition/users/IUser.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'; -import { RoomType } from '@rocket.chat/apps-engine/definition/rooms/RoomType.ts'; -import { RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; +import type { UIHelper as _UIHelper } from '@rocket.chat/apps-engine/server/misc/UIHelper.ts'; +import type { RoomType as _RoomType } from '@rocket.chat/apps-engine/definition/rooms/RoomType.ts'; +import type { RocketChatAssociationModel as _RocketChatAssociationModel } from '@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.ts'; import * as Messenger from '../../messenger.ts'; @@ -18,9 +17,13 @@ import { MessageBuilder } from '../builders/MessageBuilder.ts'; import { RoomBuilder } from '../builders/RoomBuilder.ts'; import { AppObjectRegistry } from '../../../AppObjectRegistry.ts'; -const require = createRequire(import.meta.url); +import { require } from '../../../lib/require.ts'; -const UIHelper = require(import.meta.resolve('@rocket.chat/apps-engine/server/misc/UIHelper.js').replace('file://', '').replace('src/', '')); +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 }; +const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definition/metadata/RocketChatAssociations.js') as { + RocketChatAssociationModel: typeof _RocketChatAssociationModel; +}; export class ModifyUpdater implements IModifyUpdater { constructor(private readonly senderFn: typeof Messenger.sendRequest) {} @@ -100,7 +103,7 @@ export class ModifyUpdater implements IModifyUpdater { } if (result.blocks?.length) { - result.blocks = UIHelper.assignIds(result.blocks, AppObjectRegistry.get('appId')); + result.blocks = UIHelper.assignIds(result.blocks, AppObjectRegistry.get('appId') || ''); } await this.senderFn({