@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.
Files changed (113) hide show
  1. package/lib/es6/src/Misskey.mjs +472 -159
  2. package/lib/es6/src/bindings/Ofetch.mjs +2 -0
  3. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkAccount.mjs +70 -48
  4. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkAdmin.mjs +133 -98
  5. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkAntennas.mjs +9 -6
  6. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkApp.mjs +6 -4
  7. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkAuth.mjs +6 -4
  8. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkChannels.mjs +18 -12
  9. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkCharts.mjs +6 -4
  10. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkChat.mjs +70 -54
  11. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkClips.mjs +12 -8
  12. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkDefault.mjs +27 -20
  13. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkDrive.mjs +35 -24
  14. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkFederation.mjs +18 -12
  15. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkFlash.mjs +9 -6
  16. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkFlashs.mjs +3 -2
  17. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkFollowing.mjs +21 -14
  18. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkGallery.mjs +12 -8
  19. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkGroups.mjs +30 -24
  20. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkHashtags.mjs +6 -4
  21. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkLists.mjs +9 -6
  22. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkMeta.mjs +27 -18
  23. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkNotes.mjs +85 -58
  24. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkNotifications.mjs +2 -2
  25. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkPages.mjs +8 -6
  26. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkRole.mjs +9 -6
  27. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkUsers.mjs +35 -24
  28. package/lib/es6/src/generated/kokonect-link/api/KokonectLinkWebhooks.mjs +7 -6
  29. package/lib/es6/src/generated/misskey-io/api/MisskeyIoAccount.mjs +92 -68
  30. package/lib/es6/src/generated/misskey-io/api/MisskeyIoAdmin.mjs +266 -214
  31. package/lib/es6/src/generated/misskey-io/api/MisskeyIoAntennas.mjs +17 -12
  32. package/lib/es6/src/generated/misskey-io/api/MisskeyIoApp.mjs +6 -4
  33. package/lib/es6/src/generated/misskey-io/api/MisskeyIoAuth.mjs +14 -10
  34. package/lib/es6/src/generated/misskey-io/api/MisskeyIoChannels.mjs +35 -26
  35. package/lib/es6/src/generated/misskey-io/api/MisskeyIoCharts.mjs +72 -48
  36. package/lib/es6/src/generated/misskey-io/api/MisskeyIoClip.mjs +4 -4
  37. package/lib/es6/src/generated/misskey-io/api/MisskeyIoClips.mjs +17 -12
  38. package/lib/es6/src/generated/misskey-io/api/MisskeyIoDefault.mjs +133 -110
  39. package/lib/es6/src/generated/misskey-io/api/MisskeyIoDrive.mjs +51 -36
  40. package/lib/es6/src/generated/misskey-io/api/MisskeyIoFederation.mjs +32 -22
  41. package/lib/es6/src/generated/misskey-io/api/MisskeyIoFlash.mjs +12 -10
  42. package/lib/es6/src/generated/misskey-io/api/MisskeyIoFlashs.mjs +5 -4
  43. package/lib/es6/src/generated/misskey-io/api/MisskeyIoFollowing.mjs +27 -20
  44. package/lib/es6/src/generated/misskey-io/api/MisskeyIoGallery.mjs +24 -18
  45. package/lib/es6/src/generated/misskey-io/api/MisskeyIoHashtags.mjs +18 -12
  46. package/lib/es6/src/generated/misskey-io/api/MisskeyIoLists.mjs +23 -18
  47. package/lib/es6/src/generated/misskey-io/api/MisskeyIoMeta.mjs +71 -48
  48. package/lib/es6/src/generated/misskey-io/api/MisskeyIoNonProductive.mjs +5 -4
  49. package/lib/es6/src/generated/misskey-io/api/MisskeyIoNotes.mjs +96 -70
  50. package/lib/es6/src/generated/misskey-io/api/MisskeyIoNotifications.mjs +8 -8
  51. package/lib/es6/src/generated/misskey-io/api/MisskeyIoPages.mjs +17 -14
  52. package/lib/es6/src/generated/misskey-io/api/MisskeyIoReactions.mjs +4 -4
  53. package/lib/es6/src/generated/misskey-io/api/MisskeyIoResetPassword.mjs +4 -4
  54. package/lib/es6/src/generated/misskey-io/api/MisskeyIoRole.mjs +12 -8
  55. package/lib/es6/src/generated/misskey-io/api/MisskeyIoUsers.mjs +83 -56
  56. package/lib/es6/src/generated/misskey-io/api/MisskeyIoWebhooks.mjs +17 -14
  57. package/package.json +3 -2
  58. package/src/Misskey.res +423 -151
  59. package/src/bindings/Ofetch.res +14 -0
  60. package/src/generated/kokonect-link/api/KokonectLinkAccount.res +94 -166
  61. package/src/generated/kokonect-link/api/KokonectLinkAdmin.res +182 -329
  62. package/src/generated/kokonect-link/api/KokonectLinkAntennas.res +12 -21
  63. package/src/generated/kokonect-link/api/KokonectLinkApp.res +8 -14
  64. package/src/generated/kokonect-link/api/KokonectLinkAuth.res +8 -14
  65. package/src/generated/kokonect-link/api/KokonectLinkChannels.res +24 -42
  66. package/src/generated/kokonect-link/api/KokonectLinkCharts.res +8 -14
  67. package/src/generated/kokonect-link/api/KokonectLinkChat.res +97 -178
  68. package/src/generated/kokonect-link/api/KokonectLinkClips.res +16 -28
  69. package/src/generated/kokonect-link/api/KokonectLinkDefault.res +37 -67
  70. package/src/generated/kokonect-link/api/KokonectLinkDrive.res +47 -83
  71. package/src/generated/kokonect-link/api/KokonectLinkFederation.res +24 -42
  72. package/src/generated/kokonect-link/api/KokonectLinkFlash.res +12 -21
  73. package/src/generated/kokonect-link/api/KokonectLinkFlashs.res +4 -7
  74. package/src/generated/kokonect-link/api/KokonectLinkFollowing.res +28 -49
  75. package/src/generated/kokonect-link/api/KokonectLinkGallery.res +16 -28
  76. package/src/generated/kokonect-link/api/KokonectLinkGroups.res +42 -78
  77. package/src/generated/kokonect-link/api/KokonectLinkHashtags.res +8 -14
  78. package/src/generated/kokonect-link/api/KokonectLinkLists.res +12 -21
  79. package/src/generated/kokonect-link/api/KokonectLinkMeta.res +36 -63
  80. package/src/generated/kokonect-link/api/KokonectLinkNotes.res +114 -201
  81. package/src/generated/kokonect-link/api/KokonectLinkNotifications.res +3 -6
  82. package/src/generated/kokonect-link/api/KokonectLinkPages.res +11 -20
  83. package/src/generated/kokonect-link/api/KokonectLinkRole.res +12 -21
  84. package/src/generated/kokonect-link/api/KokonectLinkUsers.res +47 -83
  85. package/src/generated/kokonect-link/api/KokonectLinkWebhooks.res +10 -19
  86. package/src/generated/misskey-io/api/MisskeyIoAccount.res +126 -228
  87. package/src/generated/misskey-io/api/MisskeyIoAdmin.res +373 -694
  88. package/src/generated/misskey-io/api/MisskeyIoAntennas.res +23 -41
  89. package/src/generated/misskey-io/api/MisskeyIoApp.res +8 -14
  90. package/src/generated/misskey-io/api/MisskeyIoAuth.res +19 -34
  91. package/src/generated/misskey-io/api/MisskeyIoChannels.res +48 -87
  92. package/src/generated/misskey-io/api/MisskeyIoCharts.res +96 -168
  93. package/src/generated/misskey-io/api/MisskeyIoClip.res +6 -12
  94. package/src/generated/misskey-io/api/MisskeyIoClips.res +23 -41
  95. package/src/generated/misskey-io/api/MisskeyIoDefault.res +188 -353
  96. package/src/generated/misskey-io/api/MisskeyIoDrive.res +69 -123
  97. package/src/generated/misskey-io/api/MisskeyIoFederation.res +43 -76
  98. package/src/generated/misskey-io/api/MisskeyIoFlash.res +17 -32
  99. package/src/generated/misskey-io/api/MisskeyIoFlashs.res +7 -13
  100. package/src/generated/misskey-io/api/MisskeyIoFollowing.res +37 -67
  101. package/src/generated/misskey-io/api/MisskeyIoGallery.res +33 -60
  102. package/src/generated/misskey-io/api/MisskeyIoHashtags.res +24 -42
  103. package/src/generated/misskey-io/api/MisskeyIoLists.res +32 -59
  104. package/src/generated/misskey-io/api/MisskeyIoMeta.res +95 -167
  105. package/src/generated/misskey-io/api/MisskeyIoNonProductive.res +7 -13
  106. package/src/generated/misskey-io/api/MisskeyIoNotes.res +131 -236
  107. package/src/generated/misskey-io/api/MisskeyIoNotifications.res +12 -24
  108. package/src/generated/misskey-io/api/MisskeyIoPages.res +24 -45
  109. package/src/generated/misskey-io/api/MisskeyIoReactions.res +6 -12
  110. package/src/generated/misskey-io/api/MisskeyIoResetPassword.res +6 -12
  111. package/src/generated/misskey-io/api/MisskeyIoRole.res +16 -28
  112. package/src/generated/misskey-io/api/MisskeyIoUsers.res +111 -195
  113. package/src/generated/misskey-io/api/MisskeyIoWebhooks.res +24 -45
