wiki-saikou
Version:
The library provides the out of box accessing to MediaWiki API in both browsers & Node.js, and the syntax is very similar to vanilla `new mw.Api()`. TypeScript definition included~
1 lines • 3.95 kB
Source Map (JSON)
{"version":3,"file":"browser.mjs","sources":["../src/browser.ts"],"sourcesContent":["import type { FexiosConfigs } from 'fexios'\nimport { WikiSaikouCore, WikiSaikouInitConfig } from './WikiSaikou.js'\nimport { resolveLegacyCtor } from './utils/resolveLegacyCtor.js'\nimport { WikiSaikouError, WikiSaikouErrorCode } from './models/errors.js'\nimport { MwApiParams } from './types.js'\n\n// re-export for library users\nexport * from './WikiSaikou.js'\n\nexport interface ClientLoginOptions extends MwApiParams {\n rememberMe?: boolean\n loginmessageformat?: string\n loginreturnurl?: string\n logincontinue?: boolean\n}\nexport type ClientLoginResult =\n | { status: 'PASS'; username: string }\n | {\n status: 'FAIL'\n username: never\n message: string\n messagecode: string\n canpreservestate: boolean\n }\n\n/**\n * WikiSaikou\n * @description Standalone MediaWiki API SDK with `mw.Api`-like API in any environments\n * @author Dragon-Fish <dragon-fish@qq.com>\n * @license MIT\n */\nexport class MediaWikiApi extends WikiSaikouCore {\n async clientLogin(\n username: string,\n password: string,\n params?: ClientLoginOptions\n ) {\n params ||= {}\n if (!params.logincontinue && !params.loginreturnurl) {\n params.loginreturnurl = location?.origin\n }\n const res = await this.postWithToken<{\n clientlogin: ClientLoginResult\n }>(\n 'login',\n {\n action: 'clientlogin',\n username,\n password,\n ...params,\n },\n {\n tokenName: 'logintoken',\n }\n )\n if (res?.data?.clientlogin?.status === 'PASS') {\n return res.data.clientlogin\n } else {\n throw new WikiSaikouError(\n WikiSaikouErrorCode.LOGIN_FAILED,\n res.data.clientlogin.message,\n res\n )\n }\n }\n}\n\n/**\n * WikiSaikou for foreign wiki\n * @description Standalone MediaWiki API SDK with `mw.Api`-like API in any environments\n * @author Dragon-Fish <dragon-fish@qq.com>\n * @license MIT\n */\nexport class MediaWikiForeignApi extends MediaWikiApi {\n /** @deprecated Use `new MediaWikiForeignApi(config)` instead */\n constructor(\n baseURL?: string,\n defaultOptions?: Partial<FexiosConfigs>,\n defaultParams?: MwApiParams\n )\n constructor(config?: WikiSaikouInitConfig)\n constructor(\n configOrBaseURL?: WikiSaikouInitConfig | string,\n defaultOptions?: Partial<FexiosConfigs>,\n defaultParams?: MwApiParams\n ) {\n const config = resolveLegacyCtor(\n configOrBaseURL,\n {\n credentials: 'include',\n mode: 'cors',\n ...defaultOptions,\n },\n {\n origin: location.origin,\n ...defaultParams,\n }\n )\n super(config)\n }\n}\n\n// aliases\nexport { MediaWikiApi as MwApi, MediaWikiForeignApi as ForeignApi }\n"],"names":[],"mappings":";;;;AAyBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,qBAAqB,cAAA,CAAe;AAAA,EAC/C,MAAM,WAAA,CACJ,QAAA,EACA,QAAA,EACA,MAAA,EACA;AACA,IAAA,MAAA,KAAW,EAAC;AACZ,IAAA,IAAI,CAAC,MAAA,CAAO,aAAA,IAAiB,CAAC,OAAO,cAAA,EAAgB;AACnD,MAAA,MAAA,CAAO,iBAAiB,QAAA,EAAU,MAAA;AAAA,IACpC;AACA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA;AAAA,MAGrB,OAAA;AAAA,MACA;AAAA,QACE,MAAA,EAAQ,aAAA;AAAA,QACR,QAAA;AAAA,QACA,QAAA;AAAA,QACA,GAAG;AAAA,OACL;AAAA,MACA;AAAA,QACE,SAAA,EAAW;AAAA;AACb,KACF;AACA,IAAA,IAAI,GAAA,EAAK,IAAA,EAAM,WAAA,EAAa,MAAA,KAAW,MAAA,EAAQ;AAC7C,MAAA,OAAO,IAAI,IAAA,CAAK,WAAA;AAAA,IAClB,CAAA,MAAO;AACL,MAAA,MAAM,IAAI,eAAA;AAAA,QACR,mBAAA,CAAoB,YAAA;AAAA,QACpB,GAAA,CAAI,KAAK,WAAA,CAAY,OAAA;AAAA,QACrB;AAAA,OACF;AAAA,IACF;AAAA,EACF;AACF;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,4BAA4B,YAAA,CAAa;AAAA,EAQpD,WAAA,CACE,eAAA,EACA,cAAA,EACA,aAAA,EACA;AACA,IAAA,MAAM,MAAA,GAAS,iBAAA;AAAA,MACb,eAAA;AAAA,MACA;AAAA,QACE,WAAA,EAAa,SAAA;AAAA,QACb,IAAA,EAAM,MAAA;AAAA,QACN,GAAG;AAAA,OACL;AAAA,MACA;AAAA,QACE,QAAQ,QAAA,CAAS,MAAA;AAAA,QACjB,GAAG;AAAA;AACL,KACF;AACA,IAAA,KAAA,CAAM,MAAM,CAAA;AAAA,EACd;AACF;;;;"}