derpibooru-api
Version:
Modern TypeScript implementation of Derpibooru API with Zod validation
412 lines (411 loc) • 14.1 kB
TypeScript
import * as z from "zod";
declare const ImageMetadataSchema: z.ZodInterface<{
width: z.ZodNumber;
height: z.ZodNumber;
mime_type: z.ZodString;
size: z.ZodNumber;
duration: z.ZodOptional<z.ZodNumber>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const ArtistLinkSchema: z.ZodInterface<{
user_id: z.ZodNumber;
tag_id: z.ZodNumber;
url: z.ZodURL;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const TagSchema: z.ZodInterface<{
id: z.ZodNumber;
name: z.ZodString;
slug: z.ZodString;
description: z.ZodString;
short_description: z.ZodString;
spoiler_image_uri: z.ZodNullable<z.ZodString>;
aliased_tag: z.ZodNullable<z.ZodString>;
aliases: z.ZodArray<z.ZodString>;
category: z.ZodEnum<{
error: "error";
character: "character";
"content-fanmade": "content-fanmade";
"content-official": "content-official";
oc: "oc";
origin: "origin";
rating: "rating";
species: "species";
spoiler: "spoiler";
}>;
dnp_entries: z.ZodArray<z.ZodAny>;
images: z.ZodNumber;
implied_by_tags: z.ZodArray<z.ZodString>;
implied_tags: z.ZodArray<z.ZodString>;
name_in_namespace: z.ZodString;
namespace: z.ZodNullable<z.ZodString>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const ImageResponseSchema: z.ZodInterface<{
id: z.ZodNumber;
created_at: z.iso.ZodISODateTime;
updated_at: z.iso.ZodISODateTime;
first_seen_at: z.iso.ZodISODateTime;
score: z.ZodNumber;
comment_count: z.ZodNumber;
width: z.ZodNumber;
height: z.ZodNumber;
description: z.ZodString;
uploader: z.ZodNullable<z.ZodString>;
uploader_id: z.ZodNullable<z.ZodNumber>;
thumbnails_generated: z.ZodBoolean;
spoilered: z.ZodBoolean;
tag_ids: z.ZodArray<z.ZodNumber>;
tags: z.ZodArray<z.ZodString>;
tag_count: z.ZodNumber;
source_url: z.ZodOptional<z.ZodString>;
source_urls: z.ZodOptional<z.ZodArray<z.ZodString>>;
representations: z.ZodRecord<z.ZodEnum<{
full: "full";
small: "small";
thumb_tiny: "thumb_tiny";
thumb_small: "thumb_small";
thumb: "thumb";
medium: "medium";
large: "large";
tall: "tall";
mp4: "mp4";
webm: "webm";
}>, z.ZodOptional<z.ZodURL>>;
intensities: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
aspect_ratio: z.ZodOptional<z.ZodNumber>;
size: z.ZodOptional<z.ZodNumber>;
format: z.ZodEnum<{
webm: "webm";
gif: "gif";
jpg: "jpg";
jpeg: "jpeg";
png: "png";
svg: "svg";
}>;
mime_type: z.ZodEnum<{
"image/gif": "image/gif";
"image/jpeg": "image/jpeg";
"image/png": "image/png";
"image/svg+xml": "image/svg+xml";
"video/webm": "video/webm";
}>;
name: z.ZodOptional<z.ZodString>;
orig_sha512_hash: z.ZodNullable<z.ZodString>;
sha512_hash: z.ZodOptional<z.ZodString>;
orig_size: z.ZodOptional<z.ZodNumber>;
processed: z.ZodOptional<z.ZodBoolean>;
deletion_reason: z.ZodNullable<z.ZodString>;
duplicate_of: z.ZodNullable<z.ZodNumber>;
hidden_from_users: z.ZodOptional<z.ZodBoolean>;
view_url: z.ZodOptional<z.ZodString>;
wilson_score: z.ZodOptional<z.ZodNumber>;
faves: z.ZodOptional<z.ZodNumber>;
upvotes: z.ZodOptional<z.ZodNumber>;
downvotes: z.ZodOptional<z.ZodNumber>;
animated: z.ZodOptional<z.ZodBoolean>;
duration: z.ZodOptional<z.ZodNumber>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const FilterResponseSchema: z.ZodInterface<{
id: z.ZodNumber;
name: z.ZodString;
description: z.ZodString;
user_id: z.ZodNullable<z.ZodNumber>;
user_count: z.ZodNumber;
system: z.ZodBoolean;
public: z.ZodBoolean;
spoilered_tag_ids: z.ZodArray<z.ZodNumber>;
spoilered_complex: z.ZodNullable<z.ZodString>;
hidden_tag_ids: z.ZodArray<z.ZodNumber>;
hidden_complex: z.ZodNullable<z.ZodString>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const UserResponseSchema: z.ZodInterface<{
id: z.ZodNumber;
name: z.ZodString;
slug: z.ZodString;
role: z.ZodString;
description: z.ZodString;
avatar_url: z.ZodOptional<z.ZodURL>;
created_at: z.iso.ZodISODateTime;
comment_count: z.ZodNumber;
uploads_count: z.ZodNumber;
posts_count: z.ZodNumber;
topics_count: z.ZodNumber;
links: z.ZodArray<z.ZodURL>;
awards: z.ZodArray<z.ZodString>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const OembedResponseSchema: z.ZodInterface<{
author_name: z.ZodString;
author_url: z.ZodURL;
cache_age: z.ZodLiteral<7200>;
derpibooru_comments: z.ZodNumber;
derpibooru_id: z.ZodNumber;
derpibooru_score: z.ZodNumber;
derpibooru_tags: z.ZodArray<z.ZodString>;
provider_name: z.ZodLiteral<"Derpibooru">;
provider_url: z.ZodLiteral<"https://derpibooru.org">;
title: z.ZodString;
type: z.ZodLiteral<"photo">;
version: z.ZodLiteral<"1.0">;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const SearchImagesResponseSchema: z.ZodInterface<{
total: z.ZodNumber;
images: z.ZodArray<z.ZodInterface<{
id: z.ZodNumber;
created_at: z.iso.ZodISODateTime;
updated_at: z.iso.ZodISODateTime;
first_seen_at: z.iso.ZodISODateTime;
score: z.ZodNumber;
comment_count: z.ZodNumber;
width: z.ZodNumber;
height: z.ZodNumber;
description: z.ZodString;
uploader: z.ZodNullable<z.ZodString>;
uploader_id: z.ZodNullable<z.ZodNumber>;
thumbnails_generated: z.ZodBoolean;
spoilered: z.ZodBoolean;
tag_ids: z.ZodArray<z.ZodNumber>;
tags: z.ZodArray<z.ZodString>;
tag_count: z.ZodNumber;
source_url: z.ZodOptional<z.ZodString>;
source_urls: z.ZodOptional<z.ZodArray<z.ZodString>>;
representations: z.ZodRecord<z.ZodEnum<{
full: "full";
small: "small";
thumb_tiny: "thumb_tiny";
thumb_small: "thumb_small";
thumb: "thumb";
medium: "medium";
large: "large";
tall: "tall";
mp4: "mp4";
webm: "webm";
}>, z.ZodOptional<z.ZodURL>>;
intensities: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
aspect_ratio: z.ZodOptional<z.ZodNumber>;
size: z.ZodOptional<z.ZodNumber>;
format: z.ZodEnum<{
webm: "webm";
gif: "gif";
jpg: "jpg";
jpeg: "jpeg";
png: "png";
svg: "svg";
}>;
mime_type: z.ZodEnum<{
"image/gif": "image/gif";
"image/jpeg": "image/jpeg";
"image/png": "image/png";
"image/svg+xml": "image/svg+xml";
"video/webm": "video/webm";
}>;
name: z.ZodOptional<z.ZodString>;
orig_sha512_hash: z.ZodNullable<z.ZodString>;
sha512_hash: z.ZodOptional<z.ZodString>;
orig_size: z.ZodOptional<z.ZodNumber>;
processed: z.ZodOptional<z.ZodBoolean>;
deletion_reason: z.ZodNullable<z.ZodString>;
duplicate_of: z.ZodNullable<z.ZodNumber>;
hidden_from_users: z.ZodOptional<z.ZodBoolean>;
view_url: z.ZodOptional<z.ZodString>;
wilson_score: z.ZodOptional<z.ZodNumber>;
faves: z.ZodOptional<z.ZodNumber>;
upvotes: z.ZodOptional<z.ZodNumber>;
downvotes: z.ZodOptional<z.ZodNumber>;
animated: z.ZodOptional<z.ZodBoolean>;
duration: z.ZodOptional<z.ZodNumber>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>>;
interactions: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const SearchTagsResponseSchema: z.ZodInterface<{
tags: z.ZodArray<z.ZodInterface<{
id: z.ZodNumber;
name: z.ZodString;
slug: z.ZodString;
description: z.ZodString;
short_description: z.ZodString;
spoiler_image_uri: z.ZodNullable<z.ZodString>;
aliased_tag: z.ZodNullable<z.ZodString>;
aliases: z.ZodArray<z.ZodString>;
category: z.ZodEnum<{
error: "error";
character: "character";
"content-fanmade": "content-fanmade";
"content-official": "content-official";
oc: "oc";
origin: "origin";
rating: "rating";
species: "species";
spoiler: "spoiler";
}>;
dnp_entries: z.ZodArray<z.ZodAny>;
images: z.ZodNumber;
implied_by_tags: z.ZodArray<z.ZodString>;
implied_tags: z.ZodArray<z.ZodString>;
name_in_namespace: z.ZodString;
namespace: z.ZodNullable<z.ZodString>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>>;
total: z.ZodNumber;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const CommentResponseSchema: z.ZodInterface<{
id: z.ZodNumber;
author: z.ZodString;
avatar: z.ZodNullable<z.ZodString>;
body: z.ZodString;
created_at: z.iso.ZodISODateTime;
edited_at: z.ZodNullable<z.iso.ZodISODateTime>;
image_id: z.ZodNullable<z.ZodNumber>;
user_id: z.ZodNullable<z.ZodNumber>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const PostResponseSchema: z.ZodInterface<{
author: z.ZodString;
avatar: z.ZodNullable<z.ZodString>;
body: z.ZodString;
created_at: z.iso.ZodISODateTime;
edit_reason: z.ZodNullable<z.ZodString>;
edited_at: z.ZodNullable<z.iso.ZodISODateTime>;
id: z.ZodNumber;
updated_at: z.iso.ZodISODateTime;
user_id: z.ZodNullable<z.ZodNumber>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const GalleryResponseSchema: z.ZodInterface<{
description: z.ZodString;
id: z.ZodNumber;
spoiler_warning: z.ZodNullable<z.ZodString>;
thumbnail_id: z.ZodNullable<z.ZodNumber>;
title: z.ZodString;
user: z.ZodString;
user_id: z.ZodNumber;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const SearchCommentsResponseSchema: z.ZodInterface<{
total: z.ZodNumber;
comments: z.ZodArray<z.ZodInterface<{
id: z.ZodNumber;
author: z.ZodString;
avatar: z.ZodNullable<z.ZodString>;
body: z.ZodString;
created_at: z.iso.ZodISODateTime;
edited_at: z.ZodNullable<z.iso.ZodISODateTime>;
image_id: z.ZodNullable<z.ZodNumber>;
user_id: z.ZodNullable<z.ZodNumber>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const SearchGalleriesResponseSchema: z.ZodInterface<{
total: z.ZodNumber;
galleries: z.ZodArray<z.ZodInterface<{
description: z.ZodString;
id: z.ZodNumber;
spoiler_warning: z.ZodNullable<z.ZodString>;
thumbnail_id: z.ZodNullable<z.ZodNumber>;
title: z.ZodString;
user: z.ZodString;
user_id: z.ZodNumber;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
declare const SearchPostsResponseSchema: z.ZodInterface<{
total: z.ZodNumber;
posts: z.ZodArray<z.ZodInterface<{
author: z.ZodString;
avatar: z.ZodNullable<z.ZodString>;
body: z.ZodString;
created_at: z.iso.ZodISODateTime;
edit_reason: z.ZodNullable<z.ZodString>;
edited_at: z.ZodNullable<z.iso.ZodISODateTime>;
id: z.ZodNumber;
updated_at: z.iso.ZodISODateTime;
user_id: z.ZodNullable<z.ZodNumber>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>>;
}, {
optional: never;
defaulted: never;
extra: Record<string, unknown>;
}>;
type ImageMetadata = z.infer<typeof ImageMetadataSchema>;
type ArtistLink = z.infer<typeof ArtistLinkSchema>;
type Tag = z.infer<typeof TagSchema>;
type ImageResponse = z.infer<typeof ImageResponseSchema>;
type FilterResponse = z.infer<typeof FilterResponseSchema>;
type UserResponse = z.infer<typeof UserResponseSchema>;
type OembedResponse = z.infer<typeof OembedResponseSchema>;
type SearchImagesResponse = z.infer<typeof SearchImagesResponseSchema>;
type SearchTagsResponse = z.infer<typeof SearchTagsResponseSchema>;
type CommentResponse = z.infer<typeof CommentResponseSchema>;
type PostResponse = z.infer<typeof PostResponseSchema>;
type GalleryResponse = z.infer<typeof GalleryResponseSchema>;
type SearchCommentsResponse = z.infer<typeof SearchCommentsResponseSchema>;
type SearchGalleriesResponse = z.infer<typeof SearchGalleriesResponseSchema>;
type SearchPostsResponse = z.infer<typeof SearchPostsResponseSchema>;
export { ImageMetadataSchema, ArtistLinkSchema, TagSchema, ImageResponseSchema, FilterResponseSchema, UserResponseSchema, OembedResponseSchema, SearchImagesResponseSchema, SearchTagsResponseSchema, CommentResponseSchema, PostResponseSchema, GalleryResponseSchema, SearchCommentsResponseSchema, SearchGalleriesResponseSchema, SearchPostsResponseSchema, type ImageMetadata, type ArtistLink, type Tag, type ImageResponse, type FilterResponse, type UserResponse, type OembedResponse, type SearchImagesResponse, type SearchTagsResponse, type CommentResponse, type PostResponse, type GalleryResponse, type SearchCommentsResponse, type SearchGalleriesResponse, type SearchPostsResponse, };