From 441009d3591e6466892207ea01ac4e556d24a98b Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 1 Oct 2016 00:11:29 -0700 Subject: [PATCH 1/6] Move to TypeScript build --- .babelrc | 3 -- addons/attach/attach.js | 4 +- addons/fit/fit.js | 4 +- addons/fullscreen/fullscreen.js | 4 +- addons/linkify/linkify.js | 4 +- bin/build | 41 ++----------------- package.json | 13 +++--- src/xterm.js | 2 +- test/addons/linkify-test.js | 2 +- test/addons/test.js | 2 +- test/composition-helper-test.js | 2 +- ..._sequences.js => escape-sequences-test.js} | 2 +- test/test.js | 2 +- test/viewport-test.js | 2 +- tsconfig.json | 16 ++++++++ typings.json | 6 +++ 16 files changed, 47 insertions(+), 62 deletions(-) delete mode 100644 .babelrc rename test/{escape_sequences.js => escape-sequences-test.js} (98%) create mode 100644 tsconfig.json create mode 100644 typings.json diff --git a/.babelrc b/.babelrc deleted file mode 100644 index c13c5f62..00000000 --- a/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["es2015"] -} diff --git a/addons/attach/attach.js b/addons/attach/attach.js index 2ef1f737..bc64244e 100644 --- a/addons/attach/attach.js +++ b/addons/attach/attach.js @@ -11,12 +11,12 @@ /* * CommonJS environment */ - module.exports = attach(require('../../src/xterm')); + module.exports = attach(require('../../build/xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../src/xterm'], attach); + define(['../../build/xterm'], attach); } else { /* * Plain browser environment diff --git a/addons/fit/fit.js b/addons/fit/fit.js index 209e0596..292f89e6 100644 --- a/addons/fit/fit.js +++ b/addons/fit/fit.js @@ -16,12 +16,12 @@ /* * CommonJS environment */ - module.exports = fit(require('../../src/xterm')); + module.exports = fit(require('../../build/xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../src/xterm'], fit); + define(['../../build/xterm'], fit); } else { /* * Plain browser environment diff --git a/addons/fullscreen/fullscreen.js b/addons/fullscreen/fullscreen.js index 9a655b32..3194ca67 100644 --- a/addons/fullscreen/fullscreen.js +++ b/addons/fullscreen/fullscreen.js @@ -15,12 +15,12 @@ /* * CommonJS environment */ - module.exports = fullscreen(require('../../src/xterm')); + module.exports = fullscreen(require('../../build/xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../src/xterm'], fullscreen); + define(['../../build/xterm'], fullscreen); } else { /* * Plain browser environment diff --git a/addons/linkify/linkify.js b/addons/linkify/linkify.js index 746b4305..336becbd 100644 --- a/addons/linkify/linkify.js +++ b/addons/linkify/linkify.js @@ -3,12 +3,12 @@ /* * CommonJS environment */ - module.exports = linkify(require('../../src/xterm')); + module.exports = linkify(require('../../build/xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../src/xterm'], linkify); + define(['../../build/xterm'], linkify); } else { /* * Plain browser environment diff --git a/bin/build b/bin/build index 42a47881..8ec5cbdf 100755 --- a/bin/build +++ b/bin/build @@ -1,38 +1,5 @@ -#! /usr/bin/env node +#! /usr/bin/env sh -var child_process = require('child_process'); -var fs = require('fs'); - -var buildDir = process.env.BUILD_DIR || 'build'; - -if (!fs.existsSync(buildDir)){ - fs.mkdirSync(buildDir); -} - -// Add `node_modules/.bin` to PATH -process.env.PATH = process.cwd() + '/node_modules/.bin:' + process.env.PATH; - -console.log('Building xterm.js into ' + buildDir); - -// Build ES2015 modules into ES5 form, then concatenate them, -// then remove unused require calls and save in output file with source map. -console.log(' - Building ' + buildDir + '/xterm.js...'); - -var jsBuildCmd = 'browserify src/xterm.js -s Terminal -t [ babelify --presets [ es2015 ] ] --debug | '; -jsBuildCmd += 'derequire | exorcist ' + buildDir + '/xterm.js.map > ' + buildDir + '/xterm.js'; - -var jsBuildProcess = child_process.execSync(jsBuildCmd); - -if (jsBuildProcess.status) { - console.log(jsBuildProcess.error); -} - -console.log(' OK.'); - -// Copy CSS into $BUILD_DIR -console.log(' - Building ' + buildDir + '/xterm.css...'); - -fs.createReadStream('src/xterm.css').pipe( - fs.createWriteStream(buildDir + '/xterm.css') -); -console.log(' OK.'); +mkdir -p build +browserify src/xterm.js --standalone Terminal -p [ tsify ] --outfile build/xterm.js +cp src/xterm.css build/xterm.css diff --git a/package.json b/package.json index 6b667dcc..aaf8998a 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,10 @@ "repository": "https://github.com/sourcelair/xterm.js", "license": "MIT", "devDependencies": { - "babel-core": "6.14.0", - "babel-preset-es2015": "6.14.0", - "babelify": "^7.3.0", + "@types/node": "^6.0.41", "browserify": "^13.1.0", "chai": "3.5.0", - "derequire": "^2.0.3", "docdash": "0.4.0", - "exorcist": "^0.4.0", "express": "4.13.4", "express-ws": "2.0.0-rc.1", "glob": "^7.0.5", @@ -25,11 +21,14 @@ "mocha": "2.5.3", "nodemon": "1.10.2", "pty.js": "0.3.1", - "sleep": "^3.0.1" + "sleep": "^3.0.1", + "tsify": "^1.0.7", + "typescript": "^2.0.3", + "typings": "^1.4.0" }, "scripts": { "start": "nodemon --watch src --watch addons --exec bash -c './bin/build && node demo/app'", - "test": "mocha --recursive --compilers js:babel-core/register", + "test": "./bin/build && mocha --recursive", "build:docs": "jsdoc -c jsdoc.json", "build": "./bin/build" } diff --git a/src/xterm.js b/src/xterm.js index 3ccc99e5..1dbef54e 100644 --- a/src/xterm.js +++ b/src/xterm.js @@ -683,7 +683,7 @@ Terminal.prototype.open = function(parent) { Terminal.loadAddon = function(addon, callback) { if (typeof exports === 'object' && typeof module === 'object') { // CommonJS - return require(__dirname + '/../addons/' + addon); + return require('../addons/' + addon); } else if (typeof define == 'function') { // RequireJS return require(['../addons/' + addon + '/' + addon], callback); diff --git a/test/addons/linkify-test.js b/test/addons/linkify-test.js index 7cb23186..d3c20d79 100644 --- a/test/addons/linkify-test.js +++ b/test/addons/linkify-test.js @@ -1,5 +1,5 @@ var assert = require('chai').assert; -var Terminal = require('../../src/xterm'); +var Terminal = require('../../build/xterm'); var linkify = require('../../addons/linkify/linkify'); describe('linkify addon', function () { diff --git a/test/addons/test.js b/test/addons/test.js index ba689e6e..bac30e8f 100644 --- a/test/addons/test.js +++ b/test/addons/test.js @@ -1,5 +1,5 @@ var assert = require('chai').assert; -var Terminal = require('../../src/xterm'); +var Terminal = require('../../build/xterm'); describe('xterm.js addons', function() { it('should load addons with Terminal.loadAddon', function () { diff --git a/test/composition-helper-test.js b/test/composition-helper-test.js index d3071c2d..52add91b 100644 --- a/test/composition-helper-test.js +++ b/test/composition-helper-test.js @@ -1,5 +1,5 @@ var assert = require('chai').assert; -var Terminal = require('../src/xterm'); +var Terminal = require('../build/xterm'); describe('CompositionHelper', function () { var terminal; diff --git a/test/escape_sequences.js b/test/escape-sequences-test.js similarity index 98% rename from test/escape_sequences.js rename to test/escape-sequences-test.js index 43523e60..39f4f4ee 100644 --- a/test/escape_sequences.js +++ b/test/escape-sequences-test.js @@ -2,7 +2,7 @@ var glob = require('glob'); var fs = require('fs'); var pty = require('pty.js'); var sleep = require('sleep'); -var Terminal = require('../src/xterm'); +var Terminal = require('../build/xterm'); var CONSOLE_LOG = console.log; diff --git a/test/test.js b/test/test.js index a015b455..635d9461 100644 --- a/test/test.js +++ b/test/test.js @@ -1,6 +1,6 @@ var assert = require('chai').assert; var expect = require('chai').expect; -var Terminal = require('../src/xterm'); +var Terminal = require('../build/xterm'); describe('xterm.js', function() { var xterm; diff --git a/test/viewport-test.js b/test/viewport-test.js index a9523f52..23fb086a 100644 --- a/test/viewport-test.js +++ b/test/viewport-test.js @@ -1,5 +1,5 @@ var assert = require('chai').assert; -var Terminal = require('../src/xterm'); +var Terminal = require('../build/xterm'); describe('Viewport', function () { var terminal; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..3cba23ee --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "rootDir": "src", + "allowJs": true + }, + "exclude": [ + "addons", + "build", + "demo", + "out", + "test", + "node_modules" + ] +} diff --git a/typings.json b/typings.json new file mode 100644 index 00000000..8210c007 --- /dev/null +++ b/typings.json @@ -0,0 +1,6 @@ +{ + "name": "xterm", + "globalDependencies": { + "node": "registry:env/node#6.0.0+20160918225031" + } +} From bd994f9e574405ddfeaab811cfaa078ee17dfaba Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 1 Oct 2016 12:22:57 -0700 Subject: [PATCH 2/6] Install typings on build and add to git ignore --- .gitignore | 1 + bin/build | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 2fb4e7e6..bd011495 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ example/*.log docs/ npm-debug.log /.idea/ +typings/ diff --git a/bin/build b/bin/build index 8ec5cbdf..f30496cd 100755 --- a/bin/build +++ b/bin/build @@ -1,5 +1,7 @@ #! /usr/bin/env sh +typings install + mkdir -p build browserify src/xterm.js --standalone Terminal -p [ tsify ] --outfile build/xterm.js cp src/xterm.css build/xterm.css From 729c0abf04ef7ce66ce1df13271738ccbffd6817 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 7 Oct 2016 22:56:02 -0700 Subject: [PATCH 3/6] Explicitly indicate test locations --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aaf8998a..f8ae5e7a 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "scripts": { "start": "nodemon --watch src --watch addons --exec bash -c './bin/build && node demo/app'", - "test": "./bin/build && mocha --recursive", + "test": "./bin/build && mocha --recursive ./test/*test.js ./test/**/*test.js", "build:docs": "jsdoc -c jsdoc.json", "build": "./bin/build" } From 738f37e86ca759c7a5a16b378a02bb865206adbc Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 7 Oct 2016 23:01:20 -0700 Subject: [PATCH 4/6] Set travis to node 6 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b085a7bd..bdc47838 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: - - 4 + - 6 env: - CXX=g++-4.8 addons: From a995b610cf960f4a12f77b888cee38d2f4a4f877 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 31 Oct 2016 19:30:35 -0700 Subject: [PATCH 5/6] Remove typings (not needed in TS 2+) --- .gitignore | 1 - bin/build | 2 -- package.json | 3 +-- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index a8029f56..2e91366a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,5 +11,4 @@ example/*.log docs/ npm-debug.log /.idea/ -typings/ .env diff --git a/bin/build b/bin/build index f30496cd..8ec5cbdf 100755 --- a/bin/build +++ b/bin/build @@ -1,7 +1,5 @@ #! /usr/bin/env sh -typings install - mkdir -p build browserify src/xterm.js --standalone Terminal -p [ tsify ] --outfile build/xterm.js cp src/xterm.css build/xterm.css diff --git a/package.json b/package.json index 5896f08d..d35d6087 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,7 @@ "pty.js": "0.3.1", "sleep": "^3.0.1", "tsify": "^1.0.7", - "typescript": "^2.0.3", - "typings": "^1.4.0" + "typescript": "^2.0.3" }, "scripts": { "start": "nodemon --watch src --watch addons --exec bash -c './bin/build && node demo/app'", From 56ecc77dfce92da0e9eb038fd44788860a10ec96 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 31 Oct 2016 21:22:21 -0700 Subject: [PATCH 6/6] Refactor TS build and fix testing This change is largely just moving files with minor tweaks to them to fix, the rest of the commit is build process changes: - The addons/ and test/ dirs have been moved to src/ - The build directory has been removed - TypeScript builds are output in out/, this is where tests are run - The demo now relies on the dist/ build which is performed as part of ./bin/build - Addons are now shipped under the ./build directory --- .gitignore | 2 +- bin/build | 20 +++++++++++++++---- demo/app.js | 1 - demo/index.html | 10 +++++----- package.json | 4 ++-- {addons => src/addons}/attach/attach.js | 4 ++-- {addons => src/addons}/attach/index.html | 0 {addons => src/addons}/attach/package.json | 0 {addons => src/addons}/fit/fit.js | 4 ++-- {addons => src/addons}/fit/package.json | 0 .../addons}/fullscreen/fullscreen.css | 0 .../addons}/fullscreen/fullscreen.js | 4 ++-- .../addons}/fullscreen/package.json | 0 {addons => src/addons}/linkify/index.html | 0 {addons => src/addons}/linkify/linkify.js | 4 ++-- {addons => src/addons}/linkify/package.json | 0 {addons => src/addons}/terminado/package.json | 0 {addons => src/addons}/terminado/terminado.js | 4 ++-- {test => src/test}/addons/linkify-test.js | 2 +- {test => src/test}/addons/test.js | 5 ++--- {test => src/test}/clipboard-test.js | 4 ++-- {test => src/test}/composition-helper-test.js | 2 +- {test => src/test}/escape-sequences-test.js | 5 +++-- .../test}/escape_sequence_files/NOTES | 0 .../t0001-all_printable.in | 0 .../t0001-all_printable.text | 0 .../escape_sequence_files/t0002-history.in | 0 .../escape_sequence_files/t0002-history.text | 0 .../t0002j-simple_string.in | 0 .../t0002j-simple_string.text | 0 .../escape_sequence_files/t0003-line_wrap.in | 0 .../t0003-line_wrap.text | 0 .../test}/escape_sequence_files/t0003j-LF.in | 0 .../escape_sequence_files/t0003j-LF.text | 0 .../test}/escape_sequence_files/t0004-LF.in | 0 .../test}/escape_sequence_files/t0004-LF.text | 0 .../test}/escape_sequence_files/t0004j-CR.in | 0 .../escape_sequence_files/t0004j-CR.text | 0 .../test}/escape_sequence_files/t0005-CR.in | 0 .../test}/escape_sequence_files/t0005-CR.text | 0 .../test}/escape_sequence_files/t0006-IND.in | 0 .../escape_sequence_files/t0006-IND.text | 0 .../t0007-space_at_end.in | 0 .../t0007-space_at_end.text | 0 .../test}/escape_sequence_files/t0008-BS.in | 0 .../test}/escape_sequence_files/t0008-BS.text | 0 .../test}/escape_sequence_files/t0009-NEL.in | 0 .../escape_sequence_files/t0009-NEL.text | 0 .../test}/escape_sequence_files/t0010-RI.in | 0 .../test}/escape_sequence_files/t0010-RI.text | 0 .../escape_sequence_files/t0011-RI_scroll.in | 0 .../t0011-RI_scroll.text | 0 .../test}/escape_sequence_files/t0012-VT.in | 0 .../test}/escape_sequence_files/t0012-VT.text | 0 .../test}/escape_sequence_files/t0013-FF.in | 0 .../test}/escape_sequence_files/t0013-FF.text | 0 .../test}/escape_sequence_files/t0014-CAN.in | 0 .../escape_sequence_files/t0014-CAN.text | 0 .../test}/escape_sequence_files/t0015-SUB.in | 0 .../escape_sequence_files/t0015-SUB.text | 0 .../test}/escape_sequence_files/t0016-SU.in | 0 .../test}/escape_sequence_files/t0016-SU.text | 0 .../test}/escape_sequence_files/t0017-SD.in | 0 .../test}/escape_sequence_files/t0017-SD.text | 0 .../test}/escape_sequence_files/t0020-CUF.in | 0 .../escape_sequence_files/t0020-CUF.text | 0 .../test}/escape_sequence_files/t0021-CUB.in | 0 .../escape_sequence_files/t0021-CUB.text | 0 .../test}/escape_sequence_files/t0022-CUU.in | 0 .../escape_sequence_files/t0022-CUU.text | 0 .../escape_sequence_files/t0023-CUU_scroll.in | 0 .../t0023-CUU_scroll.text | 0 .../test}/escape_sequence_files/t0024-CUD.in | 0 .../escape_sequence_files/t0024-CUD.text | 0 .../test}/escape_sequence_files/t0025-CUP.in | 0 .../escape_sequence_files/t0025-CUP.text | 0 .../test}/escape_sequence_files/t0026-CNL.in | 0 .../escape_sequence_files/t0026-CNL.text | 0 .../test}/escape_sequence_files/t0027-CPL.in | 0 .../escape_sequence_files/t0027-CPL.text | 0 .../test}/escape_sequence_files/t0030-HPR.in | 0 .../escape_sequence_files/t0030-HPR.text | 0 .../test}/escape_sequence_files/t0031-HPB.in_ | 0 .../escape_sequence_files/t0031-HPB.text | 0 .../test}/escape_sequence_files/t0032-VPB.in | 0 .../escape_sequence_files/t0032-VPB.text | 0 .../escape_sequence_files/t0033-VPB_scroll.in | 0 .../t0033-VPB_scroll.text | 0 .../test}/escape_sequence_files/t0034-VPR.in | 0 .../escape_sequence_files/t0034-VPR.text | 0 .../test}/escape_sequence_files/t0035-HVP.in | 0 .../escape_sequence_files/t0035-HVP.text | 0 .../test}/escape_sequence_files/t0040-REP.in | 0 .../escape_sequence_files/t0040-REP.text | 0 .../test}/escape_sequence_files/t0050-ICH.in | 0 .../escape_sequence_files/t0050-ICH.text | 0 .../test}/escape_sequence_files/t0051-IL.in | 0 .../test}/escape_sequence_files/t0051-IL.text | 0 .../test}/escape_sequence_files/t0052-DL.in | 0 .../test}/escape_sequence_files/t0052-DL.text | 0 .../test}/escape_sequence_files/t0053-DCH.in | 0 .../escape_sequence_files/t0053-DCH.text | 0 .../test}/escape_sequence_files/t0054-ECH.in | 0 .../escape_sequence_files/t0054-ECH.text | 0 .../test}/escape_sequence_files/t0055-EL.in | 0 .../test}/escape_sequence_files/t0055-EL.text | 0 .../test}/escape_sequence_files/t0056-ED.in | 0 .../test}/escape_sequence_files/t0056-ED.text | 0 .../test}/escape_sequence_files/t0057-ED3.in | 0 .../escape_sequence_files/t0057-ED3.note | 0 .../escape_sequence_files/t0057-ED3.text | 0 .../escape_sequence_files/t0060-DECSC.in | 0 .../escape_sequence_files/t0060-DECSC.text | 0 .../escape_sequence_files/t0061-CSI_s.in | 0 .../escape_sequence_files/t0061-CSI_s.text | 0 .../escape_sequence_files/t0070-DECSTBM_LF.in | 0 .../t0070-DECSTBM_LF.text | 0 .../t0071-DECSTBM_IND.in | 0 .../t0071-DECSTBM_IND.text | 0 .../t0072-DECSTBM_NEL.in | 0 .../t0072-DECSTBM_NEL.text | 0 .../escape_sequence_files/t0073-DECSTBM_RI.in | 0 .../t0073-DECSTBM_RI.text | 0 .../t0074-DECSTBM_SU_SD.in | 0 .../t0074-DECSTBM_SU_SD.text | 0 .../t0075-DECSTBM_CUU_CUD.in | 0 .../t0075-DECSTBM_CUU_CUD.text | 0 .../t0076-DECSTBM_IL_DL.in | 0 .../t0076-DECSTBM_IL_DL.text | 0 .../t0077-DECSTBM_quirks.in | 0 .../t0077-DECSTBM_quirks.text | 0 .../test}/escape_sequence_files/t0080-HT.in | 0 .../test}/escape_sequence_files/t0080-HT.text | 0 .../test}/escape_sequence_files/t0081-TBC.in | 0 .../escape_sequence_files/t0081-TBC.text | 0 .../test}/escape_sequence_files/t0082-HTS.in | 0 .../escape_sequence_files/t0082-HTS.text | 0 .../test}/escape_sequence_files/t0083-CHT.in | 0 .../escape_sequence_files/t0083-CHT.text | 0 .../test}/escape_sequence_files/t0084-CBT.in | 0 .../escape_sequence_files/t0084-CBT.text | 0 .../t0084-CBT.text-xterm | 0 .../escape_sequence_files/t0090-alt_screen.in | 0 .../t0090-alt_screen.text | 0 .../t0091-alt_screen_ED3.in | 0 .../t0091-alt_screen_ED3.text | 0 .../t0092-alt_screen_DECSC.in | 0 .../t0092-alt_screen_DECSC.text | 0 .../test}/escape_sequence_files/t0100-IRM.in | 0 .../escape_sequence_files/t0100-IRM.text | 0 .../test}/escape_sequence_files/t0101-NLM.in | 0 .../escape_sequence_files/t0101-NLM.text | 0 .../escape_sequence_files/t0102-DECAWM.in | 0 .../escape_sequence_files/t0102-DECAWM.text | 0 .../t0103-reverse_wrap.in | 0 .../t0103-reverse_wrap.text | 0 .../escape_sequence_files/t0200-SGR.html | 0 .../test}/escape_sequence_files/t0200-SGR.in_ | 0 .../t0220-SGR_inverse.html | 0 .../t0220-SGR_inverse.in_ | 0 .../t0500-bash_long_line.in | 0 .../t0500-bash_long_line.text | 0 .../escape_sequence_files/t0501-bash_ls.in | 0 .../escape_sequence_files/t0501-bash_ls.text | 0 .../t0502-bash_ls_color.in | 0 .../t0502-bash_ls_color.text | 0 .../t0503-zsh_ls_color.in | 0 .../t0503-zsh_ls_color.text | 0 .../test}/escape_sequence_files/t0504-vim.in | 0 .../escape_sequence_files/t0504-vim.text | 0 {test => src/test}/test.js | 2 +- {test => src/test}/viewport-test.js | 2 +- src/xterm.js | 4 ++-- tsconfig.json | 4 +++- 174 files changed, 50 insertions(+), 37 deletions(-) rename {addons => src/addons}/attach/attach.js (97%) rename {addons => src/addons}/attach/index.html (100%) rename {addons => src/addons}/attach/package.json (100%) rename {addons => src/addons}/fit/fit.js (96%) rename {addons => src/addons}/fit/package.json (100%) rename {addons => src/addons}/fullscreen/fullscreen.css (100%) rename {addons => src/addons}/fullscreen/fullscreen.js (91%) rename {addons => src/addons}/fullscreen/package.json (100%) rename {addons => src/addons}/linkify/index.html (100%) rename {addons => src/addons}/linkify/linkify.js (98%) rename {addons => src/addons}/linkify/package.json (100%) rename {addons => src/addons}/terminado/package.json (100%) rename {addons => src/addons}/terminado/terminado.js (97%) rename {test => src/test}/addons/linkify-test.js (98%) rename {test => src/test}/addons/test.js (59%) rename {test => src/test}/clipboard-test.js (85%) rename {test => src/test}/composition-helper-test.js (99%) rename {test => src/test}/escape-sequences-test.js (96%) rename {test => src/test}/escape_sequence_files/NOTES (100%) rename {test => src/test}/escape_sequence_files/t0001-all_printable.in (100%) rename {test => src/test}/escape_sequence_files/t0001-all_printable.text (100%) rename {test => src/test}/escape_sequence_files/t0002-history.in (100%) rename {test => src/test}/escape_sequence_files/t0002-history.text (100%) rename {test => src/test}/escape_sequence_files/t0002j-simple_string.in (100%) rename {test => src/test}/escape_sequence_files/t0002j-simple_string.text (100%) rename {test => src/test}/escape_sequence_files/t0003-line_wrap.in (100%) rename {test => src/test}/escape_sequence_files/t0003-line_wrap.text (100%) rename {test => src/test}/escape_sequence_files/t0003j-LF.in (100%) rename {test => src/test}/escape_sequence_files/t0003j-LF.text (100%) rename {test => src/test}/escape_sequence_files/t0004-LF.in (100%) rename {test => src/test}/escape_sequence_files/t0004-LF.text (100%) rename {test => src/test}/escape_sequence_files/t0004j-CR.in (100%) rename {test => src/test}/escape_sequence_files/t0004j-CR.text (100%) rename {test => src/test}/escape_sequence_files/t0005-CR.in (100%) rename {test => src/test}/escape_sequence_files/t0005-CR.text (100%) rename {test => src/test}/escape_sequence_files/t0006-IND.in (100%) rename {test => src/test}/escape_sequence_files/t0006-IND.text (100%) rename {test => src/test}/escape_sequence_files/t0007-space_at_end.in (100%) rename {test => src/test}/escape_sequence_files/t0007-space_at_end.text (100%) rename {test => src/test}/escape_sequence_files/t0008-BS.in (100%) rename {test => src/test}/escape_sequence_files/t0008-BS.text (100%) rename {test => src/test}/escape_sequence_files/t0009-NEL.in (100%) rename {test => src/test}/escape_sequence_files/t0009-NEL.text (100%) rename {test => src/test}/escape_sequence_files/t0010-RI.in (100%) rename {test => src/test}/escape_sequence_files/t0010-RI.text (100%) rename {test => src/test}/escape_sequence_files/t0011-RI_scroll.in (100%) rename {test => src/test}/escape_sequence_files/t0011-RI_scroll.text (100%) rename {test => src/test}/escape_sequence_files/t0012-VT.in (100%) rename {test => src/test}/escape_sequence_files/t0012-VT.text (100%) rename {test => src/test}/escape_sequence_files/t0013-FF.in (100%) rename {test => src/test}/escape_sequence_files/t0013-FF.text (100%) rename {test => src/test}/escape_sequence_files/t0014-CAN.in (100%) rename {test => src/test}/escape_sequence_files/t0014-CAN.text (100%) rename {test => src/test}/escape_sequence_files/t0015-SUB.in (100%) rename {test => src/test}/escape_sequence_files/t0015-SUB.text (100%) rename {test => src/test}/escape_sequence_files/t0016-SU.in (100%) rename {test => src/test}/escape_sequence_files/t0016-SU.text (100%) rename {test => src/test}/escape_sequence_files/t0017-SD.in (100%) rename {test => src/test}/escape_sequence_files/t0017-SD.text (100%) rename {test => src/test}/escape_sequence_files/t0020-CUF.in (100%) rename {test => src/test}/escape_sequence_files/t0020-CUF.text (100%) rename {test => src/test}/escape_sequence_files/t0021-CUB.in (100%) rename {test => src/test}/escape_sequence_files/t0021-CUB.text (100%) rename {test => src/test}/escape_sequence_files/t0022-CUU.in (100%) rename {test => src/test}/escape_sequence_files/t0022-CUU.text (100%) rename {test => src/test}/escape_sequence_files/t0023-CUU_scroll.in (100%) rename {test => src/test}/escape_sequence_files/t0023-CUU_scroll.text (100%) rename {test => src/test}/escape_sequence_files/t0024-CUD.in (100%) rename {test => src/test}/escape_sequence_files/t0024-CUD.text (100%) rename {test => src/test}/escape_sequence_files/t0025-CUP.in (100%) rename {test => src/test}/escape_sequence_files/t0025-CUP.text (100%) rename {test => src/test}/escape_sequence_files/t0026-CNL.in (100%) rename {test => src/test}/escape_sequence_files/t0026-CNL.text (100%) rename {test => src/test}/escape_sequence_files/t0027-CPL.in (100%) rename {test => src/test}/escape_sequence_files/t0027-CPL.text (100%) rename {test => src/test}/escape_sequence_files/t0030-HPR.in (100%) rename {test => src/test}/escape_sequence_files/t0030-HPR.text (100%) rename {test => src/test}/escape_sequence_files/t0031-HPB.in_ (100%) rename {test => src/test}/escape_sequence_files/t0031-HPB.text (100%) rename {test => src/test}/escape_sequence_files/t0032-VPB.in (100%) rename {test => src/test}/escape_sequence_files/t0032-VPB.text (100%) rename {test => src/test}/escape_sequence_files/t0033-VPB_scroll.in (100%) rename {test => src/test}/escape_sequence_files/t0033-VPB_scroll.text (100%) rename {test => src/test}/escape_sequence_files/t0034-VPR.in (100%) rename {test => src/test}/escape_sequence_files/t0034-VPR.text (100%) rename {test => src/test}/escape_sequence_files/t0035-HVP.in (100%) rename {test => src/test}/escape_sequence_files/t0035-HVP.text (100%) rename {test => src/test}/escape_sequence_files/t0040-REP.in (100%) rename {test => src/test}/escape_sequence_files/t0040-REP.text (100%) rename {test => src/test}/escape_sequence_files/t0050-ICH.in (100%) rename {test => src/test}/escape_sequence_files/t0050-ICH.text (100%) rename {test => src/test}/escape_sequence_files/t0051-IL.in (100%) rename {test => src/test}/escape_sequence_files/t0051-IL.text (100%) rename {test => src/test}/escape_sequence_files/t0052-DL.in (100%) rename {test => src/test}/escape_sequence_files/t0052-DL.text (100%) rename {test => src/test}/escape_sequence_files/t0053-DCH.in (100%) rename {test => src/test}/escape_sequence_files/t0053-DCH.text (100%) rename {test => src/test}/escape_sequence_files/t0054-ECH.in (100%) rename {test => src/test}/escape_sequence_files/t0054-ECH.text (100%) rename {test => src/test}/escape_sequence_files/t0055-EL.in (100%) rename {test => src/test}/escape_sequence_files/t0055-EL.text (100%) rename {test => src/test}/escape_sequence_files/t0056-ED.in (100%) rename {test => src/test}/escape_sequence_files/t0056-ED.text (100%) rename {test => src/test}/escape_sequence_files/t0057-ED3.in (100%) rename {test => src/test}/escape_sequence_files/t0057-ED3.note (100%) rename {test => src/test}/escape_sequence_files/t0057-ED3.text (100%) rename {test => src/test}/escape_sequence_files/t0060-DECSC.in (100%) rename {test => src/test}/escape_sequence_files/t0060-DECSC.text (100%) rename {test => src/test}/escape_sequence_files/t0061-CSI_s.in (100%) rename {test => src/test}/escape_sequence_files/t0061-CSI_s.text (100%) rename {test => src/test}/escape_sequence_files/t0070-DECSTBM_LF.in (100%) rename {test => src/test}/escape_sequence_files/t0070-DECSTBM_LF.text (100%) rename {test => src/test}/escape_sequence_files/t0071-DECSTBM_IND.in (100%) rename {test => src/test}/escape_sequence_files/t0071-DECSTBM_IND.text (100%) rename {test => src/test}/escape_sequence_files/t0072-DECSTBM_NEL.in (100%) rename {test => src/test}/escape_sequence_files/t0072-DECSTBM_NEL.text (100%) rename {test => src/test}/escape_sequence_files/t0073-DECSTBM_RI.in (100%) rename {test => src/test}/escape_sequence_files/t0073-DECSTBM_RI.text (100%) rename {test => src/test}/escape_sequence_files/t0074-DECSTBM_SU_SD.in (100%) rename {test => src/test}/escape_sequence_files/t0074-DECSTBM_SU_SD.text (100%) rename {test => src/test}/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in (100%) rename {test => src/test}/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text (100%) rename {test => src/test}/escape_sequence_files/t0076-DECSTBM_IL_DL.in (100%) rename {test => src/test}/escape_sequence_files/t0076-DECSTBM_IL_DL.text (100%) rename {test => src/test}/escape_sequence_files/t0077-DECSTBM_quirks.in (100%) rename {test => src/test}/escape_sequence_files/t0077-DECSTBM_quirks.text (100%) rename {test => src/test}/escape_sequence_files/t0080-HT.in (100%) rename {test => src/test}/escape_sequence_files/t0080-HT.text (100%) rename {test => src/test}/escape_sequence_files/t0081-TBC.in (100%) rename {test => src/test}/escape_sequence_files/t0081-TBC.text (100%) rename {test => src/test}/escape_sequence_files/t0082-HTS.in (100%) rename {test => src/test}/escape_sequence_files/t0082-HTS.text (100%) rename {test => src/test}/escape_sequence_files/t0083-CHT.in (100%) rename {test => src/test}/escape_sequence_files/t0083-CHT.text (100%) rename {test => src/test}/escape_sequence_files/t0084-CBT.in (100%) rename {test => src/test}/escape_sequence_files/t0084-CBT.text (100%) rename {test => src/test}/escape_sequence_files/t0084-CBT.text-xterm (100%) rename {test => src/test}/escape_sequence_files/t0090-alt_screen.in (100%) rename {test => src/test}/escape_sequence_files/t0090-alt_screen.text (100%) rename {test => src/test}/escape_sequence_files/t0091-alt_screen_ED3.in (100%) rename {test => src/test}/escape_sequence_files/t0091-alt_screen_ED3.text (100%) rename {test => src/test}/escape_sequence_files/t0092-alt_screen_DECSC.in (100%) rename {test => src/test}/escape_sequence_files/t0092-alt_screen_DECSC.text (100%) rename {test => src/test}/escape_sequence_files/t0100-IRM.in (100%) rename {test => src/test}/escape_sequence_files/t0100-IRM.text (100%) rename {test => src/test}/escape_sequence_files/t0101-NLM.in (100%) rename {test => src/test}/escape_sequence_files/t0101-NLM.text (100%) rename {test => src/test}/escape_sequence_files/t0102-DECAWM.in (100%) rename {test => src/test}/escape_sequence_files/t0102-DECAWM.text (100%) rename {test => src/test}/escape_sequence_files/t0103-reverse_wrap.in (100%) rename {test => src/test}/escape_sequence_files/t0103-reverse_wrap.text (100%) rename {test => src/test}/escape_sequence_files/t0200-SGR.html (100%) rename {test => src/test}/escape_sequence_files/t0200-SGR.in_ (100%) rename {test => src/test}/escape_sequence_files/t0220-SGR_inverse.html (100%) rename {test => src/test}/escape_sequence_files/t0220-SGR_inverse.in_ (100%) rename {test => src/test}/escape_sequence_files/t0500-bash_long_line.in (100%) rename {test => src/test}/escape_sequence_files/t0500-bash_long_line.text (100%) rename {test => src/test}/escape_sequence_files/t0501-bash_ls.in (100%) rename {test => src/test}/escape_sequence_files/t0501-bash_ls.text (100%) rename {test => src/test}/escape_sequence_files/t0502-bash_ls_color.in (100%) rename {test => src/test}/escape_sequence_files/t0502-bash_ls_color.text (100%) rename {test => src/test}/escape_sequence_files/t0503-zsh_ls_color.in (100%) rename {test => src/test}/escape_sequence_files/t0503-zsh_ls_color.text (100%) rename {test => src/test}/escape_sequence_files/t0504-vim.in (100%) rename {test => src/test}/escape_sequence_files/t0504-vim.text (100%) rename {test => src/test}/test.js (99%) rename {test => src/test}/viewport-test.js (98%) diff --git a/.gitignore b/.gitignore index 2e91366a..efa028b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ node_modules/ *.swp -build/* .lock-wscript out/ Makefile.gyp @@ -12,3 +11,4 @@ docs/ npm-debug.log /.idea/ .env +dist/* diff --git a/bin/build b/bin/build index 8ec5cbdf..00a73236 100755 --- a/bin/build +++ b/bin/build @@ -1,5 +1,17 @@ -#! /usr/bin/env sh +#! /usr/bin/env bash -mkdir -p build -browserify src/xterm.js --standalone Terminal -p [ tsify ] --outfile build/xterm.js -cp src/xterm.css build/xterm.css +# Build all TypeScript files (including tests) to out/ +tsc + +# Concat all xterm.js files into a single file and output as a UMD to dist/xterm.js +browserify out/xterm.js --standalone Terminal -p [ tsify ] --outfile dist/xterm.js + +# Copy all CSS files from src/ to dist/ +cd src +find . -name '*.css' | cpio -pdm ../dist +cd .. + +# Copy addons from out/ to dist/ +cd out/addons +find . -name '*.js' | cpio -pdm ../../dist/addons +cd ../.. diff --git a/demo/app.js b/demo/app.js index 353482ed..a4122ace 100644 --- a/demo/app.js +++ b/demo/app.js @@ -8,7 +8,6 @@ var terminals = {}, logs = {}; app.use('/build', express.static(__dirname + '/../build')); -app.use('/addons', express.static(__dirname + '/../addons')); app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); diff --git a/demo/index.html b/demo/index.html index 5325949a..ae42540f 100644 --- a/demo/index.html +++ b/demo/index.html @@ -3,13 +3,13 @@ xterm.js demo - + - - - - + + + +

xterm.js: xterm, in the browser

diff --git a/package.json b/package.json index d35d6087..bb3823bd 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "typescript": "^2.0.3" }, "scripts": { - "start": "nodemon --watch src --watch addons --exec bash -c './bin/build && node demo/app'", - "test": "./bin/build && mocha --recursive ./test/*test.js ./test/**/*test.js", + "start": "nodemon --watch src --watch addons --watch demo --exec bash -c './bin/build && node demo/app'", + "test": "./bin/build && mocha --recursive ./out", "build:docs": "jsdoc -c jsdoc.json", "build": "./bin/build" } diff --git a/addons/attach/attach.js b/src/addons/attach/attach.js similarity index 97% rename from addons/attach/attach.js rename to src/addons/attach/attach.js index b74627d1..769a7e53 100644 --- a/addons/attach/attach.js +++ b/src/addons/attach/attach.js @@ -11,12 +11,12 @@ /* * CommonJS environment */ - module.exports = attach(require('../../dist/xterm')); + module.exports = attach(require('../../xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../dist/xterm'], attach); + define(['../../xterm'], attach); } else { /* * Plain browser environment diff --git a/addons/attach/index.html b/src/addons/attach/index.html similarity index 100% rename from addons/attach/index.html rename to src/addons/attach/index.html diff --git a/addons/attach/package.json b/src/addons/attach/package.json similarity index 100% rename from addons/attach/package.json rename to src/addons/attach/package.json diff --git a/addons/fit/fit.js b/src/addons/fit/fit.js similarity index 96% rename from addons/fit/fit.js rename to src/addons/fit/fit.js index 7657c9c4..7e24fd9b 100644 --- a/addons/fit/fit.js +++ b/src/addons/fit/fit.js @@ -16,12 +16,12 @@ /* * CommonJS environment */ - module.exports = fit(require('../../dist/xterm')); + module.exports = fit(require('../../xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../dist/xterm'], fit); + define(['../../xterm'], fit); } else { /* * Plain browser environment diff --git a/addons/fit/package.json b/src/addons/fit/package.json similarity index 100% rename from addons/fit/package.json rename to src/addons/fit/package.json diff --git a/addons/fullscreen/fullscreen.css b/src/addons/fullscreen/fullscreen.css similarity index 100% rename from addons/fullscreen/fullscreen.css rename to src/addons/fullscreen/fullscreen.css diff --git a/addons/fullscreen/fullscreen.js b/src/addons/fullscreen/fullscreen.js similarity index 91% rename from addons/fullscreen/fullscreen.js rename to src/addons/fullscreen/fullscreen.js index 1579a9c2..e4098f48 100644 --- a/addons/fullscreen/fullscreen.js +++ b/src/addons/fullscreen/fullscreen.js @@ -15,12 +15,12 @@ /* * CommonJS environment */ - module.exports = fullscreen(require('../../dist/xterm')); + module.exports = fullscreen(require('../../xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../dist/xterm'], fullscreen); + define(['../../xterm'], fullscreen); } else { /* * Plain browser environment diff --git a/addons/fullscreen/package.json b/src/addons/fullscreen/package.json similarity index 100% rename from addons/fullscreen/package.json rename to src/addons/fullscreen/package.json diff --git a/addons/linkify/index.html b/src/addons/linkify/index.html similarity index 100% rename from addons/linkify/index.html rename to src/addons/linkify/index.html diff --git a/addons/linkify/linkify.js b/src/addons/linkify/linkify.js similarity index 98% rename from addons/linkify/linkify.js rename to src/addons/linkify/linkify.js index 8ee9611c..2140c0aa 100644 --- a/addons/linkify/linkify.js +++ b/src/addons/linkify/linkify.js @@ -3,12 +3,12 @@ /* * CommonJS environment */ - module.exports = linkify(require('../../dist/xterm')); + module.exports = linkify(require('../../xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../dist/xterm'], linkify); + define(['../../xterm'], linkify); } else { /* * Plain browser environment diff --git a/addons/linkify/package.json b/src/addons/linkify/package.json similarity index 100% rename from addons/linkify/package.json rename to src/addons/linkify/package.json diff --git a/addons/terminado/package.json b/src/addons/terminado/package.json similarity index 100% rename from addons/terminado/package.json rename to src/addons/terminado/package.json diff --git a/addons/terminado/terminado.js b/src/addons/terminado/terminado.js similarity index 97% rename from addons/terminado/terminado.js rename to src/addons/terminado/terminado.js index 06d70c51..e17a188a 100644 --- a/addons/terminado/terminado.js +++ b/src/addons/terminado/terminado.js @@ -11,12 +11,12 @@ /* * CommonJS environment */ - module.exports = attach(require('../../src/xterm')); + module.exports = attach(require('../../xterm')); } else if (typeof define == 'function') { /* * Require.js is available */ - define(['../../src/xterm'], attach); + define(['../../xterm'], attach); } else { /* * Plain browser environment diff --git a/test/addons/linkify-test.js b/src/test/addons/linkify-test.js similarity index 98% rename from test/addons/linkify-test.js rename to src/test/addons/linkify-test.js index ff871002..285bfbb1 100644 --- a/test/addons/linkify-test.js +++ b/src/test/addons/linkify-test.js @@ -1,5 +1,5 @@ var assert = require('chai').assert; -var Terminal = require('../../dist/xterm'); +var Terminal = require('../../xterm'); var linkify = require('../../addons/linkify/linkify'); describe('linkify addon', function () { diff --git a/test/addons/test.js b/src/test/addons/test.js similarity index 59% rename from test/addons/test.js rename to src/test/addons/test.js index ddd79ff6..42ede9db 100644 --- a/test/addons/test.js +++ b/src/test/addons/test.js @@ -1,11 +1,10 @@ var assert = require('chai').assert; -var Terminal = require('../../src/xterm'); -var distTerminal = require('../../dist/xterm'); +var Terminal = require('../../xterm'); describe('xterm.js addons', function() { it('should load addons with Terminal.loadAddon', function () { Terminal.loadAddon('attach'); // Test that addon was loaded successfully - assert.equal(typeof distTerminal.prototype.attach, 'function'); + assert.equal(typeof Terminal.prototype.attach, 'function'); }); }); diff --git a/test/clipboard-test.js b/src/test/clipboard-test.js similarity index 85% rename from test/clipboard-test.js rename to src/test/clipboard-test.js index f1688df1..12eeb517 100644 --- a/test/clipboard-test.js +++ b/src/test/clipboard-test.js @@ -1,6 +1,6 @@ var assert = require('chai').assert; -var Terminal = require('../src/xterm'); -var Clipboard = require('../src/handlers/Clipboard'); +var Terminal = require('../xterm'); +var Clipboard = require('../handlers/Clipboard'); describe('evaluateCopiedTextProcessing', function () { diff --git a/test/composition-helper-test.js b/src/test/composition-helper-test.js similarity index 99% rename from test/composition-helper-test.js rename to src/test/composition-helper-test.js index 52add91b..192df05d 100644 --- a/test/composition-helper-test.js +++ b/src/test/composition-helper-test.js @@ -1,5 +1,5 @@ var assert = require('chai').assert; -var Terminal = require('../build/xterm'); +var Terminal = require('../xterm'); describe('CompositionHelper', function () { var terminal; diff --git a/test/escape-sequences-test.js b/src/test/escape-sequences-test.js similarity index 96% rename from test/escape-sequences-test.js rename to src/test/escape-sequences-test.js index 39f4f4ee..2eb60165 100644 --- a/test/escape-sequences-test.js +++ b/src/test/escape-sequences-test.js @@ -2,7 +2,7 @@ var glob = require('glob'); var fs = require('fs'); var pty = require('pty.js'); var sleep = require('sleep'); -var Terminal = require('../build/xterm'); +var Terminal = require('../xterm'); var CONSOLE_LOG = console.log; @@ -80,9 +80,10 @@ describe('xterm output comparison', function() { // omit stack trace for escape sequence files Error.stackTraceLimit = 0; - var files = glob.sync('test/escape_sequence_files/*.in'); + var files = glob.sync('**/escape_sequence_files/*.in'); // only successful tests for now var successful = [0, 2, 6, 12, 13, 18, 20, 22, 27, 28]; + console.log(files); for (var a in successful) { var i = successful[a]; (function(filename){ diff --git a/test/escape_sequence_files/NOTES b/src/test/escape_sequence_files/NOTES similarity index 100% rename from test/escape_sequence_files/NOTES rename to src/test/escape_sequence_files/NOTES diff --git a/test/escape_sequence_files/t0001-all_printable.in b/src/test/escape_sequence_files/t0001-all_printable.in similarity index 100% rename from test/escape_sequence_files/t0001-all_printable.in rename to src/test/escape_sequence_files/t0001-all_printable.in diff --git a/test/escape_sequence_files/t0001-all_printable.text b/src/test/escape_sequence_files/t0001-all_printable.text similarity index 100% rename from test/escape_sequence_files/t0001-all_printable.text rename to src/test/escape_sequence_files/t0001-all_printable.text diff --git a/test/escape_sequence_files/t0002-history.in b/src/test/escape_sequence_files/t0002-history.in similarity index 100% rename from test/escape_sequence_files/t0002-history.in rename to src/test/escape_sequence_files/t0002-history.in diff --git a/test/escape_sequence_files/t0002-history.text b/src/test/escape_sequence_files/t0002-history.text similarity index 100% rename from test/escape_sequence_files/t0002-history.text rename to src/test/escape_sequence_files/t0002-history.text diff --git a/test/escape_sequence_files/t0002j-simple_string.in b/src/test/escape_sequence_files/t0002j-simple_string.in similarity index 100% rename from test/escape_sequence_files/t0002j-simple_string.in rename to src/test/escape_sequence_files/t0002j-simple_string.in diff --git a/test/escape_sequence_files/t0002j-simple_string.text b/src/test/escape_sequence_files/t0002j-simple_string.text similarity index 100% rename from test/escape_sequence_files/t0002j-simple_string.text rename to src/test/escape_sequence_files/t0002j-simple_string.text diff --git a/test/escape_sequence_files/t0003-line_wrap.in b/src/test/escape_sequence_files/t0003-line_wrap.in similarity index 100% rename from test/escape_sequence_files/t0003-line_wrap.in rename to src/test/escape_sequence_files/t0003-line_wrap.in diff --git a/test/escape_sequence_files/t0003-line_wrap.text b/src/test/escape_sequence_files/t0003-line_wrap.text similarity index 100% rename from test/escape_sequence_files/t0003-line_wrap.text rename to src/test/escape_sequence_files/t0003-line_wrap.text diff --git a/test/escape_sequence_files/t0003j-LF.in b/src/test/escape_sequence_files/t0003j-LF.in similarity index 100% rename from test/escape_sequence_files/t0003j-LF.in rename to src/test/escape_sequence_files/t0003j-LF.in diff --git a/test/escape_sequence_files/t0003j-LF.text b/src/test/escape_sequence_files/t0003j-LF.text similarity index 100% rename from test/escape_sequence_files/t0003j-LF.text rename to src/test/escape_sequence_files/t0003j-LF.text diff --git a/test/escape_sequence_files/t0004-LF.in b/src/test/escape_sequence_files/t0004-LF.in similarity index 100% rename from test/escape_sequence_files/t0004-LF.in rename to src/test/escape_sequence_files/t0004-LF.in diff --git a/test/escape_sequence_files/t0004-LF.text b/src/test/escape_sequence_files/t0004-LF.text similarity index 100% rename from test/escape_sequence_files/t0004-LF.text rename to src/test/escape_sequence_files/t0004-LF.text diff --git a/test/escape_sequence_files/t0004j-CR.in b/src/test/escape_sequence_files/t0004j-CR.in similarity index 100% rename from test/escape_sequence_files/t0004j-CR.in rename to src/test/escape_sequence_files/t0004j-CR.in diff --git a/test/escape_sequence_files/t0004j-CR.text b/src/test/escape_sequence_files/t0004j-CR.text similarity index 100% rename from test/escape_sequence_files/t0004j-CR.text rename to src/test/escape_sequence_files/t0004j-CR.text diff --git a/test/escape_sequence_files/t0005-CR.in b/src/test/escape_sequence_files/t0005-CR.in similarity index 100% rename from test/escape_sequence_files/t0005-CR.in rename to src/test/escape_sequence_files/t0005-CR.in diff --git a/test/escape_sequence_files/t0005-CR.text b/src/test/escape_sequence_files/t0005-CR.text similarity index 100% rename from test/escape_sequence_files/t0005-CR.text rename to src/test/escape_sequence_files/t0005-CR.text diff --git a/test/escape_sequence_files/t0006-IND.in b/src/test/escape_sequence_files/t0006-IND.in similarity index 100% rename from test/escape_sequence_files/t0006-IND.in rename to src/test/escape_sequence_files/t0006-IND.in diff --git a/test/escape_sequence_files/t0006-IND.text b/src/test/escape_sequence_files/t0006-IND.text similarity index 100% rename from test/escape_sequence_files/t0006-IND.text rename to src/test/escape_sequence_files/t0006-IND.text diff --git a/test/escape_sequence_files/t0007-space_at_end.in b/src/test/escape_sequence_files/t0007-space_at_end.in similarity index 100% rename from test/escape_sequence_files/t0007-space_at_end.in rename to src/test/escape_sequence_files/t0007-space_at_end.in diff --git a/test/escape_sequence_files/t0007-space_at_end.text b/src/test/escape_sequence_files/t0007-space_at_end.text similarity index 100% rename from test/escape_sequence_files/t0007-space_at_end.text rename to src/test/escape_sequence_files/t0007-space_at_end.text diff --git a/test/escape_sequence_files/t0008-BS.in b/src/test/escape_sequence_files/t0008-BS.in similarity index 100% rename from test/escape_sequence_files/t0008-BS.in rename to src/test/escape_sequence_files/t0008-BS.in diff --git a/test/escape_sequence_files/t0008-BS.text b/src/test/escape_sequence_files/t0008-BS.text similarity index 100% rename from test/escape_sequence_files/t0008-BS.text rename to src/test/escape_sequence_files/t0008-BS.text diff --git a/test/escape_sequence_files/t0009-NEL.in b/src/test/escape_sequence_files/t0009-NEL.in similarity index 100% rename from test/escape_sequence_files/t0009-NEL.in rename to src/test/escape_sequence_files/t0009-NEL.in diff --git a/test/escape_sequence_files/t0009-NEL.text b/src/test/escape_sequence_files/t0009-NEL.text similarity index 100% rename from test/escape_sequence_files/t0009-NEL.text rename to src/test/escape_sequence_files/t0009-NEL.text diff --git a/test/escape_sequence_files/t0010-RI.in b/src/test/escape_sequence_files/t0010-RI.in similarity index 100% rename from test/escape_sequence_files/t0010-RI.in rename to src/test/escape_sequence_files/t0010-RI.in diff --git a/test/escape_sequence_files/t0010-RI.text b/src/test/escape_sequence_files/t0010-RI.text similarity index 100% rename from test/escape_sequence_files/t0010-RI.text rename to src/test/escape_sequence_files/t0010-RI.text diff --git a/test/escape_sequence_files/t0011-RI_scroll.in b/src/test/escape_sequence_files/t0011-RI_scroll.in similarity index 100% rename from test/escape_sequence_files/t0011-RI_scroll.in rename to src/test/escape_sequence_files/t0011-RI_scroll.in diff --git a/test/escape_sequence_files/t0011-RI_scroll.text b/src/test/escape_sequence_files/t0011-RI_scroll.text similarity index 100% rename from test/escape_sequence_files/t0011-RI_scroll.text rename to src/test/escape_sequence_files/t0011-RI_scroll.text diff --git a/test/escape_sequence_files/t0012-VT.in b/src/test/escape_sequence_files/t0012-VT.in similarity index 100% rename from test/escape_sequence_files/t0012-VT.in rename to src/test/escape_sequence_files/t0012-VT.in diff --git a/test/escape_sequence_files/t0012-VT.text b/src/test/escape_sequence_files/t0012-VT.text similarity index 100% rename from test/escape_sequence_files/t0012-VT.text rename to src/test/escape_sequence_files/t0012-VT.text diff --git a/test/escape_sequence_files/t0013-FF.in b/src/test/escape_sequence_files/t0013-FF.in similarity index 100% rename from test/escape_sequence_files/t0013-FF.in rename to src/test/escape_sequence_files/t0013-FF.in diff --git a/test/escape_sequence_files/t0013-FF.text b/src/test/escape_sequence_files/t0013-FF.text similarity index 100% rename from test/escape_sequence_files/t0013-FF.text rename to src/test/escape_sequence_files/t0013-FF.text diff --git a/test/escape_sequence_files/t0014-CAN.in b/src/test/escape_sequence_files/t0014-CAN.in similarity index 100% rename from test/escape_sequence_files/t0014-CAN.in rename to src/test/escape_sequence_files/t0014-CAN.in diff --git a/test/escape_sequence_files/t0014-CAN.text b/src/test/escape_sequence_files/t0014-CAN.text similarity index 100% rename from test/escape_sequence_files/t0014-CAN.text rename to src/test/escape_sequence_files/t0014-CAN.text diff --git a/test/escape_sequence_files/t0015-SUB.in b/src/test/escape_sequence_files/t0015-SUB.in similarity index 100% rename from test/escape_sequence_files/t0015-SUB.in rename to src/test/escape_sequence_files/t0015-SUB.in diff --git a/test/escape_sequence_files/t0015-SUB.text b/src/test/escape_sequence_files/t0015-SUB.text similarity index 100% rename from test/escape_sequence_files/t0015-SUB.text rename to src/test/escape_sequence_files/t0015-SUB.text diff --git a/test/escape_sequence_files/t0016-SU.in b/src/test/escape_sequence_files/t0016-SU.in similarity index 100% rename from test/escape_sequence_files/t0016-SU.in rename to src/test/escape_sequence_files/t0016-SU.in diff --git a/test/escape_sequence_files/t0016-SU.text b/src/test/escape_sequence_files/t0016-SU.text similarity index 100% rename from test/escape_sequence_files/t0016-SU.text rename to src/test/escape_sequence_files/t0016-SU.text diff --git a/test/escape_sequence_files/t0017-SD.in b/src/test/escape_sequence_files/t0017-SD.in similarity index 100% rename from test/escape_sequence_files/t0017-SD.in rename to src/test/escape_sequence_files/t0017-SD.in diff --git a/test/escape_sequence_files/t0017-SD.text b/src/test/escape_sequence_files/t0017-SD.text similarity index 100% rename from test/escape_sequence_files/t0017-SD.text rename to src/test/escape_sequence_files/t0017-SD.text diff --git a/test/escape_sequence_files/t0020-CUF.in b/src/test/escape_sequence_files/t0020-CUF.in similarity index 100% rename from test/escape_sequence_files/t0020-CUF.in rename to src/test/escape_sequence_files/t0020-CUF.in diff --git a/test/escape_sequence_files/t0020-CUF.text b/src/test/escape_sequence_files/t0020-CUF.text similarity index 100% rename from test/escape_sequence_files/t0020-CUF.text rename to src/test/escape_sequence_files/t0020-CUF.text diff --git a/test/escape_sequence_files/t0021-CUB.in b/src/test/escape_sequence_files/t0021-CUB.in similarity index 100% rename from test/escape_sequence_files/t0021-CUB.in rename to src/test/escape_sequence_files/t0021-CUB.in diff --git a/test/escape_sequence_files/t0021-CUB.text b/src/test/escape_sequence_files/t0021-CUB.text similarity index 100% rename from test/escape_sequence_files/t0021-CUB.text rename to src/test/escape_sequence_files/t0021-CUB.text diff --git a/test/escape_sequence_files/t0022-CUU.in b/src/test/escape_sequence_files/t0022-CUU.in similarity index 100% rename from test/escape_sequence_files/t0022-CUU.in rename to src/test/escape_sequence_files/t0022-CUU.in diff --git a/test/escape_sequence_files/t0022-CUU.text b/src/test/escape_sequence_files/t0022-CUU.text similarity index 100% rename from test/escape_sequence_files/t0022-CUU.text rename to src/test/escape_sequence_files/t0022-CUU.text diff --git a/test/escape_sequence_files/t0023-CUU_scroll.in b/src/test/escape_sequence_files/t0023-CUU_scroll.in similarity index 100% rename from test/escape_sequence_files/t0023-CUU_scroll.in rename to src/test/escape_sequence_files/t0023-CUU_scroll.in diff --git a/test/escape_sequence_files/t0023-CUU_scroll.text b/src/test/escape_sequence_files/t0023-CUU_scroll.text similarity index 100% rename from test/escape_sequence_files/t0023-CUU_scroll.text rename to src/test/escape_sequence_files/t0023-CUU_scroll.text diff --git a/test/escape_sequence_files/t0024-CUD.in b/src/test/escape_sequence_files/t0024-CUD.in similarity index 100% rename from test/escape_sequence_files/t0024-CUD.in rename to src/test/escape_sequence_files/t0024-CUD.in diff --git a/test/escape_sequence_files/t0024-CUD.text b/src/test/escape_sequence_files/t0024-CUD.text similarity index 100% rename from test/escape_sequence_files/t0024-CUD.text rename to src/test/escape_sequence_files/t0024-CUD.text diff --git a/test/escape_sequence_files/t0025-CUP.in b/src/test/escape_sequence_files/t0025-CUP.in similarity index 100% rename from test/escape_sequence_files/t0025-CUP.in rename to src/test/escape_sequence_files/t0025-CUP.in diff --git a/test/escape_sequence_files/t0025-CUP.text b/src/test/escape_sequence_files/t0025-CUP.text similarity index 100% rename from test/escape_sequence_files/t0025-CUP.text rename to src/test/escape_sequence_files/t0025-CUP.text diff --git a/test/escape_sequence_files/t0026-CNL.in b/src/test/escape_sequence_files/t0026-CNL.in similarity index 100% rename from test/escape_sequence_files/t0026-CNL.in rename to src/test/escape_sequence_files/t0026-CNL.in diff --git a/test/escape_sequence_files/t0026-CNL.text b/src/test/escape_sequence_files/t0026-CNL.text similarity index 100% rename from test/escape_sequence_files/t0026-CNL.text rename to src/test/escape_sequence_files/t0026-CNL.text diff --git a/test/escape_sequence_files/t0027-CPL.in b/src/test/escape_sequence_files/t0027-CPL.in similarity index 100% rename from test/escape_sequence_files/t0027-CPL.in rename to src/test/escape_sequence_files/t0027-CPL.in diff --git a/test/escape_sequence_files/t0027-CPL.text b/src/test/escape_sequence_files/t0027-CPL.text similarity index 100% rename from test/escape_sequence_files/t0027-CPL.text rename to src/test/escape_sequence_files/t0027-CPL.text diff --git a/test/escape_sequence_files/t0030-HPR.in b/src/test/escape_sequence_files/t0030-HPR.in similarity index 100% rename from test/escape_sequence_files/t0030-HPR.in rename to src/test/escape_sequence_files/t0030-HPR.in diff --git a/test/escape_sequence_files/t0030-HPR.text b/src/test/escape_sequence_files/t0030-HPR.text similarity index 100% rename from test/escape_sequence_files/t0030-HPR.text rename to src/test/escape_sequence_files/t0030-HPR.text diff --git a/test/escape_sequence_files/t0031-HPB.in_ b/src/test/escape_sequence_files/t0031-HPB.in_ similarity index 100% rename from test/escape_sequence_files/t0031-HPB.in_ rename to src/test/escape_sequence_files/t0031-HPB.in_ diff --git a/test/escape_sequence_files/t0031-HPB.text b/src/test/escape_sequence_files/t0031-HPB.text similarity index 100% rename from test/escape_sequence_files/t0031-HPB.text rename to src/test/escape_sequence_files/t0031-HPB.text diff --git a/test/escape_sequence_files/t0032-VPB.in b/src/test/escape_sequence_files/t0032-VPB.in similarity index 100% rename from test/escape_sequence_files/t0032-VPB.in rename to src/test/escape_sequence_files/t0032-VPB.in diff --git a/test/escape_sequence_files/t0032-VPB.text b/src/test/escape_sequence_files/t0032-VPB.text similarity index 100% rename from test/escape_sequence_files/t0032-VPB.text rename to src/test/escape_sequence_files/t0032-VPB.text diff --git a/test/escape_sequence_files/t0033-VPB_scroll.in b/src/test/escape_sequence_files/t0033-VPB_scroll.in similarity index 100% rename from test/escape_sequence_files/t0033-VPB_scroll.in rename to src/test/escape_sequence_files/t0033-VPB_scroll.in diff --git a/test/escape_sequence_files/t0033-VPB_scroll.text b/src/test/escape_sequence_files/t0033-VPB_scroll.text similarity index 100% rename from test/escape_sequence_files/t0033-VPB_scroll.text rename to src/test/escape_sequence_files/t0033-VPB_scroll.text diff --git a/test/escape_sequence_files/t0034-VPR.in b/src/test/escape_sequence_files/t0034-VPR.in similarity index 100% rename from test/escape_sequence_files/t0034-VPR.in rename to src/test/escape_sequence_files/t0034-VPR.in diff --git a/test/escape_sequence_files/t0034-VPR.text b/src/test/escape_sequence_files/t0034-VPR.text similarity index 100% rename from test/escape_sequence_files/t0034-VPR.text rename to src/test/escape_sequence_files/t0034-VPR.text diff --git a/test/escape_sequence_files/t0035-HVP.in b/src/test/escape_sequence_files/t0035-HVP.in similarity index 100% rename from test/escape_sequence_files/t0035-HVP.in rename to src/test/escape_sequence_files/t0035-HVP.in diff --git a/test/escape_sequence_files/t0035-HVP.text b/src/test/escape_sequence_files/t0035-HVP.text similarity index 100% rename from test/escape_sequence_files/t0035-HVP.text rename to src/test/escape_sequence_files/t0035-HVP.text diff --git a/test/escape_sequence_files/t0040-REP.in b/src/test/escape_sequence_files/t0040-REP.in similarity index 100% rename from test/escape_sequence_files/t0040-REP.in rename to src/test/escape_sequence_files/t0040-REP.in diff --git a/test/escape_sequence_files/t0040-REP.text b/src/test/escape_sequence_files/t0040-REP.text similarity index 100% rename from test/escape_sequence_files/t0040-REP.text rename to src/test/escape_sequence_files/t0040-REP.text diff --git a/test/escape_sequence_files/t0050-ICH.in b/src/test/escape_sequence_files/t0050-ICH.in similarity index 100% rename from test/escape_sequence_files/t0050-ICH.in rename to src/test/escape_sequence_files/t0050-ICH.in diff --git a/test/escape_sequence_files/t0050-ICH.text b/src/test/escape_sequence_files/t0050-ICH.text similarity index 100% rename from test/escape_sequence_files/t0050-ICH.text rename to src/test/escape_sequence_files/t0050-ICH.text diff --git a/test/escape_sequence_files/t0051-IL.in b/src/test/escape_sequence_files/t0051-IL.in similarity index 100% rename from test/escape_sequence_files/t0051-IL.in rename to src/test/escape_sequence_files/t0051-IL.in diff --git a/test/escape_sequence_files/t0051-IL.text b/src/test/escape_sequence_files/t0051-IL.text similarity index 100% rename from test/escape_sequence_files/t0051-IL.text rename to src/test/escape_sequence_files/t0051-IL.text diff --git a/test/escape_sequence_files/t0052-DL.in b/src/test/escape_sequence_files/t0052-DL.in similarity index 100% rename from test/escape_sequence_files/t0052-DL.in rename to src/test/escape_sequence_files/t0052-DL.in diff --git a/test/escape_sequence_files/t0052-DL.text b/src/test/escape_sequence_files/t0052-DL.text similarity index 100% rename from test/escape_sequence_files/t0052-DL.text rename to src/test/escape_sequence_files/t0052-DL.text diff --git a/test/escape_sequence_files/t0053-DCH.in b/src/test/escape_sequence_files/t0053-DCH.in similarity index 100% rename from test/escape_sequence_files/t0053-DCH.in rename to src/test/escape_sequence_files/t0053-DCH.in diff --git a/test/escape_sequence_files/t0053-DCH.text b/src/test/escape_sequence_files/t0053-DCH.text similarity index 100% rename from test/escape_sequence_files/t0053-DCH.text rename to src/test/escape_sequence_files/t0053-DCH.text diff --git a/test/escape_sequence_files/t0054-ECH.in b/src/test/escape_sequence_files/t0054-ECH.in similarity index 100% rename from test/escape_sequence_files/t0054-ECH.in rename to src/test/escape_sequence_files/t0054-ECH.in diff --git a/test/escape_sequence_files/t0054-ECH.text b/src/test/escape_sequence_files/t0054-ECH.text similarity index 100% rename from test/escape_sequence_files/t0054-ECH.text rename to src/test/escape_sequence_files/t0054-ECH.text diff --git a/test/escape_sequence_files/t0055-EL.in b/src/test/escape_sequence_files/t0055-EL.in similarity index 100% rename from test/escape_sequence_files/t0055-EL.in rename to src/test/escape_sequence_files/t0055-EL.in diff --git a/test/escape_sequence_files/t0055-EL.text b/src/test/escape_sequence_files/t0055-EL.text similarity index 100% rename from test/escape_sequence_files/t0055-EL.text rename to src/test/escape_sequence_files/t0055-EL.text diff --git a/test/escape_sequence_files/t0056-ED.in b/src/test/escape_sequence_files/t0056-ED.in similarity index 100% rename from test/escape_sequence_files/t0056-ED.in rename to src/test/escape_sequence_files/t0056-ED.in diff --git a/test/escape_sequence_files/t0056-ED.text b/src/test/escape_sequence_files/t0056-ED.text similarity index 100% rename from test/escape_sequence_files/t0056-ED.text rename to src/test/escape_sequence_files/t0056-ED.text diff --git a/test/escape_sequence_files/t0057-ED3.in b/src/test/escape_sequence_files/t0057-ED3.in similarity index 100% rename from test/escape_sequence_files/t0057-ED3.in rename to src/test/escape_sequence_files/t0057-ED3.in diff --git a/test/escape_sequence_files/t0057-ED3.note b/src/test/escape_sequence_files/t0057-ED3.note similarity index 100% rename from test/escape_sequence_files/t0057-ED3.note rename to src/test/escape_sequence_files/t0057-ED3.note diff --git a/test/escape_sequence_files/t0057-ED3.text b/src/test/escape_sequence_files/t0057-ED3.text similarity index 100% rename from test/escape_sequence_files/t0057-ED3.text rename to src/test/escape_sequence_files/t0057-ED3.text diff --git a/test/escape_sequence_files/t0060-DECSC.in b/src/test/escape_sequence_files/t0060-DECSC.in similarity index 100% rename from test/escape_sequence_files/t0060-DECSC.in rename to src/test/escape_sequence_files/t0060-DECSC.in diff --git a/test/escape_sequence_files/t0060-DECSC.text b/src/test/escape_sequence_files/t0060-DECSC.text similarity index 100% rename from test/escape_sequence_files/t0060-DECSC.text rename to src/test/escape_sequence_files/t0060-DECSC.text diff --git a/test/escape_sequence_files/t0061-CSI_s.in b/src/test/escape_sequence_files/t0061-CSI_s.in similarity index 100% rename from test/escape_sequence_files/t0061-CSI_s.in rename to src/test/escape_sequence_files/t0061-CSI_s.in diff --git a/test/escape_sequence_files/t0061-CSI_s.text b/src/test/escape_sequence_files/t0061-CSI_s.text similarity index 100% rename from test/escape_sequence_files/t0061-CSI_s.text rename to src/test/escape_sequence_files/t0061-CSI_s.text diff --git a/test/escape_sequence_files/t0070-DECSTBM_LF.in b/src/test/escape_sequence_files/t0070-DECSTBM_LF.in similarity index 100% rename from test/escape_sequence_files/t0070-DECSTBM_LF.in rename to src/test/escape_sequence_files/t0070-DECSTBM_LF.in diff --git a/test/escape_sequence_files/t0070-DECSTBM_LF.text b/src/test/escape_sequence_files/t0070-DECSTBM_LF.text similarity index 100% rename from test/escape_sequence_files/t0070-DECSTBM_LF.text rename to src/test/escape_sequence_files/t0070-DECSTBM_LF.text diff --git a/test/escape_sequence_files/t0071-DECSTBM_IND.in b/src/test/escape_sequence_files/t0071-DECSTBM_IND.in similarity index 100% rename from test/escape_sequence_files/t0071-DECSTBM_IND.in rename to src/test/escape_sequence_files/t0071-DECSTBM_IND.in diff --git a/test/escape_sequence_files/t0071-DECSTBM_IND.text b/src/test/escape_sequence_files/t0071-DECSTBM_IND.text similarity index 100% rename from test/escape_sequence_files/t0071-DECSTBM_IND.text rename to src/test/escape_sequence_files/t0071-DECSTBM_IND.text diff --git a/test/escape_sequence_files/t0072-DECSTBM_NEL.in b/src/test/escape_sequence_files/t0072-DECSTBM_NEL.in similarity index 100% rename from test/escape_sequence_files/t0072-DECSTBM_NEL.in rename to src/test/escape_sequence_files/t0072-DECSTBM_NEL.in diff --git a/test/escape_sequence_files/t0072-DECSTBM_NEL.text b/src/test/escape_sequence_files/t0072-DECSTBM_NEL.text similarity index 100% rename from test/escape_sequence_files/t0072-DECSTBM_NEL.text rename to src/test/escape_sequence_files/t0072-DECSTBM_NEL.text diff --git a/test/escape_sequence_files/t0073-DECSTBM_RI.in b/src/test/escape_sequence_files/t0073-DECSTBM_RI.in similarity index 100% rename from test/escape_sequence_files/t0073-DECSTBM_RI.in rename to src/test/escape_sequence_files/t0073-DECSTBM_RI.in diff --git a/test/escape_sequence_files/t0073-DECSTBM_RI.text b/src/test/escape_sequence_files/t0073-DECSTBM_RI.text similarity index 100% rename from test/escape_sequence_files/t0073-DECSTBM_RI.text rename to src/test/escape_sequence_files/t0073-DECSTBM_RI.text diff --git a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in b/src/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in similarity index 100% rename from test/escape_sequence_files/t0074-DECSTBM_SU_SD.in rename to src/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in diff --git a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text b/src/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text similarity index 100% rename from test/escape_sequence_files/t0074-DECSTBM_SU_SD.text rename to src/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text diff --git a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in b/src/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in similarity index 100% rename from test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in rename to src/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in diff --git a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text b/src/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text similarity index 100% rename from test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text rename to src/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text diff --git a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in b/src/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in similarity index 100% rename from test/escape_sequence_files/t0076-DECSTBM_IL_DL.in rename to src/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in diff --git a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text b/src/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text similarity index 100% rename from test/escape_sequence_files/t0076-DECSTBM_IL_DL.text rename to src/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text diff --git a/test/escape_sequence_files/t0077-DECSTBM_quirks.in b/src/test/escape_sequence_files/t0077-DECSTBM_quirks.in similarity index 100% rename from test/escape_sequence_files/t0077-DECSTBM_quirks.in rename to src/test/escape_sequence_files/t0077-DECSTBM_quirks.in diff --git a/test/escape_sequence_files/t0077-DECSTBM_quirks.text b/src/test/escape_sequence_files/t0077-DECSTBM_quirks.text similarity index 100% rename from test/escape_sequence_files/t0077-DECSTBM_quirks.text rename to src/test/escape_sequence_files/t0077-DECSTBM_quirks.text diff --git a/test/escape_sequence_files/t0080-HT.in b/src/test/escape_sequence_files/t0080-HT.in similarity index 100% rename from test/escape_sequence_files/t0080-HT.in rename to src/test/escape_sequence_files/t0080-HT.in diff --git a/test/escape_sequence_files/t0080-HT.text b/src/test/escape_sequence_files/t0080-HT.text similarity index 100% rename from test/escape_sequence_files/t0080-HT.text rename to src/test/escape_sequence_files/t0080-HT.text diff --git a/test/escape_sequence_files/t0081-TBC.in b/src/test/escape_sequence_files/t0081-TBC.in similarity index 100% rename from test/escape_sequence_files/t0081-TBC.in rename to src/test/escape_sequence_files/t0081-TBC.in diff --git a/test/escape_sequence_files/t0081-TBC.text b/src/test/escape_sequence_files/t0081-TBC.text similarity index 100% rename from test/escape_sequence_files/t0081-TBC.text rename to src/test/escape_sequence_files/t0081-TBC.text diff --git a/test/escape_sequence_files/t0082-HTS.in b/src/test/escape_sequence_files/t0082-HTS.in similarity index 100% rename from test/escape_sequence_files/t0082-HTS.in rename to src/test/escape_sequence_files/t0082-HTS.in diff --git a/test/escape_sequence_files/t0082-HTS.text b/src/test/escape_sequence_files/t0082-HTS.text similarity index 100% rename from test/escape_sequence_files/t0082-HTS.text rename to src/test/escape_sequence_files/t0082-HTS.text diff --git a/test/escape_sequence_files/t0083-CHT.in b/src/test/escape_sequence_files/t0083-CHT.in similarity index 100% rename from test/escape_sequence_files/t0083-CHT.in rename to src/test/escape_sequence_files/t0083-CHT.in diff --git a/test/escape_sequence_files/t0083-CHT.text b/src/test/escape_sequence_files/t0083-CHT.text similarity index 100% rename from test/escape_sequence_files/t0083-CHT.text rename to src/test/escape_sequence_files/t0083-CHT.text diff --git a/test/escape_sequence_files/t0084-CBT.in b/src/test/escape_sequence_files/t0084-CBT.in similarity index 100% rename from test/escape_sequence_files/t0084-CBT.in rename to src/test/escape_sequence_files/t0084-CBT.in diff --git a/test/escape_sequence_files/t0084-CBT.text b/src/test/escape_sequence_files/t0084-CBT.text similarity index 100% rename from test/escape_sequence_files/t0084-CBT.text rename to src/test/escape_sequence_files/t0084-CBT.text diff --git a/test/escape_sequence_files/t0084-CBT.text-xterm b/src/test/escape_sequence_files/t0084-CBT.text-xterm similarity index 100% rename from test/escape_sequence_files/t0084-CBT.text-xterm rename to src/test/escape_sequence_files/t0084-CBT.text-xterm diff --git a/test/escape_sequence_files/t0090-alt_screen.in b/src/test/escape_sequence_files/t0090-alt_screen.in similarity index 100% rename from test/escape_sequence_files/t0090-alt_screen.in rename to src/test/escape_sequence_files/t0090-alt_screen.in diff --git a/test/escape_sequence_files/t0090-alt_screen.text b/src/test/escape_sequence_files/t0090-alt_screen.text similarity index 100% rename from test/escape_sequence_files/t0090-alt_screen.text rename to src/test/escape_sequence_files/t0090-alt_screen.text diff --git a/test/escape_sequence_files/t0091-alt_screen_ED3.in b/src/test/escape_sequence_files/t0091-alt_screen_ED3.in similarity index 100% rename from test/escape_sequence_files/t0091-alt_screen_ED3.in rename to src/test/escape_sequence_files/t0091-alt_screen_ED3.in diff --git a/test/escape_sequence_files/t0091-alt_screen_ED3.text b/src/test/escape_sequence_files/t0091-alt_screen_ED3.text similarity index 100% rename from test/escape_sequence_files/t0091-alt_screen_ED3.text rename to src/test/escape_sequence_files/t0091-alt_screen_ED3.text diff --git a/test/escape_sequence_files/t0092-alt_screen_DECSC.in b/src/test/escape_sequence_files/t0092-alt_screen_DECSC.in similarity index 100% rename from test/escape_sequence_files/t0092-alt_screen_DECSC.in rename to src/test/escape_sequence_files/t0092-alt_screen_DECSC.in diff --git a/test/escape_sequence_files/t0092-alt_screen_DECSC.text b/src/test/escape_sequence_files/t0092-alt_screen_DECSC.text similarity index 100% rename from test/escape_sequence_files/t0092-alt_screen_DECSC.text rename to src/test/escape_sequence_files/t0092-alt_screen_DECSC.text diff --git a/test/escape_sequence_files/t0100-IRM.in b/src/test/escape_sequence_files/t0100-IRM.in similarity index 100% rename from test/escape_sequence_files/t0100-IRM.in rename to src/test/escape_sequence_files/t0100-IRM.in diff --git a/test/escape_sequence_files/t0100-IRM.text b/src/test/escape_sequence_files/t0100-IRM.text similarity index 100% rename from test/escape_sequence_files/t0100-IRM.text rename to src/test/escape_sequence_files/t0100-IRM.text diff --git a/test/escape_sequence_files/t0101-NLM.in b/src/test/escape_sequence_files/t0101-NLM.in similarity index 100% rename from test/escape_sequence_files/t0101-NLM.in rename to src/test/escape_sequence_files/t0101-NLM.in diff --git a/test/escape_sequence_files/t0101-NLM.text b/src/test/escape_sequence_files/t0101-NLM.text similarity index 100% rename from test/escape_sequence_files/t0101-NLM.text rename to src/test/escape_sequence_files/t0101-NLM.text diff --git a/test/escape_sequence_files/t0102-DECAWM.in b/src/test/escape_sequence_files/t0102-DECAWM.in similarity index 100% rename from test/escape_sequence_files/t0102-DECAWM.in rename to src/test/escape_sequence_files/t0102-DECAWM.in diff --git a/test/escape_sequence_files/t0102-DECAWM.text b/src/test/escape_sequence_files/t0102-DECAWM.text similarity index 100% rename from test/escape_sequence_files/t0102-DECAWM.text rename to src/test/escape_sequence_files/t0102-DECAWM.text diff --git a/test/escape_sequence_files/t0103-reverse_wrap.in b/src/test/escape_sequence_files/t0103-reverse_wrap.in similarity index 100% rename from test/escape_sequence_files/t0103-reverse_wrap.in rename to src/test/escape_sequence_files/t0103-reverse_wrap.in diff --git a/test/escape_sequence_files/t0103-reverse_wrap.text b/src/test/escape_sequence_files/t0103-reverse_wrap.text similarity index 100% rename from test/escape_sequence_files/t0103-reverse_wrap.text rename to src/test/escape_sequence_files/t0103-reverse_wrap.text diff --git a/test/escape_sequence_files/t0200-SGR.html b/src/test/escape_sequence_files/t0200-SGR.html similarity index 100% rename from test/escape_sequence_files/t0200-SGR.html rename to src/test/escape_sequence_files/t0200-SGR.html diff --git a/test/escape_sequence_files/t0200-SGR.in_ b/src/test/escape_sequence_files/t0200-SGR.in_ similarity index 100% rename from test/escape_sequence_files/t0200-SGR.in_ rename to src/test/escape_sequence_files/t0200-SGR.in_ diff --git a/test/escape_sequence_files/t0220-SGR_inverse.html b/src/test/escape_sequence_files/t0220-SGR_inverse.html similarity index 100% rename from test/escape_sequence_files/t0220-SGR_inverse.html rename to src/test/escape_sequence_files/t0220-SGR_inverse.html diff --git a/test/escape_sequence_files/t0220-SGR_inverse.in_ b/src/test/escape_sequence_files/t0220-SGR_inverse.in_ similarity index 100% rename from test/escape_sequence_files/t0220-SGR_inverse.in_ rename to src/test/escape_sequence_files/t0220-SGR_inverse.in_ diff --git a/test/escape_sequence_files/t0500-bash_long_line.in b/src/test/escape_sequence_files/t0500-bash_long_line.in similarity index 100% rename from test/escape_sequence_files/t0500-bash_long_line.in rename to src/test/escape_sequence_files/t0500-bash_long_line.in diff --git a/test/escape_sequence_files/t0500-bash_long_line.text b/src/test/escape_sequence_files/t0500-bash_long_line.text similarity index 100% rename from test/escape_sequence_files/t0500-bash_long_line.text rename to src/test/escape_sequence_files/t0500-bash_long_line.text diff --git a/test/escape_sequence_files/t0501-bash_ls.in b/src/test/escape_sequence_files/t0501-bash_ls.in similarity index 100% rename from test/escape_sequence_files/t0501-bash_ls.in rename to src/test/escape_sequence_files/t0501-bash_ls.in diff --git a/test/escape_sequence_files/t0501-bash_ls.text b/src/test/escape_sequence_files/t0501-bash_ls.text similarity index 100% rename from test/escape_sequence_files/t0501-bash_ls.text rename to src/test/escape_sequence_files/t0501-bash_ls.text diff --git a/test/escape_sequence_files/t0502-bash_ls_color.in b/src/test/escape_sequence_files/t0502-bash_ls_color.in similarity index 100% rename from test/escape_sequence_files/t0502-bash_ls_color.in rename to src/test/escape_sequence_files/t0502-bash_ls_color.in diff --git a/test/escape_sequence_files/t0502-bash_ls_color.text b/src/test/escape_sequence_files/t0502-bash_ls_color.text similarity index 100% rename from test/escape_sequence_files/t0502-bash_ls_color.text rename to src/test/escape_sequence_files/t0502-bash_ls_color.text diff --git a/test/escape_sequence_files/t0503-zsh_ls_color.in b/src/test/escape_sequence_files/t0503-zsh_ls_color.in similarity index 100% rename from test/escape_sequence_files/t0503-zsh_ls_color.in rename to src/test/escape_sequence_files/t0503-zsh_ls_color.in diff --git a/test/escape_sequence_files/t0503-zsh_ls_color.text b/src/test/escape_sequence_files/t0503-zsh_ls_color.text similarity index 100% rename from test/escape_sequence_files/t0503-zsh_ls_color.text rename to src/test/escape_sequence_files/t0503-zsh_ls_color.text diff --git a/test/escape_sequence_files/t0504-vim.in b/src/test/escape_sequence_files/t0504-vim.in similarity index 100% rename from test/escape_sequence_files/t0504-vim.in rename to src/test/escape_sequence_files/t0504-vim.in diff --git a/test/escape_sequence_files/t0504-vim.text b/src/test/escape_sequence_files/t0504-vim.text similarity index 100% rename from test/escape_sequence_files/t0504-vim.text rename to src/test/escape_sequence_files/t0504-vim.text diff --git a/test/test.js b/src/test/test.js similarity index 99% rename from test/test.js rename to src/test/test.js index 4a7d8574..25da9a3a 100644 --- a/test/test.js +++ b/src/test/test.js @@ -1,6 +1,6 @@ var assert = require('chai').assert; var expect = require('chai').expect; -var Terminal = require('../build/xterm'); +var Terminal = require('../xterm'); describe('xterm.js', function() { var xterm; diff --git a/test/viewport-test.js b/src/test/viewport-test.js similarity index 98% rename from test/viewport-test.js rename to src/test/viewport-test.js index 23fb086a..376fcdc8 100644 --- a/test/viewport-test.js +++ b/src/test/viewport-test.js @@ -1,5 +1,5 @@ var assert = require('chai').assert; -var Terminal = require('../build/xterm'); +var Terminal = require('../xterm'); describe('Viewport', function () { var terminal; diff --git a/src/xterm.js b/src/xterm.js index ac570683..ce49d917 100644 --- a/src/xterm.js +++ b/src/xterm.js @@ -645,10 +645,10 @@ Terminal.prototype.open = function(parent) { Terminal.loadAddon = function(addon, callback) { if (typeof exports === 'object' && typeof module === 'object') { // CommonJS - return require('../addons/' + addon); + return require('./addons/' + addon + '/' + addon); } else if (typeof define == 'function') { // RequireJS - return require(['../addons/' + addon + '/' + addon], callback); + return require(['./addons/' + addon + '/' + addon], callback); } else { console.error('Cannot load a module without a CommonJS or RequireJS environment.'); return false; diff --git a/tsconfig.json b/tsconfig.json index 3cba23ee..beb83261 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,12 +3,14 @@ "module": "commonjs", "target": "es5", "rootDir": "src", - "allowJs": true + "allowJs": true, + "outDir": "out" }, "exclude": [ "addons", "build", "demo", + "dist", "out", "test", "node_modules"