@f3liz/rescript-misskey-api 0.6.9 → 0.8.0
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.
- package/lib/es6/src/Misskey.mjs +472 -159
- package/lib/es6/src/bindings/Ofetch.mjs +2 -0
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkAccount.mjs +70 -48
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkAdmin.mjs +133 -98
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkAntennas.mjs +9 -6
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkApp.mjs +6 -4
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkAuth.mjs +6 -4
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkChannels.mjs +18 -12
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkCharts.mjs +6 -4
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkChat.mjs +70 -54
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkClips.mjs +12 -8
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkDefault.mjs +27 -20
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkDrive.mjs +35 -24
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkFederation.mjs +18 -12
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkFlash.mjs +9 -6
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkFlashs.mjs +3 -2
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkFollowing.mjs +21 -14
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkGallery.mjs +12 -8
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkGroups.mjs +30 -24
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkHashtags.mjs +6 -4
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkLists.mjs +9 -6
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkMeta.mjs +27 -18
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkNotes.mjs +85 -58
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkNotifications.mjs +2 -2
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkPages.mjs +8 -6
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkRole.mjs +9 -6
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkUsers.mjs +35 -24
- package/lib/es6/src/generated/kokonect-link/api/KokonectLinkWebhooks.mjs +7 -6
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoAccount.mjs +92 -68
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoAdmin.mjs +266 -214
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoAntennas.mjs +17 -12
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoApp.mjs +6 -4
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoAuth.mjs +14 -10
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoChannels.mjs +35 -26
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoCharts.mjs +72 -48
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoClip.mjs +4 -4
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoClips.mjs +17 -12
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoDefault.mjs +133 -110
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoDrive.mjs +51 -36
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoFederation.mjs +32 -22
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoFlash.mjs +12 -10
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoFlashs.mjs +5 -4
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoFollowing.mjs +27 -20
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoGallery.mjs +24 -18
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoHashtags.mjs +18 -12
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoLists.mjs +23 -18
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoMeta.mjs +71 -48
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoNonProductive.mjs +5 -4
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoNotes.mjs +96 -70
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoNotifications.mjs +8 -8
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoPages.mjs +17 -14
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoReactions.mjs +4 -4
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoResetPassword.mjs +4 -4
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoRole.mjs +12 -8
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoUsers.mjs +83 -56
- package/lib/es6/src/generated/misskey-io/api/MisskeyIoWebhooks.mjs +17 -14
- package/package.json +3 -2
- package/src/Misskey.res +423 -151
- package/src/bindings/Ofetch.res +14 -0
- package/src/generated/kokonect-link/api/KokonectLinkAccount.res +94 -166
- package/src/generated/kokonect-link/api/KokonectLinkAdmin.res +182 -329
- package/src/generated/kokonect-link/api/KokonectLinkAntennas.res +12 -21
- package/src/generated/kokonect-link/api/KokonectLinkApp.res +8 -14
- package/src/generated/kokonect-link/api/KokonectLinkAuth.res +8 -14
- package/src/generated/kokonect-link/api/KokonectLinkChannels.res +24 -42
- package/src/generated/kokonect-link/api/KokonectLinkCharts.res +8 -14
- package/src/generated/kokonect-link/api/KokonectLinkChat.res +97 -178
- package/src/generated/kokonect-link/api/KokonectLinkClips.res +16 -28
- package/src/generated/kokonect-link/api/KokonectLinkDefault.res +37 -67
- package/src/generated/kokonect-link/api/KokonectLinkDrive.res +47 -83
- package/src/generated/kokonect-link/api/KokonectLinkFederation.res +24 -42
- package/src/generated/kokonect-link/api/KokonectLinkFlash.res +12 -21
- package/src/generated/kokonect-link/api/KokonectLinkFlashs.res +4 -7
- package/src/generated/kokonect-link/api/KokonectLinkFollowing.res +28 -49
- package/src/generated/kokonect-link/api/KokonectLinkGallery.res +16 -28
- package/src/generated/kokonect-link/api/KokonectLinkGroups.res +42 -78
- package/src/generated/kokonect-link/api/KokonectLinkHashtags.res +8 -14
- package/src/generated/kokonect-link/api/KokonectLinkLists.res +12 -21
- package/src/generated/kokonect-link/api/KokonectLinkMeta.res +36 -63
- package/src/generated/kokonect-link/api/KokonectLinkNotes.res +114 -201
- package/src/generated/kokonect-link/api/KokonectLinkNotifications.res +3 -6
- package/src/generated/kokonect-link/api/KokonectLinkPages.res +11 -20
- package/src/generated/kokonect-link/api/KokonectLinkRole.res +12 -21
- package/src/generated/kokonect-link/api/KokonectLinkUsers.res +47 -83
- package/src/generated/kokonect-link/api/KokonectLinkWebhooks.res +10 -19
- package/src/generated/misskey-io/api/MisskeyIoAccount.res +126 -228
- package/src/generated/misskey-io/api/MisskeyIoAdmin.res +373 -694
- package/src/generated/misskey-io/api/MisskeyIoAntennas.res +23 -41
- package/src/generated/misskey-io/api/MisskeyIoApp.res +8 -14
- package/src/generated/misskey-io/api/MisskeyIoAuth.res +19 -34
- package/src/generated/misskey-io/api/MisskeyIoChannels.res +48 -87
- package/src/generated/misskey-io/api/MisskeyIoCharts.res +96 -168
- package/src/generated/misskey-io/api/MisskeyIoClip.res +6 -12
- package/src/generated/misskey-io/api/MisskeyIoClips.res +23 -41
- package/src/generated/misskey-io/api/MisskeyIoDefault.res +188 -353
- package/src/generated/misskey-io/api/MisskeyIoDrive.res +69 -123
- package/src/generated/misskey-io/api/MisskeyIoFederation.res +43 -76
- package/src/generated/misskey-io/api/MisskeyIoFlash.res +17 -32
- package/src/generated/misskey-io/api/MisskeyIoFlashs.res +7 -13
- package/src/generated/misskey-io/api/MisskeyIoFollowing.res +37 -67
- package/src/generated/misskey-io/api/MisskeyIoGallery.res +33 -60
- package/src/generated/misskey-io/api/MisskeyIoHashtags.res +24 -42
- package/src/generated/misskey-io/api/MisskeyIoLists.res +32 -59
- package/src/generated/misskey-io/api/MisskeyIoMeta.res +95 -167
- package/src/generated/misskey-io/api/MisskeyIoNonProductive.res +7 -13
- package/src/generated/misskey-io/api/MisskeyIoNotes.res +131 -236
- package/src/generated/misskey-io/api/MisskeyIoNotifications.res +12 -24
- package/src/generated/misskey-io/api/MisskeyIoPages.res +24 -45
- package/src/generated/misskey-io/api/MisskeyIoReactions.res +6 -12
- package/src/generated/misskey-io/api/MisskeyIoResetPassword.res +6 -12
- package/src/generated/misskey-io/api/MisskeyIoRole.res +16 -28
- package/src/generated/misskey-io/api/MisskeyIoUsers.res +111 -195
- package/src/generated/misskey-io/api/MisskeyIoWebhooks.res +24 -45
package/lib/es6/src/Misskey.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
3
|
import * as S from "sury/lib/es6/src/S.mjs";
|
|
4
|
+
import * as Ofetch from "ofetch";
|
|
4
5
|
import * as Stdlib_JSON from "@rescript/runtime/lib/es6/Stdlib_JSON.js";
|
|
5
6
|
import * as Stdlib_Array from "@rescript/runtime/lib/es6/Stdlib_Array.js";
|
|
6
7
|
import * as Stdlib_JsExn from "@rescript/runtime/lib/es6/Stdlib_JsExn.js";
|
|
7
8
|
import * as StreamClient from "./stream/StreamClient.mjs";
|
|
8
9
|
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
9
|
-
import * as Stdlib_Promise from "@rescript/runtime/lib/es6/Stdlib_Promise.js";
|
|
10
10
|
import * as MisskeyIoWrapper from "./generated/misskey-io/MisskeyIoWrapper.mjs";
|
|
11
11
|
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
|
|
12
12
|
import * as StreamConnection from "./stream/StreamConnection.mjs";
|
|
@@ -14,47 +14,35 @@ import * as Primitive_exceptions from "@rescript/runtime/lib/es6/Primitive_excep
|
|
|
14
14
|
|
|
15
15
|
S.enableJson();
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
function injectToken(body, token) {
|
|
18
|
+
if (body !== undefined) {
|
|
19
|
+
if (token === undefined) {
|
|
20
|
+
return body;
|
|
21
|
+
}
|
|
22
|
+
let obj = Stdlib_JSON.Decode.object(body);
|
|
23
|
+
if (obj !== undefined) {
|
|
24
|
+
obj["i"] = token;
|
|
25
|
+
return obj;
|
|
26
|
+
} else {
|
|
27
|
+
return body;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (token === undefined) {
|
|
31
|
+
return body;
|
|
32
|
+
}
|
|
33
|
+
let obj$1 = {};
|
|
34
|
+
obj$1["i"] = token;
|
|
35
|
+
return obj$1;
|
|
36
|
+
}
|
|
18
37
|
|
|
19
38
|
function defaultFetch(origin, token) {
|
|
20
39
|
return (url, method_, body) => {
|
|
21
|
-
let
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (token !== undefined) {
|
|
25
|
-
let obj = Stdlib_JSON.Decode.object(body);
|
|
26
|
-
if (obj !== undefined) {
|
|
27
|
-
obj["i"] = token;
|
|
28
|
-
bodyWithToken = obj;
|
|
29
|
-
} else {
|
|
30
|
-
bodyWithToken = body;
|
|
31
|
-
}
|
|
32
|
-
} else {
|
|
33
|
-
bodyWithToken = body;
|
|
34
|
-
}
|
|
35
|
-
} else if (token !== undefined) {
|
|
36
|
-
let obj$1 = {};
|
|
37
|
-
obj$1["i"] = token;
|
|
38
|
-
bodyWithToken = obj$1;
|
|
39
|
-
} else {
|
|
40
|
-
bodyWithToken = body;
|
|
41
|
-
}
|
|
42
|
-
let bodyStr = Stdlib_Option.map(bodyWithToken, json => JSON.stringify(json));
|
|
43
|
-
let headers = {};
|
|
44
|
-
headers["Content-Type"] = "application/json";
|
|
45
|
-
return fetch(fullUrl, {
|
|
40
|
+
let bodyWithToken = injectToken(body, token);
|
|
41
|
+
return Ofetch.ofetch(url, {
|
|
42
|
+
baseURL: origin + `/api`,
|
|
46
43
|
method: method_,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}).then(response => {
|
|
50
|
-
if (response.ok) {
|
|
51
|
-
return response.json();
|
|
52
|
-
}
|
|
53
|
-
let msg = `API error: ` + response.status.toString() + ` ` + response.statusText;
|
|
54
|
-
return Promise.reject({
|
|
55
|
-
RE_EXN_ID: "JsExn",
|
|
56
|
-
_1: new Error(msg)
|
|
57
|
-
});
|
|
44
|
+
body: bodyWithToken,
|
|
45
|
+
retry: 0
|
|
58
46
|
});
|
|
59
47
|
};
|
|
60
48
|
}
|
|
@@ -73,19 +61,42 @@ function wrapperConnect(client) {
|
|
|
73
61
|
return MisskeyIoWrapper.connect(client.origin, client.token, client.fetchFn, undefined);
|
|
74
62
|
}
|
|
75
63
|
|
|
76
|
-
function request(client, endpoint, paramsOpt, param) {
|
|
64
|
+
async function request(client, endpoint, paramsOpt, param) {
|
|
77
65
|
let params = paramsOpt !== undefined ? paramsOpt : ({});
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
66
|
+
try {
|
|
67
|
+
let json = await client.fetchFn(endpoint, "POST", params);
|
|
68
|
+
return {
|
|
69
|
+
TAG: "Ok",
|
|
70
|
+
_0: json
|
|
71
|
+
};
|
|
72
|
+
} catch (raw_err) {
|
|
73
|
+
let err = Primitive_exceptions.internalToException(raw_err);
|
|
74
|
+
let errorData = err.data;
|
|
82
75
|
let jsExn = Stdlib_JsExn.fromException(err);
|
|
83
|
-
let
|
|
84
|
-
|
|
76
|
+
let baseMsg = jsExn !== undefined ? Stdlib_Option.getOr(Stdlib_JsExn.message(Primitive_option.valFromOption(jsExn)), "Unknown error") : "Unknown error";
|
|
77
|
+
let msg;
|
|
78
|
+
if (errorData !== undefined) {
|
|
79
|
+
let obj = Stdlib_JSON.Decode.object(errorData);
|
|
80
|
+
if (obj !== undefined) {
|
|
81
|
+
let errObj = Stdlib_Option.flatMap(obj["error"], Stdlib_JSON.Decode.object);
|
|
82
|
+
if (errObj !== undefined) {
|
|
83
|
+
let code = Stdlib_Option.getOr(Stdlib_Option.flatMap(errObj["code"], Stdlib_JSON.Decode.string), "");
|
|
84
|
+
let message = Stdlib_Option.getOr(Stdlib_Option.flatMap(errObj["message"], Stdlib_JSON.Decode.string), "");
|
|
85
|
+
msg = baseMsg + ` [` + code + `] ` + message;
|
|
86
|
+
} else {
|
|
87
|
+
msg = baseMsg;
|
|
88
|
+
}
|
|
89
|
+
} else {
|
|
90
|
+
msg = baseMsg;
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
msg = baseMsg;
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
85
96
|
TAG: "Error",
|
|
86
97
|
_0: msg
|
|
87
|
-
}
|
|
88
|
-
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
89
100
|
}
|
|
90
101
|
|
|
91
102
|
function currentUser(client) {
|
|
@@ -96,12 +107,16 @@ function origin(client) {
|
|
|
96
107
|
return client.origin;
|
|
97
108
|
}
|
|
98
109
|
|
|
110
|
+
function token(client) {
|
|
111
|
+
return client.token;
|
|
112
|
+
}
|
|
113
|
+
|
|
99
114
|
function close(client) {
|
|
100
115
|
Stdlib_Option.forEach(client.streamClient, StreamClient.close);
|
|
101
116
|
client.streamClient = undefined;
|
|
102
117
|
}
|
|
103
118
|
|
|
104
|
-
function create(client, text, visibilityOpt, cw, localOnlyOpt, replyId, renoteId, param) {
|
|
119
|
+
function create(client, text, visibilityOpt, cw, localOnlyOpt, replyId, renoteId, fileIds, param) {
|
|
105
120
|
let visibility = visibilityOpt !== undefined ? visibilityOpt : "public";
|
|
106
121
|
let localOnly = localOnlyOpt !== undefined ? localOnlyOpt : false;
|
|
107
122
|
let params = {};
|
|
@@ -122,6 +137,9 @@ function create(client, text, visibilityOpt, cw, localOnlyOpt, replyId, renoteId
|
|
|
122
137
|
Stdlib_Option.forEach(renoteId, v => {
|
|
123
138
|
params["renoteId"] = v;
|
|
124
139
|
});
|
|
140
|
+
Stdlib_Option.forEach(fileIds, ids => {
|
|
141
|
+
params["fileIds"] = ids.map(prim => prim);
|
|
142
|
+
});
|
|
125
143
|
return request(client, "notes/create", params, undefined);
|
|
126
144
|
}
|
|
127
145
|
|
|
@@ -131,7 +149,7 @@ function $$delete(client, noteId) {
|
|
|
131
149
|
return request(client, "notes/delete", params, undefined);
|
|
132
150
|
}
|
|
133
151
|
|
|
134
|
-
function fetch
|
|
152
|
+
function fetch(client, type_, limitOpt, sinceId, untilId, param) {
|
|
135
153
|
let limit = limitOpt !== undefined ? limitOpt : 10;
|
|
136
154
|
let match;
|
|
137
155
|
if (typeof type_ === "object") {
|
|
@@ -206,13 +224,83 @@ function unreact(client, noteId) {
|
|
|
206
224
|
return request(client, "notes/reactions/delete", params, undefined);
|
|
207
225
|
}
|
|
208
226
|
|
|
227
|
+
function show(client, noteId) {
|
|
228
|
+
let params = {};
|
|
229
|
+
params["noteId"] = noteId;
|
|
230
|
+
return request(client, "notes/show", params, undefined);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
function children(client, noteId, limitOpt, sinceId, untilId, param) {
|
|
234
|
+
let limit = limitOpt !== undefined ? limitOpt : 30;
|
|
235
|
+
let params = {};
|
|
236
|
+
params["noteId"] = noteId;
|
|
237
|
+
params["limit"] = limit;
|
|
238
|
+
Stdlib_Option.forEach(sinceId, v => {
|
|
239
|
+
params["sinceId"] = v;
|
|
240
|
+
});
|
|
241
|
+
Stdlib_Option.forEach(untilId, v => {
|
|
242
|
+
params["untilId"] = v;
|
|
243
|
+
});
|
|
244
|
+
return request(client, "notes/children", params, undefined);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function conversation(client, noteId, limitOpt, param) {
|
|
248
|
+
let limit = limitOpt !== undefined ? limitOpt : 30;
|
|
249
|
+
let params = {};
|
|
250
|
+
params["noteId"] = noteId;
|
|
251
|
+
params["limit"] = limit;
|
|
252
|
+
return request(client, "notes/conversation", params, undefined);
|
|
253
|
+
}
|
|
254
|
+
|
|
209
255
|
let Notes = {
|
|
210
256
|
create: create,
|
|
211
257
|
$$delete: $$delete,
|
|
212
|
-
fetch: fetch
|
|
213
|
-
timeline: fetch
|
|
258
|
+
fetch: fetch,
|
|
259
|
+
timeline: fetch,
|
|
214
260
|
react: react,
|
|
215
|
-
unreact: unreact
|
|
261
|
+
unreact: unreact,
|
|
262
|
+
show: show,
|
|
263
|
+
children: children,
|
|
264
|
+
conversation: conversation
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
function show$1(client, userId, username, host, param) {
|
|
268
|
+
let params = {};
|
|
269
|
+
Stdlib_Option.forEach(userId, v => {
|
|
270
|
+
params["userId"] = v;
|
|
271
|
+
});
|
|
272
|
+
Stdlib_Option.forEach(username, v => {
|
|
273
|
+
params["username"] = v;
|
|
274
|
+
});
|
|
275
|
+
Stdlib_Option.forEach(host, v => {
|
|
276
|
+
params["host"] = v;
|
|
277
|
+
});
|
|
278
|
+
return request(client, "users/show", params, undefined);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
function notes(client, userId, limitOpt, withRepliesOpt, withRenotesOpt, withFilesOpt, sinceId, untilId, param) {
|
|
282
|
+
let limit = limitOpt !== undefined ? limitOpt : 20;
|
|
283
|
+
let withReplies = withRepliesOpt !== undefined ? withRepliesOpt : false;
|
|
284
|
+
let withRenotes = withRenotesOpt !== undefined ? withRenotesOpt : true;
|
|
285
|
+
let withFiles = withFilesOpt !== undefined ? withFilesOpt : false;
|
|
286
|
+
let params = {};
|
|
287
|
+
params["userId"] = userId;
|
|
288
|
+
params["limit"] = limit;
|
|
289
|
+
params["withReplies"] = withReplies;
|
|
290
|
+
params["withRenotes"] = withRenotes;
|
|
291
|
+
params["withFiles"] = withFiles;
|
|
292
|
+
Stdlib_Option.forEach(sinceId, v => {
|
|
293
|
+
params["sinceId"] = v;
|
|
294
|
+
});
|
|
295
|
+
Stdlib_Option.forEach(untilId, v => {
|
|
296
|
+
params["untilId"] = v;
|
|
297
|
+
});
|
|
298
|
+
return request(client, "users/notes", params, undefined);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
let Users = {
|
|
302
|
+
show: show$1,
|
|
303
|
+
notes: notes
|
|
216
304
|
};
|
|
217
305
|
|
|
218
306
|
function ensureStream(client) {
|
|
@@ -337,34 +425,33 @@ function decodeCustomEmoji(json) {
|
|
|
337
425
|
};
|
|
338
426
|
}
|
|
339
427
|
|
|
340
|
-
function list(client) {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
});
|
|
428
|
+
async function list(client) {
|
|
429
|
+
let result = await request(client, "emojis", undefined, undefined);
|
|
430
|
+
if (result.TAG !== "Ok") {
|
|
431
|
+
return {
|
|
432
|
+
TAG: "Error",
|
|
433
|
+
_0: result._0
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
let obj = Stdlib_JSON.Decode.object(result._0);
|
|
437
|
+
if (obj === undefined) {
|
|
438
|
+
return {
|
|
439
|
+
TAG: "Ok",
|
|
440
|
+
_0: []
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
let emojisArray = Stdlib_Option.flatMap(obj["emojis"], Stdlib_JSON.Decode.array);
|
|
444
|
+
if (emojisArray !== undefined) {
|
|
445
|
+
return {
|
|
446
|
+
TAG: "Ok",
|
|
447
|
+
_0: Stdlib_Array.filterMap(emojisArray, decodeCustomEmoji)
|
|
448
|
+
};
|
|
449
|
+
} else {
|
|
450
|
+
return {
|
|
451
|
+
TAG: "Ok",
|
|
452
|
+
_0: []
|
|
453
|
+
};
|
|
454
|
+
}
|
|
368
455
|
}
|
|
369
456
|
|
|
370
457
|
let Emojis = {
|
|
@@ -372,70 +459,70 @@ let Emojis = {
|
|
|
372
459
|
list: list
|
|
373
460
|
};
|
|
374
461
|
|
|
375
|
-
function antennas(client) {
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
}
|
|
462
|
+
async function antennas(client) {
|
|
463
|
+
let result = await request(client, "antennas/list", undefined, undefined);
|
|
464
|
+
if (result.TAG !== "Ok") {
|
|
465
|
+
return {
|
|
466
|
+
TAG: "Error",
|
|
467
|
+
_0: result._0
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
let arr = Stdlib_JSON.Decode.array(result._0);
|
|
471
|
+
if (arr !== undefined) {
|
|
472
|
+
return {
|
|
473
|
+
TAG: "Ok",
|
|
474
|
+
_0: arr
|
|
475
|
+
};
|
|
476
|
+
} else {
|
|
477
|
+
return {
|
|
478
|
+
TAG: "Ok",
|
|
479
|
+
_0: []
|
|
480
|
+
};
|
|
481
|
+
}
|
|
395
482
|
}
|
|
396
483
|
|
|
397
|
-
function lists(client) {
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
}
|
|
484
|
+
async function lists(client) {
|
|
485
|
+
let result = await request(client, "users/lists/list", undefined, undefined);
|
|
486
|
+
if (result.TAG !== "Ok") {
|
|
487
|
+
return {
|
|
488
|
+
TAG: "Error",
|
|
489
|
+
_0: result._0
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
let arr = Stdlib_JSON.Decode.array(result._0);
|
|
493
|
+
if (arr !== undefined) {
|
|
494
|
+
return {
|
|
495
|
+
TAG: "Ok",
|
|
496
|
+
_0: arr
|
|
497
|
+
};
|
|
498
|
+
} else {
|
|
499
|
+
return {
|
|
500
|
+
TAG: "Ok",
|
|
501
|
+
_0: []
|
|
502
|
+
};
|
|
503
|
+
}
|
|
417
504
|
}
|
|
418
505
|
|
|
419
|
-
function channels(client) {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
}
|
|
506
|
+
async function channels(client) {
|
|
507
|
+
let result = await request(client, "channels/followed", undefined, undefined);
|
|
508
|
+
if (result.TAG !== "Ok") {
|
|
509
|
+
return {
|
|
510
|
+
TAG: "Error",
|
|
511
|
+
_0: result._0
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
let arr = Stdlib_JSON.Decode.array(result._0);
|
|
515
|
+
if (arr !== undefined) {
|
|
516
|
+
return {
|
|
517
|
+
TAG: "Ok",
|
|
518
|
+
_0: arr
|
|
519
|
+
};
|
|
520
|
+
} else {
|
|
521
|
+
return {
|
|
522
|
+
TAG: "Ok",
|
|
523
|
+
_0: []
|
|
524
|
+
};
|
|
525
|
+
}
|
|
439
526
|
}
|
|
440
527
|
|
|
441
528
|
function extractIdAndName(item) {
|
|
@@ -535,11 +622,7 @@ function permissionToString(perm) {
|
|
|
535
622
|
}
|
|
536
623
|
|
|
537
624
|
function generateSessionId() {
|
|
538
|
-
return (
|
|
539
|
-
var a = new Uint8Array(16);
|
|
540
|
-
crypto.getRandomValues(a);
|
|
541
|
-
return Array.from(a, function(b) { return b.toString(16).padStart(2, '0'); }).join('');
|
|
542
|
-
}());
|
|
625
|
+
return crypto.randomUUID().replaceAll("-", "");
|
|
543
626
|
}
|
|
544
627
|
|
|
545
628
|
function generateUrl(origin, name, permissions, callback, icon, param) {
|
|
@@ -559,21 +642,11 @@ function generateUrl(origin, name, permissions, callback, icon, param) {
|
|
|
559
642
|
|
|
560
643
|
async function check(origin, sessionId) {
|
|
561
644
|
try {
|
|
562
|
-
let
|
|
563
|
-
let headers = {};
|
|
564
|
-
headers["Content-Type"] = "application/json";
|
|
565
|
-
let response = await fetch(url, {
|
|
645
|
+
let json = await Ofetch.ofetch(origin + `/api/miauth/` + sessionId + `/check`, {
|
|
566
646
|
method: "POST",
|
|
567
|
-
|
|
568
|
-
|
|
647
|
+
body: {},
|
|
648
|
+
retry: 0
|
|
569
649
|
});
|
|
570
|
-
if (!response.ok) {
|
|
571
|
-
return {
|
|
572
|
-
TAG: "Error",
|
|
573
|
-
_0: `HTTP error: ` + response.status.toString() + ` ` + response.statusText
|
|
574
|
-
};
|
|
575
|
-
}
|
|
576
|
-
let json = await response.json();
|
|
577
650
|
let obj = Stdlib_JSON.Decode.object(json);
|
|
578
651
|
if (obj === undefined) {
|
|
579
652
|
return {
|
|
@@ -637,6 +710,185 @@ function isPermissionDenied(error) {
|
|
|
637
710
|
return match === "PERMISSION_DENIED";
|
|
638
711
|
}
|
|
639
712
|
|
|
713
|
+
async function get(client) {
|
|
714
|
+
let json = await request(client, "meta", undefined, undefined);
|
|
715
|
+
if (json.TAG !== "Ok") {
|
|
716
|
+
return {
|
|
717
|
+
TAG: "Error",
|
|
718
|
+
_0: json._0
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
let obj = Stdlib_JSON.Decode.object(json._0);
|
|
722
|
+
if (obj !== undefined) {
|
|
723
|
+
return {
|
|
724
|
+
TAG: "Ok",
|
|
725
|
+
_0: {
|
|
726
|
+
swPublickey: Stdlib_Option.flatMap(obj["swPublickey"], Stdlib_JSON.Decode.string)
|
|
727
|
+
}
|
|
728
|
+
};
|
|
729
|
+
} else {
|
|
730
|
+
return {
|
|
731
|
+
TAG: "Error",
|
|
732
|
+
_0: "Invalid meta response"
|
|
733
|
+
};
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
let Meta = {
|
|
738
|
+
get: get
|
|
739
|
+
};
|
|
740
|
+
|
|
741
|
+
async function register(client, endpoint, auth, publickey, sendReadMessageOpt, param) {
|
|
742
|
+
let sendReadMessage = sendReadMessageOpt !== undefined ? sendReadMessageOpt : false;
|
|
743
|
+
let params = {};
|
|
744
|
+
params["endpoint"] = endpoint;
|
|
745
|
+
params["auth"] = auth;
|
|
746
|
+
params["publickey"] = publickey;
|
|
747
|
+
params["sendReadMessage"] = sendReadMessage;
|
|
748
|
+
let json = await request(client, "sw/register", params, undefined);
|
|
749
|
+
if (json.TAG !== "Ok") {
|
|
750
|
+
return {
|
|
751
|
+
TAG: "Error",
|
|
752
|
+
_0: json._0
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
let obj = Stdlib_JSON.Decode.object(json._0);
|
|
756
|
+
if (obj !== undefined) {
|
|
757
|
+
return {
|
|
758
|
+
TAG: "Ok",
|
|
759
|
+
_0: {
|
|
760
|
+
state: Stdlib_Option.flatMap(obj["state"], Stdlib_JSON.Decode.string),
|
|
761
|
+
key: Stdlib_Option.flatMap(obj["key"], Stdlib_JSON.Decode.string),
|
|
762
|
+
userId: Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["userId"], Stdlib_JSON.Decode.string), ""),
|
|
763
|
+
endpoint: Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["endpoint"], Stdlib_JSON.Decode.string), ""),
|
|
764
|
+
sendReadMessage: Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["sendReadMessage"], Stdlib_JSON.Decode.bool), false)
|
|
765
|
+
}
|
|
766
|
+
};
|
|
767
|
+
} else {
|
|
768
|
+
return {
|
|
769
|
+
TAG: "Error",
|
|
770
|
+
_0: "Invalid sw/register response"
|
|
771
|
+
};
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
async function unregister(client, endpoint) {
|
|
776
|
+
let params = {};
|
|
777
|
+
params["endpoint"] = endpoint;
|
|
778
|
+
let e = await request(client, "sw/unregister", params, undefined);
|
|
779
|
+
if (e.TAG === "Ok") {
|
|
780
|
+
return {
|
|
781
|
+
TAG: "Ok",
|
|
782
|
+
_0: undefined
|
|
783
|
+
};
|
|
784
|
+
} else {
|
|
785
|
+
return {
|
|
786
|
+
TAG: "Error",
|
|
787
|
+
_0: e._0
|
|
788
|
+
};
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
let Sw = {
|
|
793
|
+
register: register,
|
|
794
|
+
unregister: unregister
|
|
795
|
+
};
|
|
796
|
+
|
|
797
|
+
async function create$1(client, name, url, secret, on, param) {
|
|
798
|
+
let params = {};
|
|
799
|
+
params["name"] = name;
|
|
800
|
+
params["url"] = url;
|
|
801
|
+
params["secret"] = secret;
|
|
802
|
+
params["on"] = on.map(prim => prim);
|
|
803
|
+
let json = await request(client, "i/webhooks/create", params, undefined);
|
|
804
|
+
if (json.TAG !== "Ok") {
|
|
805
|
+
return {
|
|
806
|
+
TAG: "Error",
|
|
807
|
+
_0: json._0
|
|
808
|
+
};
|
|
809
|
+
}
|
|
810
|
+
let obj = Stdlib_JSON.Decode.object(json._0);
|
|
811
|
+
if (obj === undefined) {
|
|
812
|
+
return {
|
|
813
|
+
TAG: "Error",
|
|
814
|
+
_0: "Invalid webhook response"
|
|
815
|
+
};
|
|
816
|
+
}
|
|
817
|
+
let id = Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["id"], Stdlib_JSON.Decode.string), "");
|
|
818
|
+
let name$1 = Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["name"], Stdlib_JSON.Decode.string), "");
|
|
819
|
+
let url$1 = Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["url"], Stdlib_JSON.Decode.string), "");
|
|
820
|
+
let active = Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["active"], Stdlib_JSON.Decode.bool), false);
|
|
821
|
+
return {
|
|
822
|
+
TAG: "Ok",
|
|
823
|
+
_0: {
|
|
824
|
+
id: id,
|
|
825
|
+
name: name$1,
|
|
826
|
+
url: url$1,
|
|
827
|
+
active: active
|
|
828
|
+
}
|
|
829
|
+
};
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
async function $$delete$1(client, webhookId) {
|
|
833
|
+
let params = {};
|
|
834
|
+
params["webhookId"] = webhookId;
|
|
835
|
+
let e = await request(client, "i/webhooks/delete", params, undefined);
|
|
836
|
+
if (e.TAG === "Ok") {
|
|
837
|
+
return {
|
|
838
|
+
TAG: "Ok",
|
|
839
|
+
_0: undefined
|
|
840
|
+
};
|
|
841
|
+
} else {
|
|
842
|
+
return {
|
|
843
|
+
TAG: "Error",
|
|
844
|
+
_0: e._0
|
|
845
|
+
};
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
async function list$1(client) {
|
|
850
|
+
let json = await request(client, "i/webhooks/list", undefined, undefined);
|
|
851
|
+
if (json.TAG !== "Ok") {
|
|
852
|
+
return {
|
|
853
|
+
TAG: "Error",
|
|
854
|
+
_0: json._0
|
|
855
|
+
};
|
|
856
|
+
}
|
|
857
|
+
let arr = Stdlib_JSON.Decode.array(json._0);
|
|
858
|
+
if (arr !== undefined) {
|
|
859
|
+
return {
|
|
860
|
+
TAG: "Ok",
|
|
861
|
+
_0: Stdlib_Array.filterMap(arr, item => {
|
|
862
|
+
let obj = Stdlib_JSON.Decode.object(item);
|
|
863
|
+
if (obj === undefined) {
|
|
864
|
+
return;
|
|
865
|
+
}
|
|
866
|
+
let id = Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["id"], Stdlib_JSON.Decode.string), "");
|
|
867
|
+
let name = Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["name"], Stdlib_JSON.Decode.string), "");
|
|
868
|
+
let url = Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["url"], Stdlib_JSON.Decode.string), "");
|
|
869
|
+
let active = Stdlib_Option.getOr(Stdlib_Option.flatMap(obj["active"], Stdlib_JSON.Decode.bool), false);
|
|
870
|
+
return {
|
|
871
|
+
id: id,
|
|
872
|
+
name: name,
|
|
873
|
+
url: url,
|
|
874
|
+
active: active
|
|
875
|
+
};
|
|
876
|
+
})
|
|
877
|
+
};
|
|
878
|
+
} else {
|
|
879
|
+
return {
|
|
880
|
+
TAG: "Ok",
|
|
881
|
+
_0: []
|
|
882
|
+
};
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
let Webhooks = {
|
|
887
|
+
create: create$1,
|
|
888
|
+
$$delete: $$delete$1,
|
|
889
|
+
list: list$1
|
|
890
|
+
};
|
|
891
|
+
|
|
640
892
|
function isAPIError(error) {
|
|
641
893
|
let obj = Stdlib_JSON.Decode.object(error);
|
|
642
894
|
if (obj === undefined) {
|
|
@@ -654,24 +906,85 @@ function isAPIError(error) {
|
|
|
654
906
|
}
|
|
655
907
|
}
|
|
656
908
|
|
|
909
|
+
async function upload(client, file, sensitiveOpt, param) {
|
|
910
|
+
let sensitive = sensitiveOpt !== undefined ? sensitiveOpt : false;
|
|
911
|
+
try {
|
|
912
|
+
let fd = (new FormData());
|
|
913
|
+
fd.append("file", file);
|
|
914
|
+
Stdlib_Option.forEach(client.token, tok => fd.append("i", tok));
|
|
915
|
+
if (sensitive) {
|
|
916
|
+
fd.append("isSensitive", "true");
|
|
917
|
+
}
|
|
918
|
+
let endpoint = client.origin + "/api/drive/files/create";
|
|
919
|
+
let json = await Ofetch.ofetch(endpoint, {
|
|
920
|
+
method: "POST",
|
|
921
|
+
body: fd
|
|
922
|
+
});
|
|
923
|
+
let idJson = Stdlib_Option.flatMap(Stdlib_JSON.Decode.object(json), obj => obj["id"]);
|
|
924
|
+
if (idJson !== undefined) {
|
|
925
|
+
let id = Stdlib_JSON.Decode.string(idJson);
|
|
926
|
+
if (id !== undefined) {
|
|
927
|
+
return {
|
|
928
|
+
TAG: "Ok",
|
|
929
|
+
_0: id
|
|
930
|
+
};
|
|
931
|
+
} else {
|
|
932
|
+
return {
|
|
933
|
+
TAG: "Error",
|
|
934
|
+
_0: "Drive upload: id is not a string"
|
|
935
|
+
};
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
let errDetail = Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_JSON.Decode.object(json), obj => obj["error"]), Stdlib_JSON.Decode.object), obj => obj["message"]), Stdlib_JSON.Decode.string);
|
|
939
|
+
let statusCode = Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_Option.flatMap(Stdlib_JSON.Decode.object(json), obj => obj["error"]), Stdlib_JSON.Decode.object), obj => obj["code"]), Stdlib_JSON.Decode.string);
|
|
940
|
+
let msg = statusCode !== undefined ? (
|
|
941
|
+
errDetail !== undefined ? statusCode + ": " + errDetail : "Upload error: " + statusCode
|
|
942
|
+
) : (
|
|
943
|
+
errDetail !== undefined ? errDetail : "Unknown upload error"
|
|
944
|
+
);
|
|
945
|
+
return {
|
|
946
|
+
TAG: "Error",
|
|
947
|
+
_0: msg
|
|
948
|
+
};
|
|
949
|
+
} catch (raw_err) {
|
|
950
|
+
let err = Primitive_exceptions.internalToException(raw_err);
|
|
951
|
+
let jsExn = Stdlib_JsExn.fromException(err);
|
|
952
|
+
let msg$1 = jsExn !== undefined ? Stdlib_Option.getOr(Stdlib_JsExn.message(Primitive_option.valFromOption(jsExn)), "Drive upload failed") : "Drive upload failed";
|
|
953
|
+
return {
|
|
954
|
+
TAG: "Error",
|
|
955
|
+
_0: msg$1
|
|
956
|
+
};
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
let Drive = {
|
|
961
|
+
upload: upload
|
|
962
|
+
};
|
|
963
|
+
|
|
657
964
|
let $$default = connect;
|
|
658
965
|
|
|
659
966
|
export {
|
|
660
|
-
|
|
967
|
+
injectToken,
|
|
661
968
|
defaultFetch,
|
|
662
969
|
connect,
|
|
663
970
|
wrapperConnect,
|
|
664
971
|
request,
|
|
665
972
|
currentUser,
|
|
666
973
|
origin,
|
|
974
|
+
token,
|
|
667
975
|
close,
|
|
668
976
|
Notes,
|
|
977
|
+
Users,
|
|
669
978
|
Stream,
|
|
670
979
|
Emojis,
|
|
671
980
|
CustomTimelines,
|
|
672
981
|
MiAuth,
|
|
673
982
|
isPermissionDenied,
|
|
983
|
+
Meta,
|
|
984
|
+
Sw,
|
|
985
|
+
Webhooks,
|
|
674
986
|
isAPIError,
|
|
987
|
+
Drive,
|
|
675
988
|
$$default as default,
|
|
676
989
|
}
|
|
677
990
|
/* Not a pure module */
|