diff --git a/package.json b/package.json index 8f95b917..3389cc71 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "revolt.js", - "version": "3.0.3-alpha.3", + "version": "3.0.3-alpha.4", "main": "dist/index.js", "repository": "https://gitlab.insrt.uk/revolt/revolt.js", "author": "Paul Makles ", diff --git a/src/api/objects.ts b/src/api/objects.ts index 4f3b6320..05ef6a19 100644 --- a/src/api/objects.ts +++ b/src/api/objects.ts @@ -77,6 +77,20 @@ export namespace Channels { export type Channel = (SavedMessagesChannel | DirectMessageChannel | GroupChannel) + export type Metadata = ( + { type: 'File' } | + { type: 'Audio' } | + { type: 'Image', width: number, height: number } | + { type: 'Video', width: number, height: number } + ); + + export type Attachment = { + _id: string, + filename: string, + metadata: Metadata, + content_type: string + }; + export type Message = { _id: string, nonce?: string, @@ -84,6 +98,7 @@ export namespace Channels { author: string, content: string, + attachment: Attachment, edited?: { $date: string } } diff --git a/src/api/routes.ts b/src/api/routes.ts index e83cefb1..f5d9e75f 100644 --- a/src/api/routes.ts +++ b/src/api/routes.ts @@ -289,7 +289,8 @@ type Routes = route: '/channels/:id/messages', data: { content: string, - nonce: string + nonce: string, + attachment?: string }, response: Channels.Message } diff --git a/src/index.ts b/src/index.ts index ee6969b5..3a07063b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,7 @@ export { default as User } from './objects/User'; export { default as Message } from './objects/Message'; export { default as Channel, SavedMessagesChannel, DirectMessageChannel, GroupChannel } from './objects/Channel'; -export const LIBRARY_VERSION = '3.0.3-alpha.3'; +export const LIBRARY_VERSION = '3.0.3-alpha.4'; export const defaultConfig = { apiURL: 'https://api.revolt.chat', diff --git a/src/objects/Message.ts b/src/objects/Message.ts index 5ed7566b..30699a80 100644 --- a/src/objects/Message.ts +++ b/src/objects/Message.ts @@ -10,6 +10,7 @@ export default class Message { author: User; channel: Channel; content: string; + attachment: Channels.Attachment; edited?: Date; _author: string; @@ -30,6 +31,7 @@ export default class Message { let changedFields = hasChanged(this._data, data, !emitPatch); this.content = data.content ?? this.content; + this.attachment = data.attachment ?? this.attachment; if (data.edited) { this.edited = new Date(data.edited.$date); }