just-test-node 1.5.0 → 2.0.0-alpha.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.
Files changed (44) hide show
  1. package/lib/Discover.d.ts +25 -0
  2. package/lib/Discover.js +4 -0
  3. package/lib/OptionsDefinitions.d.ts +15 -0
  4. package/lib/OptionsDefinitions.js +55 -0
  5. package/lib/StackTrace.d.ts +1 -0
  6. package/lib/StackTrace.js +44 -0
  7. package/lib/Suite.d.ts +45 -0
  8. package/lib/Suite.js +115 -0
  9. package/lib/Test.d.ts +9 -6
  10. package/lib/Test.js +16 -12
  11. package/lib/TestStage.d.ts +1 -1
  12. package/lib/TestStage.js +2 -1
  13. package/lib/code-position-resolution.d.ts +2 -0
  14. package/lib/code-position-resolution.js +50 -0
  15. package/lib/exampleTestFile.test.js +48 -45
  16. package/lib/help.d.ts +1 -1
  17. package/lib/help.js +2 -1
  18. package/lib/index.d.ts +1 -0
  19. package/lib/index.js +62 -39
  20. package/lib/reporters/JsonReporter.d.ts +20 -0
  21. package/lib/reporters/JsonReporter.js +39 -0
  22. package/lib/reporters/Reporter.d.ts +4 -0
  23. package/lib/reporters/Reporter.js +4 -0
  24. package/lib/reporters/SpecReporter.d.ts +14 -0
  25. package/lib/reporters/SpecReporter.js +90 -0
  26. package/lib/reporters/index.d.ts +3 -0
  27. package/lib/reporters/index.js +17 -0
  28. package/lib/run-results/SuiteRunResult.d.ts +11 -0
  29. package/lib/run-results/SuiteRunResult.js +19 -0
  30. package/lib/run-results/TestRunResult.d.ts +9 -0
  31. package/lib/run-results/TestRunResult.js +15 -0
  32. package/lib/run-results/index.d.ts +2 -0
  33. package/lib/run-results/index.js +16 -0
  34. package/package.json +69 -64
  35. package/lib/OptionsDefinition.d.ts +0 -5
  36. package/lib/OptionsDefinition.js +0 -29
  37. package/lib/PerformancePolyfill.d.ts +0 -1
  38. package/lib/PerformancePolyfill.js +0 -16
  39. package/lib/SpecReporter.d.ts +0 -12
  40. package/lib/SpecReporter.js +0 -76
  41. package/lib/TestRunResult.d.ts +0 -9
  42. package/lib/TestRunResult.js +0 -13
  43. package/lib/TestSuiteClass.d.ts +0 -28
  44. package/lib/TestSuiteClass.js +0 -78
