diff --git a/browserify/browserify.d.ts b/browserify/browserify.d.ts
index a3a9c4efd1..3fcb09cbc0 100644
--- a/browserify/browserify.d.ts
+++ b/browserify/browserify.d.ts
@@ -5,178 +5,171 @@
///
-declare namespace Browserify {
- /**
- * Options pertaining to an individual file.
- */
- interface FileOptions {
- // If true, this is considered an entry point to your app.
- entry?: boolean;
- // Expose this file under a custom dependency name.
- // require('./vendor/angular/angular.js', {expose: 'angular'}) enables require('angular')
- expose?: string;
- // Basedir to use to resolve this file's path.
- basedir?: string;
- // The name/path to the file.
- file?: string;
- // Forward file to external() to be externalized.
- external?: boolean;
- // Disable transforms on file if set to false.
- transform?: boolean;
- // The ID to use for require() statements.
- id?: string;
- }
+declare var browserify: BrowserifyConstructor;
+export = browserify;
-
- // Browserify accepts a filename, an input stream for file inputs, or a FileOptions configuration
- // for each file in a bundle.
- type InputFile = string | NodeJS.ReadableStream | FileOptions;
-
- /**
- * Options pertaining to a Browserify instance.
- */
- interface Options {
- // Custom properties can be defined on Options.
- // These options are forwarded along to module-deps and browser-pack directly.
- [propName: string]: any;
- // String, file object, or array of those types (they may be mixed) specifying entry file(s).
- entries?: InputFile | InputFile[];
- // an array which will skip all require() and global parsing for each file in the array.
- // Use this for giant libs like jquery or threejs that don't have any requires or node-style globals but take forever to parse.
- noParse?: string[];
- // an array of optional extra extensions for the module lookup machinery to use when the extension has not been specified.
- // By default Browserify considers only .js and .json files in such cases.
- extensions?: string[];
- // the directory that Browserify starts bundling from for filenames that start with ..
- basedir?: string;
- // an array of directories that Browserify searches when looking for modules which are not referenced using relative path.
- // Can be absolute or relative to basedir. Equivalent of setting NODE_PATH environmental variable when calling Browserify command.
- paths?: string[];
- // sets the algorithm used to parse out the common paths. Use false to turn this off, otherwise it uses the commondir module.
- commondir?: boolean;
- // disables converting module ids into numerical indexes. This is useful for preserving the original paths that a bundle was generated with.
- fullPaths?: boolean;
- // sets the list of built-ins to use, which by default is set in lib/builtins.js in this distribution.
- builtins?: string[] | {[builtinName: string]: string} | boolean;
- // set if external modules should be bundled. Defaults to true.
- bundleExternal?: boolean;
- // When true, always insert process, global, __filename, and __dirname without analyzing the AST for faster builds but larger output bundles. Default false.
- insertGlobals?: boolean;
- // When true, scan all files for process, global, __filename, and __dirname, defining as necessary.
- // With this option npm modules are more likely to work but bundling takes longer. Default true.
- detectGlobals?: boolean;
- // When true, add a source map inline to the end of the bundle. This makes debugging easier because you can see all the original files if you are in a modern enough browser.
- debug?: boolean;
- // When a non-empty string, a standalone module is created with that name and a umd wrapper.
- // You can use namespaces in the standalone global export using a . in the string name as a separator, for example 'A.B.C'.
- // The global export will be sanitized and camel cased.
- standalone?: string;
- // will be passed to insert-module-globals as the opts.vars parameter.
- insertGlobalVars?: {[globalName: string]: (file: string, basedir: string) => any};
- // defaults to 'require' in expose mode but you can use another name.
- externalRequireName?: string;
- }
-
- interface BrowserifyConstructor {
- (files: InputFile[], opts?: Options): BrowserifyObject;
- (file: InputFile, opts?: Options): BrowserifyObject;
- (opts: Options): BrowserifyObject;
- (): BrowserifyObject
- new(files: InputFile[], opts?: Options): BrowserifyObject;
- new(file: InputFile, opts?: Options): BrowserifyObject;
- new(opts: Options): BrowserifyObject;
- new(): BrowserifyObject
- }
-
- interface BrowserifyObject extends NodeJS.EventEmitter {
- /**
- * Add an entry file from file that will be executed when the bundle loads.
- * If file is an array, each item in file will be added as an entry file.
- */
- add(file: InputFile[], opts?: FileOptions): BrowserifyObject;
- add(file: InputFile, opts?: FileOptions): BrowserifyObject;
- /**
- * Make file available from outside the bundle with require(file).
- * The file param is anything that can be resolved by require.resolve().
- * file can also be a stream, but you should also use opts.basedir so that relative requires will be resolvable.
- * If file is an array, each item in file will be required. In file array form, you can use a string or object for each item. Object items should have a file property and the rest of the parameters will be used for the opts.
- * Use the expose property of opts to specify a custom dependency name. require('./vendor/angular/angular.js', {expose: 'angular'}) enables require('angular')
- */
- require(file: InputFile, opts?: FileOptions): BrowserifyObject;
- /**
- * Bundle the files and their dependencies into a single javascript file.
- * Return a readable stream with the javascript file contents or optionally specify a cb(err, buf) to get the buffered results.
- */
- bundle(cb?: (err: any, src: Buffer) => any): NodeJS.ReadableStream;
- /**
- * Prevent file from being loaded into the current bundle, instead referencing from another bundle.
- * If file is an array, each item in file will be externalized.
- * If file is another bundle, that bundle's contents will be read and excluded from the current bundle as the bundle in file gets bundled.
- */
- external(file: string[], opts?: { basedir?: string }): BrowserifyObject;
- external(file: string, opts?: { basedir?: string }): BrowserifyObject;
- external(file: BrowserifyObject): BrowserifyObject;
- /**
- * Prevent the module name or file at file from showing up in the output bundle.
- * Instead you will get a file with module.exports = {}.
- */
- ignore(file: string, opts?: { basedir?: string }): BrowserifyObject;
- /**
- * Prevent the module name or file at file from showing up in the output bundle.
- * If your code tries to require() that file it will throw unless you've provided another mechanism for loading it.
- */
- exclude(file: string, opts?: { basedir?: string }): BrowserifyObject;
- /**
- * Transform source code before parsing it for require() calls with the transform function or module name tr.
- * If tr is a function, it will be called with tr(file) and it should return a through-stream that takes the raw file contents and produces the transformed source.
- * If tr is a string, it should be a module name or file path of a transform module
- */
- transform(tr: string, opts?: T): BrowserifyObject;
- transform(tr: (file: string, opts: T) => NodeJS.ReadWriteStream, opts?: T): BrowserifyObject;
- /**
- * Register a plugin with opts. Plugins can be a string module name or a function the same as transforms.
- * plugin(b, opts) is called with the Browserify instance b.
- */
- plugin(plugin: string, opts?: T): BrowserifyObject;
- plugin(plugin: (b: BrowserifyObject, opts: T) => any, opts?: T): BrowserifyObject;
- /**
- * Reset the pipeline back to a normal state. This function is called automatically when bundle() is called multiple times.
- * This function triggers a 'reset' event.
- */
- reset(opts?: Options): void;
-
- /**
- * When a file is resolved for the bundle, the bundle emits a 'file' event with the full file path, the id string passed to require(), and the parent object used by browser-resolve.
- * You could use the file event to implement a file watcher to regenerate bundles when files change.
- */
- on(event: 'file', listener: (file: string, id: string, parent: any) => any): this;
- /**
- * When a package.json file is read, this event fires with the contents.
- * The package directory is available at pkg.__dirname.
- */
- on(event: 'package', listener: (pkg: any) => any): this;
- /**
- * When .bundle() is called, this event fires with the bundle output stream.
- */
- on(event: 'bundle', listener: (bundle: NodeJS.ReadableStream) => any): this;
- /**
- * When the .reset() method is called or implicitly called by another call to .bundle(), this event fires.
- */
- on(event: 'reset', listener: () => any): this;
- /**
- * When a transform is applied to a file, the 'transform' event fires on the bundle stream with the transform stream tr and the file that the transform is being applied to.
- */
- on(event: 'transform', listener: (tr: NodeJS.ReadWriteStream, file: string) => any): this;
- on(event: string, listener: Function): this;
-
- /**
- * Set to any until substack/labeled-stream-splicer is defined
- */
- pipeline: any;
- }
+/**
+ * Options pertaining to an individual file.
+ */
+interface FileOptions {
+ // If true, this is considered an entry point to your app.
+ entry?: boolean;
+ // Expose this file under a custom dependency name.
+ // require('./vendor/angular/angular.js', {expose: 'angular'}) enables require('angular')
+ expose?: string;
+ // Basedir to use to resolve this file's path.
+ basedir?: string;
+ // The name/path to the file.
+ file?: string;
+ // Forward file to external() to be externalized.
+ external?: boolean;
+ // Disable transforms on file if set to false.
+ transform?: boolean;
+ // The ID to use for require() statements.
+ id?: string;
}
-declare module "browserify" {
- var browserify: Browserify.BrowserifyConstructor;
- export = browserify;
+// Browserify accepts a filename, an input stream for file inputs, or a FileOptions configuration
+// for each file in a bundle.
+type InputFile = string | NodeJS.ReadableStream | FileOptions;
+
+/**
+ * Options pertaining to a Browserify instance.
+ */
+interface Options {
+ // Custom properties can be defined on Options.
+ // These options are forwarded along to module-deps and browser-pack directly.
+ [propName: string]: any;
+ // String, file object, or array of those types (they may be mixed) specifying entry file(s).
+ entries?: InputFile | InputFile[];
+ // an array which will skip all require() and global parsing for each file in the array.
+ // Use this for giant libs like jquery or threejs that don't have any requires or node-style globals but take forever to parse.
+ noParse?: string[];
+ // an array of optional extra extensions for the module lookup machinery to use when the extension has not been specified.
+ // By default Browserify considers only .js and .json files in such cases.
+ extensions?: string[];
+ // the directory that Browserify starts bundling from for filenames that start with ..
+ basedir?: string;
+ // an array of directories that Browserify searches when looking for modules which are not referenced using relative path.
+ // Can be absolute or relative to basedir. Equivalent of setting NODE_PATH environmental variable when calling Browserify command.
+ paths?: string[];
+ // sets the algorithm used to parse out the common paths. Use false to turn this off, otherwise it uses the commondir module.
+ commondir?: boolean;
+ // disables converting module ids into numerical indexes. This is useful for preserving the original paths that a bundle was generated with.
+ fullPaths?: boolean;
+ // sets the list of built-ins to use, which by default is set in lib/builtins.js in this distribution.
+ builtins?: string[] | {[builtinName: string]: string} | boolean;
+ // set if external modules should be bundled. Defaults to true.
+ bundleExternal?: boolean;
+ // When true, always insert process, global, __filename, and __dirname without analyzing the AST for faster builds but larger output bundles. Default false.
+ insertGlobals?: boolean;
+ // When true, scan all files for process, global, __filename, and __dirname, defining as necessary.
+ // With this option npm modules are more likely to work but bundling takes longer. Default true.
+ detectGlobals?: boolean;
+ // When true, add a source map inline to the end of the bundle. This makes debugging easier because you can see all the original files if you are in a modern enough browser.
+ debug?: boolean;
+ // When a non-empty string, a standalone module is created with that name and a umd wrapper.
+ // You can use namespaces in the standalone global export using a . in the string name as a separator, for example 'A.B.C'.
+ // The global export will be sanitized and camel cased.
+ standalone?: string;
+ // will be passed to insert-module-globals as the opts.vars parameter.
+ insertGlobalVars?: {[globalName: string]: (file: string, basedir: string) => any};
+ // defaults to 'require' in expose mode but you can use another name.
+ externalRequireName?: string;
+}
+
+interface BrowserifyConstructor {
+ (files: InputFile[], opts?: Options): BrowserifyObject;
+ (file: InputFile, opts?: Options): BrowserifyObject;
+ (opts?: Options): BrowserifyObject;
+ new(files: InputFile[], opts?: Options): BrowserifyObject;
+ new(file: InputFile, opts?: Options): BrowserifyObject;
+ new(opts?: Options): BrowserifyObject;
+}
+
+interface BrowserifyObject extends NodeJS.EventEmitter {
+ /**
+ * Add an entry file from file that will be executed when the bundle loads.
+ * If file is an array, each item in file will be added as an entry file.
+ */
+ add(file: InputFile[], opts?: FileOptions): BrowserifyObject;
+ add(file: InputFile, opts?: FileOptions): BrowserifyObject;
+ /**
+ * Make file available from outside the bundle with require(file).
+ * The file param is anything that can be resolved by require.resolve().
+ * file can also be a stream, but you should also use opts.basedir so that relative requires will be resolvable.
+ * If file is an array, each item in file will be required. In file array form, you can use a string or object for each item. Object items should have a file property and the rest of the parameters will be used for the opts.
+ * Use the expose property of opts to specify a custom dependency name. require('./vendor/angular/angular.js', {expose: 'angular'}) enables require('angular')
+ */
+ require(file: InputFile, opts?: FileOptions): BrowserifyObject;
+ /**
+ * Bundle the files and their dependencies into a single javascript file.
+ * Return a readable stream with the javascript file contents or optionally specify a cb(err, buf) to get the buffered results.
+ */
+ bundle(cb?: (err: any, src: Buffer) => any): NodeJS.ReadableStream;
+ /**
+ * Prevent file from being loaded into the current bundle, instead referencing from another bundle.
+ * If file is an array, each item in file will be externalized.
+ * If file is another bundle, that bundle's contents will be read and excluded from the current bundle as the bundle in file gets bundled.
+ */
+ external(file: string[], opts?: { basedir?: string }): BrowserifyObject;
+ external(file: string, opts?: { basedir?: string }): BrowserifyObject;
+ external(file: BrowserifyObject): BrowserifyObject;
+ /**
+ * Prevent the module name or file at file from showing up in the output bundle.
+ * Instead you will get a file with module.exports = {}.
+ */
+ ignore(file: string, opts?: { basedir?: string }): BrowserifyObject;
+ /**
+ * Prevent the module name or file at file from showing up in the output bundle.
+ * If your code tries to require() that file it will throw unless you've provided another mechanism for loading it.
+ */
+ exclude(file: string, opts?: { basedir?: string }): BrowserifyObject;
+ /**
+ * Transform source code before parsing it for require() calls with the transform function or module name tr.
+ * If tr is a function, it will be called with tr(file) and it should return a through-stream that takes the raw file contents and produces the transformed source.
+ * If tr is a string, it should be a module name or file path of a transform module
+ */
+ transform(tr: string, opts?: T): BrowserifyObject;
+ transform(tr: (file: string, opts: T) => NodeJS.ReadWriteStream, opts?: T): BrowserifyObject;
+ /**
+ * Register a plugin with opts. Plugins can be a string module name or a function the same as transforms.
+ * plugin(b, opts) is called with the Browserify instance b.
+ */
+ plugin(plugin: string, opts?: T): BrowserifyObject;
+ plugin(plugin: (b: BrowserifyObject, opts: T) => any, opts?: T): BrowserifyObject;
+ /**
+ * Reset the pipeline back to a normal state. This function is called automatically when bundle() is called multiple times.
+ * This function triggers a 'reset' event.
+ */
+ reset(opts?: Options): void;
+
+ /**
+ * When a file is resolved for the bundle, the bundle emits a 'file' event with the full file path, the id string passed to require(), and the parent object used by browser-resolve.
+ * You could use the file event to implement a file watcher to regenerate bundles when files change.
+ */
+ on(event: 'file', listener: (file: string, id: string, parent: any) => any): this;
+ /**
+ * When a package.json file is read, this event fires with the contents.
+ * The package directory is available at pkg.__dirname.
+ */
+ on(event: 'package', listener: (pkg: any) => any): this;
+ /**
+ * When .bundle() is called, this event fires with the bundle output stream.
+ */
+ on(event: 'bundle', listener: (bundle: NodeJS.ReadableStream) => any): this;
+ /**
+ * When the .reset() method is called or implicitly called by another call to .bundle(), this event fires.
+ */
+ on(event: 'reset', listener: () => any): this;
+ /**
+ * When a transform is applied to a file, the 'transform' event fires on the bundle stream with the transform stream tr and the file that the transform is being applied to.
+ */
+ on(event: 'transform', listener: (tr: NodeJS.ReadWriteStream, file: string) => any): this;
+ on(event: string, listener: Function): this;
+
+ /**
+ * Set to any until substack/labeled-stream-splicer is defined
+ */
+ pipeline: any;
}