lemmy-js-client 0.17.0-rc.5 → 0.17.0-rc.50

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,9 @@
1
+ import { Option } from "@sniptt/monads";
2
+ /**
3
+ * Converts an option to an undefined. Necessary for API requests.
4
+ */
5
+ export declare function toUndefined<T>(opt: Option<T>): T;
6
+ /**
7
+ * Converts a null value to an option.
8
+ */
9
+ export declare function toOption<T>(val: T): Option<T>;
package/dist/utils.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toOption = exports.toUndefined = void 0;
4
+ var monads_1 = require("@sniptt/monads");
5
+ /**
6
+ * Converts an option to an undefined. Necessary for API requests.
7
+ */
8
+ function toUndefined(opt) {
9
+ return opt.isSome() ? opt.unwrap() : undefined;
10
+ }
11
+ exports.toUndefined = toUndefined;
12
+ /**
13
+ * Converts a null value to an option.
14
+ */
15
+ function toOption(val) {
16
+ return (0, monads_1.Some)(val || undefined);
17
+ }
18
+ exports.toOption = toOption;
@@ -1,9 +1,11 @@
1
- import { CreateComment, CreateCommentLike, CreateCommentReport, DeleteComment, EditComment, GetComments, ListCommentReports, MarkCommentAsRead, RemoveComment, ResolveCommentReport, SaveComment } from "./interfaces/api/comment";
1
+ import { ClassConstructor } from "class-transformer";
2
+ import { CreateComment, CreateCommentLike, CreateCommentReport, DeleteComment, EditComment, GetComments, ListCommentReports, RemoveComment, ResolveCommentReport, SaveComment } from "./interfaces/api/comment";
2
3
  import { AddModToCommunity, BanFromCommunity, BlockCommunity, CreateCommunity, DeleteCommunity, EditCommunity, FollowCommunity, GetCommunity, ListCommunities, RemoveCommunity, TransferCommunity } from "./interfaces/api/community";
3
- import { AddAdmin, BanPerson, BlockPerson, ChangePassword, CreatePrivateMessage, DeleteAccount, DeletePrivateMessage, EditPrivateMessage, GetBannedPersons, GetPersonDetails, GetPersonMentions, GetPrivateMessages, GetReplies, GetReportCount, GetUnreadCount, Login, MarkAllAsRead, MarkPersonMentionAsRead, MarkPrivateMessageAsRead, PasswordChange, PasswordReset, Register, SaveUserSettings, VerifyEmail } from "./interfaces/api/person";
4
- import { CreatePost, CreatePostLike, CreatePostReport, DeletePost, EditPost, GetPost, GetPosts, GetSiteMetadata, ListPostReports, LockPost, RemovePost, ResolvePostReport, SavePost, StickyPost } from "./interfaces/api/post";
5
- import { ApproveRegistrationApplication, CreateSite, EditSite, GetModlog, GetSite, GetSiteConfig, GetUnreadRegistrationApplicationCount, LeaveAdmin, ListRegistrationApplications, ResolveObject, SaveSiteConfig, Search } from "./interfaces/api/site";
4
+ import { AddAdmin, BanPerson, BlockPerson, ChangePassword, CreatePrivateMessage, CreatePrivateMessageReport, DeleteAccount, DeletePrivateMessage, EditPrivateMessage, GetBannedPersons, GetPersonDetails, GetPersonMentions, GetPrivateMessages, GetReplies, GetReportCount, GetUnreadCount, ListPrivateMessageReports, Login, MarkAllAsRead, MarkCommentReplyAsRead, MarkPersonMentionAsRead, MarkPrivateMessageAsRead, PasswordChange, PasswordReset, Register, ResolvePrivateMessageReport, SaveUserSettings, VerifyEmail } from "./interfaces/api/person";
5
+ import { CreatePost, CreatePostLike, CreatePostReport, DeletePost, EditPost, GetPost, GetPosts, GetSiteMetadata, ListPostReports, LockPost, MarkPostAsRead, RemovePost, ResolvePostReport, SavePost, StickyPost } from "./interfaces/api/post";
6
+ import { ApproveRegistrationApplication, CreateSite, EditSite, GetModlog, GetSite, GetUnreadRegistrationApplicationCount, LeaveAdmin, ListRegistrationApplications, PurgeComment, PurgeCommunity, PurgePerson, PurgePost, ResolveObject, Search } from "./interfaces/api/site";
6
7
  import { CommunityJoin, PostJoin, UserJoin } from "./interfaces/api/websocket";
