mocha 7.0.1 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/browser-entry.js +2 -2
- package/lib/cli/config.js +2 -1
- package/lib/cli/options.js +1 -1
- package/lib/cli/run-helpers.js +8 -7
- package/lib/cli/run.js +8 -3
- package/lib/esm-utils.js +31 -0
- package/lib/mocha.js +55 -4
- package/lib/mocharc.json +1 -1
- package/lib/runner.js +7 -1
- package/lib/test.js +13 -0
- package/lib/utils.js +22 -0
- package/mocha.js +102 -10
- package/package.json +12 -514
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
# 7.1.0 / 2020-02-26
|
|
2
|
+
|
|
3
|
+
## :tada: Enhancements
|
|
4
|
+
|
|
5
|
+
[#4038](https://github.com/mochajs/mocha/issues/4038): Add Node.js native ESM support ([**@giltayar**](https://github.com/giltayar))
|
|
6
|
+
|
|
7
|
+
Mocha supports writing your test files as ES modules:
|
|
8
|
+
|
|
9
|
+
- Node.js only v12.11.0 and above
|
|
10
|
+
- Node.js below v13.2.0, you must set `--experimental-modules` option
|
|
11
|
+
- current limitations: please check our [documentation](https://mochajs.org/#nodejs-native-esm-support)
|
|
12
|
+
- for programmatic usage: see [API: loadFilesAsync()](https://mochajs.org/api/mocha#loadFilesAsync)
|
|
13
|
+
|
|
14
|
+
**Note:** Node.JS native [ECMAScript Modules](https://nodejs.org/api/esm.html) implementation has status: **Stability: 1 - Experimental**
|
|
15
|
+
|
|
16
|
+
## :bug: Fixes
|
|
17
|
+
|
|
18
|
+
- [#4181](https://github.com/mochajs/mocha/issues/4181): Programmatic API cannot access retried test objects ([**@juergba**](https://github.com/juergba))
|
|
19
|
+
- [#4174](https://github.com/mochajs/mocha/issues/4174): Browser: fix `allowUncaught` option ([**@juergba**](https://github.com/juergba))
|
|
20
|
+
|
|
21
|
+
## :book: Documentation
|
|
22
|
+
|
|
23
|
+
- [#4058](https://github.com/mochajs/mocha/issues/4058): Manage author list in AUTHORS instead of `package.json` ([**@outsideris**](https://github.com/outsideris))
|
|
24
|
+
|
|
25
|
+
## :nut_and_bolt: Other
|
|
26
|
+
|
|
27
|
+
- [#4138](https://github.com/mochajs/mocha/issues/4138): Upgrade ESLint v6.8 ([**@kaicataldo**](https://github.com/kaicataldo))
|
|
28
|
+
|
|
1
29
|
# 7.0.1 / 2020-01-25
|
|
2
30
|
|
|
3
31
|
## :bug: Fixes
|
package/browser-entry.js
CHANGED
|
@@ -60,7 +60,7 @@ process.on = function(e, fn) {
|
|
|
60
60
|
if (e === 'uncaughtException') {
|
|
61
61
|
global.onerror = function(err, url, line) {
|
|
62
62
|
fn(new Error(err + ' (' + url + ':' + line + ')'));
|
|
63
|
-
return !mocha.allowUncaught;
|
|
63
|
+
return !mocha.options.allowUncaught;
|
|
64
64
|
};
|
|
65
65
|
uncaughtExceptionHandlers.push(fn);
|
|
66
66
|
}
|
|
@@ -129,7 +129,7 @@ mocha.setup = function(opts) {
|
|
|
129
129
|
opts = {ui: opts};
|
|
130
130
|
}
|
|
131
131
|
for (var opt in opts) {
|
|
132
|
-
if (
|
|
132
|
+
if (Object.prototype.hasOwnProperty.call(opts, opt)) {
|
|
133
133
|
this[opt](opts[opt]);
|
|
134
134
|
}
|
|
135
135
|
}
|
package/lib/cli/config.js
CHANGED
|
@@ -21,6 +21,7 @@ const findUp = require('find-up');
|
|
|
21
21
|
* @private
|
|
22
22
|
*/
|
|
23
23
|
exports.CONFIG_FILES = [
|
|
24
|
+
'.mocharc.cjs',
|
|
24
25
|
'.mocharc.js',
|
|
25
26
|
'.mocharc.yaml',
|
|
26
27
|
'.mocharc.yml',
|
|
@@ -75,7 +76,7 @@ exports.loadConfig = filepath => {
|
|
|
75
76
|
try {
|
|
76
77
|
if (ext === '.yml' || ext === '.yaml') {
|
|
77
78
|
config = parsers.yaml(filepath);
|
|
78
|
-
} else if (ext === '.js') {
|
|
79
|
+
} else if (ext === '.js' || ext === '.cjs') {
|
|
79
80
|
config = parsers.js(filepath);
|
|
80
81
|
} else {
|
|
81
82
|
config = parsers.json(filepath);
|
package/lib/cli/options.js
CHANGED
|
@@ -265,7 +265,7 @@ module.exports.loadPkgRc = loadPkgRc;
|
|
|
265
265
|
* Priority list:
|
|
266
266
|
*
|
|
267
267
|
* 1. Command-line args
|
|
268
|
-
* 2. RC file (`.mocharc.js`, `.mocharc.ya?ml`, `mocharc.json`)
|
|
268
|
+
* 2. RC file (`.mocharc.c?js`, `.mocharc.ya?ml`, `mocharc.json`)
|
|
269
269
|
* 3. `mocha` prop of `package.json`
|
|
270
270
|
* 4. `mocha.opts`
|
|
271
271
|
* 5. default configuration (`lib/mocharc.json`)
|
package/lib/cli/run-helpers.js
CHANGED
|
@@ -15,8 +15,6 @@ const collectFiles = require('./collect-files');
|
|
|
15
15
|
|
|
16
16
|
const cwd = (exports.cwd = process.cwd());
|
|
17
17
|
|
|
18
|
-
exports.watchRun = watchRun;
|
|
19
|
-
|
|
20
18
|
/**
|
|
21
19
|
* Exits Mocha when tests + code under test has finished execution (default)
|
|
22
20
|
* @param {number} code - Exit code; typically # of failures
|
|
@@ -92,19 +90,21 @@ exports.handleRequires = (requires = []) => {
|
|
|
92
90
|
};
|
|
93
91
|
|
|
94
92
|
/**
|
|
95
|
-
* Collect test files
|
|
93
|
+
* Collect and load test files, then run mocha instance.
|
|
96
94
|
* @param {Mocha} mocha - Mocha instance
|
|
97
95
|
* @param {Options} [opts] - Command line options
|
|
98
96
|
* @param {boolean} [opts.exit] - Whether or not to force-exit after tests are complete
|
|
99
97
|
* @param {Object} fileCollectParams - Parameters that control test
|
|
100
98
|
* file collection. See `lib/cli/collect-files.js`.
|
|
101
|
-
* @returns {Runner}
|
|
99
|
+
* @returns {Promise<Runner>}
|
|
102
100
|
* @private
|
|
103
101
|
*/
|
|
104
|
-
|
|
102
|
+
const singleRun = async (mocha, {exit}, fileCollectParams) => {
|
|
105
103
|
const files = collectFiles(fileCollectParams);
|
|
106
104
|
debug('running tests with files', files);
|
|
107
105
|
mocha.files = files;
|
|
106
|
+
|
|
107
|
+
await mocha.loadFilesAsync();
|
|
108
108
|
return mocha.run(exit ? exitMocha : exitMochaLater);
|
|
109
109
|
};
|
|
110
110
|
|
|
@@ -113,8 +113,9 @@ exports.singleRun = (mocha, {exit}, fileCollectParams) => {
|
|
|
113
113
|
* @param {Mocha} mocha - Mocha instance
|
|
114
114
|
* @param {Object} opts - Command line options
|
|
115
115
|
* @private
|
|
116
|
+
* @returns {Promise}
|
|
116
117
|
*/
|
|
117
|
-
exports.runMocha = (mocha, options) => {
|
|
118
|
+
exports.runMocha = async (mocha, options) => {
|
|
118
119
|
const {
|
|
119
120
|
watch = false,
|
|
120
121
|
extension = [],
|
|
@@ -140,7 +141,7 @@ exports.runMocha = (mocha, options) => {
|
|
|
140
141
|
if (watch) {
|
|
141
142
|
watchRun(mocha, {watchFiles, watchIgnore}, fileCollectParams);
|
|
142
143
|
} else {
|
|
143
|
-
|
|
144
|
+
await singleRun(mocha, {exit}, fileCollectParams);
|
|
144
145
|
}
|
|
145
146
|
};
|
|
146
147
|
|
package/lib/cli/run.js
CHANGED
|
@@ -87,7 +87,6 @@ exports.builder = yargs =>
|
|
|
87
87
|
},
|
|
88
88
|
extension: {
|
|
89
89
|
default: defaults.extension,
|
|
90
|
-
defaultDescription: 'js',
|
|
91
90
|
description: 'File extension(s) to load',
|
|
92
91
|
group: GROUPS.FILES,
|
|
93
92
|
requiresArg: true,
|
|
@@ -299,8 +298,14 @@ exports.builder = yargs =>
|
|
|
299
298
|
.number(types.number)
|
|
300
299
|
.alias(aliases);
|
|
301
300
|
|
|
302
|
-
exports.handler = argv
|
|
301
|
+
exports.handler = async function(argv) {
|
|
303
302
|
debug('post-yargs config', argv);
|
|
304
303
|
const mocha = new Mocha(argv);
|
|
305
|
-
|
|
304
|
+
|
|
305
|
+
try {
|
|
306
|
+
await runMocha(mocha, argv);
|
|
307
|
+
} catch (err) {
|
|
308
|
+
console.error('\n' + (err.stack || `Error: ${err.message || err}`));
|
|
309
|
+
process.exit(1);
|
|
310
|
+
}
|
|
306
311
|
};
|
package/lib/esm-utils.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const url = require('url');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
|
|
4
|
+
const requireOrImport = async file => {
|
|
5
|
+
file = path.resolve(file);
|
|
6
|
+
|
|
7
|
+
if (path.extname(file) === '.mjs') {
|
|
8
|
+
return import(url.pathToFileURL(file));
|
|
9
|
+
}
|
|
10
|
+
// This is currently the only known way of figuring out whether a file is CJS or ESM.
|
|
11
|
+
// If Node.js or the community establish a better procedure for that, we can fix this code.
|
|
12
|
+
// Another option here would be to always use `import()`, as this also supports CJS, but I would be
|
|
13
|
+
// wary of using it for _all_ existing test files, till ESM is fully stable.
|
|
14
|
+
try {
|
|
15
|
+
return require(file);
|
|
16
|
+
} catch (err) {
|
|
17
|
+
if (err.code === 'ERR_REQUIRE_ESM') {
|
|
18
|
+
return import(url.pathToFileURL(file));
|
|
19
|
+
} else {
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.loadFilesAsync = async (files, preLoadFunc, postLoadFunc) => {
|
|
26
|
+
for (const file of files) {
|
|
27
|
+
preLoadFunc(file);
|
|
28
|
+
const result = await requireOrImport(file);
|
|
29
|
+
postLoadFunc(file, result);
|
|
30
|
+
}
|
|
31
|
+
};
|
package/lib/mocha.js
CHANGED
|
@@ -14,6 +14,7 @@ var utils = require('./utils');
|
|
|
14
14
|
var mocharc = require('./mocharc.json');
|
|
15
15
|
var errors = require('./errors');
|
|
16
16
|
var Suite = require('./suite');
|
|
17
|
+
var esmUtils = utils.supportsEsModules() ? require('./esm-utils') : undefined;
|
|
17
18
|
var createStatsCollector = require('./stats-collector');
|
|
18
19
|
var createInvalidReporterError = errors.createInvalidReporterError;
|
|
19
20
|
var createInvalidInterfaceError = errors.createInvalidInterfaceError;
|
|
@@ -290,16 +291,18 @@ Mocha.prototype.ui = function(ui) {
|
|
|
290
291
|
};
|
|
291
292
|
|
|
292
293
|
/**
|
|
293
|
-
* Loads `files` prior to execution.
|
|
294
|
+
* Loads `files` prior to execution. Does not support ES Modules.
|
|
294
295
|
*
|
|
295
296
|
* @description
|
|
296
297
|
* The implementation relies on Node's `require` to execute
|
|
297
298
|
* the test interface functions and will be subject to its cache.
|
|
299
|
+
* Supports only CommonJS modules. To load ES modules, use Mocha#loadFilesAsync.
|
|
298
300
|
*
|
|
299
301
|
* @private
|
|
300
302
|
* @see {@link Mocha#addFile}
|
|
301
303
|
* @see {@link Mocha#run}
|
|
302
304
|
* @see {@link Mocha#unloadFiles}
|
|
305
|
+
* @see {@link Mocha#loadFilesAsync}
|
|
303
306
|
* @param {Function} [fn] - Callback invoked upon completion.
|
|
304
307
|
*/
|
|
305
308
|
Mocha.prototype.loadFiles = function(fn) {
|
|
@@ -314,6 +317,49 @@ Mocha.prototype.loadFiles = function(fn) {
|
|
|
314
317
|
fn && fn();
|
|
315
318
|
};
|
|
316
319
|
|
|
320
|
+
/**
|
|
321
|
+
* Loads `files` prior to execution. Supports Node ES Modules.
|
|
322
|
+
*
|
|
323
|
+
* @description
|
|
324
|
+
* The implementation relies on Node's `require` and `import` to execute
|
|
325
|
+
* the test interface functions and will be subject to its cache.
|
|
326
|
+
* Supports both CJS and ESM modules.
|
|
327
|
+
*
|
|
328
|
+
* @public
|
|
329
|
+
* @see {@link Mocha#addFile}
|
|
330
|
+
* @see {@link Mocha#run}
|
|
331
|
+
* @see {@link Mocha#unloadFiles}
|
|
332
|
+
* @returns {Promise}
|
|
333
|
+
* @example
|
|
334
|
+
*
|
|
335
|
+
* // loads ESM (and CJS) test files asynchronously, then runs root suite
|
|
336
|
+
* mocha.loadFilesAsync()
|
|
337
|
+
* .then(() => mocha.run(failures => process.exitCode = failures ? 1 : 0))
|
|
338
|
+
* .catch(() => process.exitCode = 1);
|
|
339
|
+
*/
|
|
340
|
+
Mocha.prototype.loadFilesAsync = function() {
|
|
341
|
+
var self = this;
|
|
342
|
+
var suite = this.suite;
|
|
343
|
+
this.loadAsync = true;
|
|
344
|
+
|
|
345
|
+
if (!esmUtils) {
|
|
346
|
+
return new Promise(function(resolve) {
|
|
347
|
+
self.loadFiles(resolve);
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
return esmUtils.loadFilesAsync(
|
|
352
|
+
this.files,
|
|
353
|
+
function(file) {
|
|
354
|
+
suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self);
|
|
355
|
+
},
|
|
356
|
+
function(file, resultModule) {
|
|
357
|
+
suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self);
|
|
358
|
+
suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self);
|
|
359
|
+
}
|
|
360
|
+
);
|
|
361
|
+
};
|
|
362
|
+
|
|
317
363
|
/**
|
|
318
364
|
* Removes a previously loaded file from Node's `require` cache.
|
|
319
365
|
*
|
|
@@ -330,8 +376,9 @@ Mocha.unloadFile = function(file) {
|
|
|
330
376
|
* Unloads `files` from Node's `require` cache.
|
|
331
377
|
*
|
|
332
378
|
* @description
|
|
333
|
-
* This allows files to be "freshly" reloaded, providing the ability
|
|
379
|
+
* This allows required files to be "freshly" reloaded, providing the ability
|
|
334
380
|
* to reuse a Mocha instance programmatically.
|
|
381
|
+
* Note: does not clear ESM module files from the cache
|
|
335
382
|
*
|
|
336
383
|
* <strong>Intended for consumers — not used internally</strong>
|
|
337
384
|
*
|
|
@@ -842,10 +889,14 @@ Object.defineProperty(Mocha.prototype, 'version', {
|
|
|
842
889
|
* @see {@link Mocha#unloadFiles}
|
|
843
890
|
* @see {@link Runner#run}
|
|
844
891
|
* @param {DoneCB} [fn] - Callback invoked when test execution completed.
|
|
845
|
-
* @
|
|
892
|
+
* @returns {Runner} runner instance
|
|
893
|
+
* @example
|
|
894
|
+
*
|
|
895
|
+
* // exit with non-zero status if there were test failures
|
|
896
|
+
* mocha.run(failures => process.exitCode = failures ? 1 : 0);
|
|
846
897
|
*/
|
|
847
898
|
Mocha.prototype.run = function(fn) {
|
|
848
|
-
if (this.files.length) {
|
|
899
|
+
if (this.files.length && !this.loadAsync) {
|
|
849
900
|
this.loadFiles();
|
|
850
901
|
}
|
|
851
902
|
var suite = this.suite;
|
package/lib/mocharc.json
CHANGED
package/lib/runner.js
CHANGED
|
@@ -135,6 +135,11 @@ function Runner(suite, delay) {
|
|
|
135
135
|
this.total = suite.total();
|
|
136
136
|
this.failures = 0;
|
|
137
137
|
this.on(constants.EVENT_TEST_END, function(test) {
|
|
138
|
+
if (test.retriedTest() && test.parent) {
|
|
139
|
+
var idx =
|
|
140
|
+
test.parent.tests && test.parent.tests.indexOf(test.retriedTest());
|
|
141
|
+
if (idx > -1) test.parent.tests[idx] = test;
|
|
142
|
+
}
|
|
138
143
|
self.checkGlobals(test);
|
|
139
144
|
});
|
|
140
145
|
this.on(constants.EVENT_HOOK_END, function(hook) {
|
|
@@ -800,7 +805,8 @@ Runner.prototype.uncaught = function(err) {
|
|
|
800
805
|
if (err instanceof Pending) {
|
|
801
806
|
return;
|
|
802
807
|
}
|
|
803
|
-
|
|
808
|
+
// browser does not exit script when throwing in global.onerror()
|
|
809
|
+
if (this.allowUncaught && !process.browser) {
|
|
804
810
|
throw err;
|
|
805
811
|
}
|
|
806
812
|
|
package/lib/test.js
CHANGED
|
@@ -36,6 +36,18 @@ function Test(title, fn) {
|
|
|
36
36
|
*/
|
|
37
37
|
utils.inherits(Test, Runnable);
|
|
38
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Set or get retried test
|
|
41
|
+
*
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
Test.prototype.retriedTest = function(n) {
|
|
45
|
+
if (!arguments.length) {
|
|
46
|
+
return this._retriedTest;
|
|
47
|
+
}
|
|
48
|
+
this._retriedTest = n;
|
|
49
|
+
};
|
|
50
|
+
|
|
39
51
|
Test.prototype.clone = function() {
|
|
40
52
|
var test = new Test(this.title, this.fn);
|
|
41
53
|
test.timeout(this.timeout());
|
|
@@ -43,6 +55,7 @@ Test.prototype.clone = function() {
|
|
|
43
55
|
test.enableTimeouts(this.enableTimeouts());
|
|
44
56
|
test.retries(this.retries());
|
|
45
57
|
test.currentRetry(this.currentRetry());
|
|
58
|
+
test.retriedTest(this.retriedTest() || this);
|
|
46
59
|
test.globals(this.globals());
|
|
47
60
|
test.parent = this.parent;
|
|
48
61
|
test.file = this.file;
|
package/lib/utils.js
CHANGED
|
@@ -831,3 +831,25 @@ exports.defineConstants = function(obj) {
|
|
|
831
831
|
}
|
|
832
832
|
return Object.freeze(exports.createMap(obj));
|
|
833
833
|
};
|
|
834
|
+
|
|
835
|
+
/**
|
|
836
|
+
* Whether current version of Node support ES modules
|
|
837
|
+
*
|
|
838
|
+
* @description
|
|
839
|
+
* Versions prior to 10 did not support ES Modules, and version 10 has an old incompatibile version of ESM.
|
|
840
|
+
* This function returns whether Node.JS has ES Module supports that is compatible with Mocha's needs,
|
|
841
|
+
* which is version >=12.11.
|
|
842
|
+
*
|
|
843
|
+
* @returns {Boolean} whether the current version of Node.JS supports ES Modules in a way that is compatible with Mocha
|
|
844
|
+
*/
|
|
845
|
+
exports.supportsEsModules = function() {
|
|
846
|
+
if (!process.browser && process.versions && process.versions.node) {
|
|
847
|
+
var versionFields = process.versions.node.split('.');
|
|
848
|
+
var major = +versionFields[0];
|
|
849
|
+
var minor = +versionFields[1];
|
|
850
|
+
|
|
851
|
+
if (major >= 13 || (major === 12 && minor >= 11)) {
|
|
852
|
+
return true;
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
};
|
package/mocha.js
CHANGED
|
@@ -62,7 +62,7 @@ process.on = function(e, fn) {
|
|
|
62
62
|
if (e === 'uncaughtException') {
|
|
63
63
|
global.onerror = function(err, url, line) {
|
|
64
64
|
fn(new Error(err + ' (' + url + ':' + line + ')'));
|
|
65
|
-
return !mocha.allowUncaught;
|
|
65
|
+
return !mocha.options.allowUncaught;
|
|
66
66
|
};
|
|
67
67
|
uncaughtExceptionHandlers.push(fn);
|
|
68
68
|
}
|
|
@@ -131,7 +131,7 @@ mocha.setup = function(opts) {
|
|
|
131
131
|
opts = {ui: opts};
|
|
132
132
|
}
|
|
133
133
|
for (var opt in opts) {
|
|
134
|
-
if (
|
|
134
|
+
if (Object.prototype.hasOwnProperty.call(opts, opt)) {
|
|
135
135
|
this[opt](opts[opt]);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
@@ -1408,6 +1408,7 @@ var utils = require('./utils');
|
|
|
1408
1408
|
var mocharc = require('./mocharc.json');
|
|
1409
1409
|
var errors = require('./errors');
|
|
1410
1410
|
var Suite = require('./suite');
|
|
1411
|
+
var esmUtils = utils.supportsEsModules() ? require('./esm-utils') : undefined;
|
|
1411
1412
|
var createStatsCollector = require('./stats-collector');
|
|
1412
1413
|
var createInvalidReporterError = errors.createInvalidReporterError;
|
|
1413
1414
|
var createInvalidInterfaceError = errors.createInvalidInterfaceError;
|
|
@@ -1684,16 +1685,18 @@ Mocha.prototype.ui = function(ui) {
|
|
|
1684
1685
|
};
|
|
1685
1686
|
|
|
1686
1687
|
/**
|
|
1687
|
-
* Loads `files` prior to execution.
|
|
1688
|
+
* Loads `files` prior to execution. Does not support ES Modules.
|
|
1688
1689
|
*
|
|
1689
1690
|
* @description
|
|
1690
1691
|
* The implementation relies on Node's `require` to execute
|
|
1691
1692
|
* the test interface functions and will be subject to its cache.
|
|
1693
|
+
* Supports only CommonJS modules. To load ES modules, use Mocha#loadFilesAsync.
|
|
1692
1694
|
*
|
|
1693
1695
|
* @private
|
|
1694
1696
|
* @see {@link Mocha#addFile}
|
|
1695
1697
|
* @see {@link Mocha#run}
|
|
1696
1698
|
* @see {@link Mocha#unloadFiles}
|
|
1699
|
+
* @see {@link Mocha#loadFilesAsync}
|
|
1697
1700
|
* @param {Function} [fn] - Callback invoked upon completion.
|
|
1698
1701
|
*/
|
|
1699
1702
|
Mocha.prototype.loadFiles = function(fn) {
|
|
@@ -1708,6 +1711,49 @@ Mocha.prototype.loadFiles = function(fn) {
|
|
|
1708
1711
|
fn && fn();
|
|
1709
1712
|
};
|
|
1710
1713
|
|
|
1714
|
+
/**
|
|
1715
|
+
* Loads `files` prior to execution. Supports Node ES Modules.
|
|
1716
|
+
*
|
|
1717
|
+
* @description
|
|
1718
|
+
* The implementation relies on Node's `require` and `import` to execute
|
|
1719
|
+
* the test interface functions and will be subject to its cache.
|
|
1720
|
+
* Supports both CJS and ESM modules.
|
|
1721
|
+
*
|
|
1722
|
+
* @public
|
|
1723
|
+
* @see {@link Mocha#addFile}
|
|
1724
|
+
* @see {@link Mocha#run}
|
|
1725
|
+
* @see {@link Mocha#unloadFiles}
|
|
1726
|
+
* @returns {Promise}
|
|
1727
|
+
* @example
|
|
1728
|
+
*
|
|
1729
|
+
* // loads ESM (and CJS) test files asynchronously, then runs root suite
|
|
1730
|
+
* mocha.loadFilesAsync()
|
|
1731
|
+
* .then(() => mocha.run(failures => process.exitCode = failures ? 1 : 0))
|
|
1732
|
+
* .catch(() => process.exitCode = 1);
|
|
1733
|
+
*/
|
|
1734
|
+
Mocha.prototype.loadFilesAsync = function() {
|
|
1735
|
+
var self = this;
|
|
1736
|
+
var suite = this.suite;
|
|
1737
|
+
this.loadAsync = true;
|
|
1738
|
+
|
|
1739
|
+
if (!esmUtils) {
|
|
1740
|
+
return new Promise(function(resolve) {
|
|
1741
|
+
self.loadFiles(resolve);
|
|
1742
|
+
});
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1745
|
+
return esmUtils.loadFilesAsync(
|
|
1746
|
+
this.files,
|
|
1747
|
+
function(file) {
|
|
1748
|
+
suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self);
|
|
1749
|
+
},
|
|
1750
|
+
function(file, resultModule) {
|
|
1751
|
+
suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self);
|
|
1752
|
+
suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self);
|
|
1753
|
+
}
|
|
1754
|
+
);
|
|
1755
|
+
};
|
|
1756
|
+
|
|
1711
1757
|
/**
|
|
1712
1758
|
* Removes a previously loaded file from Node's `require` cache.
|
|
1713
1759
|
*
|
|
@@ -1724,8 +1770,9 @@ Mocha.unloadFile = function(file) {
|
|
|
1724
1770
|
* Unloads `files` from Node's `require` cache.
|
|
1725
1771
|
*
|
|
1726
1772
|
* @description
|
|
1727
|
-
* This allows files to be "freshly" reloaded, providing the ability
|
|
1773
|
+
* This allows required files to be "freshly" reloaded, providing the ability
|
|
1728
1774
|
* to reuse a Mocha instance programmatically.
|
|
1775
|
+
* Note: does not clear ESM module files from the cache
|
|
1729
1776
|
*
|
|
1730
1777
|
* <strong>Intended for consumers — not used internally</strong>
|
|
1731
1778
|
*
|
|
@@ -2236,10 +2283,14 @@ Object.defineProperty(Mocha.prototype, 'version', {
|
|
|
2236
2283
|
* @see {@link Mocha#unloadFiles}
|
|
2237
2284
|
* @see {@link Runner#run}
|
|
2238
2285
|
* @param {DoneCB} [fn] - Callback invoked when test execution completed.
|
|
2239
|
-
* @
|
|
2286
|
+
* @returns {Runner} runner instance
|
|
2287
|
+
* @example
|
|
2288
|
+
*
|
|
2289
|
+
* // exit with non-zero status if there were test failures
|
|
2290
|
+
* mocha.run(failures => process.exitCode = failures ? 1 : 0);
|
|
2240
2291
|
*/
|
|
2241
2292
|
Mocha.prototype.run = function(fn) {
|
|
2242
|
-
if (this.files.length) {
|
|
2293
|
+
if (this.files.length && !this.loadAsync) {
|
|
2243
2294
|
this.loadFiles();
|
|
2244
2295
|
}
|
|
2245
2296
|
var suite = this.suite;
|
|
@@ -2282,10 +2333,10 @@ Mocha.prototype.run = function(fn) {
|
|
|
2282
2333
|
};
|
|
2283
2334
|
|
|
2284
2335
|
}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
|
2285
|
-
},{"../package.json":90,"./context":5,"./errors":6,"./growl":2,"./hook":7,"./interfaces":11,"./mocharc.json":15,"./reporters":21,"./runnable":33,"./runner":34,"./stats-collector":35,"./suite":36,"./test":37,"./utils":38,"_process":69,"escape-string-regexp":49,"path":42}],15:[function(require,module,exports){
|
|
2336
|
+
},{"../package.json":90,"./context":5,"./errors":6,"./esm-utils":42,"./growl":2,"./hook":7,"./interfaces":11,"./mocharc.json":15,"./reporters":21,"./runnable":33,"./runner":34,"./stats-collector":35,"./suite":36,"./test":37,"./utils":38,"_process":69,"escape-string-regexp":49,"path":42}],15:[function(require,module,exports){
|
|
2286
2337
|
module.exports={
|
|
2287
2338
|
"diff": true,
|
|
2288
|
-
"extension": ["js"],
|
|
2339
|
+
"extension": ["js", "cjs", "mjs"],
|
|
2289
2340
|
"opts": "./test/mocha.opts",
|
|
2290
2341
|
"package": "./package.json",
|
|
2291
2342
|
"reporter": "spec",
|
|
@@ -5680,6 +5731,11 @@ function Runner(suite, delay) {
|
|
|
5680
5731
|
this.total = suite.total();
|
|
5681
5732
|
this.failures = 0;
|
|
5682
5733
|
this.on(constants.EVENT_TEST_END, function(test) {
|
|
5734
|
+
if (test.retriedTest() && test.parent) {
|
|
5735
|
+
var idx =
|
|
5736
|
+
test.parent.tests && test.parent.tests.indexOf(test.retriedTest());
|
|
5737
|
+
if (idx > -1) test.parent.tests[idx] = test;
|
|
5738
|
+
}
|
|
5683
5739
|
self.checkGlobals(test);
|
|
5684
5740
|
});
|
|
5685
5741
|
this.on(constants.EVENT_HOOK_END, function(hook) {
|
|
@@ -6345,7 +6401,8 @@ Runner.prototype.uncaught = function(err) {
|
|
|
6345
6401
|
if (err instanceof Pending) {
|
|
6346
6402
|
return;
|
|
6347
6403
|
}
|
|
6348
|
-
|
|
6404
|
+
// browser does not exit script when throwing in global.onerror()
|
|
6405
|
+
if (this.allowUncaught && !process.browser) {
|
|
6349
6406
|
throw err;
|
|
6350
6407
|
}
|
|
6351
6408
|
|
|
@@ -7346,6 +7403,18 @@ function Test(title, fn) {
|
|
|
7346
7403
|
*/
|
|
7347
7404
|
utils.inherits(Test, Runnable);
|
|
7348
7405
|
|
|
7406
|
+
/**
|
|
7407
|
+
* Set or get retried test
|
|
7408
|
+
*
|
|
7409
|
+
* @private
|
|
7410
|
+
*/
|
|
7411
|
+
Test.prototype.retriedTest = function(n) {
|
|
7412
|
+
if (!arguments.length) {
|
|
7413
|
+
return this._retriedTest;
|
|
7414
|
+
}
|
|
7415
|
+
this._retriedTest = n;
|
|
7416
|
+
};
|
|
7417
|
+
|
|
7349
7418
|
Test.prototype.clone = function() {
|
|
7350
7419
|
var test = new Test(this.title, this.fn);
|
|
7351
7420
|
test.timeout(this.timeout());
|
|
@@ -7353,6 +7422,7 @@ Test.prototype.clone = function() {
|
|
|
7353
7422
|
test.enableTimeouts(this.enableTimeouts());
|
|
7354
7423
|
test.retries(this.retries());
|
|
7355
7424
|
test.currentRetry(this.currentRetry());
|
|
7425
|
+
test.retriedTest(this.retriedTest() || this);
|
|
7356
7426
|
test.globals(this.globals());
|
|
7357
7427
|
test.parent = this.parent;
|
|
7358
7428
|
test.file = this.file;
|
|
@@ -8196,6 +8266,28 @@ exports.defineConstants = function(obj) {
|
|
|
8196
8266
|
return Object.freeze(exports.createMap(obj));
|
|
8197
8267
|
};
|
|
8198
8268
|
|
|
8269
|
+
/**
|
|
8270
|
+
* Whether current version of Node support ES modules
|
|
8271
|
+
*
|
|
8272
|
+
* @description
|
|
8273
|
+
* Versions prior to 10 did not support ES Modules, and version 10 has an old incompatibile version of ESM.
|
|
8274
|
+
* This function returns whether Node.JS has ES Module supports that is compatible with Mocha's needs,
|
|
8275
|
+
* which is version >=12.11.
|
|
8276
|
+
*
|
|
8277
|
+
* @returns {Boolean} whether the current version of Node.JS supports ES Modules in a way that is compatible with Mocha
|
|
8278
|
+
*/
|
|
8279
|
+
exports.supportsEsModules = function() {
|
|
8280
|
+
if (!process.browser && process.versions && process.versions.node) {
|
|
8281
|
+
var versionFields = process.versions.node.split('.');
|
|
8282
|
+
var major = +versionFields[0];
|
|
8283
|
+
var minor = +versionFields[1];
|
|
8284
|
+
|
|
8285
|
+
if (major >= 13 || (major === 12 && minor >= 11)) {
|
|
8286
|
+
return true;
|
|
8287
|
+
}
|
|
8288
|
+
}
|
|
8289
|
+
};
|
|
8290
|
+
|
|
8199
8291
|
}).call(this,require('_process'),require("buffer").Buffer)
|
|
8200
8292
|
},{"./errors":6,"_process":69,"buffer":43,"fs":42,"glob":42,"he":54,"object.assign":65,"path":42,"util":89}],39:[function(require,module,exports){
|
|
8201
8293
|
'use strict'
|
|
@@ -18077,7 +18169,7 @@ function hasOwnProperty(obj, prop) {
|
|
|
18077
18169
|
},{"./support/isBuffer":88,"_process":69,"inherits":56}],90:[function(require,module,exports){
|
|
18078
18170
|
module.exports={
|
|
18079
18171
|
"name": "mocha",
|
|
18080
|
-
"version": "7.0
|
|
18172
|
+
"version": "7.1.0",
|
|
18081
18173
|
"homepage": "https://mochajs.org/",
|
|
18082
18174
|
"notifyLogo": "https://ibin.co/4QuRuGjXvl36.png"
|
|
18083
18175
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mocha",
|
|
3
|
-
"version": "7.0
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"description": "simple, flexible, fun test framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mocha",
|
|
@@ -14,501 +14,6 @@
|
|
|
14
14
|
"url": "https://opencollective.com/mochajs"
|
|
15
15
|
},
|
|
16
16
|
"author": "TJ Holowaychuk <tj@vision-media.ca>",
|
|
17
|
-
"contributors": [
|
|
18
|
-
"38elements <mh19820223@gmail.com>",
|
|
19
|
-
"Aaron Brady <aaron@mori.com>",
|
|
20
|
-
"Aaron Hamid <aaron.hamid@gmail.com>",
|
|
21
|
-
"Aaron Heckmann <aaron.heckmann+github@gmail.com>",
|
|
22
|
-
"Aaron Krause <aaronjkrause@gmail.com>",
|
|
23
|
-
"Aaron Petcoff <hello@aaronpetcoff.me>",
|
|
24
|
-
"abrkn <a@abrkn.com>",
|
|
25
|
-
"Adam Crabtree <adam.crabtree@redrobotlabs.com>",
|
|
26
|
-
"Adam Ginzberg <aginzberg@gmail.com>",
|
|
27
|
-
"Adam Gruber <talknmime@gmail.com>",
|
|
28
|
-
"Adrian Ludwig <me@adrianludwig.pl>",
|
|
29
|
-
"Ahmad Bamieh <ahmadbamieh@gmail.com>",
|
|
30
|
-
"airportyh <airportyh@gmail.com>",
|
|
31
|
-
"Ajay Kodali <ajay.kodali@citrix.com>",
|
|
32
|
-
"Al Scott <al.scott@atomicobject.com>",
|
|
33
|
-
"Alex Bainter <metalex9@users.noreply.github.com>",
|
|
34
|
-
"Alexander Early <alexander.early@gmail.com>",
|
|
35
|
-
"Alexander Shepelin <Brightcor@gmail.com>",
|
|
36
|
-
"Alhadis <gardnerjohng@gmail.com>",
|
|
37
|
-
"amsul <reach@amsul.ca>",
|
|
38
|
-
"Anders Olsen Sandvik <Andersos@users.noreply.github.com>",
|
|
39
|
-
"Andreas Brekken <andreas@opuno.com>",
|
|
40
|
-
"Andreas Lind <andreaslindpetersen@gmail.com>",
|
|
41
|
-
"Andreas Lind Petersen <andreas@one.com>",
|
|
42
|
-
"Andrew Bradley <abradley@brightcove.com>",
|
|
43
|
-
"Andrew Bradley <cspotcode@gmail.com>",
|
|
44
|
-
"Andrew Krawchyk <903716+akrawchyk@users.noreply.github.com>",
|
|
45
|
-
"Andrew Nesbitt <andrewnez@gmail.com>",
|
|
46
|
-
"Andrey Popp <8mayday@gmail.com>",
|
|
47
|
-
"Andrii Shumada <eagleeyes91@gmail.com>",
|
|
48
|
-
"andy matthews <andy@commadelimited.com>",
|
|
49
|
-
"Angelica Valenta <angelicavalenta@gmail.com>",
|
|
50
|
-
"Anis Safine <anis.safine.ext@francetv.fr>",
|
|
51
|
-
"Anish Karandikar <anishkny@gmail.com>",
|
|
52
|
-
"Anna Henningsen <github@addaleax.net>",
|
|
53
|
-
"Anthony <keppi@o2.pl>",
|
|
54
|
-
"Anton <anton.redfox@gmail.com>",
|
|
55
|
-
"anton <anton.valickij@gmail.com>",
|
|
56
|
-
"APerson <danielhglus@gmail.com>",
|
|
57
|
-
"Arian Stolwijk <arian@aryweb.nl>",
|
|
58
|
-
"Ariel Mashraki <ariel@mashraki.co.il>",
|
|
59
|
-
"Arnaud Brousseau <arnaud.brousseau@gmail.com>",
|
|
60
|
-
"Artem Govorov <artem.govorov@gmail.com>",
|
|
61
|
-
"Atsuya Takagi <asoftonight@gmail.com>",
|
|
62
|
-
"Attila Domokos <adomokos@gmail.com>",
|
|
63
|
-
"Austin Birch <mraustinbirch@gmail.com>",
|
|
64
|
-
"Avi Vahl <avi.vahl@wix.com>",
|
|
65
|
-
"badunk <baduncaduncan@gmail.com>",
|
|
66
|
-
"Bamieh <ahmadbamieh@gmail.com>",
|
|
67
|
-
"Ben Bradley <ben@bradleyit.com>",
|
|
68
|
-
"Ben Glassman <benglass@users.noreply.github.com>",
|
|
69
|
-
"Ben Harris <benhdev@gmail.com>",
|
|
70
|
-
"Ben Hutchison <ben@aldaviva.com>",
|
|
71
|
-
"Ben Lindsey <ben.lindsey@vungle.com>",
|
|
72
|
-
"Ben Noordhuis <info@bnoordhuis.nl>",
|
|
73
|
-
"Ben Vinegar <ben@benv.ca>",
|
|
74
|
-
"Benjamin Eidelman <beneidel@gmail.com>",
|
|
75
|
-
"Benjie Gillam <benjie@jemjie.com>",
|
|
76
|
-
"Benoit Larroque <zeta.ben@gmail.com>",
|
|
77
|
-
"Benoît Zugmeyer <bzugmeyer@gmail.com>",
|
|
78
|
-
"Benson Trent <bensontrent@gmail.com>",
|
|
79
|
-
"Berker Peksag <berker.peksag@gmail.com>",
|
|
80
|
-
"berni <berni@extensa.pl>",
|
|
81
|
-
"Bjørge Næss <bjoerge@origo.no>",
|
|
82
|
-
"Bjorn Stromberg <bjorn@bjornstar.com>",
|
|
83
|
-
"Brendan Nee <brendan.nee@gmail.com>",
|
|
84
|
-
"Brian Beck <exogen@gmail.com>",
|
|
85
|
-
"Brian Lagerman <49239617+brian-lagerman@users.noreply.github.com>",
|
|
86
|
-
"Brian Lalor <blalor@bravo5.org>",
|
|
87
|
-
"Brian M. Carlson <brian.m.carlson@gmail.com>",
|
|
88
|
-
"Brian Moore <guardbionic-github@yahoo.com>",
|
|
89
|
-
"Brian Tomlin <tendonstrength@gmail.com>",
|
|
90
|
-
"Brittany Moore <moore.brittanyann@gmail.com>",
|
|
91
|
-
"Bryan Donovan <bdondo@gmail.com>",
|
|
92
|
-
"Buck Doyle <b@chromatin.ca>",
|
|
93
|
-
"C. Scott Ananian <cscott@cscott.net>",
|
|
94
|
-
"Callum Macrae <callum@macr.ae>",
|
|
95
|
-
"Can Oztokmak <can@zeplin.io>",
|
|
96
|
-
"Capacitor Set <CapacitorSet@users.noreply.github.com>",
|
|
97
|
-
"Carl-Erik Kopseng <carlerik@gmail.com>",
|
|
98
|
-
"Casey Foster <casey@caseywebdev.com>",
|
|
99
|
-
"Charles Lowell <cowboyd@frontside.io>",
|
|
100
|
-
"Charles Merriam <charles.merriam@gmail.com>",
|
|
101
|
-
"Charles Samborski <demurgos@demurgos.net>",
|
|
102
|
-
"Charlie Rudolph <charles.w.rudolph@gmail.com>",
|
|
103
|
-
"Chen Yangjian <252317+cyjake@users.noreply.github.com>",
|
|
104
|
-
"Chris <chrisleck@users.noreply.github.com>",
|
|
105
|
-
"Chris Buckley <chris@cmbuckley.co.uk>",
|
|
106
|
-
"Chris Lamb <chris@chris-lamb.co.uk>",
|
|
107
|
-
"Christian <me@rndm.de>",
|
|
108
|
-
"Christian Holm <christian@peakon.com>",
|
|
109
|
-
"Christoffer Hallas <christoffer.hallas@gmail.com>",
|
|
110
|
-
"Christoph Neuroth <christoph.neuroth@gmail.com>",
|
|
111
|
-
"Christopher Hiller <boneskull@boneskull.com>",
|
|
112
|
-
"ChrisWren <cthewren@gmail.com>",
|
|
113
|
-
"claudyus <claudyus@HEX.(none)>",
|
|
114
|
-
"Connor Dunn <connorhd@gmail.com>",
|
|
115
|
-
"Corey Butler <corey@coreybutler.com>",
|
|
116
|
-
"Corey Farrell <git@cfware.com>",
|
|
117
|
-
"Cory Thomas <cory.thomas@bazaarvoice.com>",
|
|
118
|
-
"Craig Taub <craigtaub@gmail.com>",
|
|
119
|
-
"Cube <maty21@gmail.com>",
|
|
120
|
-
"Daniel Ruf <827205+DanielRuf@users.noreply.github.com>",
|
|
121
|
-
"Daniel Ruf <daniel@daniel-ruf.de>",
|
|
122
|
-
"Daniel St. Jules <danielst.jules@gmail.com>",
|
|
123
|
-
"Daniel Stockman <daniel.stockman@gmail.com>",
|
|
124
|
-
"Darryl Pogue <dvpdiner2@gmail.com>",
|
|
125
|
-
"Dave McKenna <davemckenna01@gmail.com>",
|
|
126
|
-
"David da Silva Contín <dasilvacontin@gmail.com>",
|
|
127
|
-
"David Henderson <david.henderson@triggeredmessaging.com>",
|
|
128
|
-
"David M. Lee <leedm777@yahoo.com>",
|
|
129
|
-
"David Neubauer <davidneub@gmail.com>",
|
|
130
|
-
"DavidLi119 <han.david.li@gmail.com>",
|
|
131
|
-
"DavNej <davnej.dev@gmail.com>",
|
|
132
|
-
"Denis Bardadym <bardadymchik@gmail.com>",
|
|
133
|
-
"Devin Weaver <suki@tritarget.org>",
|
|
134
|
-
"dfberry <dinaberry@outlook.com>",
|
|
135
|
-
"Di Wu <dwu@palantir.com>",
|
|
136
|
-
"Dina Berry <dfberry@users.noreply.github.com>",
|
|
137
|
-
"Diogo Monteiro <diogo.gmt@gmail.com>",
|
|
138
|
-
"Dmitrii Sorin <info@staypositive.ru>",
|
|
139
|
-
"Dmitriy Simushev <simushevds@gmail.com>",
|
|
140
|
-
"Dmitry Shirokov <deadrunk@gmail.com>",
|
|
141
|
-
"Dmitry Sorin <info@staypositive.ru>",
|
|
142
|
-
"Domenic Denicola <domenic@domenicdenicola.com>",
|
|
143
|
-
"Dominic Barnes <dominic@dbarnes.info>",
|
|
144
|
-
"Dominique Quatravaux <dominique@quatravaux.org>",
|
|
145
|
-
"Douglas Christopher Wilson <doug@somethingdoug.com>",
|
|
146
|
-
"Duncan Beevers <duncan@dweebd.com>",
|
|
147
|
-
"eiji.ienaga <eiji.ienaga@gmail.com>",
|
|
148
|
-
"elergy <elergy@yandex-team.ru>",
|
|
149
|
-
"Eli Skeggs <skeggse@users.noreply.github.com>",
|
|
150
|
-
"ELLIOTTCABLE <me@ell.io>",
|
|
151
|
-
"Emanuele <my.burning@gmail.com>",
|
|
152
|
-
"Enric Pallerols <enric@pallerols.cat>",
|
|
153
|
-
"Erik Eng <mail@ptz0n.se>",
|
|
154
|
-
"Eugene Tiutiunnyk <eugene.tiutiunnyk@lookout.com>",
|
|
155
|
-
"EunChan Park <pec9399@naver.com>",
|
|
156
|
-
"Fabio M. Costa <fabiomcosta@gmail.com>",
|
|
157
|
-
"Fábio Santos <fabiosantosart@gmail.com>",
|
|
158
|
-
"Fagner Brack <github3@fagnermartins.com>",
|
|
159
|
-
"fargies <fargies@users.noreply.github.com>",
|
|
160
|
-
"FARKAS Máté <mate.farkas@virtual-call-center.eu>",
|
|
161
|
-
"fcrisci <fabio.crisci@amadeus.com>",
|
|
162
|
-
"Fede Ramirez <i@2fd.me>",
|
|
163
|
-
"Fedor Indutny <fedor.indutny@gmail.com>",
|
|
164
|
-
"fengmk2 <fengmk2@gmail.com>",
|
|
165
|
-
"Fin Chen <finfin@gmail.com>",
|
|
166
|
-
"Florian Margaine <florian@margaine.com>",
|
|
167
|
-
"FND <FND@users.noreply.github.com>",
|
|
168
|
-
"fool2fish <fool2fish@gmail.com>",
|
|
169
|
-
"Forbes Lindesay <forbes@lindesay.co.uk>",
|
|
170
|
-
"Frank Leon Rose <frankleonrose@gmail.com>",
|
|
171
|
-
"Frederico Silva <frederico.silva@gmail.com>",
|
|
172
|
-
"Fredrik Enestad <fredrik@devloop.se>",
|
|
173
|
-
"Fredrik Lindin <fredriklindin@gmail.com>",
|
|
174
|
-
"Fumiaki MATSUSHIMA <mtsmfm@gmail.com>",
|
|
175
|
-
"Gabe Gorelick <gabegorelick@gmail.com>",
|
|
176
|
-
"Gabriel Silk <gabesilk@gmail.com>",
|
|
177
|
-
"Gareth Aye <gaye@mozilla.com>",
|
|
178
|
-
"Gareth Murphy <gareth.cpm@gmail.com>",
|
|
179
|
-
"Gastón I. Silva <givanse@gmail.com>",
|
|
180
|
-
"Gavin Mogan <GavinM@airg.com>",
|
|
181
|
-
"gaye <gaye@mozilla.com>",
|
|
182
|
-
"gigadude <gigadude@users.noreply.github.com>",
|
|
183
|
-
"Giovanni Bassi <giggio@giggio.net>",
|
|
184
|
-
"gizemkeser <44727928+gizemkeser@users.noreply.github.com>",
|
|
185
|
-
"Glen Huang <curvedmark@gmail.com>",
|
|
186
|
-
"Glen Mailer <glenjamin@gmail.com>",
|
|
187
|
-
"grasGendarme <me@grasgendar.me>",
|
|
188
|
-
"Greg Perkins <gregperkins@alum.mit.edu>",
|
|
189
|
-
"Guangcong Luo <guangcongluo@gmail.com>",
|
|
190
|
-
"Guillermo Rauch <rauchg@gmail.com>",
|
|
191
|
-
"Guy Arye <arye.guy@gmail.com>",
|
|
192
|
-
"Gyandeep Singh <gyandeeps@gmail.com>",
|
|
193
|
-
"Harish <hyeluri@gmail.com>",
|
|
194
|
-
"Harry Brundage <harry.brundage@gmail.com>",
|
|
195
|
-
"Harry Sarson <harry.sarson@hotmail.co.uk>",
|
|
196
|
-
"Harry Wolff <hswolff@users.noreply.github.com>",
|
|
197
|
-
"Herman Junge <herman@geekli.st>",
|
|
198
|
-
"hokaccha <k.hokamura@gmail.com>",
|
|
199
|
-
"Honza Javorek <mail@honzajavorek.cz>",
|
|
200
|
-
"Hugo Giraudel <hugo.giraudel@gmail.com>",
|
|
201
|
-
"Hugo Kim <k7120792@gmail.com>",
|
|
202
|
-
"HYUNSANG HAN <gustkd3@gmail.com>",
|
|
203
|
-
"HyunSangHan <gustkd3@gmail.com>",
|
|
204
|
-
"Ian Storm Taylor <ian@ianstormtaylor.com>",
|
|
205
|
-
"Ian W. Remmel <design@ianwremmel.com>",
|
|
206
|
-
"Ian Young <ian.greenleaf@gmail.com>",
|
|
207
|
-
"Ian Zamojc <ian@thesecretlocation.net>",
|
|
208
|
-
"Igwe Kalu <igwe.kalu@live.com>",
|
|
209
|
-
"ImgBot <31427850+ImgBotApp@users.noreply.github.com>",
|
|
210
|
-
"inxorable <inxorable@codewren.ch>",
|
|
211
|
-
"Ivan <ivan@kinvey.com>",
|
|
212
|
-
"Jaakko Salonen <jaakko.salonen@iki.fi>",
|
|
213
|
-
"Jacob Wejendorp <jacob@wejendorp.dk>",
|
|
214
|
-
"Jake Craige <james.craige@gmail.com>",
|
|
215
|
-
"Jake Marsh <jakemmarsh@gmail.com>",
|
|
216
|
-
"Jakob Krigovsky <jakob@krigovsky.com>",
|
|
217
|
-
"Jakub Nešetřil <jakub@apiary.io>",
|
|
218
|
-
"James Bowes <jbowes@repl.ca>",
|
|
219
|
-
"James Carr <james.r.carr@gmail.com>",
|
|
220
|
-
"James D. Rogers <jd2rogers2@gmail.com>",
|
|
221
|
-
"James G. Kim <jgkim@jayg.org>",
|
|
222
|
-
"James Lal <james@lightsofapollo.com>",
|
|
223
|
-
"James Nylen <jnylen@gmail.com>",
|
|
224
|
-
"Jan Kopriva <jan.kopriva@gooddata.com>",
|
|
225
|
-
"Jan Krems <jan.krems@groupon.com>",
|
|
226
|
-
"Jan Lehnardt <jan@apache.org>",
|
|
227
|
-
"Jan-Philip Gehrcke <jgehrcke@googlemail.com>",
|
|
228
|
-
"Jason Barry <jay@jcbarry.com>",
|
|
229
|
-
"Jason Lai <jason@getpebble.com>",
|
|
230
|
-
"Jason Leyba <jmleyba@gmail.com>",
|
|
231
|
-
"Javier Aranda <javierav@javierav.com>",
|
|
232
|
-
"Jayasankar <jayasankar.m@gmail.com>",
|
|
233
|
-
"Jean Ponchon <gelule@gmail.com>",
|
|
234
|
-
"Jeff Kunkle <jeff.kunkle@nearinfinity.com>",
|
|
235
|
-
"Jeff Schilling <jeff.schilling@q2ebanking.com>",
|
|
236
|
-
"JeongHoon Byun (aka Outsider) <outsideris@gmail.com>",
|
|
237
|
-
"Jérémie Astori <jeremie@astori.fr>",
|
|
238
|
-
"Jeremy Martin <jmar777@gmail.com>",
|
|
239
|
-
"Jerry Muzsik <jerrymuzsik@icloud.com>",
|
|
240
|
-
"Jesse Dailey <jesse.dailey@gmail.com>",
|
|
241
|
-
"jimenglish81 <jimenglish81@gmail.com>",
|
|
242
|
-
"Jimmy Cuadra <jimmy@jimmycuadra.com>",
|
|
243
|
-
"Jo Liss <joliss42@gmail.com>",
|
|
244
|
-
"Joao Moreno <mail@joaomoreno.com>",
|
|
245
|
-
"Joel Kemp <mrjoelkemp@gmail.com>",
|
|
246
|
-
"Joey Cozza <joey@grow.com>",
|
|
247
|
-
"John Doty <jrhdoty@gmail.com>",
|
|
248
|
-
"John Firebaugh <john.firebaugh@gmail.com>",
|
|
249
|
-
"John Reeves <github@jonnyreeves.co.uk>",
|
|
250
|
-
"Johnathon Sanders <outdooricon@gmail.com>",
|
|
251
|
-
"Jon Surrell <jon.surrell@automattic.com>",
|
|
252
|
-
"Jonas Dohse <jonas@mbr-targeting.com>",
|
|
253
|
-
"Jonas Westerlund <jonas.westerlund@me.com>",
|
|
254
|
-
"Jonathan Creamer <matrixhasyou2k4@gmail.com>",
|
|
255
|
-
"Jonathan Delgado <jdelgado@rewip.com>",
|
|
256
|
-
"Jonathan Kim <jkimbo@gmail.com>",
|
|
257
|
-
"Jonathan Ong <jonathanrichardong@gmail.com>",
|
|
258
|
-
"Jonathan Park <jpark@daptiv.com>",
|
|
259
|
-
"Jonathan Rajavuori <jrajav@gmail.com>",
|
|
260
|
-
"Jordan Sexton <jordan@jordansexton.com>",
|
|
261
|
-
"Joseph Lin <josephlin55555@gmail.com>",
|
|
262
|
-
"Josh Eversmann <josh.eversmann@gmail.com>",
|
|
263
|
-
"Josh Lory <josh.lory@code.org>",
|
|
264
|
-
"Josh Soref <jsoref@users.noreply.github.com>",
|
|
265
|
-
"Joshua Appelman <jappelman@xebia.com>",
|
|
266
|
-
"Joshua Krall <joshuakrall@pobox.com>",
|
|
267
|
-
"JP Bochi <jpbochi@gmail.com>",
|
|
268
|
-
"jsdevel <js.developer.undefined@gmail.com>",
|
|
269
|
-
"Juerg B <44573692+juergba@users.noreply.github.com>",
|
|
270
|
-
"juergba <filodron@gmail.com>",
|
|
271
|
-
"Julien Wajsberg <felash@gmail.com>",
|
|
272
|
-
"Jupp Müller <jupp0r@gmail.com>",
|
|
273
|
-
"Jussi Virtanen <jussi.k.virtanen@gmail.com>",
|
|
274
|
-
"Justin DuJardin <justin.dujardin@sococo.com>",
|
|
275
|
-
"Juzer Ali <er.juzerali@gmail.com>",
|
|
276
|
-
"Katie Gengler <katiegengler@gmail.com>",
|
|
277
|
-
"kavun <kevin.a.reed@gmail.com>",
|
|
278
|
-
"Kazuhito Hokamura <k.hokamura@gmail.com>",
|
|
279
|
-
"Keith Cirkel <github@keithcirkel.co.uk>",
|
|
280
|
-
"Kelong Wang <buaawkl@gmail.com>",
|
|
281
|
-
"Kent C. Dodds <kent+github@doddsfamily.us>",
|
|
282
|
-
"Kevin Burke <kev@inburke.com>",
|
|
283
|
-
"Kevin Conway <kevinjacobconway@gmail.com>",
|
|
284
|
-
"Kevin Kirsche <Kev.Kirsche+GitHub@gmail.com>",
|
|
285
|
-
"Kevin Partington <platinum.azure@kernelpanicstudios.com>",
|
|
286
|
-
"Kevin Wang <kevin@fossa.io>",
|
|
287
|
-
"Kirill Korolyov <kirill.korolyov@gmail.com>",
|
|
288
|
-
"klaemo <klaemo@fastmail.fm>",
|
|
289
|
-
"Koen Punt <koen@koenpunt.nl>",
|
|
290
|
-
"Konstantin Käfer <github@kkaefer.com>",
|
|
291
|
-
"Kris Rasmussen <kristopher.rasmussen@gmail.com>",
|
|
292
|
-
"Kunal Nagpal <kunagpal@users.noreply.github.com>",
|
|
293
|
-
"Kyle Fuller <kyle@fuller.li>",
|
|
294
|
-
"Kyle Mitchell <kyle@kemitchell.com>",
|
|
295
|
-
"KyoungWan <kyngwan@gmail.com>",
|
|
296
|
-
"lakmeer <lakmeerkravid@gmail.com>",
|
|
297
|
-
"Lane Kelly <lanekelly16@gmail.com>",
|
|
298
|
-
"László Bácsi <lackac@lackac.hu>",
|
|
299
|
-
"Laurence Rowe <lrowe@netflix.com>",
|
|
300
|
-
"Liam Newman <bitwiseman@gmail.com>",
|
|
301
|
-
"Lindsay-Needs-Sleep <51773923+Lindsay-Needs-Sleep@users.noreply.github.com>",
|
|
302
|
-
"Linus Unnebäck <linus@folkdatorn.se>",
|
|
303
|
-
"lodr <salva@unoyunodiez.com>",
|
|
304
|
-
"Long Ho <longlho@users.noreply.github.com>",
|
|
305
|
-
"Maciej Małecki <maciej.malecki@notimplemented.org>",
|
|
306
|
-
"Mal Graty <mal.graty@googlemail.com>",
|
|
307
|
-
"Marais Rossouw <me@maraisr.com>",
|
|
308
|
-
"Marc Kuo <kuomarc2@gmail.com>",
|
|
309
|
-
"Marc Udoff <mlucool@gmail.com>",
|
|
310
|
-
"Marcello Bastea-Forte <marcello@cellosoft.com>",
|
|
311
|
-
"Mario Díaz Ceñera <46492068+MarioDiaz98@users.noreply.github.com>",
|
|
312
|
-
"Mark Banner <standard8@mozilla.com>",
|
|
313
|
-
"Mark Owsiak <mark.owsiak@gmail.com>",
|
|
314
|
-
"Markus Tacker <m@coderbyheart.com>",
|
|
315
|
-
"Martijn Cuppens <martijn.cuppens@intracto.com>",
|
|
316
|
-
"Martin Marko <marcus@gratex.com>",
|
|
317
|
-
"Mathieu Desvé <mathieudesve@MacBook-Pro-de-Mathieu.local>",
|
|
318
|
-
"Matija Marohnić <matija.marohnic@gmail.com>",
|
|
319
|
-
"Matt Bierner <mattbierner@gmail.com>",
|
|
320
|
-
"Matt Giles <matt.giles@cerner.com>",
|
|
321
|
-
"Matt Robenolt <matt@ydekproductions.com>",
|
|
322
|
-
"Matt Smith <matthewgarysmith@gmail.com>",
|
|
323
|
-
"Matthew Shanley <matthewshanley@littlesecretsrecords.com>",
|
|
324
|
-
"Mattias Tidlund <mattias.tidlund@learningwell.se>",
|
|
325
|
-
"Max Goodman <c@chromakode.com>",
|
|
326
|
-
"Maximilian Antoni <mail@maxantoni.de>",
|
|
327
|
-
"Merrick Christensen <merrick.christensen@gmail.com>",
|
|
328
|
-
"Mia <miajeongdev@gmail.com>",
|
|
329
|
-
"Michael Demmer <demmer@jut.io>",
|
|
330
|
-
"Michael Jackson <mjijackson@gmail.com>",
|
|
331
|
-
"Michael Olson <mwolson@member.fsf.org>",
|
|
332
|
-
"Michael Riley <michael.riley@autodesk.com>",
|
|
333
|
-
"Michael Schoonmaker <michael.r.schoonmaker@gmail.com>",
|
|
334
|
-
"Michal Charemza <michalcharemza@gmail.com>",
|
|
335
|
-
"Michiel de Jong <michiel@unhosted.org>",
|
|
336
|
-
"Mick Brooks <mick.brooks@sinking.in>",
|
|
337
|
-
"Mike Pennisi <mike@mikepennisi.com>",
|
|
338
|
-
"Mislav Marohnić <mislav.marohnic@gmail.com>",
|
|
339
|
-
"monowerker <monowerker@gmail.com>",
|
|
340
|
-
"Moshe Kolodny <mkolodny@integralads.com>",
|
|
341
|
-
"mrShturman <mrshturman@gmail.com>",
|
|
342
|
-
"Nathan Alderson <nathan.alderson@adtran.com>",
|
|
343
|
-
"Nathan Black <nathan@nathanblack.org>",
|
|
344
|
-
"Nathan Bowser <nathan.bowser@spiderstrategies.com>",
|
|
345
|
-
"Nathan Houle <nathan@nathanhoule.com>",
|
|
346
|
-
"Nathan Rajlich <nathan@tootallnate.net>",
|
|
347
|
-
"nexdrew <andrew.goode@nextraq.com>",
|
|
348
|
-
"Nick Fitzgerald <fitzgen@gmail.com>",
|
|
349
|
-
"Nicolas Girault <nic.girault@gmail.com>",
|
|
350
|
-
"Nicolo Taddei <taddei.uk@gmail.com>",
|
|
351
|
-
"Nik Nyby <nnyby@columbia.edu>",
|
|
352
|
-
"Nikolaos Georgiou <Nikolaos.Georgiou@gmail.com>",
|
|
353
|
-
"nishigori <Takuya_Nishigori@voyagegroup.com>",
|
|
354
|
-
"Noshir Patel <nosh@blackpiano.com>",
|
|
355
|
-
"not-an-aardvark <not-an-aardvark@users.noreply.github.com>",
|
|
356
|
-
"OlegTsyba <oleg.tsyba.ua@gmail.com>",
|
|
357
|
-
"Oliver Salzburg <oliver.salzburg@gmail.com>",
|
|
358
|
-
"olsonpm <olsonpm@users.noreply.github.com>",
|
|
359
|
-
"omardelarosa <thedelarosa@gmail.com>",
|
|
360
|
-
"Oscar Godson <oscargodson@outlook.com>",
|
|
361
|
-
"Outsider <outsideris@gmail.com>",
|
|
362
|
-
"oveddan <stangogh@gmail.com>",
|
|
363
|
-
"P. Roebuck <plroebuck@users.noreply.github.com>",
|
|
364
|
-
"Panu Horsmalahti <panu.horsmalahti@iki.fi>",
|
|
365
|
-
"Park Seong-beom <parkgds@gmail.com>",
|
|
366
|
-
"Parker Moore <parkrmoore@gmail.com>",
|
|
367
|
-
"Pascal <pascal@pascal.com>",
|
|
368
|
-
"Pat Finnigan <patrick.k.finnigan@gmail.com>",
|
|
369
|
-
"Paul Armstrong <paul@paularmstrongdesigns.com>",
|
|
370
|
-
"Paul Miller <paul@paulmillr.com>",
|
|
371
|
-
"Paul Roebuck <plroebuck@users.noreply.github.com>",
|
|
372
|
-
"Pavel Zubkou <pavel.zubkou@gmail.com>",
|
|
373
|
-
"Pete Hawkins <pete@petes-imac.frontinternal.net>",
|
|
374
|
-
"Peter Müller <munter@fumle.dk>",
|
|
375
|
-
"Peter Rust <peter@cornerstonenw.com>",
|
|
376
|
-
"Peter Schmidt <peter@peterjs.com>",
|
|
377
|
-
"Phil Sung <psung@dnanexus.com>",
|
|
378
|
-
"Philip M. White <philip@mailworks.org>",
|
|
379
|
-
"Piotr Kuczynski <piotr.kuczynski@gmail.com>",
|
|
380
|
-
"PoppinL <poppinlp@gmail.com>",
|
|
381
|
-
"Poprádi Árpád <popradi.arpad11@gmail.com>",
|
|
382
|
-
"Prayag Verma <prayag.verma@gmail.com>",
|
|
383
|
-
"qiuzuhui <qiuzuhui@users.noreply.github.com>",
|
|
384
|
-
"Quang Van <quangvvv@gmail.com>",
|
|
385
|
-
"Quanlong He <kyan.ql.he@gmail.com>",
|
|
386
|
-
"R56 <rviskus@gmail.com>",
|
|
387
|
-
"Raynos <raynos2@gmail.com>",
|
|
388
|
-
"Refael Ackermann <refael@empeeric.com>",
|
|
389
|
-
"Rens Groothuijsen <l.groothuijsen@alumni.maastrichtuniversity.nl>",
|
|
390
|
-
"Rich Trott <rtrott@gmail.com>",
|
|
391
|
-
"Richard Dingwall <rdingwall@gmail.com>",
|
|
392
|
-
"Richard Knop <RichardKnop@users.noreply.github.com>",
|
|
393
|
-
"Rico Sta. Cruz <rstacruz@users.noreply.github.com>",
|
|
394
|
-
"rmacklin <richard.github@nrm.com>",
|
|
395
|
-
"Rob Loach <robloach@gmail.com>",
|
|
396
|
-
"Rob Raux <rraux@peachworks.com>",
|
|
397
|
-
"Rob Wu <rob@robwu.nl>",
|
|
398
|
-
"Robert Kieffer <robert@broofa.com>",
|
|
399
|
-
"Robert Rossmann <rr.rossmann@me.com>",
|
|
400
|
-
"Romain Prieto <romain.prieto@gmail.com>",
|
|
401
|
-
"Roman Neuhauser <rneuhauser@suse.cz>",
|
|
402
|
-
"Roman Shtylman <shtylman@gmail.com>",
|
|
403
|
-
"Ross Warren <rosswarren4@gmail.com>",
|
|
404
|
-
"rotemdan <rotemdan@gmail.com>",
|
|
405
|
-
"Russ Bradberry <devdazed@me.com>",
|
|
406
|
-
"Russell Munson <rmunson@github.com>",
|
|
407
|
-
"Rustem Mustafin <mustafin.rustem@gmail.com>",
|
|
408
|
-
"Ryan Hubbard <ryanmhubbard@gmail.com>",
|
|
409
|
-
"Ryan Shaw <ryan.shaw@min.vc>",
|
|
410
|
-
"Ryan Tablada <ryan.tablada@gmail.com>",
|
|
411
|
-
"Ryunosuke SATO <tricknotes.rs@gmail.com>",
|
|
412
|
-
"ryym <ryym.64@gmail.com>",
|
|
413
|
-
"Saerom Bang <saerombang11@gmail.com>",
|
|
414
|
-
"Salehen Shovon Rahman <salehen.rahman@gmail.com>",
|
|
415
|
-
"Sam Mussell <smussell@gmail.com>",
|
|
416
|
-
"samuel goldszmidt <samuel.goldszmidt@gmail.com>",
|
|
417
|
-
"sarehag <joakim.sarehag@gmail.com>",
|
|
418
|
-
"Sasha Koss <koss@nocorp.me>",
|
|
419
|
-
"Scott Kao <Scottkao85@users.noreply.github.com>",
|
|
420
|
-
"Scott Santucci <ScottFreeCode@users.noreply.github.com>",
|
|
421
|
-
"ScottFreeCode <ScottFreeCode@users.noreply.github.com>",
|
|
422
|
-
"Sean Lang <slang800@gmail.com>",
|
|
423
|
-
"Sebastian Van Sande <sebastian@vansande.org>",
|
|
424
|
-
"sebv <seb.vincent@gmail.com>",
|
|
425
|
-
"Seiya Konno <nulltask@gmail.com>",
|
|
426
|
-
"Sergey Simonchik <sergey.simonchik@jetbrains.com>",
|
|
427
|
-
"Sergio Santoro <santoro.srg@gmail.com>",
|
|
428
|
-
"Shaine Hatch <shaine@squidtree.com>",
|
|
429
|
-
"Shawn Krisman <telaviv@github>",
|
|
430
|
-
"SheetJSDev <dev@sheetjs.com>",
|
|
431
|
-
"Shinnosuke Watanabe <snnskwtnb@gmail.com>",
|
|
432
|
-
"silentcloud <rjmuqiang@gmail.com>",
|
|
433
|
-
"Silvio Massari <silvio.massari@auth0.com>",
|
|
434
|
-
"Simon Gaeremynck <gaeremyncks@gmail.com>",
|
|
435
|
-
"Simon Goumaz <simon@attentif.ch>",
|
|
436
|
-
"simov <simeonvelichkov@gmail.com>",
|
|
437
|
-
"Sindre Sorhus <sindresorhus@gmail.com>",
|
|
438
|
-
"Slobodan Mišković <slobodan@miskovic.ca>",
|
|
439
|
-
"slyg <syl.faucherand@gmail.com>",
|
|
440
|
-
"Soel <shachar.soel@sap.com>",
|
|
441
|
-
"solodynamo <bittuf3@gmail.com>",
|
|
442
|
-
"Sona Lee <mojosoeun@gmail.com>",
|
|
443
|
-
"Soobin Bak <qls014738@gmail.com>",
|
|
444
|
-
"Sorin Iclanzan <sorin@iclanzan.com>",
|
|
445
|
-
"Standa Opichal <opichals@gmail.com>",
|
|
446
|
-
"startswithaj <jake.mc@icloud.com>",
|
|
447
|
-
"Stephen Hess <trescube@users.noreply.github.com>",
|
|
448
|
-
"Stephen Mathieson <smath23@gmail.com>",
|
|
449
|
-
"Steve Mason <stevem@brandwatch.com>",
|
|
450
|
-
"Stewart Taylor <stewart.taylor1@gmail.com>",
|
|
451
|
-
"Stone <baoshi.li@adleida.com>",
|
|
452
|
-
"Sulabh Bista <sul4bh@gmail.com>",
|
|
453
|
-
"Sune Simonsen <sune@we-knowhow.dk>",
|
|
454
|
-
"Svetlana <39729453+Lana-Light@users.noreply.github.com>",
|
|
455
|
-
"Sylvain <sstephant+github@gmail.com>",
|
|
456
|
-
"Sylvester Keil <sylvester@keil.or.at>",
|
|
457
|
-
"Szauka <33459309+Szauka@users.noreply.github.com>",
|
|
458
|
-
"Tapiwa Kelvin <tapiwa@munzwa.tk>",
|
|
459
|
-
"Ted Yavuzkurt <hello@TedY.io>",
|
|
460
|
-
"Teddy Zeenny <teddyzeenny@gmail.com>",
|
|
461
|
-
"tgautier@yahoo.com <tgautier@gmail.com>",
|
|
462
|
-
"Thedark1337 <thedark1337@thedark1337.com>",
|
|
463
|
-
"Thomas Broadley <buriedunderbooks@hotmail.com>",
|
|
464
|
-
"Thomas Grainger <tagrain@gmail.com>",
|
|
465
|
-
"Thomas Scholtes <thomas-scholtes@gmx.de>",
|
|
466
|
-
"Thomas Vantuycom <thomasvantuycom@protonmail.com>",
|
|
467
|
-
"Tim Ehat <timehat@gmail.com>",
|
|
468
|
-
"Tim Harshman <goteamtim+git@gmail.com>",
|
|
469
|
-
"Timo Tijhof <krinklemail@gmail.com>",
|
|
470
|
-
"Timothy Gu <timothygu99@gmail.com>",
|
|
471
|
-
"Tingan Ho <tingan87@gmail.com>",
|
|
472
|
-
"tmont <tommy.mont@gmail.com>",
|
|
473
|
-
"Tobias Bieniek <tobias.bieniek@gmail.com>",
|
|
474
|
-
"Tobias Mollstam <tobias@mollstam.com>",
|
|
475
|
-
"Todd Agulnick <tagulnick@onjack.com>",
|
|
476
|
-
"Tom Coquereau <tom@thau.me>",
|
|
477
|
-
"Tom Hughes <tom@compton.nu>",
|
|
478
|
-
"Tomer Eskenazi <tomer.eskenazi@ironsrc.com>",
|
|
479
|
-
"toyjhlee <toyjhlee@gmail.com>",
|
|
480
|
-
"traleig1 <darkphoenix739@gmail.com>",
|
|
481
|
-
"Travis Jeffery <tj@travisjeffery.com>",
|
|
482
|
-
"tripu <t@tripu.info>",
|
|
483
|
-
"Tyson Tate <tyson@tysontate.com>",
|
|
484
|
-
"Vadim Nikitin <vnikiti@ncsu.edu>",
|
|
485
|
-
"Valentin Agachi <github-com@agachi.name>",
|
|
486
|
-
"Valeri Karpov <val@karpov.io>",
|
|
487
|
-
"Victor <victor@turo.com>",
|
|
488
|
-
"Victor Costan <costan@gmail.com>",
|
|
489
|
-
"Ville Saukkonen <villesau@users.noreply.github.com>",
|
|
490
|
-
"Vivek Ganesan <caliberoviv@gmail.com>",
|
|
491
|
-
"vlad <iamvlad@gmail.com>",
|
|
492
|
-
"Vlad Magdalin <vlad@webflow.com>",
|
|
493
|
-
"Volker Buzek <volker.buzek@sap.com>",
|
|
494
|
-
"Wanseob Lim <email@wanseob.com>",
|
|
495
|
-
"Wil Moore III <wil.moore@wilmoore.com>",
|
|
496
|
-
"Will Langstroth <will@langstroth.com>",
|
|
497
|
-
"wsw <wsw0108@gmail.com>",
|
|
498
|
-
"Xavier Antoviaque <xavier@antoviaque.org>",
|
|
499
|
-
"Xavier Damman <xdamman@gmail.com>",
|
|
500
|
-
"XhmikosR <xhmikosr@gmail.com>",
|
|
501
|
-
"XhmikosR <xhmikosr@users.sourceforge.net>",
|
|
502
|
-
"Yanis Wang <yanis.wang@gmail.com>",
|
|
503
|
-
"yehiyam <yehiyam@users.noreply.github.com>",
|
|
504
|
-
"Yoshiya Hinosawa <hinosawa@waku-2.com>",
|
|
505
|
-
"Yuest Wang <yuestwang@gmail.com>",
|
|
506
|
-
"yuitest <yuitest@cjhat.net>",
|
|
507
|
-
"zhiyelee <zhiyelee@gmail.com>",
|
|
508
|
-
"Zirak <zirakertan@gmail.com>",
|
|
509
|
-
"Zsolt Takács <zsolt@takacs.cc>",
|
|
510
|
-
"现充 <qixiang.cqx@alibaba-inc.com>"
|
|
511
|
-
],
|
|
512
17
|
"license": "MIT",
|
|
513
18
|
"repository": {
|
|
514
19
|
"type": "git",
|
|
@@ -549,7 +54,7 @@
|
|
|
549
54
|
"growl": "1.10.5",
|
|
550
55
|
"he": "1.2.0",
|
|
551
56
|
"js-yaml": "3.13.1",
|
|
552
|
-
"log-symbols": "
|
|
57
|
+
"log-symbols": "3.0.0",
|
|
553
58
|
"minimatch": "3.0.4",
|
|
554
59
|
"mkdirp": "0.5.1",
|
|
555
60
|
"ms": "2.1.1",
|
|
@@ -565,11 +70,11 @@
|
|
|
565
70
|
},
|
|
566
71
|
"devDependencies": {
|
|
567
72
|
"@11ty/eleventy": "^0.8.3",
|
|
568
|
-
"@mocha/contributors": "^1.0.4",
|
|
569
73
|
"@mocha/docdash": "^2.1.2",
|
|
570
74
|
"acorn": "^7.0.0",
|
|
571
75
|
"assetgraph-builder": "^6.10.1",
|
|
572
76
|
"autoprefixer": "^9.6.0",
|
|
77
|
+
"babel-eslint": "^10.0.3",
|
|
573
78
|
"browserify": "^16.2.3",
|
|
574
79
|
"browserify-package-json": "^1.0.1",
|
|
575
80
|
"chai": "^4.2.0",
|
|
@@ -577,15 +82,15 @@
|
|
|
577
82
|
"coveralls": "^3.0.3",
|
|
578
83
|
"cross-env": "^5.2.0",
|
|
579
84
|
"cross-spawn": "^6.0.5",
|
|
580
|
-
"eslint": "^
|
|
581
|
-
"eslint-config-prettier": "^
|
|
582
|
-
"eslint-config-semistandard": "^
|
|
583
|
-
"eslint-config-standard": "^
|
|
584
|
-
"eslint-plugin-import": "^2.
|
|
585
|
-
"eslint-plugin-node": "^
|
|
586
|
-
"eslint-plugin-prettier": "^3.1.
|
|
587
|
-
"eslint-plugin-promise": "^4.
|
|
588
|
-
"eslint-plugin-standard": "^4.0.
|
|
85
|
+
"eslint": "^6.8.0",
|
|
86
|
+
"eslint-config-prettier": "^6.9.0",
|
|
87
|
+
"eslint-config-semistandard": "^15.0.0",
|
|
88
|
+
"eslint-config-standard": "^14.1.0",
|
|
89
|
+
"eslint-plugin-import": "^2.19.1",
|
|
90
|
+
"eslint-plugin-node": "^11.0.0",
|
|
91
|
+
"eslint-plugin-prettier": "^3.1.2",
|
|
92
|
+
"eslint-plugin-promise": "^4.2.1",
|
|
93
|
+
"eslint-plugin-standard": "^4.0.1",
|
|
589
94
|
"fs-extra": "^8.0.1",
|
|
590
95
|
"husky": "^1.3.1",
|
|
591
96
|
"hyperlink": "^4.3.1",
|
|
@@ -655,13 +160,6 @@
|
|
|
655
160
|
"endOfLine": "auto"
|
|
656
161
|
},
|
|
657
162
|
"gitter": "https://gitter.im/mochajs/mocha",
|
|
658
|
-
"@mocha/contributors": {
|
|
659
|
-
"exclude": [
|
|
660
|
-
"greenkeeperio-bot <support@greenkeeper.io>",
|
|
661
|
-
"greenkeeper[bot] <greenkeeper[bot]@users.noreply.github.com>",
|
|
662
|
-
"TJ Holowaychuk <tj@vision-media.ca>"
|
|
663
|
-
]
|
|
664
|
-
},
|
|
665
163
|
"husky": {
|
|
666
164
|
"hooks": {
|
|
667
165
|
"pre-commit": "lint-staged"
|