diff --git a/flow-typed/npm/body-parser_v1.x.x.js b/flow-typed/npm/body-parser_v1.x.x.js new file mode 100644 index 000000000..2c3c81a18 --- /dev/null +++ b/flow-typed/npm/body-parser_v1.x.x.js @@ -0,0 +1,43 @@ +// flow-typed signature: 18dadbe162b608c79b9b31c3d2f1c822 +// flow-typed version: b43dff3e0e/body-parser_v1.x.x/flow_>=v0.17.x + +import type { Middleware, $Request, $Response } from 'express'; + +declare type bodyParser$Options = { + inflate?: boolean; + limit?: number | string; + type?: string | string[] | ((req: $Request) => any); + verify?: (req: $Request, res: $Response, buf: Buffer, encoding: string) => void; +}; + +declare type bodyParser$OptionsText = bodyParser$Options & { + reviver?: (key: string, value: any) => any; + strict?: boolean; +}; + +declare type bodyParser$OptionsJson = bodyParser$Options & { + reviver?: (key: string, value: any) => any; + strict?: boolean; +}; + +declare type bodyParser$OptionsUrlencoded = bodyParser$Options & { + extended?: boolean; + parameterLimit?: number; +}; + +declare module "body-parser" { + + declare type Options = bodyParser$Options; + declare type OptionsText = bodyParser$OptionsText; + declare type OptionsJson = bodyParser$OptionsJson; + declare type OptionsUrlencoded = bodyParser$OptionsUrlencoded; + + declare function json(options?: OptionsJson): Middleware; + + declare function raw(options?: Options): Middleware; + + declare function text(options?: OptionsText): Middleware; + + declare function urlencoded(options?: OptionsUrlencoded): Middleware; + +} diff --git a/flow-typed/npm/express_v4.x.x.js b/flow-typed/npm/express_v4.x.x.js new file mode 100644 index 000000000..82e05800e --- /dev/null +++ b/flow-typed/npm/express_v4.x.x.js @@ -0,0 +1,207 @@ +// flow-typed signature: f0e399a136d6e8dc8b1fbdc078e2850c +// flow-typed version: ed397013d1/express_v4.x.x/flow_>=v0.32.x + +import type { Server } from 'http'; +import type { Socket } from 'net'; + +declare type express$RouterOptions = { + caseSensitive?: boolean, + mergeParams?: boolean, + strict?: boolean +}; + +declare class express$RequestResponseBase { + app: express$Application; + get(field: string): string | void; +} + +declare type express$RequestParams = { + [param: string]: string +} + +declare class express$Request extends http$IncomingMessage mixins express$RequestResponseBase { + baseUrl: string; + body: any; + cookies: {[cookie: string]: string}; + connection: Socket; + fresh: boolean; + hostname: string; + ip: string; + ips: Array; + method: string; + originalUrl: string; + params: express$RequestParams; + path: string; + protocol: 'https' | 'http'; + query: {[name: string]: string | Array}; + route: string; + secure: boolean; + signedCookies: {[signedCookie: string]: string}; + stale: boolean; + subdomains: Array; + xhr: boolean; + accepts(types: string): string | false; + accepts(types: Array): string | false; + acceptsCharsets(...charsets: Array): string | false; + acceptsEncodings(...encoding: Array): string | false; + acceptsLanguages(...lang: Array): string | false; + header(field: string): string | void; + is(type: string): boolean; + param(name: string, defaultValue?: string): string | void; +} + +declare type express$CookieOptions = { + domain?: string, + encode?: (value: string) => string, + expires?: Date, + httpOnly?: boolean, + maxAge?: number, + path?: string, + secure?: boolean, + signed?: boolean +}; + +declare type express$Path = string | RegExp; + +declare type express$RenderCallback = (err: Error | null, html?: string) => mixed; + +declare type express$SendFileOptions = { + maxAge?: number, + root?: string, + lastModified?: boolean, + headers?: {[name: string]: string}, + dotfiles?: 'allow' | 'deny' | 'ignore' +}; + +declare class express$Response extends http$ServerResponse mixins express$RequestResponseBase { + headersSent: boolean; + locals: {[name: string]: mixed}; + append(field: string, value?: string): this; + attachment(filename?: string): this; + cookie(name: string, value: string, options?: express$CookieOptions): this; + clearCookie(name: string, options?: express$CookieOptions): this; + download(path: string, filename?: string, callback?: (err?: ?Error) => void): this; + format(typesObject: {[type: string]: Function}): this; + json(body?: mixed): this; + jsonp(body?: mixed): this; + links(links: {[name: string]: string}): this; + location(path: string): this; + redirect(url: string, ...args: Array): this; + redirect(status: number, url: string, ...args: Array): this; + render(view: string, locals?: {[name: string]: mixed}, callback?: express$RenderCallback): this; + send(body?: mixed): this; + sendFile(path: string, options?: express$SendFileOptions, callback?: (err?: ?Error) => mixed): this; + sendStatus(statusCode: number): this; + header(field: string, value?: string): this; + header(headers: {[name: string]: string}): this; + set(field: string, value?: string|string[]): this; + set(headers: {[name: string]: string}): this; + status(statusCode: number): this; + type(type: string): this; + vary(field: string): this; + req: express$Request; +} + +declare type express$NextFunction = (err?: ?Error | 'route') => mixed; +declare type express$Middleware = + ((req: $Subtype, res: express$Response, next: express$NextFunction) => mixed) | + ((error: Error, req: $Subtype, res: express$Response, next: express$NextFunction) => mixed); +declare interface express$RouteMethodType { + (middleware: express$Middleware): T; + (...middleware: Array): T; + (path: express$Path|express$Path[], ...middleware: Array): T; +} +declare class express$Route { + all: express$RouteMethodType; + get: express$RouteMethodType; + post: express$RouteMethodType; + put: express$RouteMethodType; + head: express$RouteMethodType; + delete: express$RouteMethodType; + options: express$RouteMethodType; + trace: express$RouteMethodType; + copy: express$RouteMethodType; + lock: express$RouteMethodType; + mkcol: express$RouteMethodType; + move: express$RouteMethodType; + purge: express$RouteMethodType; + propfind: express$RouteMethodType; + proppatch: express$RouteMethodType; + unlock: express$RouteMethodType; + report: express$RouteMethodType; + mkactivity: express$RouteMethodType; + checkout: express$RouteMethodType; + merge: express$RouteMethodType; + + // @TODO Missing 'm-search' but get flow illegal name error. + + notify: express$RouteMethodType; + subscribe: express$RouteMethodType; + unsubscribe: express$RouteMethodType; + patch: express$RouteMethodType; + search: express$RouteMethodType; + connect: express$RouteMethodType; +} + +declare class express$Router extends express$Route { + constructor(options?: express$RouterOptions): void; + route(path: string): express$Route; + static (options?: express$RouterOptions): express$Router; + use(middleware: express$Middleware): this; + use(...middleware: Array): this; + use(path: express$Path|express$Path[], ...middleware: Array): this; + use(path: string, router: express$Router): this; + handle(req: http$IncomingMessage, res: http$ServerResponse, next: express$NextFunction): void; + param( + param: string, + callback: ( + req: $Subtype, + res: express$Response, + next: express$NextFunction, + id: string + ) => mixed + ): void; + + // Can't use regular callable signature syntax due to https://github.com/facebook/flow/issues/3084 + $call: (req: http$IncomingMessage, res: http$ServerResponse, next?: ?express$NextFunction) => void; +} + +declare class express$Application extends express$Router mixins events$EventEmitter { + constructor(): void; + locals: {[name: string]: mixed}; + mountpath: string; + listen(port: number, hostname?: string, backlog?: number, callback?: (err?: ?Error) => mixed): Server; + listen(port: number, hostname?: string, callback?: (err?: ?Error) => mixed): Server; + listen(port: number, callback?: (err?: ?Error) => mixed): Server; + listen(path: string, callback?: (err?: ?Error) => mixed): Server; + listen(handle: Object, callback?: (err?: ?Error) => mixed): Server; + disable(name: string): void; + disabled(name: string): boolean; + enable(name: string): express$Application; + enabled(name: string): boolean; + engine(name: string, callback: Function): void; + /** + * Mixed will not be taken as a value option. Issue around using the GET http method name and the get for settings. + */ + // get(name: string): mixed; + set(name: string, value: mixed): mixed; + render(name: string, optionsOrFunction: {[name: string]: mixed}, callback: express$RenderCallback): void; + handle(req: http$IncomingMessage, res: http$ServerResponse, next?: ?express$NextFunction): void; +} + +declare module 'express' { + declare export type RouterOptions = express$RouterOptions; + declare export type CookieOptions = express$CookieOptions; + declare export type Middleware = express$Middleware; + declare export type NextFunction = express$NextFunction; + declare export type RequestParams = express$RequestParams; + declare export type $Response = express$Response; + declare export type $Request = express$Request; + declare export type $Application = express$Application; + + declare module.exports: { + (): express$Application, // If you try to call like a function, it will use this signature + static: (root: string, options?: Object) => express$Middleware, // `static` property on the function + Router: typeof express$Router, // `Router` property on the function + }; +} diff --git a/flow-typed/npm/request_v2.x.x.js b/flow-typed/npm/request_v2.x.x.js new file mode 100644 index 000000000..078dbf7dc --- /dev/null +++ b/flow-typed/npm/request_v2.x.x.js @@ -0,0 +1,5 @@ +declare function request(options: any, callback: any): Promise; + +declare module 'request' { + declare module.exports: request +} \ No newline at end of file diff --git a/flow-typed/npm/rimraf_v2.x.x.js b/flow-typed/npm/rimraf_v2.x.x.js new file mode 100644 index 000000000..13b85249c --- /dev/null +++ b/flow-typed/npm/rimraf_v2.x.x.js @@ -0,0 +1,18 @@ +// flow-typed signature: 1dff23447d5e18f5ac2b05aaec7cfb74 +// flow-typed version: a453e98ea2/rimraf_v2.x.x/flow_>=v0.25.0 + +declare module 'rimraf' { + declare type Options = { + maxBusyTries?: number, + emfileWait?: number, + glob?: boolean, + disableGlob?: boolean + }; + + declare type Callback = (err: ?Error, path: ?string) => void; + + declare module.exports: { + (f: string, opts?: Options | Callback, callback?: Callback): void; + sync(path: string, opts?: Options): void; + }; +}