@@ -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
- let FetchBindings = {};
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 fullUrl = origin + `/api/` + url;
22
- let bodyWithToken;
23
- if (body !== undefined) {
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
- headers: headers,
48
- body: bodyStr
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
- return Stdlib_Promise.$$catch(client.fetchFn(endpoint, "POST", params).then(json => Promise.resolve({
79
- TAG: "Ok",
80
- _0: json
81
- })), err => {
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 msg = jsExn !== undefined ? Stdlib_Option.getOr(Stdlib_JsExn.message(Primitive_option.valFromOption(jsExn)), "Unknown error") : "Unknown error";
84
- return Promise.resolve({
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$1(client, type_, limitOpt, sinceId, untilId, param) {
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$1,
213
- timeline: fetch$1,
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
- return request(client, "emojis", undefined, undefined).then(result => {
342
- let tmp;
343
- if (result.TAG === "Ok") {
344
- let obj = Stdlib_JSON.Decode.object(result._0);
345
- if (obj !== undefined) {
346
- let emojisArray = Stdlib_Option.flatMap(obj["emojis"], Stdlib_JSON.Decode.array);
347
- tmp = emojisArray !== undefined ? ({
348
- TAG: "Ok",
349
- _0: Stdlib_Array.filterMap(emojisArray, decodeCustomEmoji)
350
- }) : ({
351
- TAG: "Ok",
352
- _0: []
353
- });
354
- } else {
355
- tmp = {
356
- TAG: "Ok",
357
- _0: []
358
- };
359
- }
360
- } else {
361
- tmp = {
362
- TAG: "Error",
363
- _0: result._0
364
- };
365
- }
366
- return Promise.resolve(tmp);
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
- return request(client, "antennas/list", undefined, undefined).then(result => {
377
- let tmp;
378
- if (result.TAG === "Ok") {
379
- let arr = Stdlib_JSON.Decode.array(result._0);
380
- tmp = arr !== undefined ? ({
381
- TAG: "Ok",
382
- _0: arr
383
- }) : ({
384
- TAG: "Ok",
385
- _0: []
386
- });
387
- } else {
388
- tmp = {
389
- TAG: "Error",
390
- _0: result._0
391
- };
392
- }
393
- return Promise.resolve(tmp);
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
- return request(client, "users/lists/list", undefined, undefined).then(result => {
399
- let tmp;
400
- if (result.TAG === "Ok") {
401
- let arr = Stdlib_JSON.Decode.array(result._0);
402
- tmp = arr !== undefined ? ({
403
- TAG: "Ok",
404
- _0: arr
405
- }) : ({
406
- TAG: "Ok",
407
- _0: []
408
- });
409
- } else {
410
- tmp = {
411
- TAG: "Error",
412
- _0: result._0
413
- };
414
- }
415
- return Promise.resolve(tmp);
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
- return request(client, "channels/followed", undefined, undefined).then(result => {
421
- let tmp;
422
- if (result.TAG === "Ok") {
423
- let arr = Stdlib_JSON.Decode.array(result._0);
424
- tmp = arr !== undefined ? ({
425
- TAG: "Ok",
426
- _0: arr
427
- }) : ({
428
- TAG: "Ok",
429
- _0: []
430
- });
431
- } else {
432
- tmp = {
433
- TAG: "Error",
434
- _0: result._0
435
- };
436
- }
437
- return Promise.resolve(tmp);
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 (function() {
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 url = origin + `/api/miauth/` + sessionId + `/check`;
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
- headers: headers,
568
- body: "{}"
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
- FetchBindings,
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 */