testplane 8.40.7 → 8.40.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/build/package.json +1 -1
- package/build/src/browser/cdp/selectivity/constants.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/constants.js +3 -1
- package/build/src/browser/cdp/selectivity/constants.js.map +1 -1
- package/build/src/browser/cdp/selectivity/css-selectivity.d.ts +1 -0
- package/build/src/browser/cdp/selectivity/css-selectivity.js +102 -64
- package/build/src/browser/cdp/selectivity/css-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/fs-cache.d.ts +9 -0
- package/build/src/browser/cdp/selectivity/fs-cache.js +100 -0
- package/build/src/browser/cdp/selectivity/fs-cache.js.map +1 -0
- package/build/src/browser/cdp/selectivity/hash-provider.js +1 -1
- package/build/src/browser/cdp/selectivity/hash-provider.js.map +1 -1
- package/build/src/browser/cdp/selectivity/index.js +7 -1
- package/build/src/browser/cdp/selectivity/index.js.map +1 -1
- package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +1 -0
- package/build/src/browser/cdp/selectivity/js-selectivity.js +143 -70
- package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/json-utils.js +3 -3
- package/build/src/browser/cdp/selectivity/json-utils.js.map +1 -1
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js +34 -9
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/types.d.ts +3 -0
- package/build/src/browser/cdp/selectivity/utils.d.ts +3 -1
- package/build/src/browser/cdp/selectivity/utils.js +9 -8
- package/build/src/browser/cdp/selectivity/utils.js.map +1 -1
- package/build/src/utils/crypto.d.ts +1 -0
- package/build/src/utils/crypto.js +2 -1
- package/build/src/utils/crypto.js.map +1 -1
- package/package.json +1 -1
package/build/package.json
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WEBPACK_PROTOCOL = void 0;
|
|
3
|
+
exports.SELECTIVITY_CACHE_READY_SUFFIX = exports.SELECTIVITY_CACHE_DIRECTIRY = exports.WEBPACK_PROTOCOL = void 0;
|
|
4
4
|
exports.WEBPACK_PROTOCOL = "webpack://";
|
|
5
|
+
exports.SELECTIVITY_CACHE_DIRECTIRY = "testplane-selectivity-cache";
|
|
6
|
+
exports.SELECTIVITY_CACHE_READY_SUFFIX = "-ready";
|
|
5
7
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAChC,QAAA,2BAA2B,GAAG,6BAA6B,CAAC;AAC5D,QAAA,8BAA8B,GAAG,QAAQ,CAAC"}
|
|
@@ -6,6 +6,7 @@ export declare class CSSSelectivity {
|
|
|
6
6
|
private readonly _sourceRoot;
|
|
7
7
|
private _cssOnStyleSheetAddedFn;
|
|
8
8
|
private _stylesSourceMap;
|
|
9
|
+
private _styleSheetIdToSourceMapUrl;
|
|
9
10
|
constructor(cdp: CDP, sessionId: CDPSessionId, sourceRoot?: string);
|
|
10
11
|
private _processStyle;
|
|
11
12
|
start(): Promise<void>;
|
|
@@ -9,10 +9,13 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
9
9
|
const node_url_1 = require("node:url");
|
|
10
10
|
const constants_1 = require("../../../error-snippets/constants");
|
|
11
11
|
const utils_1 = require("./utils");
|
|
12
|
+
const fs_cache_1 = require("./fs-cache");
|
|
13
|
+
const debug_1 = require("./debug");
|
|
12
14
|
class CSSSelectivity {
|
|
13
15
|
constructor(cdp, sessionId, sourceRoot = "") {
|
|
14
16
|
this._cssOnStyleSheetAddedFn = null;
|
|
15
17
|
this._stylesSourceMap = {};
|
|
18
|
+
this._styleSheetIdToSourceMapUrl = {};
|
|
16
19
|
this._cdp = cdp;
|
|
17
20
|
this._sessionId = sessionId;
|
|
18
21
|
this._sourceRoot = sourceRoot;
|
|
@@ -22,10 +25,30 @@ class CSSSelectivity {
|
|
|
22
25
|
return;
|
|
23
26
|
}
|
|
24
27
|
if (!sourceURL || !sourceMapURL) {
|
|
25
|
-
this._stylesSourceMap[styleSheetId] ||= null;
|
|
28
|
+
this._stylesSourceMap[styleSheetId] ||= Promise.resolve(null);
|
|
26
29
|
return;
|
|
27
30
|
}
|
|
28
|
-
|
|
31
|
+
const sourceMapResolvedUrl = (0, node_url_1.resolve)(sourceURL, sourceMapURL);
|
|
32
|
+
// Embedded source maps are not cached on file system because of their large cache key
|
|
33
|
+
if ((0, utils_1.isDataProtocol)(sourceMapResolvedUrl)) {
|
|
34
|
+
this._styleSheetIdToSourceMapUrl[styleSheetId] = null;
|
|
35
|
+
this._stylesSourceMap[styleSheetId] ||= (0, utils_1.fetchTextWithBrowserFallback)(sourceMapResolvedUrl, this._cdp.runtime, this._sessionId).catch((err) => err);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this._styleSheetIdToSourceMapUrl[styleSheetId] = sourceMapResolvedUrl;
|
|
39
|
+
this._stylesSourceMap[styleSheetId] ||= (0, fs_cache_1.hasCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapResolvedUrl).then(isCached => {
|
|
40
|
+
return isCached
|
|
41
|
+
? true
|
|
42
|
+
: (0, utils_1.fetchTextWithBrowserFallback)(sourceMapResolvedUrl, this._cdp.runtime, this._sessionId)
|
|
43
|
+
.then(data => (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapResolvedUrl, data)
|
|
44
|
+
.then(() => true)
|
|
45
|
+
.catch(err => {
|
|
46
|
+
(0, debug_1.debugSelectivity)(`Couldn't offload asset from "${sourceMapResolvedUrl}" to fs-cache: %O`, err);
|
|
47
|
+
return data;
|
|
48
|
+
}))
|
|
49
|
+
.catch((err) => err);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
29
52
|
}
|
|
30
53
|
async start() {
|
|
31
54
|
const cssOnStyleSheetAdded = (this._cssOnStyleSheetAddedFn = this._processStyle.bind(this));
|
|
@@ -40,72 +63,87 @@ class CSSSelectivity {
|
|
|
40
63
|
}
|
|
41
64
|
/** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
|
|
42
65
|
async stop(drop) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
const coverage = await this._cdp.css.stopRuleUsageTracking(this._sessionId);
|
|
48
|
-
// If we haven't got "styleSheetAdded" event for the script, pull up styles + source map manually
|
|
49
|
-
coverage.ruleUsage.forEach(({ styleSheetId }) => {
|
|
50
|
-
if (Object.hasOwn(this._stylesSourceMap, styleSheetId)) {
|
|
51
|
-
return;
|
|
66
|
+
try {
|
|
67
|
+
if (drop) {
|
|
68
|
+
return null;
|
|
52
69
|
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
.
|
|
57
|
-
|
|
58
|
-
if (sourceCode instanceof Error) {
|
|
59
|
-
return sourceCode;
|
|
70
|
+
const coverage = await this._cdp.css.stopRuleUsageTracking(this._sessionId);
|
|
71
|
+
// If we haven't got "styleSheetAdded" event for the script, pull up styles + source map manually
|
|
72
|
+
coverage.ruleUsage.forEach(({ styleSheetId }) => {
|
|
73
|
+
if (Object.hasOwn(this._stylesSourceMap, styleSheetId)) {
|
|
74
|
+
return;
|
|
60
75
|
}
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
76
|
+
const scriptSourcePromise = this._cdp.css
|
|
77
|
+
.getStyleSheetText(this._sessionId, styleSheetId)
|
|
78
|
+
.then(res => res.text)
|
|
79
|
+
.catch((err) => err);
|
|
80
|
+
this._stylesSourceMap[styleSheetId] ||= scriptSourcePromise.then(sourceCode => {
|
|
81
|
+
if (sourceCode instanceof Error) {
|
|
82
|
+
return sourceCode;
|
|
83
|
+
}
|
|
84
|
+
const sourceMapsStartIndex = sourceCode.lastIndexOf(constants_1.CSS_SOURCE_MAP_URL_COMMENT);
|
|
85
|
+
const sourceMapsEndIndex = sourceCode.indexOf("*/", sourceMapsStartIndex);
|
|
86
|
+
// Source maps are not generated for this source file
|
|
87
|
+
if (sourceMapsStartIndex === -1) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const sourceMapURL = sourceMapsEndIndex === -1
|
|
91
|
+
? sourceCode.slice(sourceMapsStartIndex + constants_1.CSS_SOURCE_MAP_URL_COMMENT.length)
|
|
92
|
+
: sourceCode.slice(sourceMapsStartIndex + constants_1.CSS_SOURCE_MAP_URL_COMMENT.length, sourceMapsEndIndex);
|
|
93
|
+
// If we encounter css stylesheet, that was not reported by "styleSheetAdded"
|
|
94
|
+
// We can only get sourcemaps if they are inlined
|
|
95
|
+
// Otherwise, we can't resolve actual sourcemaps url because we dont know css styles url itself.
|
|
96
|
+
if (!(0, utils_1.isDataProtocol)(sourceMapURL)) {
|
|
97
|
+
return new Error([
|
|
98
|
+
`Missed stylesheet url for stylesheet id ${styleSheetId}.`,
|
|
99
|
+
"Looks like Chrome Devtools 'styleSheetAdded' event was lost",
|
|
100
|
+
"It could happen due to network instability",
|
|
101
|
+
"Switching to inline sourcemaps for CSS will help at the cost of increased RAM usage",
|
|
102
|
+
].join("\n"));
|
|
103
|
+
}
|
|
104
|
+
return (0, utils_1.fetchTextWithBrowserFallback)(sourceMapURL, this._cdp.runtime, this._sessionId).catch((err) => err);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
const totalDependingSourceFiles = new Set();
|
|
108
|
+
const grouppedByStyleSheetCoverage = (0, lodash_1.groupBy)(coverage.ruleUsage, "styleSheetId");
|
|
109
|
+
const styleSheetIds = Object.keys(grouppedByStyleSheetCoverage);
|
|
110
|
+
await Promise.all(styleSheetIds.map(async (styleSheetId) => {
|
|
111
|
+
const sourceMap = await this._stylesSourceMap[styleSheetId];
|
|
112
|
+
const sourceMapUrl = this._styleSheetIdToSourceMapUrl[styleSheetId];
|
|
113
|
+
if (!sourceMap) {
|
|
114
|
+
return;
|
|
65
115
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
: sourceCode.slice(sourceMapsStartIndex + constants_1.CSS_SOURCE_MAP_URL_COMMENT.length, sourceMapsEndIndex);
|
|
69
|
-
const isSourceMapEmbedded = new node_url_1.URL(sourceMapURL).protocol === "data:";
|
|
70
|
-
// If we encounter css stylesheet, that was not reported by "styleSheetAdded"
|
|
71
|
-
// We can only get sourcemaps if they are inlined
|
|
72
|
-
// Otherwise, we can't resolve actual sourcemaps url because we dont know css styles url itself.
|
|
73
|
-
if (!isSourceMapEmbedded) {
|
|
74
|
-
return new Error([
|
|
75
|
-
`Missed stylesheet url for stylesheet id ${styleSheetId}.`,
|
|
76
|
-
"Switching to inline sourcemaps for CSS will help",
|
|
77
|
-
].join("\n"));
|
|
116
|
+
if (sourceMap instanceof Error) {
|
|
117
|
+
throw new Error(`CSS Selectivity: Couldn't load source maps for stylesheet id ${styleSheetId}`, { cause: sourceMap });
|
|
78
118
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
this._cssOnStyleSheetAddedFn && this._cdp.css.off("styleSheetAdded", this._cssOnStyleSheetAddedFn);
|
|
108
|
-
return totalDependingSourceFiles;
|
|
119
|
+
if ((0, utils_1.isCachedOnFs)(sourceMap) && !sourceMapUrl) {
|
|
120
|
+
throw new Error("Assertation failed: souce map url has to present if source maps are fs-cached");
|
|
121
|
+
}
|
|
122
|
+
const sourceMapString = (0, utils_1.isCachedOnFs)(sourceMap)
|
|
123
|
+
? await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl)
|
|
124
|
+
: sourceMap;
|
|
125
|
+
if (!sourceMapString) {
|
|
126
|
+
throw new Error(`CSS Selectivity: fs-cache is broken for ${sourceMapUrl}`);
|
|
127
|
+
}
|
|
128
|
+
const rawSourceMap = (0, utils_1.patchSourceMapSources)(JSON.parse(sourceMapString), this._sourceRoot);
|
|
129
|
+
// We could check "if stylesheet was used" with utils.extractSourceFilesDeps
|
|
130
|
+
// But we dont, because if stylesheet was not used, it could be used after change
|
|
131
|
+
// So its safe to think "if stylesheet was loaded, it was used"
|
|
132
|
+
rawSourceMap.sources.forEach(sourceFilePath => {
|
|
133
|
+
// "Each entry is either a string that is a (potentially relative) URL", so we are using posix.jojn
|
|
134
|
+
// https://tc39.es/ecma426/#sec-source-map-format
|
|
135
|
+
// Except for file path with protocol ("turbopack://", "file://")
|
|
136
|
+
const sourceRootBasedPath = (0, utils_1.hasProtocol)(sourceFilePath)
|
|
137
|
+
? sourceFilePath
|
|
138
|
+
: node_path_1.default.posix.join(rawSourceMap.sourceRoot || "", sourceFilePath);
|
|
139
|
+
totalDependingSourceFiles.add(sourceRootBasedPath);
|
|
140
|
+
});
|
|
141
|
+
}));
|
|
142
|
+
return totalDependingSourceFiles;
|
|
143
|
+
}
|
|
144
|
+
finally {
|
|
145
|
+
this._cssOnStyleSheetAddedFn && this._cdp.css.off("styleSheetAdded", this._cssOnStyleSheetAddedFn);
|
|
146
|
+
}
|
|
109
147
|
}
|
|
110
148
|
}
|
|
111
149
|
exports.CSSSelectivity = CSSSelectivity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/css-selectivity.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAiC;AACjC,0DAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"css-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/css-selectivity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const CacheType: {
|
|
2
|
+
readonly TestFile: "t";
|
|
3
|
+
readonly Asset: "a";
|
|
4
|
+
};
|
|
5
|
+
type CacheTypeValue = (typeof CacheType)[keyof typeof CacheType];
|
|
6
|
+
export declare const hasCachedSelectivityFile: (cacheType: CacheTypeValue, key: string) => Promise<boolean>;
|
|
7
|
+
export declare const getCachedSelectivityFile: (cacheType: CacheTypeValue, key: string) => Promise<string | null>;
|
|
8
|
+
export declare const setCachedSelectivityFile: (cacheType: CacheTypeValue, key: string, utf8Contents: string) => Promise<void>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setCachedSelectivityFile = exports.getCachedSelectivityFile = exports.hasCachedSelectivityFile = exports.CacheType = void 0;
|
|
7
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const proper_lockfile_1 = __importDefault(require("proper-lockfile"));
|
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
11
|
+
const crypto_1 = require("../../../utils/crypto");
|
|
12
|
+
const constants_1 = require("./constants");
|
|
13
|
+
exports.CacheType = {
|
|
14
|
+
TestFile: "t",
|
|
15
|
+
Asset: "a",
|
|
16
|
+
};
|
|
17
|
+
// Cache is considered fresh if it was created after process start
|
|
18
|
+
const processStartTime = Number(new Date());
|
|
19
|
+
const tmpDir = node_path_1.default.join(node_os_1.default.tmpdir(), constants_1.SELECTIVITY_CACHE_DIRECTIRY);
|
|
20
|
+
const ensureSelectivityCacheDirectory = async () => {
|
|
21
|
+
await fs_extra_1.default.ensureDir(tmpDir);
|
|
22
|
+
};
|
|
23
|
+
const wasModifiedAfterProcessStart = async (flagFilePath) => {
|
|
24
|
+
try {
|
|
25
|
+
const stats = await fs_extra_1.default.stat(flagFilePath);
|
|
26
|
+
return stats.mtimeMs >= processStartTime;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const hasCachedSelectivityFile = async (cacheType, key) => {
|
|
33
|
+
const hashName = cacheType + (0, crypto_1.getMD5)(key);
|
|
34
|
+
const cacheFilePath = node_path_1.default.join(tmpDir, hashName);
|
|
35
|
+
const flagFilePath = cacheFilePath + constants_1.SELECTIVITY_CACHE_READY_SUFFIX;
|
|
36
|
+
return wasModifiedAfterProcessStart(flagFilePath);
|
|
37
|
+
};
|
|
38
|
+
exports.hasCachedSelectivityFile = hasCachedSelectivityFile;
|
|
39
|
+
const getCachedSelectivityFile = async (cacheType, key) => {
|
|
40
|
+
const hashName = cacheType + (0, crypto_1.getMD5)(key);
|
|
41
|
+
const cacheFilePath = node_path_1.default.join(tmpDir, hashName);
|
|
42
|
+
const flagFilePath = cacheFilePath + constants_1.SELECTIVITY_CACHE_READY_SUFFIX;
|
|
43
|
+
if (await wasModifiedAfterProcessStart(flagFilePath)) {
|
|
44
|
+
const cacheContents = await fs_extra_1.default.readFile(cacheFilePath, "utf8").catch(() => null);
|
|
45
|
+
return cacheContents;
|
|
46
|
+
}
|
|
47
|
+
// Writing cache right now, should wait a little bit
|
|
48
|
+
if (await wasModifiedAfterProcessStart(cacheFilePath)) {
|
|
49
|
+
for (let i = 0; i < 10; i++) {
|
|
50
|
+
if (await wasModifiedAfterProcessStart(flagFilePath)) {
|
|
51
|
+
const cacheContents = await fs_extra_1.default.readFile(cacheFilePath, "utf8").catch(() => null);
|
|
52
|
+
return cacheContents;
|
|
53
|
+
}
|
|
54
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
};
|
|
59
|
+
exports.getCachedSelectivityFile = getCachedSelectivityFile;
|
|
60
|
+
const setCachedSelectivityFile = async (cacheType, key, utf8Contents) => {
|
|
61
|
+
const hashName = cacheType + (0, crypto_1.getMD5)(key);
|
|
62
|
+
const cacheFilePath = node_path_1.default.join(tmpDir, hashName);
|
|
63
|
+
const flagFilePath = cacheFilePath + constants_1.SELECTIVITY_CACHE_READY_SUFFIX;
|
|
64
|
+
// Cache was already written
|
|
65
|
+
if (await wasModifiedAfterProcessStart(flagFilePath)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
await ensureSelectivityCacheDirectory();
|
|
69
|
+
const releaseLock = await proper_lockfile_1.default
|
|
70
|
+
.lock(flagFilePath, {
|
|
71
|
+
stale: 5000,
|
|
72
|
+
update: 1000,
|
|
73
|
+
retries: { minTimeout: 50, maxTimeout: 50, retries: 1 },
|
|
74
|
+
realpath: false,
|
|
75
|
+
})
|
|
76
|
+
.catch(() => null);
|
|
77
|
+
// Other process already aquired writing-lock
|
|
78
|
+
if (!releaseLock) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
// Cache was written while trying to get lock
|
|
82
|
+
if (await wasModifiedAfterProcessStart(flagFilePath)) {
|
|
83
|
+
await releaseLock();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
await fs_extra_1.default.writeFile(cacheFilePath, utf8Contents, { encoding: "utf8" }).catch(cause => {
|
|
88
|
+
throw new Error(`Couldn't write cache to "${cacheFilePath}"`, { cause });
|
|
89
|
+
});
|
|
90
|
+
// Using "writeFile" to trigger "mtime" update even if file exists
|
|
91
|
+
await fs_extra_1.default.writeFile(flagFilePath, "").catch(cause => {
|
|
92
|
+
throw new Error(`Couldn't mark cache as fresh at "${cacheFilePath}"`, { cause });
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
await releaseLock();
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
exports.setCachedSelectivityFile = setCachedSelectivityFile;
|
|
100
|
+
//# sourceMappingURL=fs-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-cache.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/fs-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ const calculateFileMd5Hash = (filePath) => new Promise((resolve, reject) => {
|
|
|
35
35
|
const fileReadStream = node_fs_1.default.createReadStream(filePath);
|
|
36
36
|
fileReadStream.on("data", chunk => hash.update(chunk));
|
|
37
37
|
fileReadStream.on("end", () => resolve(hash.digest("hex")));
|
|
38
|
-
fileReadStream.on("error",
|
|
38
|
+
fileReadStream.on("error", cause => reject(new Error(`Selectivity: Couldn't calculate hash for ${filePath}`, { cause })));
|
|
39
39
|
});
|
|
40
40
|
class HashProvider {
|
|
41
41
|
async calculateForFile(filePath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-provider.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/hash-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,8DAAiC;AACjC,sDAAyB;AAEzB,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAmB,EAAE,CAC/D,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC5B,MAAM,IAAI,GAAG,qBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,iBAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAErD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hash-provider.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/hash-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,13 @@ const startSelectivity = async (browser) => {
|
|
|
59
59
|
const sessionId = await cdpTaget.attachToTarget(cdpTargetId).then(r => r.sessionId);
|
|
60
60
|
const cssSelectivity = new css_selectivity_1.CSSSelectivity(browser.cdp, sessionId, sourceRoot);
|
|
61
61
|
const jsSelectivity = new js_selectivity_1.JSSelectivity(browser.cdp, sessionId, sourceRoot);
|
|
62
|
-
await Promise.
|
|
62
|
+
await Promise.allSettled([cssSelectivity.start(), jsSelectivity.start()]).then(async ([css, js]) => {
|
|
63
|
+
if (css.status === "rejected" || js.status === "rejected") {
|
|
64
|
+
await Promise.all([cssSelectivity.stop(true), jsSelectivity.stop(true)]);
|
|
65
|
+
const originalError = css.status === "rejected" ? css.reason : js.status === "rejected" ? js.reason : "unknown reason";
|
|
66
|
+
throw new Error("Selectivity: Couldn't start selectivity", { cause: originalError });
|
|
67
|
+
}
|
|
68
|
+
});
|
|
63
69
|
/** @param drop only performs cleanup without writing anything. Should be "true" if test is failed */
|
|
64
70
|
return async function stopSelectivity(test, drop) {
|
|
65
71
|
const [cssDependencies, jsDependencies] = await Promise.all([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare class JSSelectivity {
|
|
|
8
8
|
private _debuggerOnScriptParsedFn;
|
|
9
9
|
private _scriptsSource;
|
|
10
10
|
private _scriptsSourceMap;
|
|
11
|
+
private _scriptIdToSourceMapUrl;
|
|
11
12
|
constructor(cdp: CDP, sessionId: CDPSessionId, sourceRoot?: string);
|
|
12
13
|
private _processScript;
|
|
13
14
|
start(): Promise<void>;
|
|
@@ -5,6 +5,8 @@ const lodash_1 = require("lodash");
|
|
|
5
5
|
const node_url_1 = require("node:url");
|
|
6
6
|
const constants_1 = require("../../../error-snippets/constants");
|
|
7
7
|
const utils_1 = require("./utils");
|
|
8
|
+
const fs_cache_1 = require("./fs-cache");
|
|
9
|
+
const debug_1 = require("./debug");
|
|
8
10
|
const SOURCE_CODE_EXTENSIONS = [".js", ".jsx", ".ts", ".tsx", ".mjs", ".cjs", ".mts", ".cts"];
|
|
9
11
|
const isSourceCodeFile = (sourceFileName) => {
|
|
10
12
|
return SOURCE_CODE_EXTENSIONS.some(ext => sourceFileName.endsWith(ext));
|
|
@@ -15,6 +17,7 @@ class JSSelectivity {
|
|
|
15
17
|
this._debuggerOnScriptParsedFn = null;
|
|
16
18
|
this._scriptsSource = {};
|
|
17
19
|
this._scriptsSourceMap = {};
|
|
20
|
+
this._scriptIdToSourceMapUrl = {};
|
|
18
21
|
this._cdp = cdp;
|
|
19
22
|
this._sessionId = sessionId;
|
|
20
23
|
this._sourceRoot = sourceRoot;
|
|
@@ -24,15 +27,45 @@ class JSSelectivity {
|
|
|
24
27
|
return;
|
|
25
28
|
}
|
|
26
29
|
if (!url || !sourceMapURL) {
|
|
27
|
-
this._scriptsSource[scriptId] ||= null;
|
|
28
|
-
this._scriptsSourceMap[scriptId] ||= null;
|
|
30
|
+
this._scriptsSource[scriptId] ||= Promise.resolve(null);
|
|
31
|
+
this._scriptsSourceMap[scriptId] ||= Promise.resolve(null);
|
|
29
32
|
return;
|
|
30
33
|
}
|
|
31
|
-
this._scriptsSource[scriptId] ||=
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
this._scriptsSource[scriptId] ||= (0, fs_cache_1.hasCachedSelectivityFile)(fs_cache_1.CacheType.Asset, url).then(isCached => {
|
|
35
|
+
return isCached
|
|
36
|
+
? true
|
|
37
|
+
: this._cdp.debugger
|
|
38
|
+
.getScriptSource(this._sessionId, scriptId)
|
|
39
|
+
.then(res => res.scriptSource)
|
|
40
|
+
.then(data => (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, url, data)
|
|
41
|
+
.then(() => true)
|
|
42
|
+
.catch(err => {
|
|
43
|
+
(0, debug_1.debugSelectivity)(`Couldn't offload asset from "${url}" to fs-cache: %O`, err);
|
|
44
|
+
return data;
|
|
45
|
+
}))
|
|
46
|
+
.catch((err) => err);
|
|
47
|
+
});
|
|
48
|
+
const sourceMapResolvedUrl = (0, node_url_1.resolve)(url, sourceMapURL);
|
|
49
|
+
// Embedded source maps are not cached on file system because of their large cache key
|
|
50
|
+
if ((0, utils_1.isDataProtocol)(sourceMapResolvedUrl)) {
|
|
51
|
+
this._scriptIdToSourceMapUrl[scriptId] = null;
|
|
52
|
+
this._scriptsSourceMap[scriptId] ||= (0, utils_1.fetchTextWithBrowserFallback)(sourceMapResolvedUrl, this._cdp.runtime, this._sessionId).catch((err) => err);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this._scriptIdToSourceMapUrl[scriptId] = sourceMapResolvedUrl;
|
|
56
|
+
this._scriptsSourceMap[scriptId] ||= (0, fs_cache_1.hasCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapResolvedUrl).then(isCached => {
|
|
57
|
+
return isCached
|
|
58
|
+
? true
|
|
59
|
+
: (0, utils_1.fetchTextWithBrowserFallback)(sourceMapResolvedUrl, this._cdp.runtime, this._sessionId)
|
|
60
|
+
.then(data => (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapResolvedUrl, data)
|
|
61
|
+
.then(() => true)
|
|
62
|
+
.catch(err => {
|
|
63
|
+
(0, debug_1.debugSelectivity)(`Couldn't offload asset from "${sourceMapResolvedUrl}" to fs-cache: %O`, err);
|
|
64
|
+
return data;
|
|
65
|
+
}))
|
|
66
|
+
.catch((err) => err);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
36
69
|
}
|
|
37
70
|
async start() {
|
|
38
71
|
const debuggerOnPaused = (this._debuggerOnPausedFn = async () => {
|
|
@@ -54,75 +87,115 @@ class JSSelectivity {
|
|
|
54
87
|
}
|
|
55
88
|
/** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
|
|
56
89
|
async stop(drop) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
const coverage = await this._cdp.profiler.takePreciseCoverage(this._sessionId);
|
|
63
|
-
const scriptsWithUrl = coverage.result.filter(script => script.url);
|
|
64
|
-
// If we haven't got "scriptParsed" event for the script, pull up source code + source map manually
|
|
65
|
-
scriptsWithUrl.forEach(({ scriptId, url }) => {
|
|
66
|
-
if (Object.hasOwn(this._scriptsSource, scriptId) && Object.hasOwn(this._scriptsSourceMap, scriptId)) {
|
|
67
|
-
return;
|
|
90
|
+
try {
|
|
91
|
+
if (drop) {
|
|
92
|
+
return null;
|
|
68
93
|
}
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return sourceCode;
|
|
94
|
+
const coverage = await this._cdp.profiler.takePreciseCoverage(this._sessionId);
|
|
95
|
+
const scriptsWithUrl = coverage.result.filter(script => script.url);
|
|
96
|
+
// If we haven't got "scriptParsed" event for the script, pull up source code + source map manually
|
|
97
|
+
scriptsWithUrl.forEach(({ scriptId, url }) => {
|
|
98
|
+
// Was processed with "this._processScript"
|
|
99
|
+
if (Object.hasOwn(this._scriptsSource, scriptId) && Object.hasOwn(this._scriptsSourceMap, scriptId)) {
|
|
100
|
+
return;
|
|
77
101
|
}
|
|
78
|
-
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
102
|
+
// Not dropping sources to fs the end of test (when "stop" is called) because we use it immediately
|
|
103
|
+
const scriptSourcePromise = this._cdp.debugger
|
|
104
|
+
.getScriptSource(this._sessionId, scriptId)
|
|
105
|
+
.then(({ scriptSource }) => {
|
|
106
|
+
(0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, url, scriptSource).catch(() => { });
|
|
107
|
+
return scriptSource;
|
|
108
|
+
})
|
|
109
|
+
.catch((err) => err);
|
|
110
|
+
this._scriptsSource[scriptId] ||= scriptSourcePromise;
|
|
111
|
+
this._scriptsSourceMap[scriptId] ||= scriptSourcePromise.then(async (sourceCode) => {
|
|
112
|
+
if (sourceCode instanceof Error) {
|
|
113
|
+
return sourceCode;
|
|
114
|
+
}
|
|
115
|
+
const sourceMapsStartIndex = sourceCode.lastIndexOf(constants_1.JS_SOURCE_MAP_URL_COMMENT);
|
|
116
|
+
const sourceMapsEndIndex = sourceCode.indexOf("\n", sourceMapsStartIndex);
|
|
117
|
+
// Source maps are not generated for this source file
|
|
118
|
+
if (sourceMapsStartIndex === -1) {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
const sourceMapURL = sourceMapsEndIndex === -1
|
|
122
|
+
? sourceCode.slice(sourceMapsStartIndex + constants_1.JS_SOURCE_MAP_URL_COMMENT.length)
|
|
123
|
+
: sourceCode.slice(sourceMapsStartIndex + constants_1.JS_SOURCE_MAP_URL_COMMENT.length, sourceMapsEndIndex);
|
|
124
|
+
if ((0, utils_1.isDataProtocol)(sourceMapURL)) {
|
|
125
|
+
return (0, utils_1.fetchTextWithBrowserFallback)(sourceMapURL, this._cdp.runtime, this._sessionId).catch((err) => err);
|
|
126
|
+
}
|
|
127
|
+
const resolvedSourceMapUrl = (0, node_url_1.resolve)(url, sourceMapURL);
|
|
128
|
+
this._scriptIdToSourceMapUrl[scriptId] ||= resolvedSourceMapUrl;
|
|
129
|
+
try {
|
|
130
|
+
const cachedSourceMaps = await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, resolvedSourceMapUrl);
|
|
131
|
+
if (cachedSourceMaps) {
|
|
132
|
+
return cachedSourceMaps;
|
|
133
|
+
}
|
|
134
|
+
const sourceMap = await (0, utils_1.fetchTextWithBrowserFallback)(resolvedSourceMapUrl, this._cdp.runtime, this._sessionId);
|
|
135
|
+
(0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, resolvedSourceMapUrl, sourceMap).catch(() => { });
|
|
136
|
+
return sourceMap;
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
return err;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
87
142
|
});
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
143
|
+
const totalDependingSourceFiles = new Set();
|
|
144
|
+
const grouppedByScriptCoverage = (0, lodash_1.groupBy)(coverage.result, "scriptId");
|
|
145
|
+
const scriptIds = Object.keys(grouppedByScriptCoverage);
|
|
146
|
+
await Promise.all(scriptIds.map(async (scriptId) => {
|
|
147
|
+
// Every "scriptId" has only one uniq "url"
|
|
148
|
+
const url = grouppedByScriptCoverage[scriptId][0].url;
|
|
149
|
+
const [source, sourceMaps] = await Promise.all([
|
|
150
|
+
this._scriptsSource[scriptId],
|
|
151
|
+
this._scriptsSourceMap[scriptId],
|
|
152
|
+
]);
|
|
153
|
+
const sourceMapUrl = this._scriptIdToSourceMapUrl[scriptId];
|
|
154
|
+
// Function was called, but source maps were not generated for the file
|
|
155
|
+
if (!source || !sourceMaps) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (source instanceof Error) {
|
|
159
|
+
throw new Error(`JS Selectivity: Couldn't load source code from ${url}`, { cause: source });
|
|
160
|
+
}
|
|
161
|
+
if (sourceMaps instanceof Error) {
|
|
162
|
+
throw new Error(`JS Selectivity: Couldn't load source maps from ${sourceMapUrl}`, {
|
|
163
|
+
cause: sourceMaps,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
if ((0, utils_1.isCachedOnFs)(sourceMaps) && !sourceMapUrl) {
|
|
167
|
+
throw new Error("Assertation failed: souce map url has to present if source maps are fs-cached");
|
|
168
|
+
}
|
|
169
|
+
const sourceString = (0, utils_1.isCachedOnFs)(source)
|
|
170
|
+
? await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, url)
|
|
171
|
+
: source;
|
|
172
|
+
const sourceMapsString = (0, utils_1.isCachedOnFs)(sourceMaps)
|
|
173
|
+
? await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl)
|
|
174
|
+
: sourceMaps;
|
|
175
|
+
if (!sourceString || !sourceMapsString) {
|
|
176
|
+
throw new Error(`JS Selectivity: fs-cache is broken for ${url}`);
|
|
177
|
+
}
|
|
178
|
+
const startOffsetsSet = new Set();
|
|
179
|
+
grouppedByScriptCoverage[scriptId].forEach(entry => {
|
|
180
|
+
entry.functions.forEach(fn => {
|
|
181
|
+
fn.ranges.forEach(range => {
|
|
182
|
+
startOffsetsSet.add(range.startOffset);
|
|
183
|
+
});
|
|
113
184
|
});
|
|
114
185
|
});
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
186
|
+
const dependingSourceFiles = await (0, utils_1.extractSourceFilesDeps)(sourceString, sourceMapsString, Array.from(startOffsetsSet), this._sourceRoot);
|
|
187
|
+
for (const sourceFile of dependingSourceFiles.values()) {
|
|
188
|
+
if (isSourceCodeFile(sourceFile)) {
|
|
189
|
+
totalDependingSourceFiles.add(sourceFile);
|
|
190
|
+
}
|
|
120
191
|
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
192
|
+
}));
|
|
193
|
+
return totalDependingSourceFiles;
|
|
194
|
+
}
|
|
195
|
+
finally {
|
|
196
|
+
this._debuggerOnPausedFn && this._cdp.debugger.off("paused", this._debuggerOnPausedFn);
|
|
197
|
+
this._debuggerOnScriptParsedFn && this._cdp.debugger.off("scriptParsed", this._debuggerOnScriptParsedFn);
|
|
198
|
+
}
|
|
126
199
|
}
|
|
127
200
|
}
|
|
128
201
|
exports.JSSelectivity = JSSelectivity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/js-selectivity.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AACjC,uCAAiD;
|
|
1
|
+
{"version":3,"file":"js-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/js-selectivity.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AACjC,uCAAiD;AACjD,iEAA8E;AAC9E,mCAA6G;AAC7G,yCAAqH;AACrH,mCAA2C;AAM3C,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9F,MAAM,gBAAgB,GAAG,CAAC,cAAsB,EAAW,EAAE;IACzD,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAa,aAAa;IAUtB,YAAY,GAAQ,EAAE,SAAuB,EAAE,UAAU,GAAG,EAAE;QANtD,wBAAmB,GAAwB,IAAI,CAAC;QAChD,8BAAyB,GAA8D,IAAI,CAAC;QAC5F,mBAAc,GAAsD,EAAE,CAAC;QACvE,sBAAiB,GAAsD,EAAE,CAAC;QAC1E,4BAAuB,GAA8C,EAAE,CAAC;QAG5E,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAEO,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAkC;QAClF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO;QACX,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC7F,OAAO,QAAQ;gBACX,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;qBACb,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;qBAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC;qBAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,CACT,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;qBAC/C,IAAI,CAAC,GAAG,EAAE,CAAC,IAAa,CAAC;qBACzB,KAAK,CAAC,GAAG,CAAC,EAAE;oBACT,IAAA,wBAAgB,EAAC,gCAAgC,GAAG,mBAAmB,EAAE,GAAG,CAAC,CAAC;oBAC9E,OAAO,IAAI,CAAC;gBAChB,CAAC,CAAC,CACT;qBACA,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAE3D,sFAAsF;QACtF,IAAI,IAAA,sBAAc,EAAC,oBAAoB,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YAC9C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,IAAA,oCAA4B,EAC7D,oBAAoB,EACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,UAAU,CAClB,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;YAC9D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,IAAI,CACrG,QAAQ,CAAC,EAAE;gBACP,OAAO,QAAQ;oBACX,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,IAAA,oCAA4B,EAAC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;yBACjF,IAAI,CAAC,IAAI,CAAC,EAAE,CACT,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,oBAAoB,EAAE,IAAI,CAAC;yBAChE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAa,CAAC;yBACzB,KAAK,CAAC,GAAG,CAAC,EAAE;wBACT,IAAA,wBAAgB,EACZ,gCAAgC,oBAAoB,mBAAmB,EACvE,GAAG,CACN,CAAC;wBACF,OAAO,IAAI,CAAC;oBAChB,CAAC,CAAC,CACT;yBACA,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,mBAAmB,GAAG,KAAK,IAAmB,EAAE;YAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,MAAM,wBAAwB,GAAG,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnG,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEhE,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC;YAC9F,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC/C,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;gBACf,qBAAqB,EAAE,KAAK;aAC/B,CAAC,CACL;SACJ,CAAC,CAAC;IACP,CAAC;IAED,0GAA0G;IAC1G,KAAK,CAAC,IAAI,CAAC,IAAc;QACrB,IAAI,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE/E,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEpE,mGAAmG;YACnG,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE;gBACzC,2CAA2C;gBAC3C,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAClG,OAAO;gBACX,CAAC;gBAED,mGAAmG;gBACnG,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;qBACzC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;qBAC1C,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;oBACvB,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAC7E,OAAO,YAAY,CAAC;gBACxB,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBAEhC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,mBAAmB,CAAC;gBACtD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAC,UAAU,EAAC,EAAE;oBAC7E,IAAI,UAAU,YAAY,KAAK,EAAE,CAAC;wBAC9B,OAAO,UAAU,CAAC;oBACtB,CAAC;oBAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,CAAC,qCAAyB,CAAC,CAAC;oBAC/E,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;oBAE1E,qDAAqD;oBACrD,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC;oBAChB,CAAC;oBAED,MAAM,YAAY,GACd,kBAAkB,KAAK,CAAC,CAAC;wBACrB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,GAAG,qCAAyB,CAAC,MAAM,CAAC;wBAC3E,CAAC,CAAC,UAAU,CAAC,KAAK,CACZ,oBAAoB,GAAG,qCAAyB,CAAC,MAAM,EACvD,kBAAkB,CACrB,CAAC;oBAEZ,IAAI,IAAA,sBAAc,EAAC,YAAY,CAAC,EAAE,CAAC;wBAC/B,OAAO,IAAA,oCAA4B,EAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CACvF,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CACtB,CAAC;oBACN,CAAC;oBAED,MAAM,oBAAoB,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;oBAE3D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,KAAK,oBAAoB,CAAC;oBAEhE,IAAI,CAAC;wBACD,MAAM,gBAAgB,GAAG,MAAM,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;wBAE/F,IAAI,gBAAgB,EAAE,CAAC;4BACnB,OAAO,gBAAgB,CAAC;wBAC5B,CAAC;wBAED,MAAM,SAAS,GAAG,MAAM,IAAA,oCAA4B,EAChD,oBAAoB,EACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,UAAU,CAClB,CAAC;wBAEF,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBAE3F,OAAO,SAAS,CAAC;oBACrB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACX,OAAO,GAAY,CAAC;oBACxB,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;YACpD,MAAM,wBAAwB,GAAG,IAAA,gBAAO,EAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAExD,MAAM,OAAO,CAAC,GAAG,CACb,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;gBAC3B,2CAA2C;gBAC3C,MAAM,GAAG,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACtD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;oBAC7B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;iBACnC,CAAC,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;gBAE5D,uEAAuE;gBACvE,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACzB,OAAO;gBACX,CAAC;gBAED,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAChG,CAAC;gBAED,IAAI,UAAU,YAAY,KAAK,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,YAAY,EAAE,EAAE;wBAC9E,KAAK,EAAE,UAAU;qBACpB,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,IAAA,oBAAY,EAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CACX,+EAA+E,CAClF,CAAC;gBACN,CAAC;gBAED,MAAM,YAAY,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC;oBACrC,CAAC,CAAC,MAAM,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,GAAG,CAAC;oBACtD,CAAC,CAAC,MAAM,CAAC;gBACb,MAAM,gBAAgB,GAAG,IAAA,oBAAY,EAAC,UAAU,CAAC;oBAC7C,CAAC,CAAC,MAAM,IAAA,mCAAwB,EAAC,oBAAS,CAAC,KAAK,EAAE,YAAsB,CAAC;oBACzE,CAAC,CAAC,UAAU,CAAC;gBAEjB,IAAI,CAAC,YAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;gBACrE,CAAC;gBAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;gBAE1C,wBAAwB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC/C,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACzB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACtB,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBAC3C,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,MAAM,oBAAoB,GAAG,MAAM,IAAA,8BAAsB,EACrD,YAAY,EACZ,gBAAgB,EAChB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAC3B,IAAI,CAAC,WAAW,CACnB,CAAC;gBAEF,KAAK,MAAM,UAAU,IAAI,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;oBACrD,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/B,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC9C,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CACL,CAAC;YAEF,OAAO,yBAAyB,CAAC;QACrC,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACvF,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;CACJ;AApQD,sCAoQC"}
|
|
@@ -55,7 +55,7 @@ const readCompressedTextFile = (filePath, compression) => {
|
|
|
55
55
|
resolve(fileData);
|
|
56
56
|
});
|
|
57
57
|
stream.on("error", err => {
|
|
58
|
-
reject(new Error(`Couldn't read ${filePath} with ${compression} compression
|
|
58
|
+
reject(new Error(`Couldn't read ${filePath} with ${compression} compression`, { cause: err }));
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
61
|
};
|
|
@@ -82,7 +82,7 @@ const writeCompressedTextFile = (filePath, data, compression) => {
|
|
|
82
82
|
}
|
|
83
83
|
stream.write(data, "utf8", err => {
|
|
84
84
|
if (err) {
|
|
85
|
-
reject(new Error(`Couldn't write to ${filePath} with ${compression} compression
|
|
85
|
+
reject(new Error(`Couldn't write to ${filePath} with ${compression} compression`, { cause: err }));
|
|
86
86
|
}
|
|
87
87
|
else {
|
|
88
88
|
stream.end();
|
|
@@ -92,7 +92,7 @@ const writeCompressedTextFile = (filePath, data, compression) => {
|
|
|
92
92
|
resolve();
|
|
93
93
|
});
|
|
94
94
|
writeStream.on("error", err => {
|
|
95
|
-
reject(new Error(`Couldn't save to ${filePath} with ${compression} compression
|
|
95
|
+
reject(new Error(`Couldn't save to ${filePath} with ${compression} compression`, { cause: err }));
|
|
96
96
|
});
|
|
97
97
|
});
|
|
98
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-utils.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/json-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"json-utils.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/json-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,12 @@ exports.readTestFileWithTestplaneDependenciesCollecting = exports.runWithTestpla
|
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const module_1 = require("module");
|
|
9
9
|
const async_hooks_1 = require("async_hooks");
|
|
10
|
+
const fs_cache_1 = require("./fs-cache");
|
|
11
|
+
const debug_1 = require("./debug");
|
|
10
12
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
13
|
const TypedModule = module_1.Module;
|
|
12
14
|
const testDependenciesStorage = new async_hooks_1.AsyncLocalStorage();
|
|
13
|
-
const
|
|
15
|
+
const testFileDependenciesRamCache = new Map();
|
|
14
16
|
let disableCollectingDependenciesCb = null;
|
|
15
17
|
const disableCollectingTestplaneDependencies = () => {
|
|
16
18
|
if (disableCollectingDependenciesCb) {
|
|
@@ -51,10 +53,14 @@ exports.getCollectedTestplaneDependencies = getCollectedTestplaneDependencies;
|
|
|
51
53
|
const runWithTestplaneDependenciesCollecting = (fn) => {
|
|
52
54
|
(0, exports.enableCollectingTestplaneDependencies)();
|
|
53
55
|
const store = { jsTestplaneDeps: new Set() };
|
|
54
|
-
return testDependenciesStorage.run(store, fn)
|
|
56
|
+
return testDependenciesStorage.run(store, fn).finally(() => {
|
|
57
|
+
// After "fn" completion, "store" is reachable in CDP ping interval callback, so it never GC-removed
|
|
58
|
+
// Thats why we do it manually. Removing "jsTestplaneDeps" is enough, and set remains unchanged, if used
|
|
59
|
+
delete store.jsTestplaneDeps;
|
|
60
|
+
});
|
|
55
61
|
};
|
|
56
62
|
exports.runWithTestplaneDependenciesCollecting = runWithTestplaneDependenciesCollecting;
|
|
57
|
-
const readTestFileWithTestplaneDependenciesCollecting = (file, fn) => {
|
|
63
|
+
const readTestFileWithTestplaneDependenciesCollecting = async (file, fn) => {
|
|
58
64
|
if (!disableCollectingDependenciesCb) {
|
|
59
65
|
return fn();
|
|
60
66
|
}
|
|
@@ -63,14 +69,33 @@ const readTestFileWithTestplaneDependenciesCollecting = (file, fn) => {
|
|
|
63
69
|
if (!jsTestplaneDeps) {
|
|
64
70
|
return fn();
|
|
65
71
|
}
|
|
66
|
-
const
|
|
67
|
-
if (
|
|
68
|
-
|
|
72
|
+
const ramCachedDependencies = testFileDependenciesRamCache.get(file);
|
|
73
|
+
if (ramCachedDependencies) {
|
|
74
|
+
ramCachedDependencies.forEach(dependency => jsTestplaneDeps.add(dependency));
|
|
69
75
|
return fn();
|
|
70
76
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
const fsCachedDependencies = await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.TestFile, file);
|
|
78
|
+
if (fsCachedDependencies) {
|
|
79
|
+
let parsedDependencies;
|
|
80
|
+
try {
|
|
81
|
+
parsedDependencies = JSON.parse(fsCachedDependencies);
|
|
82
|
+
}
|
|
83
|
+
catch (cause) {
|
|
84
|
+
throw new Error(`Selectivity: It looks like fs-cache for "${file}" dependencies is broken: contents of cache file is invalid JSON`, { cause });
|
|
85
|
+
}
|
|
86
|
+
parsedDependencies.forEach(dependency => jsTestplaneDeps.add(dependency));
|
|
87
|
+
return fn();
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
return await fn();
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
const cacheValue = Array.from(jsTestplaneDeps).sort((a, b) => a.localeCompare(b));
|
|
94
|
+
await (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.TestFile, file, JSON.stringify(cacheValue)).catch(err => {
|
|
95
|
+
testFileDependenciesRamCache.set(file, cacheValue);
|
|
96
|
+
(0, debug_1.debugSelectivity)(`Couldn't offload test dependencies from "${file}" to fs-cache: %O`, err);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
74
99
|
};
|
|
75
100
|
exports.readTestFileWithTestplaneDependenciesCollecting = readTestFileWithTestplaneDependenciesCollecting;
|
|
76
101
|
//# sourceMappingURL=testplane-selectivity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testplane-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/testplane-selectivity.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,mCAAiD;AACjD,6CAAgD;
|
|
1
|
+
{"version":3,"file":"testplane-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/testplane-selectivity.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,mCAAiD;AACjD,6CAAgD;AAChD,yCAA2F;AAC3F,mCAA2C;AAE3C,8DAA8D;AAC9D,MAAM,WAAW,GAAG,eAAiF,CAAC;AACtG,MAAM,uBAAuB,GAAG,IAAI,+BAAiB,EAAqC,CAAC;AAC3F,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAoB,CAAC;AAEjE,IAAI,+BAA+B,GAAwB,IAAI,CAAC;AAEzD,MAAM,sCAAsC,GAAG,GAAS,EAAE;IAC7D,IAAI,+BAA+B,EAAE,CAAC;QAClC,+BAA+B,EAAE,CAAC;QAClC,+BAA+B,GAAG,IAAI,CAAC;IAC3C,CAAC;AACL,CAAC,CAAC;AALW,QAAA,sCAAsC,0CAKjD;AAEK,MAAM,qCAAqC,GAAG,GAAS,EAAE;IAC5D,IAAI,+BAA+B,EAAE,CAAC;QAClC,OAAO;IACX,CAAC;IAED,MAAM,uBAAuB,GAAG,WAAW,CAAC,gBAAgB,CAAC;IAE7D,+BAA+B,GAAG,GAAS,EAAE;QACzC,WAAW,CAAC,gBAAgB,GAAG,uBAAuB,CAAC;IAC3D,CAAC,CAAC;IAEF,WAAW,CAAC,gBAAgB,GAAG;QAC3B,8CAA8C;QAC9C,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,+BAA+B,CAAC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1F,MAAM,OAAO,GAAG,MAAM,IAAI,cAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEhG,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;gBACnB,MAAM,YAAY,GACd,cAAI,CAAC,GAAG,KAAK,cAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,cAAI,CAAC,GAAG,EAAE,cAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzF,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC,CAAC,+BAA+B;QAE1C,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,CAAC;AA5BW,QAAA,qCAAqC,yCA4BhD;AAEK,MAAM,iCAAiC,GAAG,GAAuB,EAAE;IACtE,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,EAAE,CAAC;IAEjD,OAAO,KAAK,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC,CAAC;AAJW,QAAA,iCAAiC,qCAI5C;AAEK,MAAM,sCAAsC,GAAG,CAAI,EAAoB,EAAc,EAAE;IAC1F,IAAA,6CAAqC,GAAE,CAAC;IAExC,MAAM,KAAK,GAAsC,EAAE,eAAe,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAEhF,OAAO,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACvD,oGAAoG;QACpG,wGAAwG;QACxG,OAAO,KAAK,CAAC,eAAe,CAAC;IACjC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAVW,QAAA,sCAAsC,0CAUjD;AAEK,MAAM,+CAA+C,GAAG,KAAK,EAChE,IAAY,EACZ,EAAoB,EACV,EAAE;IACZ,IAAI,CAAC,+BAA+B,EAAE,CAAC;QACnC,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,EAAE,CAAC;IACjD,MAAM,eAAe,GAAG,KAAK,IAAI,KAAK,CAAC,eAAe,CAAC;IAEvD,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAErE,IAAI,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAE7E,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAM,IAAA,mCAAwB,EAAC,oBAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEtF,IAAI,oBAAoB,EAAE,CAAC;QACvB,IAAI,kBAA4B,CAAC;QACjC,IAAI,CAAC;YACD,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAa,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACX,4CAA4C,IAAI,kEAAkE,EAClH,EAAE,KAAK,EAAE,CACZ,CAAC;QACN,CAAC;QAED,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAE1E,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACD,OAAO,MAAM,EAAE,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACP,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAElF,MAAM,IAAA,mCAAwB,EAAC,oBAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC7F,4BAA4B,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAEnD,IAAA,wBAAgB,EAAC,4CAA4C,IAAI,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC;AApDW,QAAA,+CAA+C,mDAoD1D"}
|
|
@@ -18,3 +18,6 @@ export type HashFileContents = {
|
|
|
18
18
|
modules: Record<string, string>;
|
|
19
19
|
patterns: Record<string, string>;
|
|
20
20
|
};
|
|
21
|
+
export type CachedOnFs = true;
|
|
22
|
+
export type ActualValue = string;
|
|
23
|
+
export type SelectivityAssetState = Promise<CachedOnFs | ActualValue | Error | null>;
|
|
@@ -10,7 +10,7 @@ import type { Test } from "../../../types";
|
|
|
10
10
|
* @param sessionId CDP session id
|
|
11
11
|
* @returns text
|
|
12
12
|
*/
|
|
13
|
-
export declare const fetchTextWithBrowserFallback: (url: string, runtime: CDPRuntime, sessionId: CDPSessionId) => Promise<string
|
|
13
|
+
export declare const fetchTextWithBrowserFallback: (url: string, runtime: CDPRuntime, sessionId: CDPSessionId) => Promise<string>;
|
|
14
14
|
/**
|
|
15
15
|
* Replaces "webpack://" protocol with source path because "source-map" doesn't work well with protocol paths
|
|
16
16
|
* @param sourceMap Raw source maps in https://tc39.es/ecma426/ format
|
|
@@ -31,6 +31,7 @@ export declare const extractSourceFilesDeps: (source: string, sourceMaps: string
|
|
|
31
31
|
* @returns True, if fileUrlLikePath has some kind of protocol ("data://", "webpack://", "turbopack://", "file://")...
|
|
32
32
|
*/
|
|
33
33
|
export declare const hasProtocol: (fileUrlLikePath: string) => boolean;
|
|
34
|
+
export declare const isDataProtocol: (fileUrlLikePath: string) => boolean;
|
|
34
35
|
/**
|
|
35
36
|
* @param cssDependencies set of css dependenciy URI's
|
|
36
37
|
* @param jsDependencies set of js dependenciy URI's
|
|
@@ -46,3 +47,4 @@ export declare const getSelectivityTestsPath: (testDependenciesPath: string) =>
|
|
|
46
47
|
export declare const getTestDependenciesPath: (selectivityTestsPath: string, test: Test) => string;
|
|
47
48
|
/** @returns `Promise<Record<BrowserID, Record<DepType, NormalizedDependencies>>>` */
|
|
48
49
|
export declare const readTestDependencies: (selectivityTestsPath: string, test: Test, compression: SelectivityCompressionType) => Promise<Record<string, Record<string, NormalizedDependencies>>>;
|
|
50
|
+
export declare const isCachedOnFs: (value: unknown) => value is true;
|
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.readTestDependencies = exports.getTestDependenciesPath = exports.getSelectivityTestsPath = exports.readHashFileContents = exports.getSelectivityHashesPath = exports.shallowSortObject = exports.mergeSourceDependencies = exports.transformSourceDependencies = exports.hasProtocol = exports.extractSourceFilesDeps = exports.patchSourceMapSources = exports.fetchTextWithBrowserFallback = void 0;
|
|
29
|
+
exports.isCachedOnFs = exports.readTestDependencies = exports.getTestDependenciesPath = exports.getSelectivityTestsPath = exports.readHashFileContents = exports.getSelectivityHashesPath = exports.shallowSortObject = exports.mergeSourceDependencies = exports.transformSourceDependencies = exports.isDataProtocol = exports.hasProtocol = exports.extractSourceFilesDeps = exports.patchSourceMapSources = exports.fetchTextWithBrowserFallback = void 0;
|
|
30
30
|
const lodash_1 = require("lodash");
|
|
31
31
|
const source_map_js_1 = require("source-map-js");
|
|
32
32
|
const fs_1 = __importDefault(require("fs"));
|
|
@@ -48,9 +48,7 @@ const fetchTextWithBrowserFallback = async (url, runtime, sessionId) => {
|
|
|
48
48
|
if (isSourceMapEmbedded) {
|
|
49
49
|
// With "data" protocol it just decodes embedded source maps without actual network requests
|
|
50
50
|
// So we can do it directly from node.js
|
|
51
|
-
return fetch(url)
|
|
52
|
-
.then(r => r.text())
|
|
53
|
-
.catch((err) => err);
|
|
51
|
+
return fetch(url).then(r => r.text());
|
|
54
52
|
}
|
|
55
53
|
// At first, trying to fetch sourceMaps directly from the node.js
|
|
56
54
|
// Then falling back to do it via browser (if Testplane has no direct network access to it, for example)
|
|
@@ -64,8 +62,7 @@ const fetchTextWithBrowserFallback = async (url, runtime, sessionId) => {
|
|
|
64
62
|
awaitPromise: true,
|
|
65
63
|
returnByValue: true,
|
|
66
64
|
})
|
|
67
|
-
.then(r => r.result.value)
|
|
68
|
-
.catch((err) => err);
|
|
65
|
+
.then(r => r.result.value);
|
|
69
66
|
}
|
|
70
67
|
};
|
|
71
68
|
exports.fetchTextWithBrowserFallback = fetchTextWithBrowserFallback;
|
|
@@ -146,7 +143,9 @@ const getProtocol = (fileUrlLikePath) => {
|
|
|
146
143
|
return null;
|
|
147
144
|
}
|
|
148
145
|
};
|
|
149
|
-
const
|
|
146
|
+
const isDataProtocol = (fileUrlLikePath) => fileUrlLikePath.startsWith("data:");
|
|
147
|
+
exports.isDataProtocol = isDataProtocol;
|
|
148
|
+
const ensurePosixRelativeDependencyPathExists = (posixRelativePath) => {
|
|
150
149
|
const relativePath = posixRelativePath.replaceAll(path_1.default.posix.sep, path_1.default.sep);
|
|
151
150
|
if (fs_1.default.existsSync(relativePath)) {
|
|
152
151
|
return;
|
|
@@ -156,7 +155,7 @@ const ensurePosixRelativeDependencyPathExists = (0, lodash_1.memoize)((posixRela
|
|
|
156
155
|
"Please ensure 'sources' of generated source maps contain valid paths to existing files",
|
|
157
156
|
"Configuring 'sourceRoot' in Testplane selectivity config also might help",
|
|
158
157
|
].join("\n"));
|
|
159
|
-
}
|
|
158
|
+
};
|
|
160
159
|
const warnUnsupportedProtocol = (0, lodash_1.memoize)((protocol, dependency) => {
|
|
161
160
|
logger.warn(`Selectivity: Ignoring dependencies of unsupported protocol "${protocol}" (example: "${dependency}")`);
|
|
162
161
|
});
|
|
@@ -302,4 +301,6 @@ const readTestDependencies = (selectivityTestsPath, test, compression) => (0, js
|
|
|
302
301
|
defaultValue: {},
|
|
303
302
|
}).catch(() => ({}));
|
|
304
303
|
exports.readTestDependencies = readTestDependencies;
|
|
304
|
+
const isCachedOnFs = (value) => value === true;
|
|
305
|
+
exports.isCachedOnFs = isCachedOnFs;
|
|
305
306
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA8C;AAC9C,iDAAqE;AACrE,4CAAoB;AACpB,gDAAwB;AACxB,6BAA0B;AAC1B,8DAAgD;AAGhD,0CAAsD;AAEtD,2CAA+C;AAC/C,6CAAuD;AAGvD;;;;;;GAMG;AACI,MAAM,4BAA4B,GAAG,KAAK,EAC7C,GAAW,EACX,OAAmB,EACnB,SAAuB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const crypto = require("crypto");
|
|
3
|
-
exports.
|
|
3
|
+
exports.getMD5 = str => crypto.createHash("md5").update(str, "ascii").digest("hex");
|
|
4
|
+
exports.getShortMD5 = str => exports.getMD5(str).substr(0, 7);
|
|
4
5
|
//# sourceMappingURL=crypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/utils/crypto.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/utils/crypto.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpF,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|