UNPKG

wikibase-edit

Version:

Edit Wikibase from NodeJS

116 lines (97 loc) 3.18 kB
import type { PropertiesDatatypes } from '../properties/fetch_properties_datatypes.js' import type { HttpRequestAgent } from '../request/fetch.js' import type { getAuthDataFactory } from '../request/get_auth_data.js' import type { AbsoluteUrl, BaseRevId, MaxLag, Tags } from '../types/common.js' import type { OverrideProperties } from 'type-fest' export interface UsernameAndPassword { username: string password: string } export interface OAuthCredentials { oauth: { consumer_key: string consumer_secret: string token: string token_secret: string } } export interface GeneralConfig { /** * A Wikibase instance * @example https://www.wikidata.org */ instance?: AbsoluteUrl /** @deprecated */ wikibaseInstance?: AbsoluteUrl /** * The instance script path, used to find the API endpoint * @default "/w" */ wgScriptPath?: string /** * One authorization mean is required (unless in anonymous mode) * Either a username and password, or OAuth tokens. * * You may generate a dedicated password with tailored rights on the wikibase instance /wiki/Special:BotPasswords */ credentials?: UsernameAndPassword | OAuthCredentials | { browserSession: true } /** * Flag to activate the 'anonymous' mode * which actually isn't anonymous as it signs with your IP * @default false */ anonymous?: boolean /** * A string to describe the edit * See https://meta.wikimedia.org/wiki/Help:Edit_summary * @exampe 'some edit summary common to all the edits' */ summary?: string /** * A string that will appended to the config summary * This can be useful, for instance, when making a batch of edits with different requests having different summaries, but a common batch identifier */ summarySuffix?: string /** * See https://www.mediawiki.org/wiki/Manual:Tags */ tags?: Tags /** * @default `wikidata-edit/${version} (https://github.com/maxlath/wikidata-edit)` */ userAgent?: string /** * See https://www.mediawiki.org/wiki/Manual:Bots * @default false */ bot?: boolean /** * See https://www.mediawiki.org/wiki/Manual:Maxlag_parameter * @default 5 */ maxlag?: MaxLag /** * If the Wikibase server returns a `maxlag` error, the request will automatically be re-executed after the amount of seconds recommended by the Wikibase server via the `Retry-After` header. This automatic retry can be disabled by setting `autoRetry` to `false` in the general config or the request config. * @default true */ autoRetry?: boolean httpRequestAgent?: HttpRequestAgent /** * Disable actually editing the Wikibase instance. Can be useful for testing purposes. */ dry?: boolean } export interface RequestConfig extends GeneralConfig { baserevid?: BaseRevId } export type SerializedConfig = OverrideProperties<RequestConfig, { credentials: RequestConfig['credentials'] & { _getAuthData: ReturnType<typeof getAuthDataFactory> _credentialsKey: string } }> & { _validatedAndEnriched?: boolean instanceApiEndpoint: AbsoluteUrl properties: PropertiesDatatypes statementsKey: 'claims' | 'statements' }