@nerimity/nerimity.js 1.11.0 → 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Client } from
|
|
2
|
-
import { RawMessage, RawMessageButton } from
|
|
1
|
+
import { Client } from "../Client";
|
|
2
|
+
import { RawMessage, RawMessageButton } from "../RawData";
|
|
3
3
|
interface PostMessageOpts {
|
|
4
4
|
client: Client;
|
|
5
5
|
channelId: string;
|
|
@@ -39,7 +39,7 @@ interface ButtonClickCallbackOpts {
|
|
|
39
39
|
export declare function buttonClickCallback(opts: ButtonClickCallbackOpts): Promise<unknown>;
|
|
40
40
|
interface RequestOpts {
|
|
41
41
|
url: string;
|
|
42
|
-
method:
|
|
42
|
+
method: "POST" | "GET" | "PUT" | "PATCH" | "DELETE";
|
|
43
43
|
body?: any;
|
|
44
44
|
useToken?: boolean;
|
|
45
45
|
notJSON?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI1D,UAAU,eAAe;
|
|
1
|
+
{"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI1D,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,uBAsBtD;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,uBAUhD;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB;aACzB,MAAM;GAQjC;AAED,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,oBAkBhE;AAED,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CA2B9D"}
|
|
@@ -10,11 +10,21 @@ async function postMessage(opts) {
|
|
|
10
10
|
return await request({
|
|
11
11
|
client: opts.client,
|
|
12
12
|
url: serviceEndpoints_1.ServiceEndpoints.PostMessage(opts.channelId),
|
|
13
|
-
method:
|
|
14
|
-
body: {
|
|
13
|
+
method: "POST",
|
|
14
|
+
body: {
|
|
15
|
+
content: opts.content,
|
|
16
|
+
nerimityCdnFileId: opts.nerimityCdnFileId,
|
|
17
|
+
htmlEmbed: opts.htmlEmbed,
|
|
18
|
+
buttons: opts.buttons,
|
|
19
|
+
silent: opts.silent,
|
|
20
|
+
mentionReplies: opts.mentionReplies,
|
|
21
|
+
replyToMessageIds: opts.replyToMessageIds,
|
|
22
|
+
},
|
|
15
23
|
useToken: true,
|
|
16
|
-
}).catch(err => {
|
|
17
|
-
|
|
24
|
+
}).catch((err) => {
|
|
25
|
+
const error = new Error(`Failed to send message. ${JSON.stringify(err.message)}`);
|
|
26
|
+
error.raw = err.message;
|
|
27
|
+
throw error;
|
|
18
28
|
});
|
|
19
29
|
}
|
|
20
30
|
exports.postMessage = postMessage;
|
|
@@ -22,33 +32,39 @@ function editMessage(opts) {
|
|
|
22
32
|
return request({
|
|
23
33
|
client: opts.client,
|
|
24
34
|
url: serviceEndpoints_1.ServiceEndpoints.EditMessage(opts.channelId, opts.messageId),
|
|
25
|
-
method:
|
|
35
|
+
method: "PATCH",
|
|
26
36
|
body: { content: opts.content },
|
|
27
37
|
useToken: true,
|
|
28
|
-
}).catch(err => {
|
|
38
|
+
}).catch((err) => {
|
|
39
|
+
throw err.message;
|
|
40
|
+
});
|
|
29
41
|
}
|
|
30
42
|
exports.editMessage = editMessage;
|
|
31
43
|
function deleteMessage(opts) {
|
|
32
44
|
return request({
|
|
33
45
|
client: opts.client,
|
|
34
46
|
url: serviceEndpoints_1.ServiceEndpoints.EditMessage(opts.channelId, opts.messageId),
|
|
35
|
-
method:
|
|
47
|
+
method: "DELETE",
|
|
36
48
|
useToken: true,
|
|
37
|
-
}).catch(err => {
|
|
49
|
+
}).catch((err) => {
|
|
50
|
+
throw err.message;
|
|
51
|
+
});
|
|
38
52
|
}
|
|
39
53
|
exports.deleteMessage = deleteMessage;
|
|
40
54
|
function buttonClickCallback(opts) {
|
|
41
55
|
return request({
|
|
42
56
|
client: opts.client,
|
|
43
57
|
url: serviceEndpoints_1.ServiceEndpoints.ButtonClickCallback(opts.channelId, opts.messageId, opts.buttonId),
|
|
44
|
-
method:
|
|
58
|
+
method: "POST",
|
|
45
59
|
body: {
|
|
46
60
|
userId: opts.userId,
|
|
47
61
|
title: opts.title,
|
|
48
|
-
content: opts.content
|
|
62
|
+
content: opts.content,
|
|
49
63
|
},
|
|
50
64
|
useToken: true,
|
|
51
|
-
}).catch(err => {
|
|
65
|
+
}).catch((err) => {
|
|
66
|
+
throw err.message;
|
|
67
|
+
});
|
|
52
68
|
}
|
|
53
69
|
exports.buttonClickCallback = buttonClickCallback;
|
|
54
70
|
async function request(opts) {
|
|
@@ -58,11 +74,12 @@ async function request(opts) {
|
|
|
58
74
|
method: opts.method,
|
|
59
75
|
body: JSON.stringify(opts.body),
|
|
60
76
|
headers: {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
})
|
|
65
|
-
|
|
77
|
+
"Content-Type": "application/json",
|
|
78
|
+
Authorization: opts.useToken ? opts.client.token : "",
|
|
79
|
+
},
|
|
80
|
+
}).catch((err) => {
|
|
81
|
+
throw { message: "Could not connect to server. " + err.message };
|
|
82
|
+
});
|
|
66
83
|
const text = await response.text();
|
|
67
84
|
if (opts.notJSON)
|
|
68
85
|
return text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageService.js","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":";;;;;;AAEA,yDAAsD;AACtD,4DAA+B;AAcxB,KAAK,UAAU,WAAW,CAAC,IAAqB;
|
|
1
|
+
{"version":3,"file":"MessageService.js","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,129 +1,146 @@
|
|
|
1
|
-
import { Client } from
|
|
2
|
-
import { RawMessage, RawMessageButton } from
|
|
3
|
-
import { ServiceEndpoints } from
|
|
4
|
-
import fetch from
|
|
1
|
+
import { Client } from "../Client";
|
|
2
|
+
import { RawMessage, RawMessageButton } from "../RawData";
|
|
3
|
+
import { ServiceEndpoints } from "./serviceEndpoints";
|
|
4
|
+
import fetch from "node-fetch";
|
|
5
5
|
|
|
6
6
|
interface PostMessageOpts {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
client: Client;
|
|
8
|
+
channelId: string;
|
|
9
|
+
content: string;
|
|
10
|
+
nerimityCdnFileId?: string;
|
|
11
|
+
htmlEmbed?: string;
|
|
12
|
+
buttons?: RawMessageButton[];
|
|
13
|
+
replyToMessageIds?: string[];
|
|
14
|
+
mentionReplies?: boolean;
|
|
15
|
+
silent?: boolean;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export async function postMessage(opts: PostMessageOpts) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
return await request<RawMessage>({
|
|
20
|
+
client: opts.client,
|
|
21
|
+
url: ServiceEndpoints.PostMessage(opts.channelId),
|
|
22
|
+
method: "POST",
|
|
23
|
+
body: {
|
|
24
|
+
content: opts.content,
|
|
25
|
+
nerimityCdnFileId: opts.nerimityCdnFileId,
|
|
26
|
+
htmlEmbed: opts.htmlEmbed,
|
|
27
|
+
buttons: opts.buttons,
|
|
28
|
+
silent: opts.silent,
|
|
29
|
+
mentionReplies: opts.mentionReplies,
|
|
30
|
+
replyToMessageIds: opts.replyToMessageIds,
|
|
31
|
+
},
|
|
32
|
+
useToken: true,
|
|
33
|
+
}).catch((err) => {
|
|
34
|
+
const error = new Error(
|
|
35
|
+
`Failed to send message. ${JSON.stringify(err.message)}`
|
|
36
|
+
);
|
|
37
|
+
(error as unknown as { raw: string }).raw = err.message;
|
|
38
|
+
throw error;
|
|
39
|
+
});
|
|
28
40
|
}
|
|
29
41
|
|
|
30
42
|
interface EditMessageOpts {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
43
|
+
client: Client;
|
|
44
|
+
channelId: string;
|
|
45
|
+
messageId: string;
|
|
46
|
+
content: string;
|
|
35
47
|
}
|
|
36
48
|
|
|
37
49
|
export function editMessage(opts: EditMessageOpts) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
return request<RawMessage>({
|
|
51
|
+
client: opts.client,
|
|
52
|
+
url: ServiceEndpoints.EditMessage(opts.channelId, opts.messageId),
|
|
53
|
+
method: "PATCH",
|
|
54
|
+
body: { content: opts.content },
|
|
55
|
+
useToken: true,
|
|
56
|
+
}).catch((err) => {
|
|
57
|
+
throw err.message;
|
|
58
|
+
});
|
|
45
59
|
}
|
|
46
60
|
|
|
47
61
|
interface DeleteMessageOpts {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
62
|
+
client: Client;
|
|
63
|
+
channelId: string;
|
|
64
|
+
messageId: string;
|
|
51
65
|
}
|
|
52
66
|
export function deleteMessage(opts: DeleteMessageOpts) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
67
|
+
return request<{ message: string }>({
|
|
68
|
+
client: opts.client,
|
|
69
|
+
url: ServiceEndpoints.EditMessage(opts.channelId, opts.messageId),
|
|
70
|
+
method: "DELETE",
|
|
71
|
+
useToken: true,
|
|
72
|
+
}).catch((err) => {
|
|
73
|
+
throw err.message;
|
|
74
|
+
});
|
|
59
75
|
}
|
|
60
76
|
|
|
61
77
|
interface ButtonClickCallbackOpts {
|
|
62
|
-
|
|
78
|
+
client: Client;
|
|
63
79
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
80
|
+
buttonId: string;
|
|
81
|
+
channelId: string;
|
|
82
|
+
messageId: string;
|
|
67
83
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
84
|
+
userId: string;
|
|
85
|
+
title?: string;
|
|
86
|
+
content?: string;
|
|
71
87
|
}
|
|
72
88
|
|
|
73
|
-
|
|
74
89
|
export function buttonClickCallback(opts: ButtonClickCallbackOpts) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
return request({
|
|
91
|
+
client: opts.client,
|
|
92
|
+
url: ServiceEndpoints.ButtonClickCallback(
|
|
93
|
+
opts.channelId,
|
|
94
|
+
opts.messageId,
|
|
95
|
+
opts.buttonId
|
|
96
|
+
),
|
|
97
|
+
method: "POST",
|
|
98
|
+
body: {
|
|
99
|
+
userId: opts.userId,
|
|
100
|
+
title: opts.title,
|
|
101
|
+
content: opts.content,
|
|
102
|
+
},
|
|
103
|
+
useToken: true,
|
|
104
|
+
}).catch((err) => {
|
|
105
|
+
throw err.message;
|
|
106
|
+
});
|
|
86
107
|
}
|
|
87
108
|
|
|
109
|
+
interface RequestOpts {
|
|
110
|
+
url: string;
|
|
111
|
+
method: "POST" | "GET" | "PUT" | "PATCH" | "DELETE";
|
|
112
|
+
body?: any;
|
|
113
|
+
useToken?: boolean;
|
|
114
|
+
notJSON?: boolean;
|
|
115
|
+
params?: Record<any, any>;
|
|
116
|
+
client: Client;
|
|
117
|
+
}
|
|
88
118
|
|
|
119
|
+
export async function request<T>(opts: RequestOpts): Promise<T> {
|
|
120
|
+
const url = new URL(opts.url);
|
|
121
|
+
url.search = new URLSearchParams(opts.params || {}).toString();
|
|
89
122
|
|
|
123
|
+
const response = await fetch(url, {
|
|
124
|
+
method: opts.method,
|
|
125
|
+
body: JSON.stringify(opts.body),
|
|
126
|
+
headers: {
|
|
127
|
+
"Content-Type": "application/json",
|
|
128
|
+
Authorization: opts.useToken ? opts.client.token! : "",
|
|
129
|
+
},
|
|
130
|
+
}).catch((err) => {
|
|
131
|
+
throw { message: "Could not connect to server. " + err.message };
|
|
132
|
+
});
|
|
90
133
|
|
|
134
|
+
const text = await response.text();
|
|
135
|
+
if (opts.notJSON) return text as T;
|
|
91
136
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
useToken?: boolean;
|
|
97
|
-
notJSON?: boolean;
|
|
98
|
-
params?: Record<any, any>;
|
|
99
|
-
client: Client;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export async function request<T>(opts: RequestOpts): Promise<T> {
|
|
103
|
-
const url = new URL(opts.url);
|
|
104
|
-
url.search = new URLSearchParams(opts.params || {}).toString();
|
|
105
|
-
|
|
106
|
-
const response = await fetch(url, {
|
|
107
|
-
method: opts.method,
|
|
108
|
-
body: JSON.stringify(opts.body),
|
|
109
|
-
headers: {
|
|
110
|
-
'Content-Type': 'application/json',
|
|
111
|
-
'Authorization': opts.useToken ? opts.client.token! : ''
|
|
112
|
-
}
|
|
113
|
-
})
|
|
114
|
-
.catch(err => { throw { message: 'Could not connect to server. ' + err.message }; });
|
|
115
|
-
|
|
116
|
-
const text = await response.text();
|
|
117
|
-
if (opts.notJSON) return text as T;
|
|
118
|
-
|
|
119
|
-
try {
|
|
120
|
-
const json = JSON.parse(text);
|
|
121
|
-
if (!response.ok) {
|
|
122
|
-
return Promise.reject(json);
|
|
123
|
-
}
|
|
124
|
-
return json;
|
|
125
|
-
} catch (e) {
|
|
126
|
-
throw {message: text};
|
|
137
|
+
try {
|
|
138
|
+
const json = JSON.parse(text);
|
|
139
|
+
if (!response.ok) {
|
|
140
|
+
return Promise.reject(json);
|
|
127
141
|
}
|
|
142
|
+
return json;
|
|
143
|
+
} catch (e) {
|
|
144
|
+
throw { message: text };
|
|
145
|
+
}
|
|
128
146
|
}
|
|
129
|
-
|