UNPKG

mwn

Version:

JavaScript & TypeScript MediaWiki bot framework for Node.js

284 lines (283 loc) 6.49 kB
export interface ApiResponse { query?: Record<string, any>; [prop: string]: any; } export interface ApiResponseSubType { [prop: string]: any; } export type ApiEditResponse = { result: string; pageid: number; title: string; contentmodel: string; nochange?: true; oldrevid: number; newrevid: number; newtimestamp: string; }; export type ApiMoveResponse = ApiResponse; export type ApiDeleteResponse = ApiResponse; export type ApiUndeleteResponse = ApiResponse; export type ApiProtectResponse = ApiResponse; export type ApiUploadResponse = ApiResponse; export type ApiRollbackResponse = ApiResponse; export type ApiBlockResponse = ApiResponse; export type ApiUnblockResponse = ApiResponse; export type ApiEmailUserResponse = ApiResponse; export type ApiQueryUsersResponse = ApiResponse; export type ApiQueryGlobalUserInfoResponse = ApiResponse; export interface ApiQueryResponse { batchcomplete?: true; continue?: { continue: string; [prop: string]: string; }; query: { pages?: Array<ApiPage>; allpages?: ApiPageList; backlinks?: ApiPageList; allcategories?: Array<{ category: string; }>; allimages?: Array<{ name: string; timestamp: string; url: string; descriptionurl: string; descriptionshorturl: string; ns: number; title: string; }>; alllinks?: ApiLinkList; alltransclusions?: ApiLinkList; allfileusages?: ApiLinkList; allredirects?: ApiLinkList; categorymembers: any; [prop: string]: any; }; } export type ApiLinkList = Array<{ ns?: number; title?: string; fromid?: number; }>; export type ApiPageList = Array<{ pageid: number; ns: number; title: string; }>; export interface ApiParseResponse { title: string; pageid: number; revid: number; text: string; langlinks: Array<{ lang: string; url: string; langname: string; autonym: string; title: string; }>; categories: Array<{ sortkey: string; category: string; hidden?: true; }>; links: Array<{ ns: number; title: string; exists: boolean; }>; templates: Array<{ ns: number; title: string; exists: boolean; }>; images: string[]; externallinks: string[]; sections: Array<{ toclevel: number; level: string; line: string; number: string; index: string; fromtitle: string; byteoffset: number; anchor: string; }>; parsewarnings: Array<any>; displaytitle: string; iwlinks: Array<{ prefix: string; url: string; title: string; }>; properties: { notoc: ''; noindex: ''; [name: string]: string; }; } export type ApiSearchResult = { ns: number; title: string; pageid: number; size: number; wordcount: number; snippet: string; timestamp: string; isfilematch: boolean; titlesnippet: string; categorysnippet: string; sectionsnippet?: string; redirecttitle?: string; redirectsnippet?: string; }; export type UserContribution = { userid: number; user: string; pageid: number; revid: number; parentid: number; ns: number; title: string; timestamp: string; new: boolean; minor: boolean; top: boolean; comment: string; size: number; }; export type LogEvent = { logid: number; ns: number; title: string; pageid: number; logpage: number; params: any; type: string; action: string; user: string; timestamp: string; comment: string; }; export type RecentChange = { type: string; ns: number; title: string; pageid: number; revid: number; old_revid: number; rcid: number; timestamp: string; user?: string; userid?: number; bot?: boolean; new?: boolean; minor?: boolean; oldlen?: number; newlen?: number; comment?: string; parsedcomment?: string; redirect?: boolean; tags?: string[]; sha1?: string; oresscores?: Record<string, any>; }; export interface ApiPage { pageid: number; ns: number; title: string; missing?: true; invalid?: true; revisions?: Array<ApiRevision>; categories?: Array<LinkTarget>; templates?: Array<LinkTarget>; links?: Array<LinkTarget>; images?: Array<LinkTarget>; linkshere?: Array<ReverseLinkTarget>; transcludedin?: Array<ReverseLinkTarget>; fileusage?: Array<ReverseLinkTarget>; extlinks?: Array<{ url: string; }>; iwlinks?: Array<{ prefix: string; title: string; }>; langlinks?: Array<{ lang: string; title: string; }>; langlinkscount?: number; imagerepository?: string; badfile?: boolean; imageinfo?: Array<ImageInfo>; categoryinfo?: { size: number; pages: number; files: number; subcats: number; hidden: boolean; }; [prop: string]: any; } export type LinkTarget = { ns: number; title: string; }; export type ReverseLinkTarget = { pageid: number; ns: number; title: string; redirect: boolean; }; export interface ApiRevision extends ApiRevisionSlot { revid?: number; parentid?: number; minor?: boolean; userhidden?: true; anon?: true; user?: string; userid?: number; timestamp?: string; roles?: string[]; commenthidden?: true; comment?: string; parsedcomment?: string; slots?: { main: ApiRevisionSlot; [slotname: string]: ApiRevisionSlot; }; } export interface ApiRevisionSlot { size?: number; sha1?: string; contentmodel?: string; contentformat?: string; content?: string; } export type ImageInfo = { timestamp?: string; userid?: number; user?: string; size?: number; width?: number; height?: number; parsedcomment?: string; comment?: string; html?: string; canonicaltitle?: string; url?: string; descriptionurl?: string; descriptionshorturl?: string; sha1?: string; metadata?: Array<{ name: string; value: any; }>; extmetadata?: any; mime?: string; mediatype?: string; bitdepth?: number; };