@ifunny/ifunny-api-types 1.2.0 → 1.2.2
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/.devenv/bootstrap/bootstrapLib.nix +21 -1
- package/.devenv/bootstrap/lock-sources.nix +123 -0
- package/.devenv/bootstrap/resolve-input-paths.nix +34 -0
- package/.devenv/bootstrap/resolve-lock.nix +5 -79
- package/.devenv/changelog-cache.json +7 -3
- package/.devenv/devenv.fish +13 -13
- package/.devenv/input-paths.txt +2 -4
- package/.devenv/nix-eval-cache.db +0 -0
- package/.devenv/shell-env.sh +1601 -1589
- package/.devenv/state/files.json +5 -1
- package/.devenv/state/git-hooks-install/hooks +1 -0
- package/.devenv/state/git-hooks-install/key +4 -0
- package/.devenv/state/prek/.lock +0 -0
- package/.devenv/state/prek/README +2 -0
- package/.devenv/state/prek/config-tracking.json +3 -0
- package/.devenv/state/prek/patches/1793595918715-562072.patch +26 -0
- package/.devenv/state/prek/patches/1793596283854-574354.patch +22881 -0
- package/.devenv/state/prek/patches/1793596332255-574728.patch +22870 -0
- package/.devenv/state/prek/patches/1793597557669-617911.patch +284 -0
- package/.devenv/state/prek/patches/1793856046749-331249.patch +2906 -0
- package/.devenv/state/prek/patches/1793856096552-331868.patch +2998 -0
- package/.devenv/state/prek/patches/1793856146786-332328.patch +3009 -0
- package/.devenv/state/prek/patches/1793856181490-332981.patch +11401 -0
- package/.devenv/state/prek/patches/1793856203087-333510.patch +11388 -0
- package/.devenv/state/prek/patches/1793856277935-334258.patch +11372 -0
- package/.devenv/state/prek/patches/1793856646955-337912.patch +8488 -0
- package/.devenv/state/prek/patches/1793856682905-338572.patch +8260 -0
- package/.devenv/state/prek/patches/1793857035751-356215.patch +8295 -0
- package/.devenv/state/tasks.db +0 -0
- package/.devenv/task-names.txt +3 -1
- package/.prettierignore +9 -0
- package/CHANGELOG.md +476 -8272
- package/devenv.lock +47 -9
- package/devenv.nix +10 -13
- package/devenv.yaml +5 -0
- package/dist/errors/bad_request.js +8 -0
- package/dist/errors/bad_request.js.map +1 -0
- package/dist/errors/captcha_required.js +19 -0
- package/dist/errors/captcha_required.js.map +1 -0
- package/dist/errors/email_exists.js +8 -0
- package/dist/errors/email_exists.js.map +1 -0
- package/dist/errors/error.js +3 -0
- package/dist/errors/error.js.map +1 -0
- package/dist/errors/error_base.js +43 -0
- package/dist/errors/error_base.js.map +1 -0
- package/dist/errors/index.js +29 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/invalid_client.js +8 -0
- package/dist/errors/invalid_client.js.map +1 -0
- package/dist/errors/invalid_email.js +8 -0
- package/dist/errors/invalid_email.js.map +1 -0
- package/dist/errors/invalid_grant.js +8 -0
- package/dist/errors/invalid_grant.js.map +1 -0
- package/dist/errors/not_found.js +3 -0
- package/dist/errors/not_found.js.map +1 -0
- package/dist/errors/permission_denied.js +8 -0
- package/dist/errors/permission_denied.js.map +1 -0
- package/dist/errors/unauthorized.js +8 -0
- package/dist/errors/unauthorized.js.map +1 -0
- package/dist/errors/wrong_params.js +8 -0
- package/dist/errors/wrong_params.js.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/payloads/activity.js +50 -0
- package/dist/payloads/activity.js.map +1 -0
- package/dist/payloads/app.js +3 -0
- package/dist/payloads/app.js.map +1 -0
- package/dist/payloads/appeal.js +14 -0
- package/dist/payloads/appeal.js.map +1 -0
- package/dist/payloads/ban.js +36 -0
- package/dist/payloads/ban.js.map +1 -0
- package/dist/payloads/base.js +3 -0
- package/dist/payloads/base.js.map +1 -0
- package/dist/payloads/chat.js +37 -0
- package/dist/payloads/chat.js.map +1 -0
- package/dist/payloads/client.js +13 -0
- package/dist/payloads/client.js.map +1 -0
- package/dist/payloads/comment.js +42 -0
- package/dist/payloads/comment.js.map +1 -0
- package/dist/payloads/content.js +176 -0
- package/dist/payloads/content.js.map +1 -0
- package/dist/payloads/index.js +29 -0
- package/dist/payloads/index.js.map +1 -0
- package/dist/payloads/strike.js +3 -0
- package/dist/payloads/strike.js.map +1 -0
- package/dist/payloads/topics.js +72 -0
- package/dist/payloads/topics.js.map +1 -0
- package/dist/payloads/user.js +215 -0
- package/dist/payloads/user.js.map +1 -0
- package/dist/rest/account.js +3 -0
- package/dist/rest/account.js.map +1 -0
- package/dist/rest/content.js +54 -0
- package/dist/rest/content.js.map +1 -0
- package/dist/rest/counters.js +3 -0
- package/dist/rest/counters.js.map +1 -0
- package/dist/rest/endpoints.js +199 -0
- package/dist/rest/endpoints.js.map +1 -0
- package/dist/rest/explore.js +82 -0
- package/dist/rest/explore.js.map +1 -0
- package/dist/rest/feeds.js +3 -0
- package/dist/rest/feeds.js.map +1 -0
- package/dist/rest/index.js +25 -0
- package/dist/rest/index.js.map +1 -0
- package/dist/rest/issues.js +3 -0
- package/dist/rest/issues.js.map +1 -0
- package/dist/rest/oauth2.js +9 -0
- package/dist/rest/oauth2.js.map +1 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/rest.js +3 -0
- package/dist/utils/rest.js.map +1 -0
- package/dist/utils/util.js +3 -0
- package/dist/utils/util.js.map +1 -0
- package/package.json +15 -8
- package/tag-check.sh +111 -0
- package/types/errors/bad_request.d.ts +12 -0
- package/types/errors/bad_request.d.ts.map +1 -0
- package/types/errors/captcha_required.d.ts +33 -0
- package/types/errors/captcha_required.d.ts.map +1 -0
- package/types/errors/email_exists.d.ts +15 -0
- package/types/errors/email_exists.d.ts.map +1 -0
- package/types/errors/error.d.ts +29 -0
- package/types/errors/error.d.ts.map +1 -0
- package/types/errors/error_base.d.ts +61 -0
- package/types/errors/error_base.d.ts.map +1 -0
- package/types/errors/index.d.ts +13 -0
- package/types/errors/index.d.ts.map +1 -0
- package/types/errors/invalid_client.d.ts +15 -0
- package/types/errors/invalid_client.d.ts.map +1 -0
- package/types/errors/invalid_email.d.ts +15 -0
- package/types/errors/invalid_email.d.ts.map +1 -0
- package/types/errors/invalid_grant.d.ts +12 -0
- package/types/errors/invalid_grant.d.ts.map +1 -0
- package/types/errors/not_found.d.ts +8 -0
- package/types/errors/not_found.d.ts.map +1 -0
- package/types/errors/permission_denied.d.ts +12 -0
- package/types/errors/permission_denied.d.ts.map +1 -0
- package/types/errors/unauthorized.d.ts +12 -0
- package/types/errors/unauthorized.d.ts.map +1 -0
- package/types/errors/wrong_params.d.ts +11 -0
- package/types/errors/wrong_params.d.ts.map +1 -0
- package/types/index.d.ts +5 -0
- package/types/index.d.ts.map +1 -0
- package/types/payloads/activity.d.ts +114 -0
- package/types/payloads/activity.d.ts.map +1 -0
- package/types/payloads/app.d.ts +266 -0
- package/types/payloads/app.d.ts.map +1 -0
- package/types/payloads/appeal.d.ts +22 -0
- package/types/payloads/appeal.d.ts.map +1 -0
- package/types/payloads/ban.d.ts +85 -0
- package/types/payloads/ban.d.ts.map +1 -0
- package/types/payloads/base.d.ts +5 -0
- package/types/payloads/base.d.ts.map +1 -0
- package/types/payloads/chat.d.ts +117 -0
- package/types/payloads/chat.d.ts.map +1 -0
- package/types/payloads/client.d.ts +108 -0
- package/types/payloads/client.d.ts.map +1 -0
- package/types/payloads/comment.d.ts +124 -0
- package/types/payloads/comment.d.ts.map +1 -0
- package/types/payloads/content.d.ts +677 -0
- package/types/payloads/content.d.ts.map +1 -0
- package/types/payloads/index.d.ts +13 -0
- package/types/payloads/index.d.ts.map +1 -0
- package/types/payloads/strike.d.ts +15 -0
- package/types/payloads/strike.d.ts.map +1 -0
- package/types/payloads/topics.d.ts +45 -0
- package/types/payloads/topics.d.ts.map +1 -0
- package/types/payloads/user.d.ts +523 -0
- package/types/payloads/user.d.ts.map +1 -0
- package/types/rest/account.d.ts +4 -0
- package/types/rest/account.d.ts.map +1 -0
- package/types/rest/content.d.ts +96 -0
- package/types/rest/content.d.ts.map +1 -0
- package/types/rest/counters.d.ts +10 -0
- package/types/rest/counters.d.ts.map +1 -0
- package/types/rest/endpoints.d.ts +153 -0
- package/types/rest/endpoints.d.ts.map +1 -0
- package/types/rest/explore.d.ts +113 -0
- package/types/rest/explore.d.ts.map +1 -0
- package/types/rest/feeds.d.ts +17 -0
- package/types/rest/feeds.d.ts.map +1 -0
- package/types/rest/index.d.ts +9 -0
- package/types/rest/index.d.ts.map +1 -0
- package/types/rest/issues.d.ts +16 -0
- package/types/rest/issues.d.ts.map +1 -0
- package/types/rest/oauth2.d.ts +37 -0
- package/types/rest/oauth2.d.ts.map +1 -0
- package/types/utils/index.d.ts +3 -0
- package/types/utils/index.d.ts.map +1 -0
- package/types/utils/rest.d.ts +50 -0
- package/types/utils/rest.d.ts.map +1 -0
- package/types/utils/util.d.ts +80 -0
- package/types/utils/util.d.ts.map +1 -0
- package/.devenv/nix-eval-cache.db-shm +0 -0
- package/.devenv/nix-eval-cache.db-wal +0 -0
- package/.devenv/state/tasks.db-shm +0 -0
- package/.devenv/state/tasks.db-wal +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { EpochSec } from "../utils";
|
|
2
|
+
import { APIBanReason } from "./ban";
|
|
3
|
+
import Base from "./base";
|
|
4
|
+
export interface APIAppeal extends Base {
|
|
5
|
+
strike_id?: string;
|
|
6
|
+
ban_id?: string;
|
|
7
|
+
ban_reason: APIBanReason;
|
|
8
|
+
created_at: EpochSec;
|
|
9
|
+
status: APIAppealStatus;
|
|
10
|
+
type: APIAppealType;
|
|
11
|
+
}
|
|
12
|
+
export declare enum AppealStatus {
|
|
13
|
+
PENDING = "pending",
|
|
14
|
+
DENIED = "denied"
|
|
15
|
+
}
|
|
16
|
+
export type APIAppealStatus = `${AppealStatus}`;
|
|
17
|
+
export declare enum AppealType {
|
|
18
|
+
BAN = "ban",
|
|
19
|
+
STRIKE = "strike"
|
|
20
|
+
}
|
|
21
|
+
export type APIAppealType = `${AppealType}`;
|
|
22
|
+
//# sourceMappingURL=appeal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appeal.d.ts","sourceRoot":"","sources":["../../src/payloads/appeal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,WAAW,SAAU,SAAQ,IAAI;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,YAAY,CAAC;IACzB,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC;CACpB;AAED,oBAAY,YAAY;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,GAAG,YAAY,EAAE,CAAC;AAEhD,oBAAY,UAAU;IACrB,GAAG,QAAQ;IACX,MAAM,WAAW;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,GAAG,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { EpochSec } from "../utils";
|
|
2
|
+
import { APIComment } from "./comment";
|
|
3
|
+
import { APIContent } from "./content";
|
|
4
|
+
/**
|
|
5
|
+
* Possible Ban Types
|
|
6
|
+
*/
|
|
7
|
+
export type APIBanType = `${BAN_TYPES}`;
|
|
8
|
+
/**
|
|
9
|
+
* Represents a user's ban from the API
|
|
10
|
+
*/
|
|
11
|
+
export interface APIBanSmall {
|
|
12
|
+
/**
|
|
13
|
+
* Unique ban Id
|
|
14
|
+
*/
|
|
15
|
+
id: string;
|
|
16
|
+
/**
|
|
17
|
+
* Unix EpochSec of when the ban expires\
|
|
18
|
+
* ? IN SECONDS! More better accuracy, convert to milliseconds
|
|
19
|
+
*/
|
|
20
|
+
date_until: EpochSec;
|
|
21
|
+
/**
|
|
22
|
+
* The type of ban
|
|
23
|
+
*/
|
|
24
|
+
type: APIBanType;
|
|
25
|
+
}
|
|
26
|
+
export interface APIBan extends APIBanSmall {
|
|
27
|
+
ban_reason: APIBanReason;
|
|
28
|
+
created_at: EpochSec;
|
|
29
|
+
/**
|
|
30
|
+
* ? Only observed to be 1, 3, 17
|
|
31
|
+
*/
|
|
32
|
+
pid: number;
|
|
33
|
+
is_appealed: boolean;
|
|
34
|
+
can_be_appealed: boolean;
|
|
35
|
+
was_shown: boolean;
|
|
36
|
+
is_active: boolean;
|
|
37
|
+
is_shortable: boolean;
|
|
38
|
+
related_content?: APIContent;
|
|
39
|
+
related_comment?: APIComment;
|
|
40
|
+
date_until_minimum?: EpochSec;
|
|
41
|
+
/**
|
|
42
|
+
* @example
|
|
43
|
+
* "commenting was suspended from Aug 19, 2021 to Aug 26, 2021"
|
|
44
|
+
* "content creation suspended until Sep 15, 2022"
|
|
45
|
+
*/
|
|
46
|
+
type_message?: string;
|
|
47
|
+
/**
|
|
48
|
+
* @example
|
|
49
|
+
* "Hate Speech"
|
|
50
|
+
* "Death / gore"
|
|
51
|
+
*/
|
|
52
|
+
ban_reason_message?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* All known ban reasons
|
|
56
|
+
*/
|
|
57
|
+
export declare enum BAN_REASONS {
|
|
58
|
+
ABUSE = "abuse_harassment",
|
|
59
|
+
CHILD_PORN = "child_pornography",
|
|
60
|
+
HARDCORE = "hardcore",
|
|
61
|
+
HATE_SPEECH = "hate_speech",
|
|
62
|
+
SPAM = "bot_spam",
|
|
63
|
+
THREATS = "threats_of_harm",
|
|
64
|
+
DEATH_GORE = "death_gore",
|
|
65
|
+
OTHER = "other"
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* All possible ban reasons
|
|
69
|
+
*/
|
|
70
|
+
export type APIBanReason = `${BAN_REASONS}`;
|
|
71
|
+
/**
|
|
72
|
+
* All known ban types
|
|
73
|
+
*/
|
|
74
|
+
export declare enum BAN_TYPES {
|
|
75
|
+
CHAT_ACCESS = "chat_access",
|
|
76
|
+
COMMENT_CREATION = "comment_creation",
|
|
77
|
+
CONTENT_CREATION = "content_creation",
|
|
78
|
+
PROFILE_ACCESS = "profile_access",
|
|
79
|
+
REPUBING = "repubing",
|
|
80
|
+
SMILING = "smiling",
|
|
81
|
+
SUBSCRIBING = "subscribing",
|
|
82
|
+
OTHER = "other",
|
|
83
|
+
COLLECTIVE_SHADOW = "collective_shadow"
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=ban.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ban.d.ts","sourceRoot":"","sources":["../../src/payloads/ban.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,GAAG,SAAS,EAAE,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,UAAU,EAAE,QAAQ,CAAC;IACrB;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,WAAW,MAAO,SAAQ,WAAW;IAC1C,UAAU,EAAE,YAAY,CAAC;IACzB,UAAU,EAAE,QAAQ,CAAC;IACrB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,oBAAY,WAAW;IACtB,KAAK,qBAAqB;IAC1B,UAAU,sBAAsB;IAChC,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,IAAI,aAAa;IACjB,OAAO,oBAAoB;IAE3B,UAAU,eAAe;IACzB,KAAK,UAAU;CACf;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,GAAG,WAAW,EAAE,CAAC;AAE5C;;GAEG;AACH,oBAAY,SAAS;IAEpB,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IAEf,iBAAiB,sBAAsB;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/payloads/base.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;CACX;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { RESTAPIItems } from "../utils";
|
|
2
|
+
import { APIBasePayload } from "./base";
|
|
3
|
+
/**
|
|
4
|
+
* Channel type constants matching the WAMP wire format
|
|
5
|
+
*/
|
|
6
|
+
export declare const ChannelType: {
|
|
7
|
+
readonly DM: 1;
|
|
8
|
+
readonly Private: 2;
|
|
9
|
+
readonly Public: 3;
|
|
10
|
+
};
|
|
11
|
+
export type ChannelType = (typeof ChannelType)[keyof typeof ChannelType];
|
|
12
|
+
/**
|
|
13
|
+
* Channel join state constants matching the WAMP wire format
|
|
14
|
+
*/
|
|
15
|
+
export declare const JoinState: {
|
|
16
|
+
readonly NotJoined: 0;
|
|
17
|
+
readonly Invited: 1;
|
|
18
|
+
readonly Joined: 2;
|
|
19
|
+
};
|
|
20
|
+
export type JoinState = (typeof JoinState)[keyof typeof JoinState];
|
|
21
|
+
/**
|
|
22
|
+
* Message type constants matching the WAMP wire format
|
|
23
|
+
*/
|
|
24
|
+
export declare const MessageType: {
|
|
25
|
+
readonly TEXT_MESSAGE: 1;
|
|
26
|
+
readonly JOIN_CHANNEL: 3;
|
|
27
|
+
readonly EXIT_CHANNEL: 4;
|
|
28
|
+
};
|
|
29
|
+
export type MessageType = (typeof MessageType)[keyof typeof MessageType];
|
|
30
|
+
/**
|
|
31
|
+
* WAMP event type codes sent in kwargs["type"] of subscription events
|
|
32
|
+
*/
|
|
33
|
+
export declare const EventType: {
|
|
34
|
+
readonly JOIN: 100;
|
|
35
|
+
readonly EXIT: 101;
|
|
36
|
+
readonly MESSAGE: 200;
|
|
37
|
+
readonly INVITED: 300;
|
|
38
|
+
};
|
|
39
|
+
export type EventType = (typeof EventType)[keyof typeof EventType];
|
|
40
|
+
/**
|
|
41
|
+
* Represents a chat channel
|
|
42
|
+
*/
|
|
43
|
+
export interface APIChatChannel extends APIBasePayload {
|
|
44
|
+
id: string;
|
|
45
|
+
name: string;
|
|
46
|
+
title: string;
|
|
47
|
+
members_online: number;
|
|
48
|
+
members_total: number;
|
|
49
|
+
type: ChannelType;
|
|
50
|
+
join_state: JoinState;
|
|
51
|
+
role?: number;
|
|
52
|
+
touch_dt: number;
|
|
53
|
+
user: {
|
|
54
|
+
id: string;
|
|
55
|
+
nick: string;
|
|
56
|
+
last_seen_at?: number;
|
|
57
|
+
is_verified: boolean;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Represents a chat message or event in a channel.
|
|
62
|
+
* Note: the user ID field is keyed as "user" (not "id") in message payloads.
|
|
63
|
+
*/
|
|
64
|
+
export interface APIChatMessage extends APIBasePayload {
|
|
65
|
+
id: string;
|
|
66
|
+
text: string;
|
|
67
|
+
type: MessageType;
|
|
68
|
+
status?: number;
|
|
69
|
+
pub_at: number;
|
|
70
|
+
user: {
|
|
71
|
+
user: string;
|
|
72
|
+
nick: string;
|
|
73
|
+
is_verified: boolean;
|
|
74
|
+
last_seen_at?: number;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* API response wrapper for channels endpoint
|
|
79
|
+
*/
|
|
80
|
+
export interface APIChannelsResponse {
|
|
81
|
+
channels: RESTAPIItems<APIChatChannel>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Response from get_messages WAMP RPC call
|
|
85
|
+
*/
|
|
86
|
+
export interface APIGetMessagesResponse {
|
|
87
|
+
messages: APIChatMessage[];
|
|
88
|
+
prev: number;
|
|
89
|
+
next: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Response from get_chat, get_or_create_chat, and new_chat WAMP RPC calls
|
|
93
|
+
*/
|
|
94
|
+
export interface APIGetChatResponse {
|
|
95
|
+
chat: APIChatChannel;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Payload for inviting users to a chat channel (invite.invite RPC)
|
|
99
|
+
*/
|
|
100
|
+
export interface APIInvitePayload {
|
|
101
|
+
chat_name: string;
|
|
102
|
+
users: string[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Payload for responding to a chat invite (invite.accept or invite.decline RPC)
|
|
106
|
+
*/
|
|
107
|
+
export interface APIInviteResponsePayload {
|
|
108
|
+
chat_name: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Payload for kicking a user from a channel (kick_member RPC)
|
|
112
|
+
*/
|
|
113
|
+
export interface APIKickPayload {
|
|
114
|
+
chat_name: string;
|
|
115
|
+
user_id: string;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/payloads/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAId,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAId,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;KACrB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACF;AAGD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,cAAc,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { APIUserProfile } from "./user";
|
|
2
|
+
/**
|
|
3
|
+
* The user data retrieved from `/account`
|
|
4
|
+
*/
|
|
5
|
+
export interface APIClientUser extends Omit<APIUserProfile, "rating"> {
|
|
6
|
+
/**
|
|
7
|
+
* The verified phone number attatched to the Client's account
|
|
8
|
+
*/
|
|
9
|
+
phone?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Data about the phone number attatched to the Client's account'
|
|
12
|
+
*/
|
|
13
|
+
phone_data?: APIClientPhoneData;
|
|
14
|
+
/**
|
|
15
|
+
* Unverified phone number attatched to the Client's account
|
|
16
|
+
*/
|
|
17
|
+
unconfirmed_phone?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Data about the phone number attatched to the Client's account
|
|
20
|
+
*/
|
|
21
|
+
unconfirmed_phone_data?: APIClientPhoneData;
|
|
22
|
+
/**
|
|
23
|
+
* Is the client blocked from using chats
|
|
24
|
+
*/
|
|
25
|
+
is_blocked_in_messenger: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Is safe mode enabled
|
|
28
|
+
*/
|
|
29
|
+
safe_mode: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Is the client a moderator of iFunny
|
|
32
|
+
*/
|
|
33
|
+
is_moderator: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Is the client an iFunny staff member
|
|
36
|
+
*/
|
|
37
|
+
is_ifunny_team_member: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Does the Client have unnotified bans
|
|
40
|
+
*/
|
|
41
|
+
have_unnotified_bans: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Does the client have unnotified strikes
|
|
44
|
+
*/
|
|
45
|
+
have_unnotified_strikes: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Does the client have unnotified achievements
|
|
48
|
+
*/
|
|
49
|
+
have_unnotified_achievements: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Does the client have unnotified levels
|
|
52
|
+
*/
|
|
53
|
+
have_unnotified_levels: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Does the client still need to set up their account
|
|
56
|
+
*/
|
|
57
|
+
need_account_setup: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Hometown of the client. Can be an empty string
|
|
60
|
+
*/
|
|
61
|
+
hometown: string;
|
|
62
|
+
/**
|
|
63
|
+
* Location of the client. Can be an empty string
|
|
64
|
+
*/
|
|
65
|
+
location: string;
|
|
66
|
+
/**
|
|
67
|
+
* The Clinet's sex
|
|
68
|
+
*/
|
|
69
|
+
sex: APIClientUserSex;
|
|
70
|
+
/**
|
|
71
|
+
* `YYYY-MM-DD`
|
|
72
|
+
*/
|
|
73
|
+
birth_date: string;
|
|
74
|
+
/**
|
|
75
|
+
* The email attached to the Client's account
|
|
76
|
+
*/
|
|
77
|
+
email: string;
|
|
78
|
+
}
|
|
79
|
+
interface APIClientPhoneData {
|
|
80
|
+
/**
|
|
81
|
+
* Country code of the phone number
|
|
82
|
+
*/
|
|
83
|
+
code: string;
|
|
84
|
+
/**
|
|
85
|
+
* 10 digit phone number
|
|
86
|
+
*/
|
|
87
|
+
number: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* All current genders (sex) for the Client
|
|
91
|
+
*/
|
|
92
|
+
export declare enum API_SEX {
|
|
93
|
+
MALE = "male",
|
|
94
|
+
FEMALE = "female",
|
|
95
|
+
OTHER = "other"
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Possible sex types for the Client
|
|
99
|
+
* @alias APIClientUserGender
|
|
100
|
+
*/
|
|
101
|
+
export type APIClientUserSex = `${API_SEX}`;
|
|
102
|
+
/**
|
|
103
|
+
* Possible genders for the Client
|
|
104
|
+
* @alias APIClientUserSex
|
|
105
|
+
*/
|
|
106
|
+
export type APIClientUserGender = APIClientUserSex;
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/payloads/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IACpE;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,sBAAsB,CAAC,EAAE,kBAAkB,CAAC;IAC5C;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,4BAA4B,EAAE,OAAO,CAAC;IACtC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,GAAG,EAAE,gBAAgB,CAAC;IACtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACd;AAED,UAAU,kBAAkB;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,oBAAY,OAAO;IAClB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,GAAG,OAAO,EAAE,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { EpochMs } from "../utils";
|
|
2
|
+
import { APIContent, APIContentCreator, APIContentGif, APIContentThumbnail } from "./content";
|
|
3
|
+
import { APIUser, APIUserRating } from "./user";
|
|
4
|
+
/**
|
|
5
|
+
* Represents a Comment from iFunny
|
|
6
|
+
*/
|
|
7
|
+
export interface APICommentBase {
|
|
8
|
+
id: string;
|
|
9
|
+
/**
|
|
10
|
+
* Content ID
|
|
11
|
+
*/
|
|
12
|
+
cid: string;
|
|
13
|
+
/**
|
|
14
|
+
* The state of the Comment
|
|
15
|
+
*/
|
|
16
|
+
state?: APICommentState;
|
|
17
|
+
/**
|
|
18
|
+
* Unix timestamp of when it was uploaded in MS
|
|
19
|
+
*/
|
|
20
|
+
date: EpochMs;
|
|
21
|
+
/**
|
|
22
|
+
* Text of the comment
|
|
23
|
+
* ? Can be empty string
|
|
24
|
+
*/
|
|
25
|
+
text: string;
|
|
26
|
+
is_reply: boolean;
|
|
27
|
+
num: APICommentNum;
|
|
28
|
+
is_smiled: boolean;
|
|
29
|
+
is_unsmiled: boolean;
|
|
30
|
+
is_edited: boolean;
|
|
31
|
+
user?: APICommentAuthor;
|
|
32
|
+
deletion_reason?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Only observed when viewing own comments
|
|
35
|
+
*/
|
|
36
|
+
content?: APIContent;
|
|
37
|
+
attachments: APICommentAttachments;
|
|
38
|
+
content_thumbs?: APIContentThumbnail;
|
|
39
|
+
/**
|
|
40
|
+
* Most recent reply to the comment
|
|
41
|
+
*/
|
|
42
|
+
last_reply?: APIReply;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Represents a Reply to a Comment from iFunny
|
|
46
|
+
*/
|
|
47
|
+
export interface APIReply extends APICommentBase {
|
|
48
|
+
root_comm_id: string;
|
|
49
|
+
parent_comm_id: string;
|
|
50
|
+
depth: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Represents a Comment from iFunny
|
|
54
|
+
*/
|
|
55
|
+
export type APIComment = APICommentBase | APIReply;
|
|
56
|
+
export interface APICommentNum {
|
|
57
|
+
smiles: number;
|
|
58
|
+
unsmiles: number;
|
|
59
|
+
replies: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* All states of the comment
|
|
63
|
+
*/
|
|
64
|
+
export declare enum COMMENT_STATE {
|
|
65
|
+
NORMAL = "normal",
|
|
66
|
+
TOP_COMMENT = "top",
|
|
67
|
+
ABUSED = "abused",
|
|
68
|
+
DELETED = "deleted",
|
|
69
|
+
AUTHOR_DELETED = "deleted_self"
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* All possible states of the comment
|
|
73
|
+
*/
|
|
74
|
+
export type APICommentState = `${COMMENT_STATE}`;
|
|
75
|
+
export interface APICommentAuthor extends APIContentCreator {
|
|
76
|
+
rating: APIUserRating;
|
|
77
|
+
}
|
|
78
|
+
export interface APICommentAttachments {
|
|
79
|
+
content: APIContent[];
|
|
80
|
+
content_from_links: APIContent[];
|
|
81
|
+
mention_user: APIMentionUser[];
|
|
82
|
+
giphy: APIContentGif[];
|
|
83
|
+
}
|
|
84
|
+
export type APICommentContent = Pick<APIContent, "id" | "type" | "is_abused" | "bg_color" | "shot_status" | "state" | "size" | "thumb" | "source" | "creator">;
|
|
85
|
+
export interface APIMentionUser {
|
|
86
|
+
/**
|
|
87
|
+
* ID of the Mention\
|
|
88
|
+
* ? Increments last digit of the comment id
|
|
89
|
+
*/
|
|
90
|
+
id: string;
|
|
91
|
+
creator: APIContentCreator;
|
|
92
|
+
nick: APIUser["nick"];
|
|
93
|
+
start_index: number;
|
|
94
|
+
stop_index: number;
|
|
95
|
+
user_id: APIUser["id"];
|
|
96
|
+
original_nick: APIUser["original_nick"];
|
|
97
|
+
}
|
|
98
|
+
export declare enum APICommentDeletedReaons {
|
|
99
|
+
/**
|
|
100
|
+
* Unobserved
|
|
101
|
+
*/
|
|
102
|
+
SPAM_FILTER = "del_by_spam_filter",
|
|
103
|
+
/**
|
|
104
|
+
* Post itself was deleted
|
|
105
|
+
*/
|
|
106
|
+
CONTENT = "del_content",
|
|
107
|
+
/**
|
|
108
|
+
* Content author deleted the comment
|
|
109
|
+
*/
|
|
110
|
+
CREATOR = "del_content_creator",
|
|
111
|
+
/**
|
|
112
|
+
* Removed for slurs usually, state observed to be "deleted" however
|
|
113
|
+
*/
|
|
114
|
+
ABUSES = "del_for_abuses",
|
|
115
|
+
/**
|
|
116
|
+
* Comment was a reply and the root comment was removed
|
|
117
|
+
*/
|
|
118
|
+
ROOT_COMMENT = "del_root_comment",
|
|
119
|
+
/**
|
|
120
|
+
* Unobserved
|
|
121
|
+
*/
|
|
122
|
+
VIA_PORTAL = "del_via_portal"
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=comment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../../src/payloads/comment.ts"],"names":[],"mappings":"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"}
|