From 93a9e8bb8e8a143abfe86be2bd29a07cdd722025 Mon Sep 17 00:00:00 2001 From: SomaticIT Date: Tue, 16 Sep 2014 03:58:23 +0200 Subject: [PATCH] Add npm definitions --- npm/npm.d.ts | 461 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 461 insertions(+) create mode 100644 npm/npm.d.ts diff --git a/npm/npm.d.ts b/npm/npm.d.ts new file mode 100644 index 0000000000..e81fb6c5bc --- /dev/null +++ b/npm/npm.d.ts @@ -0,0 +1,461 @@ +// Type definitions for npm 2.0.0 +// Project: https://github.com/npm/npm +// Definitions by: Maxime LUCE +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module NPM { + export interface Static extends NodeJS.EventEmitter { + config: Config; + commands: Commands; + rollbacks: any[]; + spinner: Spinner; + fullList: string[]; + abbrevs: Dictionary; + + prefix: string; + bin: string; + globalBin: string; + dir: string; + globalDir: string; + root: string; + cache: string; + tmp: string; + + + load(cli: ConfigOptions): void; + load(callback: SimpleCallback): void; + load(cli: ConfigOptions, callback: SimpleCallback): void; + + deref(command: string): string; + } + + //#region Commands Interfaces + + export interface Commands { + // Commands + install: CommandFunction; + uninstall: CommandFunction; + cache: CommandFunction; + config: CommandFunction; + set: CommandFunction; + get: CommandFunction; + update: CommandFunction; + outdated: CommandFunction; + prune: CommandFunction; + submodule: CommandFunction; + pack: CommandFunction; + dedupe: CommandFunction; + + rebuild: CommandFunction; + link: CommandFunction; + + publish: CommandFunction; + star: CommandFunction; + stars: CommandFunction; + tag: CommandFunction; + adduser: CommandFunction; + unpublish: CommandFunction; + owner: CommandFunction; + deprecate: CommandFunction; + shrinkwrap: CommandFunction; + + help: CommandFunction; + "help-search": CommandFunction; + ls: CommandFunction; + search: CommandFunction; + view: CommandFunction; + init: CommandFunction; + version: CommandFunction; + edit: CommandFunction; + explore: CommandFunction; + docs: CommandFunction; + repo: CommandFunction; + bugs: CommandFunction; + faq: CommandFunction; + root: CommandFunction; + prefix: CommandFunction; + bin: CommandFunction; + whoami: CommandFunction; + + test: CommandFunction; + stop: CommandFunction; + start: CommandFunction; + restart: CommandFunction; + "run-script": CommandFunction; + completion: CommandFunction; + + //Aliases + rm: CommandFunction; // uninstall + r: CommandFunction; // uninstall + un: CommandFunction; // uninstall + unlink: CommandFunction; // uninstall + remove: CommandFunction; // uninstall + rb: CommandFunction; // rebuild + list: CommandFunction; // ls + la: CommandFunction; // ls + ll: CommandFunction; // ls + i: CommandFunction; // install + isntall: CommandFunction; // install + up: CommandFunction; // update + c: CommandFunction; // config + info: CommandFunction; // view + show: CommandFunction; // view + find: CommandFunction; // search + s: CommandFunction; // search + se: CommandFunction; // search + author: CommandFunction; // owner + home: CommandFunction; // docs + issues: CommandFunction; // bugs + unstar: CommandFunction; // star + apihelp: CommandFunction; // help + long: CommandFunction; // adduser + "add-user": CommandFunction; // adduser + tst: CommandFunction; // test + t: CommandFunction; // test + "find-dupes": CommandFunction; // dedupe + ddp: CommandFunction; // dedupe + v: CommandFunction; // view + + // plumbing + build: CommandFunction; + unbuild: CommandFunction; + xmas: CommandFunction; + substack: CommandFunction; + visnup: CommandFunction; + + } + + export interface CommandFunction { + (args: string[], callback: CommandCallback): void; + } + + export interface CommandCallback { + (err?: Error, result?: any, result2?: any, result3?: any, result4?: any): void; + } + + //#endregion + + //#region Other Interfaces + + export interface Spinner { + int: string; + started: boolean; + start(): void; + stop(): void; + } + + //#endregion + + //#region Config Interfaces + + export interface ConfigStatic { + new (base: Config): Config; + (base: Config): Config; + } + + export interface Config { + loaded: boolean; + sources: Dictionary; + rootConf: Config; + usingBuiltin: boolean; + root?: Config; + Conf: ConfigStatic; + defs: ConfigDefs; + + get(setting: string): string; + set(setting: string, value: string): void; + + loadPrefix(cb: ErrorCallback): void; + loadCAFile(caFilePath: string, cb: ErrorCallback): void; + loadUid(cb: SimpleCallback): void; + setUser(cb: ErrorCallback): void; + findPrefix(prefix: string, cb: SimpleCallback): void; + getCredentialsByURI(uri: string): Credentials; + setCredentialsByURI(uri: string, cred: Credentials): void; + + loadExtras(cb: ErrorCallback): void; + save(where: string, cb: ErrorCallback): Config; + addFile(file: string, name: string): Config; + parse(content: string, file: string): any; + add(data: Object, marker: Object): any; + addEnv(env: Dictionary): any; + } + + export interface ConfigDefs { + defaults: ConfigOptions; + types: ConfigTypes; + } + + export interface ConfigOptions { + "always-auth"?: boolean; + "bin-links"?: boolean; + browser?: string; + + ca?: any; // string | string[] + cafile?: string; + + cache?: string; + + "cache-lock-stale"?: number; + "cache-lock-retries"?: number; + "cache-lock-wait"?: number; + + "cache-max"?: number; + "cache-min"?: number; + + cert?: string; + + color?: any; // boolean | string ("always") + depth?: number; + description?: boolean; + dev?: boolean; + editor?: string; + "engine-strict"?: boolean; + force?: boolean; + + "fetch-retries"?: number; + "fetch-retry-factor"?: number; + "fetch-retry-mintimeout"?: number; + "fetch-retry-maxtimeout"?: number; + + git?: string; + "git-tag-version"?: boolean; + + global?: boolean; + globalconfig?: string; + group?: any; // number | string + heading?: string; + "ignore-scripts"?: boolean; + "init-module"?: string; + "init.author.name"?: string; + "init.author.email"?: string; + "init.author.url"?: string; + "init.version"?: string; + "init.license"?: string; + json?: boolean; + key?: string; + link?: boolean; + "local-address"?: string; + loglevel?: string; + logstream?: NodeJS.ReadWriteStream; + long?: boolean; + message?: string; + "node-version"?: string; + npat?: boolean; + "onload-script"?: boolean; + optional?: boolean; + parseable?: boolean; + prefix?: string; + production?: boolean; + "proprietary-attribs"?: boolean; + proxy?: any; // boolean | string + "https-proxy"?: string; + "user-agent"?: string; + "rebuild-bundle"?: boolean; + registry?: string; + rollback?: boolean; + save?: boolean; + "save-bundle"?: boolean; + "save-dev"?: boolean; + "save-exact"?: boolean; + "save-optional"?: boolean; + "save-prefix"?: string; + scope?: string; + searchopts?: string; + searchexclude?: string; + searchsort?: string; + shell?: string; + shrinkwrap?: boolean; + "sign-git-tag"?: boolean; + spin?: any; // boolean | string ("always") + "strict-ssl"?: boolean; + tag?: string; + tmp?: string; + unicode?: boolean; + "unsafe-perm"?: boolean; + usage?: boolean; + user?: any; // string | number + userconfig?: string; + umask?: number; + version?: boolean; + versions?: boolean; + viewer?: string; + + _exit?: boolean; + } + + export interface ConfigTypes { + "always-auth": typeof Boolean; + "bin-links": typeof Boolean; + browser: any[]; + + ca: any[]; + cafile: typeof String; + cache: typeof String; + + "cache-lock-stale": typeof Number; + "cache-lock-retries": typeof Number; + "cache-lock-wait": typeof Number; + + "cache-max": typeof Number; + "cache-min": typeof Number; + + cert: typeof String; + + color: any[]; + depth: typeof Number; + description: typeof Boolean; + dev: typeof Boolean; + editor: typeof String; + "engine-strict": typeof Boolean; + force: typeof Boolean; + + "fetch-retries": typeof Number; + "fetch-retry-factor": typeof Number; + "fetch-retry-mintimeout": typeof Number; + "fetch-retry-maxtimeout": typeof Number; + + git: typeof String; + "git-tag-version": typeof Boolean; + + global: typeof Boolean; + globalconfig: typeof String; + group: any[]; + heading: typeof String; + "ignore-scripts": typeof Boolean; + "init-module": typeof String; + "init.author.name": typeof String; + "init.author.email": typeof String; + "init.author.url": typeof String; + "init.version": typeof String; + "init.license": typeof String; + json: typeof Boolean; + key: any[]; + link: typeof Boolean; + "local-address": typeof String; + loglevel: any[]; + logstream: any; // typeof stream.Stream + long: typeof Boolean; + message: typeof String; + "node-version": any[]; + npat: typeof Boolean; + "onload-script": any[]; + optional: typeof Boolean; + parseable: typeof Boolean; + prefix: typeof String; + production: typeof Boolean; + "proprietary-attribs": typeof Boolean; + proxy: any[]; + "https-proxy": any[]; + "user-agent": typeof String; + "rebuild-bundle": Boolean; + registry: any[]; + rollback: typeof Boolean; + save: typeof Boolean; + "save-bundle": typeof Boolean; + "save-dev": typeof Boolean; + "save-exact": typeof Boolean; + "save-optional": typeof Boolean; + "save-prefix": typeof String; + scope: typeof String; + searchopts: typeof String; + searchexclude: any[]; + searchsort: any[]; + shell: typeof String; + shrinkwrap: typeof Boolean; + "sign-git-tag": typeof Boolean; + spin: any[]; + "strict-ssl": typeof Boolean; + tag: typeof String; + tmp: typeof String; + unicode: typeof Boolean; + "unsafe-perm": typeof Boolean; + usage: typeof Boolean; + user: any; // String | Number + userconfig: typeof String; + umask: typeof Number; + version: typeof Boolean; + versions: typeof Boolean; + viewer: typeof String; + + _exit: typeof Boolean; + } + + export interface ConfigShorthands { + s: any[]; + d: any[]; + dd: any[]; + ddd: any[]; + noreg: any[]; + N: any[]; + reg: any[]; + "no-reg": any[]; + silent: any[]; + verbose: any[]; + quiet: any[]; + q: any[]; + h: any[]; + H: any[]; + "?": any[]; + help: any[]; + v: any[]; + f: any[]; + gangster: any[]; + gangsta: any[]; + desc: any[]; + "no-desc": any[]; + "local": any[]; + l: any[]; + m: any[]; + p: any[]; + porcelain: any[]; + g: any[]; + S: any[]; + D: any[]; + E: any[]; + O: any[]; + y: any[]; + n: any[]; + B: any[]; + C: any[]; + } + + export interface ConfigSource { + path: string; + type: string; + } + + export interface Credentials { + scope: string; + token?: string; + password?: string; + username?: string; + email?: string; + auth?: string; + } + + //#endregion + + //#region Utilities Interfaces + + export interface Dictionary { + [key: string]: T; + } + + export interface ErrorCallback { + (err?: Error): void; + } + + export interface SimpleCallback { + (err?: Error, result?: T): void; + } + + //#endregion +} + +declare module "npm" { + var npm: NPM.Static; + export = npm; +}