velocious 1.0.546 → 1.0.548
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/README.md +24 -0
- package/build/cli/tenant-database-command-helper.js +38 -3
- package/build/environment-handlers/node/cli/commands/test.js +32 -0
- package/build/src/cli/tenant-database-command-helper.d.ts +7 -1
- package/build/src/cli/tenant-database-command-helper.d.ts.map +1 -1
- package/build/src/cli/tenant-database-command-helper.js +36 -4
- package/build/src/environment-handlers/node/cli/commands/test.d.ts +8 -0
- package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/test.js +27 -1
- package/build/src/tenants/tenant-iterator.d.ts.map +1 -1
- package/build/src/tenants/tenant-iterator.js +9 -7
- package/build/src/testing/test-runner.d.ts +18 -0
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +20 -1
- package/build/tenants/tenant-iterator.js +8 -3
- package/build/testing/test-runner.js +23 -0
- package/package.json +1 -1
- package/src/cli/tenant-database-command-helper.js +38 -3
- package/src/environment-handlers/node/cli/commands/test.js +32 -0
- package/src/tenants/tenant-iterator.js +8 -3
- package/src/testing/test-runner.js +23 -0
package/README.md
CHANGED
|
@@ -119,6 +119,28 @@ it("retries a flaky check", {retry: 2}, async () => {})
|
|
|
119
119
|
})
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
+
Velocious prints the slowest tests after every run so suite hotspots are easy to spot. Each line shows the duration, full description and `file:line`.
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Default: the 10 slowest tests are printed after the run summary.
|
|
126
|
+
npx velocious test
|
|
127
|
+
|
|
128
|
+
# Report the 25 slowest tests instead.
|
|
129
|
+
VELOCIOUS_SLOW_TEST_COUNT=25 npx velocious test
|
|
130
|
+
|
|
131
|
+
# Disable the report.
|
|
132
|
+
VELOCIOUS_SLOW_TEST_COUNT=0 npx velocious test
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
Slowest 10 tests:
|
|
137
|
+
1145ms Background jobs - store backfills execution modes for legacy queued jobs (spec/background-jobs/store-spec.js:984)
|
|
138
|
+
913ms Background jobs - store prunes completed rows past the retention window (spec/background-jobs/store-spec.js:825)
|
|
139
|
+
...
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The report is skipped for single-test runs. See [docs/testing-guidelines.md](docs/testing-guidelines.md).
|
|
143
|
+
|
|
122
144
|
Velocious captures console output emitted while each test executes, but does not print passing-test output by default. When a test fails, Velocious prints a truncated `Console output:` block for that failed test and saves the full captured log under `tmp/screenshots` next to failure screenshots/browser logs/HTML. Each failed test summary prints the saved console log path.
|
|
123
145
|
|
|
124
146
|
Configure console output behavior in your testing config file.
|
|
@@ -2332,6 +2354,8 @@ npx velocious db:tenants:migrate projectTenant
|
|
|
2332
2354
|
npx velocious db:tenants:migrate projectTenant --parallel 20
|
|
2333
2355
|
```
|
|
2334
2356
|
|
|
2357
|
+
Tenant lifecycle commands print start and final counts, report each completed tenant, and emit a heartbeat every 30 seconds with completed and active tenant counts while work is still running.
|
|
2358
|
+
|
|
2335
2359
|
`afterMigrateTenant` hooks run inside the active default and tenant database connection scope for the tenant being migrated.
|
|
2336
2360
|
|
|
2337
2361
|
At runtime, the apartment-style `Tenant` façade (`velocious/build/src/tenants/tenant.js`) is the single entry point: `Tenant.with(tenant, callback)` / `Tenant.current()` to switch into and read a tenant context, `Tenant.each({identifier, callback, parallel?, filter?})` to run a callback within every provider-listed tenant, and `Tenant.drop({identifier, tenant})` (plus the `db:tenants:drop` CLI command) to drop a tenant's database through the provider's `dropDatabase` hook. `Tenant.with` and `Tenant.each` run their callbacks inside `ensureConnections`, so switching into a tenant establishes its database connections (global + tenant) and passes them to the callback — the tenant is immediately queryable without the caller wiring up connections (already-open connections are reused, so nesting does not double-connect). `Tenant.with` is generic over its callback's return type, so a value returned from inside the tenant context comes back to the caller with its type preserved (no cast needed). `Tenant.aggregateAcross({identifier, aggregates, keyColumns, subquery, tenants?, filter?})` runs one aggregate over the same table across many tenant databases and returns the merged result — grouping tenants by server and using a single cross-database `UNION ALL` where the driver supports two-part `` `database`.`table` `` references (MySQL/MariaDB) or one query per tenant otherwise (PostgreSQL/SQLite/MSSQL).
|
|
@@ -2,19 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
import TenantIterator from "../tenants/tenant-iterator.js"
|
|
4
4
|
|
|
5
|
+
const DEFAULT_HEARTBEAT_INTERVAL_MS = 30_000
|
|
6
|
+
|
|
5
7
|
export default class TenantDatabaseCommandHelper {
|
|
6
8
|
/**
|
|
7
9
|
* Runs constructor.
|
|
8
10
|
* @param {object} args - Options object.
|
|
9
11
|
* @param {import("./base-command.js").default} args.command - CLI command instance.
|
|
12
|
+
* @param {number} [args.heartbeatIntervalMs] - Interval between progress heartbeats.
|
|
10
13
|
* @param {string | undefined} args.identifier - Tenant database identifier.
|
|
14
|
+
* @param {(message: string) => void} [args.output] - Progress output handler.
|
|
11
15
|
*/
|
|
12
|
-
constructor({command, identifier}) {
|
|
16
|
+
constructor({command, heartbeatIntervalMs = DEFAULT_HEARTBEAT_INTERVAL_MS, identifier, output = console.log}) {
|
|
13
17
|
if (!identifier) throw new Error("Missing tenant database identifier argument")
|
|
14
18
|
|
|
15
19
|
this.command = command
|
|
16
20
|
this.configuration = command.getConfiguration()
|
|
21
|
+
this.heartbeatIntervalMs = heartbeatIntervalMs
|
|
17
22
|
this.identifier = identifier
|
|
23
|
+
this.output = output
|
|
18
24
|
this.provider = this.configuration.getTenantDatabaseProvider(identifier)
|
|
19
25
|
}
|
|
20
26
|
|
|
@@ -78,13 +84,42 @@ export default class TenantDatabaseCommandHelper {
|
|
|
78
84
|
*/
|
|
79
85
|
async eachTenant(callback) {
|
|
80
86
|
const tenants = await this.listTenants()
|
|
87
|
+
const commandName = this.command.processArgs?.[0] || "db:tenants"
|
|
88
|
+
const parallelCount = this.parallelCount()
|
|
89
|
+
const progressPrefix = `${commandName} ${this.identifier}`
|
|
90
|
+
let activeTenantCount = 0
|
|
91
|
+
let completedTenantCount = 0
|
|
81
92
|
const iterator = new TenantIterator({
|
|
82
93
|
configuration: this.configuration,
|
|
83
94
|
identifier: this.identifier,
|
|
84
|
-
parallelCount
|
|
95
|
+
parallelCount
|
|
85
96
|
})
|
|
97
|
+
const progressHeartbeat = setInterval(() => {
|
|
98
|
+
this.output(`${progressPrefix}: heartbeat: ${completedTenantCount}/${tenants.length} completed, ${activeTenantCount} active`)
|
|
99
|
+
}, this.heartbeatIntervalMs)
|
|
100
|
+
|
|
101
|
+
progressHeartbeat.unref()
|
|
102
|
+
this.output(`${progressPrefix}: processing ${tenants.length} tenant(s) with parallelism ${parallelCount}`)
|
|
103
|
+
|
|
104
|
+
try {
|
|
105
|
+
const processedTenantCount = await iterator.run(tenants, async (args) => {
|
|
106
|
+
activeTenantCount++
|
|
107
|
+
|
|
108
|
+
try {
|
|
109
|
+
await callback(args)
|
|
110
|
+
completedTenantCount++
|
|
111
|
+
this.output(`${progressPrefix}: completed ${TenantIterator.tenantLabel(args.tenant)} (${completedTenantCount}/${tenants.length})`)
|
|
112
|
+
} finally {
|
|
113
|
+
activeTenantCount--
|
|
114
|
+
}
|
|
115
|
+
})
|
|
86
116
|
|
|
87
|
-
|
|
117
|
+
this.output(`${progressPrefix}: finished ${processedTenantCount}/${tenants.length} tenant(s)`)
|
|
118
|
+
|
|
119
|
+
return processedTenantCount
|
|
120
|
+
} finally {
|
|
121
|
+
clearInterval(progressHeartbeat)
|
|
122
|
+
}
|
|
88
123
|
}
|
|
89
124
|
|
|
90
125
|
/**
|
|
@@ -86,6 +86,25 @@ export default class VelociousCliCommandsTest extends BaseCommand {
|
|
|
86
86
|
process.exit(1)
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
// Report the slowest tests so suite hotspots are visible every run. Defaults to
|
|
90
|
+
// the top 10; tune with VELOCIOUS_SLOW_TEST_COUNT (0 disables). Skipped for
|
|
91
|
+
// single-test runs where it would just be noise.
|
|
92
|
+
const slowTestCount = resolveSlowTestCount(process.env.VELOCIOUS_SLOW_TEST_COUNT)
|
|
93
|
+
|
|
94
|
+
if (slowTestCount > 0 && executedTests > 1) {
|
|
95
|
+
const slowestTests = testRunner.getSlowestTests(slowTestCount)
|
|
96
|
+
|
|
97
|
+
if (slowestTests.length > 0) {
|
|
98
|
+
console.log(picocolors.cyan(`\nSlowest ${slowestTests.length} tests:`))
|
|
99
|
+
|
|
100
|
+
for (const slowTest of slowestTests) {
|
|
101
|
+
const location = slowTest.filePath && slowTest.line ? ` (${slowTest.filePath}:${slowTest.line})` : ""
|
|
102
|
+
|
|
103
|
+
console.log(picocolors.cyan(` ${String(slowTest.durationMs).padStart(6)}ms ${slowTest.fullDescription}${location}`))
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
89
108
|
if (testRunner.isFailed()) {
|
|
90
109
|
await testRunner.persistFailedTestConsoleOutputsToAssets()
|
|
91
110
|
const failedTests = testRunner.getFailedTestDetails()
|
|
@@ -116,3 +135,16 @@ export default class VelociousCliCommandsTest extends BaseCommand {
|
|
|
116
135
|
}
|
|
117
136
|
}
|
|
118
137
|
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Resolves how many slowest tests to report from the `VELOCIOUS_SLOW_TEST_COUNT`
|
|
141
|
+
* env value: defaults to 10 when unset; 0 (or an unparseable value) disables the
|
|
142
|
+
* report; otherwise the floored, non-negative integer.
|
|
143
|
+
* @param {string | undefined} rawEnvValue - Raw env value.
|
|
144
|
+
* @returns {number} - Number of slowest tests to report (0 disables).
|
|
145
|
+
*/
|
|
146
|
+
export function resolveSlowTestCount(rawEnvValue) {
|
|
147
|
+
if (rawEnvValue === undefined) return 10
|
|
148
|
+
|
|
149
|
+
return Math.max(0, Math.floor(Number(rawEnvValue)) || 0)
|
|
150
|
+
}
|
|
@@ -3,15 +3,21 @@ export default class TenantDatabaseCommandHelper {
|
|
|
3
3
|
* Runs constructor.
|
|
4
4
|
* @param {object} args - Options object.
|
|
5
5
|
* @param {import("./base-command.js").default} args.command - CLI command instance.
|
|
6
|
+
* @param {number} [args.heartbeatIntervalMs] - Interval between progress heartbeats.
|
|
6
7
|
* @param {string | undefined} args.identifier - Tenant database identifier.
|
|
8
|
+
* @param {(message: string) => void} [args.output] - Progress output handler.
|
|
7
9
|
*/
|
|
8
|
-
constructor({ command, identifier }: {
|
|
10
|
+
constructor({ command, heartbeatIntervalMs, identifier, output }: {
|
|
9
11
|
command: import("./base-command.js").default;
|
|
12
|
+
heartbeatIntervalMs?: number | undefined;
|
|
10
13
|
identifier: string | undefined;
|
|
14
|
+
output?: ((message: string) => void) | undefined;
|
|
11
15
|
});
|
|
12
16
|
command: import("./base-command.js").default;
|
|
13
17
|
configuration: import("../configuration.js").default;
|
|
18
|
+
heartbeatIntervalMs: number;
|
|
14
19
|
identifier: string;
|
|
20
|
+
output: (message: string) => void;
|
|
15
21
|
provider: import("../configuration-types.js").TenantDatabaseProviderType;
|
|
16
22
|
/**
|
|
17
23
|
* Runs validate tenant database identifier.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-database-command-helper.d.ts","sourceRoot":"","sources":["../../../src/cli/tenant-database-command-helper.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tenant-database-command-helper.d.ts","sourceRoot":"","sources":["../../../src/cli/tenant-database-command-helper.js"],"names":[],"mappings":"AAMA;IACE;;;;;;;OAOG;IACH,kEALG;QAAkD,OAAO,EAAjD,OAAO,mBAAmB,EAAE,OAAO;QACrB,mBAAmB;QACR,UAAU,EAAnC,MAAM,GAAG,SAAS;QACe,MAAM,cAA7B,MAAM,KAAK,IAAI;KACnC,EAUA;IANC,6CAAsB;IACtB,qDAA+C;IAC/C,4BAA8C;IAC9C,mBAA4B;IAC5B,kBATmB,MAAM,KAAK,IAAI,CASd;IACpB,yEAAwE;IAG1E;;yBAEqB;IACrB,oCADa,IAAI,CAmBhB;IAED;;;OAGG;IACH,qBAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,eAFa,OAAO,CAAC,KAAK,CAAC,OAAC,CAAC,CAAC,CAkB7B;IAED;;;;OAIG;IACH,qBAHW,CAAS,IAAiG,EAAjG;QAAC,qBAAqB,EAAE,OAAO,2BAA2B,EAAE,yBAAyB,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAI,OAAO,CAAC,IAAI,CAAC,GACzH,OAAO,CAAC,MAAM,CAAC,CAwC3B;IAED;;;OAGG;IACH,iBAFa,MAAM,CA0BlB;CACF"}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import TenantIterator from "../tenants/tenant-iterator.js";
|
|
3
|
+
const DEFAULT_HEARTBEAT_INTERVAL_MS = 30_000;
|
|
3
4
|
export default class TenantDatabaseCommandHelper {
|
|
4
5
|
/**
|
|
5
6
|
* Runs constructor.
|
|
6
7
|
* @param {object} args - Options object.
|
|
7
8
|
* @param {import("./base-command.js").default} args.command - CLI command instance.
|
|
9
|
+
* @param {number} [args.heartbeatIntervalMs] - Interval between progress heartbeats.
|
|
8
10
|
* @param {string | undefined} args.identifier - Tenant database identifier.
|
|
11
|
+
* @param {(message: string) => void} [args.output] - Progress output handler.
|
|
9
12
|
*/
|
|
10
|
-
constructor({ command, identifier }) {
|
|
13
|
+
constructor({ command, heartbeatIntervalMs = DEFAULT_HEARTBEAT_INTERVAL_MS, identifier, output = console.log }) {
|
|
11
14
|
if (!identifier)
|
|
12
15
|
throw new Error("Missing tenant database identifier argument");
|
|
13
16
|
this.command = command;
|
|
14
17
|
this.configuration = command.getConfiguration();
|
|
18
|
+
this.heartbeatIntervalMs = heartbeatIntervalMs;
|
|
15
19
|
this.identifier = identifier;
|
|
20
|
+
this.output = output;
|
|
16
21
|
this.provider = this.configuration.getTenantDatabaseProvider(identifier);
|
|
17
22
|
}
|
|
18
23
|
/**
|
|
@@ -65,12 +70,39 @@ export default class TenantDatabaseCommandHelper {
|
|
|
65
70
|
*/
|
|
66
71
|
async eachTenant(callback) {
|
|
67
72
|
const tenants = await this.listTenants();
|
|
73
|
+
const commandName = this.command.processArgs?.[0] || "db:tenants";
|
|
74
|
+
const parallelCount = this.parallelCount();
|
|
75
|
+
const progressPrefix = `${commandName} ${this.identifier}`;
|
|
76
|
+
let activeTenantCount = 0;
|
|
77
|
+
let completedTenantCount = 0;
|
|
68
78
|
const iterator = new TenantIterator({
|
|
69
79
|
configuration: this.configuration,
|
|
70
80
|
identifier: this.identifier,
|
|
71
|
-
parallelCount
|
|
81
|
+
parallelCount
|
|
72
82
|
});
|
|
73
|
-
|
|
83
|
+
const progressHeartbeat = setInterval(() => {
|
|
84
|
+
this.output(`${progressPrefix}: heartbeat: ${completedTenantCount}/${tenants.length} completed, ${activeTenantCount} active`);
|
|
85
|
+
}, this.heartbeatIntervalMs);
|
|
86
|
+
progressHeartbeat.unref();
|
|
87
|
+
this.output(`${progressPrefix}: processing ${tenants.length} tenant(s) with parallelism ${parallelCount}`);
|
|
88
|
+
try {
|
|
89
|
+
const processedTenantCount = await iterator.run(tenants, async (args) => {
|
|
90
|
+
activeTenantCount++;
|
|
91
|
+
try {
|
|
92
|
+
await callback(args);
|
|
93
|
+
completedTenantCount++;
|
|
94
|
+
this.output(`${progressPrefix}: completed ${TenantIterator.tenantLabel(args.tenant)} (${completedTenantCount}/${tenants.length})`);
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
activeTenantCount--;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
this.output(`${progressPrefix}: finished ${processedTenantCount}/${tenants.length} tenant(s)`);
|
|
101
|
+
return processedTenantCount;
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
clearInterval(progressHeartbeat);
|
|
105
|
+
}
|
|
74
106
|
}
|
|
75
107
|
/**
|
|
76
108
|
* Runs parallel count.
|
|
@@ -97,4 +129,4 @@ export default class TenantDatabaseCommandHelper {
|
|
|
97
129
|
return parallelCount;
|
|
98
130
|
}
|
|
99
131
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRhdGFiYXNlLWNvbW1hbmQtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS90ZW5hbnQtZGF0YWJhc2UtY29tbWFuZC1oZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sY0FBYyxNQUFNLCtCQUErQixDQUFBO0FBRTFELE1BQU0sQ0FBQyxPQUFPLE9BQU8sMkJBQTJCO0lBQzlDOzs7OztPQUtHO0lBQ0gsWUFBWSxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFFL0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUVEOzt5QkFFcUI7SUFDckIsZ0NBQWdDO1FBQzlCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUU1RixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUMvRSxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLElBQUksQ0FBQyxVQUFVLDBDQUEwQyxDQUFDLENBQUE7UUFDbkcsQ0FBQztRQUVELElB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LFdBQVcsS0FBSyxTQUFTLElBQUksV0FBVyxLQUFLLEtBQUs7WUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNoRSxJQUFJLFdBQVcsS0FBSyxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUE7UUFFbkMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXpDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQ25HLENBQUM7UUFFRCxPQUFPLGFBQWEsQ0FBQTtJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IFRlbmFudEl0ZXJhdG9yIGZyb20gXCIuLi90ZW5hbnRzL3RlbmFudC1pdGVyYXRvci5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlbmFudERhdGFiYXNlQ29tbWFuZEhlbHBlciB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vYmFzZS1jb21tYW5kLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29tbWFuZCAtIENMSSBjb21tYW5kIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gYXJncy5pZGVudGlmaWVyIC0gVGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29tbWFuZCwgaWRlbnRpZmllcn0pIHtcbiAgICBpZiAoIWlkZW50aWZpZXIpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIgYXJndW1lbnRcIilcblxuICAgIHRoaXMuY29tbWFuZCA9IGNvbW1hbmRcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb21tYW5kLmdldENvbmZpZ3VyYXRpb24oKVxuICAgIHRoaXMuaWRlbnRpZmllciA9IGlkZW50aWZpZXJcbiAgICB0aGlzLnByb3ZpZGVyID0gdGhpcy5jb25maWd1cmF0aW9uLmdldFRlbmFudERhdGFiYXNlUHJvdmlkZXIoaWRlbnRpZmllcilcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHZhbGlkYXRlIHRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgdmFsaWRhdGVUZW5hbnREYXRhYmFzZUlkZW50aWZpZXIoKSB7XG4gICAgY29uc3QgZGF0YWJhc2VDb25maWd1cmF0aW9uID0gdGhpcy5jb25maWd1cmF0aW9uLmdldERhdGFiYXNlQ29uZmlndXJhdGlvbigpW3RoaXMuaWRlbnRpZmllcl1cblxuICAgIGlmICghZGF0YWJhc2VDb25maWd1cmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggZGF0YWJhc2UgaWRlbnRpZmllciBjb25maWd1cmVkOiAke3RoaXMuaWRlbnRpZmllcn1gKVxuICAgIH1cblxuICAgIGlmICghZGF0YWJhc2VDb25maWd1cmF0aW9uLnRlbmFudE9ubHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRGF0YWJhc2UgaWRlbnRpZmllciAke3RoaXMuaWRlbnRpZmllcn0gaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCB0ZW5hbnRPbmx5OiB0cnVlYClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmdldERpc2FibGVkRGF0YWJhc2VJZGVudGlmaWVycygpLmhhcyh0aGlzLmlkZW50aWZpZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyICR7dGhpcy5pZGVudGlmaWVyfSBpcyBkaXNhYmxlZCBieSBWRUxPQ0lPVVNfRElTQUJMRURfREFUQUJBU0VfSURFTlRJRklFUlNgKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5wcm92aWRlci5saXN0VGVuYW50cyAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRlbmFudCBkYXRhYmFzZSBwcm92aWRlciBmb3IgJHt0aGlzLmlkZW50aWZpZXJ9IG11c3QgZGVmaW5lIGxpc3RUZW5hbnRzYClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBpbml0aWFsaXplIHJ1bnRpbWUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gYXBwIHJ1bnRpbWUgaXMgaW5pdGlhbGl6ZWQuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplUnVudGltZSgpIHtcbiAgICBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24uaW5pdGlhbGl6ZSh7dHlwZTogXCJkYi10ZW5hbnRzXCJ9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgbGlzdCB0ZW5hbnRzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTw/Pj59IC0gVGVuYW50cy5cbiAgICovXG4gIGFzeW5jIGxpc3RUZW5hbnRzKCkge1xuICAgIHRoaXMudmFsaWRhdGVUZW5hbnREYXRhYmFzZUlkZW50aWZpZXIoKVxuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVJ1bnRpbWUoKVxuXG4gICAgY29uc3QgdGVuYW50cyA9IGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5lbnN1cmVDb25uZWN0aW9ucyh7bmFtZTogYFRlbmFudCBkYXRhYmFzZSBsaXN0OiAke3RoaXMuaWRlbnRpZmllcn1gfSwgYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvdmlkZXIubGlzdFRlbmFudHMoe1xuICAgICAgICBjb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGlkZW50aWZpZXI6IHRoaXMuaWRlbnRpZmllclxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRlbmFudHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRlbmFudCBkYXRhYmFzZSBwcm92aWRlciBmb3IgJHt0aGlzLmlkZW50aWZpZXJ9IG11c3QgcmV0dXJuIGFuIGFycmF5IGZyb20gbGlzdFRlbmFudHNgKVxuICAgIH1cblxuICAgIHJldHVybiB0ZW5hbnRzXG4gIH1cblxuICAvKipcbiAgICogUnVucyBlYWNoIHRlbmFudC5cbiAgICogQHBhcmFtIHtmdW5jdGlvbih7ZGF0YWJhc2VDb25maWd1cmF0aW9uOiBpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkRhdGFiYXNlQ29uZmlndXJhdGlvblR5cGUsIHRlbmFudDogP30pIDogUHJvbWlzZTx2b2lkPn0gY2FsbGJhY2sgLSBDYWxsYmFjay5cbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gLSBOdW1iZXIgb2YgdGVuYW50cyBwcm9jZXNzZWQuXG4gICAqL1xuICBhc3luYyBlYWNoVGVuYW50KGNhbGxiYWNrKSB7XG4gICAgY29uc3QgdGVuYW50cyA9IGF3YWl0IHRoaXMubGlzdFRlbmFudHMoKVxuICAgIGNvbnN0IGl0ZXJhdG9yID0gbmV3IFRlbmFudEl0ZXJhdG9yKHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIGlkZW50aWZpZXI6IHRoaXMuaWRlbnRpZmllcixcbiAgICAgIHBhcmFsbGVsQ291bnQ6IHRoaXMucGFyYWxsZWxDb3VudCgpXG4gICAgfSlcblxuICAgIHJldHVybiBhd2FpdCBpdGVyYXRvci5ydW4odGVuYW50cywgY2FsbGJhY2spXG4gIH1cblxuICAvKipcbiAgICogUnVucyBwYXJhbGxlbCBjb3VudC5cbiAgICogQHJldHVybnMge251bWJlcn0gLSBOdW1iZXIgb2YgdGVuYW50cyB0byBwcm9jZXNzIGNvbmN1cnJlbnRseS5cbiAgICovXG4gIHBhcmFsbGVsQ291bnQoKSB7XG4gICAgY29uc3QgcGFyc2VkUHJvY2Vzc0FyZ3MgPSB0aGlzLmNvbW1hbmQuYXJncz8ucGFyc2VkUHJvY2Vzc0FyZ3MgfHwge31cbiAgICBsZXQgcGFyYWxsZWxBcmcgPSBwYXJzZWRQcm9jZXNzQXJncy5wYXJhbGxlbFxuXG4gICAgaWYgKHBhcmFsbGVsQXJnID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHBhcmFsbGVsQXJnSW5kZXggPSB0aGlzLmNvbW1hbmQucHJvY2Vzc0FyZ3M/LmluZGV4T2YoXCItLXBhcmFsbGVsXCIpID8/IC0xXG5cbiAgICAgIGlmIChwYXJhbGxlbEFyZ0luZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV4dEFyZyA9IHRoaXMuY29tbWFuZC5wcm9jZXNzQXJncz8uW3BhcmFsbGVsQXJnSW5kZXggKyAxXVxuXG4gICAgICAgIHBhcmFsbGVsQXJnID0gbmV4dEFyZyAmJiAhbmV4dEFyZy5zdGFydHNXaXRoKFwiLVwiKSA/IG5leHRBcmcgOiB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFsbGVsQXJnID09PSB1bmRlZmluZWQgfHwgcGFyYWxsZWxBcmcgPT09IGZhbHNlKSByZXR1cm4gMVxuICAgIGlmIChwYXJhbGxlbEFyZyA9PT0gdHJ1ZSkgcmV0dXJuIDIwXG5cbiAgICBjb25zdCBwYXJhbGxlbENvdW50ID0gTnVtYmVyKHBhcmFsbGVsQXJnKVxuXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHBhcmFsbGVsQ291bnQpIHx8IHBhcmFsbGVsQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYC0tcGFyYWxsZWwgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgd2hlbiBhIHZhbHVlIGlzIHByb3ZpZGVkOiAke3BhcmFsbGVsQXJnfWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFsbGVsQ291bnRcbiAgfVxufVxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRhdGFiYXNlLWNvbW1hbmQtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS90ZW5hbnQtZGF0YWJhc2UtY29tbWFuZC1oZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sY0FBYyxNQUFNLCtCQUErQixDQUFBO0FBRTFELE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFBO0FBRTVDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sMkJBQTJCO0lBQzlDOzs7Ozs7O09BT0c7SUFDSCxZQUFZLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixHQUFHLDZCQUE2QixFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBQztRQUMxRyxJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtRQUUvRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQTtRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUVEOzt5QkFFcUI7SUFDckIsZ0NBQWdDO1FBQzlCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUU1RixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxJ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QUFXLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBRTlFLElBQUksZ0JBQWdCLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBRWhFLFdBQVcsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUNwRSxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssS0FBSztZQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ2hFLElBQUksV0FBVyxLQUFLLElBQUk7WUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUVuQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLFdBQVcsRUFBRSxDQUFDLENBQUE7UUFDbkcsQ0FBQztRQUVELE9BQU8sYUFBYSxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgVGVuYW50SXRlcmF0b3IgZnJvbSBcIi4uL3RlbmFudHMvdGVuYW50LWl0ZXJhdG9yLmpzXCJcblxuY29uc3QgREVGQVVMVF9IRUFSVEJFQVRfSU5URVJWQUxfTVMgPSAzMF8wMDBcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVuYW50RGF0YWJhc2VDb21tYW5kSGVscGVyIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLWNvbW1hbmQuanNcIikuZGVmYXVsdH0gYXJncy5jb21tYW5kIC0gQ0xJIGNvbW1hbmQgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5oZWFydGJlYXRJbnRlcnZhbE1zXSAtIEludGVydmFsIGJldHdlZW4gcHJvZ3Jlc3MgaGVhcnRiZWF0cy5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGFyZ3MuaWRlbnRpZmllciAtIFRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0geyhtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWR9IFthcmdzLm91dHB1dF0gLSBQcm9ncmVzcyBvdXRwdXQgaGFuZGxlci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb21tYW5kLCBoZWFydGJlYXRJbnRlcnZhbE1zID0gREVGQVVMVF9IRUFSVEJFQVRfSU5URVJWQUxfTVMsIGlkZW50aWZpZXIsIG91dHB1dCA9IGNvbnNvbGUubG9nfSkge1xuICAgIGlmICghaWRlbnRpZmllcikgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0ZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllciBhcmd1bWVudFwiKVxuXG4gICAgdGhpcy5jb21tYW5kID0gY29tbWFuZFxuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbW1hbmQuZ2V0Q29uZmlndXJhdGlvbigpXG4gICAgdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zID0gaGVhcnRiZWF0SW50ZXJ2YWxNc1xuICAgIHRoaXMuaWRlbnRpZmllciA9IGlkZW50aWZpZXJcbiAgICB0aGlzLm91dHB1dCA9IG91dHB1dFxuICAgIHRoaXMucHJvdmlkZXIgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0VGVuYW50RGF0YWJhc2VQcm92aWRlcihpZGVudGlmaWVyKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdmFsaWRhdGUgdGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAqL1xuICB2YWxpZGF0ZVRlbmFudERhdGFiYXNlSWRlbnRpZmllcigpIHtcbiAgICBjb25zdCBkYXRhYmFzZUNvbmZpZ3VyYXRpb24gPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0RGF0YWJhc2VDb25maWd1cmF0aW9uKClbdGhpcy5pZGVudGlmaWVyXVxuXG4gICAgaWYgKCFkYXRhYmFzZUNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBkYXRhYmFzZSBpZGVudGlmaWVyIGNvbmZpZ3VyZWQ6ICR7dGhpcy5pZGVudGlmaWVyfWApXG4gICAgfVxuXG4gICAgaWYgKCFkYXRhYmFzZUNvbmZpZ3VyYXRpb24udGVuYW50T25seSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEYXRhYmFzZSBpZGVudGlmaWVyICR7dGhpcy5pZGVudGlmaWVyfSBpcyBub3QgY29uZmlndXJlZCB3aXRoIHRlbmFudE9ubHk6IHRydWVgKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0RGlzYWJsZWREYXRhYmFzZUlkZW50aWZpZXJzKCkuaGFzKHRoaXMuaWRlbnRpZmllcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIgJHt0aGlzLmlkZW50aWZpZXJ9IGlzIGRpc2FibGVkIGJ5IFZFTE9DSU9VU19ESVNBQkxFRF9EQVRBQkFTRV9JREVOVElGSUVSU2ApXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnByb3ZpZGVyLmxpc3RUZW5hbnRzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGVuYW50IGRhdGFiYXNlIHByb3ZpZGVyIGZvciAke3RoaXMuaWRlbnRpZmllcn0gbXVzdCBkZWZpbmUgbGlzdFRlbmFudHNgKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGluaXRpYWxpemUgcnVudGltZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBhcHAgcnVudGltZSBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemVSdW50aW1lKCkge1xuICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5pbml0aWFsaXplKHt0eXBlOiBcImRiLXRlbmFudHNcIn0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBsaXN0IHRlbmFudHMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PD8+Pn0gLSBUZW5hbnRzLlxuICAgKi9cbiAgYXN5bmMgbGlzdFRlbmFudHMoKSB7XG4gICAgdGhpcy52YWxpZGF0ZVRlbmFudERhdGFiYXNlSWRlbnRpZmllcigpXG4gICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUnVudGltZSgpXG5cbiAgICBjb25zdCB0ZW5hbnRzID0gYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmVuc3VyZUNvbm5lY3Rpb25zKHtuYW1lOiBgVGVuYW50IGRhdGFiYXNlIGxpc3Q6ICR7dGhpcy5pZGVudGlmaWVyfWB9LCBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm92aWRlci5saXN0VGVuYW50cyh7XG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgaWRlbnRpZmllcjogdGhpcy5pZGVudGlmaWVyXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGVuYW50cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGVuYW50IGRhdGFiYXNlIHByb3ZpZGVyIGZvciAke3RoaXMuaWRlbnRpZmllcn0gbXVzdCByZXR1cm4gYW4gYXJyYXkgZnJvbSBsaXN0VGVuYW50c2ApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRlbmFudHNcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGVhY2ggdGVuYW50LlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHtkYXRhYmFzZUNvbmZpZ3VyYXRpb246IGltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuRGF0YWJhc2VDb25maWd1cmF0aW9uVHlwZSwgdGVuYW50OiA/fSkgOiBQcm9taXNlPHZvaWQ+fSBjYWxsYmFjayAtIENhbGxiYWNrLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSAtIE51bWJlciBvZiB0ZW5hbnRzIHByb2Nlc3NlZC5cbiAgICovXG4gIGFzeW5jIGVhY2hUZW5hbnQoY2FsbGJhY2spIHtcbiAgICBjb25zdCB0ZW5hbnRzID0gYXdhaXQgdGhpcy5saXN0VGVuYW50cygpXG4gICAgY29uc3QgY29tbWFuZE5hbWUgPSB0aGlzLmNvbW1hbmQucHJvY2Vzc0FyZ3M/LlswXSB8fCBcImRiOnRlbmFudHNcIlxuICAgIGNvbnN0IHBhcmFsbGVsQ291bnQgPSB0aGlzLnBhcmFsbGVsQ291bnQoKVxuICAgIGNvbnN0IHByb2dyZXNzUHJlZml4ID0gYCR7Y29tbWFuZE5hbWV9ICR7dGhpcy5pZGVudGlmaWVyfWBcbiAgICBsZXQgYWN0aXZlVGVuYW50Q291bnQgPSAwXG4gICAgbGV0IGNvbXBsZXRlZFRlbmFudENvdW50ID0gMFxuICAgIGNvbnN0IGl0ZXJhdG9yID0gbmV3IFRlbmFudEl0ZXJhdG9yKHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIGlkZW50aWZpZXI6IHRoaXMuaWRlbnRpZmllcixcbiAgICAgIHBhcmFsbGVsQ291bnRcbiAgICB9KVxuICAgIGNvbnN0IHByb2dyZXNzSGVhcnRiZWF0ID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5vdXRwdXQoYCR7cHJvZ3Jlc3NQcmVmaXh9OiBoZWFydGJlYXQ6ICR7Y29tcGxldGVkVGVuYW50Q291bnR9LyR7dGVuYW50cy5sZW5ndGh9IGNvbXBsZXRlZCwgJHthY3RpdmVUZW5hbnRDb3VudH0gYWN0aXZlYClcbiAgICB9LCB0aGlzLmhlYXJ0YmVhdEludGVydmFsTXMpXG5cbiAgICBwcm9ncmVzc0hlYXJ0YmVhdC51bnJlZigpXG4gICAgdGhpcy5vdXRwdXQoYCR7cHJvZ3Jlc3NQcmVmaXh9OiBwcm9jZXNzaW5nICR7dGVuYW50cy5sZW5ndGh9IHRlbmFudChzKSB3aXRoIHBhcmFsbGVsaXNtICR7cGFyYWxsZWxDb3VudH1gKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByb2Nlc3NlZFRlbmFudENvdW50ID0gYXdhaXQgaXRlcmF0b3IucnVuKHRlbmFudHMsIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICAgIGFjdGl2ZVRlbmFudENvdW50KytcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGNhbGxiYWNrKGFyZ3MpXG4gICAgICAgICAgY29tcGxldGVkVGVuYW50Q291bnQrK1xuICAgICAgICAgIHRoaXMub3V0cHV0KGAke3Byb2dyZXNzUHJlZml4fTogY29tcGxldGVkICR7VGVuYW50SXRlcmF0b3IudGVuYW50TGFiZWwoYXJncy50ZW5hbnQpfSAoJHtjb21wbGV0ZWRUZW5hbnRDb3VudH0vJHt0ZW5hbnRzLmxlbmd0aH0pYClcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBhY3RpdmVUZW5hbnRDb3VudC0tXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHRoaXMub3V0cHV0KGAke3Byb2dyZXNzUHJlZml4fTogZmluaXNoZWQgJHtwcm9jZXNzZWRUZW5hbnRDb3VudH0vJHt0ZW5hbnRzLmxlbmd0aH0gdGVuYW50KHMpYClcblxuICAgICAgcmV0dXJuIHByb2Nlc3NlZFRlbmFudENvdW50XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGNsZWFySW50ZXJ2YWwocHJvZ3Jlc3NIZWFydGJlYXQpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcGFyYWxsZWwgY291bnQuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IC0gTnVtYmVyIG9mIHRlbmFudHMgdG8gcHJvY2VzcyBjb25jdXJyZW50bHkuXG4gICAqL1xuICBwYXJhbGxlbENvdW50KCkge1xuICAgIGNvbnN0IHBhcnNlZFByb2Nlc3NBcmdzID0gdGhpcy5jb21tYW5kLmFyZ3M/LnBhcnNlZFByb2Nlc3NBcmdzIHx8IHt9XG4gICAgbGV0IHBhcmFsbGVsQXJnID0gcGFyc2VkUHJvY2Vzc0FyZ3MucGFyYWxsZWxcblxuICAgIGlmIChwYXJhbGxlbEFyZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBwYXJhbGxlbEFyZ0luZGV4ID0gdGhpcy5jb21tYW5kLnByb2Nlc3NBcmdzPy5pbmRleE9mKFwiLS1wYXJhbGxlbFwiKSA/PyAtMVxuXG4gICAgICBpZiAocGFyYWxsZWxBcmdJbmRleCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IG5leHRBcmcgPSB0aGlzLmNvbW1hbmQucHJvY2Vzc0FyZ3M/LltwYXJhbGxlbEFyZ0luZGV4ICsgMV1cblxuICAgICAgICBwYXJhbGxlbEFyZyA9IG5leHRBcmcgJiYgIW5leHRBcmcuc3RhcnRzV2l0aChcIi1cIikgPyBuZXh0QXJnIDogdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJhbGxlbEFyZyA9PT0gdW5kZWZpbmVkIHx8IHBhcmFsbGVsQXJnID09PSBmYWxzZSkgcmV0dXJuIDFcbiAgICBpZiAocGFyYWxsZWxBcmcgPT09IHRydWUpIHJldHVybiAyMFxuXG4gICAgY29uc3QgcGFyYWxsZWxDb3VudCA9IE51bWJlcihwYXJhbGxlbEFyZylcblxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihwYXJhbGxlbENvdW50KSB8fCBwYXJhbGxlbENvdW50IDwgMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAtLXBhcmFsbGVsIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHdoZW4gYSB2YWx1ZSBpcyBwcm92aWRlZDogJHtwYXJhbGxlbEFyZ31gKVxuICAgIH1cblxuICAgIHJldHVybiBwYXJhbGxlbENvdW50XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves how many slowest tests to report from the `VELOCIOUS_SLOW_TEST_COUNT`
|
|
3
|
+
* env value: defaults to 10 when unset; 0 (or an unparseable value) disables the
|
|
4
|
+
* report; otherwise the floored, non-negative integer.
|
|
5
|
+
* @param {string | undefined} rawEnvValue - Raw env value.
|
|
6
|
+
* @returns {number} - Number of slowest tests to report (0 disables).
|
|
7
|
+
*/
|
|
8
|
+
export function resolveSlowTestCount(rawEnvValue: string | undefined): number;
|
|
1
9
|
export default class VelociousCliCommandsTest extends BaseCommand {
|
|
2
10
|
execute(): Promise<void>;
|
|
3
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/environment-handlers/node/cli/commands/test.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/environment-handlers/node/cli/commands/test.js"],"names":[],"mappings":"AA0IA;;;;;;GAMG;AACH,kDAHW,MAAM,GAAG,SAAS,GAChB,MAAM,CAMlB;AA5ID;IACE,yBA6HC;CACF;wBAtIuB,iCAAiC"}
|
|
@@ -71,6 +71,20 @@ export default class VelociousCliCommandsTest extends BaseCommand {
|
|
|
71
71
|
console.error(picocolors.red("\nNo tests matched the provided filters"));
|
|
72
72
|
process.exit(1);
|
|
73
73
|
}
|
|
74
|
+
// Report the slowest tests so suite hotspots are visible every run. Defaults to
|
|
75
|
+
// the top 10; tune with VELOCIOUS_SLOW_TEST_COUNT (0 disables). Skipped for
|
|
76
|
+
// single-test runs where it would just be noise.
|
|
77
|
+
const slowTestCount = resolveSlowTestCount(process.env.VELOCIOUS_SLOW_TEST_COUNT);
|
|
78
|
+
if (slowTestCount > 0 && executedTests > 1) {
|
|
79
|
+
const slowestTests = testRunner.getSlowestTests(slowTestCount);
|
|
80
|
+
if (slowestTests.length > 0) {
|
|
81
|
+
console.log(picocolors.cyan(`\nSlowest ${slowestTests.length} tests:`));
|
|
82
|
+
for (const slowTest of slowestTests) {
|
|
83
|
+
const location = slowTest.filePath && slowTest.line ? ` (${slowTest.filePath}:${slowTest.line})` : "";
|
|
84
|
+
console.log(picocolors.cyan(` ${String(slowTest.durationMs).padStart(6)}ms ${slowTest.fullDescription}${location}`));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
74
88
|
if (testRunner.isFailed()) {
|
|
75
89
|
await testRunner.persistFailedTestConsoleOutputsToAssets();
|
|
76
90
|
const failedTests = testRunner.getFailedTestDetails();
|
|
@@ -99,4 +113,16 @@ export default class VelociousCliCommandsTest extends BaseCommand {
|
|
|
99
113
|
}
|
|
100
114
|
}
|
|
101
115
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy90ZXN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFdBQVcsTUFBTSxpQ0FBaUMsQ0FBQTtBQUN6RCxPQUFPLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxlQUFlLE1BQU0sMENBQTBDLENBQUE7QUFDdEUsT0FBTyxVQUFVLE1BQU0sb0NBQW9DLENBQUE7QUFDM0QsT0FBTyxpQkFBaUIsTUFBTSw0Q0FBNEMsQ0FBQTtBQUMxRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUUsWUFBWSxFQUFDLE1BQU0sMkNBQTJDLENBQUE7QUFFaEcsTUFBTSxDQUFDLE9BQU8sT0FBTyx3QkFBeUIsU0FBUSxXQUFXO0lBQy9ELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTlDLElBQUksU0FBUyxDQUFBO1FBQ2IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBRXRCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ25DLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFBO1lBQzFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ2xELENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtZQUM1QixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQTtZQUNqRCxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUM3QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM5QyxDQUFDO1FBRUQsTUFBTSxFQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNsSSxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFDLENBQUMsQ0FBQTtRQUN2RyxJQUFJLFNBQVMsR0FBRyxNQUFNLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUVyRCxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RELElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQTtZQUMvRSxDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1lBRWxHLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixXQUFXLE9BQU8sTUFBTSxLQUFLLFNBQVMsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDdkcsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQ2hDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdEMsV0FBVztZQUNYLFdBQVc7WUFDWCxTQUFTO1lBQ1QsV0FBVyxFQUFFLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRTtZQUNuRCxlQUFlLEVBQUUsd0JBQXdCLENBQUMsZUFBZSxDQUFDO1NBQzNELENBQUMsQ0FBQTtRQUNGLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQTtRQUV6QixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDMUQsSUFBSSxhQUFhO2dCQUFFLE9BQU07WUFDekIsYUFBYSxHQUFHLElBQUksQ0FBQTtZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsTUFBTSx5Q0FBeUMsQ0FBQyxDQUFBO1lBRTVFLElBQUksQ0FBQztnQkFDSCxNQUFNLFVBQVUsQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1lBQ2hELENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDOUQsQ0FBQztvQkFBUyxDQUFDO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQTtRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDN0QsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUvRCxNQUFNLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUUxQixJQUFJLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsU0FBUyxDQUFDLE1BQU0sVUFBVSxDQUFDLENBQUE7UUFDakcsQ0FBQztRQUVELE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBRXRCLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBRXhELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUMvQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7UUFDMUQsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUNwRCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUV0RSxJQUFJLENBQUMsYUFBYSxJQUFJLGNBQWMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLGFBQWEsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFBO1lBQ3hFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDMUIsTUFBTSxVQUFVLENBQUMsdUNBQXVDLEVBQUUsQ0FBQTtZQUMxRCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUVyRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7Z0JBRTlDLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUk7d0JBQzdDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksR0FBRzt3QkFDeEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtvQkFDTixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUMsZUFBZSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFFdkUsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFDMUUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsVUFBVSxDQUFDLGNBQWMsRUFBRSxxQkFBcUIsVUFBVSxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUE7WUFDdEosT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqQixDQUFDO2FBQU0sSUFBSSxVQUFVLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsVUFBVSxDQUFDLGNBQWMsRUFBRSxxQkFBcUIsVUFBVSxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUE7WUFDbkosT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsVUFBVSxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQTtZQUM5RyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBwaWNvY29sb3JzIGZyb20gXCJwaWNvY29sb3JzXCJcbmltcG9ydCBUZXN0RmlsZXNGaW5kZXIgZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1maWxlcy1maW5kZXIuanNcIlxuaW1wb3J0IFRlc3RSdW5uZXIgZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1ydW5uZXIuanNcIlxuaW1wb3J0IFRlc3RTdWl0ZVNwbGl0dGVyIGZyb20gXCIuLi8uLi8uLi8uLi90ZXN0aW5nL3Rlc3Qtc3VpdGUtc3BsaXR0ZXIuanNcIlxuaW1wb3J0IHtub3JtYWxpemVFeGFtcGxlUGF0dGVybnMsIHBhcnNlRmlsdGVyc30gZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1maWx0ZXItcGFyc2VyLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzQ2xpQ29tbWFuZHNUZXN0IGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLnNldEVudmlyb25tZW50KFwidGVzdFwiKVxuXG4gICAgbGV0IGRpcmVjdG9yeVxuICAgIGNvbnN0IGRpcmVjdG9yaWVzID0gW11cblxuICAgIGlmIChwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVIpIHtcbiAgICAgIGRpcmVjdG9yeSA9IHByb2Nlc3MuZW52LlZFTE9DSU9VU19URVNUX0RJUlxuICAgICAgZGlyZWN0b3JpZXMucHVzaChwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVIpXG4gICAgfSBlbHNlIHtcbiAgICAgIGRpcmVjdG9yeSA9IHRoaXMuZGlyZWN0b3J5KClcbiAgICAgIGRpcmVjdG9yaWVzLnB1c2goYCR7dGhpcy5kaXJlY3RvcnkoKX0vX190ZXN0c19fYClcbiAgICAgIGRpcmVjdG9yaWVzLnB1c2goYCR7dGhpcy5kaXJlY3RvcnkoKX0vdGVzdHNgKVxuICAgICAgZGlyZWN0b3JpZXMucHVzaChgJHt0aGlzLmRpcmVjdG9yeSgpfS9zcGVjYClcbiAgICB9XG5cbiAgICBjb25zdCB7aW5jbHVkZVRhZ3MsIGV4Y2x1ZGVUYWdzLCBleGFtcGxlUGF0dGVybnMsIGZpbHRlcmVkUHJvY2Vzc0FyZ3MsIGdyb3VwcywgZ3JvdXBOdW1iZXJ9ID0gcGFyc2VGaWx0ZXJzKHRoaXMucHJvY2Vzc0FyZ3MgfHwgW10pXG4gICAgY29uc3QgdGVzdEZpbGVzRmluZGVyID0gbmV3IFRlc3RGaWxlc0ZpbmRlcih7ZGlyZWN0b3J5LCBkaXJlY3RvcmllcywgcHJvY2Vzc0FyZ3M6IGZpbHRlcmVkUHJvY2Vzc0FyZ3N9KVxuICAgIGxldCB0ZXN0RmlsZXMgPSBhd2FpdCB0ZXN0RmlsZXNGaW5kZXIuZmluZFRlc3RGaWxlcygpXG5cbiAgICBpZiAoZ3JvdXBzICE9PSB1bmRlZmluZWQgfHwgZ3JvdXBOdW1iZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGdyb3VwcyA9PT0gdW5kZWZpbmVkIHx8IGdyb3VwTnVtYmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAtLWdyb3VwcyBhbmQgLS1ncm91cC1udW1iZXIgbXVzdCBiZSBwcm92aWRlZCB0b2dldGhlclwiKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBzcGxpdHRlciA9IG5ldyBUZXN0U3VpdGVTcGxpdHRlcih7Z3JvdXBzLCBncm91cE51bWJlciwgdGVzdEZpbGVzLCBiYXNlRGlyZWN0b3J5OiBkaXJlY3Rvcnl9KVxuXG4gICAgICB0ZXN0RmlsZXMgPSBzcGxpdHRlci5nZXRHcm91cEZpbGVzKClcbiAgICAgIGNvbnNvbGUubG9nKHBpY29jb2xvcnMuY3lhbihgUnVubmluZyBncm91cCAke2dyb3VwTnVtYmVyfSBvZiAke2dyb3Vwc30gKCR7dGVzdEZpbGVzLmxlbmd0aH0gZmlsZXMpYCkpXG4gICAgfVxuXG4gICAgY29uc3QgdGVzdFJ1bm5lciA9IG5ldyBUZXN0UnVubmVyKHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLFxuICAgICAgZXhjbHVkZVRhZ3MsXG4gICAgICBpbmNsdWRlVGFncyxcbiAgICAgIHRlc3RGaWxlcyxcbiAgICAgIGxpbmVGaWx0ZXJzOiB0ZXN0RmlsZXNGaW5kZXIuZ2V0TGluZUZpbHRlcnNCeUZpbGUoKSxcbiAgICAgIGV4YW1wbGVQYXR0ZXJuczogbm9ybWFsaXplRXhhbXBsZVBhdHRlcm5zKGV4YW1wbGVQYXR0ZXJucylcbiAgICB9KVxuICAgIGxldCBzaWduYWxIYW5kbGVkID0gZmFsc2VcblxuICAgIGNvbnN0IGhhbmRsZVNpZ25hbCA9IGFzeW5jICgvKiogQHR5cGUge3N0cmluZ30gKi8gc2lnbmFsKSA9PiB7XG4gICAgICBpZiAoc2lnbmFsSGFuZGxlZCkgcmV0dXJuXG4gICAgICBzaWduYWxIYW5kbGVkID0gdHJ1ZVxuICAgICAgY29uc29sZS5lcnJvcihgXFxuUmVjZWl2ZWQgJHtzaWduYWx9LCBydW5uaW5nIGFmdGVyQWxsIGhvb2tzIGJlZm9yZSBleGl0Li4uYClcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGVzdFJ1bm5lci5ydW5BZnRlckFsbHNGb3JBY3RpdmVTY29wZXMoKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB3aGlsZSBydW5uaW5nIGFmdGVyQWxsIGhvb2tzOlwiLCBlcnJvcilcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxMzApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzcy5vbmNlKFwiU0lHSU5UXCIsICgpID0+IHsgdm9pZCBoYW5kbGVTaWduYWwoXCJTSUdJTlRcIikgfSlcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+IHsgdm9pZCBoYW5kbGVTaWduYWwoXCJTSUdURVJNXCIpIH0pXG5cbiAgICBhd2FpdCB0ZXN0UnVubmVyLnByZXBhcmUoKVxuXG4gICAgaWYgKHRlc3RSdW5uZXIuZ2V0VGVzdHNDb3VudCgpID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGVzdFJ1bm5lci5nZXRUZXN0c0NvdW50KCl9IHRlc3RzIHdhcyBmb3VuZCBpbiAke3Rlc3RGaWxlcy5sZW5ndGh9IGZpbGUocylgKVxuICAgIH1cblxuICAgIGF3YWl0IHRlc3RSdW5uZXIucnVuKClcblxuICAgIGNvbnN0IGV4ZWN1dGVkVGVzdHMgPSB0ZXN0UnVubmVyLmdldEV4ZWN1dGVkVGVzdHNDb3VudCgpXG5cbiAgICBjb25zdCBsaW5lRmlsdGVycyA9IHRlc3RSdW5uZXIuZ2V0TGluZUZpbHRlcnMoKVxuICAgIGNvbnN0IGhhc0xpbmVGaWx0ZXJzID0gT2JqZWN0LmtleXMobGluZUZpbHRlcnMpLmxlbmd0aCA+IDBcbiAgICBjb25zdCBoYXNFeGFtcGxlRmlsdGVycyA9IGV4YW1wbGVQYXR0ZXJucy5sZW5ndGggPiAwXG4gICAgY29uc3QgaGFzVGFnRmlsdGVycyA9IGluY2x1ZGVUYWdzLmxlbmd0aCA+IDAgfHwgZXhjbHVkZVRhZ3MubGVuZ3RoID4gMFxuXG4gICAgaWYgKChoYXNUYWdGaWx0ZXJzIHx8IGhhc0xpbmVGaWx0ZXJzIHx8IGhhc0V4YW1wbGVGaWx0ZXJzKSAmJiBleGVjdXRlZFRlc3RzID09PSAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKFwiXFxuTm8gdGVzdHMgbWF0Y2hlZCB0aGUgcHJvdmlkZWQgZmlsdGVyc1wiKSlcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cblxuICAgIGlmICh0ZXN0UnVubmVyLmlzRmFpbGVkKCkpIHtcbiAgICAgIGF3YWl0IHRlc3RSdW5uZXIucGVyc2lzdEZhaWxlZFRlc3RDb25zb2xlT3V0cHV0c1RvQXNzZXRzKClcbiAgICAgIGNvbnN0IGZhaWxlZFRlc3RzID0gdGVzdFJ1bm5lci5nZXRGYWlsZWRUZXN0RGV0YWlscygpXG5cbiAgICAgIGlmIChmYWlsZWRUZXN0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKFwiXFxuRmFpbGVkIHRlc3RzOlwiKSlcblxuICAgICAgICBmb3IgKGNvbnN0IGZhaWxlZCBvZiBmYWlsZWRUZXN0cykge1xuICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gZmFpbGVkLmZpbGVQYXRoICYmIGZhaWxlZC5saW5lXG4gICAgICAgICAgICA/IGAgKCR7ZmFpbGVkLmZpbGVQYXRofToke2ZhaWxlZC5saW5lfSlgXG4gICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKGAtICR7ZmFpbGVkLmZ1bGxEZXNjcmlwdGlvbn0ke2xvY2F0aW9ufWApKVxuXG4gICAgICAgICAgaWYgKGZhaWxlZC5jb25zb2xlTG9nUGF0aCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihwaWNvY29sb3JzLnJlZChgICBDb25zb2xlIGxvZzogJHtmYWlsZWQuY29uc29sZUxvZ1BhdGh9YCkpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IocGljb2NvbG9ycy5yZWQoYFxcblRlc3QgcnVuIGZhaWxlZCB3aXRoICR7dGVzdFJ1bm5lci5nZXRGYWlsZWRUZXN0cygpfSBmYWlsZWQgdGVzdHMgYW5kICR7dGVzdFJ1bm5lci5nZXRTdWNjZXNzZnVsVGVzdHMoKX0gc3VjY2Vzc2Z1bGxgKSlcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH0gZWxzZSBpZiAodGVzdFJ1bm5lci5hcmVBbnlUZXN0c0ZvY3Vzc2VkKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IocGljb2NvbG9ycy5yZWQoYFxcbkZvY3Vzc2VkIHJ1biB3aXRoICR7dGVzdFJ1bm5lci5nZXRGYWlsZWRUZXN0cygpfSBmYWlsZWQgdGVzdHMgYW5kICR7dGVzdFJ1bm5lci5nZXRTdWNjZXNzZnVsVGVzdHMoKX0gc3VjY2Vzc2Z1bGxgKSlcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhwaWNvY29sb3JzLmdyZWVuKGBcXG5UZXN0IHJ1biBzdWNjZWVkZWQgd2l0aCAke3Rlc3RSdW5uZXIuZ2V0U3VjY2Vzc2Z1bFRlc3RzKCl9IHN1Y2Nlc3NmdWwgdGVzdHNgKSlcbiAgICAgIHByb2Nlc3MuZXhpdCgwKVxuICAgIH1cbiAgfVxufVxuIl19
|
|
116
|
+
/**
|
|
117
|
+
* Resolves how many slowest tests to report from the `VELOCIOUS_SLOW_TEST_COUNT`
|
|
118
|
+
* env value: defaults to 10 when unset; 0 (or an unparseable value) disables the
|
|
119
|
+
* report; otherwise the floored, non-negative integer.
|
|
120
|
+
* @param {string | undefined} rawEnvValue - Raw env value.
|
|
121
|
+
* @returns {number} - Number of slowest tests to report (0 disables).
|
|
122
|
+
*/
|
|
123
|
+
export function resolveSlowTestCount(rawEnvValue) {
|
|
124
|
+
if (rawEnvValue === undefined)
|
|
125
|
+
return 10;
|
|
126
|
+
return Math.max(0, Math.floor(Number(rawEnvValue)) || 0);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy90ZXN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFdBQVcsTUFBTSxpQ0FBaUMsQ0FBQTtBQUN6RCxPQUFPLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxlQUFlLE1BQU0sMENBQTBDLENBQUE7QUFDdEUsT0FBTyxVQUFVLE1BQU0sb0NBQW9DLENBQUE7QUFDM0QsT0FBTyxpQkFBaUIsTUFBTSw0Q0FBNEMsQ0FBQTtBQUMxRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUUsWUFBWSxFQUFDLE1BQU0sMkNBQTJDLENBQUE7QUFFaEcsTUFBTSxDQUFDLE9BQU8sT0FBTyx3QkFBeUIsU0FBUSxXQUFXO0lBQy9ELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTlDLElBQUksU0FBUyxDQUFBO1FBQ2IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBRXRCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ25DLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFBO1lBQzFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ2xELENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtZQUM1QixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQTtZQUNqRCxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUM3QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM5QyxDQUFDO1FBRUQsTUFBTSxFQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNsSSxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFDLENBQUMsQ0FBQTtRQUN2RyxJQUFJLFNBQVMsR0FBRyxNQUFNLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUVyRCxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RELElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQTtZQUMvRSxDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1lBRWxHLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixXQUFXLE9BQU8sTUFBTSxLQUFLLFNBQVMsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDdkcsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQ2hDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdEMsV0FBVztZQUNYLFdBQVc7WUFDWCxTQUFTO1lBQ1QsV0FBVyxFQUFFLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRTtZQUNuRCxlQUFlLEVBQUUsd0JBQXdCLENBQUMsZUFBZSxDQUFDO1NBQzNELENBQUMsQ0FBQTtRQUNGLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQTtRQUV6QixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDMUQsSUFBSSxhQUFhO2dCQUFFLE9BQU07WUFDekIsYUFBYSxHQUFHLElBQUksQ0FBQTtZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsTUFBTSx5Q0FBeUMsQ0FBQyxDQUFBO1lBRTVFLElBQUksQ0FBQztnQkFDSCxNQUFNLFVBQVUsQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1lBQ2hELENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDOUQsQ0FBQztvQkFBUyxDQUFDO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQTtRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDN0QsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUvRCxNQUFNLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUUxQixJQUFJLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsU0FBUyxDQUFDLE1BQU0sVUFBVSxDQUFDLENBQUE7UUFDakcsQ0FBQztRQUVELE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBRXRCLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBRXhELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUMvQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7UUFDMUQsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUNwRCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUV0RSxJQUFJLENBQUMsYUFBYSxJQUFJLGNBQWMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLGFBQWEsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFBO1lBQ3hFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztRQUVELGdGQUFnRjtRQUNoRiw0RUFBNEU7UUFDNUUsaURBQWlEO1FBQ2pELE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQTtRQUVqRixJQUFJLGFBQWEsR0FBRyxDQUFDLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUE7WUFFOUQsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxZQUFZLENBQUMsTUFBTSxTQUFTLENBQUMsQ0FBQyxDQUFBO2dCQUV2RSxLQUFLLE1BQU0sUUFBUSxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNwQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtvQkFFckcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLGVBQWUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBQ3hILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDMUIsTUFBTSxVQUFVLENBQUMsdUNBQXVDLEVBQUUsQ0FBQTtZQUMxRCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUVyRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7Z0JBRTlDLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUk7d0JBQzdDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksR0FBRzt3QkFDeEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtvQkFDTixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUMsZUFBZSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFFdkUsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFDMUUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsVUFBVSxDQUFDLGNBQWMsRUFBRSxxQkFBcUIsVUFBVSxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUE7WUFDdEosT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqQixDQUFDO2FBQU0sSUFBSSxVQUFVLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsVUFBVSxDQUFDLGNBQWMsRUFBRSxxQkFBcUIsVUFBVSxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUE7WUFDbkosT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsVUFBVSxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQTtZQUM5RyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsV0FBVztJQUM5QyxJQUFJLFdBQVcsS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFFeEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBwaWNvY29sb3JzIGZyb20gXCJwaWNvY29sb3JzXCJcbmltcG9ydCBUZXN0RmlsZXNGaW5kZXIgZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1maWxlcy1maW5kZXIuanNcIlxuaW1wb3J0IFRlc3RSdW5uZXIgZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1ydW5uZXIuanNcIlxuaW1wb3J0IFRlc3RTdWl0ZVNwbGl0dGVyIGZyb20gXCIuLi8uLi8uLi8uLi90ZXN0aW5nL3Rlc3Qtc3VpdGUtc3BsaXR0ZXIuanNcIlxuaW1wb3J0IHtub3JtYWxpemVFeGFtcGxlUGF0dGVybnMsIHBhcnNlRmlsdGVyc30gZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1maWx0ZXItcGFyc2VyLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzQ2xpQ29tbWFuZHNUZXN0IGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLnNldEVudmlyb25tZW50KFwidGVzdFwiKVxuXG4gICAgbGV0IGRpcmVjdG9yeVxuICAgIGNvbnN0IGRpcmVjdG9yaWVzID0gW11cblxuICAgIGlmIChwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVIpIHtcbiAgICAgIGRpcmVjdG9yeSA9IHByb2Nlc3MuZW52LlZFTE9DSU9VU19URVNUX0RJUlxuICAgICAgZGlyZWN0b3JpZXMucHVzaChwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVIpXG4gICAgfSBlbHNlIHtcbiAgICAgIGRpcmVjdG9yeSA9IHRoaXMuZGlyZWN0b3J5KClcbiAgICAgIGRpcmVjdG9yaWVzLnB1c2goYCR7dGhpcy5kaXJlY3RvcnkoKX0vX190ZXN0c19fYClcbiAgICAgIGRpcmVjdG9yaWVzLnB1c2goYCR7dGhpcy5kaXJlY3RvcnkoKX0vdGVzdHNgKVxuICAgICAgZGlyZWN0b3JpZXMucHVzaChgJHt0aGlzLmRpcmVjdG9yeSgpfS9zcGVjYClcbiAgICB9XG5cbiAgICBjb25zdCB7aW5jbHVkZVRhZ3MsIGV4Y2x1ZGVUYWdzLCBleGFtcGxlUGF0dGVybnMsIGZpbHRlcmVkUHJvY2Vzc0FyZ3MsIGdyb3VwcywgZ3JvdXBOdW1iZXJ9ID0gcGFyc2VGaWx0ZXJzKHRoaXMucHJvY2Vzc0FyZ3MgfHwgW10pXG4gICAgY29uc3QgdGVzdEZpbGVzRmluZGVyID0gbmV3IFRlc3RGaWxlc0ZpbmRlcih7ZGlyZWN0b3J5LCBkaXJlY3RvcmllcywgcHJvY2Vzc0FyZ3M6IGZpbHRlcmVkUHJvY2Vzc0FyZ3N9KVxuICAgIGxldCB0ZXN0RmlsZXMgPSBhd2FpdCB0ZXN0RmlsZXNGaW5kZXIuZmluZFRlc3RGaWxlcygpXG5cbiAgICBpZiAoZ3JvdXBzICE9PSB1bmRlZmluZWQgfHwgZ3JvdXBOdW1iZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGdyb3VwcyA9PT0gdW5kZWZpbmVkIHx8IGdyb3VwTnVtYmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAtLWdyb3VwcyBhbmQgLS1ncm91cC1udW1iZXIgbXVzdCBiZSBwcm92aWRlZCB0b2dldGhlclwiKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBzcGxpdHRlciA9IG5ldyBUZXN0U3VpdGVTcGxpdHRlcih7Z3JvdXBzLCBncm91cE51bWJlciwgdGVzdEZpbGVzLCBiYXNlRGlyZWN0b3J5OiBkaXJlY3Rvcnl9KVxuXG4gICAgICB0ZXN0RmlsZXMgPSBzcGxpdHRlci5nZXRHcm91cEZpbGVzKClcbiAgICAgIGNvbnNvbGUubG9nKHBpY29jb2xvcnMuY3lhbihgUnVubmluZyBncm91cCAke2dyb3VwTnVtYmVyfSBvZiAke2dyb3Vwc30gKCR7dGVzdEZpbGVzLmxlbmd0aH0gZmlsZXMpYCkpXG4gICAgfVxuXG4gICAgY29uc3QgdGVzdFJ1bm5lciA9IG5ldyBUZXN0UnVubmVyKHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLFxuICAgICAgZXhjbHVkZVRhZ3MsXG4gICAgICBpbmNsdWRlVGFncyxcbiAgICAgIHRlc3RGaWxlcyxcbiAgICAgIGxpbmVGaWx0ZXJzOiB0ZXN0RmlsZXNGaW5kZXIuZ2V0TGluZUZpbHRlcnNCeUZpbGUoKSxcbiAgICAgIGV4YW1wbGVQYXR0ZXJuczogbm9ybWFsaXplRXhhbXBsZVBhdHRlcm5zKGV4YW1wbGVQYXR0ZXJucylcbiAgICB9KVxuICAgIGxldCBzaWduYWxIYW5kbGVkID0gZmFsc2VcblxuICAgIGNvbnN0IGhhbmRsZVNpZ25hbCA9IGFzeW5jICgvKiogQHR5cGUge3N0cmluZ30gKi8gc2lnbmFsKSA9PiB7XG4gICAgICBpZiAoc2lnbmFsSGFuZGxlZCkgcmV0dXJuXG4gICAgICBzaWduYWxIYW5kbGVkID0gdHJ1ZVxuICAgICAgY29uc29sZS5lcnJvcihgXFxuUmVjZWl2ZWQgJHtzaWduYWx9LCBydW5uaW5nIGFmdGVyQWxsIGhvb2tzIGJlZm9yZSBleGl0Li4uYClcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGVzdFJ1bm5lci5ydW5BZnRlckFsbHNGb3JBY3RpdmVTY29wZXMoKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB3aGlsZSBydW5uaW5nIGFmdGVyQWxsIGhvb2tzOlwiLCBlcnJvcilcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxMzApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzcy5vbmNlKFwiU0lHSU5UXCIsICgpID0+IHsgdm9pZCBoYW5kbGVTaWduYWwoXCJTSUdJTlRcIikgfSlcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+IHsgdm9pZCBoYW5kbGVTaWduYWwoXCJTSUdURVJNXCIpIH0pXG5cbiAgICBhd2FpdCB0ZXN0UnVubmVyLnByZXBhcmUoKVxuXG4gICAgaWYgKHRlc3RSdW5uZXIuZ2V0VGVzdHNDb3VudCgpID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGVzdFJ1bm5lci5nZXRUZXN0c0NvdW50KCl9IHRlc3RzIHdhcyBmb3VuZCBpbiAke3Rlc3RGaWxlcy5sZW5ndGh9IGZpbGUocylgKVxuICAgIH1cblxuICAgIGF3YWl0IHRlc3RSdW5uZXIucnVuKClcblxuICAgIGNvbnN0IGV4ZWN1dGVkVGVzdHMgPSB0ZXN0UnVubmVyLmdldEV4ZWN1dGVkVGVzdHNDb3VudCgpXG5cbiAgICBjb25zdCBsaW5lRmlsdGVycyA9IHRlc3RSdW5uZXIuZ2V0TGluZUZpbHRlcnMoKVxuICAgIGNvbnN0IGhhc0xpbmVGaWx0ZXJzID0gT2JqZWN0LmtleXMobGluZUZpbHRlcnMpLmxlbmd0aCA+IDBcbiAgICBjb25zdCBoYXNFeGFtcGxlRmlsdGVycyA9IGV4YW1wbGVQYXR0ZXJucy5sZW5ndGggPiAwXG4gICAgY29uc3QgaGFzVGFnRmlsdGVycyA9IGluY2x1ZGVUYWdzLmxlbmd0aCA+IDAgfHwgZXhjbHVkZVRhZ3MubGVuZ3RoID4gMFxuXG4gICAgaWYgKChoYXNUYWdGaWx0ZXJzIHx8IGhhc0xpbmVGaWx0ZXJzIHx8IGhhc0V4YW1wbGVGaWx0ZXJzKSAmJiBleGVjdXRlZFRlc3RzID09PSAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKFwiXFxuTm8gdGVzdHMgbWF0Y2hlZCB0aGUgcHJvdmlkZWQgZmlsdGVyc1wiKSlcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cblxuICAgIC8vIFJlcG9ydCB0aGUgc2xvd2VzdCB0ZXN0cyBzbyBzdWl0ZSBob3RzcG90cyBhcmUgdmlzaWJsZSBldmVyeSBydW4uIERlZmF1bHRzIHRvXG4gICAgLy8gdGhlIHRvcCAxMDsgdHVuZSB3aXRoIFZFTE9DSU9VU19TTE9XX1RFU1RfQ09VTlQgKDAgZGlzYWJsZXMpLiBTa2lwcGVkIGZvclxuICAgIC8vIHNpbmdsZS10ZXN0IHJ1bnMgd2hlcmUgaXQgd291bGQganVzdCBiZSBub2lzZS5cbiAgICBjb25zdCBzbG93VGVzdENvdW50ID0gcmVzb2x2ZVNsb3dUZXN0Q291bnQocHJvY2Vzcy5lbnYuVkVMT0NJT1VTX1NMT1dfVEVTVF9DT1VOVClcblxuICAgIGlmIChzbG93VGVzdENvdW50ID4gMCAmJiBleGVjdXRlZFRlc3RzID4gMSkge1xuICAgICAgY29uc3Qgc2xvd2VzdFRlc3RzID0gdGVzdFJ1bm5lci5nZXRTbG93ZXN0VGVzdHMoc2xvd1Rlc3RDb3VudClcblxuICAgICAgaWYgKHNsb3dlc3RUZXN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKHBpY29jb2xvcnMuY3lhbihgXFxuU2xvd2VzdCAke3Nsb3dlc3RUZXN0cy5sZW5ndGh9IHRlc3RzOmApKVxuXG4gICAgICAgIGZvciAoY29uc3Qgc2xvd1Rlc3Qgb2Ygc2xvd2VzdFRlc3RzKSB7XG4gICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBzbG93VGVzdC5maWxlUGF0aCAmJiBzbG93VGVzdC5saW5lID8gYCAoJHtzbG93VGVzdC5maWxlUGF0aH06JHtzbG93VGVzdC5saW5lfSlgIDogXCJcIlxuXG4gICAgICAgICAgY29uc29sZS5sb2cocGljb2NvbG9ycy5jeWFuKGAgICR7U3RyaW5nKHNsb3dUZXN0LmR1cmF0aW9uTXMpLnBhZFN0YXJ0KDYpfW1zICAke3Nsb3dUZXN0LmZ1bGxEZXNjcmlwdGlvbn0ke2xvY2F0aW9ufWApKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRlc3RSdW5uZXIuaXNGYWlsZWQoKSkge1xuICAgICAgYXdhaXQgdGVzdFJ1bm5lci5wZXJzaXN0RmFpbGVkVGVzdENvbnNvbGVPdXRwdXRzVG9Bc3NldHMoKVxuICAgICAgY29uc3QgZmFpbGVkVGVzdHMgPSB0ZXN0UnVubmVyLmdldEZhaWxlZFRlc3REZXRhaWxzKClcblxuICAgICAgaWYgKGZhaWxlZFRlc3RzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IocGljb2NvbG9ycy5yZWQoXCJcXG5GYWlsZWQgdGVzdHM6XCIpKVxuXG4gICAgICAgIGZvciAoY29uc3QgZmFpbGVkIG9mIGZhaWxlZFRlc3RzKSB7XG4gICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBmYWlsZWQuZmlsZVBhdGggJiYgZmFpbGVkLmxpbmVcbiAgICAgICAgICAgID8gYCAoJHtmYWlsZWQuZmlsZVBhdGh9OiR7ZmFpbGVkLmxpbmV9KWBcbiAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocGljb2NvbG9ycy5yZWQoYC0gJHtmYWlsZWQuZnVsbERlc2NyaXB0aW9ufSR7bG9jYXRpb259YCkpXG5cbiAgICAgICAgICBpZiAoZmFpbGVkLmNvbnNvbGVMb2dQYXRoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKGAgIENvbnNvbGUgbG9nOiAke2ZhaWxlZC5jb25zb2xlTG9nUGF0aH1gKSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc29sZS5lcnJvcihwaWNvY29sb3JzLnJlZChgXFxuVGVzdCBydW4gZmFpbGVkIHdpdGggJHt0ZXN0UnVubmVyLmdldEZhaWxlZFRlc3RzKCl9IGZhaWxlZCB0ZXN0cyBhbmQgJHt0ZXN0UnVubmVyLmdldFN1Y2Nlc3NmdWxUZXN0cygpfSBzdWNjZXNzZnVsbGApKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfSBlbHNlIGlmICh0ZXN0UnVubmVyLmFyZUFueVRlc3RzRm9jdXNzZWQoKSkge1xuICAgICAgY29uc29sZS5lcnJvcihwaWNvY29sb3JzLnJlZChgXFxuRm9jdXNzZWQgcnVuIHdpdGggJHt0ZXN0UnVubmVyLmdldEZhaWxlZFRlc3RzKCl9IGZhaWxlZCB0ZXN0cyBhbmQgJHt0ZXN0UnVubmVyLmdldFN1Y2Nlc3NmdWxUZXN0cygpfSBzdWNjZXNzZnVsbGApKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKHBpY29jb2xvcnMuZ3JlZW4oYFxcblRlc3QgcnVuIHN1Y2NlZWRlZCB3aXRoICR7dGVzdFJ1bm5lci5nZXRTdWNjZXNzZnVsVGVzdHMoKX0gc3VjY2Vzc2Z1bCB0ZXN0c2ApKVxuICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgaG93IG1hbnkgc2xvd2VzdCB0ZXN0cyB0byByZXBvcnQgZnJvbSB0aGUgYFZFTE9DSU9VU19TTE9XX1RFU1RfQ09VTlRgXG4gKiBlbnYgdmFsdWU6IGRlZmF1bHRzIHRvIDEwIHdoZW4gdW5zZXQ7IDAgKG9yIGFuIHVucGFyc2VhYmxlIHZhbHVlKSBkaXNhYmxlcyB0aGVcbiAqIHJlcG9ydDsgb3RoZXJ3aXNlIHRoZSBmbG9vcmVkLCBub24tbmVnYXRpdmUgaW50ZWdlci5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSByYXdFbnZWYWx1ZSAtIFJhdyBlbnYgdmFsdWUuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIE51bWJlciBvZiBzbG93ZXN0IHRlc3RzIHRvIHJlcG9ydCAoMCBkaXNhYmxlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlU2xvd1Rlc3RDb3VudChyYXdFbnZWYWx1ZSkge1xuICBpZiAocmF3RW52VmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDEwXG5cbiAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGguZmxvb3IoTnVtYmVyKHJhd0VudlZhbHVlKSkgfHwgMClcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-iterator.d.ts","sourceRoot":"","sources":["../../../src/tenants/tenant-iterator.js"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH;IAmFE;;;;OAIG;IACH,2BAHW,OAAC,GACC,MAAM,
|
|
1
|
+
{"version":3,"file":"tenant-iterator.d.ts","sourceRoot":"","sources":["../../../src/tenants/tenant-iterator.js"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH;IAmFE;;;;OAIG;IACH,2BAHW,OAAC,GACC,MAAM,CAiBlB;IAtGD;;;OAGG;IACH,0DAFW;QAAC,aAAa,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAC,EAM5G;IAHC,qDAAkC;IAClC,mBAA4B;IAC5B,sBAAkC;IAGpC;;;;;OAKG;IACH,aAJW,KAAK,CAAC,OAAC,CAAC,YACR,CAAS,IAAiG,EAAjG;QAAC,qBAAqB,EAAE,OAAO,2BAA2B,EAAE,yBAAyB,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,KAAI,OAAO,CAAC,IAAI,CAAC,GACzH,OAAO,CAAC,MAAM,CAAC,CAgD3B;IAED;;;;OAIG;IACH,wCAHW;QAAC,QAAQ,EAAE,CAAS,IAAiG,EAAjG;YAAC,qBAAqB,EAAE,OAAO,2BAA2B,EAAE,yBAAyB,CAAC;YAAC,MAAM,EAAE,OAAC,CAAA;SAAC,KAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,EAAE,OAAC,CAAA;KAAC,GAChJ,OAAO,CAAC,IAAI,CAAC,CAazB;CAuBF"}
|
|
@@ -84,14 +84,16 @@ export default class TenantIterator {
|
|
|
84
84
|
static tenantLabel(tenant) {
|
|
85
85
|
if (tenant && typeof tenant === "object") {
|
|
86
86
|
const tenantObject = /** @type {{id?: ?, name?: ?, slug?: ?}} */ (tenant);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
for (const attributeName of /** @type {Array<"slug" | "name" | "id">} */ (["slug", "name", "id"])) {
|
|
88
|
+
const attributeOrAccessor = tenantObject[attributeName];
|
|
89
|
+
const attributeValue = typeof attributeOrAccessor === "function"
|
|
90
|
+
? attributeOrAccessor.call(tenant)
|
|
91
|
+
: attributeOrAccessor;
|
|
92
|
+
if (attributeValue)
|
|
93
|
+
return String(attributeValue);
|
|
94
|
+
}
|
|
93
95
|
}
|
|
94
96
|
return JSON.stringify(tenant);
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWl0ZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlbmFudHMvdGVuYW50LWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBYztJQUNqQzs7O09BR0c7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLEdBQUcsQ0FBQyxFQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO0lBQ3BDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVE7UUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7WUFDbEQsQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQTtRQUN2QixDQUFDO1FBRUQsK0NBQStDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNuQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFBO1FBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFaEUsS0FBSyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsV0FBVyxHQUFHLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDdkIsT0FBTyxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNwQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7b0JBRW5DLFdBQVcsRUFBRSxDQUFBO29CQUViLElBQUksQ0FBQzt3QkFDSCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO29CQUNsRCxDQUFDO29CQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7d0JBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDWixLQUFLLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ2hFLE1BQU07eUJBQ1AsQ0FBQyxDQUFBO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNQLENBQUM7UUFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFMUIsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFFM0csTUFBTSxJQUFJLGNBQWMsQ0FDdEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUN4QyxpREFBaUQsa0JBQWtCLEVBQUUsQ0FDdEUsQ0FBQTtRQUNILENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUE7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDO1FBQ3hDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixJQUFJLENBQUMsVUFBVSw0QkFBNEIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDaEksQ0FBQztZQUVELE1BQU0sUUFBUSxDQUFDO2dCQUNiLHFCQUFxQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDdkYsTUFBTTthQUNQLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDdkIsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMsTUFBTSxZQUFZLEdBQUcsMkNBQTJDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUV6RSxJQUFJLFlBQVksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2RCxJQUFJLFlBQVksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2RCxJQUFJLFlBQVksQ0FBQyxFQUFFO2dCQUFFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNyRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIFJ1bnMgYSBjYWxsYmFjayBvbmNlIHdpdGhpbiBlYWNoIHRlbmFudCdzIGNvbnRleHQgZm9yIGEgdGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIsXG4gKiBvcHRpb25hbGx5IHNldmVyYWwgdGVuYW50cyBhdCBhIHRpbWUuIEVhY2ggdGVuYW50IGlzIGVudGVyZWQgd2l0aCBgcnVuV2l0aFRlbmFudGAsIGFuZCBhXG4gKiB0ZW5hbnQgd2hvc2UgZGF0YWJhc2UgaWRlbnRpZmllciBpcyBpbmFjdGl2ZSB0aHJvd3MgcmF0aGVyIHRoYW4gcnVubmluZyB0aGUgY2FsbGJhY2tcbiAqIGFnYWluc3QgdGhlIHdyb25nIGNvbm5lY3Rpb24uIFdoZW4gaXRlcmF0aW5nIGluIHBhcmFsbGVsIHRoZSBwZXItdGVuYW50IGZhaWx1cmVzIGFyZVxuICogY29sbGVjdGVkIGFuZCByZXRocm93biB0b2dldGhlciBhcyBhbiBgQWdncmVnYXRlRXJyb3JgIHNvIG9uZSBiYWQgdGVuYW50IGRvZXMgbm90IGhpZGUgdGhlXG4gKiBvdGhlcnMuIFRoaXMgaXMgdGhlIGl0ZXJhdGlvbiBlbmdpbmUgc2hhcmVkIGJ5IHRoZSBgZGI6dGVuYW50czoqYCBDTEkgY29tbWFuZHMgYW5kIHRoZVxuICogcnVudGltZSB0ZW5hbnQgZmHDp2FkZTsgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcHJvZHVjaW5nIHRoZSB0ZW5hbnQgbGlzdC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVuYW50SXRlcmF0b3Ige1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpdGVyYXRvciBib3VuZCB0byBhIGNvbmZpZ3VyYXRpb24gYW5kIHRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge3tjb25maWd1cmF0aW9uOiBpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQsIGlkZW50aWZpZXI6IHN0cmluZywgcGFyYWxsZWxDb3VudD86IG51bWJlcn19IGFyZ3MgLSBUZW5hbnQgY29uZmlndXJhdGlvbiwgZGF0YWJhc2UgaWRlbnRpZmllciwgYW5kIGNvbmN1cnJlbmN5IGxpbWl0LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGlkZW50aWZpZXIsIHBhcmFsbGVsQ291bnQgPSAxfSkge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyXG4gICAgdGhpcy5wYXJhbGxlbENvdW50ID0gcGFyYWxsZWxDb3VudFxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYGNhbGxiYWNrYCB3aXRoaW4gZWFjaCB0ZW5hbnQncyBjb250ZXh0IGFuZCByZXR1cm5zIGhvdyBtYW55IHRlbmFudHMgd2VyZSBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSB7QXJyYXk8Pz59IHRlbmFudHMgLSBUZW5hbnQgZGVzY3JpcHRvcnMgdG8gZW50ZXIgYW5kIHByb2Nlc3MuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oe2RhdGFiYXNlQ29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5EYXRhYmFzZUNvbmZpZ3VyYXRpb25UeXBlLCB0ZW5hbnQ6ID99KSA6IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gUGVyLXRlbmFudCBvcGVyYXRpb24gcmVjZWl2aW5nIHRoZSBhY3RpdmUgZGF0YWJhc2UgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gLSBOdW1iZXIgb2YgcHJvY2Vzc2VkIHRlbmFudHMuXG4gICAqL1xuICBhc3luYyBydW4odGVuYW50cywgY2FsbGJhY2spIHtcbiAgICBpZiAodGhpcy5wYXJhbGxlbENvdW50IDw9IDEpIHtcbiAgICAgIGZvciAoY29uc3QgdGVuYW50IG9mIHRlbmFudHMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5ydW5UZW5hbnRDYWxsYmFjayh7Y2FsbGJhY2ssIHRlbmFudH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0ZW5hbnRzLmxlbmd0aFxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7QXJyYXk8e2Vycm9yOiBFcnJvciwgdGVuYW50OiA/fT59ICovXG4gICAgY29uc3QgZmFpbHVyZXMgPSBbXVxuICAgIGNvbnN0IHdvcmtlcnMgPSBbXVxuICAgIGxldCB0ZW5hbnRJbmRleCA9IDBcbiAgICBjb25zdCB3b3JrZXJDb3VudCA9IE1hdGgubWluKHRoaXMucGFyYWxsZWxDb3VudCwgdGVuYW50cy5sZW5ndGgpXG5cbiAgICBmb3IgKGxldCB3b3JrZXJJbmRleCA9IDA7IHdvcmtlckluZGV4IDwgd29ya2VyQ291bnQ7IHdvcmtlckluZGV4KyspIHtcbiAgICAgIHdvcmtlcnMucHVzaCgoYXN5bmMgKCkgPT4ge1xuICAgICAgICB3aGlsZSAodGVuYW50SW5kZXggPCB0ZW5hbnRzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IHRlbmFudCA9IHRlbmFudHNbdGVuYW50SW5kZXhdXG5cbiAgICAgICAgICB0ZW5hbnRJbmRleCsrXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5ydW5UZW5hbnRDYWxsYmFjayh7Y2FsbGJhY2ssIHRlbmFudH0pXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgICBlcnJvcjogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogbmV3IEVycm9yKFN0cmluZyhlcnJvcikpLFxuICAgICAgICAgICAgICB0ZW5hbnRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSgpKVxuICAgIH1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHdvcmtlcnMpXG5cbiAgICBpZiAoZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmFpbGVkVGVuYW50TGFiZWxzID0gZmFpbHVyZXMubWFwKChmYWlsdXJlKSA9PiBUZW5hbnRJdGVyYXRvci50ZW5hbnRMYWJlbChmYWlsdXJlLnRlbmFudCkpLmpvaW4oXCIsIFwiKVxuXG4gICAgICB0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IoXG4gICAgICAgIGZhaWx1cmVzLm1hcCgoZmFpbHVyZSkgPT4gZmFpbHVyZS5lcnJvciksXG4gICAgICAgIGBGYWlsZWQgdGVuYW50IGRhdGFiYXNlIGNvbW1hbmQgZm9yIHRlbmFudChzKTogJHtmYWlsZWRUZW5hbnRMYWJlbHN9YFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiB0ZW5hbnRzLmxlbmd0aFxuICB9XG5cbiAgLyoqXG4gICAqIEVudGVycyBvbmUgdGVuYW50J3MgY29udGV4dCBhbmQgcnVucyB0aGUgY2FsbGJhY2ssIGFzc2VydGluZyB0aGUgZGF0YWJhc2UgaXMgYWN0aXZlIGZpcnN0LlxuICAgKiBAcGFyYW0ge3tjYWxsYmFjazogZnVuY3Rpb24oe2RhdGFiYXNlQ29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5EYXRhYmFzZUNvbmZpZ3VyYXRpb25UeXBlLCB0ZW5hbnQ6ID99KSA6IFByb21pc2U8dm9pZD4sIHRlbmFudDogP319IGFyZ3MgLSBUZW5hbnQgZGVzY3JpcHRvciBhbmQgb3BlcmF0aW9uIHRvIHJ1biBpbiBpdHMgY29udGV4dC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBydW5UZW5hbnRDYWxsYmFjayh7Y2FsbGJhY2ssIHRlbmFudH0pIHtcbiAgICBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24ucnVuV2l0aFRlbmFudCh0ZW5hbnQsIGFzeW5jICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uLmlzRGF0YWJhc2VJZGVudGlmaWVyQWN0aXZlKHRoaXMuaWRlbnRpZmllcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllciAke3RoaXMuaWRlbnRpZmllcn0gaXMgaW5hY3RpdmUgZm9yIHRlbmFudDogJHtUZW5hbnRJdGVyYXRvci50ZW5hbnRMYWJlbCh0ZW5hbnQpfWApXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGNhbGxiYWNrKHtcbiAgICAgICAgZGF0YWJhc2VDb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZURhdGFiYXNlQ29uZmlndXJhdGlvbih0aGlzLmlkZW50aWZpZXIpLFxuICAgICAgICB0ZW5hbnRcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgYSB0ZW5hbnQgZm9yIHVzZSBpbiBlcnJvciBtZXNzYWdlcy5cbiAgICogQHBhcmFtIHs/fSB0ZW5hbnQgLSBUZW5hbnQgZGVzY3JpcHRvciB0byBpZGVudGlmeSBpbiBhbiBlcnJvci5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBIdW1hbi1yZWFkYWJsZSB0ZW5hbnQgbGFiZWwuXG4gICAqL1xuICBzdGF0aWMgdGVuYW50TGFiZWwodGVuYW50KSB7XG4gICAgaWYgKHRlbmFudCAmJiB0eXBlb2YgdGVuYW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBjb25zdCB0ZW5hbnRPYmplY3QgPSAvKiogQHR5cGUge3tpZD86ID8sIG5hbWU/OiA/LCBzbHVnPzogP319ICovICh0ZW5hbnQpXG5cbiAgICAgIGlmICh0ZW5hbnRPYmplY3Quc2x1ZykgcmV0dXJuIFN0cmluZyh0ZW5hbnRPYmplY3Quc2x1ZylcbiAgICAgIGlmICh0ZW5hbnRPYmplY3QubmFtZSkgcmV0dXJuIFN0cmluZyh0ZW5hbnRPYmplY3QubmFtZSlcbiAgICAgIGlmICh0ZW5hbnRPYmplY3QuaWQpIHJldHVybiBTdHJpbmcodGVuYW50T2JqZWN0LmlkKVxuICAgIH1cblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0ZW5hbnQpXG4gIH1cbn1cbiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWl0ZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlbmFudHMvdGVuYW50LWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBYztJQUNqQzs7O09BR0c7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLEdBQUcsQ0FBQyxFQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO0lBQ3BDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVE7UUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7WUFDbEQsQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQTtRQUN2QixDQUFDO1FBRUQsK0NBQStDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNuQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFBO1FBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFaEUsS0FBSyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsV0FBVyxHQUFHLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFB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Q0FBQTtnQkFFdkIsSUFBSSxjQUFjO29CQUFFLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1lBQ25ELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIFJ1bnMgYSBjYWxsYmFjayBvbmNlIHdpdGhpbiBlYWNoIHRlbmFudCdzIGNvbnRleHQgZm9yIGEgdGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIsXG4gKiBvcHRpb25hbGx5IHNldmVyYWwgdGVuYW50cyBhdCBhIHRpbWUuIEVhY2ggdGVuYW50IGlzIGVudGVyZWQgd2l0aCBgcnVuV2l0aFRlbmFudGAsIGFuZCBhXG4gKiB0ZW5hbnQgd2hvc2UgZGF0YWJhc2UgaWRlbnRpZmllciBpcyBpbmFjdGl2ZSB0aHJvd3MgcmF0aGVyIHRoYW4gcnVubmluZyB0aGUgY2FsbGJhY2tcbiAqIGFnYWluc3QgdGhlIHdyb25nIGNvbm5lY3Rpb24uIFdoZW4gaXRlcmF0aW5nIGluIHBhcmFsbGVsIHRoZSBwZXItdGVuYW50IGZhaWx1cmVzIGFyZVxuICogY29sbGVjdGVkIGFuZCByZXRocm93biB0b2dldGhlciBhcyBhbiBgQWdncmVnYXRlRXJyb3JgIHNvIG9uZSBiYWQgdGVuYW50IGRvZXMgbm90IGhpZGUgdGhlXG4gKiBvdGhlcnMuIFRoaXMgaXMgdGhlIGl0ZXJhdGlvbiBlbmdpbmUgc2hhcmVkIGJ5IHRoZSBgZGI6dGVuYW50czoqYCBDTEkgY29tbWFuZHMgYW5kIHRoZVxuICogcnVudGltZSB0ZW5hbnQgZmHDp2FkZTsgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcHJvZHVjaW5nIHRoZSB0ZW5hbnQgbGlzdC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVuYW50SXRlcmF0b3Ige1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpdGVyYXRvciBib3VuZCB0byBhIGNvbmZpZ3VyYXRpb24gYW5kIHRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge3tjb25maWd1cmF0aW9uOiBpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQsIGlkZW50aWZpZXI6IHN0cmluZywgcGFyYWxsZWxDb3VudD86IG51bWJlcn19IGFyZ3MgLSBUZW5hbnQgY29uZmlndXJhdGlvbiwgZGF0YWJhc2UgaWRlbnRpZmllciwgYW5kIGNvbmN1cnJlbmN5IGxpbWl0LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGlkZW50aWZpZXIsIHBhcmFsbGVsQ291bnQgPSAxfSkge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyXG4gICAgdGhpcy5wYXJhbGxlbENvdW50ID0gcGFyYWxsZWxDb3VudFxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYGNhbGxiYWNrYCB3aXRoaW4gZWFjaCB0ZW5hbnQncyBjb250ZXh0IGFuZCByZXR1cm5zIGhvdyBtYW55IHRlbmFudHMgd2VyZSBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSB7QXJyYXk8Pz59IHRlbmFudHMgLSBUZW5hbnQgZGVzY3JpcHRvcnMgdG8gZW50ZXIgYW5kIHByb2Nlc3MuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oe2RhdGFiYXNlQ29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5EYXRhYmFzZUNvbmZpZ3VyYXRpb25UeXBlLCB0ZW5hbnQ6ID99KSA6IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gUGVyLXRlbmFudCBvcGVyYXRpb24gcmVjZWl2aW5nIHRoZSBhY3RpdmUgZGF0YWJhc2UgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gLSBOdW1iZXIgb2YgcHJvY2Vzc2VkIHRlbmFudHMuXG4gICAqL1xuICBhc3luYyBydW4odGVuYW50cywgY2FsbGJhY2spIHtcbiAgICBpZiAodGhpcy5wYXJhbGxlbENvdW50IDw9IDEpIHtcbiAgICAgIGZvciAoY29uc3QgdGVuYW50IG9mIHRlbmFudHMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5ydW5UZW5hbnRDYWxsYmFjayh7Y2FsbGJhY2ssIHRlbmFudH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0ZW5hbnRzLmxlbmd0aFxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7QXJyYXk8e2Vycm9yOiBFcnJvciwgdGVuYW50OiA/fT59ICovXG4gICAgY29uc3QgZmFpbHVyZXMgPSBbXVxuICAgIGNvbnN0IHdvcmtlcnMgPSBbXVxuICAgIGxldCB0ZW5hbnRJbmRleCA9IDBcbiAgICBjb25zdCB3b3JrZXJDb3VudCA9IE1hdGgubWluKHRoaXMucGFyYWxsZWxDb3VudCwgdGVuYW50cy5sZW5ndGgpXG5cbiAgICBmb3IgKGxldCB3b3JrZXJJbmRleCA9IDA7IHdvcmtlckluZGV4IDwgd29ya2VyQ291bnQ7IHdvcmtlckluZGV4KyspIHtcbiAgICAgIHdvcmtlcnMucHVzaCgoYXN5bmMgKCkgPT4ge1xuICAgICAgICB3aGlsZSAodGVuYW50SW5kZXggPCB0ZW5hbnRzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IHRlbmFudCA9IHRlbmFudHNbdGVuYW50SW5kZXhdXG5cbiAgICAgICAgICB0ZW5hbnRJbmRleCsrXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5ydW5UZW5hbnRDYWxsYmFjayh7Y2FsbGJhY2ssIHRlbmFudH0pXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgICBlcnJvcjogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogbmV3IEVycm9yKFN0cmluZyhlcnJvcikpLFxuICAgICAgICAgICAgICB0ZW5hbnRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSgpKVxuICAgIH1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHdvcmtlcnMpXG5cbiAgICBpZiAoZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmFpbGVkVGVuYW50TGFiZWxzID0gZmFpbHVyZXMubWFwKChmYWlsdXJlKSA9PiBUZW5hbnRJdGVyYXRvci50ZW5hbnRMYWJlbChmYWlsdXJlLnRlbmFudCkpLmpvaW4oXCIsIFwiKVxuXG4gICAgICB0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IoXG4gICAgICAgIGZhaWx1cmVzLm1hcCgoZmFpbHVyZSkgPT4gZmFpbHVyZS5lcnJvciksXG4gICAgICAgIGBGYWlsZWQgdGVuYW50IGRhdGFiYXNlIGNvbW1hbmQgZm9yIHRlbmFudChzKTogJHtmYWlsZWRUZW5hbnRMYWJlbHN9YFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiB0ZW5hbnRzLmxlbmd0aFxuICB9XG5cbiAgLyoqXG4gICAqIEVudGVycyBvbmUgdGVuYW50J3MgY29udGV4dCBhbmQgcnVucyB0aGUgY2FsbGJhY2ssIGFzc2VydGluZyB0aGUgZGF0YWJhc2UgaXMgYWN0aXZlIGZpcnN0LlxuICAgKiBAcGFyYW0ge3tjYWxsYmFjazogZnVuY3Rpb24oe2RhdGFiYXNlQ29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5EYXRhYmFzZUNvbmZpZ3VyYXRpb25UeXBlLCB0ZW5hbnQ6ID99KSA6IFByb21pc2U8dm9pZD4sIHRlbmFudDogP319IGFyZ3MgLSBUZW5hbnQgZGVzY3JpcHRvciBhbmQgb3BlcmF0aW9uIHRvIHJ1biBpbiBpdHMgY29udGV4dC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBydW5UZW5hbnRDYWxsYmFjayh7Y2FsbGJhY2ssIHRlbmFudH0pIHtcbiAgICBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24ucnVuV2l0aFRlbmFudCh0ZW5hbnQsIGFzeW5jICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uLmlzRGF0YWJhc2VJZGVudGlmaWVyQWN0aXZlKHRoaXMuaWRlbnRpZmllcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllciAke3RoaXMuaWRlbnRpZmllcn0gaXMgaW5hY3RpdmUgZm9yIHRlbmFudDogJHtUZW5hbnRJdGVyYXRvci50ZW5hbnRMYWJlbCh0ZW5hbnQpfWApXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGNhbGxiYWNrKHtcbiAgICAgICAgZGF0YWJhc2VDb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZURhdGFiYXNlQ29uZmlndXJhdGlvbih0aGlzLmlkZW50aWZpZXIpLFxuICAgICAgICB0ZW5hbnRcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgYSB0ZW5hbnQgZm9yIHVzZSBpbiBlcnJvciBtZXNzYWdlcy5cbiAgICogQHBhcmFtIHs/fSB0ZW5hbnQgLSBUZW5hbnQgZGVzY3JpcHRvciB0byBpZGVudGlmeSBpbiBhbiBlcnJvci5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBIdW1hbi1yZWFkYWJsZSB0ZW5hbnQgbGFiZWwuXG4gICAqL1xuICBzdGF0aWMgdGVuYW50TGFiZWwodGVuYW50KSB7XG4gICAgaWYgKHRlbmFudCAmJiB0eXBlb2YgdGVuYW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBjb25zdCB0ZW5hbnRPYmplY3QgPSAvKiogQHR5cGUge3tpZD86ID8sIG5hbWU/OiA/LCBzbHVnPzogP319ICovICh0ZW5hbnQpXG5cbiAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiAvKiogQHR5cGUge0FycmF5PFwic2x1Z1wiIHwgXCJuYW1lXCIgfCBcImlkXCI+fSAqLyAoW1wic2x1Z1wiLCBcIm5hbWVcIiwgXCJpZFwiXSkpIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlT3JBY2Nlc3NvciA9IHRlbmFudE9iamVjdFthdHRyaWJ1dGVOYW1lXVxuICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZSA9IHR5cGVvZiBhdHRyaWJ1dGVPckFjY2Vzc29yID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICA/IGF0dHJpYnV0ZU9yQWNjZXNzb3IuY2FsbCh0ZW5hbnQpXG4gICAgICAgICAgOiBhdHRyaWJ1dGVPckFjY2Vzc29yXG5cbiAgICAgICAgaWYgKGF0dHJpYnV0ZVZhbHVlKSByZXR1cm4gU3RyaW5nKGF0dHJpYnV0ZVZhbHVlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0ZW5hbnQpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -114,6 +114,13 @@ export default class TestRunner {
|
|
|
114
114
|
filePath: string;
|
|
115
115
|
line: number;
|
|
116
116
|
} | null;
|
|
117
|
+
/** @type {Array<{fullDescription: string, filePath: string, line: number, durationMs: number}>} */
|
|
118
|
+
_testDurations: Array<{
|
|
119
|
+
fullDescription: string;
|
|
120
|
+
filePath: string;
|
|
121
|
+
line: number;
|
|
122
|
+
durationMs: number;
|
|
123
|
+
}>;
|
|
117
124
|
/**
|
|
118
125
|
* Runs get configuration.
|
|
119
126
|
* @returns {import("../configuration.js").default} - The configuration.
|
|
@@ -297,6 +304,17 @@ export default class TestRunner {
|
|
|
297
304
|
* @returns {number} - The executed tests count.
|
|
298
305
|
*/
|
|
299
306
|
getExecutedTestsCount(): number;
|
|
307
|
+
/**
|
|
308
|
+
* Returns the tests recorded during the run, slowest first.
|
|
309
|
+
* @param {number} [limit] - Maximum number of tests to return (0 returns all).
|
|
310
|
+
* @returns {Array<{fullDescription: string, filePath: string, line: number, durationMs: number}>} - Slowest tests, slowest first.
|
|
311
|
+
*/
|
|
312
|
+
getSlowestTests(limit?: number): Array<{
|
|
313
|
+
fullDescription: string;
|
|
314
|
+
filePath: string;
|
|
315
|
+
line: number;
|
|
316
|
+
durationMs: number;
|
|
317
|
+
}>;
|
|
300
318
|
/**
|
|
301
319
|
* Runs prepare.
|
|
302
320
|
* @returns {Promise<void>} - Resolves when complete.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../../src/testing/test-runner.js"],"names":[],"mappings":"AAoHA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;GASG;AAEH;;;;;GAKG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;GAaG;AAEH;IAWE;;;;;;;;;OASG;IACH,+GAPG;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;QACZ,WAAW;QACX,WAAW;QAChB,SAAS,EAA7B,KAAK,CAAC,MAAM,CAAC;QACmB,WAAW;QAC3B,eAAe;KACzC,
|
|
1
|
+
{"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../../src/testing/test-runner.js"],"names":[],"mappings":"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"}
|