From 858aaac51f49a5e0c4ab9fe2ef11de08a9fd86b3 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Thu, 10 Aug 2023 11:10:26 -0700 Subject: [PATCH 01/14] test: run on GitHub Actions --- .github/workflows/test.yml | 22 ++++++++++++++++++++++ .travis.yml | 3 --- 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/test.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..31bdbff --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,22 @@ +on: + pull_request: + push: + branches: + - master + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: + - '16' + - '18' + - '20' + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }}} + - run: npm install + - run: npm test diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 785901c..0000000 --- a/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - iojs From 87d36034abf419b006d80cb2076585f522a89de1 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Thu, 10 Aug 2023 11:13:07 -0700 Subject: [PATCH 02/14] name workflow --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 31bdbff..8fc0d7d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,3 +1,5 @@ +name: test + on: pull_request: push: From e6a7798dc2255ecee3da50c5730520ca3b4c28b8 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Thu, 10 Aug 2023 11:13:18 -0700 Subject: [PATCH 03/14] fix expression syntax --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8fc0d7d..1002ee2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,6 +19,6 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: ${{ matrix.node-version }}} + node-version: ${{ matrix.node-version }} - run: npm install - run: npm test From d38c71c526a71fd971df4db361d619638b40e364 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Thu, 10 Aug 2023 11:18:40 -0700 Subject: [PATCH 04/14] run on node@12 with `os.tmpDir` --- .github/workflows/test.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1002ee2..60783fa 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,9 +12,8 @@ jobs: strategy: matrix: node-version: - - '16' - - '18' - - '20' + # https://nodejs.org/docs/latest-v9.x/api/deprecations.html#deprecations_dep0022_os_tmpdir + - '12' steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 From 358f9bd3d96b3183b9b494d6c56225c11c1ac537 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Thu, 10 Aug 2023 11:22:23 -0700 Subject: [PATCH 05/14] node 10 --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 60783fa..f365d48 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,8 @@ jobs: matrix: node-version: # https://nodejs.org/docs/latest-v9.x/api/deprecations.html#deprecations_dep0022_os_tmpdir - - '12' + # https://github.com/nodejs/help/issues/2613 + - '10' steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 From dbfbfb6c83fa1c1c3310376e295d26ac80534cae Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Thu, 10 Aug 2023 15:25:37 -0700 Subject: [PATCH 06/14] try node 0.12 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f365d48..688ca1f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: node-version: # https://nodejs.org/docs/latest-v9.x/api/deprecations.html#deprecations_dep0022_os_tmpdir # https://github.com/nodejs/help/issues/2613 - - '10' + - '0.12' steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 From fb0b5f4c7525c65110eee0f937bd11a99b4e8ebe Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Thu, 31 Aug 2023 18:17:22 -0700 Subject: [PATCH 07/14] install iojs vs nvm --- .github/workflows/test.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 688ca1f..1f21e93 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,16 +9,10 @@ on: jobs: test: runs-on: ubuntu-latest - strategy: - matrix: - node-version: - # https://nodejs.org/docs/latest-v9.x/api/deprecations.html#deprecations_dep0022_os_tmpdir - # https://github.com/nodejs/help/issues/2613 - - '0.12' steps: - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: dcodeIO/setup-node-nvm@v5 with: - node-version: ${{ matrix.node-version }} + node-version: iojs - run: npm install - run: npm test From 910352b181f4a53d13c3fd60baee607f1c78a077 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Thu, 31 Aug 2023 18:33:57 -0700 Subject: [PATCH 08/14] skip TLS verification --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1f21e93..2bedf2b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,3 +16,5 @@ jobs: node-version: iojs - run: npm install - run: npm test + env: + NODE_TLS_REJECT_UNAUTHORIZED: '0' From 863aeb5f063ea65a8943c54e56f8974e4e5090ea Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Fri, 1 Sep 2023 10:15:17 -0700 Subject: [PATCH 09/14] `t.fail(err.message)` When calling `t.fail` with the whole `Error` object, all keys are printed. When the `err` has a `stream` property or similar this can be massively noisy to the point of overflowing GHA's default max log length for viewing in the browser. While some error properties are useful (`stack`, `code`) this is the most straightforward way to cut the noise. --- test/bundle-deps.js | 2 +- test/bundle-ember-bower.js | 2 +- test/bundle-expose-globals.js | 2 +- test/bundle-invalid-require.js | 2 +- test/bundle-multideps.js | 2 +- test/bundle-nodeps.js | 2 +- test/bundle-pack-bower.js | 2 +- test/bundle-packs.js | 2 +- test/resolve-shims-bower.js | 2 +- test/resolve-shims.js | 20 ++++++++++---------- test/shim/shim-depends.js | 8 ++++---- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/test/bundle-deps.js b/test/bundle-deps.js index a0563c4..49f8e0c 100644 --- a/test/bundle-deps.js +++ b/test/bundle-deps.js @@ -9,7 +9,7 @@ function bundleNcheck(relPath, t) { browserify( { ignoreGlobals: true }) .require(require.resolve(relPath)) .bundle(function (err, src) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var ctx = { window: {}, console: console }; ctx.self = ctx.window; diff --git a/test/bundle-ember-bower.js b/test/bundle-ember-bower.js index fd64039..3620f22 100644 --- a/test/bundle-ember-bower.js +++ b/test/bundle-ember-bower.js @@ -16,7 +16,7 @@ function bundleNcheck(relPath, t) { browserify( { ignoreGlobals: true }) .require(require.resolve(relPath)) .bundle(function (err, src) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var ctx = { window: {}, console: console }; ctx.self = ctx.window; diff --git a/test/bundle-expose-globals.js b/test/bundle-expose-globals.js index 10faa2d..e73c9df 100644 --- a/test/bundle-expose-globals.js +++ b/test/bundle-expose-globals.js @@ -14,7 +14,7 @@ function bundleNcheck(relPath, t) { browserify( { ignoreGlobals: true }) .require(require.resolve(relPath)) .bundle(function (err, src) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var ctx = { window: { $: jquery }, console: console }; ctx.self = ctx.window; diff --git a/test/bundle-invalid-require.js b/test/bundle-invalid-require.js index 905529e..00b686c 100644 --- a/test/bundle-invalid-require.js +++ b/test/bundle-invalid-require.js @@ -15,7 +15,7 @@ function bundleNcheck(relPath, t) { browserify( { ignoreGlobals: true }) .require(require.resolve(relPath)) .bundle(function (err, src) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var ctx = { window: {}, console: console }; ctx.self = ctx.window; diff --git a/test/bundle-multideps.js b/test/bundle-multideps.js index aab0a29..8eadaf7 100644 --- a/test/bundle-multideps.js +++ b/test/bundle-multideps.js @@ -13,7 +13,7 @@ function bundleNcheck(relPath, t) { browserify( { ignoreGlobals: true }) .require(require.resolve(relPath)) .bundle(function (err, src) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var ctx = { window: {}, console: console }; ctx.self = ctx.window; diff --git a/test/bundle-nodeps.js b/test/bundle-nodeps.js index 80d2261..90ecb31 100644 --- a/test/bundle-nodeps.js +++ b/test/bundle-nodeps.js @@ -13,7 +13,7 @@ function bundleNcheck(relPath, t) { browserify( { ignoreGlobals: true }) .require(require.resolve(relPath)) .bundle(function (err, src) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var ctx = { window: {}, console: console }; ctx.self = ctx.window; diff --git a/test/bundle-pack-bower.js b/test/bundle-pack-bower.js index 4fae0e2..f2c4b62 100644 --- a/test/bundle-pack-bower.js +++ b/test/bundle-pack-bower.js @@ -12,7 +12,7 @@ function bundleNcheck(relPath, t) { browserify( { ignoreGlobals: true }) .require(require.resolve(relPath)) .bundle(function (err, src) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var ctx = { window: {}, console: console }; ctx.self = ctx.window; diff --git a/test/bundle-packs.js b/test/bundle-packs.js index 50c5c6e..3093b84 100644 --- a/test/bundle-packs.js +++ b/test/bundle-packs.js @@ -13,7 +13,7 @@ function bundleNcheck(relPath, t) { browserify( { ignoreGlobals: true }) .require(require.resolve(relPath)) .bundle(function (err, src) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var ctx = { window: {}, console: console }; ctx.self = ctx.window; diff --git a/test/resolve-shims-bower.js b/test/resolve-shims-bower.js index 7a08183..9da48eb 100644 --- a/test/resolve-shims-bower.js +++ b/test/resolve-shims-bower.js @@ -15,7 +15,7 @@ function inspect(obj, depth) { test('\nresolving a bower component that is shimmed', function (t) { resolve(require.resolve('./bower/components/jquery-ui/ui/jquery.ui.position.js'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim, { exports: null, depends: { jquery: 'jQuery' } }, 'resolves shim correctly') t.end(); }) diff --git a/test/resolve-shims.js b/test/resolve-shims.js index 7fcf51c..4e9dcd7 100644 --- a/test/resolve-shims.js +++ b/test/resolve-shims.js @@ -14,7 +14,7 @@ function inspect(obj, depth) { test('\nno dependencies, external shim file, no expose', function (t) { resolve(require.resolve('./nodeps/extshim/vendor/non-cjs'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim, { exports: 'noncjs', depends: undefined }, 'resolves noncjs shim correctly') t.end(); }); @@ -22,7 +22,7 @@ test('\nno dependencies, external shim file, no expose', function (t) { test('\nno dependencies, external shim, exposed as non-cjs', function (t) { resolve(require.resolve('./nodeps/extshim-exposed/vendor/non-cjs'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim, { exports: 'noncjs', depends: undefined }, 'resolves noncjs shim correctly') t.end(); }); @@ -30,7 +30,7 @@ test('\nno dependencies, external shim, exposed as non-cjs', function (t) { test('\nno dependencies, inline shims, no expose', function (t) { resolve(require.resolve('./nodeps/inlineshim/vendor/non-cjs'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim, { exports: 'noncjs', depends: undefined }, 'resolves noncjs shim correctly') t.end(); }); @@ -38,7 +38,7 @@ test('\nno dependencies, inline shims, no expose', function (t) { test('\nno dependencies, inline shims, exposed as non-cjs', function (t) { resolve(require.resolve('./nodeps/inlineshim-exposed/vendor/non-cjs'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim, { exports: 'noncjs', depends: undefined }, 'resolves noncjs shim correctly') t.end(); }); @@ -46,7 +46,7 @@ test('\nno dependencies, inline shims, exposed as non-cjs', function (t) { test('\nnon-cjs-dep depends on non-cjs, external shim file, all exposed', function (t) { resolve(require.resolve('./deps/extshim/vendor/non-cjs-dep'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim , { exports: 'noncjsdep', depends: { 'non-cjs': 'noncjs' } } , 'resolves noncjsdep shim correctly' @@ -57,7 +57,7 @@ test('\nnon-cjs-dep depends on non-cjs, external shim file, all exposed', functi test('\nnon-cjs-dep depends on non-cjs, inline shims, all exposed', function (t) { resolve(require.resolve('./deps/inlineshim/vendor/non-cjs-dep'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim , { exports: 'noncjsdep', depends: { 'non-cjs': 'noncjs' } } , 'resolves noncjsdep shim correctly' @@ -68,7 +68,7 @@ test('\nnon-cjs-dep depends on non-cjs, inline shims, all exposed', function (t) test('\nnon-cjs-dep depends on non-cjs and non-cjs-core, external shim file, all exposed except non-cjs-core', function (t) { resolve(require.resolve('./multideps/extshim/vendor/non-cjs-dep'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var corePath = path.join(__dirname, 'multideps/extshim/vendor/non-cjs-core.js'); var depends = { 'non-cjs': 'noncjs' } depends[corePath] = 'core'; @@ -83,7 +83,7 @@ test('\nnon-cjs-dep depends on non-cjs and non-cjs-core, external shim file, all test('\nnon-cjs-dep depends on non-cjs and non-cjs-core, inline shims, all exposed except non-cjs-core', function (t) { resolve(require.resolve('./multideps/inlineshim/vendor/non-cjs-dep'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var corePath = path.join(__dirname, 'multideps/inlineshim/vendor/non-cjs-core.js'); var depends = { 'non-cjs': 'noncjs' } depends[corePath] = 'core'; @@ -98,7 +98,7 @@ test('\nnon-cjs-dep depends on non-cjs and non-cjs-core, inline shims, all expos test('\nno dependencies, inline shims, no expose, $ exposified as jquery', function (t) { resolve(require.resolve('./exposify/inlineshim/vendor/non-cjs'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim, { exports: 'noncjs', depends: undefined }, 'resolves noncjs shim correctly') t.deepEqual(res.exposeGlobals, { jquery: '$' }, 'resolves expose globals correctly') t.end(); @@ -107,7 +107,7 @@ test('\nno dependencies, inline shims, no expose, $ exposified as jquery', funct test('\nno dependencies, external shims, no expose, $ exposified as jquery', function (t) { resolve(require.resolve('./exposify/extshim/vendor/non-cjs'), msgs, function (err, res) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } t.deepEqual(res.shim, { exports: 'noncjs', depends: undefined }, 'resolves noncjs shim correctly') t.deepEqual(res.exposeGlobals, { jquery: '$' }, 'resolves expose globals correctly') t.end(); diff --git a/test/shim/shim-depends.js b/test/shim/shim-depends.js index 87d02a0..6b5e39b 100644 --- a/test/shim/shim-depends.js +++ b/test/shim/shim-depends.js @@ -65,7 +65,7 @@ test('\nwhen I shim "jquery" and shim a lib that depends on it', function (t) { var entry = require.resolve('./fixtures/entry-requires-depend-on-jquery'); runFirstBundle(entry, false, function (err, require_) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var dep = require_(1); t.equal(dep.jqVersion, '1.8.3', 'when dependent gets required, $ is attached to the window'); @@ -79,7 +79,7 @@ test('\nwhen I shim "jquery" and shim a lib that depends on it, using fullPaths' var entry = require.resolve('./fixtures/entry-requires-depend-on-jquery'); runFirstBundle(entry, true, function (err, require_) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var dep = require_(entry); t.equal(dep.jqVersion, '1.8.3', 'when dependent gets required, $ is attached to the window'); @@ -117,7 +117,7 @@ test('\nwhen I shim "jquery" and _ lib in debug mode and shim a lib that depends var entry = require.resolve('./fixtures/entry-requires-depend-on-jquery-and-_'); runSecondBundle(entry, false, function (err, require_) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var dep = require_(1); @@ -132,7 +132,7 @@ test('\nwhen I shim "jquery" and _ lib in debug mode and shim a lib that depends var entry = require.resolve('./fixtures/entry-requires-depend-on-jquery-and-_'); runSecondBundle(entry, true, function (err, require_) { - if (err) { t.fail(err); return t.end(); } + if (err) { t.fail(err.message); return t.end(); } var dep = require_(entry); From e903ed7cb4e98a397626bd2f045d7deff1205026 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Fri, 1 Sep 2023 10:31:47 -0700 Subject: [PATCH 10/14] add comment for TLS disabled --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2bedf2b..de349cb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,4 +17,6 @@ jobs: - run: npm install - run: npm test env: + # Node.js/io.js bundle their own CA store, which is now substantially out of date. io.js predated the `--use-openssl-ca` flag, so we have to disable TLS verification entirely. + # Upon upgrading this test suite to a modern Node.js version, this should be removed. NODE_TLS_REJECT_UNAUTHORIZED: '0' From f2b9e267ce0687046dbbfe7a8481a6bde051589a Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Fri, 1 Sep 2023 10:33:34 -0700 Subject: [PATCH 11/14] restrict peer dependency to <= 15 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b831b2d..22bb749 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "license": "MIT", "readmeFilename": "README.md", "devDependencies": { - "browserify": ">= 13", + "browserify": "15", "jsdom": "^5.4.2", "ncp": "~0.5.0", "proxyquire": "~0.5.1", @@ -48,6 +48,6 @@ "through": "~2.3.4" }, "peerDependencies": { - "browserify": ">= 2.3" + "browserify": ">= 2.3, <= 15" } } From 29fddca5a9c66d135ee3cfced904371e35c37f1f Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Fri, 1 Sep 2023 10:33:53 -0700 Subject: [PATCH 12/14] remove travis badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d692b5b..0f3bcb4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# browserify-shim [![build status](https://secure.travis-ci.org/thlorenz/browserify-shim.svg?branch=master)](http://travis-ci.org/thlorenz/browserify-shim) +# browserify-shim ### Make CommonJS-Incompatible Files Browserifyable From 40b4617acaa2eaac19d215bca857ad011909c3f3 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Fri, 1 Sep 2023 10:35:28 -0700 Subject: [PATCH 13/14] fix constraint --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 22bb749..1c81beb 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,6 @@ "through": "~2.3.4" }, "peerDependencies": { - "browserify": ">= 2.3, <= 15" + "browserify": ">= 2.3 <= 15" } } From e7899194f6ce3526e8a368ab7c70ea4e90c687a2 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Fri, 1 Sep 2023 10:53:30 -0700 Subject: [PATCH 14/14] revert peer dep --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1c81beb..b831b2d 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "license": "MIT", "readmeFilename": "README.md", "devDependencies": { - "browserify": "15", + "browserify": ">= 13", "jsdom": "^5.4.2", "ncp": "~0.5.0", "proxyquire": "~0.5.1", @@ -48,6 +48,6 @@ "through": "~2.3.4" }, "peerDependencies": { - "browserify": ">= 2.3 <= 15" + "browserify": ">= 2.3" } }