@upstart.gg/sdk
Version:
You can test the CLI without recompiling by running:
115 lines (113 loc) • 3.3 kB
JavaScript
import { StringEnum } from "../../../../utils/string-enum.js";
import { mastodonAccountSchema } from "../account/schema.js";
import { Type } from "@sinclair/typebox";
//#region src/shared/datasources/external/mastodon/status/schema.ts
const mastodonMediaAttachmentSchema = Type.Object({
id: Type.String(),
type: StringEnum([
"audio",
"image",
"video",
"gifv",
"unknown"
]),
url: Type.String(),
preview_url: Type.Optional(Type.String()),
remote_url: Type.Optional(Type.String()),
meta: Type.Record(Type.String(), Type.Any()),
description: Type.Optional(Type.String()),
blurhash: Type.Optional(Type.String())
});
const mastodonEmojiSchema = Type.Object({
shortcode: Type.String(),
url: Type.String(),
static_url: Type.String(),
visible_in_picker: Type.Boolean(),
category: Type.Optional(Type.String())
});
const mastodonPreviewCardSchema = Type.Object({
url: Type.String(),
title: Type.String(),
description: Type.String(),
type: StringEnum([
"link",
"photo",
"video",
"rich"
]),
author_name: Type.String(),
author_url: Type.String(),
provider_name: Type.String(),
provider_url: Type.String(),
html: Type.String(),
width: Type.Number(),
height: Type.Number(),
image: Type.Optional(Type.String()),
embed_url: Type.String(),
blurhash: Type.Optional(Type.String())
});
const mastodonPollSchema = Type.Object({
id: Type.String(),
expires_at: Type.String(),
expired: Type.Boolean(),
multiple: Type.Boolean(),
votes_count: Type.Number(),
options: Type.Array(Type.Object({
title: Type.String(),
votes_count: Type.Number()
})),
voted: Type.Optional(Type.Boolean()),
own_votes: Type.Optional(Type.Array(Type.Number())),
emojis: Type.Array(mastodonEmojiSchema)
});
const mastodonStatusSchema = Type.Object({
id: Type.String(),
uri: Type.String(),
created_at: Type.String(),
account: mastodonAccountSchema,
content: Type.String(),
visibility: StringEnum([
"public",
"unlisted",
"private",
"direct"
]),
sensitive: Type.Boolean(),
media_attachments: Type.Array(mastodonMediaAttachmentSchema),
application: Type.Optional(Type.Object({
name: Type.String(),
website: Type.Optional(Type.String())
})),
mentions: Type.Array(Type.Object({
id: Type.String(),
username: Type.String(),
acct: Type.String(),
url: Type.String()
})),
tags: Type.Array(Type.Object({
name: Type.String(),
url: Type.String()
})),
emojis: Type.Array(mastodonEmojiSchema),
reblogs_count: Type.Number(),
favourites_count: Type.Number(),
replies_count: Type.Number(),
url: Type.String(),
in_reply_to_id: Type.Optional(Type.String()),
in_reply_to_account_id: Type.Optional(Type.String()),
reblog: Type.Optional(Type.Ref("mastodonStatus")),
poll: Type.Optional(mastodonPollSchema),
card: Type.Optional(mastodonPreviewCardSchema),
language: Type.Optional(Type.String()),
text: Type.Optional(Type.String()),
edited_at: Type.Optional(Type.String()),
favourited: Type.Optional(Type.Boolean()),
reblogged: Type.Optional(Type.Boolean()),
muted: Type.Optional(Type.Boolean()),
bookmarked: Type.Optional(Type.Boolean()),
pinned: Type.Optional(Type.Boolean())
});
const mastodonStatusArraySchema = Type.Array(mastodonStatusSchema);
//#endregion
export { mastodonStatusArraySchema, mastodonStatusSchema };
//# sourceMappingURL=schema.js.map