package/lib/index.js CHANGED
@@ -1,35 +1,62 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
6
+ }) : (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ o[k2] = m[k];
9
+ }));
10
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
11
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
12
+ }) : function(o, v) {
13
+ o["default"] = v;
14
+ });
15
+ var __importStar = (this && this.__importStar) || function (mod) {
16
+ if (mod && mod.__esModule) return mod;
17
+ var result = {};
18
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
19
+ __setModuleDefault(result, mod);
20
+ return result;
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
3
25
  Object.defineProperty(exports, "__esModule", { value: true });
4
- const args = require("command-line-args");
5
- const glob = require("glob");
6
- const path = require("path");
7
- const OptionsDefinition_1 = require("./OptionsDefinition");
26
+ const command_line_args_1 = __importDefault(require("command-line-args"));
27
+ const glob_1 = __importDefault(require("glob"));
28
+ const path_1 = __importDefault(require("path"));
29
+ const OptionsDefinitions_1 = require("./OptionsDefinitions");
8
30
  const help_1 = require("./help");
9
- const TestSuiteClass_1 = require("./TestSuiteClass");
10
- const SpecReporter_1 = require("./SpecReporter");
11
- const PerformancePolyfill_1 = require("./PerformancePolyfill");
31
+ const Suite_1 = require("./Suite");
32
+ const reporters_1 = require("./reporters");
12
33
  main();
13
34
  async function main() {
14
35
  try {
15
- PerformancePolyfill_1.polyfillPerformance();
16
- const options = args(OptionsDefinition_1.optionsDefinitions);
36
+ const options = (0, command_line_args_1.default)(OptionsDefinitions_1.optionsDefinitions);
37
+ (0, OptionsDefinitions_1.validateOptions)(options);
17
38
  if (options.help) {
18
- help_1.printHelp(OptionsDefinition_1.optionsDefinitions);
19
- process.exit();
39
+ (0, help_1.printHelp)(OptionsDefinitions_1.optionsDefinitions);
40
+ return;
20
41
  }
21
42
  let testFiles = await getTestFiles(options);
22
- await test(testFiles, options);
43
+ if (options.discover) {
44
+ await outputDiscoveredTests(testFiles, options);
45
+ return;
46
+ }
47
+ const passed = await test(testFiles, options);
48
+ if (!passed)
49
+ process.exit(options.testFailureExitCode);
23
50
  }
24
51
  catch (error) {
25
52
  console.error(error);
26
- process.exit(1);
53
+ process.exit(-1);
27
54
  }
28
55
  }
29
56
  ;
30
57
  function getTestFiles(options) {
31
58
  return new Promise((resolve, reject) => {
32
- glob(options.glob, (error, matches) => {
59
+ (0, glob_1.default)(options.glob, (error, matches) => {
33
60
  if (error) {
34
61
  reject(error);
35
62
  }
@@ -40,33 +67,27 @@ function getTestFiles(options) {
40
67
  });
41
68
  }
42
69
  async function test(files, options) {
43
- let suite = await createRootSuite(files, !!options.debug);
44
- let reporter = new SpecReporter_1.SpecReporter(console);
70
+ const suite = await createRootSuite(files, !!options.debug);
71
+ const reporter = createReporter(options.reporter);
45
72
  reporter.listenTo(suite);
46
- let passed = await suite.run({ filter: options.filter, debug: !!options.debug });
47
- if (passed) {
48
- process.exit(0);
49
- }
50
- else {
51
- process.exit(1);
73
+ if (options.filter)
74
+ suite.treeShake(options.filter.toLowerCase());
75
+ return await suite.run({ debug: !!options.debug });
76
+ }
77
+ function createReporter(reporter) {
78
+ switch (reporter) {
79
+ case "spec":
80
+ return new reporters_1.SpecReporter(console);
81
+ case "json":
82
+ return new reporters_1.JsonReporter(console);
52
83
  }
53
84
  }
54
85
  async function createRootSuite(files, isDebug) {
55
- let rootSuite = new TestSuiteClass_1.TestSuiteClass();
86
+ let rootSuite = new Suite_1.Suite();
56
87
  let testFileFunctions = [];
57
88
  for (let file of files) {
58
89
  testFileFunctions.push(await getTestFileFunction(file));
59
90
  }
60
- if (isDebug) {
61
- // VSCode might miss a typescript breakpoint if the file was loaded and executed too fast.
62
- // It looks like it takes vscode some time to:
63
- // Scan the js file.
64
- // Find and process the mapping.
65
- // Load the typescript file and its breakpoints.
66
- // Alert the debugger of the breakpoints.
67
- // This simple await solves it. The 50 millisec is not special just picked to be safe.
68
- await new Promise(r => setTimeout(r, 50));
69
- }
70
91
  for (let testFunc of testFileFunctions) {
71
92
  testFunc(rootSuite);
72
93
  }
@@ -75,19 +96,21 @@ async function createRootSuite(files, isDebug) {
75
96
  async function getTestFileFunction(file) {
76
97
  let testFileFunction;
77
98
  try {
78
- testFileFunction = await Promise.resolve().then(() => require(path.resolve(file)));
99
+ testFileFunction = await Promise.resolve().then(() => __importStar(require(path_1.default.resolve(file))));
79
100
  }
80
101
  catch (reason) {
81
- console.error(`The file '${file}' matched the tests glob but failed to be imported. reason:`, reason);
82
- process.exit(1);
102
+ throw `The file '${file}' matched the tests glob but failed to be imported. reason: ${reason}`;
83
103
  }
84
104
  if (typeof testFileFunction != "function")
85
105
  testFileFunction = testFileFunction.default;
86
106
  if (typeof testFileFunction != "function") {
87
- console.error(`The file '${file}' matched the tests glob but did not export a default function.`);
88
- process.exit(1);
107
+ throw `The file '${file}' matched the tests glob but did not export a default function.`;
89
108
  }
90
109
  return testFileFunction;
91
110
  }
111
+ async function outputDiscoveredTests(files, options) {
112
+ let suite = await createRootSuite(files, options.debug);
113
+ console.log(JSON.stringify(suite.discover()));
114
+ }
92
115
 
93
- //# sourceMappingURL=data:application/json;charset=utf8;base64,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
116
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSwwRUFBcUM7QUFDckMsZ0RBQXdCO0FBQ3hCLGdEQUF3QjtBQUN4Qiw2REFBb0Y7QUFDcEYsaUNBQW1DO0FBQ25DLG1DQUFnQztBQUNoQywyQ0FBbUU7QUFJbkUsSUFBSSxFQUFFLENBQUM7QUFFUCxLQUFLLFVBQVUsSUFBSTtJQUNsQixJQUFJO1FBQ0gsTUFBTSxPQUFPLEdBQVksSUFBQSwyQkFBSSxFQUFDLHVDQUFrQixDQUFZLENBQUM7UUFDN0QsSUFBQSxvQ0FBZSxFQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRXhCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNqQixJQUFBLGdCQUFTLEVBQUMsdUNBQWtCLENBQUMsQ0FBQztZQUM5QixPQUFNO1NBQ047UUFFRCxJQUFJLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDckIsTUFBTSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEQsT0FBTTtTQUNOO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxNQUFNO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUMzQztJQUNELE9BQU8sS0FBSyxFQUFFO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDRixDQUFDO0FBQUEsQ0FBQztBQUVGLFNBQVMsWUFBWSxDQUFDLE9BQWdCO0lBQ3JDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDdEMsSUFBQSxjQUFJLEVBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNyQyxJQUFJLEtBQUssRUFBRTtnQkFDVixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDZDtpQkFDSTtnQkFDSixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDakI7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELEtBQUssVUFBVSxJQUFJLENBQUMsS0FBZSxFQUFFLE9BQWdCO0lBQ3BELE1BQU0sS0FBSyxHQUFHLE1BQU0sZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV6QixJQUFJLE9BQU8sQ0FBQyxNQUFNO1FBQ2pCLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsUUFBeUI7SUFDaEQsUUFBUSxRQUFRLEVBQUU7UUFDakIsS0FBSyxNQUFNO1lBQ1YsT0FBTyxJQUFJLHdCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsS0FBSyxNQUFNO1lBQ1YsT0FBTyxJQUFJLHdCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDbEM7QUFDRixDQUFDO0FBRUQsS0FBSyxVQUFVLGVBQWUsQ0FBQyxLQUFlLEVBQUUsT0FBZ0I7SUFDL0QsSUFBSSxTQUFTLEdBQUcsSUFBSSxhQUFLLEVBQUUsQ0FBQztJQUU1QixJQUFJLGlCQUFpQixHQUF1QixFQUFFLENBQUM7SUFFL0MsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDdkIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN4RDtJQUVELEtBQUssSUFBSSxRQUFRLElBQUksaUJBQWlCLEVBQUU7UUFDdkMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ3BCO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbEIsQ0FBQztBQUVELEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLElBQUksZ0JBQXFCLENBQUM7SUFFMUIsSUFBSTtRQUNILGdCQUFnQixHQUFHLHdEQUFhLGNBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQztLQUNwRDtJQUNELE9BQU8sTUFBTSxFQUFFO1FBQ2QsTUFBTSxhQUFhLElBQUksK0RBQStELE1BQU0sRUFBRSxDQUFDO0tBQy9GO0lBRUQsSUFBSSxPQUFPLGdCQUFnQixJQUFJLFVBQVU7UUFDeEMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBRTdDLElBQUksT0FBTyxnQkFBZ0IsSUFBSSxVQUFVLEVBQUU7UUFDMUMsTUFBTSxhQUFhLElBQUksaUVBQWlFLENBQUM7S0FDekY7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQ3pCLENBQUM7QUFFRCxLQUFLLFVBQVUscUJBQXFCLENBQUMsS0FBZSxFQUFFLE9BQWdCO0lBQ3JFLElBQUksS0FBSyxHQUFHLE1BQU0sZUFBZSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZVJvb3QiOiIuLlxcc3JjIn0=
@@ -0,0 +1,20 @@
1
+ import { SuiteResultStatus } from "../run-results/SuiteRunResult";
2
+ import { TestRunResult } from "../run-results/TestRunResult";
3
+ import { Suite } from "../Suite";
4
+ import { Reporter } from "./Reporter";
5
+ export interface SuiteResult {
6
+ title: string;
7
+ elapsed: number;
8
+ status: SuiteResultStatus;
9
+ tests: TestRunResult[];
10
+ childrenSuites: SuiteResult[];
11
+ }
12
+ export declare class JsonReporter implements Reporter {
13
+ private output;
14
+ private suiteToResultMap;
15
+ private testToResultMap;
16
+ constructor(output: Console);
17
+ listenTo(rootSuite: Suite): void;
18
+ private outputResultsFor;
19
+ private getResultOfSuite;
20
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonReporter = void 0;
4
+ class JsonReporter {
5
+ constructor(output) {
6
+ this.output = output;
7
+ this.suiteToResultMap = new Map();
8
+ this.testToResultMap = new Map();
9
+ }
10
+ listenTo(rootSuite) {
11
+ rootSuite.onSuiteEnded.add(args => {
12
+ this.suiteToResultMap.set(args.suite, args.result);
13
+ if (args.suite == rootSuite)
14
+ this.outputResultsFor(rootSuite);
15
+ });
16
+ rootSuite.onTestEnded.add(args => {
17
+ this.testToResultMap.set(args.test, args.result);
18
+ });
19
+ }
20
+ outputResultsFor(suite) {
21
+ const result = this.getResultOfSuite(suite);
22
+ this.output.log(JSON.stringify(result));
23
+ }
24
+ getResultOfSuite(suite) {
25
+ const runResult = this.suiteToResultMap.get(suite);
26
+ const tests = suite.tests.map(e => this.testToResultMap.get(e));
27
+ const childrenSuites = suite.childrenSuites.map(e => this.getResultOfSuite(e));
28
+ return {
29
+ title: suite.title,
30
+ status: runResult.status,
31
+ elapsed: runResult.elapsed,
32
+ tests: tests,
33
+ childrenSuites: childrenSuites
34
+ };
35
+ }
36
+ }
37
+ exports.JsonReporter = JsonReporter;
38
+
39
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcG9ydGVycy9Kc29uUmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBY0EsTUFBYSxZQUFZO0lBSXhCLFlBQW9CLE1BQWU7UUFBZixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBSDNCLHFCQUFnQixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBQ3BELG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7SUFHekQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxTQUFnQjtRQUMvQixTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5ELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQVk7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUNwRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztRQUVoRixPQUFPO1lBQ04sS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtZQUN4QixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87WUFDMUIsS0FBSyxFQUFFLEtBQUs7WUFDWixjQUFjLEVBQUUsY0FBYztTQUM5QixDQUFDO0lBQ0gsQ0FBQztDQUNEO0FBdkNELG9DQXVDQyIsImZpbGUiOiJyZXBvcnRlcnMvSnNvblJlcG9ydGVyLmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
@@ -0,0 +1,4 @@
1
+ import { Suite } from "../Suite";
2
+ export interface Reporter {
3
+ listenTo(suite: Suite): void;
4
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcG9ydGVycy9SZXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6InJlcG9ydGVycy9SZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIuLlxcLi5cXHNyYyJ9
@@ -0,0 +1,14 @@
1
+ import { Suite } from "../Suite";
2
+ import { Reporter } from "./Reporter";
3
+ export declare class SpecReporter implements Reporter {
4
+ private output;
5
+ private symbols;
6
+ private indentation;
7
+ private passedCount;
8
+ private errors;
9
+ constructor(output: Console);
10
+ listenTo(rootSuite: Suite): void;
11
+ private onEnd;
12
+ private formatElapsed;
13
+ private getTestFullTitle;
14
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SpecReporter = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class SpecReporter {
9
+ constructor(output) {
10
+ this.output = output;
11
+ this.symbols = {
12
+ ok: '✓',
13
+ err: '✖',
14
+ };
15
+ this.indentation = " ";
16
+ this.passedCount = 0;
17
+ this.errors = [];
18
+ }
19
+ listenTo(rootSuite) {
20
+ let indent = "";
21
+ rootSuite.onSuiteStarted.add(suite => {
22
+ if (suite == rootSuite)
23
+ return;
24
+ this.output.log();
25
+ this.output.info(indent + suite.title);
26
+ indent += this.indentation;
27
+ });
28
+ rootSuite.onSuiteEnded.add(args => {
29
+ indent = indent.substr(0, indent.length - this.indentation.length);
30
+ if (args.suite == rootSuite) {
31
+ this.onEnd();
32
+ }
33
+ });
34
+ rootSuite.onTestEnded.add(args => {
35
+ const result = args.result;
36
+ const elapsed = this.formatElapsed(result.elapsed);
37
+ if (result.passed) {
38
+ this.passedCount++;
39
+ this.output.log(chalk_1.default.green(`${indent}${this.symbols.ok} ${result.title}`) + ` ${elapsed}`);
40
+ }
41
+ else {
42
+ this.errors.push(args);
43
+ this.output.log(chalk_1.default.red(`${indent}${this.symbols.err} ${result.title}`) + ` ${elapsed}`);
44
+ }
45
+ });
46
+ }
47
+ onEnd() {
48
+ if (!this.errors)
49
+ return;
50
+ this.output.log();
51
+ this.output.log("Failed tests:");
52
+ this.output.log("=============");
53
+ for (let failedTestRun of this.errors) {
54
+ this.output.log();
55
+ let title = this.getTestFullTitle(failedTestRun.test);
56
+ this.output.log(title);
57
+ let isError = failedTestRun.result.reason instanceof Error;
58
+ let message = isError ?
59
+ failedTestRun.result.reason.message :
60
+ JSON.stringify(failedTestRun.result.reason);
61
+ this.output.log(this.indentation + chalk_1.default.red(`${message}`));
62
+ isError && this.output.log(this.indentation + `${failedTestRun.result.reason.stack}`);
63
+ }
64
+ this.output.log();
65
+ this.output.log(chalk_1.default.green(`${this.passedCount} passing`));
66
+ if (this.errors.length > 0) {
67
+ this.output.log(chalk_1.default.red(`${this.errors.length} failing`));
68
+ }
69
+ this.output.log();
70
+ }
71
+ formatElapsed(elapsed) {
72
+ return chalk_1.default.grey(`(${elapsed.toFixed(2)}ms)`);
73
+ }
74
+ getTestFullTitle(test) {
75
+ let titles = [test.title];
76
+ let parent = test.parent;
77
+ while (parent && parent.title) {
78
+ titles.push(parent.title);
79
+ parent = parent.parent;
80
+ }
81
+ let title = titles.pop();
82
+ while (titles.length > 0) {
83
+ title += " -> " + titles.pop();
84
+ }
85
+ return title;
86
+ }
87
+ }
88
+ exports.SpecReporter = SpecReporter;
89
+
90
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcG9ydGVycy9TcGVjUmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSzFCLE1BQWEsWUFBWTtJQVd4QixZQUFvQixNQUFlO1FBQWYsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQVYzQixZQUFPLEdBQUc7WUFDakIsRUFBRSxFQUFFLEdBQUc7WUFDUCxHQUFHLEVBQUUsR0FBRztTQUNSLENBQUM7UUFFTSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixXQUFNLEdBQW9CLEVBQUUsQ0FBQztJQUdyQyxDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQWdCO1FBQy9CLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVoQixTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQyxJQUFJLEtBQUssSUFBSSxTQUFTO2dCQUNyQixPQUFPO1lBRVIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVuRSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFO2dCQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDYjtRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENB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QWEsQ0FBQyxPQUFlO1FBQ3BDLE9BQU8sZUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFVO1FBQ2xDLElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLElBQUksTUFBTSxHQUFzQixJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTVDLE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDdkI7UUFFRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFHLENBQUM7UUFFMUIsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QixLQUFLLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUMvQjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztDQUNEO0FBeEdELG9DQXdHQyIsImZpbGUiOiJyZXBvcnRlcnMvU3BlY1JlcG9ydGVyLmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
@@ -0,0 +1,3 @@
1
+ export * from "./Reporter";
2
+ export * from "./SpecReporter";
3
+ export * from "./JsonReporter";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Reporter"), exports);
14
+ __exportStar(require("./SpecReporter"), exports);
15
+ __exportStar(require("./JsonReporter"), exports);
16
+
17
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcG9ydGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGlEQUErQiIsImZpbGUiOiJyZXBvcnRlcnMvaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi5cXC4uXFxzcmMifQ==
@@ -0,0 +1,11 @@
1
+ export declare enum SuiteResultStatus {
2
+ Passed = "passed",
3
+ Failed = "failed",
4
+ Partial = "partial"
5
+ }
6
+ export declare class SuiteRunResult {
7
+ title: string;
8
+ elapsed: number;
9
+ status: SuiteResultStatus;
10
+ constructor(title: string, elapsed: number, status: SuiteResultStatus);
11
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SuiteRunResult = exports.SuiteResultStatus = void 0;
4
+ var SuiteResultStatus;
5
+ (function (SuiteResultStatus) {
6
+ SuiteResultStatus["Passed"] = "passed";
7
+ SuiteResultStatus["Failed"] = "failed";
8
+ SuiteResultStatus["Partial"] = "partial";
9
+ })(SuiteResultStatus = exports.SuiteResultStatus || (exports.SuiteResultStatus = {}));
10
+ class SuiteRunResult {
11
+ constructor(title, elapsed, status) {
12
+ this.title = title;
13
+ this.elapsed = elapsed;
14
+ this.status = status;
15
+ }
16
+ }
17
+ exports.SuiteRunResult = SuiteRunResult;
18
+
19
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bi1yZXN1bHRzL1N1aXRlUnVuUmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksaUJBSVg7QUFKRCxXQUFZLGlCQUFpQjtJQUM1QixzQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBaUIsQ0FBQTtJQUNqQix3Q0FBbUIsQ0FBQTtBQUNwQixDQUFDLEVBSlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFJNUI7QUFFRCxNQUFhLGNBQWM7SUFDMUIsWUFBbUIsS0FBYSxFQUFTLE9BQWUsRUFBUyxNQUF5QjtRQUF2RSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBQzFGLENBQUM7Q0FDRDtBQUhELHdDQUdDIiwiZmlsZSI6InJ1bi1yZXN1bHRzL1N1aXRlUnVuUmVzdWx0LmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
@@ -0,0 +1,9 @@
1
+ import { TestStage } from "../TestStage";
2
+ export declare class TestRunResult {
3
+ title: string;
4
+ elapsed: number;
5
+ stage: TestStage;
6
+ passed: boolean;
7
+ reason?: any;
8
+ constructor(title: string, elapsed: number, stage: TestStage, passed: boolean, reason?: any);
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestRunResult = void 0;
4
+ class TestRunResult {
5
+ constructor(title, elapsed, stage, passed, reason) {
6
+ this.title = title;
7
+ this.elapsed = elapsed;
8
+ this.stage = stage;
9
+ this.passed = passed;
10
+ this.reason = reason;
11
+ }
12
+ }
13
+ exports.TestRunResult = TestRunResult;
14
+
15
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bi1yZXN1bHRzL1Rlc3RSdW5SZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBYSxhQUFhO0lBQ3pCLFlBQW1CLEtBQWEsRUFBUyxPQUFlLEVBQVMsS0FBZ0IsRUFBUyxNQUFlLEVBQVMsTUFBWTtRQUEzRyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVc7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBTTtJQUM5SCxDQUFDO0NBQ0Q7QUFIRCxzQ0FHQyIsImZpbGUiOiJydW4tcmVzdWx0cy9UZXN0UnVuUmVzdWx0LmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
@@ -0,0 +1,2 @@
1
+ export * from "./SuiteRunResult";
2
+ export * from "./TestRunResult";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./SuiteRunResult"), exports);
14
+ __exportStar(require("./TestRunResult"), exports);
15
+
16
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bi1yZXN1bHRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyxrREFBZ0MiLCJmaWxlIjoicnVuLXJlc3VsdHMvaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi5cXC4uXFxzcmMifQ==
package/package.json CHANGED
@@ -1,64 +1,69 @@
1
- {
2
- "name": "just-test-node",
3
- "version": "1.5.0",
4
- "description": "just-test on node.",
5
- "main": "./lib/index.js",
6
- "typings": "./lib/index.d.ts",
7
- "files": [
8
- "lib/"
9
- ],
10
- "scripts": {
11
- "test": "gulp build && node ./lib/index.js",
12
- "build": "gulp build",
13
- "prepublishOnly": "gulp clean && gulp build"
14
- },
15
- "author": {
16
- "name": "Itay Ronen",
17
- "url": "https://gitlab.com/itayronen"
18
- },
19
- "homepage": "https://gitlab.com/itayronen/just-test-node",
20
- "repository": {
21
- "type": "git",
22
- "url": "https://gitlab.com/itayronen/just-test-node.git"
23
- },
24
- "license": "MIT",
25
- "keywords": [
26
- "test",
27
- "testing",
28
- "unit",
29
- "unit-test",
30
- "unittest",
31
- "just-test",
32
- "es",
33
- "es6",
34
- "node",
35
- "typescript"
36
- ],
37
- "publishConfig": {
38
- "registry": "https://registry.npmjs.org/"
39
- },
40
- "bin": {
41
- "just-test": "./lib/index.js",
42
- "just-test-node": "./lib/index.js"
43
- },
44
- "dependencies": {
45
- "chalk": "^2.4.1",
46
- "command-line-args": "^5.0.2",
47
- "glob": "^7.1.2",
48
- "itay-events": "^2.1.4",
49
- "just-test-api": "^1.1.0"
50
- },
51
- "devDependencies": {
52
- "@types/chalk": "^2.2.0",
53
- "@types/command-line-args": "^5.0.0",
54
- "@types/glob": "^5.0.35",
55
- "del": "^3.0.0",
56
- "gulp": "^3.9.1",
57
- "gulp-read": "0.0.1",
58
- "gulp-sourcemaps": "^2.6.4",
59
- "gulp-typescript": "^4.0.2",
60
- "itay-gulp-changed": "^1.1.1",
61
- "merge2": "^1.2.2",
62
- "typescript": "^2.8.3"
63
- }
64
- }
1
+ {
2
+ "name": "just-test-node",
3
+ "version": "2.0.0-alpha.0",
4
+ "description": "just-test on node.",
5
+ "main": "./lib/index.js",
6
+ "typings": "./lib/index.d.ts",
7
+ "files": [
8
+ "lib/"
9
+ ],
10
+ "scripts": {
11
+ "build": "gulp build",
12
+ "prepublishOnly": "gulp clean && gulp build",
13
+ "test": "gulp build && node ./lib/index.js",
14
+ "test-json": "gulp build && node ./lib/index.js --reporter=json",
15
+ "test-json-partial": "gulp build && node ./lib/index.js --reporter=json \"Simple test\"",
16
+ "test-discover": "gulp build && node ./lib/index.js --discover",
17
+ "test-ts": "gulp build && ts-node ./src/index.ts",
18
+ "test-ts-discover": "gulp build && ts-node ./src/index.ts --discover"
19
+ },
20
+ "author": {
21
+ "name": "Itay Ronen",
22
+ "url": "https://gitlab.com/itayronen"
23
+ },
24
+ "homepage": "https://gitlab.com/itayronen/just-test-node",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://gitlab.com/itayronen/just-test-node.git"
28
+ },
29
+ "license": "MIT",
30
+ "keywords": [
31
+ "test",
32
+ "testing",
33
+ "unit",
34
+ "unit-test",
35
+ "unittest",
36
+ "just-test",
37
+ "es",
38
+ "es6",
39
+ "node",
40
+ "typescript"
41
+ ],
42
+ "publishConfig": {
43
+ "registry": "https://registry.npmjs.org/"
44
+ },
45
+ "bin": {
46
+ "just-test": "./lib/index.js",
47
+ "just-test-node": "./lib/index.js"
48
+ },
49
+ "dependencies": {
50
+ "chalk": "^4.1.2",
51
+ "command-line-args": "^5.2.0",
52
+ "glob": "^7.2.0",
53
+ "itay-events": "^3.0.1",
54
+ "just-test-api": "^2.0.0"
55
+ },
56
+ "devDependencies": {
57
+ "@types/chalk": "^2.2.0",
58
+ "@types/command-line-args": "^5.2.0",
59
+ "@types/glob": "^7.2.0",
60
+ "del": "^6.0.0",
61
+ "gulp": "^4.0.2",
62
+ "gulp-read": "^1.0.1",
63
+ "gulp-sourcemaps": "^3.0.0",
64
+ "gulp-typescript": "^5.0.1",
65
+ "itay-gulp-changed": "^1.2.0",
66
+ "merge2": "^1.4.1",
67
+ "typescript": "^4.5.2"
68
+ }
69
+ }
@@ -1,5 +0,0 @@
1
- import * as args from "command-line-args";
2
- export interface OptionDefinition extends args.OptionDefinition {
3
- description: string;
4
- }
5
- export declare const optionsDefinitions: OptionDefinition[];
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.optionsDefinitions = [
4
- {
5
- name: 'glob', alias: 'g',
6
- type: String,
7
- defaultValue: "./!(node_modules)/**/*.test.js",
8
- description: "Test files glob pattern."
9
- },
10
- {
11
- name: "filter", alias: "f",
12
- type: String,
13
- defaultOption: true,
14
- defaultValue: "",
15
- description: "Filters tests."
16
- },
17
- {
18
- name: 'help', alias: 'h',
19
- type: Boolean,
20
- description: "Show help."
21
- },
22
- {
23
- name: 'debug',
24
- type: Boolean,
25
- description: "Debug mode. Will disable timeouts."
26
- }
27
- ];
28
-
29
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wdGlvbnNEZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTWEsUUFBQSxrQkFBa0IsR0FBdUI7SUFDckQ7UUFDQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHO1FBQ3hCLElBQUksRUFBRSxNQUFNO1FBQ1osWUFBWSxFQUFFLGdDQUFnQztRQUM5QyxXQUFXLEVBQUUsMEJBQTBCO0tBQ3ZDO0lBQ0Q7UUFDQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHO1FBQzFCLElBQUksRUFBRSxNQUFNO1FBQ1osYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsV0FBVyxFQUFFLGdCQUFnQjtLQUM3QjtJQUNEO1FBQ0MsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRztRQUN4QixJQUFJLEVBQUUsT0FBTztRQUNiLFdBQVcsRUFBRSxZQUFZO0tBQ3pCO0lBQ0Q7UUFDQyxJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxPQUFPO1FBQ2IsV0FBVyxFQUFFLG9DQUFvQztLQUNqRDtDQUNELENBQUMiLCJmaWxlIjoiT3B0aW9uc0RlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiLi5cXHNyYyJ9
@@ -1 +0,0 @@
1
- export declare function polyfillPerformance(): void;