nole 3.0.0 → 3.2.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 (84) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +514 -294
  3. package/bin/nole.js +145 -110
  4. package/dist/cjs/const.js +45 -0
  5. package/dist/cjs/core.js +61 -0
  6. package/dist/cjs/dynamic.js +56 -0
  7. package/dist/cjs/handle/after-each-hooks.js +29 -0
  8. package/dist/cjs/handle/after-hooks.js +27 -0
  9. package/dist/cjs/handle/before-each-hooks.js +29 -0
  10. package/dist/cjs/handle/before-hooks.js +37 -0
  11. package/dist/cjs/handle/cleanup-hooks.js +37 -0
  12. package/dist/cjs/handle/specs.js +52 -0
  13. package/dist/cjs/index.js +14 -0
  14. package/dist/cjs/package.json +1 -0
  15. package/dist/cjs/run.js +216 -0
  16. package/dist/cjs/symbol.js +6 -0
  17. package/dist/cjs/test-wrap.js +33 -0
  18. package/dist/cjs/utils/executor.js +23 -0
  19. package/dist/cjs/utils/time_difference.js +26 -0
  20. package/dist/cjs/utils/time_factor.js +31 -0
  21. package/dist/core.d.ts +3 -1
  22. package/dist/core.d.ts.map +1 -1
  23. package/dist/core.js +2 -2
  24. package/dist/dynamic.d.ts +2 -0
  25. package/dist/dynamic.d.ts.map +1 -1
  26. package/dist/dynamic.js +16 -1
  27. package/dist/handle/before-hooks.d.ts.map +1 -1
  28. package/dist/handle/before-hooks.js +12 -2
  29. package/dist/handle/specs.d.ts.map +1 -1
  30. package/dist/handle/specs.js +12 -3
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/run.d.ts.map +1 -1
  35. package/dist/run.js +16 -7
  36. package/dist/symbol.d.ts +1 -0
  37. package/dist/symbol.d.ts.map +1 -1
  38. package/dist/symbol.js +3 -2
  39. package/dist/test-wrap.d.ts +1 -0
  40. package/dist/test-wrap.d.ts.map +1 -1
  41. package/dist/test-wrap.js +1 -1
  42. package/dist/utils/time_difference.d.ts.map +1 -1
  43. package/package.json +68 -57
  44. package/dist/utils/executor.test.d.ts +0 -8
  45. package/dist/utils/executor.test.d.ts.map +0 -1
  46. package/dist/utils/executor.test.js +0 -22
  47. package/dist/utils/time_difference.test.d.ts +0 -6
  48. package/dist/utils/time_difference.test.d.ts.map +0 -1
  49. package/dist/utils/time_difference.test.js +0 -11
  50. package/dist/utils/time_factor.test.d.ts +0 -6
  51. package/dist/utils/time_factor.test.d.ts.map +0 -1
  52. package/dist/utils/time_factor.test.js +0 -27
  53. package/src/const.ts +0 -11
  54. package/src/core.ts +0 -89
  55. package/src/dynamic.ts +0 -53
  56. package/src/handle/after-each-hooks.ts +0 -41
  57. package/src/handle/after-hooks.ts +0 -38
  58. package/src/handle/before-each-hooks.ts +0 -40
  59. package/src/handle/before-hooks.ts +0 -39
  60. package/src/handle/cleanup-hooks.ts +0 -55
  61. package/src/handle/specs.ts +0 -68
  62. package/src/index.ts +0 -3
  63. package/src/run.ts +0 -259
  64. package/src/symbol.ts +0 -1
  65. package/src/test-wrap.ts +0 -48
  66. package/src/utils/executor.test.ts +0 -24
  67. package/src/utils/executor.ts +0 -22
  68. package/src/utils/time_difference.test.ts +0 -11
  69. package/src/utils/time_difference.ts +0 -26
  70. package/src/utils/time_factor.test.ts +0 -28
  71. package/src/utils/time_factor.ts +0 -33
  72. package/test/basic.test.ts +0 -23
  73. package/test/before.test.ts +0 -41
  74. package/test/clean-up.test.ts +0 -48
  75. package/test/dynamic-skip.test.ts +0 -6
  76. package/test/dynamic.test.ts +0 -28
  77. package/test/extend.test.ts +0 -43
  78. package/test/hook.test.ts +0 -26
  79. package/test/multi-dependency.test.ts +0 -43
  80. package/test/multiple-uppercased-chars.test.ts +0 -20
  81. package/test/skip-all.test.ts +0 -10
  82. package/test/tsconfig.json +0 -24
  83. package/test/turkish-chars.test.ts +0 -20
  84. package/tsconfig.json +0 -16
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleSpecs = handleSpecs;
4
+ const executor_js_1 = require("../utils/executor.js");
5
+ const time_difference_js_1 = require("../utils/time_difference.js");
6
+ const time_factor_js_1 = require("../utils/time_factor.js");
7
+ const after_each_hooks_js_1 = require("./after-each-hooks.js");
8
+ const before_each_hooks_js_1 = require("./before-each-hooks.js");
9
+ const const_js_1 = require("../const.js");
10
+ async function handleSpecs(test) {
11
+ const timeout = test.config.timeout ?? const_js_1.DEFAULT_TIMEOUT;
12
+ for (let [propertyKey, spec] of test.specs.entries()) {
13
+ let testName = const_js_1.colors.bold(const_js_1.colors.yellow(test.name + "." + propertyKey));
14
+ const shouldPropertySkip = test.skip.has(propertyKey);
15
+ if (shouldPropertySkip || test.skipClass) {
16
+ let reason = shouldPropertySkip
17
+ ? test.skip.get(propertyKey).reason
18
+ : test.skipClass.reason;
19
+ const hasOrigin = !!test.skipClass?.origin;
20
+ const TEXT = hasOrigin ? const_js_1.DYNAMIC_SKIP_TEXT : const_js_1.SKIP_TEXT;
21
+ console.log(`${TEXT} ${" ".repeat(hasOrigin ? 8 : 9)} ${testName}() ${reason ? "{" + reason + "}" : ""}${hasOrigin ? `\n${" ".repeat(22)}↳ skip came from ${test.skipClass?.origin}` : ``}`);
22
+ continue;
23
+ }
24
+ await (0, before_each_hooks_js_1.handleBeforeEachHooks)(test);
25
+ let start = time_difference_js_1.TimeDifference.begin();
26
+ try {
27
+ await (0, executor_js_1.Executor)(test.testInstance[propertyKey].bind(test.testInstance), timeout);
28
+ let timeText = (0, time_factor_js_1.TimeFactor)(start.end(), timeout);
29
+ console.log(`${const_js_1.OK_TEXT} ${timeText} ${testName}()`);
30
+ }
31
+ catch (e) {
32
+ const anchor = e?._nole_anchor;
33
+ if (anchor === 1) {
34
+ let reason = e.reason;
35
+ console.log(`${const_js_1.DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
36
+ continue;
37
+ }
38
+ else if (anchor === 2) {
39
+ let reason = e.reason;
40
+ test.skipClass = { reason, origin: "." + propertyKey };
41
+ console.log(`${const_js_1.DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
42
+ continue;
43
+ }
44
+ let timeText = (0, time_factor_js_1.TimeFactor)(start.end(), timeout);
45
+ console.error(`${const_js_1.FAILED_TEXT} ${timeText} ${testName}()`);
46
+ console.error(e?.stack ?? e);
47
+ throw e;
48
+ }
49
+ await (0, after_each_hooks_js_1.handleAfterEachHooks)(test);
50
+ }
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlL3NwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUFnRDtBQUNoRCxvRUFBNkQ7QUFDN0QsNERBQXFEO0FBQ3JELCtEQUE2RDtBQUM3RCxpRUFBK0Q7QUFDL0QsMENBT3FCO0FBRWQsS0FBSyxzQkFBc0IsSUFBYztJQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSwwQkFBZSxDQUFDO0lBRXZELEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDckQsSUFBSSxRQUFRLEdBQUcsaUJBQU0sQ0FBQyxJQUFJLENBQUMsaUJBQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUV6RSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLElBQUksTUFBTSxHQUFHLGtCQUFrQjtnQkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBRSxDQUFDLE1BQU07Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBVSxDQUFDLE1BQU0sQ0FBQztZQUUzQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDM0MsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyw0QkFBaUIsQ0FBQyxDQUFDLENBQUMsb0JBQVMsQ0FBQztZQUN2RCxPQUFPLENBQUMsR0FBRyxDQUNULEdBQUcs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
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSkipped = exports.addTest = exports.getTest = exports.skipClass = exports.skipTest = exports.Test = exports.HookType = void 0;
4
+ var test_wrap_js_1 = require("./test-wrap.js");
5
+ Object.defineProperty(exports, "HookType", { enumerable: true, get: function () { return test_wrap_js_1.HookType; } });
6
+ var core_js_1 = require("./core.js");
7
+ Object.defineProperty(exports, "Test", { enumerable: true, get: function () { return core_js_1.Test; } });
8
+ var dynamic_js_1 = require("./dynamic.js");
9
+ Object.defineProperty(exports, "skipTest", { enumerable: true, get: function () { return dynamic_js_1.skipTest; } });
10
+ Object.defineProperty(exports, "skipClass", { enumerable: true, get: function () { return dynamic_js_1.skipClass; } });
11
+ Object.defineProperty(exports, "getTest", { enumerable: true, get: function () { return dynamic_js_1.getTest; } });
12
+ Object.defineProperty(exports, "addTest", { enumerable: true, get: function () { return dynamic_js_1.addTest; } });
13
+ Object.defineProperty(exports, "isSkipped", { enumerable: true, get: function () { return dynamic_js_1.isSkipped; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQTBDO0FBQWpDLHdHQUFBLFFBQVEsT0FBQTtBQUNqQixxQ0FBaUM7QUFBeEIsK0ZBQUEsSUFBSSxPQUFBO0FBQ2IsMkNBQWdGO0FBQXZFLHNHQUFBLFFBQVEsT0FBQTtBQUFFLHVHQUFBLFNBQVMsT0FBQTtBQUFFLHFHQUFBLE9BQU8sT0FBQTtBQUFFLHFHQUFBLE9BQU8sT0FBQTtBQUFFLHVHQUFBLFNBQVMsT0FBQSJ9
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ManualRun = ManualRun;
4
+ exports.updateInformationForClass = updateInformationForClass;
5
+ exports.createInstanceIfNotExists = createInstanceIfNotExists;
6
+ exports.getTestMap = getTestMap;
7
+ exports.getFutureTestMap = getFutureTestMap;
8
+ const test_wrap_js_1 = require("./test-wrap.js");
9
+ const symbol_js_1 = require("./symbol.js");
10
+ const before_hooks_js_1 = require("./handle/before-hooks.js");
11
+ const specs_js_1 = require("./handle/specs.js");
12
+ const after_hooks_js_1 = require("./handle/after-hooks.js");
13
+ const cleanup_hooks_js_1 = require("./handle/cleanup-hooks.js");
14
+ const const_js_1 = require("./const.js");
15
+ let allTests = new Map();
16
+ let notTestedYet = new Map();
17
+ async function ManualRun(originalTests) {
18
+ for (let test of originalTests) {
19
+ if (allTests.has(test)) {
20
+ continue;
21
+ }
22
+ const wrap = new test_wrap_js_1.TestWrap(test);
23
+ allTests.set(test, wrap);
24
+ notTestedYet.set(test, wrap);
25
+ }
26
+ extractInformationFromClasses(notTestedYet);
27
+ if (!notTestedYet.size) {
28
+ throw new Error("No specs found");
29
+ }
30
+ while (notTestedYet.size) {
31
+ let entry = pickNext(notTestedYet);
32
+ if (entry) {
33
+ let test = entry[1];
34
+ // console.log(colors.bold(colors.cyan(`Running test: ${test.name}`)));
35
+ notTestedYet.delete(test.target);
36
+ createInstanceIfNotExists(test);
37
+ handleDependencies(test);
38
+ await (0, before_hooks_js_1.handleBeforeHooks)(test);
39
+ await (0, specs_js_1.handleSpecs)(test);
40
+ await (0, after_hooks_js_1.handleAfterHooks)(test);
41
+ test.isFinished = true;
42
+ if (test.dependents.length == 0) {
43
+ await (0, cleanup_hooks_js_1.handleCleanUp)(test);
44
+ }
45
+ }
46
+ else {
47
+ dependencyLock(notTestedYet);
48
+ }
49
+ }
50
+ }
51
+ function extractInformationFromClasses(tests) {
52
+ for (let [target, test] of tests.entries()) {
53
+ updateInformationForClass(target, test, tests);
54
+ }
55
+ }
56
+ function updateInformationForClass(target, test, tests) {
57
+ const config = target[symbol_js_1.TEST_CLASS_KEY];
58
+ if (config.skip) {
59
+ test.skipClass = { reason: config.skip };
60
+ }
61
+ test.dependencies = config.dependencies
62
+ ? Array.from(config.dependencies.entries()).map(([key, dep]) => {
63
+ const actual = dep();
64
+ let testWrap = tests.get(actual);
65
+ if (!testWrap) {
66
+ testWrap = new test_wrap_js_1.TestWrap(actual);
67
+ tests.set(actual, testWrap);
68
+ allTests.set(actual, testWrap);
69
+ }
70
+ testWrap.dependents.push(test);
71
+ return {
72
+ propertyKey: key,
73
+ dependency: testWrap,
74
+ };
75
+ })
76
+ : [];
77
+ if (config.before) {
78
+ const beforeTests = config.before();
79
+ for (let i = 0; i < beforeTests.length; i++) {
80
+ const actual = beforeTests[i];
81
+ let testWrap = tests.get(actual);
82
+ if (!testWrap) {
83
+ testWrap = new test_wrap_js_1.TestWrap(actual);
84
+ tests.set(actual, testWrap);
85
+ allTests.set(actual, testWrap);
86
+ }
87
+ testWrap.dependencies.push({
88
+ propertyKey: "_before_" + i,
89
+ dependency: test,
90
+ });
91
+ test.dependents.push(testWrap);
92
+ }
93
+ }
94
+ if (config.after) {
95
+ const afterTests = config.after();
96
+ for (let i = 0; i < afterTests.length; i++) {
97
+ const actual = afterTests[i];
98
+ let testWrap = tests.get(actual);
99
+ if (!testWrap) {
100
+ testWrap = new test_wrap_js_1.TestWrap(actual);
101
+ tests.set(actual, testWrap);
102
+ allTests.set(actual, testWrap);
103
+ }
104
+ test.dependencies.push({
105
+ propertyKey: "_after_" + i,
106
+ dependency: testWrap,
107
+ });
108
+ testWrap.dependents.push(test);
109
+ }
110
+ }
111
+ }
112
+ function pickNext(tests) {
113
+ for (let entry of tests.entries()) {
114
+ let test = entry[1];
115
+ if (test.isFinished)
116
+ continue;
117
+ if (!test.dependencies.every((x) => x.dependency.isFinished))
118
+ continue;
119
+ return entry;
120
+ }
121
+ }
122
+ function createInstanceIfNotExists(test) {
123
+ if (!test.testInstance) {
124
+ const instance = new test.target();
125
+ instance[symbol_js_1.TEST_INSTANCE_INFO] = test;
126
+ test.testInstance = instance;
127
+ }
128
+ if (!test.specDetection) {
129
+ specDetection(test);
130
+ test.specDetection = true;
131
+ }
132
+ }
133
+ function specDetection(test) {
134
+ const instance = test.testInstance;
135
+ for (let key of getAllMethods(instance)) {
136
+ if (typeof key !== "string") {
137
+ continue;
138
+ }
139
+ if (key.startsWith(process.env.SPEC_SKIP_PREFIX ?? "_")) {
140
+ continue;
141
+ }
142
+ let lowerKey = key.toLowerCase();
143
+ if (lowerKey.startsWith("skip")) {
144
+ test.skip.set(key, { reason: "marked as skipped" });
145
+ }
146
+ if (lowerKey.startsWith("hook") ||
147
+ lowerKey === "cleanup" ||
148
+ lowerKey === "before" ||
149
+ lowerKey === "after" ||
150
+ lowerKey === "beforeeach" ||
151
+ lowerKey === "aftereach") {
152
+ let type = test_wrap_js_1.HookType.Before;
153
+ if (lowerKey.endsWith("before")) {
154
+ type = test_wrap_js_1.HookType.Before;
155
+ }
156
+ else if (lowerKey.endsWith("after")) {
157
+ type = test_wrap_js_1.HookType.After;
158
+ }
159
+ else if (lowerKey.endsWith("beforeeach")) {
160
+ type = test_wrap_js_1.HookType.BeforeEach;
161
+ }
162
+ else if (lowerKey.endsWith("aftereach")) {
163
+ type = test_wrap_js_1.HookType.AfterEach;
164
+ }
165
+ else if (lowerKey.endsWith("cleanup")) {
166
+ type = test_wrap_js_1.HookType.CleanUp;
167
+ }
168
+ test.hooks.set(key, { type });
169
+ continue;
170
+ }
171
+ test.specs.set(key, {});
172
+ }
173
+ }
174
+ function getAllMethods(instance) {
175
+ let props = new Set();
176
+ let currentObj = instance;
177
+ let stack = [];
178
+ while (currentObj && currentObj !== Object.prototype) {
179
+ stack.push(currentObj);
180
+ currentObj = Object.getPrototypeOf(currentObj);
181
+ }
182
+ while (stack.length > 0) {
183
+ let obj = stack.pop(); // En üstteki (A.prototype) ilk çıkar
184
+ Object.getOwnPropertyNames(obj).forEach((prop) => {
185
+ if (typeof obj[prop] === "function" && prop !== "constructor") {
186
+ props.add(prop);
187
+ }
188
+ });
189
+ }
190
+ return Array.from(props);
191
+ }
192
+ function handleDependencies(test) {
193
+ for (let dependency of test.dependencies) {
194
+ test.testInstance[dependency.propertyKey] =
195
+ dependency.dependency.testInstance;
196
+ }
197
+ }
198
+ function dependencyLock(tests) {
199
+ console.error(const_js_1.FAILED_TEXT +
200
+ const_js_1.colors.red("Looks like there is confict issue for dependency resolving!"));
201
+ console.error("Possible conflicts;");
202
+ for (let [, test] of tests) {
203
+ console.error(`- class ${test.name} { ${test.dependencies
204
+ .filter((x) => !x.dependency.isFinished)
205
+ .map((x) => `@Dependency(${x.dependency.name}) ${x.propertyKey}`)
206
+ .join(", ")} }`);
207
+ }
208
+ throw new Error("Dependency lock occurred!");
209
+ }
210
+ function getTestMap() {
211
+ return allTests;
212
+ }
213
+ function getFutureTestMap() {
214
+ return notTestedYet;
215
+ }
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsaURBQW9EO0FBRXBELDJDQUFpRTtBQUNqRSw4REFBNkQ7QUFDN0QsZ0RBQWdEO0FBQ2hELDREQUEyRDtBQUMzRCxnRUFBMEQ7QUFDMUQseUNBQWlEO0FBRWpELElBQUksUUFBUSxHQUFzQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVELElBQUksWUFBWSxHQUFzQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBRXpELEtBQUssb0JBQW9CLGFBQXNDO0lBQ3BFLEtBQUssSUFBSSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7UUFDL0IsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkIsU0FBUztRQUNYLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLHVCQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQix1RUFBdUU7WUFFdkUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJ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
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEST_INSTANCE_INFO = exports.TEST_CLASS_KEY = void 0;
4
+ exports.TEST_CLASS_KEY = Symbol.for("nole.TEST_CLASS_KEY");
5
+ exports.TEST_INSTANCE_INFO = Symbol.for("nole.TEST_INSTANCE_INFO");
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bWJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDbkQsUUFBQSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUMifQ==
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HookType = exports.TestWrap = void 0;
4
+ const symbol_js_1 = require("./symbol.js");
5
+ // Old code, but works fine, so I won't change it for now
6
+ class TestWrap {
7
+ constructor(target) {
8
+ this.target = target;
9
+ this.dependencies = [];
10
+ this.dependents = [];
11
+ this.skip = new Map();
12
+ this.skipClass = null;
13
+ this.specs = new Map();
14
+ this.hooks = new Map();
15
+ this.isFinished = false; // cleanup ignored
16
+ this.cleanUpCalled = false;
17
+ this.specDetection = false;
18
+ this.config = target[symbol_js_1.TEST_CLASS_KEY];
19
+ }
20
+ get name() {
21
+ return this.target.name;
22
+ }
23
+ }
24
+ exports.TestWrap = TestWrap;
25
+ var HookType;
26
+ (function (HookType) {
27
+ HookType[HookType["Before"] = 0] = "Before";
28
+ HookType[HookType["After"] = 1] = "After";
29
+ HookType[HookType["BeforeEach"] = 2] = "BeforeEach";
30
+ HookType[HookType["AfterEach"] = 3] = "AfterEach";
31
+ HookType[HookType["CleanUp"] = 4] = "CleanUp";
32
+ })(HookType || (exports.HookType = HookType = {}));
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC13cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qtd3JhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQ0FBNkM7QUFrQjdDLHlEQUF5RDtBQUN6RDtJQWFFLFlBQW1CLE1BQTBCO1FBQTFCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBWjdDLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztRQUNoQyxjQUFTLEdBQWlCLElBQUksQ0FBQztRQUMvQixVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDakMsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ2pDLGVBQVUsR0FBWSxLQUFLLENBQUMsQ0FBQyxrQkFBa0I7UUFDL0Msa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFJN0IsSUFBSSxDQUFDLE1BQU0sR0FBSSxNQUEwQixDQUFDLDBCQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0Y7O0FBRUQsSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLDJDQUFNLENBQUE7SUFDTix5Q0FBSyxDQUFBO0lBQ0wsbURBQVUsQ0FBQTtJQUNWLGlEQUFTLENBQUE7SUFDVCw2Q0FBTyxDQUFBO0FBQ1QsQ0FBQyxFQU5XLFFBQVEsYUFBUixRQUFRLEdBQVIsUUFBUSxRQU1uQiJ9
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Executor = Executor;
4
+ function Executor(fn, timeout) {
5
+ return new Promise(async (resolve, reject) => {
6
+ let _timeout = null;
7
+ try {
8
+ let expectPromise = fn();
9
+ if (expectPromise && expectPromise.then) {
10
+ _timeout = setTimeout(function () {
11
+ reject(new Error("Timeout occurred! value: " + timeout));
12
+ }, timeout);
13
+ await expectPromise;
14
+ }
15
+ }
16
+ catch (e) {
17
+ reject(e);
18
+ }
19
+ clearTimeout(_timeout);
20
+ resolve();
21
+ });
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0JBQXlCLEVBQVksRUFBRSxPQUFlO0lBQ3BELE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMzQyxJQUFJLFFBQVEsR0FBMEIsSUFBSSxDQUFDO1FBRTNDLElBQUksQ0FBQztZQUNILElBQUksYUFBYSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDeEMsUUFBUSxHQUFHLFVBQVUsQ0FBQztvQkFDcEIsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDJCQUEyQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzNELENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFWixNQUFNLGFBQWEsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDWixDQUFDO1FBRUQsWUFBWSxDQUFDLFFBQVMsQ0FBQyxDQUFDO1FBRXhCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimeDifference = void 0;
4
+ /**
5
+ * Calculates the time difference in nanoseconds
6
+ */
7
+ class TimeDifference {
8
+ constructor() {
9
+ this.startAt = process.hrtime();
10
+ }
11
+ /**
12
+ * Creates the instance at the begining
13
+ */
14
+ static begin() {
15
+ return new TimeDifference();
16
+ }
17
+ /**
18
+ * Finishes the time, returns data in milliseconds
19
+ */
20
+ end() {
21
+ let diff = process.hrtime(this.startAt);
22
+ return diff[0] * 1000 + diff[1] / 1e6;
23
+ }
24
+ }
25
+ exports.TimeDifference = TimeDifference;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZV9kaWZmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3RpbWVfZGlmZmVyZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNIO0lBR0U7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSztRQUNqQixPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRztRQUNELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3hDLENBQUM7Q0FDRiJ9
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimeFactor = TimeFactor;
4
+ exports.TimeResolve = TimeResolve;
5
+ exports.Delay = Delay;
6
+ const const_js_1 = require("../const.js");
7
+ function TimeFactor(diff, timeout) {
8
+ if (diff < timeout / 5) {
9
+ return const_js_1.colors.green(TimeResolve(diff).padStart(9, " "));
10
+ }
11
+ if (diff < timeout / 2) {
12
+ return const_js_1.colors.yellow(TimeResolve(diff).padStart(9, " "));
13
+ }
14
+ return const_js_1.colors.red(TimeResolve(diff).padStart(9, " "));
15
+ }
16
+ function TimeResolve(ms) {
17
+ if (ms < 1000) {
18
+ return ((ms * 100) | 0) / 100 + " ms";
19
+ }
20
+ if (ms < 60 * 1000) {
21
+ return ((ms / 10) | 0) / 100 + " s";
22
+ }
23
+ if (ms < 60 * 60 * 1000) {
24
+ return ((ms / 600) | 0) / 100 + " m";
25
+ }
26
+ return ((ms / 36000) | 0) / 100 + " h";
27
+ }
28
+ function Delay(ms) {
29
+ return new Promise((resolve) => setTimeout(resolve, ms));
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZV9mYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvdGltZV9mYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwQ0FBcUM7QUFFckMsb0JBQTJCLElBQVksRUFBRSxPQUFlO0lBQ3RELElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLGlCQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLGlCQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8saUJBQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQscUJBQTRCLEVBQVU7SUFDcEMsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUN6QyxDQUFDO0FBRUQsZUFBc0IsRUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQyJ9
package/dist/core.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { TEST_CLASS_KEY } from "./symbol.js";
1
+ import { TEST_CLASS_KEY, TEST_INSTANCE_INFO } from "./symbol.js";
2
+ import type { TestWrap } from "./test-wrap.js";
2
3
  export interface TestClassInfo {
3
4
  dependencies?: Map<string, () => new () => BaseTest>;
4
5
  skip?: string;
@@ -7,6 +8,7 @@ export interface TestClassInfo {
7
8
  timeout?: number;
8
9
  }
9
10
  export declare class BaseTest {
11
+ [TEST_INSTANCE_INFO]: TestWrap;
10
12
  static [TEST_CLASS_KEY]: TestClassInfo;
11
13
  }
12
14
  type DependencyDefinitionRule<T extends BaseTest> = () => new () => T;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,UAAU,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,QAAQ;IACnB,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,aAAa,CAGpC;CACH;AAED,KAAK,wBAAwB,CAAC,CAAC,SAAS,QAAQ,IAAI,MAAM,UAAU,CAAC,CAAC;AACtE,KAAK,yBAAyB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE,wBAAgB,IAAI,CAClB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAC/D,EACA,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAO,GACR,GAAE;IACD,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GAqDY,UAAU,GAnDvB,CAAC,uEAmD8B,QAAQ,CAC3C"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,UAAU,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,QAAQ;IACnB,CAAC,kBAAkB,CAAC,EAAG,QAAQ,CAAC;IAEhC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,aAAa,CAGpC;CACH;AAED,KAAK,wBAAwB,CAAC,CAAC,SAAS,QAAQ,IAAI,MAAM,UAAU,CAAC,CAAC;AACtE,KAAK,yBAAyB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE,wBAAgB,IAAI,CAClB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAC/D,EACA,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAO,GACR,GAAE;IACD,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GAqDY,UAAU,GAnDvB,CAAC,uEAmD8B,QAAQ,CAC3C"}
package/dist/core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  var _a;
2
- import { TEST_CLASS_KEY } from "./symbol.js";
2
+ import { TEST_CLASS_KEY, TEST_INSTANCE_INFO } from "./symbol.js";
3
3
  export class BaseTest {
4
4
  }
5
5
  _a = TEST_CLASS_KEY;
@@ -53,4 +53,4 @@ export function Test({ dependencies, skip, before, after, timeout, } = {}) {
53
53
  _b[_d] = wrap(Reflect.get(_c, TEST_CLASS_KEY, _b)),
54
54
  _b;
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVTdDLE1BQU0sT0FBTyxRQUFROztLQUNYLGNBQWM7QUFBZixZQUFnQixHQUFrQjtJQUN2QyxZQUFZLEVBQUUsSUFBSSxHQUFHLEVBQUU7SUFDdkIsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBTUosTUFBTSxVQUFVLElBQUksQ0FFbEIsRUFDQSxZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBQ0wsT0FBTyxNQU9MLEVBQUU7O0lBS0osU0FBUyxJQUFJLENBQUMsY0FBNkI7UUFDekMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFFLEVBQVcsQ0FBQztRQUV4RCxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDTixTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekIsSUFBSSxjQUFjLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQzdCLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBUSxDQUFDLENBQUM7WUFDekQsQ0FBQztpQkFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDOUIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLEtBQUEsS0FBTSxTQUFRLE1BQUEsUUFBUSxDQUFBO1lBRzNCO2dCQUNFLEtBQUssRUFBRSxDQUFDO1lBQ1YsQ0FBQztTQUNGO2FBTFMsY0FBYztRQUFmLE1BQWdCLEdBQWtCLElBQUksQ0FBQyxnQkFBTSxjQUFjLEtBQWYsQ0FBa0I7VUFLN0IsQ0FBQztBQUM3QyxDQUFDIn0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBV2pFLE1BQU0sT0FBTyxRQUFRO0NBT3BCO0tBSlMsY0FBYztBQUFmLFlBQWdCLEdBQWtCO0lBQ3ZDLFlBQVksRUFBRSxJQUFJLEdBQUcsRUFBRTtJQUN2QixPQUFPLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFNSixNQUFNLFVBQVUsSUFBSSxDQUVsQixFQUNBLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxPQUFPLEdBQ1IsR0FNRyxFQUFFOztJQUtKLFNBQVMsSUFBSSxDQUFDLGNBQTZCO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBRSxFQUFXLENBQUM7UUFFeEQsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpCLElBQUksY0FBYyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQVEsQ0FBQyxDQUFDO1lBQ3pELENBQUM7aUJBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzlCLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxLQUFBLEtBQU0sU0FBUSxNQUFBLFFBQVEsQ0FBQTtZQUczQjtnQkFDRSxLQUFLLEVBQUUsQ0FBQztZQUNWLENBQUM7U0FDRjthQUxTLGNBQWM7UUFBZixNQUFnQixHQUFrQixJQUFJLENBQUMsZ0JBQU0sY0FBYyxLQUFmLENBQWtCO1VBSzdCLENBQUM7QUFDN0MsQ0FBQyJ9
package/dist/dynamic.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { BaseTest } from "./core.js";
2
2
  export declare function skipTest(reason?: string): never;
3
+ export declare function skipClass(reason?: string): never;
4
+ export declare function isSkipped(instance: BaseTest): boolean;
3
5
  export declare function getTest<T extends BaseTest>(test: () => new () => T): Partial<T> | null;
4
6
  export declare function addTest<T extends BaseTest>(test: () => new () => T): boolean;
5
7
  //# sourceMappingURL=dynamic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AASrC,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAE/C;AAUD,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EACxC,IAAI,EAAE,MAAM,UAAU,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAUnB;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,WAiBlE"}
1
+ {"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAUrC,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAE/C;AAED,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,WAI3C;AAkBD,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EACxC,IAAI,EAAE,MAAM,UAAU,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAUnB;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,WAiBlE"}
package/dist/dynamic.js CHANGED
@@ -1,9 +1,17 @@
1
1
  import { BaseTest } from "./core.js";
2
2
  import { createInstanceIfNotExists, getFutureTestMap, getTestMap, updateInformationForClass, } from "./run.js";
3
+ import { TEST_CLASS_KEY, TEST_INSTANCE_INFO } from "./symbol.js";
3
4
  import { TestWrap } from "./test-wrap.js";
4
5
  export function skipTest(reason) {
5
6
  throw new NoleManualSkip(reason);
6
7
  }
8
+ export function skipClass(reason) {
9
+ throw new NoleManualClassSkip(reason);
10
+ }
11
+ export function isSkipped(instance) {
12
+ const info = instance[TEST_INSTANCE_INFO];
13
+ return !!info?.skip;
14
+ }
7
15
  class NoleManualSkip extends Error {
8
16
  constructor(reason) {
9
17
  super(`Dynamicly skipped! ${reason}`);
@@ -11,6 +19,13 @@ class NoleManualSkip extends Error {
11
19
  this._nole_anchor = 1;
12
20
  }
13
21
  }
22
+ class NoleManualClassSkip extends Error {
23
+ constructor(reason) {
24
+ super(`Dynamicly skipped! ${reason}`);
25
+ this.reason = reason;
26
+ this._nole_anchor = 2;
27
+ }
28
+ }
14
29
  export function getTest(test) {
15
30
  const testWrap = getTestMap().get(test());
16
31
  if (!testWrap) {
@@ -32,4 +47,4 @@ export function addTest(test) {
32
47
  updateInformationForClass(testClass, testWrap, testMap);
33
48
  return true;
34
49
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLHlCQUF5QixHQUMxQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxNQUFlO0lBQ3RDLE1BQU0sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sY0FBZSxTQUFRLEtBQUs7SUFHaEMsWUFBbUIsTUFBZTtRQUNoQyxLQUFLLENBQUMsc0JBQXNCLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFEckIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUZsQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUNyQixJQUF1QjtJQUV2QixNQUFNLFFBQVEsR0FBRyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFTLENBQXlCLENBQUM7SUFFekUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFxQixJQUF1QjtJQUNqRSxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUM3QixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTFDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDO0lBRXpCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRWpDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFeEQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIn0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLHlCQUF5QixHQUMxQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLFVBQVUsUUFBUSxDQUFDLE1BQWU7SUFDdEMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFlO0lBQ3ZDLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxRQUFrQjtJQUMxQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUUxQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLGNBQWUsU0FBUSxLQUFLO0lBR2hDLFlBQW1CLE1BQWU7UUFDaEMsS0FBSyxDQUFDLHNCQUFzQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRHJCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFGbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFJakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxtQkFBb0IsU0FBUSxLQUFLO0lBR3JDLFlBQW1CLE1BQWU7UUFDaEMsS0FBSyxDQUFDLHNCQUFzQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRHJCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFGbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFJakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FDckIsSUFBdUI7SUFFdkIsTUFBTSxRQUFRLEdBQUcsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBUyxDQUF5QixDQUFDO0lBRXpFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXBDLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBcUIsSUFBdUI7SUFDakUsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDN0IsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUUxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUV6QixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqQyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXhELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"before-hooks.d.ts","sourceRoot":"","sources":["../../src/handle/before-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAUrD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,iBA4BrD"}
1
+ {"version":3,"file":"before-hooks.d.ts","sourceRoot":"","sources":["../../src/handle/before-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAWrD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,iBA4CrD"}
@@ -1,7 +1,7 @@
1
1
  import { HookType, TestWrap } from "../test-wrap.js";
2
2
  import { Executor } from "../utils/executor.js";
3
3
  import { TimeFactor } from "../utils/time_factor.js";
4
- import { colors, DEFAULT_TIMEOUT, HOOK_FAILED_TEXT, OK_TEXT, } from "../const.js";
4
+ import { colors, DEFAULT_TIMEOUT, DYNAMIC_SKIP_TEXT, HOOK_FAILED_TEXT, OK_TEXT, } from "../const.js";
5
5
  export async function handleBeforeHooks(test) {
6
6
  const timeout = test.config.timeout ?? DEFAULT_TIMEOUT;
7
7
  for (let [propertyKey, hook] of test.hooks.entries()) {
@@ -15,10 +15,20 @@ export async function handleBeforeHooks(test) {
15
15
  console.log(`${OK_TEXT} ${timeText} ${hookName}()`);
16
16
  }
17
17
  catch (e) {
18
+ const anchor = e?._nole_anchor;
19
+ if (anchor === 1) {
20
+ throw new Error("You cannot just skip the before hook! Probably you ment to skip the whole test class!");
21
+ }
22
+ else if (anchor === 2) {
23
+ let reason = e.reason;
24
+ test.skipClass = { reason, origin: ":" + propertyKey };
25
+ console.log(`${DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${hookName}() ${reason ? "{" + reason + "}" : ""}`);
26
+ continue;
27
+ }
18
28
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
19
29
  console.error(e?.stack ?? e);
20
30
  throw e;
21
31
  }
22
32
  }
23
33
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS9iZWZvcmUtaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLGdCQUFnQixFQUNoQixPQUFPLEdBQ1IsTUFBTSxhQUFhLENBQUM7QUFFckIsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxJQUFjO0lBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQztJQUV2RCxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsTUFBTTtZQUFFLFNBQVM7UUFFM0MsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDeEIsTUFBTSxDQUFDLE1BQU0sQ0FDWCxJQUFJLENBQUMsSUFBSTtZQUNQLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQ25FLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxDQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDdEQsT0FBTyxDQUNSLENBQUM7WUFFRixJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXRDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsZ0JBQWdCLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQztZQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFFLENBQVMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS9iZWZvcmUtaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsT0FBTyxHQUNSLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsSUFBYztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7SUFFdkQsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLE1BQU07WUFBRSxTQUFTO1FBRTNDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQ1gsSUFBSSxDQUFDLElBQUk7WUFDUCxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUNuRSxDQUNGLENBQUM7UUFFRixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsQ0FDWixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQ3RELE9BQU8sQ0FDUixDQUFDO1lBRUYsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV0QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxJQUFJLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxNQUFNLEdBQUksQ0FBUyxFQUFFLFlBQVksQ0FBQztZQUN4QyxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FDeEYsQ0FBQztZQUNKLENBQUM7aUJBQU0sSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksTUFBTSxHQUFJLENBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FDVCxHQUFHLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxNQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNoQyxFQUFFLENBQ0gsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxnQkFBZ0IsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUUsQ0FBUyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/handle/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAerD,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,iBAoD/C"}
1
+ {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/handle/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAerD,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,iBAiE/C"}