8
+ import { UserOperation } from "./interfaces/others";
7
9
  /**
8
10
  * Helps build lemmy websocket message requests, that you can use in your Websocket sends.
9
11
  *
@@ -100,7 +102,7 @@ export declare class LemmyWebsocket {
100
102
  /**
101
103
  * Mark a comment as read.
102
104
  */
103
- markCommentAsRead(form: MarkCommentAsRead): string;
105
+ markCommentReplyAsRead(form: MarkCommentReplyAsRead): string;
104
106
  /**
105
107
  * Like / vote on a comment.
106
108
  */
@@ -153,6 +155,10 @@ export declare class LemmyWebsocket {
153
155
  * A moderator can sticky a post ( IE stick it to the top of a community ).
154
156
  */
155
157
  stickyPost(form: StickyPost): string;
158
+ /**
159
+ * Mark a post as read.
160
+ */
161
+ markPostAsRead(form: MarkPostAsRead): string;
156
162
  /**
157
163
  * Save a post.
158
164
  */
@@ -244,11 +250,7 @@ export declare class LemmyWebsocket {
244
250
  /**
245
251
  * Gets the site, and your user data.
246
252
  */
247
- getSite(form?: GetSite): string;
248
- /**
249
- * Get your site configuration.
250
- */
251
- getSiteConfig(form: GetSiteConfig): string;
253
+ getSite(form: GetSite): string;
252
254
  /**
253
255
  * Search lemmy.
254
256
  */
@@ -314,9 +316,17 @@ export declare class LemmyWebsocket {
314
316
  */
315
317
  getPrivateMessages(form: GetPrivateMessages): string;
316
318
  /**
317
- * Save your site config.
319
+ * Create a report for a private message.
318
320
  */
319
- saveSiteConfig(form: SaveSiteConfig): string;
321
+ createPrivateMessageReport(form: CreatePrivateMessageReport): string;
322
+ /**
323
+ * Resolve a report for a private message.
324
+ */
325
+ resolvePrivateMessageReport(form: ResolvePrivateMessageReport): string;
326
+ /**
327
+ * List private message reports.
328
+ */
329
+ listPrivateMessageReports(form: ListPrivateMessageReports): string;
320
330
  /**
321
331
  * Block a person.
322
332
  */
@@ -325,4 +335,25 @@ export declare class LemmyWebsocket {
325
335
  * Block a community.
326
336
  */
327
337
  blockCommunity(form: BlockCommunity): string;
338
+ /**
339
+ * Purge / Delete a person from the database.
340
+ */
341
+ purgePerson(form: PurgePerson): string;
342
+ /**
343
+ * Purge / Delete a community from the database.
344
+ */
345
+ purgeCommunity(form: PurgeCommunity): string;
346
+ /**
347
+ * Purge / Delete a post from the database.
348
+ */
349
+ purgePost(form: PurgePost): string;
350
+ /**
351
+ * Purge / Delete a comment from the database.
352
+ */
353
+ purgeComment(form: PurgeComment): string;
328
354
  }
355
+ export declare function wsUserOp(msg: any): UserOperation;
356
+ /**
357
+ * Converts a websocket string response to a usable result
358
+ */
359
+ export declare function wsJsonToRes<ResponseType>(msg: any, responseClass: ClassConstructor<ResponseType>): ResponseType;
package/dist/websocket.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LemmyWebsocket = void 0;
3
+ exports.wsJsonToRes = exports.wsUserOp = exports.LemmyWebsocket = void 0;
4
+ var class_transformer_1 = require("class-transformer");
4
5
  var others_1 = require("./interfaces/others");
5
6
  /**
6
7
  * Helps build lemmy websocket message requests, that you can use in your Websocket sends.
@@ -137,8 +138,8 @@ var LemmyWebsocket = /** @class */ (function () {
137
138
  /**
138
139
  * Mark a comment as read.
139
140
  */
140
- LemmyWebsocket.prototype.markCommentAsRead = function (form) {
141
- return wrapper(others_1.UserOperation.MarkCommentAsRead, form);
141
+ LemmyWebsocket.prototype.markCommentReplyAsRead = function (form) {
142
+ return wrapper(others_1.UserOperation.MarkCommentReplyAsRead, form);
142
143
  };
143
144
  /**
144
145
  * Like / vote on a comment.
@@ -218,6 +219,12 @@ var LemmyWebsocket = /** @class */ (function () {
218
219
  LemmyWebsocket.prototype.stickyPost = function (form) {
219
220
  return wrapper(others_1.UserOperation.StickyPost, form);
220
221
  };
222
+ /**
223
+ * Mark a post as read.
224
+ */
225
+ LemmyWebsocket.prototype.markPostAsRead = function (form) {
226
+ return wrapper(others_1.UserOperation.MarkPostAsRead, form);
227
+ };
221
228
  /**
222
229
  * Save a post.
223
230
  */
@@ -354,15 +361,8 @@ var LemmyWebsocket = /** @class */ (function () {
354
361
  * Gets the site, and your user data.
355
362
  */
356
363
  LemmyWebsocket.prototype.getSite = function (form) {
357
- if (form === void 0) { form = {}; }
358
364
  return wrapper(others_1.UserOperation.GetSite, form);
359
365
  };
360
- /**
361
- * Get your site configuration.
362
- */
363
- LemmyWebsocket.prototype.getSiteConfig = function (form) {
364
- return wrapper(others_1.UserOperation.GetSiteConfig, form);
365
- };
366
366
  /**
367
367
  * Search lemmy.
368
368
  */
@@ -460,10 +460,22 @@ var LemmyWebsocket = /** @class */ (function () {
460
460
  return wrapper(others_1.UserOperation.GetPrivateMessages, form);
461
461
  };
462
462
  /**
463
- * Save your site config.
463
+ * Create a report for a private message.
464
+ */
465
+ LemmyWebsocket.prototype.createPrivateMessageReport = function (form) {
466
+ return wrapper(others_1.UserOperation.CreatePrivateMessageReport, form);
467
+ };
468
+ /**
469
+ * Resolve a report for a private message.
464
470
  */
465
- LemmyWebsocket.prototype.saveSiteConfig = function (form) {
466
- return wrapper(others_1.UserOperation.SaveSiteConfig, form);
471
+ LemmyWebsocket.prototype.resolvePrivateMessageReport = function (form) {
472
+ return wrapper(others_1.UserOperation.ResolvePrivateMessageReport, form);
473
+ };
474
+ /**
475
+ * List private message reports.
476
+ */
477
+ LemmyWebsocket.prototype.listPrivateMessageReports = function (form) {
478
+ return wrapper(others_1.UserOperation.ListPrivateMessageReports, form);
467
479
  };
468
480
  /**
469
481
  * Block a person.
@@ -477,11 +489,47 @@ var LemmyWebsocket = /** @class */ (function () {
477
489
  LemmyWebsocket.prototype.blockCommunity = function (form) {
478
490
  return wrapper(others_1.UserOperation.BlockCommunity, form);
479
491
  };
492
+ /**
493
+ * Purge / Delete a person from the database.
494
+ */
495
+ LemmyWebsocket.prototype.purgePerson = function (form) {
496
+ return wrapper(others_1.UserOperation.PurgePerson, form);
497
+ };
498
+ /**
499
+ * Purge / Delete a community from the database.
500
+ */
501
+ LemmyWebsocket.prototype.purgeCommunity = function (form) {
502
+ return wrapper(others_1.UserOperation.PurgeCommunity, form);
503
+ };
504
+ /**
505
+ * Purge / Delete a post from the database.
506
+ */
507
+ LemmyWebsocket.prototype.purgePost = function (form) {
508
+ return wrapper(others_1.UserOperation.PurgePost, form);
509
+ };
510
+ /**
511
+ * Purge / Delete a comment from the database.
512
+ */
513
+ LemmyWebsocket.prototype.purgeComment = function (form) {
514
+ return wrapper(others_1.UserOperation.PurgeComment, form);
515
+ };
480
516
  return LemmyWebsocket;
481
517
  }());
482
518
  exports.LemmyWebsocket = LemmyWebsocket;
483
519
  function wrapper(op, data) {
484
- var send = { op: others_1.UserOperation[op], data: data };
485
- console.log(send);
486
- return JSON.stringify(send);
520
+ var send = (0, class_transformer_1.serialize)({ op: others_1.UserOperation[op], data: data });
521
+ return send;
522
+ }
523
+ function wsUserOp(msg) {
524
+ var opStr = msg.op;
525
+ return others_1.UserOperation[opStr];
526
+ }
527
+ exports.wsUserOp = wsUserOp;
528
+ /**
529
+ * Converts a websocket string response to a usable result
530
+ */
531
+ function wsJsonToRes(msg, responseClass) {
532
+ // Have to deserialize the response again into the correct class
533
+ return (0, class_transformer_1.deserialize)(responseClass, (0, class_transformer_1.serialize)(msg.data));
487
534
  }
535
+ exports.wsJsonToRes = wsJsonToRes;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lemmy-js-client",
3
3
  "description": "A javascript / typescript client for Lemmy",
4
- "version": "0.17.0-rc.5",
4
+ "version": "0.17.0-rc.50",
5
5
  "author": "Dessalines <tyhou13@gmx.com>",
6
6
  "license": "AGPL-3.0",
7
7
  "main": "./dist/index.js",
@@ -16,23 +16,26 @@
16
16
  },
17
17
  "repository": "https://github.com/LemmyNet/lemmy-js-client",
18
18
  "devDependencies": {
19
- "@types/node": "^17.0.10",
19
+ "@sniptt/monads": "^0.5.10",
20
+ "@types/node": "^18.6.2",
20
21
  "@types/node-fetch": "^3.0.3",
21
- "@typescript-eslint/eslint-plugin": "^5.10.0",
22
- "@typescript-eslint/parser": "^5.10.0",
23
- "eslint": "^8.7.0",
24
- "eslint-plugin-prettier": "^4.0.0",
25
- "husky": "^7.0.4",
26
- "lint-staged": "^12.2.2",
27
- "node-fetch": "^3.1.1",
28
- "prettier": "^2.5.0",
22
+ "@typescript-eslint/eslint-plugin": "^5.31.0",
23
+ "@typescript-eslint/parser": "^5.31.0",
24
+ "class-transformer": "^0.5.1",
25
+ "eslint": "^8.20.0",
26
+ "eslint-plugin-prettier": "^4.2.1",
27
+ "husky": "^8.0.1",
28
+ "lint-staged": "^13.0.3",
29
+ "node-fetch": "^3.2.9",
30
+ "prettier": "^2.7.1",
29
31
  "prettier-plugin-import-sort": "^0.0.7",
30
- "prettier-plugin-organize-imports": "^2.3.4",
31
- "prettier-plugin-packagejson": "^2.2.15",
32
- "sortpack": "^2.2.0",
32
+ "prettier-plugin-organize-imports": "^3.0.0",
33
+ "prettier-plugin-packagejson": "^2.2.18",
34
+ "reflect-metadata": "^0.1.13",
35
+ "sortpack": "^2.3.0",
33
36
  "typedoc": "^0.21.6",
34
37
  "typedoc-plugin-sourcefile-url": "^1.0.6",
35
- "typescript": "^4.5.4"
38
+ "typescript": "^4.7.4"
36
39
  },
37
40
  "types": "./dist/index.d.ts",
38
41
  "lint-staged": {