diff --git a/Gulpfile.ts b/Gulpfile.ts
index f0757c89bba8f..0305f75411175 100644
--- a/Gulpfile.ts
+++ b/Gulpfile.ts
@@ -85,12 +85,9 @@ let host = cmdLineOptions["host"];
// Constants
const compilerDirectory = "src/compiler/";
-const servicesDirectory = "src/services/";
-const serverDirectory = "src/server/";
const harnessDirectory = "src/harness/";
const libraryDirectory = "src/lib/";
const scriptsDirectory = "scripts/";
-const unittestsDirectory = "tests/cases/unittests/";
const docDirectory = "doc/";
const builtDirectory = "built/";
@@ -107,69 +104,6 @@ const nodeModulesPathPrefix = path.resolve("./node_modules/.bin/");
const isWin = /^win/.test(process.platform);
const mocha = path.join(nodeModulesPathPrefix, "mocha") + (isWin ? ".cmd" : "");
-const compilerSources = require("./src/compiler/tsconfig.json").files.map((file) => path.join(compilerDirectory, file));
-
-const servicesSources = require("./src/services/tsconfig.json").files.map((file) => path.join(servicesDirectory, file));
-
-const serverCoreSources = require("./src/server/tsconfig.json").files.map((file) => path.join(serverDirectory, file));
-
-const languageServiceLibrarySources = [
- "editorServices.ts",
- "protocol.d.ts",
- "session.ts"
-].map(function (f) {
- return path.join(serverDirectory, f);
-}).concat(servicesSources);
-
-const harnessCoreSources = [
- "harness.ts",
- "sourceMapRecorder.ts",
- "harnessLanguageService.ts",
- "fourslash.ts",
- "runnerbase.ts",
- "compilerRunner.ts",
- "typeWriter.ts",
- "fourslashRunner.ts",
- "projectsRunner.ts",
- "loggedIO.ts",
- "rwcRunner.ts",
- "test262Runner.ts",
- "runner.ts"
-].map(function (f) {
- return path.join(harnessDirectory, f);
-});
-
-const harnessSources = harnessCoreSources.concat([
- "incrementalParser.ts",
- "jsDocParsing.ts",
- "services/colorization.ts",
- "services/documentRegistry.ts",
- "services/preProcessFile.ts",
- "services/patternMatcher.ts",
- "session.ts",
- "versionCache.ts",
- "convertToBase64.ts",
- "transpile.ts",
- "reuseProgramStructure.ts",
- "cachingInServerLSHost.ts",
- "moduleResolution.ts",
- "tsconfigParsing.ts",
- "commandLineParsing.ts",
- "convertCompilerOptionsFromJson.ts",
- "convertTypingOptionsFromJson.ts",
- "tsserverProjectSystem.ts",
- "matchFiles.ts",
-].map(function (f) {
- return path.join(unittestsDirectory, f);
-})).concat([
- "protocol.d.ts",
- "session.ts",
- "client.ts",
- "editorServices.ts"
-].map(function (f) {
- return path.join(serverDirectory, f);
-}));
-
const es2015LibrarySources = [
"es2015.core.d.ts",
"es2015.collection.d.ts",
@@ -500,21 +434,18 @@ const tsserverLibraryFile = path.join(builtLocalDirectory, "tsserverlibrary.js")
const tsserverLibraryDefinitionFile = path.join(builtLocalDirectory, "tsserverlibrary.d.ts");
gulp.task(tsserverLibraryFile, false, [servicesFile], (done) => {
- const settings: tsc.Settings = getCompilerSettings({
- declaration: true,
- outFile: tsserverLibraryFile
- }, /*useBuiltCompiler*/ true);
- const {js, dts}: {js: NodeJS.ReadableStream, dts: NodeJS.ReadableStream} = gulp.src(languageServiceLibrarySources)
+ const serverLibraryProject = tsc.createProject("src/server/tsconfig.library.json", getCompilerSettings({}, /*useBuiltCompiler*/ true));
+ const {js, dts}: {js: NodeJS.ReadableStream, dts: NodeJS.ReadableStream} = serverLibraryProject.src()
.pipe(sourcemaps.init())
.pipe(newer(tsserverLibraryFile))
- .pipe(tsc(settings));
+ .pipe(tsc(serverLibraryProject));
return merge2([
js.pipe(prependCopyright())
.pipe(sourcemaps.write("."))
- .pipe(gulp.dest(".")),
+ .pipe(gulp.dest(builtLocalDirectory)),
dts.pipe(prependCopyright())
- .pipe(gulp.dest("."))
+ .pipe(gulp.dest(builtLocalDirectory))
]);
});
@@ -583,15 +514,13 @@ gulp.task("LKG", "Makes a new LKG out of the built js files", ["clean", "dontUse
// Task to build the tests infrastructure using the built compiler
const run = path.join(builtLocalDirectory, "run.js");
gulp.task(run, false, [servicesFile], () => {
- const settings: tsc.Settings = getCompilerSettings({
- outFile: run
- }, /*useBuiltCompiler*/ true);
- return gulp.src(harnessSources)
+ const testProject = tsc.createProject("src/harness/tsconfig.json", getCompilerSettings({}, /*useBuiltCompiler*/true));
+ return testProject.src()
.pipe(newer(run))
.pipe(sourcemaps.init())
- .pipe(tsc(settings))
+ .pipe(tsc(testProject))
.pipe(sourcemaps.write(".", { includeContent: false, sourceRoot: "../../" }))
- .pipe(gulp.dest("."));
+ .pipe(gulp.dest(builtLocalDirectory));
});
const internalTests = "internal/";
@@ -766,13 +695,11 @@ gulp.task(nodeServerOutFile, false, [servicesFile], () => {
});
gulp.task("browserify", "Runs browserify on run.js to produce a file suitable for running tests in the browser", [servicesFile], (done) => {
- const settings: tsc.Settings = getCompilerSettings({
- outFile: "built/local/bundle.js"
- }, /*useBuiltCompiler*/ true);
- return gulp.src(harnessSources)
+ const testProject = tsc.createProject("src/harness/tsconfig.json", getCompilerSettings({ outFile: "built/local/bundle.js" }, /*useBuiltCompiler*/ true));
+ return testProject.src()
.pipe(newer("built/local/bundle.js"))
.pipe(sourcemaps.init())
- .pipe(tsc(settings))
+ .pipe(tsc(testProject))
.pipe(through2.obj((file, enc, next) => {
browserify(intoStream(file.contents))
.bundle((err, res) => {
@@ -1013,36 +940,37 @@ function lintFile(options, path) {
return lintFileContents(options, path, contents);
}
-const lintTargets = ["Gulpfile.ts"]
- .concat(compilerSources)
- .concat(harnessSources)
- // Other harness sources
- .concat(["instrumenter.ts"].map(function(f) { return path.join(harnessDirectory, f); }))
- .concat(serverCoreSources)
- .concat(tslintRulesFiles)
- .concat(servicesSources);
+const lintTargets = [
+ "Gulpfile.ts",
+ "src/compiler/**/*.ts",
+ "src/harness/**/*.ts",
+ "!src/harness/unittests/services/formatting/**/*.ts",
+ "src/server/**/*.ts",
+ "scripts/tslint/**/*.ts",
+ "src/services/**/*.ts",
+];
gulp.task("lint", "Runs tslint on the compiler sources. Optional arguments are: --f[iles]=regex", ["build-rules"], () => {
+ const fileMatcher = RegExp(cmdLineOptions["files"]);
const lintOptions = getLinterOptions();
let failed = 0;
- const fileMatcher = RegExp(cmdLineOptions["files"]);
- const done = {};
- for (const i in lintTargets) {
- const target = lintTargets[i];
- if (!done[target] && fileMatcher.test(target)) {
- const result = lintFile(lintOptions, target);
+ return gulp.src(lintTargets)
+ .pipe(insert.transform((contents, file) => {
+ if (!fileMatcher.test(file.path)) return contents;
+ const result = lintFile(lintOptions, file.path);
if (result.failureCount > 0) {
console.log(result.output);
failed += result.failureCount;
}
- done[target] = true;
- }
- }
- if (failed > 0) {
- console.error("Linter errors.");
- process.exit(1);
- }
+ return contents; // TODO (weswig): Automatically apply fixes? :3
+ }))
+ .on("end", () => {
+ if (failed > 0) {
+ console.error("Linter errors.");
+ process.exit(1);
+ }
+ });
});
diff --git a/Jakefile.js b/Jakefile.js
index 0dd589f90e34e..eee9fe1370e22 100644
--- a/Jakefile.js
+++ b/Jakefile.js
@@ -14,7 +14,7 @@ var serverDirectory = "src/server/";
var harnessDirectory = "src/harness/";
var libraryDirectory = "src/lib/";
var scriptsDirectory = "scripts/";
-var unittestsDirectory = "tests/cases/unittests/";
+var unittestsDirectory = "src/harness/unittests/";
var docDirectory = "doc/";
var builtDirectory = "built/";
@@ -100,7 +100,6 @@ var servicesSources = [
}));
var serverCoreSources = [
- "node.d.ts",
"editorServices.ts",
"protocol.d.ts",
"session.ts",
@@ -279,13 +278,18 @@ var builtLocalCompiler = path.join(builtLocalDirectory, compilerFilename);
* @param {boolean} opts.stripInternal: true if compiler should remove declarations marked as @internal
* @param {boolean} opts.noMapRoot: true if compiler omit mapRoot option
* @param {boolean} opts.inlineSourceMap: true if compiler should inline sourceMap
+ * @param {Array} opts.types: array of types to include in compilation
* @param callback: a function to execute after the compilation process ends
*/
function compileFile(outFile, sources, prereqs, prefixes, useBuiltCompiler, opts, callback) {
file(outFile, prereqs, function() {
- var compilerPath = useBuiltCompiler ? builtLocalCompiler : LKGCompiler;
- var options = "--noImplicitAny --noImplicitThis --noEmitOnError --types --pretty";
opts = opts || {};
+ var compilerPath = useBuiltCompiler ? builtLocalCompiler : LKGCompiler;
+ var options = "--noImplicitAny --noImplicitThis --noEmitOnError --types "
+ if (opts.types) {
+ options += opts.types.join(",");
+ }
+ options += " --pretty";
// Keep comments when specifically requested
// or when in debug mode.
if (!(opts.keepComments || useDebugMode)) {
@@ -548,8 +552,7 @@ compileFile(
});
var serverFile = path.join(builtLocalDirectory, "tsserver.js");
-compileFile(serverFile, serverSources,[builtLocalDirectory, copyright].concat(serverSources), /*prefixes*/ [copyright], /*useBuiltCompiler*/ true);
-
+compileFile(serverFile, serverSources,[builtLocalDirectory, copyright].concat(serverSources), /*prefixes*/ [copyright], /*useBuiltCompiler*/ true, { types: ["node"] });
var tsserverLibraryFile = path.join(builtLocalDirectory, "tsserverlibrary.js");
var tsserverLibraryDefinitionFile = path.join(builtLocalDirectory, "tsserverlibrary.d.ts");
compileFile(
@@ -652,7 +655,7 @@ compileFile(
/*prereqs*/ [builtLocalDirectory, tscFile].concat(libraryTargets).concat(harnessSources),
/*prefixes*/ [],
/*useBuiltCompiler:*/ true,
- /*opts*/ { inlineSourceMap: true });
+ /*opts*/ { inlineSourceMap: true, types: ["node", "mocha", "chai"] });
var internalTests = "internal/";
diff --git a/package.json b/package.json
index 29871e77f70f1..72a220f53b1ee 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
},
"devDependencies": {
"@types/browserify": "latest",
+ "@types/chai": "latest",
"@types/del": "latest",
"@types/glob": "latest",
"@types/gulp": "latest",
@@ -42,6 +43,7 @@
"@types/minimatch": "latest",
"@types/minimist": "latest",
"@types/mkdirp": "latest",
+ "@types/mocha": "latest",
"@types/node": "latest",
"@types/q": "latest",
"@types/run-sequence": "latest",
diff --git a/src/harness/external/chai.d.ts b/src/harness/external/chai.d.ts
deleted file mode 100644
index 5e4e6e7d00010..0000000000000
--- a/src/harness/external/chai.d.ts
+++ /dev/null
@@ -1,179 +0,0 @@
-// Type definitions for chai 1.7.2
-// Project: http://chaijs.com/
-// Definitions by: Jed Hunsaker
-// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped
-
-
-declare module chai {
-
- function expect(target: any, message?: string): Expect;
-
- // Provides a way to extend the internals of Chai
- function use(fn: (chai: any, utils: any) => void): any;
-
- interface ExpectStatic {
- (target: any): Expect;
- }
-
- interface Assertions {
- attr(name: string, value?: string): any;
- css(name: string, value?: string): any;
- data(name: string, value?: string): any;
- class(className: string): any;
- id(id: string): any;
- html(html: string): any;
- text(text: string): any;
- value(value: string): any;
- visible: any;
- hidden: any;
- selected: any;
- checked: any;
- disabled: any;
- empty: any;
- exist: any;
- }
-
- interface Expect extends LanguageChains, NumericComparison, TypeComparison, Assertions {
- not: Expect;
- deep: Deep;
- a: TypeComparison;
- an: TypeComparison;
- include: Include;
- contain: Include;
- ok: Expect;
- true: Expect;
- false: Expect;
- null: Expect;
- undefined: Expect;
- exist: Expect;
- empty: Expect;
- arguments: Expect;
- Arguments: Expect;
- equal: Equal;
- equals: Equal;
- eq: Equal;
- eql: Equal;
- eqls: Equal;
- property: Property;
- ownProperty: OwnProperty;
- haveOwnProperty: OwnProperty;
- length: Length;
- lengthOf: Length;
- match(RegularExpression: RegExp, message?: string): Expect;
- string(string: string, message?: string): Expect;
- keys: Keys;
- key(string: string): Expect;
- throw: Throw;
- throws: Throw;
- Throw: Throw;
- respondTo(method: string, message?: string): Expect;
- itself: Expect;
- satisfy(matcher: Function, message?: string): Expect;
- closeTo(expected: number, delta: number, message?: string): Expect;
- members: Members;
- }
-
- interface LanguageChains {
- to: Expect;
- be: Expect;
- been: Expect;
- is: Expect;
- that: Expect;
- and: Expect;
- have: Expect;
- with: Expect;
- at: Expect;
- of: Expect;
- same: Expect;
- }
-
- interface NumericComparison {
- above: NumberComparer;
- gt: NumberComparer;
- greaterThan: NumberComparer;
- least: NumberComparer;
- gte: NumberComparer;
- below: NumberComparer;
- lt: NumberComparer;
- lessThan: NumberComparer;
- most: NumberComparer;
- lte: NumberComparer;
- within(start: number, finish: number, message?: string): Expect;
- }
-
- interface NumberComparer {
- (value: number, message?: string): Expect;
- }
-
- interface TypeComparison {
- (type: string, message?: string): Expect;
- instanceof: InstanceOf;
- instanceOf: InstanceOf;
- }
-
- interface InstanceOf {
- (constructor: Object, message?: string): Expect;
- }
-
- interface Deep {
- equal: Equal;
- property: Property;
- }
-
- interface Equal {
- (value: any, message?: string): Expect;
- }
-
- interface Property {
- (name: string, value?: any, message?: string): Expect;
- }
-
- interface OwnProperty {
- (name: string, message?: string): Expect;
- }
-
- interface Length extends LanguageChains, NumericComparison {
- (length: number, message?: string): Expect;
- }
-
- interface Include {
- (value: Object, message?: string): Expect;
- (value: string, message?: string): Expect;
- (value: number, message?: string): Expect;
- keys: Keys;
- members: Members;
- }
-
- interface Keys {
- (...keys: string[]): Expect;
- (keys: any[]): Expect;
- }
-
- interface Members {
- (set: any[], message?: string): Expect;
- }
-
- interface Throw {
- (): Expect;
- (expected: string, message?: string): Expect;
- (expected: RegExp, message?: string): Expect;
- (constructor: Error, expected?: string, message?: string): Expect;
- (constructor: Error, expected?: RegExp, message?: string): Expect;
- (constructor: Function, expected?: string, message?: string): Expect;
- (constructor: Function, expected?: RegExp, message?: string): Expect;
- }
-
- function assert(expression: any, message?: string): void;
- module assert {
- function equal(actual: any, expected: any, message?: string): void;
- function notEqual(actual: any, expected: any, message?: string): void;
- function deepEqual(actual: T, expected: T, message?: string): void;
- function notDeepEqual(actual: T, expected: T, message?: string): void;
- function lengthOf(object: any[], length: number, message?: string): void;
- function isTrue(value: any, message?: string): void;
- function isFalse(value: any, message?: string): void;
- function isOk(actual: any, message?: string): void;
- function isUndefined(value: any, message?: string): void;
- function isDefined(value: any, message?: string): void;
- }
-}
\ No newline at end of file
diff --git a/src/harness/external/mocha.d.ts b/src/harness/external/mocha.d.ts
deleted file mode 100644
index c498eb080b661..0000000000000
--- a/src/harness/external/mocha.d.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-// Type definitions for mocha 1.9.0
-// Project: http://visionmedia.github.io/mocha/
-// Definitions by: Kazi Manzur Rashid
-// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped
-
-declare var describe : {
- (description: string, spec: () => void): void;
- only(description: string, spec: () => void): void;
- skip(description: string, spec: () => void): void;
- timeout(ms: number): void;
-}
-
-declare var it: {
- (expectation: string, assertion?: () => void): void;
- (expectation: string, assertion?: (done: () => void) => void): void;
- only(expectation: string, assertion?: () => void): void;
- only(expectation: string, assertion?: (done: () => void) => void): void;
- skip(expectation: string, assertion?: () => void): void;
- skip(expectation: string, assertion?: (done: () => void) => void): void;
- timeout(ms: number): void;
-};
-
-/** Runs once before any 'it' blocks in the current 'describe' are run */
-declare function before(action: () => void): void;
-
-/** Runs once before any 'it' blocks in the current 'describe' are run */
-declare function before(action: (done: () => void) => void): void;
-
-/** Runs once after all 'it' blocks in the current 'describe' are run */
-declare function after(action: () => void): void;
-
-/** Runs once after all 'it' blocks in the current 'describe' are run */
-declare function after(action: (done: () => void) => void): void;
-
-/** Runs before each individual 'it' block in the current 'describe' is run */
-declare function beforeEach(action: () => void): void;
-
-/** Runs before each individual 'it' block in the current 'describe' is run */
-declare function beforeEach(action: (done: () => void) => void): void;
-
-/** Runs after each individual 'it' block in the current 'describe' is run */
-declare function afterEach(action: () => void): void;
-
-/** Runs after each individual 'it' block in the current 'describe' is run */
-declare function afterEach(action: (done: () => void) => void): void;
\ No newline at end of file
diff --git a/src/harness/external/node.d.ts b/src/harness/external/node.d.ts
deleted file mode 100644
index b89174cef7c96..0000000000000
--- a/src/harness/external/node.d.ts
+++ /dev/null
@@ -1,1296 +0,0 @@
-// Type definitions for Node.js v0.10.1
-// Project: http://nodejs.org/
-// Definitions by: Microsoft TypeScript , DefinitelyTyped
-// Definitions: https://github.com/borisyankov/DefinitelyTyped
-
-/************************************************
-* *
-* Node.js v0.10.1 API *
-* *
-************************************************/
-
-/************************************************
-* *
-* GLOBAL *
-* *
-************************************************/
-declare var process: NodeJS.Process;
-declare var global: any;
-
-declare var __filename: string;
-declare var __dirname: string;
-
-declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
-declare function clearTimeout(timeoutId: NodeJS.Timer): void;
-declare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
-declare function clearInterval(intervalId: NodeJS.Timer): void;
-declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;
-declare function clearImmediate(immediateId: any): void;
-
-declare var require: {
- (id: string): any;
- resolve(id:string): string;
- cache: any;
- extensions: any;
- main: any;
-};
-
-declare var module: {
- exports: any;
- require(id: string): any;
- id: string;
- filename: string;
- loaded: boolean;
- parent: any;
- children: any[];
-};
-
-// Same as module.exports
-declare var exports: any;
-declare var SlowBuffer: {
- new (str: string, encoding?: string): Buffer;
- new (size: number): Buffer;
- new (array: any[]): Buffer;
- prototype: Buffer;
- isBuffer(obj: any): boolean;
- byteLength(string: string, encoding?: string): number;
- concat(list: Buffer[], totalLength?: number): Buffer;
-};
-
-
-// Buffer class
-interface Buffer extends NodeBuffer {}
-declare var Buffer: {
- new (str: string, encoding?: string): Buffer;
- new (size: number): Buffer;
- new (array: any[]): Buffer;
- prototype: Buffer;
- isBuffer(obj: any): boolean;
- byteLength(string: string, encoding?: string): number;
- concat(list: Buffer[], totalLength?: number): Buffer;
-};
-
-/************************************************
-* *
-* GLOBAL INTERFACES *
-* *
-************************************************/
-declare module NodeJS {
- export interface ErrnoException extends Error {
- errno?: any;
- code?: string;
- path?: string;
- syscall?: string;
- }
-
- export interface EventEmitter {
- addListener(event: string, listener: Function): EventEmitter;
- on(event: string, listener: Function): EventEmitter;
- once(event: string, listener: Function): EventEmitter;
- removeListener(event: string, listener: Function): EventEmitter;
- removeAllListeners(event?: string): EventEmitter;
- setMaxListeners(n: number): void;
- listeners(event: string): Function[];
- emit(event: string, ...args: any[]): boolean;
- }
-
- export interface ReadableStream extends EventEmitter {
- readable: boolean;
- read(size?: number): any;
- setEncoding(encoding: string): void;
- pause(): void;
- resume(): void;
- pipe(destination: T, options?: { end?: boolean; }): T;
- unpipe(destination?: T): void;
- unshift(chunk: string): void;
- unshift(chunk: Buffer): void;
- wrap(oldStream: ReadableStream): ReadableStream;
- }
-
- export interface WritableStream extends EventEmitter {
- writable: boolean;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- }
-
- export interface ReadWriteStream extends ReadableStream, WritableStream {}
-
- export interface Process extends EventEmitter {
- stdout: WritableStream;
- stderr: WritableStream;
- stdin: ReadableStream;
- argv: string[];
- execPath: string;
- abort(): void;
- chdir(directory: string): void;
- cwd(): string;
- env: any;
- exit(code?: number): void;
- getgid(): number;
- setgid(id: number): void;
- setgid(id: string): void;
- getuid(): number;
- setuid(id: number): void;
- setuid(id: string): void;
- version: string;
- versions: {
- http_parser: string;
- node: string;
- v8: string;
- ares: string;
- uv: string;
- zlib: string;
- openssl: string;
- };
- config: {
- target_defaults: {
- cflags: any[];
- default_configuration: string;
- defines: string[];
- include_dirs: string[];
- libraries: string[];
- };
- variables: {
- clang: number;
- host_arch: string;
- node_install_npm: boolean;
- node_install_waf: boolean;
- node_prefix: string;
- node_shared_openssl: boolean;
- node_shared_v8: boolean;
- node_shared_zlib: boolean;
- node_use_dtrace: boolean;
- node_use_etw: boolean;
- node_use_openssl: boolean;
- target_arch: string;
- v8_no_strict_aliasing: number;
- v8_use_snapshot: boolean;
- visibility: string;
- };
- };
- kill(pid: number, signal?: string): void;
- pid: number;
- title: string;
- arch: string;
- platform: string;
- memoryUsage(): { rss: number; heapTotal: number; heapUsed: number; };
- nextTick(callback: Function): void;
- umask(mask?: number): number;
- uptime(): number;
- hrtime(time?:number[]): number[];
-
- // Worker
- send?(message: any, sendHandle?: any): void;
- }
-
- export interface Timer {
- ref() : void;
- unref() : void;
- }
-}
-
-/**
- * @deprecated
- */
-interface NodeBuffer {
- [index: number]: number;
- write(string: string, offset?: number, length?: number, encoding?: string): number;
- toString(encoding?: string, start?: number, end?: number): string;
- toJSON(): any;
- length: number;
- copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
- slice(start?: number, end?: number): Buffer;
- readUInt8(offset: number, noAsset?: boolean): number;
- readUInt16LE(offset: number, noAssert?: boolean): number;
- readUInt16BE(offset: number, noAssert?: boolean): number;
- readUInt32LE(offset: number, noAssert?: boolean): number;
- readUInt32BE(offset: number, noAssert?: boolean): number;
- readInt8(offset: number, noAssert?: boolean): number;
- readInt16LE(offset: number, noAssert?: boolean): number;
- readInt16BE(offset: number, noAssert?: boolean): number;
- readInt32LE(offset: number, noAssert?: boolean): number;
- readInt32BE(offset: number, noAssert?: boolean): number;
- readFloatLE(offset: number, noAssert?: boolean): number;
- readFloatBE(offset: number, noAssert?: boolean): number;
- readDoubleLE(offset: number, noAssert?: boolean): number;
- readDoubleBE(offset: number, noAssert?: boolean): number;
- writeUInt8(value: number, offset: number, noAssert?: boolean): void;
- writeUInt16LE(value: number, offset: number, noAssert?: boolean): void;
- writeUInt16BE(value: number, offset: number, noAssert?: boolean): void;
- writeUInt32LE(value: number, offset: number, noAssert?: boolean): void;
- writeUInt32BE(value: number, offset: number, noAssert?: boolean): void;
- writeInt8(value: number, offset: number, noAssert?: boolean): void;
- writeInt16LE(value: number, offset: number, noAssert?: boolean): void;
- writeInt16BE(value: number, offset: number, noAssert?: boolean): void;
- writeInt32LE(value: number, offset: number, noAssert?: boolean): void;
- writeInt32BE(value: number, offset: number, noAssert?: boolean): void;
- writeFloatLE(value: number, offset: number, noAssert?: boolean): void;
- writeFloatBE(value: number, offset: number, noAssert?: boolean): void;
- writeDoubleLE(value: number, offset: number, noAssert?: boolean): void;
- writeDoubleBE(value: number, offset: number, noAssert?: boolean): void;
- fill(value: any, offset?: number, end?: number): void;
-}
-
-/************************************************
-* *
-* MODULES *
-* *
-************************************************/
-declare module "buffer" {
- export var INSPECT_MAX_BYTES: number;
-}
-
-declare module "querystring" {
- export function stringify(obj: any, sep?: string, eq?: string): string;
- export function parse(str: string, sep?: string, eq?: string, options?: { maxKeys?: number; }): any;
- export function escape(): any;
- export function unescape(): any;
-}
-
-declare module "events" {
- export class EventEmitter implements NodeJS.EventEmitter {
- static listenerCount(emitter: EventEmitter, event: string): number;
-
- addListener(event: string, listener: Function): EventEmitter;
- on(event: string, listener: Function): EventEmitter;
- once(event: string, listener: Function): EventEmitter;
- removeListener(event: string, listener: Function): EventEmitter;
- removeAllListeners(event?: string): EventEmitter;
- setMaxListeners(n: number): void;
- listeners(event: string): Function[];
- emit(event: string, ...args: any[]): boolean;
- }
-}
-
-declare module "http" {
- import events = require("events");
- import net = require("net");
- import stream = require("stream");
-
- export interface Server extends events.EventEmitter {
- listen(port: number, hostname?: string, backlog?: number, callback?: Function): Server;
- listen(path: string, callback?: Function): Server;
- listen(handle: any, listeningListener?: Function): Server;
- close(cb?: any): Server;
- address(): { port: number; family: string; address: string; };
- maxHeadersCount: number;
- }
- export interface ServerRequest extends events.EventEmitter, stream.Readable {
- method: string;
- url: string;
- headers: any;
- trailers: string;
- httpVersion: string;
- setEncoding(encoding?: string): void;
- pause(): void;
- resume(): void;
- connection: net.Socket;
- }
- export interface ServerResponse extends events.EventEmitter, stream.Writable {
- // Extended base methods
- write(buffer: Buffer): boolean;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- write(str: string, encoding?: string, fd?: string): boolean;
-
- writeContinue(): void;
- writeHead(statusCode: number, reasonPhrase?: string, headers?: any): void;
- writeHead(statusCode: number, headers?: any): void;
- statusCode: number;
- setHeader(name: string, value: string): void;
- sendDate: boolean;
- getHeader(name: string): string;
- removeHeader(name: string): void;
- write(chunk: any, encoding?: string): any;
- addTrailers(headers: any): void;
-
- // Extended base methods
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- end(data?: any, encoding?: string): void;
- }
- export interface ClientRequest extends events.EventEmitter, stream.Writable {
- // Extended base methods
- write(buffer: Buffer): boolean;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- write(str: string, encoding?: string, fd?: string): boolean;
-
- write(chunk: any, encoding?: string): void;
- abort(): void;
- setTimeout(timeout: number, callback?: Function): void;
- setNoDelay(noDelay?: boolean): void;
- setSocketKeepAlive(enable?: boolean, initialDelay?: number): void;
-
- // Extended base methods
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- end(data?: any, encoding?: string): void;
- }
- export interface ClientResponse extends events.EventEmitter, stream.Readable {
- statusCode: number;
- httpVersion: string;
- headers: any;
- trailers: any;
- setEncoding(encoding?: string): void;
- pause(): void;
- resume(): void;
- }
- export interface Agent { maxSockets: number; sockets: any; requests: any; }
-
- export var STATUS_CODES: {
- [errorCode: number]: string;
- [errorCode: string]: string;
- };
- export function createServer(requestListener?: (request: ServerRequest, response: ServerResponse) =>void ): Server;
- export function createClient(port?: number, host?: string): any;
- export function request(options: any, callback?: Function): ClientRequest;
- export function get(options: any, callback?: Function): ClientRequest;
- export var globalAgent: Agent;
-}
-
-declare module "cluster" {
- import child = require("child_process");
- import events = require("events");
-
- export interface ClusterSettings {
- exec?: string;
- args?: string[];
- silent?: boolean;
- }
-
- export class Worker extends events.EventEmitter {
- id: string;
- process: child.ChildProcess;
- suicide: boolean;
- send(message: any, sendHandle?: any): void;
- kill(signal?: string): void;
- destroy(signal?: string): void;
- disconnect(): void;
- }
-
- export var settings: ClusterSettings;
- export var isMaster: boolean;
- export var isWorker: boolean;
- export function setupMaster(settings?: ClusterSettings): void;
- export function fork(env?: any): Worker;
- export function disconnect(callback?: Function): void;
- export var worker: Worker;
- export var workers: Worker[];
-
- // Event emitter
- export function addListener(event: string, listener: Function): void;
- export function on(event: string, listener: Function): any;
- export function once(event: string, listener: Function): void;
- export function removeListener(event: string, listener: Function): void;
- export function removeAllListeners(event?: string): void;
- export function setMaxListeners(n: number): void;
- export function listeners(event: string): Function[];
- export function emit(event: string, ...args: any[]): boolean;
-}
-
-declare module "zlib" {
- import stream = require("stream");
- export interface ZlibOptions { chunkSize?: number; windowBits?: number; level?: number; memLevel?: number; strategy?: number; dictionary?: any; }
-
- export interface Gzip extends stream.Transform { }
- export interface Gunzip extends stream.Transform { }
- export interface Deflate extends stream.Transform { }
- export interface Inflate extends stream.Transform { }
- export interface DeflateRaw extends stream.Transform { }
- export interface InflateRaw extends stream.Transform { }
- export interface Unzip extends stream.Transform { }
-
- export function createGzip(options?: ZlibOptions): Gzip;
- export function createGunzip(options?: ZlibOptions): Gunzip;
- export function createDeflate(options?: ZlibOptions): Deflate;
- export function createInflate(options?: ZlibOptions): Inflate;
- export function createDeflateRaw(options?: ZlibOptions): DeflateRaw;
- export function createInflateRaw(options?: ZlibOptions): InflateRaw;
- export function createUnzip(options?: ZlibOptions): Unzip;
-
- export function deflate(buf: Buffer, callback: (error: Error, result: any) =>void ): void;
- export function deflateRaw(buf: Buffer, callback: (error: Error, result: any) =>void ): void;
- export function gzip(buf: Buffer, callback: (error: Error, result: any) =>void ): void;
- export function gunzip(buf: Buffer, callback: (error: Error, result: any) =>void ): void;
- export function inflate(buf: Buffer, callback: (error: Error, result: any) =>void ): void;
- export function inflateRaw(buf: Buffer, callback: (error: Error, result: any) =>void ): void;
- export function unzip(buf: Buffer, callback: (error: Error, result: any) =>void ): void;
-
- // Constants
- export var Z_NO_FLUSH: number;
- export var Z_PARTIAL_FLUSH: number;
- export var Z_SYNC_FLUSH: number;
- export var Z_FULL_FLUSH: number;
- export var Z_FINISH: number;
- export var Z_BLOCK: number;
- export var Z_TREES: number;
- export var Z_OK: number;
- export var Z_STREAM_END: number;
- export var Z_NEED_DICT: number;
- export var Z_ERRNO: number;
- export var Z_STREAM_ERROR: number;
- export var Z_DATA_ERROR: number;
- export var Z_MEM_ERROR: number;
- export var Z_BUF_ERROR: number;
- export var Z_VERSION_ERROR: number;
- export var Z_NO_COMPRESSION: number;
- export var Z_BEST_SPEED: number;
- export var Z_BEST_COMPRESSION: number;
- export var Z_DEFAULT_COMPRESSION: number;
- export var Z_FILTERED: number;
- export var Z_HUFFMAN_ONLY: number;
- export var Z_RLE: number;
- export var Z_FIXED: number;
- export var Z_DEFAULT_STRATEGY: number;
- export var Z_BINARY: number;
- export var Z_TEXT: number;
- export var Z_ASCII: number;
- export var Z_UNKNOWN: number;
- export var Z_DEFLATED: number;
- export var Z_NULL: number;
-}
-
-declare module "os" {
- export function tmpDir(): string;
- export function hostname(): string;
- export function type(): string;
- export function platform(): string;
- export function arch(): string;
- export function release(): string;
- export function uptime(): number;
- export function loadavg(): number[];
- export function totalmem(): number;
- export function freemem(): number;
- export function cpus(): { model: string; speed: number; times: { user: number; nice: number; sys: number; idle: number; irq: number; }; }[];
- export function networkInterfaces(): any;
- export var EOL: string;
-}
-
-declare module "https" {
- import tls = require("tls");
- import events = require("events");
- import http = require("http");
-
- export interface ServerOptions {
- pfx?: any;
- key?: any;
- passphrase?: string;
- cert?: any;
- ca?: any;
- crl?: any;
- ciphers?: string;
- honorCipherOrder?: boolean;
- requestCert?: boolean;
- rejectUnauthorized?: boolean;
- NPNProtocols?: any;
- SNICallback?: (servername: string) => any;
- }
-
- export interface RequestOptions {
- host?: string;
- hostname?: string;
- port?: number;
- path?: string;
- method?: string;
- headers?: any;
- auth?: string;
- agent?: any;
- pfx?: any;
- key?: any;
- passphrase?: string;
- cert?: any;
- ca?: any;
- ciphers?: string;
- rejectUnauthorized?: boolean;
- }
-
- export interface Agent {
- maxSockets: number;
- sockets: any;
- requests: any;
- }
- export var Agent: {
- new (options?: RequestOptions): Agent;
- };
- export interface Server extends tls.Server { }
- export function createServer(options: ServerOptions, requestListener?: Function): Server;
- export function request(options: RequestOptions, callback?: (res: events.EventEmitter) =>void ): http.ClientRequest;
- export function get(options: RequestOptions, callback?: (res: events.EventEmitter) =>void ): http.ClientRequest;
- export var globalAgent: Agent;
-}
-
-declare module "punycode" {
- export function decode(string: string): string;
- export function encode(string: string): string;
- export function toUnicode(domain: string): string;
- export function toASCII(domain: string): string;
- export var ucs2: ucs2;
- interface ucs2 {
- decode(string: string): string;
- encode(codePoints: number[]): string;
- }
- export var version: any;
-}
-
-declare module "repl" {
- import stream = require("stream");
- import events = require("events");
-
- export interface ReplOptions {
- prompt?: string;
- input?: NodeJS.ReadableStream;
- output?: NodeJS.WritableStream;
- terminal?: boolean;
- eval?: Function;
- useColors?: boolean;
- useGlobal?: boolean;
- ignoreUndefined?: boolean;
- writer?: Function;
- }
- export function start(options: ReplOptions): events.EventEmitter;
-}
-
-declare module "readline" {
- import events = require("events");
- import stream = require("stream");
-
- export interface ReadLine extends events.EventEmitter {
- setPrompt(prompt: string, length: number): void;
- prompt(preserveCursor?: boolean): void;
- question(query: string, callback: Function): void;
- pause(): void;
- resume(): void;
- close(): void;
- write(data: any, key?: any): void;
- }
- export interface ReadLineOptions {
- input: NodeJS.ReadableStream;
- output: NodeJS.WritableStream;
- completer?: Function;
- terminal?: boolean;
- }
- export function createInterface(options: ReadLineOptions): ReadLine;
-}
-
-declare module "vm" {
- export interface Context { }
- export interface Script {
- runInThisContext(): void;
- runInNewContext(sandbox?: Context): void;
- }
- export function runInThisContext(code: string, filename?: string): void;
- export function runInNewContext(code: string, sandbox?: Context, filename?: string): void;
- export function runInContext(code: string, context: Context, filename?: string): void;
- export function createContext(initSandbox?: Context): Context;
- export function createScript(code: string, filename?: string): Script;
-}
-
-declare module "child_process" {
- import events = require("events");
- import stream = require("stream");
-
- export interface ChildProcess extends events.EventEmitter {
- stdin: stream.Writable;
- stdout: stream.Readable;
- stderr: stream.Readable;
- pid: number;
- kill(signal?: string): void;
- send(message: any, sendHandle: any): void;
- disconnect(): void;
- }
-
- export function spawn(command: string, args?: string[], options?: {
- cwd?: string;
- stdio?: any;
- custom?: any;
- env?: any;
- detached?: boolean;
- }): ChildProcess;
- export function exec(command: string, options: {
- cwd?: string;
- stdio?: any;
- customFds?: any;
- env?: any;
- encoding?: string;
- timeout?: number;
- maxBuffer?: number;
- killSignal?: string;
- }, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
- export function exec(command: string, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
- export function execFile(file: string, args: string[], options: {
- cwd?: string;
- stdio?: any;
- customFds?: any;
- env?: any;
- encoding?: string;
- timeout?: number;
- maxBuffer?: string;
- killSignal?: string;
- }, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
- export function fork(modulePath: string, args?: string[], options?: {
- cwd?: string;
- env?: any;
- encoding?: string;
- }): ChildProcess;
-}
-
-declare module "url" {
- export interface Url {
- href: string;
- protocol: string;
- auth: string;
- hostname: string;
- port: string;
- host: string;
- pathname: string;
- search: string;
- query: string;
- slashes: boolean;
- hash?: string;
- path?: string;
- }
-
- export interface UrlOptions {
- protocol?: string;
- auth?: string;
- hostname?: string;
- port?: string;
- host?: string;
- pathname?: string;
- search?: string;
- query?: any;
- hash?: string;
- path?: string;
- }
-
- export function parse(urlStr: string, parseQueryString?: boolean , slashesDenoteHost?: boolean ): Url;
- export function format(url: UrlOptions): string;
- export function resolve(from: string, to: string): string;
-}
-
-declare module "dns" {
- export function lookup(domain: string, family: number, callback: (err: Error, address: string, family: number) =>void ): string;
- export function lookup(domain: string, callback: (err: Error, address: string, family: number) =>void ): string;
- export function resolve(domain: string, rrtype: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function resolve(domain: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function resolve4(domain: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function resolve6(domain: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function resolveMx(domain: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function resolveTxt(domain: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function resolveSrv(domain: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function resolveNs(domain: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function resolveCname(domain: string, callback: (err: Error, addresses: string[]) =>void ): string[];
- export function reverse(ip: string, callback: (err: Error, domains: string[]) =>void ): string[];
-}
-
-declare module "net" {
- import stream = require("stream");
-
- export interface Socket extends stream.Duplex {
- // Extended base methods
- write(buffer: Buffer): boolean;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- write(str: string, encoding?: string, fd?: string): boolean;
-
- connect(port: number, host?: string, connectionListener?: Function): void;
- connect(path: string, connectionListener?: Function): void;
- bufferSize: number;
- setEncoding(encoding?: string): void;
- write(data: any, encoding?: string, callback?: Function): void;
- destroy(): void;
- pause(): void;
- resume(): void;
- setTimeout(timeout: number, callback?: Function): void;
- setNoDelay(noDelay?: boolean): void;
- setKeepAlive(enable?: boolean, initialDelay?: number): void;
- address(): { port: number; family: string; address: string; };
- remoteAddress: string;
- remotePort: number;
- bytesRead: number;
- bytesWritten: number;
-
- // Extended base methods
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- end(data?: any, encoding?: string): void;
- }
-
- export var Socket: {
- new (options?: { fd?: string; type?: string; allowHalfOpen?: boolean; }): Socket;
- };
-
- export interface Server extends Socket {
- listen(port: number, host?: string, backlog?: number, listeningListener?: Function): Server;
- listen(path: string, listeningListener?: Function): Server;
- listen(handle: any, listeningListener?: Function): Server;
- close(callback?: Function): Server;
- address(): { port: number; family: string; address: string; };
- maxConnections: number;
- connections: number;
- }
- export function createServer(connectionListener?: (socket: Socket) =>void ): Server;
- export function createServer(options?: { allowHalfOpen?: boolean; }, connectionListener?: (socket: Socket) =>void ): Server;
- export function connect(options: { allowHalfOpen?: boolean; }, connectionListener?: Function): Socket;
- export function connect(port: number, host?: string, connectionListener?: Function): Socket;
- export function connect(path: string, connectionListener?: Function): Socket;
- export function createConnection(options: { allowHalfOpen?: boolean; }, connectionListener?: Function): Socket;
- export function createConnection(port: number, host?: string, connectionListener?: Function): Socket;
- export function createConnection(path: string, connectionListener?: Function): Socket;
- export function isIP(input: string): number;
- export function isIPv4(input: string): boolean;
- export function isIPv6(input: string): boolean;
-}
-
-declare module "dgram" {
- import events = require("events");
-
- export function createSocket(type: string, callback?: Function): Socket;
-
- interface Socket extends events.EventEmitter {
- send(buf: Buffer, offset: number, length: number, port: number, address: string, callback?: Function): void;
- bind(port: number, address?: string): void;
- close(): void;
- address: { address: string; family: string; port: number; };
- setBroadcast(flag: boolean): void;
- setMulticastTTL(ttl: number): void;
- setMulticastLoopback(flag: boolean): void;
- addMembership(multicastAddress: string, multicastInterface?: string): void;
- dropMembership(multicastAddress: string, multicastInterface?: string): void;
- }
-}
-
-declare module "fs" {
- import stream = require("stream");
- import events = require("events");
-
- interface Stats {
- isFile(): boolean;
- isDirectory(): boolean;
- isBlockDevice(): boolean;
- isCharacterDevice(): boolean;
- isSymbolicLink(): boolean;
- isFIFO(): boolean;
- isSocket(): boolean;
- dev: number;
- ino: number;
- mode: number;
- nlink: number;
- uid: number;
- gid: number;
- rdev: number;
- size: number;
- blksize: number;
- blocks: number;
- atime: Date;
- mtime: Date;
- ctime: Date;
- }
-
- interface FSWatcher extends events.EventEmitter {
- close(): void;
- }
-
- export interface ReadStream extends stream.Readable {}
- export interface WriteStream extends stream.Writable {}
-
- export function rename(oldPath: string, newPath: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function renameSync(oldPath: string, newPath: string): void;
- export function truncate(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function truncate(path: string, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function truncateSync(path: string, len?: number): void;
- export function ftruncate(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function ftruncate(fd: number, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function ftruncateSync(fd: number, len?: number): void;
- export function chown(path: string, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function chownSync(path: string, uid: number, gid: number): void;
- export function fchown(fd: number, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function fchownSync(fd: number, uid: number, gid: number): void;
- export function lchown(path: string, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function lchownSync(path: string, uid: number, gid: number): void;
- export function chmod(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function chmod(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function chmodSync(path: string, mode: number): void;
- export function chmodSync(path: string, mode: string): void;
- export function fchmod(fd: number, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function fchmod(fd: number, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function fchmodSync(fd: number, mode: number): void;
- export function fchmodSync(fd: number, mode: string): void;
- export function lchmod(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function lchmod(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function lchmodSync(path: string, mode: number): void;
- export function lchmodSync(path: string, mode: string): void;
- export function stat(path: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
- export function lstat(path: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
- export function fstat(fd: number, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
- export function statSync(path: string): Stats;
- export function lstatSync(path: string): Stats;
- export function fstatSync(fd: number): Stats;
- export function link(srcpath: string, dstpath: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function linkSync(srcpath: string, dstpath: string): void;
- export function symlink(srcpath: string, dstpath: string, type?: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function symlinkSync(srcpath: string, dstpath: string, type?: string): void;
- export function readlink(path: string, callback?: (err: NodeJS.ErrnoException, linkString: string) => any): void;
- export function readlinkSync(path: string): string;
- export function realpath(path: string, callback?: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void;
- export function realpath(path: string, cache: {[path: string]: string}, callback: (err: NodeJS.ErrnoException, resolvedPath: string) =>any): void;
- export function realpathSync(path: string, cache?: {[path: string]: string}): string;
- export function unlink(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function unlinkSync(path: string): void;
- export function rmdir(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function rmdirSync(path: string): void;
- export function mkdir(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function mkdir(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function mkdir(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function mkdirSync(path: string, mode?: number): void;
- export function mkdirSync(path: string, mode?: string): void;
- export function readdir(path: string, callback?: (err: NodeJS.ErrnoException, files: string[]) => void): void;
- export function readdirSync(path: string): string[];
- export function close(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function closeSync(fd: number): void;
- export function open(path: string, flags: string, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void;
- export function open(path: string, flags: string, mode: number, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void;
- export function open(path: string, flags: string, mode: string, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void;
- export function openSync(path: string, flags: string, mode?: number): number;
- export function openSync(path: string, flags: string, mode?: string): number;
- export function utimes(path: string, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function utimes(path: string, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function utimesSync(path: string, atime: number, mtime: number): void;
- export function utimesSync(path: string, atime: Date, mtime: Date): void;
- export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function futimes(fd: number, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function futimesSync(fd: number, atime: number, mtime: number): void;
- export function futimesSync(fd: number, atime: Date, mtime: Date): void;
- export function fsync(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function fsyncSync(fd: number): void;
- export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void;
- export function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number;
- export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, bytesRead: number, buffer: Buffer) => void): void;
- export function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number;
- export function readFile(filename: string, encoding: string, callback: (err: NodeJS.ErrnoException, data: string) => void): void;
- export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: string) => void): void;
- export function readFile(filename: string, options: { flag?: string; }, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;
- export function readFile(filename: string, callback: (err: NodeJS.ErrnoException, data: Buffer) => void ): void;
- export function readFileSync(filename: string, encoding: string): string;
- export function readFileSync(filename: string, options: { encoding: string; flag?: string; }): string;
- export function readFileSync(filename: string, options?: { flag?: string; }): Buffer;
- export function writeFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;
- export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;
- export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function appendFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;
- export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;
- export function watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void;
- export function watchFile(filename: string, options: { persistent?: boolean; interval?: number; }, listener: (curr: Stats, prev: Stats) => void): void;
- export function unwatchFile(filename: string, listener?: (curr: Stats, prev: Stats) => void): void;
- export function watch(filename: string, listener?: (event: string, filename: string) => any): FSWatcher;
- export function watch(filename: string, options: { persistent?: boolean; }, listener?: (event: string, filename: string) => any): FSWatcher;
- export function exists(path: string, callback?: (exists: boolean) => void): void;
- export function existsSync(path: string): boolean;
- export function createReadStream(path: string, options?: {
- flags?: string;
- encoding?: string;
- fd?: string;
- mode?: number;
- bufferSize?: number;
- }): ReadStream;
- export function createReadStream(path: string, options?: {
- flags?: string;
- encoding?: string;
- fd?: string;
- mode?: string;
- bufferSize?: number;
- }): ReadStream;
- export function createWriteStream(path: string, options?: {
- flags?: string;
- encoding?: string;
- string?: string;
- }): WriteStream;
-}
-
-declare module "path" {
- export function normalize(p: string): string;
- export function join(...paths: any[]): string;
- export function resolve(...pathSegments: any[]): string;
- export function relative(from: string, to: string): string;
- export function dirname(p: string): string;
- export function basename(p: string, ext?: string): string;
- export function extname(p: string): string;
- export var sep: string;
-}
-
-declare module "string_decoder" {
- export interface NodeStringDecoder {
- write(buffer: Buffer): string;
- detectIncompleteChar(buffer: Buffer): number;
- }
- export var StringDecoder: {
- new (encoding: string): NodeStringDecoder;
- };
-}
-
-declare module "tls" {
- import crypto = require("crypto");
- import net = require("net");
- import stream = require("stream");
-
- var CLIENT_RENEG_LIMIT: number;
- var CLIENT_RENEG_WINDOW: number;
-
- export interface TlsOptions {
- pfx?: any; //string or buffer
- key?: any; //string or buffer
- passphrase?: string;
- cert?: any;
- ca?: any; //string or buffer
- crl?: any; //string or string array
- ciphers?: string;
- honorCipherOrder?: any;
- requestCert?: boolean;
- rejectUnauthorized?: boolean;
- NPNProtocols?: any; //array or Buffer;
- SNICallback?: (servername: string) => any;
- }
-
- export interface ConnectionOptions {
- host?: string;
- port?: number;
- socket?: net.Socket;
- pfx?: any; //string | Buffer
- key?: any; //string | Buffer
- passphrase?: string;
- cert?: any; //string | Buffer
- ca?: any; //Array of string | Buffer
- rejectUnauthorized?: boolean;
- NPNProtocols?: any; //Array of string | Buffer
- servername?: string;
- }
-
- export interface Server extends net.Server {
- // Extended base methods
- listen(port: number, host?: string, backlog?: number, listeningListener?: Function): Server;
- listen(path: string, listeningListener?: Function): Server;
- listen(handle: any, listeningListener?: Function): Server;
-
- listen(port: number, host?: string, callback?: Function): Server;
- close(): Server;
- address(): { port: number; family: string; address: string; };
- addContext(hostName: string, credentials: {
- key: string;
- cert: string;
- ca: string;
- }): void;
- maxConnections: number;
- connections: number;
- }
-
- export interface ClearTextStream extends stream.Duplex {
- authorized: boolean;
- authorizationError: Error;
- getPeerCertificate(): any;
- getCipher: {
- name: string;
- version: string;
- };
- address: {
- port: number;
- family: string;
- address: string;
- };
- remoteAddress: string;
- remotePort: number;
- }
-
- export interface SecurePair {
- encrypted: any;
- cleartext: any;
- }
-
- export function createServer(options: TlsOptions, secureConnectionListener?: (cleartextStream: ClearTextStream) =>void ): Server;
- export function connect(options: TlsOptions, secureConnectionListener?: () =>void ): ClearTextStream;
- export function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () =>void ): ClearTextStream;
- export function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () =>void ): ClearTextStream;
- export function createSecurePair(credentials?: crypto.Credentials, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair;
-}
-
-declare module "crypto" {
- export interface CredentialDetails {
- pfx: string;
- key: string;
- passphrase: string;
- cert: string;
- ca: any; //string | string array
- crl: any; //string | string array
- ciphers: string;
- }
- export interface Credentials { context?: any; }
- export function createCredentials(details: CredentialDetails): Credentials;
- export function createHash(algorithm: string): Hash;
- export function createHmac(algorithm: string, key: string): Hmac;
- interface Hash {
- update(data: any, input_encoding?: string): Hash;
- digest(encoding?: string): string;
- }
- interface Hmac {
- update(data: any, input_encoding?: string): Hmac;
- digest(encoding?: string): string;
- }
- export function createCipher(algorithm: string, password: any): Cipher;
- export function createCipheriv(algorithm: string, key: any, iv: any): Cipher;
- interface Cipher {
- update(data: any, input_encoding?: string, output_encoding?: string): string;
- final(output_encoding?: string): string;
- setAutoPadding(auto_padding: boolean): void;
- createDecipher(algorithm: string, password: any): Decipher;
- createDecipheriv(algorithm: string, key: any, iv: any): Decipher;
- }
- interface Decipher {
- update(data: any, input_encoding?: string, output_encoding?: string): void;
- final(output_encoding?: string): string;
- setAutoPadding(auto_padding: boolean): void;
- }
- export function createSign(algorithm: string): Signer;
- interface Signer {
- update(data: any): void;
- sign(private_key: string, output_format: string): string;
- }
- export function createVerify(algorithm: string): Verify;
- interface Verify {
- update(data: any): void;
- verify(object: string, signature: string, signature_format?: string): boolean;
- }
- export function createDiffieHellman(prime_length: number): DiffieHellman;
- export function createDiffieHellman(prime: number, encoding?: string): DiffieHellman;
- interface DiffieHellman {
- generateKeys(encoding?: string): string;
- computeSecret(other_public_key: string, input_encoding?: string, output_encoding?: string): string;
- getPrime(encoding?: string): string;
- getGenerator(encoding: string): string;
- getPublicKey(encoding?: string): string;
- getPrivateKey(encoding?: string): string;
- setPublicKey(public_key: string, encoding?: string): void;
- setPrivateKey(public_key: string, encoding?: string): void;
- }
- export function getDiffieHellman(group_name: string): DiffieHellman;
- export function pbkdf2(password: string, salt: string, iterations: number, keylen: number, callback: (err: Error, derivedKey: string) => any): void;
- export function pbkdf2Sync(password: string, salt: string, iterations: number, keylen: number) : Buffer;
- export function randomBytes(size: number): Buffer;
- export function randomBytes(size: number, callback: (err: Error, buf: Buffer) =>void ): void;
- export function pseudoRandomBytes(size: number): Buffer;
- export function pseudoRandomBytes(size: number, callback: (err: Error, buf: Buffer) =>void ): void;
-}
-
-declare module "stream" {
- import events = require("events");
-
- export interface ReadableOptions {
- highWaterMark?: number;
- encoding?: string;
- objectMode?: boolean;
- }
-
- export class Readable extends events.EventEmitter implements NodeJS.ReadableStream {
- readable: boolean;
- constructor(opts?: ReadableOptions);
- _read(size: number): void;
- read(size?: number): any;
- setEncoding(encoding: string): void;
- pause(): void;
- resume(): void;
- pipe(destination: T, options?: { end?: boolean; }): T;
- unpipe(destination?: T): void;
- unshift(chunk: string): void;
- unshift(chunk: Buffer): void;
- wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream;
- push(chunk: any, encoding?: string): boolean;
- }
-
- export interface WritableOptions {
- highWaterMark?: number;
- decodeStrings?: boolean;
- }
-
- export class Writable extends events.EventEmitter implements NodeJS.WritableStream {
- writable: boolean;
- constructor(opts?: WritableOptions);
- _write(data: Buffer, encoding: string, callback: Function): void;
- _write(data: string, encoding: string, callback: Function): void;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- }
-
- export interface DuplexOptions extends ReadableOptions, WritableOptions {
- allowHalfOpen?: boolean;
- }
-
- // Note: Duplex extends both Readable and Writable.
- export class Duplex extends Readable implements NodeJS.ReadWriteStream {
- writable: boolean;
- constructor(opts?: DuplexOptions);
- _write(data: Buffer, encoding: string, callback: Function): void;
- _write(data: string, encoding: string, callback: Function): void;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- }
-
- export interface TransformOptions extends ReadableOptions, WritableOptions {}
-
- // Note: Transform lacks the _read and _write methods of Readable/Writable.
- export class Transform extends events.EventEmitter implements NodeJS.ReadWriteStream {
- readable: boolean;
- writable: boolean;
- constructor(opts?: TransformOptions);
- _transform(chunk: Buffer, encoding: string, callback: Function): void;
- _transform(chunk: string, encoding: string, callback: Function): void;
- _flush(callback: Function): void;
- read(size?: number): any;
- setEncoding(encoding: string): void;
- pause(): void;
- resume(): void;
- pipe(destination: T, options?: { end?: boolean; }): T;
- unpipe(destination?: T): void;
- unshift(chunk: string): void;
- unshift(chunk: Buffer): void;
- wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream;
- push(chunk: any, encoding?: string): boolean;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- }
-
- export class PassThrough extends Transform {}
-}
-
-declare module "util" {
- export interface InspectOptions {
- showHidden?: boolean;
- depth?: number;
- colors?: boolean;
- customInspect?: boolean;
- }
-
- export function format(format: any, ...param: any[]): string;
- export function debug(string: string): void;
- export function error(...param: any[]): void;
- export function puts(...param: any[]): void;
- export function print(...param: any[]): void;
- export function log(string: string): void;
- export function inspect(object: any, showHidden?: boolean, depth?: number, color?: boolean): string;
- export function inspect(object: any, options: InspectOptions): string;
- export function isArray(object: any): boolean;
- export function isRegExp(object: any): boolean;
- export function isDate(object: any): boolean;
- export function isError(object: any): boolean;
- export function inherits(constructor: any, superConstructor: any): void;
-}
-
-declare module "assert" {
- function internal (value: any, message?: string): void;
- module internal {
- export class AssertionError implements Error {
- name: string;
- message: string;
- actual: any;
- expected: any;
- operator: string;
- generatedMessage: boolean;
-
- constructor(options?: {message?: string; actual?: any; expected?: any;
- operator?: string; stackStartFunction?: Function});
- }
-
- export function fail(actual?: any, expected?: any, message?: string, operator?: string): void;
- export function ok(value: any, message?: string): void;
- export function equal(actual: any, expected: any, message?: string): void;
- export function notEqual(actual: any, expected: any, message?: string): void;
- export function deepEqual(actual: any, expected: any, message?: string): void;
- export function notDeepEqual(actual: any, expected: any, message?: string): void;
- export function strictEqual(actual: any, expected: any, message?: string): void;
- export function notStrictEqual(actual: any, expected: any, message?: string): void;
- export var throws: {
- (block: Function, message?: string): void;
- (block: Function, error: Function, message?: string): void;
- (block: Function, error: RegExp, message?: string): void;
- (block: Function, error: (err: any) => boolean, message?: string): void;
- };
-
- export var doesNotThrow: {
- (block: Function, message?: string): void;
- (block: Function, error: Function, message?: string): void;
- (block: Function, error: RegExp, message?: string): void;
- (block: Function, error: (err: any) => boolean, message?: string): void;
- };
-
- export function ifError(value: any): void;
- }
-
- export = internal;
-}
-
-declare module "tty" {
- import net = require("net");
-
- export function isatty(fd: number): boolean;
- export interface ReadStream extends net.Socket {
- isRaw: boolean;
- setRawMode(mode: boolean): void;
- }
- export interface WriteStream extends net.Socket {
- columns: number;
- rows: number;
- }
-}
-
-declare module "domain" {
- import events = require("events");
-
- export class Domain extends events.EventEmitter {
- run(fn: Function): void;
- add(emitter: events.EventEmitter): void;
- remove(emitter: events.EventEmitter): void;
- bind(cb: (err: Error, data: any) => any): any;
- intercept(cb: (data: any) => any): any;
- dispose(): void;
-
- addListener(event: string, listener: Function): Domain;
- on(event: string, listener: Function): Domain;
- once(event: string, listener: Function): Domain;
- removeListener(event: string, listener: Function): Domain;
- removeAllListeners(event?: string): Domain;
- }
-
- export function create(): Domain;
-}
\ No newline at end of file
diff --git a/src/harness/harness.ts b/src/harness/harness.ts
index 985d00bcf63c6..6afb0cfccdb14 100644
--- a/src/harness/harness.ts
+++ b/src/harness/harness.ts
@@ -18,12 +18,13 @@
///
///
///
-///
-///
-///
///
///
///
+///
+///
+///
+
// Block scoped definitions work poorly for global variables, temporarily enable var
/* tslint:disable:no-var-keyword */
@@ -32,7 +33,13 @@
var _chai: typeof chai = require("chai");
var assert: typeof _chai.assert = _chai.assert;
declare var __dirname: string; // Node-specific
-var global = Function("return this").call(undefined);
+var global: NodeJS.Global = Function("return this").call(undefined);
+declare namespace NodeJS {
+ export interface Global {
+ WScript: typeof WScript;
+ ActiveXObject: typeof ActiveXObject;
+ }
+}
/* tslint:enable:no-var-keyword */
namespace Utils {
@@ -57,7 +64,7 @@ namespace Utils {
export let currentExecutionEnvironment = getExecutionEnvironment();
- const Buffer: BufferConstructor = currentExecutionEnvironment !== ExecutionEnvironment.Browser
+ const Buffer: typeof global.Buffer = currentExecutionEnvironment !== ExecutionEnvironment.Browser
? require("buffer").Buffer
: undefined;
diff --git a/src/harness/tsconfig.json b/src/harness/tsconfig.json
new file mode 100644
index 0000000000000..5853bee327419
--- /dev/null
+++ b/src/harness/tsconfig.json
@@ -0,0 +1,93 @@
+{
+ "compilerOptions": {
+ "noImplicitAny": true,
+ "pretty": true,
+ "removeComments": false,
+ "preserveConstEnums": true,
+ "outFile": "../../built/local/run.js",
+ "sourceMap": true,
+ "declaration": false,
+ "stripInternal": true,
+ "types": [
+ "node", "mocha", "chai"
+ ]
+ },
+ "files": [
+ "../compiler/core.ts",
+ "../compiler/sys.ts",
+ "../compiler/types.ts",
+ "../compiler/scanner.ts",
+ "../compiler/parser.ts",
+ "../compiler/utilities.ts",
+ "../compiler/binder.ts",
+ "../compiler/checker.ts",
+ "../compiler/sourcemap.ts",
+ "../compiler/declarationEmitter.ts",
+ "../compiler/emitter.ts",
+ "../compiler/program.ts",
+ "../compiler/commandLineParser.ts",
+ "../compiler/diagnosticInformationMap.generated.ts",
+ "../services/breakpoints.ts",
+ "../services/navigateTo.ts",
+ "../services/navigationBar.ts",
+ "../services/outliningElementsCollector.ts",
+ "../services/patternMatcher.ts",
+ "../services/services.ts",
+ "../services/shims.ts",
+ "../services/signatureHelp.ts",
+ "../services/utilities.ts",
+ "../services/jsTyping.ts",
+ "../services/formatting/formatting.ts",
+ "../services/formatting/formattingContext.ts",
+ "../services/formatting/formattingRequestKind.ts",
+ "../services/formatting/formattingScanner.ts",
+ "../services/formatting/references.ts",
+ "../services/formatting/rule.ts",
+ "../services/formatting/ruleAction.ts",
+ "../services/formatting/ruleDescriptor.ts",
+ "../services/formatting/ruleFlag.ts",
+ "../services/formatting/ruleOperation.ts",
+ "../services/formatting/ruleOperationContext.ts",
+ "../services/formatting/rules.ts",
+ "../services/formatting/rulesMap.ts",
+ "../services/formatting/rulesProvider.ts",
+ "../services/formatting/smartIndenter.ts",
+ "../services/formatting/tokenRange.ts",
+ "harness.ts",
+ "sourceMapRecorder.ts",
+ "harnessLanguageService.ts",
+ "fourslash.ts",
+ "runnerbase.ts",
+ "compilerRunner.ts",
+ "typeWriter.ts",
+ "fourslashRunner.ts",
+ "projectsRunner.ts",
+ "loggedIO.ts",
+ "rwcRunner.ts",
+ "test262Runner.ts",
+ "runner.ts",
+ "../server/protocol.d.ts",
+ "../server/session.ts",
+ "../server/client.ts",
+ "../server/editorServices.ts",
+ "./unittests/incrementalParser.ts",
+ "./unittests/jsDocParsing.ts",
+ "./unittests/services/colorization.ts",
+ "./unittests/services/documentRegistry.ts",
+ "./unittests/services/preProcessFile.ts",
+ "./unittests/services/patternMatcher.ts",
+ "./unittests/session.ts",
+ "./unittests/versionCache.ts",
+ "./unittests/convertToBase64.ts",
+ "./unittests/transpile.ts",
+ "./unittests/reuseProgramStructure.ts",
+ "./unittests/cachingInServerLSHost.ts",
+ "./unittests/moduleResolution.ts",
+ "./unittests/tsconfigParsing.ts",
+ "./unittests/commandLineParsing.ts",
+ "./unittests/convertCompilerOptionsFromJson.ts",
+ "./unittests/convertTypingOptionsFromJson.ts",
+ "./unittests/tsserverProjectSystem.ts",
+ "./unittests/matchFiles.ts"
+ ]
+}
diff --git a/tests/cases/unittests/cachingInServerLSHost.ts b/src/harness/unittests/cachingInServerLSHost.ts
similarity index 97%
rename from tests/cases/unittests/cachingInServerLSHost.ts
rename to src/harness/unittests/cachingInServerLSHost.ts
index 9cd5e071b738c..e0ce09391fb86 100644
--- a/tests/cases/unittests/cachingInServerLSHost.ts
+++ b/src/harness/unittests/cachingInServerLSHost.ts
@@ -1,4 +1,4 @@
-///
+///
namespace ts {
interface File {
diff --git a/tests/cases/unittests/commandLineParsing.ts b/src/harness/unittests/commandLineParsing.ts
similarity index 97%
rename from tests/cases/unittests/commandLineParsing.ts
rename to src/harness/unittests/commandLineParsing.ts
index 095f912ac1c95..afd0ff6f0ea93 100644
--- a/tests/cases/unittests/commandLineParsing.ts
+++ b/src/harness/unittests/commandLineParsing.ts
@@ -1,5 +1,5 @@
-///
-///
+///
+///
namespace ts {
describe("parseCommandLine", () => {
diff --git a/tests/cases/unittests/convertCompilerOptionsFromJson.ts b/src/harness/unittests/convertCompilerOptionsFromJson.ts
similarity index 97%
rename from tests/cases/unittests/convertCompilerOptionsFromJson.ts
rename to src/harness/unittests/convertCompilerOptionsFromJson.ts
index b2d6c7d8fb690..d308bb2a6e6df 100644
--- a/tests/cases/unittests/convertCompilerOptionsFromJson.ts
+++ b/src/harness/unittests/convertCompilerOptionsFromJson.ts
@@ -1,5 +1,5 @@
-///
-///
+///
+///
namespace ts {
describe("convertCompilerOptionsFromJson", () => {
diff --git a/tests/cases/unittests/convertToBase64.ts b/src/harness/unittests/convertToBase64.ts
similarity index 93%
rename from tests/cases/unittests/convertToBase64.ts
rename to src/harness/unittests/convertToBase64.ts
index 40fd98dd33206..09e38bdf674b1 100644
--- a/tests/cases/unittests/convertToBase64.ts
+++ b/src/harness/unittests/convertToBase64.ts
@@ -1,4 +1,4 @@
-///
+///
namespace ts {
describe("convertToBase64", () => {
diff --git a/tests/cases/unittests/convertTypingOptionsFromJson.ts b/src/harness/unittests/convertTypingOptionsFromJson.ts
similarity index 95%
rename from tests/cases/unittests/convertTypingOptionsFromJson.ts
rename to src/harness/unittests/convertTypingOptionsFromJson.ts
index 6462794b127f4..439409b24b707 100644
--- a/tests/cases/unittests/convertTypingOptionsFromJson.ts
+++ b/src/harness/unittests/convertTypingOptionsFromJson.ts
@@ -1,5 +1,5 @@
-///
-///
+///
+///
namespace ts {
describe("convertTypingOptionsFromJson", () => {
diff --git a/tests/cases/unittests/incrementalParser.ts b/src/harness/unittests/incrementalParser.ts
similarity index 97%
rename from tests/cases/unittests/incrementalParser.ts
rename to src/harness/unittests/incrementalParser.ts
index 741c9e54cada7..0082207e6994f 100644
--- a/tests/cases/unittests/incrementalParser.ts
+++ b/src/harness/unittests/incrementalParser.ts
@@ -1,5 +1,5 @@
-///
-///
+///
+///
namespace ts {
ts.disableIncrementalParsing = false;
diff --git a/tests/cases/unittests/jsDocParsing.ts b/src/harness/unittests/jsDocParsing.ts
similarity index 95%
rename from tests/cases/unittests/jsDocParsing.ts
rename to src/harness/unittests/jsDocParsing.ts
index e6cf4ffff4f38..d1ca42f38612e 100644
--- a/tests/cases/unittests/jsDocParsing.ts
+++ b/src/harness/unittests/jsDocParsing.ts
@@ -1,7 +1,5 @@
-///
-///
-///
-///
+///
+///
namespace ts {
describe("JSDocParsing", () => {
diff --git a/tests/cases/unittests/matchFiles.ts b/src/harness/unittests/matchFiles.ts
similarity index 97%
rename from tests/cases/unittests/matchFiles.ts
rename to src/harness/unittests/matchFiles.ts
index d68fb9b2a7f24..ae856f40c1764 100644
--- a/tests/cases/unittests/matchFiles.ts
+++ b/src/harness/unittests/matchFiles.ts
@@ -1,6 +1,5 @@
-///
-///
-///
+///
+///
namespace ts {
const caseInsensitiveBasePath = "c:/dev/";
diff --git a/tests/cases/unittests/moduleResolution.ts b/src/harness/unittests/moduleResolution.ts
similarity index 97%
rename from tests/cases/unittests/moduleResolution.ts
rename to src/harness/unittests/moduleResolution.ts
index 70cb4715c48fe..b3f2102d903de 100644
--- a/tests/cases/unittests/moduleResolution.ts
+++ b/src/harness/unittests/moduleResolution.ts
@@ -1,11 +1,4 @@
-///
-///
-
-declare namespace chai.assert {
- /* tslint:disable no-unused-variable */
- function deepEqual(actual: any, expected: any): void;
- /* tslint:enable no-unused-variable */
-}
+///
namespace ts {
function diagnosticToString(diagnostic: Diagnostic) {
diff --git a/tests/cases/unittests/reuseProgramStructure.ts b/src/harness/unittests/reuseProgramStructure.ts
similarity index 96%
rename from tests/cases/unittests/reuseProgramStructure.ts
rename to src/harness/unittests/reuseProgramStructure.ts
index b8a36baf824ad..8b2b15c15b30d 100644
--- a/tests/cases/unittests/reuseProgramStructure.ts
+++ b/src/harness/unittests/reuseProgramStructure.ts
@@ -1,6 +1,5 @@
-///
-///
-///
+///
+///
namespace ts {
diff --git a/tests/cases/unittests/services/colorization.ts b/src/harness/unittests/services/colorization.ts
similarity index 97%
rename from tests/cases/unittests/services/colorization.ts
rename to src/harness/unittests/services/colorization.ts
index ab927ebe23af3..0fe63f4ff07d1 100644
--- a/tests/cases/unittests/services/colorization.ts
+++ b/src/harness/unittests/services/colorization.ts
@@ -1,5 +1,4 @@
-///
-///
+///
interface ClassificationEntry {
value: any;
diff --git a/tests/cases/unittests/services/documentRegistry.ts b/src/harness/unittests/services/documentRegistry.ts
similarity index 96%
rename from tests/cases/unittests/services/documentRegistry.ts
rename to src/harness/unittests/services/documentRegistry.ts
index 942408c535fd3..09e95db6c76bd 100644
--- a/tests/cases/unittests/services/documentRegistry.ts
+++ b/src/harness/unittests/services/documentRegistry.ts
@@ -1,4 +1,4 @@
-///
+///
describe("DocumentRegistry", () => {
it("documents are shared between projects", () => {
diff --git a/tests/cases/unittests/services/formatting/documentFormattingTests.json b/src/harness/unittests/services/formatting/documentFormattingTests.json
similarity index 100%
rename from tests/cases/unittests/services/formatting/documentFormattingTests.json
rename to src/harness/unittests/services/formatting/documentFormattingTests.json
diff --git a/tests/cases/unittests/services/formatting/formatDiffTemplate.html b/src/harness/unittests/services/formatting/formatDiffTemplate.html
similarity index 100%
rename from tests/cases/unittests/services/formatting/formatDiffTemplate.html
rename to src/harness/unittests/services/formatting/formatDiffTemplate.html
diff --git a/tests/cases/unittests/services/formatting/getFormattingEditsForRange.ts b/src/harness/unittests/services/formatting/getFormattingEditsForRange.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/getFormattingEditsForRange.ts
rename to src/harness/unittests/services/formatting/getFormattingEditsForRange.ts
diff --git a/tests/cases/unittests/services/formatting/getSmartIndentAtLineNumber.ts b/src/harness/unittests/services/formatting/getSmartIndentAtLineNumber.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/getSmartIndentAtLineNumber.ts
rename to src/harness/unittests/services/formatting/getSmartIndentAtLineNumber.ts
diff --git a/tests/cases/unittests/services/formatting/importedJavaScriptFormatting.ts b/src/harness/unittests/services/formatting/importedJavaScriptFormatting.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/importedJavaScriptFormatting.ts
rename to src/harness/unittests/services/formatting/importedJavaScriptFormatting.ts
diff --git a/tests/cases/unittests/services/formatting/ruleFormattingTests.json b/src/harness/unittests/services/formatting/ruleFormattingTests.json
similarity index 100%
rename from tests/cases/unittests/services/formatting/ruleFormattingTests.json
rename to src/harness/unittests/services/formatting/ruleFormattingTests.json
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/classes.ts b/src/harness/unittests/services/formatting/testCode/formatting/classes.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/classes.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/classes.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/classesBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/classesBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/classesBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/classesBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/colonAndQMark.ts b/src/harness/unittests/services/formatting/testCode/formatting/colonAndQMark.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/colonAndQMark.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/colonAndQMark.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/colonAndQMarkBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/colonAndQMarkBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/colonAndQMarkBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/colonAndQMarkBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/documentReadyFunction.ts b/src/harness/unittests/services/formatting/testCode/formatting/documentReadyFunction.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/documentReadyFunction.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/documentReadyFunction.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/documentReadyFunctionBaseLine.ts b/src/harness/unittests/services/formatting/testCode/formatting/documentReadyFunctionBaseLine.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/documentReadyFunctionBaseLine.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/documentReadyFunctionBaseLine.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/emptyBlock.ts b/src/harness/unittests/services/formatting/testCode/formatting/emptyBlock.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/emptyBlock.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/emptyBlock.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/emptyBlockBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/emptyBlockBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/emptyBlockBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/emptyBlockBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/emptyInterfaceLiteral.ts b/src/harness/unittests/services/formatting/testCode/formatting/emptyInterfaceLiteral.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/emptyInterfaceLiteral.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/emptyInterfaceLiteral.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/emptyInterfaceLiteralBaseLine.ts b/src/harness/unittests/services/formatting/testCode/formatting/emptyInterfaceLiteralBaseLine.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/emptyInterfaceLiteralBaseLine.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/emptyInterfaceLiteralBaseLine.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/fatArrowFunctions.ts b/src/harness/unittests/services/formatting/testCode/formatting/fatArrowFunctions.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/fatArrowFunctions.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/fatArrowFunctions.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/fatArrowFunctionsBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/fatArrowFunctionsBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/fatArrowFunctionsBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/fatArrowFunctionsBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/formatDebuggerStatement.ts b/src/harness/unittests/services/formatting/testCode/formatting/formatDebuggerStatement.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/formatDebuggerStatement.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/formatDebuggerStatement.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/formatDebuggerStatementBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/formatDebuggerStatementBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/formatDebuggerStatementBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/formatDebuggerStatementBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/formatvariableDeclarationList.ts b/src/harness/unittests/services/formatting/testCode/formatting/formatvariableDeclarationList.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/formatvariableDeclarationList.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/formatvariableDeclarationList.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/formatvariableDeclarationListBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/formatvariableDeclarationListBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/formatvariableDeclarationListBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/formatvariableDeclarationListBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/implicitModule.ts b/src/harness/unittests/services/formatting/testCode/formatting/implicitModule.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/implicitModule.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/implicitModule.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/implicitModuleBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/implicitModuleBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/implicitModuleBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/implicitModuleBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/importDeclaration.ts b/src/harness/unittests/services/formatting/testCode/formatting/importDeclaration.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/importDeclaration.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/importDeclaration.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/importDeclarationBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/importDeclarationBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/importDeclarationBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/importDeclarationBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/main.ts b/src/harness/unittests/services/formatting/testCode/formatting/main.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/main.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/main.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/mainBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/mainBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/mainBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/mainBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/moduleIndentation.ts b/src/harness/unittests/services/formatting/testCode/formatting/moduleIndentation.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/moduleIndentation.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/moduleIndentation.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/moduleIndentationBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/moduleIndentationBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/moduleIndentationBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/moduleIndentationBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/modules.ts b/src/harness/unittests/services/formatting/testCode/formatting/modules.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/modules.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/modules.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/modulesBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/modulesBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/modulesBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/modulesBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/objectLiteral.ts b/src/harness/unittests/services/formatting/testCode/formatting/objectLiteral.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/objectLiteral.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/objectLiteral.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/objectLiteralBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/objectLiteralBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/objectLiteralBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/objectLiteralBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/onClosingBracket.ts b/src/harness/unittests/services/formatting/testCode/formatting/onClosingBracket.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/onClosingBracket.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/onClosingBracket.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/onClosingBracketBaseLine.ts b/src/harness/unittests/services/formatting/testCode/formatting/onClosingBracketBaseLine.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/onClosingBracketBaseLine.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/onClosingBracketBaseLine.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/onSemiColon.ts b/src/harness/unittests/services/formatting/testCode/formatting/onSemiColon.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/onSemiColon.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/onSemiColon.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/onSemiColonBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/onSemiColonBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/onSemiColonBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/onSemiColonBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/spaceAfterConstructor.ts b/src/harness/unittests/services/formatting/testCode/formatting/spaceAfterConstructor.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/spaceAfterConstructor.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/spaceAfterConstructor.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/spaceAfterConstructorBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/spaceAfterConstructorBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/spaceAfterConstructorBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/spaceAfterConstructorBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/tabAfterCloseCurly.ts b/src/harness/unittests/services/formatting/testCode/formatting/tabAfterCloseCurly.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/tabAfterCloseCurly.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/tabAfterCloseCurly.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/tabAfterCloseCurlyBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/tabAfterCloseCurlyBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/tabAfterCloseCurlyBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/tabAfterCloseCurlyBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/typescriptConstructs.ts b/src/harness/unittests/services/formatting/testCode/formatting/typescriptConstructs.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/typescriptConstructs.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/typescriptConstructs.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/typescriptConstructsBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/typescriptConstructsBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/typescriptConstructsBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/typescriptConstructsBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/various.ts b/src/harness/unittests/services/formatting/testCode/formatting/various.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/various.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/various.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/variousBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/variousBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/variousBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/variousBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/withStatement.ts b/src/harness/unittests/services/formatting/testCode/formatting/withStatement.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/withStatement.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/withStatement.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/formatting/withStatementBaseline.ts b/src/harness/unittests/services/formatting/testCode/formatting/withStatementBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/formatting/withStatementBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/formatting/withStatementBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/classes.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/classes.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/classes.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/classes.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/classesBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/classesBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/classesBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/classesBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/colonAndQMark.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/colonAndQMark.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/colonAndQMark.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/colonAndQMark.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/colonAndQMarkBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/colonAndQMarkBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/colonAndQMarkBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/colonAndQMarkBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/documentReadyFunction.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/documentReadyFunction.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/documentReadyFunction.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/documentReadyFunction.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/documentReadyFunctionBaseLine.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/documentReadyFunctionBaseLine.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/documentReadyFunctionBaseLine.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/documentReadyFunctionBaseLine.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/emptyBlock.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/emptyBlock.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/emptyBlock.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/emptyBlock.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/emptyBlockBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/emptyBlockBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/emptyBlockBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/emptyBlockBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/emptyInterfaceLiteral.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/emptyInterfaceLiteral.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/emptyInterfaceLiteral.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/emptyInterfaceLiteral.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/emptyInterfaceLiteralBaseLine.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/emptyInterfaceLiteralBaseLine.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/emptyInterfaceLiteralBaseLine.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/emptyInterfaceLiteralBaseLine.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/fatArrowFunctions.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/fatArrowFunctions.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/fatArrowFunctions.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/fatArrowFunctions.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/fatArrowFunctionsBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/fatArrowFunctionsBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/fatArrowFunctionsBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/fatArrowFunctionsBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/formatDebuggerStatement.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/formatDebuggerStatement.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/formatDebuggerStatement.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/formatDebuggerStatement.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/formatDebuggerStatementBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/formatDebuggerStatementBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/formatDebuggerStatementBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/formatDebuggerStatementBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/formatvariableDeclarationList.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/formatvariableDeclarationList.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/formatvariableDeclarationList.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/formatvariableDeclarationList.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/formatvariableDeclarationListBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/formatvariableDeclarationListBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/formatvariableDeclarationListBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/formatvariableDeclarationListBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/implicitModule.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/implicitModule.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/implicitModule.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/implicitModule.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/implicitModuleBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/implicitModuleBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/implicitModuleBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/implicitModuleBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/importDeclaration.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/importDeclaration.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/importDeclaration.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/importDeclaration.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/importDeclarationBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/importDeclarationBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/importDeclarationBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/importDeclarationBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/main.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/main.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/main.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/main.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/mainBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/mainBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/mainBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/mainBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/moduleIndentation.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/moduleIndentation.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/moduleIndentation.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/moduleIndentation.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/moduleIndentationBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/moduleIndentationBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/moduleIndentationBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/moduleIndentationBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/modules.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/modules.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/modules.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/modules.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/modulesBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/modulesBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/modulesBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/modulesBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/objectLiteral.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/objectLiteral.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/objectLiteral.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/objectLiteral.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/objectLiteralBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/objectLiteralBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/objectLiteralBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/objectLiteralBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/onClosingBracket.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/onClosingBracket.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/onClosingBracket.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/onClosingBracket.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/onClosingBracketBaseLine.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/onClosingBracketBaseLine.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/onClosingBracketBaseLine.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/onClosingBracketBaseLine.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/onSemiColon.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/onSemiColon.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/onSemiColon.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/onSemiColon.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/onSemiColonBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/onSemiColonBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/onSemiColonBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/onSemiColonBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/spaceAfterConstructor.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/spaceAfterConstructor.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/spaceAfterConstructor.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/spaceAfterConstructor.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/spaceAfterConstructorBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/spaceAfterConstructorBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/spaceAfterConstructorBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/spaceAfterConstructorBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/tabAfterCloseCurly.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/tabAfterCloseCurly.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/tabAfterCloseCurly.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/tabAfterCloseCurly.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/tabAfterCloseCurlyBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/tabAfterCloseCurlyBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/tabAfterCloseCurlyBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/tabAfterCloseCurlyBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/typescriptConstructs.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/typescriptConstructs.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/typescriptConstructs.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/typescriptConstructs.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/typescriptConstructsBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/typescriptConstructsBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/typescriptConstructsBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/typescriptConstructsBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/various.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/various.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/various.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/various.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/variousBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/variousBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/variousBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/variousBaseline.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/withStatement.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/withStatement.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/withStatement.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/withStatement.ts
diff --git a/tests/cases/unittests/services/formatting/testCode/testCode/formatting/withStatementBaseline.ts b/src/harness/unittests/services/formatting/testCode/testCode/formatting/withStatementBaseline.ts
similarity index 100%
rename from tests/cases/unittests/services/formatting/testCode/testCode/formatting/withStatementBaseline.ts
rename to src/harness/unittests/services/formatting/testCode/testCode/formatting/withStatementBaseline.ts
diff --git a/tests/cases/unittests/services/patternMatcher.ts b/src/harness/unittests/services/patternMatcher.ts
similarity index 96%
rename from tests/cases/unittests/services/patternMatcher.ts
rename to src/harness/unittests/services/patternMatcher.ts
index 5fbe0ea158843..8a70b38ab5e9e 100644
--- a/tests/cases/unittests/services/patternMatcher.ts
+++ b/src/harness/unittests/services/patternMatcher.ts
@@ -1,5 +1,4 @@
-///
-///
+///
describe("PatternMatcher", function () {
describe("BreakIntoCharacterSpans", function () {
diff --git a/tests/cases/unittests/services/preProcessFile.ts b/src/harness/unittests/services/preProcessFile.ts
similarity index 96%
rename from tests/cases/unittests/services/preProcessFile.ts
rename to src/harness/unittests/services/preProcessFile.ts
index 22a911b160149..403cccc8cf30b 100644
--- a/tests/cases/unittests/services/preProcessFile.ts
+++ b/src/harness/unittests/services/preProcessFile.ts
@@ -1,11 +1,4 @@
-///
-///
-
-declare namespace chai.assert {
- /* tslint:disable no-unused-variable */
- function deepEqual(actual: any, expected: any): void;
- /* tslint:enable no-unused-variable */
-}
+///
describe("PreProcessFile:", function () {
function test(sourceText: string, readImportFile: boolean, detectJavaScriptImports: boolean, expectedPreProcess: ts.PreProcessedFileInfo): void {
diff --git a/tests/cases/unittests/session.ts b/src/harness/unittests/session.ts
similarity index 96%
rename from tests/cases/unittests/session.ts
rename to src/harness/unittests/session.ts
index b9073365d9118..c528554432914 100644
--- a/tests/cases/unittests/session.ts
+++ b/src/harness/unittests/session.ts
@@ -1,4 +1,4 @@
-///
+///
const expect: typeof _chai.expect = _chai.expect;
diff --git a/tests/cases/unittests/transpile.ts b/src/harness/unittests/transpile.ts
similarity index 97%
rename from tests/cases/unittests/transpile.ts
rename to src/harness/unittests/transpile.ts
index 1766e3280d4a2..547d10b9fbc02 100644
--- a/tests/cases/unittests/transpile.ts
+++ b/src/harness/unittests/transpile.ts
@@ -1,4 +1,4 @@
-///
+///
namespace ts {
describe("Transpile", () => {
diff --git a/tests/cases/unittests/tsconfigParsing.ts b/src/harness/unittests/tsconfigParsing.ts
similarity index 98%
rename from tests/cases/unittests/tsconfigParsing.ts
rename to src/harness/unittests/tsconfigParsing.ts
index 17ccf6bff891c..736d567a33a75 100644
--- a/tests/cases/unittests/tsconfigParsing.ts
+++ b/src/harness/unittests/tsconfigParsing.ts
@@ -1,5 +1,5 @@
-///
-///
+///
+///
namespace ts {
describe("parseConfigFileTextToJson", () => {
diff --git a/tests/cases/unittests/tsserverProjectSystem.ts b/src/harness/unittests/tsserverProjectSystem.ts
similarity index 97%
rename from tests/cases/unittests/tsserverProjectSystem.ts
rename to src/harness/unittests/tsserverProjectSystem.ts
index 308aa82f85ff3..7a375c50b8a36 100644
--- a/tests/cases/unittests/tsserverProjectSystem.ts
+++ b/src/harness/unittests/tsserverProjectSystem.ts
@@ -1,4 +1,4 @@
-///
+///
namespace ts {
function notImplemented(): any {
diff --git a/tests/cases/unittests/versionCache.ts b/src/harness/unittests/versionCache.ts
similarity index 96%
rename from tests/cases/unittests/versionCache.ts
rename to src/harness/unittests/versionCache.ts
index 63a2924dbc3a9..7fb01ee770abb 100644
--- a/tests/cases/unittests/versionCache.ts
+++ b/src/harness/unittests/versionCache.ts
@@ -1,5 +1,5 @@
-///
-///
+///
+///
namespace ts {
function editFlat(position: number, deletedLength: number, newText: string, source: string) {
diff --git a/src/server/node.d.ts b/src/server/node.d.ts
deleted file mode 100644
index 0bde0bb6602cc..0000000000000
--- a/src/server/node.d.ts
+++ /dev/null
@@ -1,682 +0,0 @@
-// Type definitions for Node.js v0.10.1
-// Project: http://nodejs.org/
-// Definitions by: Microsoft TypeScript , DefinitelyTyped
-// Definitions: https://github.com/borisyankov/DefinitelyTyped
-
-/************************************************
-* *
-* Node.js v0.10.1 API *
-* *
-************************************************/
-
-/************************************************
-* *
-* GLOBAL *
-* *
-************************************************/
-declare var process: NodeJS.Process;
-declare var global: any;
-
-declare var __filename: string;
-declare var __dirname: string;
-
-declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
-declare function clearTimeout(timeoutId: NodeJS.Timer): void;
-declare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
-declare function clearInterval(intervalId: NodeJS.Timer): void;
-declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;
-declare function clearImmediate(immediateId: any): void;
-
-declare var require: {
- (id: string): any;
- resolve(id: string): string;
- cache: any;
- extensions: any;
- main: any;
-};
-
-declare var module: {
- exports: any;
- require(id: string): any;
- id: string;
- filename: string;
- loaded: boolean;
- parent: any;
- children: any[];
-};
-
-// Same as module.exports
-declare var exports: any;
-declare var SlowBuffer: {
- new (str: string, encoding?: string): Buffer;
- new (size: number): Buffer;
- new (size: Uint8Array): Buffer;
- new (array: any[]): Buffer;
- prototype: Buffer;
- isBuffer(obj: any): boolean;
- byteLength(string: string, encoding?: string): number;
- concat(list: Buffer[], totalLength?: number): Buffer;
-};
-
-
-// Buffer class
-interface Buffer extends NodeBuffer { }
-interface BufferConstructor {
- new (str: string, encoding?: string): Buffer;
- new (size: number): Buffer;
- new (size: Uint8Array): Buffer;
- new (array: any[]): Buffer;
- prototype: Buffer;
- isBuffer(obj: any): boolean;
- byteLength(string: string, encoding?: string): number;
- concat(list: Buffer[], totalLength?: number): Buffer;
-}
-declare var Buffer: BufferConstructor;
-
-/************************************************
-* *
-* GLOBAL INTERFACES *
-* *
-************************************************/
-declare namespace NodeJS {
- export interface ErrnoException extends Error {
- errno?: any;
- code?: string;
- path?: string;
- syscall?: string;
- }
-
- export interface EventEmitter {
- addListener(event: string, listener: Function): EventEmitter;
- on(event: string, listener: Function): EventEmitter;
- once(event: string, listener: Function): EventEmitter;
- removeListener(event: string, listener: Function): EventEmitter;
- removeAllListeners(event?: string): EventEmitter;
- setMaxListeners(n: number): void;
- listeners(event: string): Function[];
- emit(event: string, ...args: any[]): boolean;
- }
-
- export interface ReadableStream extends EventEmitter {
- readable: boolean;
- read(size?: number): any;
- setEncoding(encoding: string): void;
- pause(): void;
- resume(): void;
- pipe(destination: T, options?: { end?: boolean; }): T;
- unpipe(destination?: T): void;
- unshift(chunk: string): void;
- unshift(chunk: Buffer): void;
- wrap(oldStream: ReadableStream): ReadableStream;
- }
-
- export interface WritableStream extends EventEmitter {
- writable: boolean;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- }
-
- export interface ReadWriteStream extends ReadableStream, WritableStream { }
-
- interface WindowSize {
- columns: number;
- rows: number;
- }
-
- export interface Process extends EventEmitter {
- stdout: WritableStream & WindowSize;
- stderr: WritableStream & WindowSize;
- stdin: ReadableStream;
- argv: string[];
- execPath: string;
- abort(): void;
- chdir(directory: string): void;
- cwd(): string;
- env: any;
- exit(code?: number): void;
- getgid(): number;
- setgid(id: number): void;
- setgid(id: string): void;
- getuid(): number;
- setuid(id: number): void;
- setuid(id: string): void;
- version: string;
- versions: {
- http_parser: string;
- node: string;
- v8: string;
- ares: string;
- uv: string;
- zlib: string;
- openssl: string;
- };
- config: {
- target_defaults: {
- cflags: any[];
- default_configuration: string;
- defines: string[];
- include_dirs: string[];
- libraries: string[];
- };
- variables: {
- clang: number;
- host_arch: string;
- node_install_npm: boolean;
- node_install_waf: boolean;
- node_prefix: string;
- node_shared_openssl: boolean;
- node_shared_v8: boolean;
- node_shared_zlib: boolean;
- node_use_dtrace: boolean;
- node_use_etw: boolean;
- node_use_openssl: boolean;
- target_arch: string;
- v8_no_strict_aliasing: number;
- v8_use_snapshot: boolean;
- visibility: string;
- };
- };
- kill(pid: number, signal?: string): void;
- pid: number;
- title: string;
- arch: string;
- platform: string;
- memoryUsage(): { rss: number; heapTotal: number; heapUsed: number; };
- nextTick(callback: Function): void;
- umask(mask?: number): number;
- uptime(): number;
- hrtime(time?: number[]): number[];
-
- // Worker
- send? (message: any, sendHandle?: any): void;
- }
-
- export interface Timer {
- ref(): void;
- unref(): void;
- }
-}
-
-
-/**
- * @deprecated
- */
-interface NodeBuffer {
- [index: number]: number;
- write(string: string, offset?: number, length?: number, encoding?: string): number;
- toString(encoding?: string, start?: number, end?: number): string;
- toJSON(): any;
- length: number;
- copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
- slice(start?: number, end?: number): Buffer;
- readUInt8(offset: number, noAsset?: boolean): number;
- readUInt16LE(offset: number, noAssert?: boolean): number;
- readUInt16BE(offset: number, noAssert?: boolean): number;
- readUInt32LE(offset: number, noAssert?: boolean): number;
- readUInt32BE(offset: number, noAssert?: boolean): number;
- readInt8(offset: number, noAssert?: boolean): number;
- readInt16LE(offset: number, noAssert?: boolean): number;
- readInt16BE(offset: number, noAssert?: boolean): number;
- readInt32LE(offset: number, noAssert?: boolean): number;
- readInt32BE(offset: number, noAssert?: boolean): number;
- readFloatLE(offset: number, noAssert?: boolean): number;
- readFloatBE(offset: number, noAssert?: boolean): number;
- readDoubleLE(offset: number, noAssert?: boolean): number;
- readDoubleBE(offset: number, noAssert?: boolean): number;
- writeUInt8(value: number, offset: number, noAssert?: boolean): void;
- writeUInt16LE(value: number, offset: number, noAssert?: boolean): void;
- writeUInt16BE(value: number, offset: number, noAssert?: boolean): void;
- writeUInt32LE(value: number, offset: number, noAssert?: boolean): void;
- writeUInt32BE(value: number, offset: number, noAssert?: boolean): void;
- writeInt8(value: number, offset: number, noAssert?: boolean): void;
- writeInt16LE(value: number, offset: number, noAssert?: boolean): void;
- writeInt16BE(value: number, offset: number, noAssert?: boolean): void;
- writeInt32LE(value: number, offset: number, noAssert?: boolean): void;
- writeInt32BE(value: number, offset: number, noAssert?: boolean): void;
- writeFloatLE(value: number, offset: number, noAssert?: boolean): void;
- writeFloatBE(value: number, offset: number, noAssert?: boolean): void;
- writeDoubleLE(value: number, offset: number, noAssert?: boolean): void;
- writeDoubleBE(value: number, offset: number, noAssert?: boolean): void;
- fill(value: any, offset?: number, end?: number): void;
-}
-
-declare namespace NodeJS {
- export interface Path {
- normalize(p: string): string;
- join(...paths: any[]): string;
- resolve(...pathSegments: any[]): string;
- relative(from: string, to: string): string;
- dirname(p: string): string;
- basename(p: string, ext?: string): string;
- extname(p: string): string;
- sep: string;
- }
-}
-
-declare namespace NodeJS {
- export interface ReadLineInstance extends EventEmitter {
- setPrompt(prompt: string, length: number): void;
- prompt(preserveCursor?: boolean): void;
- question(query: string, callback: Function): void;
- pause(): void;
- resume(): void;
- close(): void;
- write(data: any, key?: any): void;
- }
- export interface ReadLineOptions {
- input: NodeJS.ReadableStream;
- output: NodeJS.WritableStream;
- completer?: Function;
- terminal?: boolean;
- }
-
- export interface ReadLine {
- createInterface(options: ReadLineOptions): ReadLineInstance;
- }
-}
-
-declare namespace NodeJS {
- namespace events {
- export class EventEmitter implements NodeJS.EventEmitter {
- static listenerCount(emitter: EventEmitter, event: string): number;
-
- addListener(event: string, listener: Function): EventEmitter;
- on(event: string, listener: Function): EventEmitter;
- once(event: string, listener: Function): EventEmitter;
- removeListener(event: string, listener: Function): EventEmitter;
- removeAllListeners(event?: string): EventEmitter;
- setMaxListeners(n: number): void;
- listeners(event: string): Function[];
- emit(event: string, ...args: any[]): boolean;
- }
- }
-}
-
-declare namespace NodeJS {
- namespace stream {
-
- export interface Stream extends events.EventEmitter {
- pipe(destination: T, options?: { end?: boolean; }): T;
- }
-
- export interface ReadableOptions {
- highWaterMark?: number;
- encoding?: string;
- objectMode?: boolean;
- }
-
- export class Readable extends events.EventEmitter implements NodeJS.ReadableStream {
- readable: boolean;
- constructor(opts?: ReadableOptions);
- _read(size: number): void;
- read(size?: number): any;
- setEncoding(encoding: string): void;
- pause(): void;
- resume(): void;
- pipe(destination: T, options?: { end?: boolean; }): T;
- unpipe(destination?: T): void;
- unshift(chunk: string): void;
- unshift(chunk: Buffer): void;
- wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream;
- push(chunk: any, encoding?: string): boolean;
- }
-
- export interface WritableOptions {
- highWaterMark?: number;
- decodeStrings?: boolean;
- }
-
- export class Writable extends events.EventEmitter implements NodeJS.WritableStream {
- writable: boolean;
- constructor(opts?: WritableOptions);
- _write(data: Buffer, encoding: string, callback: Function): void;
- _write(data: string, encoding: string, callback: Function): void;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- }
-
- export interface DuplexOptions extends ReadableOptions, WritableOptions {
- allowHalfOpen?: boolean;
- }
-
- // Note: Duplex extends both Readable and Writable.
- export class Duplex extends Readable implements NodeJS.ReadWriteStream {
- writable: boolean;
- constructor(opts?: DuplexOptions);
- _write(data: Buffer, encoding: string, callback: Function): void;
- _write(data: string, encoding: string, callback: Function): void;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- }
-
- export interface TransformOptions extends ReadableOptions, WritableOptions { }
-
- // Note: Transform lacks the _read and _write methods of Readable/Writable.
- export class Transform extends events.EventEmitter implements NodeJS.ReadWriteStream {
- readable: boolean;
- writable: boolean;
- constructor(opts?: TransformOptions);
- _transform(chunk: Buffer, encoding: string, callback: Function): void;
- _transform(chunk: string, encoding: string, callback: Function): void;
- _flush(callback: Function): void;
- read(size?: number): any;
- setEncoding(encoding: string): void;
- pause(): void;
- resume(): void;
- pipe(destination: T, options?: { end?: boolean; }): T;
- unpipe(destination?: T): void;
- unshift(chunk: string): void;
- unshift(chunk: Buffer): void;
- wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream;
- push(chunk: any, encoding?: string): boolean;
- write(buffer: Buffer, cb?: Function): boolean;
- write(str: string, cb?: Function): boolean;
- write(str: string, encoding?: string, cb?: Function): boolean;
- end(): void;
- end(buffer: Buffer, cb?: Function): void;
- end(str: string, cb?: Function): void;
- end(str: string, encoding?: string, cb?: Function): void;
- }
-
- export class PassThrough extends Transform { }
- }
-}
-
-declare namespace NodeJS {
- namespace fs {
- interface Stats {
- isFile(): boolean;
- isDirectory(): boolean;
- isBlockDevice(): boolean;
- isCharacterDevice(): boolean;
- isSymbolicLink(): boolean;
- isFIFO(): boolean;
- isSocket(): boolean;
- dev: number;
- ino: number;
- mode: number;
- nlink: number;
- uid: number;
- gid: number;
- rdev: number;
- size: number;
- blksize: number;
- blocks: number;
- atime: Date;
- mtime: Date;
- ctime: Date;
- }
- interface FSWatcher extends events.EventEmitter {
- close(): void;
- }
-
- export interface ReadStream extends stream.Readable { }
- export interface WriteStream extends stream.Writable { }
-
- export function rename(oldPath: string, newPath: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function renameSync(oldPath: string, newPath: string): void;
- export function truncate(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function truncate(path: string, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function truncateSync(path: string, len?: number): void;
- export function ftruncate(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function ftruncate(fd: number, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function ftruncateSync(fd: number, len?: number): void;
- export function chown(path: string, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function chownSync(path: string, uid: number, gid: number): void;
- export function fchown(fd: number, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function fchownSync(fd: number, uid: number, gid: number): void;
- export function lchown(path: string, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function lchownSync(path: string, uid: number, gid: number): void;
- export function chmod(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function chmod(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function chmodSync(path: string, mode: number): void;
- export function chmodSync(path: string, mode: string): void;
- export function fchmod(fd: number, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function fchmod(fd: number, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function fchmodSync(fd: number, mode: number): void;
- export function fchmodSync(fd: number, mode: string): void;
- export function lchmod(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function lchmod(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function lchmodSync(path: string, mode: number): void;
- export function lchmodSync(path: string, mode: string): void;
- export function stat(path: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
- export function lstat(path: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
- export function fstat(fd: number, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
- export function statSync(path: string): Stats;
- export function lstatSync(path: string): Stats;
- export function fstatSync(fd: number): Stats;
- export function link(srcpath: string, dstpath: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function linkSync(srcpath: string, dstpath: string): void;
- export function symlink(srcpath: string, dstpath: string, type?: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function symlinkSync(srcpath: string, dstpath: string, type?: string): void;
- export function readlink(path: string, callback?: (err: NodeJS.ErrnoException, linkString: string) => any): void;
- export function readlinkSync(path: string): string;
- export function realpath(path: string, callback?: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void;
- export function realpath(path: string, cache: { [path: string]: string }, callback: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void;
- export function realpathSync(path: string, cache?: { [path: string]: string }): string;
- export function unlink(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function unlinkSync(path: string): void;
- export function rmdir(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function rmdirSync(path: string): void;
- export function mkdir(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function mkdir(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function mkdir(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function mkdirSync(path: string, mode?: number): void;
- export function mkdirSync(path: string, mode?: string): void;
- export function readdir(path: string, callback?: (err: NodeJS.ErrnoException, files: string[]) => void): void;
- export function readdirSync(path: string): string[];
- export function close(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function closeSync(fd: number): void;
- export function open(path: string, flags: string, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void;
- export function open(path: string, flags: string, mode: number, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void;
- export function open(path: string, flags: string, mode: string, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void;
- export function openSync(path: string, flags: string, mode?: number): number;
- export function openSync(path: string, flags: string, mode?: string): number;
- export function utimes(path: string, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function utimes(path: string, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function utimesSync(path: string, atime: number, mtime: number): void;
- export function utimesSync(path: string, atime: Date, mtime: Date): void;
- export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function futimes(fd: number, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function futimesSync(fd: number, atime: number, mtime: number): void;
- export function futimesSync(fd: number, atime: Date, mtime: Date): void;
- export function fsync(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;
- export function fsyncSync(fd: number): void;
- export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void;
- export function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number;
- export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, bytesRead: number, buffer: Buffer) => void): void;
- export function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number;
- export function readFile(filename: string, encoding: string, callback: (err: NodeJS.ErrnoException, data: string) => void): void;
- export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: string) => void): void;
- export function readFile(filename: string, options: { flag?: string; }, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;
- export function readFile(filename: string, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;
- export function readFileSync(filename: string, encoding: string): string;
- export function readFileSync(filename: string, options: { encoding: string; flag?: string; }): string;
- export function readFileSync(filename: string, options?: { flag?: string; }): Buffer;
- export function writeFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;
- export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;
- export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function appendFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void;
- export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;
- export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;
- export function watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void;
- export function watchFile(filename: string, options: { persistent?: boolean; interval?: number; }, listener: (curr: Stats, prev: Stats) => void): void;
- export function unwatchFile(filename: string, listener?: (curr: Stats, prev: Stats) => void): void;
- export function watch(filename: string, listener?: (event: string, filename: string) => any): FSWatcher;
- export function watch(filename: string, options: { persistent?: boolean; }, listener?: (event: string, filename: string) => any): FSWatcher;
- export function exists(path: string, callback?: (exists: boolean) => void): void;
- export function existsSync(path: string): boolean;
- export function createReadStream(path: string, options?: {
- flags?: string;
- encoding?: string;
- fd?: string;
- mode?: number;
- bufferSize?: number;
- }): ReadStream;
- export function createReadStream(path: string, options?: {
- flags?: string;
- encoding?: string;
- fd?: string;
- mode?: string;
- bufferSize?: number;
- }): ReadStream;
- export function createWriteStream(path: string, options?: {
- flags?: string;
- encoding?: string;
- string?: string;
- }): WriteStream;
- }
-}
-
-declare namespace NodeJS {
- namespace path {
- export function normalize(p: string): string;
- export function join(...paths: any[]): string;
- export function resolve(...pathSegments: any[]): string;
- export function relative(from: string, to: string): string;
- export function dirname(p: string): string;
- export function basename(p: string, ext?: string): string;
- export function extname(p: string): string;
- export var sep: string;
- }
-}
-
-declare namespace NodeJS {
- namespace _debugger {
- export interface Packet {
- raw: string;
- headers: string[];
- body: Message;
- }
-
- export interface Message {
- seq: number;
- type: string;
- }
-
- export interface RequestInfo {
- command: string;
- arguments: any;
- }
-
- export interface Request extends Message, RequestInfo {
- }
-
- export interface Event extends Message {
- event: string;
- body?: any;
- }
-
- export interface Response extends Message {
- request_seq: number;
- success: boolean;
- /** Contains error message if success === false. */
- message?: string;
- /** Contains message body if success === true. */
- body?: any;
- }
-
- export interface BreakpointMessageBody {
- type: string;
- target: number;
- line: number;
- }
-
- export class Protocol {
- res: Packet;
- state: string;
- execute(data: string): void;
- serialize(rq: Request): string;
- onResponse: (pkt: Packet) => void;
- }
-
- export var NO_FRAME: number;
- export var port: number;
-
- export interface ScriptDesc {
- name: string;
- id: number;
- isNative?: boolean;
- handle?: number;
- type: string;
- lineOffset?: number;
- columnOffset?: number;
- lineCount?: number;
- }
-
- export interface Breakpoint {
- id: number;
- scriptId: number;
- script: ScriptDesc;
- line: number;
- condition?: string;
- scriptReq?: string;
- }
-
- export interface RequestHandler {
- (err: boolean, body: Message, res: Packet): void;
- request_seq?: number;
- }
-
- export interface ResponseBodyHandler {
- (err: boolean, body?: any): void;
- request_seq?: number;
- }
-
- export interface ExceptionInfo {
- text: string;
- }
-
- export interface BreakResponse {
- script?: ScriptDesc;
- exception?: ExceptionInfo;
- sourceLine: number;
- sourceLineText: string;
- sourceColumn: number;
- }
-
- export function SourceInfo(body: BreakResponse): string;
-
- export class Client extends events.EventEmitter {
- protocol: Protocol;
- scripts: ScriptDesc[];
- handles: ScriptDesc[];
- breakpoints: Breakpoint[];
- currentSourceLine: number;
- currentSourceColumn: number;
- currentSourceLineText: string;
- currentFrame: number;
- currentScript: string;
-
- connect(port: number, host: string): void;
- req(req: any, cb: RequestHandler): void;
- reqFrameEval(code: string, frame: number, cb: RequestHandler): void;
- mirrorObject(obj: any, depth: number, cb: ResponseBodyHandler): void;
- setBreakpoint(rq: BreakpointMessageBody, cb: RequestHandler): void;
- clearBreakpoint(rq: Request, cb: RequestHandler): void;
- listbreakpoints(cb: RequestHandler): void;
- reqSource(from: number, to: number, cb: RequestHandler): void;
- reqScripts(cb: any): void;
- reqContinue(cb: RequestHandler): void;
- }
- }
-}
\ No newline at end of file
diff --git a/src/server/server.ts b/src/server/server.ts
index 767793024c233..17ecfdaa1c990 100644
--- a/src/server/server.ts
+++ b/src/server/server.ts
@@ -1,11 +1,59 @@
-///
+///
///
// used in fs.writeSync
/* tslint:disable:no-null-keyword */
namespace ts.server {
- const readline: NodeJS.ReadLine = require("readline");
- const fs: typeof NodeJS.fs = require("fs");
+ interface ReadLineOptions {
+ input: NodeJS.ReadableStream;
+ output?: NodeJS.WritableStream;
+ terminal?: boolean;
+ historySize?: number;
+ }
+
+ interface Key {
+ sequence?: string;
+ name?: string;
+ ctrl?: boolean;
+ meta?: boolean;
+ shift?: boolean;
+ }
+
+ interface Stats {
+ isFile(): boolean;
+ isDirectory(): boolean;
+ isBlockDevice(): boolean;
+ isCharacterDevice(): boolean;
+ isSymbolicLink(): boolean;
+ isFIFO(): boolean;
+ isSocket(): boolean;
+ dev: number;
+ ino: number;
+ mode: number;
+ nlink: number;
+ uid: number;
+ gid: number;
+ rdev: number;
+ size: number;
+ blksize: number;
+ blocks: number;
+ atime: Date;
+ mtime: Date;
+ ctime: Date;
+ birthtime: Date;
+ }
+
+ const readline: {
+ createInterface(options: ReadLineOptions): NodeJS.EventEmitter;
+ } = require("readline");
+ const fs: {
+ openSync(path: string, options: string): number;
+ close(fd: number): void;
+ writeSync(fd: number, buffer: Buffer, offset: number, length: number, position?: number): number;
+ writeSync(fd: number, data: any, position?: number, enconding?: string): number;
+ statSync(path: string): Stats;
+ stat(path: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
+ } = require("fs");
const rl = readline.createInterface({
input: process.stdin,
diff --git a/src/server/tsconfig.json b/src/server/tsconfig.json
index df7dcdfe8ad2b..e14478c40f40c 100644
--- a/src/server/tsconfig.json
+++ b/src/server/tsconfig.json
@@ -7,12 +7,14 @@
"pretty": true,
"out": "../../built/local/tsserver.js",
"sourceMap": true,
- "stripInternal": true
+ "stripInternal": true,
+ "types": [
+ "node"
+ ]
},
"files": [
"../services/shims.ts",
"../services/utilities.ts",
- "node.d.ts",
"editorServices.ts",
"protocol.d.ts",
"session.ts",
diff --git a/src/server/tsconfig.library.json b/src/server/tsconfig.library.json
new file mode 100644
index 0000000000000..746283720bf32
--- /dev/null
+++ b/src/server/tsconfig.library.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "noImplicitAny": true,
+ "removeComments": true,
+ "preserveConstEnums": true,
+ "out": "../../built/local/tsserverlibrary.js",
+ "sourceMap": true,
+ "stripInternal": true,
+ "declaration": true,
+ "types": []
+ },
+ "files": [
+ "editorServices.ts",
+ "protocol.d.ts",
+ "session.ts"
+ ]
+}