UNPKG

bgg-sdk

Version:

Node SDK for querying the Board Game Geek (BGG) XML2 API

631 lines (623 loc) 19.5 kB
type boardgame = "boardgame"; type boardgameaccessory = "boardgameaccessory"; type boardgamecompany = "boardgamecompany"; type boardgamecompilation = "boardgamecompilation"; type boardgameexpansion = "boardgameexpansion"; type boardgamefamily = "boardgamefamily"; type boardgameimplementation = "boardgameimplementation"; type boardgameintegration = "boardgameintegration"; type boardgameperson = "boardgameperson"; type family = "family"; type rpg = "rpg"; type rpgcompany = "rpgcompany"; type rpgissue = "rpgissue"; type rpgitem = "rpgitem"; type rpgperiodical = "rpgperiodical"; type rpgperson = "rpgperson"; type thing = "thing"; type videogame = "videogame"; type videogamecompany = "videogamecompany"; /** YYYY-MM-DD */ type Date = string; /** YYYY-MM-DD HH:MM:SS */ type DateTime = string; type contentTypes_Date = Date; type contentTypes_DateTime = DateTime; type contentTypes_boardgame = boardgame; type contentTypes_boardgameaccessory = boardgameaccessory; type contentTypes_boardgamecompany = boardgamecompany; type contentTypes_boardgamecompilation = boardgamecompilation; type contentTypes_boardgameexpansion = boardgameexpansion; type contentTypes_boardgamefamily = boardgamefamily; type contentTypes_boardgameimplementation = boardgameimplementation; type contentTypes_boardgameintegration = boardgameintegration; type contentTypes_boardgameperson = boardgameperson; type contentTypes_family = family; type contentTypes_rpg = rpg; type contentTypes_rpgcompany = rpgcompany; type contentTypes_rpgissue = rpgissue; type contentTypes_rpgitem = rpgitem; type contentTypes_rpgperiodical = rpgperiodical; type contentTypes_rpgperson = rpgperson; type contentTypes_thing = thing; type contentTypes_videogame = videogame; type contentTypes_videogamecompany = videogamecompany; declare namespace contentTypes { export type { contentTypes_Date as Date, contentTypes_DateTime as DateTime, contentTypes_boardgame as boardgame, contentTypes_boardgameaccessory as boardgameaccessory, contentTypes_boardgamecompany as boardgamecompany, contentTypes_boardgamecompilation as boardgamecompilation, contentTypes_boardgameexpansion as boardgameexpansion, contentTypes_boardgamefamily as boardgamefamily, contentTypes_boardgameimplementation as boardgameimplementation, contentTypes_boardgameintegration as boardgameintegration, contentTypes_boardgameperson as boardgameperson, contentTypes_family as family, contentTypes_rpg as rpg, contentTypes_rpgcompany as rpgcompany, contentTypes_rpgissue as rpgissue, contentTypes_rpgitem as rpgitem, contentTypes_rpgperiodical as rpgperiodical, contentTypes_rpgperson as rpgperson, contentTypes_thing as thing, contentTypes_videogame as videogame, contentTypes_videogamecompany as videogamecompany }; } type PayloadPlaysId = { attributes: { termsofuse: string; total: string; page: string; }; plays: Array<{ id: string; date: string; quantity: string; length: string; incomplete: string; nowInStats: string; location: string; item: { name: string; objectType: string; objectId: string; subtypes: Array<string>; }; players?: Array<{ username: string; userid: string; name: string; startPosition: string; color: string; score: string; new: string; rating: string; win: string; }>; }>; }; type PayloadPlaysUsername = { attributes: { termsofuse: string; username: string; userid: string; total: string; page: string; }; plays: Array<{ id: string; date: string; quantity: string; length: string; incomplete: string; nowinstats: string; location: string; item: { name: string; objecttype: string; objectid: string; subtypes: Array<string>; }; }>; } | null; type PayloadCollection = { attributes: { termsOfUse: string; totalItems: string; pubDate: string; }; items: Array<{ id: string; collId: string; type: string; name: string; yearPublished?: string; image?: string; thumbnail?: string; status: { own: string; prevOwned: string; forTrade: string; want: string; wantToPlay: string; wantToBuy: string; wishList: string; preOrdered: string; lastModified: string; }; numPlays: string; }>; } | null; type PayloadFamily = { attributes: { termsOfUse: string; }; items: Array<{ id: string; type: string; thumbnail: string; image: string; description: string; names: Array<{ type: string; sortIndex: string; value: string; }>; links: Array<{ type: string; id: string; value: string; inbound: boolean; }>; }>; }; type PayloadForum = { attributes: { id: string; title: string; numThreads: string; numPosts: string; lastPostDate: string; noPosting: string; termsOfUse: string; }; threads: Array<{ id: string; subject: string; author: string; numArticles: string; postDate: string; lastPostDate: string; }>; } | null; type PayloadForumList = { attributes: { type: thing | family; termsOfUse: string; id: string; }; forums: Array<{ id: string; groupId: string; title: string; noPosting: string; description: string; numThreads: string; numPosts: string; lastPostDate: string; }>; }; type PayloadGuildSuccess = { attributes: { termsOfUse: string; id: string; name: string; created: string; }; guild: { id: string; name: string; created: string; category: string; website?: string; manager: string; description: string; location: { addr1?: string; addr2?: string; city?: string; stateorprovince?: string; postalcode?: string; country?: string; }; members?: { count: string; page: string; member: Array<{ name: string; date: string; }>; }; }; }; type PayloadGuildError = { attributes: { termsOfUse: string; }; guild: null; }; type PayloadGuild = PayloadGuildSuccess | PayloadGuildError; type PayloadHot = { attributes: { termsofuse: string; }; items: Array<{ id: string; rank: string; name: string; yearPublished?: string; thumbnail: string; }>; }; type PayloadSearch = { attributes: { termsofuse: string; }; items: Array<{ id: string; type: string; name: string; yearPublished?: string; }>; }; type PayloadThingPollLanguageDependence = { name: "language_dependence"; title: string; totalvotes: string; results: Array<{ level: string; value: string; numvotes: string; }>; }; type PayloadThingPollSuggestedPlayerAge = { name: string; title: string; totalvotes: string; results: Array<{ value: string; numvotes: string; }>; }; type PayloadThingPollNumPlayers = { name: string; title: string; totalvotes: string; results: Array<{ numplayers: string; result: Array<{ value: string; numvotes: string; }>; }>; }; type PayloadThingPolls = Array<PayloadThingPollLanguageDependence | PayloadThingPollNumPlayers | PayloadThingPollSuggestedPlayerAge>; type PayloadThingLinks = { type: string; id: string; value: string; }; type PayloadThingNames = { type: string; sortindex: string; value: string; }; type PayloadThing = { attributes: { termsofuse: string; }; items: Array<{ id: string; type: string; thumbnail?: string; image?: string; names: Array<PayloadThingNames>; description: string; yearPublished: string; minPlayers: string; maxPlayers: string; playingTime: string; minPlayTime: string; maxPlayTime: string; minAge: string; links: Array<PayloadThingLinks>; polls: PayloadThingPolls; comments?: { page: string; total: string; comment: Array<{ username: string; rating: string; value: string; }>; }; marketplace?: { listings: Array<{ listDate: string; price: { value: string; currency: string; }; condition: string; notes: string; link: { href: string; title: string; }; }>; }; statistics?: { page: string; ratings: { usersRated: string; average: string; bayesAverage: string; ranks: Array<{ type: string; id: string; name: string; friendlyName: string; value: string; bayesAverage: string; }>; }; stdDev: string; median: string; owned: string; trading: string; wanting: string; wishing: string; numComments: string; numWeights: string; averageWeight: string; }; versions?: Array<{ type: string; id: string; thumbnail?: string; image?: string; links: Array<PayloadThingLinks>; names: Array<PayloadThingNames>; yearPublished: string; productCode: string; width: string; length: string; depth: string; weight: string; }>; videos?: { total: string; videos: Array<{ id: string; title: string; category: string; language: string; link: string; username: string; userid: string; postdate: string; }>; }; }>; }; type PayloadThread = { attributes: { id: string; numArticles: string; link: string; termsOfUse: string; }; subject: string; articles: Array<{ id: string; username: string; link: string; postDate: string; editDate: string; numEdits: string; body: string; }>; } | null; type PayloadUser = { termsOfUse: string; user: { id: string; name: string; termsOfUse: string; firstName: string; lastName: string; avatarLink: string; yearRegistered: string; lastLogin: string; stateOrProvince: string; country: string; webAddress: string; xboxAccount: string; wiiAccount: string; psnAccount: string; battlenetAccount: string; steamAccount: string; tradeRating: string; buddies?: { total: string; page: string; buddy: Array<{ id: string; name: string; }>; }; guilds?: { total: string; page: string; guild: Array<{ id: string; name: string; }>; }; hot?: { domain: string; item: Array<{ rank: string; type: string; id: string; name: string; }>; }; top?: { domain: string; item: Array<{ rank: string; type: string; id: string; name: string; }>; }; }; } | null; type payloads_PayloadCollection = PayloadCollection; type payloads_PayloadFamily = PayloadFamily; type payloads_PayloadForum = PayloadForum; type payloads_PayloadForumList = PayloadForumList; type payloads_PayloadGuild = PayloadGuild; type payloads_PayloadGuildError = PayloadGuildError; type payloads_PayloadGuildSuccess = PayloadGuildSuccess; type payloads_PayloadHot = PayloadHot; type payloads_PayloadPlaysId = PayloadPlaysId; type payloads_PayloadPlaysUsername = PayloadPlaysUsername; type payloads_PayloadSearch = PayloadSearch; type payloads_PayloadThing = PayloadThing; type payloads_PayloadThingLinks = PayloadThingLinks; type payloads_PayloadThingNames = PayloadThingNames; type payloads_PayloadThingPollLanguageDependence = PayloadThingPollLanguageDependence; type payloads_PayloadThingPollNumPlayers = PayloadThingPollNumPlayers; type payloads_PayloadThingPollSuggestedPlayerAge = PayloadThingPollSuggestedPlayerAge; type payloads_PayloadThingPolls = PayloadThingPolls; type payloads_PayloadThread = PayloadThread; type payloads_PayloadUser = PayloadUser; declare namespace payloads { export type { payloads_PayloadCollection as PayloadCollection, payloads_PayloadFamily as PayloadFamily, payloads_PayloadForum as PayloadForum, payloads_PayloadForumList as PayloadForumList, payloads_PayloadGuild as PayloadGuild, payloads_PayloadGuildError as PayloadGuildError, payloads_PayloadGuildSuccess as PayloadGuildSuccess, payloads_PayloadHot as PayloadHot, payloads_PayloadPlaysId as PayloadPlaysId, payloads_PayloadPlaysUsername as PayloadPlaysUsername, payloads_PayloadSearch as PayloadSearch, payloads_PayloadThing as PayloadThing, payloads_PayloadThingLinks as PayloadThingLinks, payloads_PayloadThingNames as PayloadThingNames, payloads_PayloadThingPollLanguageDependence as PayloadThingPollLanguageDependence, payloads_PayloadThingPollNumPlayers as PayloadThingPollNumPlayers, payloads_PayloadThingPollSuggestedPlayerAge as PayloadThingPollSuggestedPlayerAge, payloads_PayloadThingPolls as PayloadThingPolls, payloads_PayloadThread as PayloadThread, payloads_PayloadUser as PayloadUser }; } type ParamsPlayBase = { minDate?: Date; maxDate?: Date; subtype?: boardgame | boardgameexpansion | boardgameaccessory | boardgameintegration | boardgamecompilation | boardgameimplementation | rpg | rpgitem | videogame; page?: string; }; type ParamsPlaysId = ParamsPlayBase & { id: string; type: thing | family; }; type ParamsPlaysUsername = ParamsPlayBase & { username: string; }; type ParamsCollection = { username: string; version?: true; subtype?: boardgame | boardgameaccessory | boardgameexpansion | rpgissue | rpgitem | videogame; excludesubtype?: string; id?: Array<string>; brief?: true; stats?: true; own?: 0 | 1; rated?: 0 | 1; played?: 0 | 1; comment?: 0 | 1; trade?: 0 | 1; want?: 0 | 1; wishlist?: 0 | 1; wishlistpriority?: 1 | 2 | 3 | 4 | 5; preordered?: 0 | 1; wanttoplay?: 0 | 1; wanttobuy?: 0 | 1; prevowned?: 0 | 1; hasparts?: 0 | 1; wantparts?: 0 | 1; minrating?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; rating?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; minbggrating?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; bggrating?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; minplays?: string; maxplays?: string; showprivate?: true; collid?: string; modifiedsince?: string; }; type ParamsFamily = { id: Array<string>; type?: Array<rpg | rpgperiodical | boardgamefamily>; }; type ParamsForum = { id: string; page?: string; }; type ParamsForumList = { id: string; type: thing | family; }; type ParamsGuild = { id: string; members?: true; sort?: "username" | "date"; page?: string; }; type ParamsHot = { type: Array<boardgame | boardgamecompany | boardgameperson | rpg | rpgcompany | rpgperson | videogame | videogamecompany>; }; type ParamsSearch = { query: string; type?: Array<boardgame | boardgameaccessory | boardgameexpansion | rpgitem | videogame>; exact?: boolean; }; type ParamsThing = { id: Array<string>; type?: Array<boardgame | boardgameaccessory | boardgameexpansion | rpgissue | rpgitem | videogame>; versions?: true; videos?: true; stats?: true; marketplace?: true; comments?: true; ratingcomments?: true; page?: string; pagesize?: string; }; type ParamsThread = { id: string; minArticleId?: string; minArticleDate?: Date | DateTime; count?: string; }; type ParamsUser = { name: string; buddies?: true; guilds?: true; hot?: true; top?: true; domain?: boardgame | rpg | videogame; page?: string; }; type params_ParamsCollection = ParamsCollection; type params_ParamsFamily = ParamsFamily; type params_ParamsForum = ParamsForum; type params_ParamsForumList = ParamsForumList; type params_ParamsGuild = ParamsGuild; type params_ParamsHot = ParamsHot; type params_ParamsPlayBase = ParamsPlayBase; type params_ParamsPlaysId = ParamsPlaysId; type params_ParamsPlaysUsername = ParamsPlaysUsername; type params_ParamsSearch = ParamsSearch; type params_ParamsThing = ParamsThing; type params_ParamsThread = ParamsThread; type params_ParamsUser = ParamsUser; declare namespace params { export type { params_ParamsCollection as ParamsCollection, params_ParamsFamily as ParamsFamily, params_ParamsForum as ParamsForum, params_ParamsForumList as ParamsForumList, params_ParamsGuild as ParamsGuild, params_ParamsHot as ParamsHot, params_ParamsPlayBase as ParamsPlayBase, params_ParamsPlaysId as ParamsPlaysId, params_ParamsPlaysUsername as ParamsPlaysUsername, params_ParamsSearch as ParamsSearch, params_ParamsThing as ParamsThing, params_ParamsThread as ParamsThread, params_ParamsUser as ParamsUser }; } /** @namespace */ declare const bgg: { collection: (params: ParamsCollection) => Promise<PayloadCollection>; family: (params: ParamsFamily) => Promise<PayloadFamily>; forum: (params: ParamsForum) => Promise<PayloadForum>; forumList: (params: ParamsForumList) => Promise<PayloadForumList>; guild: (params: ParamsGuild) => Promise<PayloadGuild>; hot: (params?: ParamsHot | undefined) => Promise<PayloadHot>; search: (args: ParamsSearch) => Promise<PayloadSearch>; thing: (params: ParamsThing) => Promise<PayloadThing>; thread: (params: ParamsThread) => Promise<PayloadThread>; user: (params: ParamsUser) => Promise<PayloadUser>; plays: { username: (params: ParamsPlaysUsername) => Promise<PayloadPlaysUsername>; id: (params: ParamsPlaysId) => Promise<PayloadPlaysId>; }; }; export { contentTypes as ContentTypes, params as ParamTypes, payloads as PayloadTypes, bgg, bgg as default };