@analogjs/vitest-angular 1.10.0-beta.6 → 1.10.0-beta.8
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/builders.json +7 -2
- package/package.json +1 -1
- package/src/index.d.ts +3 -2
- package/src/index.js +5 -3
- package/src/lib/builders/build/devkit.d.ts +4 -0
- package/src/lib/builders/build/devkit.js +22 -0
- package/src/lib/builders/build/plugins/angular-memory-plugin.d.ts +25 -0
- package/src/lib/builders/build/plugins/angular-memory-plugin.js +82 -0
- package/src/lib/builders/build/plugins/esbuild-downlevel-plugin.d.ts +7 -0
- package/src/lib/builders/build/plugins/esbuild-downlevel-plugin.js +26 -0
- package/src/lib/builders/build/schema.json +47 -0
- package/src/lib/builders/build/utils.d.ts +5 -0
- package/src/lib/builders/build/utils.js +3 -0
- package/src/lib/builders/build/vitest.impl.d.ts +10 -0
- package/src/lib/builders/build/vitest.impl.js +154 -0
- package/src/lib/builders/test/vitest.impl.js +51 -0
- package/src/lib/vitest.impl.js +0 -51
- /package/src/lib/{schema.json → builders/test/schema.json} +0 -0
- /package/src/lib/{vitest.impl.d.ts → builders/test/vitest.impl.d.ts} +0 -0
package/builders.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"builders": {
|
|
3
3
|
"test": {
|
|
4
|
-
"implementation": "./src/lib/vitest.impl",
|
|
4
|
+
"implementation": "./src/lib/builders/test/vitest.impl",
|
|
5
5
|
"schema": "./src/lib/schema.json",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Run tests with Vitest"
|
|
7
|
+
},
|
|
8
|
+
"build-test": {
|
|
9
|
+
"implementation": "./src/lib/builders/build/vitest.impl",
|
|
10
|
+
"schema": "./src/lib/builders/build/schema.json",
|
|
11
|
+
"description": "Bundle and run tests with Vitest using the Application Builder"
|
|
7
12
|
}
|
|
8
13
|
}
|
|
9
14
|
}
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import vitestBuilder from './lib/vitest.impl';
|
|
2
|
-
|
|
1
|
+
import vitestBuilder from './lib/builders/test/vitest.impl';
|
|
2
|
+
import vitestApplicationBuilder from './lib/builders/build/vitest.impl';
|
|
3
|
+
export { vitestBuilder, vitestApplicationBuilder };
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.vitestBuilder = void 0;
|
|
4
|
-
const vitest_impl_1 = require("./lib/vitest.impl");
|
|
3
|
+
exports.vitestApplicationBuilder = exports.vitestBuilder = void 0;
|
|
4
|
+
const vitest_impl_1 = require("./lib/builders/test/vitest.impl");
|
|
5
5
|
exports.vitestBuilder = vitest_impl_1.default;
|
|
6
|
-
|
|
6
|
+
const vitest_impl_2 = require("./lib/builders/build/vitest.impl");
|
|
7
|
+
exports.vitestApplicationBuilder = vitest_impl_2.default;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy92aXRlc3QtYW5ndWxhci9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBQTREO0FBR25ELHdCQUhGLHFCQUFhLENBR0U7QUFGdEIsa0VBQXdFO0FBRWhELG1DQUZqQixxQkFBd0IsQ0FFaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdml0ZXN0QnVpbGRlciBmcm9tICcuL2xpYi9idWlsZGVycy90ZXN0L3ZpdGVzdC5pbXBsJztcbmltcG9ydCB2aXRlc3RBcHBsaWNhdGlvbkJ1aWxkZXIgZnJvbSAnLi9saWIvYnVpbGRlcnMvYnVpbGQvdml0ZXN0LmltcGwnO1xuXG5leHBvcnQgeyB2aXRlc3RCdWlsZGVyLCB2aXRlc3RBcHBsaWNhdGlvbkJ1aWxkZXIgfTtcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBuildApplicationFunction = getBuildApplicationFunction;
|
|
4
|
+
async function getBuildApplicationFunction() {
|
|
5
|
+
const { VERSION } = await Function('return import("@angular/compiler-cli")')();
|
|
6
|
+
const angularVersion = Number(VERSION.major);
|
|
7
|
+
const angularMinor = Number(VERSION.minor);
|
|
8
|
+
let buildApplicationInternal;
|
|
9
|
+
if (angularVersion < 16 || (angularVersion === 16 && angularMinor <= 2)) {
|
|
10
|
+
throw new Error('This builder is not supported with versions earlier than Angular v16.2');
|
|
11
|
+
}
|
|
12
|
+
else if (angularVersion >= 16 && angularVersion < 18) {
|
|
13
|
+
const { buildApplicationInternal: buildApplicationInternalFn, } = require('@angular-devkit/build-angular/src/builders/application');
|
|
14
|
+
buildApplicationInternal = buildApplicationInternalFn;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
const { buildApplicationInternal: buildApplicationInternalFn, } = require('@angular/build/private');
|
|
18
|
+
buildApplicationInternal = buildApplicationInternalFn;
|
|
19
|
+
}
|
|
20
|
+
return { buildApplicationInternal, angularVersion };
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2a2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdml0ZXN0LWFuZ3VsYXIvc3JjL2xpYi9idWlsZGVycy9idWlsZC9kZXZraXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrRUE0QkM7QUE1Qk0sS0FBSyxVQUFVLDJCQUEyQjtJQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTyxRQUFRLENBQ2pDLHdDQUF3QyxDQUN6QyxFQUE2RCxDQUFDO0lBRS9ELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxJQUFJLHdCQUFrQyxDQUFDO0lBRXZDLElBQUksY0FBYyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsS0FBSyxFQUFFLElBQUksWUFBWSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEUsTUFBTSxJQUFJLEtBQUssQ0FDYix3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7U0FBTSxJQUFJLGNBQWMsSUFBSSxFQUFFLElBQUksY0FBYyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sRUFDSix3QkFBd0IsRUFBRSwwQkFBMEIsR0FDckQsR0FBRyxPQUFPLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUV0RSx3QkFBd0IsR0FBRywwQkFBMEIsQ0FBQztJQUN4RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sRUFDSix3QkFBd0IsRUFBRSwwQkFBMEIsR0FDckQsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUV0Qyx3QkFBd0IsR0FBRywwQkFBMEIsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QnVpbGRBcHBsaWNhdGlvbkZ1bmN0aW9uKCkge1xuICBjb25zdCB7IFZFUlNJT04gfSA9IGF3YWl0IChGdW5jdGlvbihcbiAgICAncmV0dXJuIGltcG9ydChcIkBhbmd1bGFyL2NvbXBpbGVyLWNsaVwiKSdcbiAgKSgpIGFzIFByb21pc2U8eyBWRVJTSU9OOiB7IG1ham9yOiBzdHJpbmc7IG1pbm9yOiBzdHJpbmcgfSB9Pik7XG5cbiAgY29uc3QgYW5ndWxhclZlcnNpb24gPSBOdW1iZXIoVkVSU0lPTi5tYWpvcik7XG4gIGNvbnN0IGFuZ3VsYXJNaW5vciA9IE51bWJlcihWRVJTSU9OLm1pbm9yKTtcbiAgbGV0IGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbDogRnVuY3Rpb247XG5cbiAgaWYgKGFuZ3VsYXJWZXJzaW9uIDwgMTYgfHwgKGFuZ3VsYXJWZXJzaW9uID09PSAxNiAmJiBhbmd1bGFyTWlub3IgPD0gMikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnVGhpcyBidWlsZGVyIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB2ZXJzaW9ucyBlYXJsaWVyIHRoYW4gQW5ndWxhciB2MTYuMidcbiAgICApO1xuICB9IGVsc2UgaWYgKGFuZ3VsYXJWZXJzaW9uID49IDE2ICYmIGFuZ3VsYXJWZXJzaW9uIDwgMTgpIHtcbiAgICBjb25zdCB7XG4gICAgICBidWlsZEFwcGxpY2F0aW9uSW50ZXJuYWw6IGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbEZuLFxuICAgIH0gPSByZXF1aXJlKCdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24nKTtcblxuICAgIGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbCA9IGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbEZuO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHtcbiAgICAgIGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbDogYnVpbGRBcHBsaWNhdGlvbkludGVybmFsRm4sXG4gICAgfSA9IHJlcXVpcmUoJ0Bhbmd1bGFyL2J1aWxkL3ByaXZhdGUnKTtcblxuICAgIGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbCA9IGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbEZuO1xuICB9XG5cbiAgcmV0dXJuIHsgYnVpbGRBcHBsaWNhdGlvbkludGVybmFsLCBhbmd1bGFyVmVyc2lvbiB9O1xufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
7
|
+
*/
|
|
8
|
+
import { AngularMemoryOutputFiles } from '../utils';
|
|
9
|
+
interface AngularMemoryPluginOptions {
|
|
10
|
+
workspaceRoot?: string;
|
|
11
|
+
angularVersion: number;
|
|
12
|
+
outputFiles: AngularMemoryOutputFiles;
|
|
13
|
+
external?: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function createAngularMemoryPlugin(options: AngularMemoryPluginOptions): Promise<{
|
|
16
|
+
name: string;
|
|
17
|
+
enforce: string;
|
|
18
|
+
config(userConfig: any): void;
|
|
19
|
+
resolveId(source: string, importer: string): Promise<string | undefined>;
|
|
20
|
+
load(id: string): {
|
|
21
|
+
code: string;
|
|
22
|
+
map: string | undefined;
|
|
23
|
+
} | undefined;
|
|
24
|
+
}>;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.createAngularMemoryPlugin = createAngularMemoryPlugin;
|
|
11
|
+
// import assert from 'node:assert';
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
async function createAngularMemoryPlugin(options) {
|
|
14
|
+
const { normalizePath } = await Function('return import("vite")')();
|
|
15
|
+
const { outputFiles, external } = options;
|
|
16
|
+
let config;
|
|
17
|
+
let projectRoot;
|
|
18
|
+
const workspaceRoot = options?.workspaceRoot || process.cwd();
|
|
19
|
+
return {
|
|
20
|
+
name: 'vite:angular-memory',
|
|
21
|
+
// Ensures plugin hooks run before built-in Vite hooks
|
|
22
|
+
enforce: 'pre',
|
|
23
|
+
config(userConfig) {
|
|
24
|
+
config = userConfig;
|
|
25
|
+
projectRoot = (0, node_path_1.resolve)(workspaceRoot, config.root || '.');
|
|
26
|
+
},
|
|
27
|
+
async resolveId(source, importer) {
|
|
28
|
+
// Prevent vite from resolving an explicit external dependency (`externalDependencies` option)
|
|
29
|
+
if (external?.includes(source)) {
|
|
30
|
+
// This is still not ideal since Vite will still transform the import specifier to
|
|
31
|
+
// `/@id/${source}` but is currently closer to a raw external than a resolved file path.
|
|
32
|
+
return source;
|
|
33
|
+
}
|
|
34
|
+
if (importer) {
|
|
35
|
+
if (source[0] === '.' &&
|
|
36
|
+
normalizePath(importer).startsWith(projectRoot)) {
|
|
37
|
+
// Remove query if present
|
|
38
|
+
const [importerFile] = importer.split('?', 1);
|
|
39
|
+
source =
|
|
40
|
+
'/' + (0, node_path_1.join)((0, node_path_1.dirname)((0, node_path_1.relative)(projectRoot, importerFile)), source);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const [file] = source.split('?', 1);
|
|
44
|
+
const fileSplits = file.split('/');
|
|
45
|
+
if (outputFiles.has(fileSplits[fileSplits.length - 1])) {
|
|
46
|
+
return fileSplits[fileSplits.length - 1];
|
|
47
|
+
}
|
|
48
|
+
if (outputFiles.has(file)) {
|
|
49
|
+
return (0, node_path_1.join)(projectRoot, source);
|
|
50
|
+
}
|
|
51
|
+
return;
|
|
52
|
+
},
|
|
53
|
+
load(id) {
|
|
54
|
+
const [file] = id.split('?', 1);
|
|
55
|
+
const relativeFile = options.angularVersion < 19
|
|
56
|
+
? normalizePath((0, node_path_1.relative)(projectRoot, file))
|
|
57
|
+
.replace(/^.*\//, '')
|
|
58
|
+
.replace('.ts', '.js')
|
|
59
|
+
: 'spec-' +
|
|
60
|
+
normalizePath((0, node_path_1.relative)(projectRoot, file))
|
|
61
|
+
.replace('.ts', '.js')
|
|
62
|
+
.replace(/^[./]+/, '_')
|
|
63
|
+
.replace(/\//g, '-');
|
|
64
|
+
const codeContents = outputFiles.get(relativeFile)?.contents ||
|
|
65
|
+
outputFiles.get(id)?.contents;
|
|
66
|
+
if (codeContents === undefined) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const code = Buffer.from(codeContents).toString('utf-8');
|
|
70
|
+
const mapContents = outputFiles.get(relativeFile + '.map')?.contents;
|
|
71
|
+
return {
|
|
72
|
+
// Remove source map URL comments from the code if a sourcemap is present.
|
|
73
|
+
// Vite will inline and add an additional sourcemap URL for the sourcemap.
|
|
74
|
+
code: mapContents
|
|
75
|
+
? code.replace(/^\/\/# sourceMappingURL=[^\r\n]*/gm, '')
|
|
76
|
+
: code,
|
|
77
|
+
map: mapContents && Buffer.from(mapContents).toString('utf-8'),
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tZW1vcnktcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdml0ZXN0LWFuZ3VsYXIvc3JjL2xpYi9idWlsZGVycy9idWlsZC9wbHVnaW5zL2FuZ3VsYXItbWVtb3J5LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQWNILDhEQW9GQztBQWhHRCxvQ0FBb0M7QUFDcEMseUNBQTZEO0FBV3RELEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsT0FBbUM7SUFFbkMsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU8sUUFBUSxDQUN2Qyx1QkFBdUIsQ0FDeEIsRUFBcUMsQ0FBQztJQUN2QyxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUMxQyxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksV0FBbUIsQ0FBQztJQUN4QixNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUU5RCxPQUFPO1FBQ0wsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixzREFBc0Q7UUFDdEQsT0FBTyxFQUFFLEtBQUs7UUFDZCxNQUFNLENBQUMsVUFBZTtZQUNwQixNQUFNLEdBQUcsVUFBVSxDQUFDO1lBQ3BCLFdBQVcsR0FBRyxJQUFBLG1CQUFPLEVBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBYyxFQUFFLFFBQWdCO1lBQzlDLDhGQUE4RjtZQUM5RixJQUFJLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDL0Isa0ZBQWtGO2dCQUNsRix3RkFBd0Y7Z0JBQ3hGLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJ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LE9BQU8sQ0FBQzthQUMvRCxDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG4vLyBpbXBvcnQgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0JztcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4sIHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHsgQW5ndWxhck1lbW9yeU91dHB1dEZpbGVzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbnRlcmZhY2UgQW5ndWxhck1lbW9yeVBsdWdpbk9wdGlvbnMge1xuICB3b3Jrc3BhY2VSb290Pzogc3RyaW5nO1xuICBhbmd1bGFyVmVyc2lvbjogbnVtYmVyO1xuICBvdXRwdXRGaWxlczogQW5ndWxhck1lbW9yeU91dHB1dEZpbGVzO1xuICBleHRlcm5hbD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQW5ndWxhck1lbW9yeVBsdWdpbihcbiAgb3B0aW9uczogQW5ndWxhck1lbW9yeVBsdWdpbk9wdGlvbnNcbikge1xuICBjb25zdCB7IG5vcm1hbGl6ZVBhdGggfSA9IGF3YWl0IChGdW5jdGlvbihcbiAgICAncmV0dXJuIGltcG9ydChcInZpdGVcIiknXG4gICkoKSBhcyBQcm9taXNlPHR5cGVvZiBpbXBvcnQoJ3ZpdGUnKT4pO1xuICBjb25zdCB7IG91dHB1dEZpbGVzLCBleHRlcm5hbCB9ID0gb3B0aW9ucztcbiAgbGV0IGNvbmZpZztcbiAgbGV0IHByb2plY3RSb290OiBzdHJpbmc7XG4gIGNvbnN0IHdvcmtzcGFjZVJvb3QgPSBvcHRpb25zPy53b3Jrc3BhY2VSb290IHx8IHByb2Nlc3MuY3dkKCk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZTphbmd1bGFyLW1lbW9yeScsXG4gICAgLy8gRW5zdXJlcyBwbHVnaW4gaG9va3MgcnVuIGJlZm9yZSBidWlsdC1pbiBWaXRlIGhvb2tzXG4gICAgZW5mb3JjZTogJ3ByZScsXG4gICAgY29uZmlnKHVzZXJDb25maWc6IGFueSkge1xuICAgICAgY29uZmlnID0gdXNlckNvbmZpZztcbiAgICAgIHByb2plY3RSb290ID0gcmVzb2x2ZSh3b3Jrc3BhY2VSb290LCBjb25maWcucm9vdCB8fCAnLicpO1xuICAgIH0sXG4gICAgYXN5bmMgcmVzb2x2ZUlkKHNvdXJjZTogc3RyaW5nLCBpbXBvcnRlcjogc3RyaW5nKSB7XG4gICAgICAvLyBQcmV2ZW50IHZpdGUgZnJvbSByZXNvbHZpbmcgYW4gZXhwbGljaXQgZXh0ZXJuYWwgZGVwZW5kZW5jeSAoYGV4dGVybmFsRGVwZW5kZW5jaWVzYCBvcHRpb24pXG4gICAgICBpZiAoZXh0ZXJuYWw/LmluY2x1ZGVzKHNvdXJjZSkpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBzdGlsbCBub3QgaWRlYWwgc2luY2UgVml0ZSB3aWxsIHN0aWxsIHRyYW5zZm9ybSB0aGUgaW1wb3J0IHNwZWNpZmllciB0b1xuICAgICAgICAvLyBgL0BpZC8ke3NvdXJjZX1gIGJ1dCBpcyBjdXJyZW50bHkgY2xvc2VyIHRvIGEgcmF3IGV4dGVybmFsIHRoYW4gYSByZXNvbHZlZCBmaWxlIHBhdGguXG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChpbXBvcnRlcikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc291cmNlWzBdID09PSAnLicgJiZcbiAgICAgICAgICBub3JtYWxpemVQYXRoKGltcG9ydGVyKS5zdGFydHNXaXRoKHByb2plY3RSb290KVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBSZW1vdmUgcXVlcnkgaWYgcHJlc2VudFxuICAgICAgICAgIGNvbnN0IFtpbXBvcnRlckZpbGVdID0gaW1wb3J0ZXIuc3BsaXQoJz8nLCAxKTtcbiAgICAgICAgICBzb3VyY2UgPVxuICAgICAgICAgICAgJy8nICsgam9pbihkaXJuYW1lKHJlbGF0aXZlKHByb2plY3RSb290LCBpbXBvcnRlckZpbGUpKSwgc291cmNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBbZmlsZV0gPSBzb3VyY2Uuc3BsaXQoJz8nLCAxKTtcbiAgICAgIGNvbnN0IGZpbGVTcGxpdHMgPSBmaWxlLnNwbGl0KCcvJyk7XG5cbiAgICAgIGlmIChvdXRwdXRGaWxlcy5oYXMoZmlsZVNwbGl0c1tmaWxlU3BsaXRzLmxlbmd0aCAtIDFdKSkge1xuICAgICAgICByZXR1cm4gZmlsZVNwbGl0c1tmaWxlU3BsaXRzLmxlbmd0aCAtIDFdO1xuICAgICAgfVxuXG4gICAgICBpZiAob3V0cHV0RmlsZXMuaGFzKGZpbGUpKSB7XG4gICAgICAgIHJldHVybiBqb2luKHByb2plY3RSb290LCBzb3VyY2UpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH0sXG4gICAgbG9hZChpZDogc3RyaW5nKSB7XG4gICAgICBjb25zdCBbZmlsZV0gPSBpZC5zcGxpdCgnPycsIDEpO1xuICAgICAgY29uc3QgcmVsYXRpdmVGaWxlID1cbiAgICAgICAgb3B0aW9ucy5hbmd1bGFyVmVyc2lvbiA8IDE5XG4gICAgICAgICAgPyBub3JtYWxpemVQYXRoKHJlbGF0aXZlKHByb2plY3RSb290LCBmaWxlKSlcbiAgICAgICAgICAgICAgLnJlcGxhY2UoL14uKlxcLy8sICcnKVxuICAgICAgICAgICAgICAucmVwbGFjZSgnLnRzJywgJy5qcycpXG4gICAgICAgICAgOiAnc3BlYy0nICtcbiAgICAgICAgICAgIG5vcm1hbGl6ZVBhdGgocmVsYXRpdmUocHJvamVjdFJvb3QsIGZpbGUpKVxuICAgICAgICAgICAgICAucmVwbGFjZSgnLnRzJywgJy5qcycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9eWy4vXSsvLCAnXycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcblxuICAgICAgY29uc3QgY29kZUNvbnRlbnRzID1cbiAgICAgICAgb3V0cHV0RmlsZXMuZ2V0KHJlbGF0aXZlRmlsZSk/LmNvbnRlbnRzIHx8XG4gICAgICAgIG91dHB1dEZpbGVzLmdldChpZCk/LmNvbnRlbnRzO1xuICAgICAgaWYgKGNvZGVDb250ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvZGUgPSBCdWZmZXIuZnJvbShjb2RlQ29udGVudHMpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3QgbWFwQ29udGVudHMgPSBvdXRwdXRGaWxlcy5nZXQocmVsYXRpdmVGaWxlICsgJy5tYXAnKT8uY29udGVudHM7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC8vIFJlbW92ZSBzb3VyY2UgbWFwIFVSTCBjb21tZW50cyBmcm9tIHRoZSBjb2RlIGlmIGEgc291cmNlbWFwIGlzIHByZXNlbnQuXG4gICAgICAgIC8vIFZpdGUgd2lsbCBpbmxpbmUgYW5kIGFkZCBhbiBhZGRpdGlvbmFsIHNvdXJjZW1hcCBVUkwgZm9yIHRoZSBzb3VyY2VtYXAuXG4gICAgICAgIGNvZGU6IG1hcENvbnRlbnRzXG4gICAgICAgICAgPyBjb2RlLnJlcGxhY2UoL15cXC9cXC8jIHNvdXJjZU1hcHBpbmdVUkw9W15cXHJcXG5dKi9nbSwgJycpXG4gICAgICAgICAgOiBjb2RlLFxuICAgICAgICBtYXA6IG1hcENvbnRlbnRzICYmIEJ1ZmZlci5mcm9tKG1hcENvbnRlbnRzKS50b1N0cmluZygndXRmLTgnKSxcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.esbuildDownlevelPlugin = esbuildDownlevelPlugin;
|
|
4
|
+
async function esbuildDownlevelPlugin() {
|
|
5
|
+
const { transformWithEsbuild } = await Function('return import("vite")')();
|
|
6
|
+
return {
|
|
7
|
+
name: 'analogs-vitest-esbuild-downlevel-plugin',
|
|
8
|
+
async transform(_code, id) {
|
|
9
|
+
if (_code.includes('async (')) {
|
|
10
|
+
const { code, map } = await transformWithEsbuild(_code, id, {
|
|
11
|
+
loader: 'js',
|
|
12
|
+
format: 'esm',
|
|
13
|
+
target: 'es2016',
|
|
14
|
+
sourcemap: true,
|
|
15
|
+
sourcefile: id,
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
code,
|
|
19
|
+
map,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC1kb3dubGV2ZWwtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdml0ZXN0LWFuZ3VsYXIvc3JjL2xpYi9idWlsZGVycy9idWlsZC9wbHVnaW5zL2VzYnVpbGQtZG93bmxldmVsLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQXlCQztBQXpCTSxLQUFLLFVBQVUsc0JBQXNCO0lBQzFDLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE1BQU8sUUFBUSxDQUM5Qyx1QkFBdUIsQ0FDeEIsRUFBcUMsQ0FBQztJQUN2QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLHlDQUF5QztRQUMvQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxFQUFVO1lBQ3ZDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtvQkFDMUQsTUFBTSxFQUFFLElBQUk7b0JBQ1osTUFBTSxFQUFFLEtBQUs7b0JBQ2IsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFNBQVMsRUFBRSxJQUFJO29CQUNmLFVBQVUsRUFBRSxFQUFFO2lCQUNmLENBQUMsQ0FBQztnQkFFSCxPQUFPO29CQUNMLElBQUk7b0JBQ0osR0FBRztpQkFDSixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhc3luYyBmdW5jdGlvbiBlc2J1aWxkRG93bmxldmVsUGx1Z2luKCkge1xuICBjb25zdCB7IHRyYW5zZm9ybVdpdGhFc2J1aWxkIH0gPSBhd2FpdCAoRnVuY3Rpb24oXG4gICAgJ3JldHVybiBpbXBvcnQoXCJ2aXRlXCIpJ1xuICApKCkgYXMgUHJvbWlzZTx0eXBlb2YgaW1wb3J0KCd2aXRlJyk+KTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnYW5hbG9ncy12aXRlc3QtZXNidWlsZC1kb3dubGV2ZWwtcGx1Z2luJyxcbiAgICBhc3luYyB0cmFuc2Zvcm0oX2NvZGU6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgICAgaWYgKF9jb2RlLmluY2x1ZGVzKCdhc3luYyAoJykpIHtcbiAgICAgICAgY29uc3QgeyBjb2RlLCBtYXAgfSA9IGF3YWl0IHRyYW5zZm9ybVdpdGhFc2J1aWxkKF9jb2RlLCBpZCwge1xuICAgICAgICAgIGxvYWRlcjogJ2pzJyxcbiAgICAgICAgICBmb3JtYXQ6ICdlc20nLFxuICAgICAgICAgIHRhcmdldDogJ2VzMjAxNicsXG4gICAgICAgICAgc291cmNlbWFwOiB0cnVlLFxuICAgICAgICAgIHNvdXJjZWZpbGU6IGlkLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgbWFwLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"title": "Vitest schema for Test Facade.",
|
|
4
|
+
"description": "Vitest target options",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"configFile": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The path to the local vitest config",
|
|
10
|
+
"x-completion-type": "file",
|
|
11
|
+
"x-completion-glob": "@vitest.config@(.js|.ts|.mts)",
|
|
12
|
+
"aliases": ["config"]
|
|
13
|
+
},
|
|
14
|
+
"include": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"default": ["src/**/*.spec.ts"],
|
|
20
|
+
"description": "Globs of files to include, relative to project root."
|
|
21
|
+
},
|
|
22
|
+
"exclude": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"items": {
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"default": ["node_modules", "dist", ".idea", ".git", ".cache"],
|
|
28
|
+
"description": "Globs of files to exclude, relative to the project root."
|
|
29
|
+
},
|
|
30
|
+
"setupFile": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "The path to the setup file.",
|
|
33
|
+
"default": "src/test-setup.ts"
|
|
34
|
+
},
|
|
35
|
+
"tsConfig": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "The relative path to the TypeScript configuration file for running tests.",
|
|
38
|
+
"default": "tsconfig.spec.json"
|
|
39
|
+
},
|
|
40
|
+
"watch": {
|
|
41
|
+
"type": "boolean",
|
|
42
|
+
"default": false,
|
|
43
|
+
"description": "Run the tests in watch mode"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"additionalProperties": true
|
|
47
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy92aXRlc3QtYW5ndWxhci9zcmMvbGliL2J1aWxkZXJzL2J1aWxkL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBbmd1bGFyTWVtb3J5T3V0cHV0RmlsZXMgPSBNYXA8XG4gIHN0cmluZyxcbiAgeyBjb250ZW50czogVWludDhBcnJheTsgaGFzaDogc3RyaW5nOyBzZXJ2YWJsZTogYm9vbGVhbiB9XG4+O1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { VitestSchema } from './schema';
|
|
2
|
+
export declare enum ResultKind {
|
|
3
|
+
Failure = 0,
|
|
4
|
+
Full = 1,
|
|
5
|
+
Incremental = 2,
|
|
6
|
+
ComponentUpdate = 3
|
|
7
|
+
}
|
|
8
|
+
export declare function getExtraArgs(options: VitestSchema): Promise<Record<string, any>>;
|
|
9
|
+
declare const _default: unknown;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResultKind = void 0;
|
|
4
|
+
exports.getExtraArgs = getExtraArgs;
|
|
5
|
+
const architect_1 = require("@angular-devkit/architect");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const angular_memory_plugin_1 = require("./plugins/angular-memory-plugin");
|
|
8
|
+
const esbuild_downlevel_plugin_1 = require("./plugins/esbuild-downlevel-plugin");
|
|
9
|
+
const devkit_1 = require("./devkit");
|
|
10
|
+
var ResultKind;
|
|
11
|
+
(function (ResultKind) {
|
|
12
|
+
ResultKind[ResultKind["Failure"] = 0] = "Failure";
|
|
13
|
+
ResultKind[ResultKind["Full"] = 1] = "Full";
|
|
14
|
+
ResultKind[ResultKind["Incremental"] = 2] = "Incremental";
|
|
15
|
+
ResultKind[ResultKind["ComponentUpdate"] = 3] = "ComponentUpdate";
|
|
16
|
+
})(ResultKind || (exports.ResultKind = ResultKind = {}));
|
|
17
|
+
process.env['VITE_CJS_IGNORE_WARNING'] = 'true';
|
|
18
|
+
async function* vitestApplicationBuilder(options, context) {
|
|
19
|
+
process.env['TEST'] = 'true';
|
|
20
|
+
process.env['VITEST'] = 'true';
|
|
21
|
+
const { buildApplicationInternal, angularVersion } = await (0, devkit_1.getBuildApplicationFunction)();
|
|
22
|
+
const { startVitest } = await Function('return import("vitest/node")')();
|
|
23
|
+
const projectConfig = await context.getProjectMetadata(context.target);
|
|
24
|
+
const extraArgs = await getExtraArgs(options);
|
|
25
|
+
const workspaceRoot = context.workspaceRoot;
|
|
26
|
+
const projectRoot = projectConfig['root'];
|
|
27
|
+
const setupFile = path.relative(projectRoot, options.setupFile);
|
|
28
|
+
const config = {
|
|
29
|
+
root: `${projectRoot || '.'}`,
|
|
30
|
+
watch: options.watch === true,
|
|
31
|
+
config: options.configFile,
|
|
32
|
+
setupFiles: [setupFile],
|
|
33
|
+
globals: true,
|
|
34
|
+
pool: 'vmThreads',
|
|
35
|
+
reporters: ['default'],
|
|
36
|
+
environment: 'jsdom',
|
|
37
|
+
exclude: options?.exclude || [],
|
|
38
|
+
...extraArgs,
|
|
39
|
+
};
|
|
40
|
+
const includes = findIncludes({
|
|
41
|
+
workspaceRoot,
|
|
42
|
+
projectRoot,
|
|
43
|
+
include: options.include,
|
|
44
|
+
exclude: options.exclude || [],
|
|
45
|
+
});
|
|
46
|
+
const testFiles = [
|
|
47
|
+
path.relative(workspaceRoot, options.setupFile),
|
|
48
|
+
...includes.map((inc) => path.relative(workspaceRoot, inc)),
|
|
49
|
+
];
|
|
50
|
+
const entryPoints = generateEntryPoints({
|
|
51
|
+
projectRoot: projectRoot,
|
|
52
|
+
testFiles,
|
|
53
|
+
context,
|
|
54
|
+
angularVersion,
|
|
55
|
+
});
|
|
56
|
+
const outputFiles = new Map();
|
|
57
|
+
const viteConfig = {
|
|
58
|
+
plugins: [
|
|
59
|
+
(await (0, angular_memory_plugin_1.createAngularMemoryPlugin)({
|
|
60
|
+
angularVersion,
|
|
61
|
+
workspaceRoot,
|
|
62
|
+
outputFiles,
|
|
63
|
+
})),
|
|
64
|
+
await (0, esbuild_downlevel_plugin_1.esbuildDownlevelPlugin)(),
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
let server;
|
|
68
|
+
for await (const buildOutput of buildApplicationInternal({
|
|
69
|
+
aot: false,
|
|
70
|
+
index: false,
|
|
71
|
+
progress: false,
|
|
72
|
+
prerender: false,
|
|
73
|
+
optimization: false,
|
|
74
|
+
outputPath: `.angular/.vitest/${projectConfig['name']}`,
|
|
75
|
+
tsConfig: path.relative(workspaceRoot, options.tsConfig),
|
|
76
|
+
watch: options.watch === true,
|
|
77
|
+
entryPoints,
|
|
78
|
+
allowedCommonJsDependencies: ['@analogjs/vitest-angular/setup-zone'],
|
|
79
|
+
}, context)) {
|
|
80
|
+
if (buildOutput.kind === ResultKind.Failure) {
|
|
81
|
+
yield { success: false };
|
|
82
|
+
}
|
|
83
|
+
else if (buildOutput.kind === ResultKind.Incremental ||
|
|
84
|
+
buildOutput.kind === ResultKind.Full) {
|
|
85
|
+
if (buildOutput.kind === ResultKind.Full) {
|
|
86
|
+
outputFiles.clear();
|
|
87
|
+
Object.keys(buildOutput.files).forEach((key) => {
|
|
88
|
+
outputFiles.set(key, buildOutput.files[key]);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
Object.keys(buildOutput.files).forEach((key) => {
|
|
93
|
+
outputFiles.set(key, buildOutput.files[key]);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (options.watch) {
|
|
98
|
+
const vitestServer = await startVitest('test', [], config, viteConfig);
|
|
99
|
+
server = vitestServer;
|
|
100
|
+
yield { success: true };
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
server = await startVitest('test', [], config, viteConfig);
|
|
104
|
+
const success = server?.state.getCountOfFailedTests() === 0;
|
|
105
|
+
yield { success };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
yield { success: true };
|
|
109
|
+
}
|
|
110
|
+
async function getExtraArgs(options) {
|
|
111
|
+
// support passing extra args to Vitest CLI
|
|
112
|
+
const schema = await Promise.resolve().then(() => require('./schema.json'));
|
|
113
|
+
const extraArgs = {};
|
|
114
|
+
for (const key of Object.keys(options)) {
|
|
115
|
+
if (!schema.properties[key]) {
|
|
116
|
+
extraArgs[key] = options[key];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return extraArgs;
|
|
120
|
+
}
|
|
121
|
+
function findIncludes(options) {
|
|
122
|
+
const fg = require('fast-glob');
|
|
123
|
+
const { normalizePath } = require('vite');
|
|
124
|
+
const projectRoot = normalizePath(path.resolve(options.workspaceRoot, options.projectRoot));
|
|
125
|
+
const globs = [...options.include.map((glob) => `${projectRoot}/${glob}`)];
|
|
126
|
+
return fg.sync(globs, {
|
|
127
|
+
dot: true,
|
|
128
|
+
ignore: options.exclude,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function generateEntryPoints({ projectRoot, testFiles, context, angularVersion, }) {
|
|
132
|
+
if (angularVersion < 19) {
|
|
133
|
+
return testFiles;
|
|
134
|
+
}
|
|
135
|
+
const seen = new Set();
|
|
136
|
+
return new Map(Array.from(testFiles, (testFile) => {
|
|
137
|
+
const relativePath = path
|
|
138
|
+
.relative(testFile.startsWith(projectRoot)
|
|
139
|
+
? projectRoot
|
|
140
|
+
: context.workspaceRoot, testFile)
|
|
141
|
+
.replace(/^[./]+/, '_')
|
|
142
|
+
.replace(/\//g, '-');
|
|
143
|
+
let uniqueName = `spec-${path.basename(relativePath, path.extname(relativePath))}`;
|
|
144
|
+
let suffix = 2;
|
|
145
|
+
while (seen.has(uniqueName)) {
|
|
146
|
+
uniqueName = `${relativePath}-${suffix}`;
|
|
147
|
+
++suffix;
|
|
148
|
+
}
|
|
149
|
+
seen.add(uniqueName);
|
|
150
|
+
return [uniqueName, testFile];
|
|
151
|
+
}));
|
|
152
|
+
}
|
|
153
|
+
exports.default = (0, architect_1.createBuilder)(vitestApplicationBuilder);
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy92aXRlc3QtYW5ndWxhci9zcmMvbGliL2J1aWxkZXJzL2J1aWxkL3ZpdGVzdC5pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVJQSxvQ0FhQztBQXBKRCx5REFBMEQ7QUFDMUQsNkJBQTZCO0FBTTdCLDJFQUE0RTtBQUM1RSxpRkFBNEU7QUFDNUUscUNBQXVEO0FBRXZELElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNwQixpREFBTyxDQUFBO0lBQ1AsMkNBQUksQ0FBQTtJQUNKLHlEQUFXLENBQUE7SUFDWCxpRUFBZSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxVQUFVLDBCQUFWLFVBQVUsUUFLckI7QUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsTUFBTSxDQUFDO0FBRWhELEtBQUssU0FBUyxDQUFDLENBQUMsd0JBQXdCLENBQ3RDLE9BQXFCLEVBQ3JCLE9BQVk7SUFFWixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUUvQixNQUFNLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLEdBQ2hELE1BQU0sSUFBQSxvQ0FBMkIsR0FBRSxDQUFDO0lBQ3RDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFPLFFBQVEsQ0FDckMsOEJBQThCLENBQy9CLEVBQTRDLENBQUM7SUFFOUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENB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QUFJLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE9BQU8sSUFBSSxHQUFHLENBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJO2FBQ3RCLFFBQVEsQ0FDUCxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUM5QixDQUFDLENBQUMsV0FBVztZQUNiLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUN6QixRQUFRLENBQ1Q7YUFDQSxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQzthQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLElBQUksVUFBVSxHQUFHLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FDcEMsWUFBWSxFQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQzNCLEVBQUUsQ0FBQztRQUNKLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzVCLFVBQVUsR0FBRyxHQUFHLFlBQVksSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN6QyxFQUFFLE1BQU0sQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXJCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxrQkFBZSxJQUFBLHlCQUFhLEVBQUMsd0JBQXdCLENBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IFZpdGVzdCB9IGZyb20gJ3ZpdGVzdC9ub2RlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luLCBVc2VyQ29uZmlnIH0gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHlwZSB7IFVzZXJDb25maWcgYXMgVml0ZXN0Q29uZmlnIH0gZnJvbSAndml0ZXN0JztcblxuaW1wb3J0IHsgVml0ZXN0U2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHsgY3JlYXRlQW5ndWxhck1lbW9yeVBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucy9hbmd1bGFyLW1lbW9yeS1wbHVnaW4nO1xuaW1wb3J0IHsgZXNidWlsZERvd25sZXZlbFBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucy9lc2J1aWxkLWRvd25sZXZlbC1wbHVnaW4nO1xuaW1wb3J0IHsgZ2V0QnVpbGRBcHBsaWNhdGlvbkZ1bmN0aW9uIH0gZnJvbSAnLi9kZXZraXQnO1xuXG5leHBvcnQgZW51bSBSZXN1bHRLaW5kIHtcbiAgRmFpbHVyZSxcbiAgRnVsbCxcbiAgSW5jcmVtZW50YWwsXG4gIENvbXBvbmVudFVwZGF0ZSxcbn1cblxucHJvY2Vzcy5lbnZbJ1ZJVEVfQ0pTX0lHTk9SRV9XQVJOSU5HJ10gPSAndHJ1ZSc7XG5cbmFzeW5jIGZ1bmN0aW9uKiB2aXRlc3RBcHBsaWNhdGlvbkJ1aWxkZXIoXG4gIG9wdGlvbnM6IFZpdGVzdFNjaGVtYSxcbiAgY29udGV4dDogYW55XG4pOiBBc3luY0l0ZXJhYmxlPHsgc3VjY2VzczogYm9vbGVhbiB9PiB7XG4gIHByb2Nlc3MuZW52WydURVNUJ10gPSAndHJ1ZSc7XG4gIHByb2Nlc3MuZW52WydWSVRFU1QnXSA9ICd0cnVlJztcblxuICBjb25zdCB7IGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbCwgYW5ndWxhclZlcnNpb24gfSA9XG4gICAgYXdhaXQgZ2V0QnVpbGRBcHBsaWNhdGlvbkZ1bmN0aW9uKCk7XG4gIGNvbnN0IHsgc3RhcnRWaXRlc3QgfSA9IGF3YWl0IChGdW5jdGlvbihcbiAgICAncmV0dXJuIGltcG9ydChcInZpdGVzdC9ub2RlXCIpJ1xuICApKCkgYXMgUHJvbWlzZTx0eXBlb2YgaW1wb3J0KCd2aXRlc3Qvbm9kZScpPik7XG5cbiAgY29uc3QgcHJvamVjdENvbmZpZyA9IGF3YWl0IGNvbnRleHQuZ2V0UHJvamVjdE1ldGFkYXRhKGNvbnRleHQudGFyZ2V0KTtcbiAgY29uc3QgZXh0cmFBcmdzID0gYXdhaXQgZ2V0RXh0cmFBcmdzKG9wdGlvbnMpO1xuICBjb25zdCB3b3Jrc3BhY2VSb290ID0gY29udGV4dC53b3Jrc3BhY2VSb290O1xuICBjb25zdCBwcm9qZWN0Um9vdCA9IHByb2plY3RDb25maWdbJ3Jvb3QnXTtcbiAgY29uc3Qgc2V0dXBGaWxlID0gcGF0aC5yZWxhdGl2ZShwcm9qZWN0Um9vdCwgb3B0aW9ucy5zZXR1cEZpbGUpO1xuXG4gIGNvbnN0IGNvbmZpZzogVml0ZXN0Q29uZmlnID0ge1xuICAgIHJvb3Q6IGAke3Byb2plY3RSb290IHx8ICcuJ31gLFxuICAgIHdhdGNoOiBvcHRpb25zLndhdGNoID09PSB0cnVlLFxuICAgIGNvbmZpZzogb3B0aW9ucy5jb25maWdGaWxlLFxuICAgIHNldHVwRmlsZXM6IFtzZXR1cEZpbGVdLFxuICAgIGdsb2JhbHM6IHRydWUsXG4gICAgcG9vbDogJ3ZtVGhyZWFkcycsXG4gICAgcmVwb3J0ZXJzOiBbJ2RlZmF1bHQnXSxcbiAgICBlbnZpcm9ubWVudDogJ2pzZG9tJyxcbiAgICBleGNsdWRlOiBvcHRpb25zPy5leGNsdWRlIHx8IFtdLFxuICAgIC4uLmV4dHJhQXJncyxcbiAgfTtcblxuICBjb25zdCBpbmNsdWRlczogc3RyaW5nW10gPSBmaW5kSW5jbHVkZXMoe1xuICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgcHJvamVjdFJvb3QsXG4gICAgaW5jbHVkZTogb3B0aW9ucy5pbmNsdWRlLFxuICAgIGV4Y2x1ZGU6IG9wdGlvbnMuZXhjbHVkZSB8fCBbXSxcbiAgfSk7XG5cbiAgY29uc3QgdGVzdEZpbGVzID0gW1xuICAgIHBhdGgucmVsYXRpdmUod29ya3NwYWNlUm9vdCwgb3B0aW9ucy5zZXR1cEZpbGUpLFxuICAgIC4uLmluY2x1ZGVzLm1hcCgoaW5jKSA9PiBwYXRoLnJlbGF0aXZlKHdvcmtzcGFjZVJvb3QsIGluYykpLFxuICBdO1xuXG4gIGNvbnN0IGVudHJ5UG9pbnRzID0gZ2VuZXJhdGVFbnRyeVBvaW50cyh7XG4gICAgcHJvamVjdFJvb3Q6IHByb2plY3RSb290LFxuICAgIHRlc3RGaWxlcyxcbiAgICBjb250ZXh0LFxuICAgIGFuZ3VsYXJWZXJzaW9uLFxuICB9KTtcblxuICBjb25zdCBvdXRwdXRGaWxlcyA9IG5ldyBNYXAoKTtcblxuICBjb25zdCB2aXRlQ29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICAgIHBsdWdpbnM6IFtcbiAgICAgIChhd2FpdCBjcmVhdGVBbmd1bGFyTWVtb3J5UGx1Z2luKHtcbiAgICAgICAgYW5ndWxhclZlcnNpb24sXG4gICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgIG91dHB1dEZpbGVzLFxuICAgICAgfSkpIGFzIFBsdWdpbixcbiAgICAgIGF3YWl0IGVzYnVpbGREb3dubGV2ZWxQbHVnaW4oKSxcbiAgICBdLFxuICB9O1xuXG4gIGxldCBzZXJ2ZXI6IFZpdGVzdCB8IHVuZGVmaW5lZDtcbiAgZm9yIGF3YWl0IChjb25zdCBidWlsZE91dHB1dCBvZiBidWlsZEFwcGxpY2F0aW9uSW50ZXJuYWwoXG4gICAge1xuICAgICAgYW90OiBmYWxzZSxcbiAgICAgIGluZGV4OiBmYWxzZSxcbiAgICAgIHByb2dyZXNzOiBmYWxzZSxcbiAgICAgIHByZXJlbmRlcjogZmFsc2UsXG4gICAgICBvcHRpbWl6YXRpb246IGZhbHNlLFxuICAgICAgb3V0cHV0UGF0aDogYC5hbmd1bGFyLy52aXRlc3QvJHtwcm9qZWN0Q29uZmlnWyduYW1lJ119YCxcbiAgICAgIHRzQ29uZmlnOiBwYXRoLnJlbGF0aXZlKHdvcmtzcGFjZVJvb3QsIG9wdGlvbnMudHNDb25maWcpLFxuICAgICAgd2F0Y2g6IG9wdGlvbnMud2F0Y2ggPT09IHRydWUsXG4gICAgICBlbnRyeVBvaW50cyxcbiAgICAgIGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llczogWydAYW5hbG9nanMvdml0ZXN0LWFuZ3VsYXIvc2V0dXAtem9uZSddLFxuICAgIH0sXG4gICAgY29udGV4dFxuICApKSB7XG4gICAgaWYgKGJ1aWxkT3V0cHV0LmtpbmQgPT09IFJlc3VsdEtpbmQuRmFpbHVyZSkge1xuICAgICAgeWllbGQgeyBzdWNjZXNzOiBmYWxzZSB9O1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBidWlsZE91dHB1dC5raW5kID09PSBSZXN1bHRLaW5kLkluY3JlbWVudGFsIHx8XG4gICAgICBidWlsZE91dHB1dC5raW5kID09PSBSZXN1bHRLaW5kLkZ1bGxcbiAgICApIHtcbiAgICAgIGlmIChidWlsZE91dHB1dC5raW5kID09PSBSZXN1bHRLaW5kLkZ1bGwpIHtcbiAgICAgICAgb3V0cHV0RmlsZXMuY2xlYXIoKTtcbiAgICAgICAgT2JqZWN0LmtleXMoYnVpbGRPdXRwdXQuZmlsZXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIG91dHB1dEZpbGVzLnNldChrZXksIGJ1aWxkT3V0cHV0LmZpbGVzW2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGJ1aWxkT3V0cHV0LmZpbGVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBvdXRwdXRGaWxlcy5zZXQoa2V5LCBidWlsZE91dHB1dC5maWxlc1trZXldKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMud2F0Y2gpIHtcbiAgICAgIGNvbnN0IHZpdGVzdFNlcnZlciA9IGF3YWl0IHN0YXJ0Vml0ZXN0KCd0ZXN0JywgW10sIGNvbmZpZywgdml0ZUNvbmZpZyk7XG4gICAgICBzZXJ2ZXIgPSB2aXRlc3RTZXJ2ZXI7XG5cbiAgICAgIHlpZWxkIHsgc3VjY2VzczogdHJ1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXJ2ZXIgPSBhd2FpdCBzdGFydFZpdGVzdCgndGVzdCcsIFtdLCBjb25maWcsIHZpdGVDb25maWcpO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gc2VydmVyPy5zdGF0ZS5nZXRDb3VudE9mRmFpbGVkVGVzdHMoKSA9PT0gMDtcblxuICAgICAgeWllbGQgeyBzdWNjZXNzIH07XG4gICAgfVxuICB9XG5cbiAgeWllbGQgeyBzdWNjZXNzOiB0cnVlIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFeHRyYUFyZ3MoXG4gIG9wdGlvbnM6IFZpdGVzdFNjaGVtYVxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIC8vIHN1cHBvcnQgcGFzc2luZyBleHRyYSBhcmdzIHRvIFZpdGVzdCBDTElcbiAgY29uc3Qgc2NoZW1hID0gYXdhaXQgaW1wb3J0KCcuL3NjaGVtYS5qc29uJyk7XG4gIGNvbnN0IGV4dHJhQXJnczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvcHRpb25zKSkge1xuICAgIGlmICghKHNjaGVtYSBhcyBhbnkpLnByb3BlcnRpZXNba2V5XSkge1xuICAgICAgZXh0cmFBcmdzW2tleV0gPSAob3B0aW9ucyBhcyBhbnkpW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4dHJhQXJncztcbn1cblxuZnVuY3Rpb24gZmluZEluY2x1ZGVzKG9wdGlvbnM6IHtcbiAgd29ya3NwYWNlUm9vdDogc3RyaW5nO1xuICBwcm9qZWN0Um9vdDogc3RyaW5nO1xuICBpbmNsdWRlOiBzdHJpbmdbXTtcbiAgZXhjbHVkZTogc3RyaW5nW107XG59KSB7XG4gIGNvbnN0IGZnID0gcmVxdWlyZSgnZmFzdC1nbG9iJyk7XG4gIGNvbnN0IHsgbm9ybWFsaXplUGF0aCB9ID0gcmVxdWlyZSgndml0ZScpO1xuXG4gIGNvbnN0IHByb2plY3RSb290ID0gbm9ybWFsaXplUGF0aChcbiAgICBwYXRoLnJlc29sdmUob3B0aW9ucy53b3Jrc3BhY2VSb290LCBvcHRpb25zLnByb2plY3RSb290KVxuICApO1xuICBjb25zdCBnbG9icyA9IFsuLi5vcHRpb25zLmluY2x1ZGUubWFwKChnbG9iKSA9PiBgJHtwcm9qZWN0Um9vdH0vJHtnbG9ifWApXTtcblxuICByZXR1cm4gZmcuc3luYyhnbG9icywge1xuICAgIGRvdDogdHJ1ZSxcbiAgICBpZ25vcmU6IG9wdGlvbnMuZXhjbHVkZSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlRW50cnlQb2ludHMoe1xuICBwcm9qZWN0Um9vdCxcbiAgdGVzdEZpbGVzLFxuICBjb250ZXh0LFxuICBhbmd1bGFyVmVyc2lvbixcbn06IHtcbiAgcHJvamVjdFJvb3Q6IHN0cmluZztcbiAgdGVzdEZpbGVzOiBzdHJpbmdbXTtcbiAgY29udGV4dDogYW55O1xuICBhbmd1bGFyVmVyc2lvbjogbnVtYmVyO1xufSkge1xuICBpZiAoYW5ndWxhclZlcnNpb24gPCAxOSkge1xuICAgIHJldHVybiB0ZXN0RmlsZXM7XG4gIH1cblxuICBjb25zdCBzZWVuID0gbmV3IFNldCgpO1xuXG4gIHJldHVybiBuZXcgTWFwKFxuICAgIEFycmF5LmZyb20odGVzdEZpbGVzLCAodGVzdEZpbGUpID0+IHtcbiAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGhcbiAgICAgICAgLnJlbGF0aXZlKFxuICAgICAgICAgIHRlc3RGaWxlLnN0YXJ0c1dpdGgocHJvamVjdFJvb3QpXG4gICAgICAgICAgICA/IHByb2plY3RSb290XG4gICAgICAgICAgICA6IGNvbnRleHQud29ya3NwYWNlUm9vdCxcbiAgICAgICAgICB0ZXN0RmlsZVxuICAgICAgICApXG4gICAgICAgIC5yZXBsYWNlKC9eWy4vXSsvLCAnXycpXG4gICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcblxuICAgICAgbGV0IHVuaXF1ZU5hbWUgPSBgc3BlYy0ke3BhdGguYmFzZW5hbWUoXG4gICAgICAgIHJlbGF0aXZlUGF0aCxcbiAgICAgICAgcGF0aC5leHRuYW1lKHJlbGF0aXZlUGF0aClcbiAgICAgICl9YDtcbiAgICAgIGxldCBzdWZmaXggPSAyO1xuICAgICAgd2hpbGUgKHNlZW4uaGFzKHVuaXF1ZU5hbWUpKSB7XG4gICAgICAgIHVuaXF1ZU5hbWUgPSBgJHtyZWxhdGl2ZVBhdGh9LSR7c3VmZml4fWA7XG4gICAgICAgICsrc3VmZml4O1xuICAgICAgfVxuICAgICAgc2Vlbi5hZGQodW5pcXVlTmFtZSk7XG5cbiAgICAgIHJldHVybiBbdW5pcXVlTmFtZSwgdGVzdEZpbGVdO1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUJ1aWxkZXIodml0ZXN0QXBwbGljYXRpb25CdWlsZGVyKSBhcyB1bmtub3duO1xuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getExtraArgs = getExtraArgs;
|
|
4
|
+
const architect_1 = require("@angular-devkit/architect");
|
|
5
|
+
async function vitestBuilder(options, context) {
|
|
6
|
+
process.env['TEST'] = 'true';
|
|
7
|
+
process.env['VITEST'] = 'true';
|
|
8
|
+
const { startVitest } = await Function('return import("vitest/node")')();
|
|
9
|
+
const projectConfig = await context.getProjectMetadata(context.target);
|
|
10
|
+
const extraArgs = await getExtraArgs(options);
|
|
11
|
+
const config = {
|
|
12
|
+
root: `${projectConfig['root'] || '.'}`,
|
|
13
|
+
watch: options.watch === true,
|
|
14
|
+
config: options.configFile,
|
|
15
|
+
...extraArgs,
|
|
16
|
+
};
|
|
17
|
+
const server = await startVitest('test', options.testFiles ?? [], config);
|
|
18
|
+
let hasErrors = false;
|
|
19
|
+
const processExit = () => {
|
|
20
|
+
server?.exit();
|
|
21
|
+
if (hasErrors) {
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
process.exit(0);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
if (options.watch) {
|
|
29
|
+
process.on('SIGINT', processExit);
|
|
30
|
+
process.on('SIGTERM', processExit);
|
|
31
|
+
process.on('exit', processExit);
|
|
32
|
+
}
|
|
33
|
+
// vitest sets the exitCode = 1 when code coverage isn't met
|
|
34
|
+
hasErrors = (process.exitCode && process.exitCode !== 0);
|
|
35
|
+
return {
|
|
36
|
+
success: !hasErrors,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async function getExtraArgs(options) {
|
|
40
|
+
// support passing extra args to Vitest CLI
|
|
41
|
+
const schema = await Promise.resolve().then(() => require('./schema.json'));
|
|
42
|
+
const extraArgs = {};
|
|
43
|
+
for (const key of Object.keys(options)) {
|
|
44
|
+
if (!schema.properties[key]) {
|
|
45
|
+
extraArgs[key] = options[key];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return extraArgs;
|
|
49
|
+
}
|
|
50
|
+
exports.default = (0, architect_1.createBuilder)(vitestBuilder);
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy92aXRlc3QtYW5ndWxhci9zcmMvbGliL2J1aWxkZXJzL3Rlc3Qvdml0ZXN0LmltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5REEsb0NBYUM7QUF0RUQseURBSW1DO0FBSW5DLEtBQUssVUFBVSxhQUFhLENBQzFCLE9BQXFCLEVBQ3JCLE9BQXVCO0lBRXZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBRS9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFPLFFBQVEsQ0FDckMsOEJBQThCLENBQy9CLEVBQTRDLENBQUM7SUFFOUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQ3BELE9BQU8sQ0FBQyxNQUEyQixDQUNwQyxDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsTUFBTSxNQUFNLEdBQUc7UUFDYixJQUFJLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFO1FBQ3ZDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUk7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzFCLEdBQUcsU0FBUztLQUNiLENBQUM7SUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFMUUsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRXRCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRTtRQUN2QixNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDZixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBWSxDQUFDO0lBRXBFLE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQyxTQUFTO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLFlBQVksQ0FDaEMsT0FBcUI7SUFFckIsMkNBQTJDO0lBQzNDLE1BQU0sTUFBTSxHQUFHLDJDQUFhLGVBQWUsRUFBQyxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUF3QixFQUFFLENBQUM7SUFDMUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFFLE1BQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUksT0FBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELGtCQUFlLElBQUEseUJBQWEsRUFBQyxhQUFhLENBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJ1aWxkZXJDb250ZXh0LFxuICBCdWlsZGVyT3V0cHV0LFxuICBjcmVhdGVCdWlsZGVyLFxufSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcblxuaW1wb3J0IHsgVml0ZXN0U2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5hc3luYyBmdW5jdGlvbiB2aXRlc3RCdWlsZGVyKFxuICBvcHRpb25zOiBWaXRlc3RTY2hlbWEsXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0XG4pOiBQcm9taXNlPEJ1aWxkZXJPdXRwdXQ+IHtcbiAgcHJvY2Vzcy5lbnZbJ1RFU1QnXSA9ICd0cnVlJztcbiAgcHJvY2Vzcy5lbnZbJ1ZJVEVTVCddID0gJ3RydWUnO1xuXG4gIGNvbnN0IHsgc3RhcnRWaXRlc3QgfSA9IGF3YWl0IChGdW5jdGlvbihcbiAgICAncmV0dXJuIGltcG9ydChcInZpdGVzdC9ub2RlXCIpJ1xuICApKCkgYXMgUHJvbWlzZTx0eXBlb2YgaW1wb3J0KCd2aXRlc3Qvbm9kZScpPik7XG5cbiAgY29uc3QgcHJvamVjdENvbmZpZyA9IGF3YWl0IGNvbnRleHQuZ2V0UHJvamVjdE1ldGFkYXRhKFxuICAgIGNvbnRleHQudGFyZ2V0IGFzIHVua25vd24gYXMgc3RyaW5nXG4gICk7XG4gIGNvbnN0IGV4dHJhQXJncyA9IGF3YWl0IGdldEV4dHJhQXJncyhvcHRpb25zKTtcbiAgY29uc3QgY29uZmlnID0ge1xuICAgIHJvb3Q6IGAke3Byb2plY3RDb25maWdbJ3Jvb3QnXSB8fCAnLid9YCxcbiAgICB3YXRjaDogb3B0aW9ucy53YXRjaCA9PT0gdHJ1ZSxcbiAgICBjb25maWc6IG9wdGlvbnMuY29uZmlnRmlsZSxcbiAgICAuLi5leHRyYUFyZ3MsXG4gIH07XG5cbiAgY29uc3Qgc2VydmVyID0gYXdhaXQgc3RhcnRWaXRlc3QoJ3Rlc3QnLCBvcHRpb25zLnRlc3RGaWxlcyA/PyBbXSwgY29uZmlnKTtcblxuICBsZXQgaGFzRXJyb3JzID0gZmFsc2U7XG5cbiAgY29uc3QgcHJvY2Vzc0V4aXQgPSAoKSA9PiB7XG4gICAgc2VydmVyPy5leGl0KCk7XG4gICAgaWYgKGhhc0Vycm9ycykge1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxuICB9O1xuXG4gIGlmIChvcHRpb25zLndhdGNoKSB7XG4gICAgcHJvY2Vzcy5vbignU0lHSU5UJywgcHJvY2Vzc0V4aXQpO1xuICAgIHByb2Nlc3Mub24oJ1NJR1RFUk0nLCBwcm9jZXNzRXhpdCk7XG4gICAgcHJvY2Vzcy5vbignZXhpdCcsIHByb2Nlc3NFeGl0KTtcbiAgfVxuXG4gIC8vIHZpdGVzdCBzZXRzIHRoZSBleGl0Q29kZSA9IDEgd2hlbiBjb2RlIGNvdmVyYWdlIGlzbid0IG1ldFxuICBoYXNFcnJvcnMgPSAocHJvY2Vzcy5leGl0Q29kZSAmJiBwcm9jZXNzLmV4aXRDb2RlICE9PSAwKSBhcyBib29sZWFuO1xuXG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogIWhhc0Vycm9ycyxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEV4dHJhQXJncyhcbiAgb3B0aW9uczogVml0ZXN0U2NoZW1hXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgLy8gc3VwcG9ydCBwYXNzaW5nIGV4dHJhIGFyZ3MgdG8gVml0ZXN0IENMSVxuICBjb25zdCBzY2hlbWEgPSBhd2FpdCBpbXBvcnQoJy4vc2NoZW1hLmpzb24nKTtcbiAgY29uc3QgZXh0cmFBcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9wdGlvbnMpKSB7XG4gICAgaWYgKCEoc2NoZW1hIGFzIGFueSkucHJvcGVydGllc1trZXldKSB7XG4gICAgICBleHRyYUFyZ3Nba2V5XSA9IChvcHRpb25zIGFzIGFueSlba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXh0cmFBcmdzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVCdWlsZGVyKHZpdGVzdEJ1aWxkZXIpIGFzIGFueTtcbiJdfQ==
|
package/src/lib/vitest.impl.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getExtraArgs = getExtraArgs;
|
|
4
|
-
const architect_1 = require("@angular-devkit/architect");
|
|
5
|
-
async function vitestBuilder(options, context) {
|
|
6
|
-
process.env['TEST'] = 'true';
|
|
7
|
-
process.env['VITEST'] = 'true';
|
|
8
|
-
const { startVitest } = await Function('return import("vitest/node")')();
|
|
9
|
-
const projectConfig = await context.getProjectMetadata(context.target);
|
|
10
|
-
const extraArgs = await getExtraArgs(options);
|
|
11
|
-
const config = {
|
|
12
|
-
root: `${projectConfig['root'] || '.'}`,
|
|
13
|
-
watch: options.watch === true,
|
|
14
|
-
config: options.configFile,
|
|
15
|
-
...extraArgs,
|
|
16
|
-
};
|
|
17
|
-
const server = await startVitest('test', options.testFiles ?? [], config);
|
|
18
|
-
let hasErrors = false;
|
|
19
|
-
const processExit = () => {
|
|
20
|
-
server?.exit();
|
|
21
|
-
if (hasErrors) {
|
|
22
|
-
process.exit(1);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
process.exit(0);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
if (options.watch) {
|
|
29
|
-
process.on('SIGINT', processExit);
|
|
30
|
-
process.on('SIGTERM', processExit);
|
|
31
|
-
process.on('exit', processExit);
|
|
32
|
-
}
|
|
33
|
-
// vitest sets the exitCode = 1 when code coverage isn't met
|
|
34
|
-
hasErrors = (process.exitCode && process.exitCode !== 0);
|
|
35
|
-
return {
|
|
36
|
-
success: !hasErrors,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
async function getExtraArgs(options) {
|
|
40
|
-
// support passing extra args to Vitest CLI
|
|
41
|
-
const schema = await Promise.resolve().then(() => require('./schema.json'));
|
|
42
|
-
const extraArgs = {};
|
|
43
|
-
for (const key of Object.keys(options)) {
|
|
44
|
-
if (!schema.properties[key]) {
|
|
45
|
-
extraArgs[key] = options[key];
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return extraArgs;
|
|
49
|
-
}
|
|
50
|
-
exports.default = (0, architect_1.createBuilder)(vitestBuilder);
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy92aXRlc3QtYW5ndWxhci9zcmMvbGliL3ZpdGVzdC5pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeURBLG9DQWFDO0FBdEVELHlEQUltQztBQUluQyxLQUFLLFVBQVUsYUFBYSxDQUMxQixPQUFxQixFQUNyQixPQUF1QjtJQUV2QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUUvQixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTyxRQUFRLENBQ3JDLDhCQUE4QixDQUMvQixFQUE0QyxDQUFDO0lBRTlDLE1BQU0sYUFBYSxHQUFHLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixDQUNwRCxPQUFPLENBQUMsTUFBMkIsQ0FDcEMsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRTtRQUN2QyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJO1FBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVTtRQUMxQixHQUFHLFNBQVM7S0FDYixDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTFFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztJQUV0QixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2YsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsNERBQTREO0lBQzVELFNBQVMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQVksQ0FBQztJQUVwRSxPQUFPO1FBQ0wsT0FBTyxFQUFFLENBQUMsU0FBUztLQUNwQixDQUFDO0FBQ0osQ0FBQztBQUVNLEtBQUssVUFBVSxZQUFZLENBQ2hDLE9BQXFCO0lBRXJCLDJDQUEyQztJQUMzQyxNQUFNLE1BQU0sR0FBRywyQ0FBYSxlQUFlLEVBQUMsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBd0IsRUFBRSxDQUFDO0lBQzFDLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBRSxNQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFJLE9BQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxrQkFBZSxJQUFBLHlCQUFhLEVBQUMsYUFBYSxDQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCdWlsZGVyQ29udGV4dCxcbiAgQnVpbGRlck91dHB1dCxcbiAgY3JlYXRlQnVpbGRlcixcbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5cbmltcG9ydCB7IFZpdGVzdFNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuYXN5bmMgZnVuY3Rpb24gdml0ZXN0QnVpbGRlcihcbiAgb3B0aW9uczogVml0ZXN0U2NoZW1hLFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dFxuKTogUHJvbWlzZTxCdWlsZGVyT3V0cHV0PiB7XG4gIHByb2Nlc3MuZW52WydURVNUJ10gPSAndHJ1ZSc7XG4gIHByb2Nlc3MuZW52WydWSVRFU1QnXSA9ICd0cnVlJztcblxuICBjb25zdCB7IHN0YXJ0Vml0ZXN0IH0gPSBhd2FpdCAoRnVuY3Rpb24oXG4gICAgJ3JldHVybiBpbXBvcnQoXCJ2aXRlc3Qvbm9kZVwiKSdcbiAgKSgpIGFzIFByb21pc2U8dHlwZW9mIGltcG9ydCgndml0ZXN0L25vZGUnKT4pO1xuXG4gIGNvbnN0IHByb2plY3RDb25maWcgPSBhd2FpdCBjb250ZXh0LmdldFByb2plY3RNZXRhZGF0YShcbiAgICBjb250ZXh0LnRhcmdldCBhcyB1bmtub3duIGFzIHN0cmluZ1xuICApO1xuICBjb25zdCBleHRyYUFyZ3MgPSBhd2FpdCBnZXRFeHRyYUFyZ3Mob3B0aW9ucyk7XG4gIGNvbnN0IGNvbmZpZyA9IHtcbiAgICByb290OiBgJHtwcm9qZWN0Q29uZmlnWydyb290J10gfHwgJy4nfWAsXG4gICAgd2F0Y2g6IG9wdGlvbnMud2F0Y2ggPT09IHRydWUsXG4gICAgY29uZmlnOiBvcHRpb25zLmNvbmZpZ0ZpbGUsXG4gICAgLi4uZXh0cmFBcmdzLFxuICB9O1xuXG4gIGNvbnN0IHNlcnZlciA9IGF3YWl0IHN0YXJ0Vml0ZXN0KCd0ZXN0Jywgb3B0aW9ucy50ZXN0RmlsZXMgPz8gW10sIGNvbmZpZyk7XG5cbiAgbGV0IGhhc0Vycm9ycyA9IGZhbHNlO1xuXG4gIGNvbnN0IHByb2Nlc3NFeGl0ID0gKCkgPT4ge1xuICAgIHNlcnZlcj8uZXhpdCgpO1xuICAgIGlmIChoYXNFcnJvcnMpIHtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH1cbiAgfTtcblxuICBpZiAob3B0aW9ucy53YXRjaCkge1xuICAgIHByb2Nlc3Mub24oJ1NJR0lOVCcsIHByb2Nlc3NFeGl0KTtcbiAgICBwcm9jZXNzLm9uKCdTSUdURVJNJywgcHJvY2Vzc0V4aXQpO1xuICAgIHByb2Nlc3Mub24oJ2V4aXQnLCBwcm9jZXNzRXhpdCk7XG4gIH1cblxuICAvLyB2aXRlc3Qgc2V0cyB0aGUgZXhpdENvZGUgPSAxIHdoZW4gY29kZSBjb3ZlcmFnZSBpc24ndCBtZXRcbiAgaGFzRXJyb3JzID0gKHByb2Nlc3MuZXhpdENvZGUgJiYgcHJvY2Vzcy5leGl0Q29kZSAhPT0gMCkgYXMgYm9vbGVhbjtcblxuICByZXR1cm4ge1xuICAgIHN1Y2Nlc3M6ICFoYXNFcnJvcnMsXG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFeHRyYUFyZ3MoXG4gIG9wdGlvbnM6IFZpdGVzdFNjaGVtYVxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIC8vIHN1cHBvcnQgcGFzc2luZyBleHRyYSBhcmdzIHRvIFZpdGVzdCBDTElcbiAgY29uc3Qgc2NoZW1hID0gYXdhaXQgaW1wb3J0KCcuL3NjaGVtYS5qc29uJyk7XG4gIGNvbnN0IGV4dHJhQXJnczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvcHRpb25zKSkge1xuICAgIGlmICghKHNjaGVtYSBhcyBhbnkpLnByb3BlcnRpZXNba2V5XSkge1xuICAgICAgZXh0cmFBcmdzW2tleV0gPSAob3B0aW9ucyBhcyBhbnkpW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4dHJhQXJncztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlQnVpbGRlcih2aXRlc3RCdWlsZGVyKSBhcyBhbnk7XG4iXX0=
|
|
File without changes
|
|
File without changes
|