mirror of
https://github.com/LemmyNet/lemmy-js-client.git
synced 2024-11-22 12:21:12 +00:00
Merge remote-tracking branch 'origin/main' into release/v0.19
This commit is contained in:
commit
5b3c7ebcfa
76 changed files with 2723 additions and 2372 deletions
|
@ -1,44 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"env": {
|
||||
"browser": true
|
||||
},
|
||||
"plugins": ["@typescript-eslint"],
|
||||
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"ignorePatterns": ["putTypesInIndex.js"],
|
||||
"parserOptions": {
|
||||
"project": "./tsconfig.json",
|
||||
"warnOnUnsupportedTypeScriptVersion": false
|
||||
},
|
||||
"rules": {
|
||||
"@typescript-eslint/no-empty-interface": 0,
|
||||
"@typescript-eslint/no-empty-function": 0,
|
||||
"@typescript-eslint/ban-ts-comment": 0,
|
||||
"@typescript-eslint/no-explicit-any": 0,
|
||||
"@typescript-eslint/explicit-module-boundary-types": 0,
|
||||
"arrow-body-style": 0,
|
||||
"curly": 0,
|
||||
"eol-last": 0,
|
||||
"eqeqeq": 0,
|
||||
"func-style": 0,
|
||||
"import/no-duplicates": 0,
|
||||
"max-statements": 0,
|
||||
"max-params": 0,
|
||||
"new-cap": 0,
|
||||
"no-console": 0,
|
||||
"no-duplicate-imports": 0,
|
||||
"no-extra-parens": 0,
|
||||
"no-return-assign": 0,
|
||||
"no-throw-literal": 1,
|
||||
"no-trailing-spaces": 0,
|
||||
"no-unused-expressions": 0,
|
||||
"no-useless-constructor": 0,
|
||||
"no-useless-escape": 0,
|
||||
"no-var": 0,
|
||||
"prefer-const": 0,
|
||||
"prefer-rest-params": 0,
|
||||
"quote-props": 0,
|
||||
"unicorn/filename-case": 0
|
||||
}
|
||||
}
|
|
@ -1,4 +1 @@
|
|||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
yarn lint-staged
|
||||
pnpm lint-staged
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
pipeline:
|
||||
yarn:
|
||||
image: node:alpine
|
||||
commands:
|
||||
- yarn
|
||||
variables:
|
||||
- &install_pnpm "corepack enable pnpm"
|
||||
|
||||
yarn_lint:
|
||||
steps:
|
||||
install:
|
||||
image: node:alpine
|
||||
commands:
|
||||
- yarn lint
|
||||
- *install_pnpm
|
||||
- pnpm i
|
||||
when:
|
||||
- event: pull_request
|
||||
|
||||
lint:
|
||||
image: node:alpine
|
||||
commands:
|
||||
- *install_pnpm
|
||||
- pnpm lint
|
||||
when:
|
||||
- event: pull_request
|
||||
|
||||
npm_publish:
|
||||
image: node:alpine
|
||||
commands:
|
||||
- *install_pnpm
|
||||
- pnpm i
|
||||
- echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> .npmrc
|
||||
- echo "email = tyhou13@gmx.com" >> ~/.npmrc
|
||||
- npm publish
|
||||
secrets: [npm_token]
|
||||
when:
|
||||
event: tag
|
||||
- event: tag
|
||||
|
|
39
README.md
39
README.md
|
@ -13,7 +13,7 @@ A javascript / typescript http client and type system for [Lemmy](https://github
|
|||
|
||||
## Installation
|
||||
|
||||
`yarn add lemmy-js-client`
|
||||
`pnpm install lemmy-js-client`
|
||||
|
||||
## Usage
|
||||
|
||||
|
@ -22,31 +22,34 @@ A javascript / typescript http client and type system for [Lemmy](https://github
|
|||
[LemmyHttp docs](https://join-lemmy.org/api/classes/LemmyHttp.html)
|
||||
|
||||
```ts
|
||||
import { LemmyHttp, Login } from 'lemmy-js-client';
|
||||
import { LemmyHttp, Login } from "lemmy-js-client";
|
||||
|
||||
let baseUrl = 'https://lemmy.ml';
|
||||
let client: LemmyHttp = new LemmyHttp(baseUrl, headers?);
|
||||
let loginForm: Login = {
|
||||
// Build the client
|
||||
const baseUrl = "https://lemmy.ml";
|
||||
const client: LemmyHttp = new LemmyHttp(baseUrl);
|
||||
|
||||
// Build the login form
|
||||
const loginForm: Login = {
|
||||
username_or_email: "my_name",
|
||||
password: "my_pass",
|
||||
};
|
||||
let jwt = await client.login(loginForm).jwt;
|
||||
|
||||
// Login and set the client headers with your jwt
|
||||
const { jwt } = await client.login(loginForm);
|
||||
client.setHeaders({ Authorization: `Bearer ${jwt}` });
|
||||
|
||||
// Fetch top posts for the day
|
||||
const getPostsForm: GetPosts = {
|
||||
sort: "TopDay",
|
||||
type_: "Local",
|
||||
};
|
||||
const posts = await client.getPosts(getPostsForm);
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
You can use [yalc](https://github.com/wclr/yalc) to develop and test changes locally:
|
||||
Use `pnpm add` to develop and test changes locally:
|
||||
|
||||
```
|
||||
yarn global add yalc
|
||||
|
||||
# Go to lemmy-js-client dir
|
||||
yalc publish --push
|
||||
|
||||
# Go to your client dir
|
||||
yalc add lemmy-js-client
|
||||
|
||||
# To do updates, go back to the lemmy-js-client dir
|
||||
# This also updates it, in every dir you've added it.
|
||||
yalc publish --push
|
||||
pnpm add path/to/lemmy-js-client
|
||||
```
|
||||
|
|
|
@ -28,7 +28,7 @@ popd
|
|||
rm src/types/Sensitive.ts
|
||||
|
||||
# Change all the bigints to numbers
|
||||
find src/types -type f -name '*.ts' -exec sed -i 's/bigint/\/* integer *\/ number/g' {} +
|
||||
find src/types -type f -name '*.ts' -exec sed -i 's/bigint/number/g' {} +
|
||||
|
||||
node putTypesInIndex.js
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
new_tag="$1"
|
||||
|
||||
yarn version --new-version $new_tag
|
||||
pnpm version $new_tag
|
||||
git push
|
||||
git tag $new_tag
|
||||
git push origin $new_tag
|
||||
|
|
49
eslint.config.mjs
Normal file
49
eslint.config.mjs
Normal file
|
@ -0,0 +1,49 @@
|
|||
import pluginJs from "@eslint/js";
|
||||
import tseslint from "typescript-eslint";
|
||||
|
||||
export default [
|
||||
pluginJs.configs.recommended,
|
||||
...tseslint.configs.recommended,
|
||||
{
|
||||
languageOptions: {
|
||||
parser: tseslint.parser,
|
||||
},
|
||||
},
|
||||
// For some reason this has to be in its own block
|
||||
{
|
||||
ignores: ["putTypesInIndex.js", "dist/*", "docs/*"],
|
||||
},
|
||||
{
|
||||
files: ["src/**/*"],
|
||||
rules: {
|
||||
"@typescript-eslint/no-empty-interface": 0,
|
||||
"@typescript-eslint/no-empty-function": 0,
|
||||
"@typescript-eslint/ban-ts-comment": 0,
|
||||
"@typescript-eslint/no-explicit-any": 0,
|
||||
"@typescript-eslint/explicit-module-boundary-types": 0,
|
||||
"arrow-body-style": 0,
|
||||
curly: 0,
|
||||
"eol-last": 0,
|
||||
eqeqeq: 0,
|
||||
"func-style": 0,
|
||||
"import/no-duplicates": 0,
|
||||
"max-statements": 0,
|
||||
"max-params": 0,
|
||||
"new-cap": 0,
|
||||
"no-console": 0,
|
||||
"no-duplicate-imports": 0,
|
||||
"no-extra-parens": 0,
|
||||
"no-return-assign": 0,
|
||||
"no-throw-literal": 1,
|
||||
"no-trailing-spaces": 0,
|
||||
"no-unused-expressions": 0,
|
||||
"no-useless-constructor": 0,
|
||||
"no-useless-escape": 0,
|
||||
"no-var": 0,
|
||||
"prefer-const": 0,
|
||||
"prefer-rest-params": 0,
|
||||
"quote-props": 0,
|
||||
"unicorn/filename-case": 0,
|
||||
},
|
||||
},
|
||||
];
|
60
package.json
60
package.json
|
@ -1,42 +1,50 @@
|
|||
{
|
||||
"name": "lemmy-js-client",
|
||||
"version": "0.19.2-alpha.3",
|
||||
"description": "A javascript / typescript client for Lemmy",
|
||||
"repository": "https://github.com/LemmyNet/lemmy-js-client",
|
||||
"license": "AGPL-3.0",
|
||||
"version": "0.19.4",
|
||||
"author": "Dessalines <tyhou13@gmx.com>",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"files": ["/dist"],
|
||||
"files": [
|
||||
"/dist"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"docs": "typedoc src/index.ts",
|
||||
"lint": "tsc --noEmit && eslint --report-unused-disable-directives --ext .js,.ts,.tsx src && prettier --check src",
|
||||
"prepare": "yarn run build && husky install"
|
||||
"lint": "tsc --noEmit && eslint --report-unused-disable-directives && prettier --check src",
|
||||
"prepare": "pnpm run build && husky"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{ts,tsx,js}": ["prettier --write", "eslint --fix"],
|
||||
"package.json": ["sortpack"]
|
||||
},
|
||||
"dependencies": {
|
||||
"cross-fetch": "^3.1.5",
|
||||
"form-data": "^4.0.0"
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/LemmyNet/lemmy-js-client.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.10.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.13.1",
|
||||
"@typescript-eslint/parser": "^6.13.1",
|
||||
"eslint": "^8.54.0",
|
||||
"eslint-plugin-prettier": "^5.0.1",
|
||||
"husky": "^8.0.3",
|
||||
"lint-staged": "^15.1.0",
|
||||
"prettier": "^3.1.0",
|
||||
"@types/node": "^20.11.19",
|
||||
"@typescript-eslint/eslint-plugin": "^7.0.1",
|
||||
"@typescript-eslint/parser": "^7.0.1",
|
||||
"eslint": "^9.0.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"husky": "^9.0.11",
|
||||
"lint-staged": "^15.2.2",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-import-sort": "^0.0.7",
|
||||
"prettier-plugin-organize-imports": "^3.2.4",
|
||||
"prettier-plugin-packagejson": "^2.4.6",
|
||||
"sortpack": "^2.3.5",
|
||||
"typedoc": "^0.24.7",
|
||||
"typescript": "^5.3.2"
|
||||
"prettier-plugin-packagejson": "^2.4.11",
|
||||
"sortpack": "^2.4.0",
|
||||
"typedoc": "^0.25.8",
|
||||
"typescript": "^5.3.3",
|
||||
"typescript-eslint": "^7.9.0"
|
||||
},
|
||||
"packageManager": "pnpm@9.1.4",
|
||||
"types": "./dist/index.d.ts",
|
||||
"lint-staged": {
|
||||
"*.{ts,tsx,js}": [
|
||||
"prettier --write",
|
||||
"eslint --fix"
|
||||
],
|
||||
"package.json": [
|
||||
"sortpack"
|
||||
]
|
||||
},
|
||||
"importSort": {
|
||||
".js, .jsx, .ts, .tsx": {
|
||||
|
|
2303
pnpm-lock.yaml
Normal file
2303
pnpm-lock.yaml
Normal file
File diff suppressed because it is too large
Load diff
5
renovate.json
Normal file
5
renovate.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": ["config:recommended"],
|
||||
"schedule": ["before 4am on the first day of the month"]
|
||||
}
|
65
src/http.ts
65
src/http.ts
|
@ -1,5 +1,3 @@
|
|||
import fetch from "cross-fetch";
|
||||
import FormData from "form-data";
|
||||
import { AddAdmin } from "./types/AddAdmin";
|
||||
import { AddAdminResponse } from "./types/AddAdminResponse";
|
||||
import { AddModToCommunity } from "./types/AddModToCommunity";
|
||||
|
@ -138,6 +136,9 @@ import { ListPostLikes } from "./types/ListPostLikes";
|
|||
import { ListPostLikesResponse } from "./types/ListPostLikesResponse";
|
||||
import { ListCommentLikes } from "./types/ListCommentLikes";
|
||||
import { ListCommentLikesResponse } from "./types/ListCommentLikesResponse";
|
||||
import { HidePost } from "./types/HidePost";
|
||||
import { ListMedia } from "./types/ListMedia";
|
||||
import { ListMediaResponse } from "./types/ListMediaResponse";
|
||||
|
||||
enum HttpType {
|
||||
Get = "GET",
|
||||
|
@ -152,7 +153,7 @@ export class LemmyHttp {
|
|||
#apiUrl: string;
|
||||
#headers: { [key: string]: string } = {};
|
||||
#pictrsUrl: string;
|
||||
#fetchFunction = fetch;
|
||||
#fetchFunction = fetch.bind(globalThis);
|
||||
|
||||
/**
|
||||
* Generates a new instance of LemmyHttp.
|
||||
|
@ -289,6 +290,32 @@ export class LemmyHttp {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* List all the media for your user
|
||||
*
|
||||
* `HTTP.GET /account/list_media`
|
||||
*/
|
||||
listMedia(form: ListMedia = {}) {
|
||||
return this.#wrapper<ListMedia, ListMediaResponse>(
|
||||
HttpType.Get,
|
||||
"/account/list_media",
|
||||
form,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* List all the media known to your instance.
|
||||
*
|
||||
* `HTTP.GET /admin/list_all_media`
|
||||
*/
|
||||
listAllMedia(form: ListMedia = {}) {
|
||||
return this.#wrapper<ListMedia, ListMediaResponse>(
|
||||
HttpType.Get,
|
||||
"/admin/list_all_media",
|
||||
form,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable / Disable TOTP / two-factor authentication.
|
||||
*
|
||||
|
@ -567,6 +594,19 @@ export class LemmyHttp {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide a post from list views.
|
||||
*
|
||||
* `HTTP.POST /post/hide`
|
||||
*/
|
||||
hidePost(form: HidePost) {
|
||||
return this.#wrapper<HidePost, SuccessResponse>(
|
||||
HttpType.Post,
|
||||
"/post/hide",
|
||||
form,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* A moderator can lock a post ( IE disable new comments ).
|
||||
*
|
||||
|
@ -622,7 +662,7 @@ export class LemmyHttp {
|
|||
/**
|
||||
* List a post's likes. Admin-only.
|
||||
*
|
||||
* `HTTP.GET /post/like`
|
||||
* `HTTP.GET /post/like/list`
|
||||
*/
|
||||
listPostLikes(form: ListPostLikes) {
|
||||
return this.#wrapper<ListPostLikes, ListPostLikesResponse>(
|
||||
|
@ -778,7 +818,7 @@ export class LemmyHttp {
|
|||
/**
|
||||
* List a comment's likes. Admin-only.
|
||||
*
|
||||
* `HTTP.GET //like`
|
||||
* `HTTP.GET /comment/like/list`
|
||||
*/
|
||||
listCommentLikes(form: ListCommentLikes) {
|
||||
return this.#wrapper<ListCommentLikes, ListCommentLikesResponse>(
|
||||
|
@ -1006,6 +1046,11 @@ export class LemmyHttp {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Invalidate the currently used auth token.
|
||||
*
|
||||
* `HTTP.POST /user/logout`
|
||||
*/
|
||||
logout() {
|
||||
return this.#wrapper<object, SuccessResponse>(
|
||||
HttpType.Post,
|
||||
|
@ -1502,7 +1547,7 @@ export class LemmyHttp {
|
|||
|
||||
function encodeGetParams<BodyType extends object>(p: BodyType): string {
|
||||
return Object.entries(p)
|
||||
.filter(kv => !!kv[1])
|
||||
.filter(kv => kv[1] !== undefined && kv[1] !== null)
|
||||
.map(kv => kv.map(encodeURIComponent).join("="))
|
||||
.join("&");
|
||||
}
|
||||
|
@ -1510,11 +1555,15 @@ function encodeGetParams<BodyType extends object>(p: BodyType): string {
|
|||
function createFormData(image: File | Buffer): FormData {
|
||||
let formData = new FormData();
|
||||
|
||||
if (image.constructor.name === "File") {
|
||||
if (image instanceof File) {
|
||||
formData.append("images[]", image);
|
||||
} else {
|
||||
// The filename doesn't affect the file type or file name that ends up in pictrs
|
||||
formData.append("images[]", image, { filename: "image.jpg" });
|
||||
formData.append(
|
||||
"images[]",
|
||||
new Blob([image], { type: "image/jpeg" }),
|
||||
"image.jpg",
|
||||
);
|
||||
}
|
||||
|
||||
return formData;
|
||||
|
|
12
src/index.ts
12
src/index.ts
|
@ -48,6 +48,7 @@ export { CommunityId } from "./types/CommunityId";
|
|||
export { CommunityModeratorView } from "./types/CommunityModeratorView";
|
||||
export { CommunityResponse } from "./types/CommunityResponse";
|
||||
export { CommunityView } from "./types/CommunityView";
|
||||
export { CommunityVisibility } from "./types/CommunityVisibility";
|
||||
export { CreateComment } from "./types/CreateComment";
|
||||
export { CreateCommentLike } from "./types/CreateCommentLike";
|
||||
export { CreateCommentReport } from "./types/CreateCommentReport";
|
||||
|
@ -109,7 +110,7 @@ export { GetSiteResponse } from "./types/GetSiteResponse";
|
|||
export { GetUnreadCountResponse } from "./types/GetUnreadCountResponse";
|
||||
export { GetUnreadRegistrationApplicationCountResponse } from "./types/GetUnreadRegistrationApplicationCountResponse";
|
||||
export { HideCommunity } from "./types/HideCommunity";
|
||||
export { ImageUpload } from "./types/ImageUpload";
|
||||
export { HidePost } from "./types/HidePost";
|
||||
export { Instance } from "./types/Instance";
|
||||
export { InstanceBlockView } from "./types/InstanceBlockView";
|
||||
export { InstanceId } from "./types/InstanceId";
|
||||
|
@ -117,12 +118,15 @@ export { InstanceWithFederationState } from "./types/InstanceWithFederationState
|
|||
export { Language } from "./types/Language";
|
||||
export { LanguageId } from "./types/LanguageId";
|
||||
export { LemmyErrorType } from "./types/LemmyErrorType";
|
||||
export { LinkMetadata } from "./types/LinkMetadata";
|
||||
export { ListCommentLikes } from "./types/ListCommentLikes";
|
||||
export { ListCommentLikesResponse } from "./types/ListCommentLikesResponse";
|
||||
export { ListCommentReports } from "./types/ListCommentReports";
|
||||
export { ListCommentReportsResponse } from "./types/ListCommentReportsResponse";
|
||||
export { ListCommunities } from "./types/ListCommunities";
|
||||
export { ListCommunitiesResponse } from "./types/ListCommunitiesResponse";
|
||||
export { ListMedia } from "./types/ListMedia";
|
||||
export { ListMediaResponse } from "./types/ListMediaResponse";
|
||||
export { ListPostLikes } from "./types/ListPostLikes";
|
||||
export { ListPostLikesResponse } from "./types/ListPostLikesResponse";
|
||||
export { ListPostReports } from "./types/ListPostReports";
|
||||
|
@ -132,12 +136,16 @@ export { ListPrivateMessageReportsResponse } from "./types/ListPrivateMessageRep
|
|||
export { ListRegistrationApplications } from "./types/ListRegistrationApplications";
|
||||
export { ListRegistrationApplicationsResponse } from "./types/ListRegistrationApplicationsResponse";
|
||||
export { ListingType } from "./types/ListingType";
|
||||
export { LocalImage } from "./types/LocalImage";
|
||||
export { LocalImageView } from "./types/LocalImageView";
|
||||
export { LocalSite } from "./types/LocalSite";
|
||||
export { LocalSiteId } from "./types/LocalSiteId";
|
||||
export { LocalSiteRateLimit } from "./types/LocalSiteRateLimit";
|
||||
export { LocalSiteUrlBlocklist } from "./types/LocalSiteUrlBlocklist";
|
||||
export { LocalUser } from "./types/LocalUser";
|
||||
export { LocalUserId } from "./types/LocalUserId";
|
||||
export { LocalUserView } from "./types/LocalUserView";
|
||||
export { LocalUserVoteDisplayMode } from "./types/LocalUserVoteDisplayMode";
|
||||
export { LockPost } from "./types/LockPost";
|
||||
export { Login } from "./types/Login";
|
||||
export { LoginResponse } from "./types/LoginResponse";
|
||||
|
@ -171,6 +179,7 @@ export { ModTransferCommunityView } from "./types/ModTransferCommunityView";
|
|||
export { ModlogActionType } from "./types/ModlogActionType";
|
||||
export { ModlogListParams } from "./types/ModlogListParams";
|
||||
export { MyUserInfo } from "./types/MyUserInfo";
|
||||
export { OpenGraphData } from "./types/OpenGraphData";
|
||||
export { PaginationCursor } from "./types/PaginationCursor";
|
||||
export { PasswordChangeAfterReset } from "./types/PasswordChangeAfterReset";
|
||||
export { PasswordReset } from "./types/PasswordReset";
|
||||
|
@ -231,7 +240,6 @@ export { SearchType } from "./types/SearchType";
|
|||
export { Site } from "./types/Site";
|
||||
export { SiteAggregates } from "./types/SiteAggregates";
|
||||
export { SiteId } from "./types/SiteId";
|
||||
export { SiteMetadata } from "./types/SiteMetadata";
|
||||
export { SiteResponse } from "./types/SiteResponse";
|
||||
export { SiteView } from "./types/SiteView";
|
||||
export { SortType } from "./types/SortType";
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ActivityId = /* integer */ number;
|
||||
export type ActivityId = number;
|
||||
|
|
|
@ -8,5 +8,5 @@ export interface BanFromCommunity {
|
|||
ban: boolean;
|
||||
remove_data?: boolean;
|
||||
reason?: string;
|
||||
expires?: /* integer */ number;
|
||||
expires?: number;
|
||||
}
|
||||
|
|
|
@ -6,5 +6,5 @@ export interface BanPerson {
|
|||
ban: boolean;
|
||||
remove_data?: boolean;
|
||||
reason?: string;
|
||||
expires?: /* integer */ number;
|
||||
expires?: number;
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@ import type { CommentId } from "./CommentId";
|
|||
|
||||
export interface CommentAggregates {
|
||||
comment_id: CommentId;
|
||||
score: /* integer */ number;
|
||||
upvotes: /* integer */ number;
|
||||
downvotes: /* integer */ number;
|
||||
score: number;
|
||||
upvotes: number;
|
||||
downvotes: number;
|
||||
published: string;
|
||||
child_count: number;
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ export interface CommentReplyView {
|
|||
recipient: Person;
|
||||
counts: CommentAggregates;
|
||||
creator_banned_from_community: boolean;
|
||||
banned_from_community: boolean;
|
||||
creator_is_moderator: boolean;
|
||||
creator_is_admin: boolean;
|
||||
subscribed: SubscribedType;
|
||||
|
|
|
@ -5,6 +5,7 @@ import type { CommentReport } from "./CommentReport";
|
|||
import type { Community } from "./Community";
|
||||
import type { Person } from "./Person";
|
||||
import type { Post } from "./Post";
|
||||
import type { SubscribedType } from "./SubscribedType";
|
||||
|
||||
export interface CommentReportView {
|
||||
comment_report: CommentReport;
|
||||
|
@ -15,6 +16,11 @@ export interface CommentReportView {
|
|||
comment_creator: Person;
|
||||
counts: CommentAggregates;
|
||||
creator_banned_from_community: boolean;
|
||||
creator_is_moderator: boolean;
|
||||
creator_is_admin: boolean;
|
||||
creator_blocked: boolean;
|
||||
subscribed: SubscribedType;
|
||||
saved: boolean;
|
||||
my_vote?: number;
|
||||
resolver?: Person;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ export interface CommentView {
|
|||
community: Community;
|
||||
counts: CommentAggregates;
|
||||
creator_banned_from_community: boolean;
|
||||
banned_from_community: boolean;
|
||||
creator_is_moderator: boolean;
|
||||
creator_is_admin: boolean;
|
||||
subscribed: SubscribedType;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CommunityId } from "./CommunityId";
|
||||
import type { CommunityVisibility } from "./CommunityVisibility";
|
||||
import type { InstanceId } from "./InstanceId";
|
||||
|
||||
export interface Community {
|
||||
|
@ -19,4 +20,5 @@ export interface Community {
|
|||
hidden: boolean;
|
||||
posting_restricted_to_mods: boolean;
|
||||
instance_id: InstanceId;
|
||||
visibility: CommunityVisibility;
|
||||
}
|
||||
|
|
|
@ -3,13 +3,13 @@ import type { CommunityId } from "./CommunityId";
|
|||
|
||||
export interface CommunityAggregates {
|
||||
community_id: CommunityId;
|
||||
subscribers: /* integer */ number;
|
||||
posts: /* integer */ number;
|
||||
comments: /* integer */ number;
|
||||
subscribers: number;
|
||||
posts: number;
|
||||
comments: number;
|
||||
published: string;
|
||||
users_active_day: /* integer */ number;
|
||||
users_active_week: /* integer */ number;
|
||||
users_active_month: /* integer */ number;
|
||||
users_active_half_year: /* integer */ number;
|
||||
subscribers_local: /* integer */ number;
|
||||
users_active_day: number;
|
||||
users_active_week: number;
|
||||
users_active_month: number;
|
||||
users_active_half_year: number;
|
||||
subscribers_local: number;
|
||||
}
|
||||
|
|
|
@ -8,4 +8,5 @@ export interface CommunityView {
|
|||
subscribed: SubscribedType;
|
||||
blocked: boolean;
|
||||
counts: CommunityAggregates;
|
||||
banned_from_community: boolean;
|
||||
}
|
||||
|
|
3
src/types/CommunityVisibility.ts
Normal file
3
src/types/CommunityVisibility.ts
Normal file
|
@ -0,0 +1,3 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type CommunityVisibility = "Public" | "LocalOnly";
|
|
@ -1,4 +1,5 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CommunityVisibility } from "./CommunityVisibility";
|
||||
import type { LanguageId } from "./LanguageId";
|
||||
|
||||
export interface CreateCommunity {
|
||||
|
@ -10,5 +11,5 @@ export interface CreateCommunity {
|
|||
nsfw?: boolean;
|
||||
posting_restricted_to_mods?: boolean;
|
||||
discussion_languages?: Array<LanguageId>;
|
||||
local_only?: boolean;
|
||||
visibility?: CommunityVisibility;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,9 @@ export interface CreatePost {
|
|||
community_id: CommunityId;
|
||||
url?: string;
|
||||
body?: string;
|
||||
alt_text?: string;
|
||||
honeypot?: string;
|
||||
nsfw?: boolean;
|
||||
language_id?: LanguageId;
|
||||
custom_thumbnail?: string;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { LanguageId } from "./LanguageId";
|
||||
import type { ListingType } from "./ListingType";
|
||||
import type { PostListingMode } from "./PostListingMode";
|
||||
import type { RegistrationMode } from "./RegistrationMode";
|
||||
import type { SortType } from "./SortType";
|
||||
|
||||
export interface CreateSite {
|
||||
name: string;
|
||||
|
@ -17,6 +19,7 @@ export interface CreateSite {
|
|||
private_instance?: boolean;
|
||||
default_theme?: string;
|
||||
default_post_listing_type?: ListingType;
|
||||
default_sort_type?: SortType;
|
||||
legal_information?: string;
|
||||
application_email_admins?: boolean;
|
||||
hide_modlog_mod_names?: boolean;
|
||||
|
@ -43,4 +46,6 @@ export interface CreateSite {
|
|||
blocked_instances?: Array<string>;
|
||||
taglines?: Array<string>;
|
||||
registration_mode?: RegistrationMode;
|
||||
content_warning?: string;
|
||||
default_post_listing_mode?: PostListingMode;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CommunityId } from "./CommunityId";
|
||||
import type { CommunityVisibility } from "./CommunityVisibility";
|
||||
import type { LanguageId } from "./LanguageId";
|
||||
|
||||
export interface EditCommunity {
|
||||
|
@ -11,5 +12,5 @@ export interface EditCommunity {
|
|||
nsfw?: boolean;
|
||||
posting_restricted_to_mods?: boolean;
|
||||
discussion_languages?: Array<LanguageId>;
|
||||
local_only?: boolean;
|
||||
visibility?: CommunityVisibility;
|
||||
}
|
||||
|
|
|
@ -7,6 +7,8 @@ export interface EditPost {
|
|||
name?: string;
|
||||
url?: string;
|
||||
body?: string;
|
||||
alt_text?: string;
|
||||
nsfw?: boolean;
|
||||
language_id?: LanguageId;
|
||||
custom_thumbnail?: string;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { LanguageId } from "./LanguageId";
|
||||
import type { ListingType } from "./ListingType";
|
||||
import type { PostListingMode } from "./PostListingMode";
|
||||
import type { RegistrationMode } from "./RegistrationMode";
|
||||
import type { SortType } from "./SortType";
|
||||
|
||||
export interface EditSite {
|
||||
name?: string;
|
||||
|
@ -17,6 +19,7 @@ export interface EditSite {
|
|||
private_instance?: boolean;
|
||||
default_theme?: string;
|
||||
default_post_listing_type?: ListingType;
|
||||
default_sort_type?: SortType;
|
||||
legal_information?: string;
|
||||
application_email_admins?: boolean;
|
||||
hide_modlog_mod_names?: boolean;
|
||||
|
@ -41,7 +44,10 @@ export interface EditSite {
|
|||
captcha_difficulty?: string;
|
||||
allowed_instances?: Array<string>;
|
||||
blocked_instances?: Array<string>;
|
||||
blocked_urls?: Array<string>;
|
||||
taglines?: Array<string>;
|
||||
registration_mode?: RegistrationMode;
|
||||
reports_email_admins?: boolean;
|
||||
content_warning?: string;
|
||||
default_post_listing_mode?: PostListingMode;
|
||||
}
|
||||
|
|
|
@ -9,8 +9,8 @@ export interface GetComments {
|
|||
type_?: ListingType;
|
||||
sort?: CommentSortType;
|
||||
max_depth?: number;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
community_id?: CommunityId;
|
||||
community_name?: string;
|
||||
post_id?: PostId;
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CommentId } from "./CommentId";
|
||||
import type { CommunityId } from "./CommunityId";
|
||||
import type { ModlogActionType } from "./ModlogActionType";
|
||||
import type { PersonId } from "./PersonId";
|
||||
import type { PostId } from "./PostId";
|
||||
|
||||
export interface GetModlog {
|
||||
mod_person_id?: PersonId;
|
||||
community_id?: CommunityId;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
type_?: ModlogActionType;
|
||||
other_person_id?: PersonId;
|
||||
post_id?: PostId;
|
||||
comment_id?: CommentId;
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@ export interface GetPersonDetails {
|
|||
person_id?: PersonId;
|
||||
username?: string;
|
||||
sort?: SortType;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
community_id?: CommunityId;
|
||||
saved_only?: boolean;
|
||||
}
|
||||
|
|
|
@ -3,9 +3,11 @@ import type { CommentView } from "./CommentView";
|
|||
import type { CommunityModeratorView } from "./CommunityModeratorView";
|
||||
import type { PersonView } from "./PersonView";
|
||||
import type { PostView } from "./PostView";
|
||||
import type { Site } from "./Site";
|
||||
|
||||
export interface GetPersonDetailsResponse {
|
||||
person_view: PersonView;
|
||||
site?: Site;
|
||||
comments: Array<CommentView>;
|
||||
posts: Array<PostView>;
|
||||
moderates: Array<CommunityModeratorView>;
|
||||
|
|
|
@ -3,7 +3,7 @@ import type { CommentSortType } from "./CommentSortType";
|
|||
|
||||
export interface GetPersonMentions {
|
||||
sort?: CommentSortType;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
unread_only?: boolean;
|
||||
}
|
||||
|
|
|
@ -7,12 +7,13 @@ import type { SortType } from "./SortType";
|
|||
export interface GetPosts {
|
||||
type_?: ListingType;
|
||||
sort?: SortType;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
community_id?: CommunityId;
|
||||
community_name?: string;
|
||||
saved_only?: boolean;
|
||||
liked_only?: boolean;
|
||||
disliked_only?: boolean;
|
||||
show_hidden?: boolean;
|
||||
page_cursor?: PaginationCursor;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ import type { PersonId } from "./PersonId";
|
|||
|
||||
export interface GetPrivateMessages {
|
||||
unread_only?: boolean;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
creator_id?: PersonId;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ import type { CommentSortType } from "./CommentSortType";
|
|||
|
||||
export interface GetReplies {
|
||||
sort?: CommentSortType;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
unread_only?: boolean;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ import type { CommunityId } from "./CommunityId";
|
|||
|
||||
export interface GetReportCountResponse {
|
||||
community_id?: CommunityId;
|
||||
comment_reports: /* integer */ number;
|
||||
post_reports: /* integer */ number;
|
||||
private_message_reports?: /* integer */ number;
|
||||
comment_reports: number;
|
||||
post_reports: number;
|
||||
private_message_reports?: number;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { SiteMetadata } from "./SiteMetadata";
|
||||
import type { LinkMetadata } from "./LinkMetadata";
|
||||
|
||||
export interface GetSiteMetadataResponse {
|
||||
metadata: SiteMetadata;
|
||||
metadata: LinkMetadata;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
import type { CustomEmojiView } from "./CustomEmojiView";
|
||||
import type { Language } from "./Language";
|
||||
import type { LanguageId } from "./LanguageId";
|
||||
import type { LocalSiteUrlBlocklist } from "./LocalSiteUrlBlocklist";
|
||||
import type { MyUserInfo } from "./MyUserInfo";
|
||||
import type { PersonView } from "./PersonView";
|
||||
import type { SiteView } from "./SiteView";
|
||||
|
@ -16,4 +17,5 @@ export interface GetSiteResponse {
|
|||
discussion_languages: Array<LanguageId>;
|
||||
taglines: Array<Tagline>;
|
||||
custom_emojis: Array<CustomEmojiView>;
|
||||
blocked_urls: Array<LocalSiteUrlBlocklist>;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export interface GetUnreadCountResponse {
|
||||
replies: /* integer */ number;
|
||||
mentions: /* integer */ number;
|
||||
private_messages: /* integer */ number;
|
||||
replies: number;
|
||||
mentions: number;
|
||||
private_messages: number;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export interface GetUnreadRegistrationApplicationCountResponse {
|
||||
registration_applications: /* integer */ number;
|
||||
registration_applications: number;
|
||||
}
|
||||
|
|
7
src/types/HidePost.ts
Normal file
7
src/types/HidePost.ts
Normal file
|
@ -0,0 +1,7 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PostId } from "./PostId";
|
||||
|
||||
export interface HidePost {
|
||||
post_ids: Array<PostId>;
|
||||
hide: boolean;
|
||||
}
|
|
@ -34,6 +34,16 @@ export type LemmyErrorType =
|
|||
| { error: "banned_from_community" }
|
||||
| { error: "couldnt_find_community" }
|
||||
| { error: "couldnt_find_person" }
|
||||
| { error: "couldnt_find_comment" }
|
||||
| { error: "couldnt_find_comment_report" }
|
||||
| { error: "couldnt_find_post_report" }
|
||||
| { error: "couldnt_find_private_message_report" }
|
||||
| { error: "couldnt_find_local_user" }
|
||||
| { error: "couldnt_find_person_mention" }
|
||||
| { error: "couldnt_find_registration_application" }
|
||||
| { error: "couldnt_find_comment_reply" }
|
||||
| { error: "couldnt_find_private_message" }
|
||||
| { error: "couldnt_find_activity" }
|
||||
| { error: "person_is_blocked" }
|
||||
| { error: "community_is_blocked" }
|
||||
| { error: "instance_is_blocked" }
|
||||
|
@ -79,9 +89,8 @@ export type LemmyErrorType =
|
|||
| { error: "person_is_banned_from_site"; message: string }
|
||||
| { error: "invalid_vote_value" }
|
||||
| { error: "page_does_not_specify_creator" }
|
||||
| { error: "page_does_not_specify_group" }
|
||||
| { error: "no_community_found_in_cc" }
|
||||
| { error: "no_email_setup" }
|
||||
| { error: "local_site_not_setup" }
|
||||
| { error: "email_smtp_server_needs_a_port" }
|
||||
| { error: "missing_an_email" }
|
||||
| { error: "rate_limit_error" }
|
||||
|
@ -91,6 +100,7 @@ export type LemmyErrorType =
|
|||
| { error: "invalid_post_title" }
|
||||
| { error: "invalid_body_field" }
|
||||
| { error: "bio_length_overflow" }
|
||||
| { error: "alt_text_length_overflow" }
|
||||
| { error: "missing_totp_token" }
|
||||
| { error: "missing_totp_secret" }
|
||||
| { error: "incorrect_totp_token" }
|
||||
|
@ -112,6 +122,7 @@ export type LemmyErrorType =
|
|||
| { error: "couldnt_like_post" }
|
||||
| { error: "couldnt_save_post" }
|
||||
| { error: "couldnt_mark_post_as_read" }
|
||||
| { error: "couldnt_hide_post" }
|
||||
| { error: "couldnt_update_community" }
|
||||
| { error: "couldnt_update_replies" }
|
||||
| { error: "couldnt_update_person_mentions" }
|
||||
|
@ -123,6 +134,7 @@ export type LemmyErrorType =
|
|||
| { error: "couldnt_set_all_registrations_accepted" }
|
||||
| { error: "couldnt_set_all_email_verified" }
|
||||
| { error: "banned" }
|
||||
| { error: "blocked_url" }
|
||||
| { error: "couldnt_get_comments" }
|
||||
| { error: "couldnt_get_posts" }
|
||||
| { error: "invalid_url" }
|
||||
|
@ -139,7 +151,6 @@ export type LemmyErrorType =
|
|||
| { error: "permissive_regex" }
|
||||
| { error: "invalid_regex" }
|
||||
| { error: "captcha_incorrect" }
|
||||
| { error: "password_reset_limit_reached" }
|
||||
| { error: "couldnt_create_audio_captcha" }
|
||||
| { error: "invalid_url_scheme" }
|
||||
| { error: "couldnt_send_webmention" }
|
||||
|
@ -151,4 +162,6 @@ export type LemmyErrorType =
|
|||
| { error: "invalid_unix_time" }
|
||||
| { error: "invalid_bot_action" }
|
||||
| { error: "cant_block_local_instance" }
|
||||
| { error: "url_without_domain" }
|
||||
| { error: "inbox_timeout" }
|
||||
| { error: "unknown"; message: string };
|
||||
|
|
9
src/types/LinkMetadata.ts
Normal file
9
src/types/LinkMetadata.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export interface LinkMetadata {
|
||||
title?: string;
|
||||
description?: string;
|
||||
image?: string;
|
||||
embed_video_url?: string;
|
||||
content_type?: string;
|
||||
}
|
|
@ -3,6 +3,6 @@ import type { CommentId } from "./CommentId";
|
|||
|
||||
export interface ListCommentLikes {
|
||||
comment_id: CommentId;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CommentId } from "./CommentId";
|
||||
import type { CommunityId } from "./CommunityId";
|
||||
|
||||
export interface ListCommentReports {
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
comment_id?: CommentId;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
unresolved_only?: boolean;
|
||||
community_id?: CommunityId;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,6 @@ export interface ListCommunities {
|
|||
type_?: ListingType;
|
||||
sort?: SortType;
|
||||
show_nsfw?: boolean;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
}
|
||||
|
|
6
src/types/ListMedia.ts
Normal file
6
src/types/ListMedia.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export interface ListMedia {
|
||||
page?: number;
|
||||
limit?: number;
|
||||
}
|
6
src/types/ListMediaResponse.ts
Normal file
6
src/types/ListMediaResponse.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { LocalImageView } from "./LocalImageView";
|
||||
|
||||
export interface ListMediaResponse {
|
||||
images: Array<LocalImageView>;
|
||||
}
|
|
@ -3,6 +3,6 @@ import type { PostId } from "./PostId";
|
|||
|
||||
export interface ListPostLikes {
|
||||
post_id: PostId;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CommunityId } from "./CommunityId";
|
||||
import type { PostId } from "./PostId";
|
||||
|
||||
export interface ListPostReports {
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
unresolved_only?: boolean;
|
||||
community_id?: CommunityId;
|
||||
post_id?: PostId;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export interface ListPrivateMessageReports {
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
unresolved_only?: boolean;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
|
||||
export interface ListRegistrationApplications {
|
||||
unread_only?: boolean;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { LocalUserId } from "./LocalUserId";
|
||||
|
||||
export interface ImageUpload {
|
||||
local_user_id: LocalUserId;
|
||||
export interface LocalImage {
|
||||
local_user_id?: LocalUserId;
|
||||
pictrs_alias: string;
|
||||
pictrs_delete_token: string;
|
||||
published: string;
|
8
src/types/LocalImageView.ts
Normal file
8
src/types/LocalImageView.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { LocalImage } from "./LocalImage";
|
||||
import type { Person } from "./Person";
|
||||
|
||||
export interface LocalImageView {
|
||||
local_image: LocalImage;
|
||||
person: Person;
|
||||
}
|
|
@ -1,8 +1,10 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ListingType } from "./ListingType";
|
||||
import type { LocalSiteId } from "./LocalSiteId";
|
||||
import type { PostListingMode } from "./PostListingMode";
|
||||
import type { RegistrationMode } from "./RegistrationMode";
|
||||
import type { SiteId } from "./SiteId";
|
||||
import type { SortType } from "./SortType";
|
||||
|
||||
export interface LocalSite {
|
||||
id: LocalSiteId;
|
||||
|
@ -29,4 +31,6 @@ export interface LocalSite {
|
|||
registration_mode: RegistrationMode;
|
||||
reports_email_admins: boolean;
|
||||
federation_signed_fetch: boolean;
|
||||
default_post_listing_mode: PostListingMode;
|
||||
default_sort_type: SortType;
|
||||
}
|
||||
|
|
8
src/types/LocalSiteUrlBlocklist.ts
Normal file
8
src/types/LocalSiteUrlBlocklist.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export interface LocalSiteUrlBlocklist {
|
||||
id: number;
|
||||
url: string;
|
||||
published: string;
|
||||
updated?: string;
|
||||
}
|
|
@ -1,10 +1,12 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { LocalUser } from "./LocalUser";
|
||||
import type { LocalUserVoteDisplayMode } from "./LocalUserVoteDisplayMode";
|
||||
import type { Person } from "./Person";
|
||||
import type { PersonAggregates } from "./PersonAggregates";
|
||||
|
||||
export interface LocalUserView {
|
||||
local_user: LocalUser;
|
||||
local_user_vote_display_mode: LocalUserVoteDisplayMode;
|
||||
person: Person;
|
||||
counts: PersonAggregates;
|
||||
}
|
||||
|
|
10
src/types/LocalUserVoteDisplayMode.ts
Normal file
10
src/types/LocalUserVoteDisplayMode.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { LocalUserId } from "./LocalUserId";
|
||||
|
||||
export interface LocalUserVoteDisplayMode {
|
||||
local_user_id: LocalUserId;
|
||||
score: boolean;
|
||||
upvotes: boolean;
|
||||
downvotes: boolean;
|
||||
upvote_percentage: boolean;
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
import type { PostId } from "./PostId";
|
||||
|
||||
export interface MarkPostAsRead {
|
||||
post_id?: PostId;
|
||||
post_ids?: Array<PostId>;
|
||||
post_ids: Array<PostId>;
|
||||
read: boolean;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CommentId } from "./CommentId";
|
||||
import type { CommunityId } from "./CommunityId";
|
||||
import type { PersonId } from "./PersonId";
|
||||
import type { PostId } from "./PostId";
|
||||
|
||||
export interface ModlogListParams {
|
||||
community_id?: CommunityId;
|
||||
mod_person_id?: PersonId;
|
||||
other_person_id?: PersonId;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
post_id?: PostId;
|
||||
comment_id?: CommentId;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
hide_modlog_names: boolean;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export interface SiteMetadata {
|
||||
export interface OpenGraphData {
|
||||
title?: string;
|
||||
description?: string;
|
||||
image?: string;
|
|
@ -3,6 +3,6 @@ import type { PersonId } from "./PersonId";
|
|||
|
||||
export interface PersonAggregates {
|
||||
person_id: PersonId;
|
||||
post_count: /* integer */ number;
|
||||
comment_count: /* integer */ number;
|
||||
post_count: number;
|
||||
comment_count: number;
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ export interface PersonMentionView {
|
|||
recipient: Person;
|
||||
counts: CommentAggregates;
|
||||
creator_banned_from_community: boolean;
|
||||
banned_from_community: boolean;
|
||||
creator_is_moderator: boolean;
|
||||
creator_is_admin: boolean;
|
||||
subscribed: SubscribedType;
|
||||
|
|
|
@ -26,4 +26,6 @@ export interface Post {
|
|||
language_id: LanguageId;
|
||||
featured_community: boolean;
|
||||
featured_local: boolean;
|
||||
url_content_type?: string;
|
||||
alt_text?: string;
|
||||
}
|
||||
|
|
|
@ -3,9 +3,10 @@ import type { PostId } from "./PostId";
|
|||
|
||||
export interface PostAggregates {
|
||||
post_id: PostId;
|
||||
comments: /* integer */ number;
|
||||
score: /* integer */ number;
|
||||
upvotes: /* integer */ number;
|
||||
downvotes: /* integer */ number;
|
||||
comments: number;
|
||||
score: number;
|
||||
upvotes: number;
|
||||
downvotes: number;
|
||||
published: string;
|
||||
newest_comment_time: string;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import type { Person } from "./Person";
|
|||
import type { Post } from "./Post";
|
||||
import type { PostAggregates } from "./PostAggregates";
|
||||
import type { PostReport } from "./PostReport";
|
||||
import type { SubscribedType } from "./SubscribedType";
|
||||
|
||||
export interface PostReportView {
|
||||
post_report: PostReport;
|
||||
|
@ -12,7 +13,15 @@ export interface PostReportView {
|
|||
creator: Person;
|
||||
post_creator: Person;
|
||||
creator_banned_from_community: boolean;
|
||||
creator_is_moderator: boolean;
|
||||
creator_is_admin: boolean;
|
||||
subscribed: SubscribedType;
|
||||
saved: boolean;
|
||||
read: boolean;
|
||||
hidden: boolean;
|
||||
creator_blocked: boolean;
|
||||
my_vote?: number;
|
||||
unread_comments: number;
|
||||
counts: PostAggregates;
|
||||
resolver?: Person;
|
||||
}
|
||||
|
|
|
@ -10,13 +10,15 @@ export interface PostView {
|
|||
creator: Person;
|
||||
community: Community;
|
||||
creator_banned_from_community: boolean;
|
||||
banned_from_community: boolean;
|
||||
creator_is_moderator: boolean;
|
||||
creator_is_admin: boolean;
|
||||
counts: PostAggregates;
|
||||
subscribed: SubscribedType;
|
||||
saved: boolean;
|
||||
read: boolean;
|
||||
hidden: boolean;
|
||||
creator_blocked: boolean;
|
||||
my_vote?: number;
|
||||
unread_comments: /* integer */ number;
|
||||
unread_comments: number;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ export interface Register {
|
|||
username: string;
|
||||
password: string;
|
||||
password_verify: string;
|
||||
show_nsfw: boolean;
|
||||
show_nsfw?: boolean;
|
||||
email?: string;
|
||||
captcha_uuid?: string;
|
||||
captcha_answer?: string;
|
||||
|
|
|
@ -8,7 +8,6 @@ export interface SaveUserSettings {
|
|||
show_nsfw?: boolean;
|
||||
blur_nsfw?: boolean;
|
||||
auto_expand?: boolean;
|
||||
show_scores?: boolean;
|
||||
theme?: string;
|
||||
default_sort_type?: SortType;
|
||||
default_listing_type?: ListingType;
|
||||
|
@ -31,4 +30,8 @@ export interface SaveUserSettings {
|
|||
enable_keyboard_navigation?: boolean;
|
||||
enable_animated_images?: boolean;
|
||||
collapse_bot_comments?: boolean;
|
||||
show_scores?: boolean;
|
||||
show_upvotes?: boolean;
|
||||
show_downvotes?: boolean;
|
||||
show_upvote_percentage?: boolean;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@ export interface Search {
|
|||
type_?: SearchType;
|
||||
sort?: SortType;
|
||||
listing_type?: ListingType;
|
||||
page?: /* integer */ number;
|
||||
limit?: /* integer */ number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ export interface Site {
|
|||
actor_id: string;
|
||||
last_refreshed_at: string;
|
||||
inbox_url: string;
|
||||
private_key?: string;
|
||||
public_key: string;
|
||||
instance_id: InstanceId;
|
||||
content_warning?: string;
|
||||
}
|
||||
|
|
|
@ -3,12 +3,12 @@ import type { SiteId } from "./SiteId";
|
|||
|
||||
export interface SiteAggregates {
|
||||
site_id: SiteId;
|
||||
users: /* integer */ number;
|
||||
posts: /* integer */ number;
|
||||
comments: /* integer */ number;
|
||||
communities: /* integer */ number;
|
||||
users_active_day: /* integer */ number;
|
||||
users_active_week: /* integer */ number;
|
||||
users_active_month: /* integer */ number;
|
||||
users_active_half_year: /* integer */ number;
|
||||
users: number;
|
||||
posts: number;
|
||||
comments: number;
|
||||
communities: number;
|
||||
users_active_day: number;
|
||||
users_active_week: number;
|
||||
users_active_month: number;
|
||||
users_active_half_year: number;
|
||||
}
|
||||
|
|
|
@ -3,5 +3,6 @@ import type { Person } from "./Person";
|
|||
|
||||
export interface VoteView {
|
||||
creator: Person;
|
||||
creator_banned_from_community: boolean;
|
||||
score: number;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue