@memlab/core 1.1.22 → 1.1.24
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/dist/__tests__/lib/TestUtils.d.ts +13 -0
- package/dist/__tests__/lib/TestUtils.d.ts.map +1 -0
- package/dist/__tests__/lib/TestUtils.js +39 -0
- package/dist/__tests__/parser/HeapParser.test.d.ts.map +1 -0
- package/dist/__tests__/parser/NodeHeap.test.d.ts.map +1 -0
- package/dist/__tests__/parser/StringNode.test.d.ts.map +1 -0
- package/dist/__tests__/parser/traverse/HeapNodeTraverse.test.d.ts.map +1 -0
- package/dist/__tests__/utils/utils.test.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -1
- package/dist/lib/BaseOption.d.ts.map +1 -0
- package/dist/lib/BrowserInfo.d.ts +1 -1
- package/dist/lib/BrowserInfo.d.ts.map +1 -0
- package/dist/lib/Config.d.ts +2 -2
- package/dist/lib/Config.d.ts.map +1 -0
- package/dist/lib/Config.js +4 -1
- package/dist/lib/Console.d.ts.map +1 -0
- package/dist/lib/Constant.d.ts +1 -1
- package/dist/lib/Constant.d.ts.map +1 -0
- package/dist/lib/FileManager.d.ts +6 -1
- package/dist/lib/FileManager.d.ts.map +1 -0
- package/dist/lib/FileManager.js +24 -1
- package/dist/lib/HeapAnalyzer.d.ts +3 -3
- package/dist/lib/HeapAnalyzer.d.ts.map +1 -0
- package/dist/lib/HeapAnalyzer.js +26 -14
- package/dist/lib/HeapParser.d.ts.map +1 -0
- package/dist/lib/InternalValueSetter.d.ts.map +1 -0
- package/dist/lib/NodeHeap.d.ts.map +1 -0
- package/dist/lib/PackageInfoLoader.d.ts.map +1 -0
- package/dist/lib/ProcessManager.d.ts +1 -1
- package/dist/lib/ProcessManager.d.ts.map +1 -0
- package/dist/lib/RunInfoUtils.d.ts +1 -0
- package/dist/lib/RunInfoUtils.d.ts.map +1 -0
- package/dist/lib/RunInfoUtils.js +8 -4
- package/dist/lib/SerializationHelper.d.ts +18 -0
- package/dist/lib/SerializationHelper.d.ts.map +1 -0
- package/dist/lib/SerializationHelper.js +36 -0
- package/dist/lib/Serializer.d.ts +4 -8
- package/dist/lib/Serializer.d.ts.map +1 -0
- package/dist/lib/Serializer.js +12 -3
- package/dist/lib/StringLoader.d.ts +2 -2
- package/dist/lib/StringLoader.d.ts.map +1 -0
- package/dist/lib/TraceSampler.d.ts +1 -1
- package/dist/lib/TraceSampler.d.ts.map +1 -0
- package/dist/lib/Types.d.ts +81 -63
- package/dist/lib/Types.d.ts.map +1 -0
- package/dist/lib/Utils.d.ts +6 -2
- package/dist/lib/Utils.d.ts.map +1 -0
- package/dist/lib/Utils.js +45 -4
- package/dist/lib/charts/MemoryBarChart.d.ts.map +1 -0
- package/dist/lib/charts/MemoryBarChart.js +2 -2
- package/dist/lib/heap-data/HeapEdge.d.ts.map +1 -0
- package/dist/lib/heap-data/HeapLocation.d.ts.map +1 -0
- package/dist/lib/heap-data/HeapNode.d.ts.map +1 -0
- package/dist/lib/heap-data/HeapSnapshot.d.ts.map +1 -0
- package/dist/lib/heap-data/HeapStringNode.d.ts.map +1 -0
- package/dist/lib/heap-data/HeapUtils.d.ts.map +1 -0
- package/dist/lib/heap-data/MemLabTagStore.d.ts +1 -1
- package/dist/lib/heap-data/MemLabTagStore.d.ts.map +1 -0
- package/dist/lib/leak-filters/BaseLeakFilter.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/LeakFilterRuleList.d.ts.map +1 -0
- package/dist/lib/leak-filters/LeakFilterRuleList.js +2 -0
- package/dist/lib/leak-filters/LeakObjectFilter.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterByExternalFilter.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterDetachedDOMElement.rule.d.ts +0 -1
- package/dist/lib/leak-filters/rules/FilterDetachedDOMElement.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterDetachedDOMElement.rule.js +22 -9
- package/dist/lib/leak-filters/rules/FilterHermesNode.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterOverSizedNodeAsLeak.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterStackTraceFrame.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterTrivialNode.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterUnmountedFiberNode.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterUnmountedFiberNode.rule.js +4 -3
- package/dist/lib/leak-filters/rules/FilterXMLHTTPRequest.rule.d.ts +20 -0
- package/dist/lib/leak-filters/rules/FilterXMLHTTPRequest.rule.d.ts.map +1 -0
- package/dist/lib/leak-filters/rules/FilterXMLHTTPRequest.rule.js +30 -0
- package/dist/lib/trace-filters/BaseTraceFilter.rule.d.ts +1 -1
- package/dist/lib/trace-filters/BaseTraceFilter.rule.d.ts.map +1 -0
- package/dist/lib/trace-filters/LeakTraceFilter.d.ts.map +1 -0
- package/dist/lib/trace-filters/TraceFilterRuleList.d.ts.map +1 -0
- package/dist/lib/trace-filters/rules/FilterAttachedDOMToDetachedDOMTrace.rule.d.ts.map +1 -0
- package/dist/lib/trace-filters/rules/FilterCppRootsToDetachedDOMTrace.rule.d.ts.map +1 -0
- package/dist/lib/trace-filters/rules/FilterDOMNodeChainTrace.rule.d.ts.map +1 -0
- package/dist/lib/trace-filters/rules/FilterHermesTrace.rule.d.ts.map +1 -0
- package/dist/lib/trace-filters/rules/FilterInternalNodeTrace.rule.d.ts.map +1 -0
- package/dist/lib/trace-filters/rules/FilterPendingActivitiesTrace.rule.d.ts.map +1 -0
- package/dist/lib/trace-filters/rules/FilterShadowRootTrace.rule.d.ts.map +1 -0
- package/dist/lib/trace-filters/rules/FilterStyleEngineTrace.rule.d.ts.map +1 -0
- package/dist/logger/LeakClusterLogger.d.ts.map +1 -0
- package/dist/logger/LeakTraceDetailsLogger.d.ts.map +1 -0
- package/dist/modes/BaseMode.d.ts.map +1 -0
- package/dist/modes/InteractionTestMode.d.ts.map +1 -0
- package/dist/modes/MeasureMode.d.ts.map +1 -0
- package/dist/modes/RunningModes.d.ts.map +1 -0
- package/dist/paths/TraceFinder.d.ts.map +1 -0
- package/dist/trace-cluster/ClusterUtils.d.ts.map +1 -0
- package/dist/trace-cluster/ClusterUtilsHelper.d.ts +2 -2
- package/dist/trace-cluster/ClusterUtilsHelper.d.ts.map +1 -0
- package/dist/trace-cluster/ClusteringHeuristics.d.ts.map +1 -0
- package/dist/trace-cluster/EvalutationMetric.d.ts +1 -1
- package/dist/trace-cluster/EvalutationMetric.d.ts.map +1 -0
- package/dist/trace-cluster/MultiIterationSeqClustering.d.ts +1 -1
- package/dist/trace-cluster/MultiIterationSeqClustering.d.ts.map +1 -0
- package/dist/trace-cluster/SequentialClustering.d.ts.map +1 -0
- package/dist/trace-cluster/TraceBucket.d.ts +2 -2
- package/dist/trace-cluster/TraceBucket.d.ts.map +1 -0
- package/dist/trace-cluster/TraceBucket.js +41 -11
- package/dist/trace-cluster/TraceElement.d.ts +1 -1
- package/dist/trace-cluster/TraceElement.d.ts.map +1 -0
- package/dist/trace-cluster/TraceElement.js +15 -15
- package/dist/trace-cluster/strategies/MLTraceSimilarityStrategy.d.ts.map +1 -0
- package/dist/trace-cluster/strategies/TraceAsClusterStrategy.d.ts.map +1 -0
- package/dist/trace-cluster/strategies/TraceSimilarityStrategy.d.ts.map +1 -0
- package/dist/trace-cluster/strategies/machine-learning/DistanceMatrix.d.ts.map +1 -0
- package/dist/trace-cluster/strategies/machine-learning/HAC.d.ts.map +1 -0
- package/dist/trace-cluster/strategies/machine-learning/Ngram.d.ts.map +1 -0
- package/dist/trace-cluster/strategies/machine-learning/TfidfVectorizer.d.ts.map +1 -0
- package/package.json +5 -4
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @oncall web_perf_infra
|
|
9
|
+
*/
|
|
10
|
+
import { IHeapSnapshot } from '../../lib/Types';
|
|
11
|
+
/** @internal */
|
|
12
|
+
export declare function getFullHeapFromFile(file: string): Promise<IHeapSnapshot>;
|
|
13
|
+
//# sourceMappingURL=TestUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestUtils.d.ts","sourceRoot":"","sources":["../../../src/__tests__/lib/TestUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAa,aAAa,EAAW,MAAM,iBAAiB,CAAC;AAEpE,gBAAgB;AAChB,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,CAExB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*
|
|
8
|
+
* @format
|
|
9
|
+
* @oncall web_perf_infra
|
|
10
|
+
*/
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.getFullHeapFromFile = void 0;
|
|
22
|
+
const __1 = require("../..");
|
|
23
|
+
/** @internal */
|
|
24
|
+
function getFullHeapFromFile(file) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
return yield loadProcessedSnapshot({ file });
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
exports.getFullHeapFromFile = getFullHeapFromFile;
|
|
30
|
+
function loadProcessedSnapshot(options = {}) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const opt = { buildNodeIdIndex: true, verbose: true };
|
|
33
|
+
const file = options.file || __1.utils.getSnapshotFilePathWithTabType(/.*/);
|
|
34
|
+
const snapshot = yield __1.utils.getSnapshotFromFile(file, opt);
|
|
35
|
+
__1.analysis.preparePathFinder(snapshot);
|
|
36
|
+
__1.info.flush();
|
|
37
|
+
return snapshot;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeapParser.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/parser/HeapParser.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeHeap.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/parser/NodeHeap.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringNode.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/parser/StringNode.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeapNodeTraverse.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/parser/traverse/HeapNodeTraverse.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAA2B,MAAM,oBAAoB,CAAC;AAI3E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,QAAQ,EAAE,QAAQ,CAAC;KACpB;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/utils.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -50,6 +50,8 @@ export { default as NormalizedTrace } from './trace-cluster/TraceBucket';
|
|
|
50
50
|
/** @internal */
|
|
51
51
|
export { default as EvaluationMetric } from './trace-cluster/EvalutationMetric';
|
|
52
52
|
/** @internal */
|
|
53
|
+
export { RunMetaInfoManager } from './lib/RunInfoUtils';
|
|
54
|
+
/** @internal */
|
|
53
55
|
export * from './lib/PackageInfoLoader';
|
|
54
56
|
/** @internal */
|
|
55
57
|
export { default as SequentialClustering } from './trace-cluster/SequentialClustering';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAE/B,gBAAgB;AAChB,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AACD,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,cAAc,CAAC;AAC/C,gBAAgB;AAChB,cAAc,2BAA2B,CAAC;AAC1C,gBAAgB;AAChB,cAAc,cAAc,CAAC;AAC7B,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,eAAe,CAAC;AAC9C,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACvD,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,aAAa,CAAC;AAC7C,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,mBAAmB,CAAC;AACzD,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAC3D,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAClC,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACvD,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,mBAAmB,CAAC;AACzD,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AACvD,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACnD,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,6BAA6B,CAAC;AACtE,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,sBAAsB,CAAC;AACtD,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAC/D,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AACxE,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,6BAA6B,CAAC;AACvE,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAC9E,gBAAgB;AAChB,OAAO,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACtD,gBAAgB;AAChB,cAAc,yBAAyB,CAAC;AACxC,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AACrF,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,2BAA2B,EAAC,MAAM,6CAA6C,CAAC;AACnG,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAC3D,gBAAgB;AAChB,cAAc,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.TraceFinder = exports.MultiIterationSeqClustering = exports.SequentialClustering = exports.EvaluationMetric = exports.NormalizedTrace = exports.leakClusterLogger = exports.ProcessManager = exports.modes = exports.memoryBarChart = exports.constant = exports.analysis = exports.browserInfo = exports.serializer = exports.runInfoUtils = exports.fileManager = exports.utils = exports.BaseOption = exports.info = exports.config = exports.registerPackage = void 0;
|
|
38
|
+
exports.TraceFinder = exports.MultiIterationSeqClustering = exports.SequentialClustering = exports.RunMetaInfoManager = exports.EvaluationMetric = exports.NormalizedTrace = exports.leakClusterLogger = exports.ProcessManager = exports.modes = exports.memoryBarChart = exports.constant = exports.analysis = exports.browserInfo = exports.serializer = exports.runInfoUtils = exports.fileManager = exports.utils = exports.BaseOption = exports.info = exports.config = exports.registerPackage = void 0;
|
|
39
39
|
const path_1 = __importDefault(require("path"));
|
|
40
40
|
const PackageInfoLoader_1 = require("./lib/PackageInfoLoader");
|
|
41
41
|
__exportStar(require("./lib/Types"), exports);
|
|
@@ -102,6 +102,9 @@ Object.defineProperty(exports, "NormalizedTrace", { enumerable: true, get: funct
|
|
|
102
102
|
var EvalutationMetric_1 = require("./trace-cluster/EvalutationMetric");
|
|
103
103
|
Object.defineProperty(exports, "EvaluationMetric", { enumerable: true, get: function () { return __importDefault(EvalutationMetric_1).default; } });
|
|
104
104
|
/** @internal */
|
|
105
|
+
var RunInfoUtils_2 = require("./lib/RunInfoUtils");
|
|
106
|
+
Object.defineProperty(exports, "RunMetaInfoManager", { enumerable: true, get: function () { return RunInfoUtils_2.RunMetaInfoManager; } });
|
|
107
|
+
/** @internal */
|
|
105
108
|
__exportStar(require("./lib/PackageInfoLoader"), exports);
|
|
106
109
|
/** @internal */
|
|
107
110
|
var SequentialClustering_1 = require("./trace-cluster/SequentialClustering");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseOption.d.ts","sourceRoot":"","sources":["../../src/lib/BaseOption.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAEtC,uBAAe,MAAM;IACnB,OAAO,CAAC,YAAY,CAAQ;IAG5B,aAAa,IAAI,MAAM;IAMvB,iBAAiB,IAAI,MAAM,GAAG,IAAI;cAKlB,KAAK,CAEnB,OAAO,EAAE,YAAY,EAErB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAMtB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAgB5E,QAAQ,IAAI,UAAU;IAKtB,QAAQ,IAAI,UAAU;IAKtB,UAAU,IAAI,OAAO;CAGtB;AAED,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAAM;IAE5C,aAAa,IAAI,MAAM;IAMvB,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAMlC,gBAAgB,IAAI,MAAM,EAAE;IAK5B,cAAc,IAAI,MAAM;cAMR,KAAK,CAEnB,OAAO,EAAE,YAAY,EAErB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAI7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserInfo.d.ts","sourceRoot":"","sources":["../../src/lib/BrowserInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAC,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAC1C,KAAK,OAAO,GAAG;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAC,CAAC;AAQjC,cAAM,WAAW;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,aAAa,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;;IAQ3B,KAAK;IAIL,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxC,kBAAkB,CAAC,eAAe,EAAE,aAAa,GAAG,IAAI;IAIxD,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,IAAI;IAMrC,oBAAoB,CAClB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,OAAY,GACpB,MAAM,EAAE;IAqBX,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM;IASlE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,uBAAuB,IAAI,MAAM;IAIjC,IAAI,IAAI,IAAI;IAOZ,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CA8BpC;;AAED,wBAAiC"}
|
package/dist/lib/Config.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ interface Device {
|
|
|
34
34
|
isLandscape: boolean;
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
type ConfigOption = {
|
|
38
38
|
workDir?: string;
|
|
39
39
|
};
|
|
40
40
|
/** @internal */
|
|
@@ -114,7 +114,7 @@ export declare class MemLabConfig {
|
|
|
114
114
|
qes: QuickExperiment[];
|
|
115
115
|
isOndemand: boolean;
|
|
116
116
|
useExternalSnapshot: boolean;
|
|
117
|
-
|
|
117
|
+
externalRunMetaTemplateFile: string;
|
|
118
118
|
externalSnapshotVisitOrderFile: string;
|
|
119
119
|
externalSnapshotDir: Nullable<string>;
|
|
120
120
|
externalSnapshotFilePaths: string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/lib/Config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/Config.js
CHANGED
|
@@ -321,7 +321,10 @@ class MemLabConfig {
|
|
|
321
321
|
// node names excluded from the trace finding
|
|
322
322
|
this.nodeNameBlockList = new Set(['system / PropertyCell']);
|
|
323
323
|
// edge names excluded from the trace finding
|
|
324
|
-
this.edgeNameBlockList = new Set([
|
|
324
|
+
this.edgeNameBlockList = new Set([
|
|
325
|
+
'feedback_cell',
|
|
326
|
+
'part of key -> value pair in ephemeron table',
|
|
327
|
+
]);
|
|
325
328
|
// node names less preferable in trace finding
|
|
326
329
|
this.nodeNameGreyList = new Set([
|
|
327
330
|
'InternalNode',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../../src/lib/Console.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAc,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAKnC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAC,QAAQ,EAAqB,MAAM,SAAS,CAAC;AA4ErD,UAAU,mBAAmB;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,KAAK,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;CAChB;AAED,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,MAAM,CAQZ;IAEF,OAAO,CAAC,MAAM,CAAC,SAAS,CAAgB;IAExC,SAAS;WAQK,WAAW,IAAI,aAAa;IAsB1C,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,QAAQ;IAUT,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKtC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKxC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAahC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAc9B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI;IAiBhC,KAAK,IAAI,IAAI;IAOb,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ3B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS1B,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMhC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK1B,QAAQ,IAAI,IAAI;IAQhB,SAAS,CACd,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QAAC,KAAK,CAAC,EAAE,MAAM,mBAAmB,CAAA;KAAM,GAChD,IAAI;IAcA,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc9C,QAAQ,CACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAM,GAC/B,IAAI;IAqBA,KAAK,IAAI,IAAI;CAGrB;;AAED,wBAA2C"}
|
package/dist/lib/Constant.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Constant.d.ts","sourceRoot":"","sources":["../../src/lib/Constant.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,QAAA,MAAM,SAAS;;;;;;;;;;;;CAwCd,CAAC;AAOF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;;;;;;;;;;;;;;AACzC,wBAA8E"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @oncall web_perf_infra
|
|
9
9
|
*/
|
|
10
10
|
import type { MemLabConfig } from './Config';
|
|
11
|
-
import type { AnyValue, FileOption } from './Types';
|
|
11
|
+
import type { AnyValue, E2EStepInfo, FileOption } from './Types';
|
|
12
12
|
/** @internal */
|
|
13
13
|
export declare function joinAndProcessDir(options: FileOption, ...args: AnyValue[]): string;
|
|
14
14
|
/** @internal */
|
|
@@ -78,6 +78,11 @@ export declare class FileManager {
|
|
|
78
78
|
isWithinInternalDirectory(filePath: string): boolean;
|
|
79
79
|
createDefaultVisitOrderMetaFile(options?: FileOption): void;
|
|
80
80
|
createDefaultVisitOrderMetaFileWithSingleSnapshot(options: FileOption | undefined, snapshotFile: string): void;
|
|
81
|
+
/**
|
|
82
|
+
* create visit order data structure based on specified
|
|
83
|
+
* baseline, target, and final heap snapshots
|
|
84
|
+
*/
|
|
85
|
+
createVisitOrderWithSnapshots(baselineSnapshot: string, targetSnapshot: string, finalSnapshot: string): E2EStepInfo[];
|
|
81
86
|
initDirs(config: MemLabConfig, options?: FileOption): void;
|
|
82
87
|
}
|
|
83
88
|
declare const _default: FileManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileManager.d.ts","sourceRoot":"","sources":["../../src/lib/FileManager.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/FileManager.js
CHANGED
|
@@ -377,6 +377,29 @@ class FileManager {
|
|
|
377
377
|
// save the snapshot meta file
|
|
378
378
|
fs_extra_1.default.writeFileSync(snapshotSeqMetaFile, JSON.stringify(visitOrder, null, 2), 'UTF-8');
|
|
379
379
|
}
|
|
380
|
+
/**
|
|
381
|
+
* create visit order data structure based on specified
|
|
382
|
+
* baseline, target, and final heap snapshots
|
|
383
|
+
*/
|
|
384
|
+
createVisitOrderWithSnapshots(baselineSnapshot, targetSnapshot, finalSnapshot) {
|
|
385
|
+
const snapshotTemplateFile = this.getSnapshotSequenceExternalTemplateFile();
|
|
386
|
+
const visitOrder = JSON.parse(fs_extra_1.default.readFileSync(snapshotTemplateFile, 'UTF-8'));
|
|
387
|
+
// fill in snapshot file name for each entry with snapshot: true
|
|
388
|
+
visitOrder.forEach(step => {
|
|
389
|
+
switch (step.name) {
|
|
390
|
+
case 'baseline':
|
|
391
|
+
step.snapshotFile = baselineSnapshot;
|
|
392
|
+
break;
|
|
393
|
+
case 'target':
|
|
394
|
+
step.snapshotFile = targetSnapshot;
|
|
395
|
+
break;
|
|
396
|
+
case 'final':
|
|
397
|
+
step.snapshotFile = finalSnapshot;
|
|
398
|
+
break;
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
return visitOrder;
|
|
402
|
+
}
|
|
380
403
|
initDirs(config, options = FileManager.defaultFileOption) {
|
|
381
404
|
// cache the last processed memlab config instance
|
|
382
405
|
// the instance should be a singleton
|
|
@@ -427,7 +450,7 @@ class FileManager {
|
|
|
427
450
|
config.heapAnalysisLogDir = joinAndProcessDir(options, this.getHeapAnalysisLogDir(options));
|
|
428
451
|
config.metricsOutDir = joinAndProcessDir(options, loggerOutDir, 'metrics');
|
|
429
452
|
config.reportScreenshotFile = path_1.default.join(outDir, 'report.png');
|
|
430
|
-
config.
|
|
453
|
+
config.externalRunMetaTemplateFile = this.getRunMetaExternalTemplateFile();
|
|
431
454
|
config.externalSnapshotVisitOrderFile =
|
|
432
455
|
this.getSnapshotSequenceExternalTemplateFile();
|
|
433
456
|
joinAndProcessDir(options, this.getUniqueTraceClusterDir(options));
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { E2EStepInfo, HeapNodeIdSet, IHeapSnapshot, IMemoryAnalystSnapshotDiff, IOveralHeapInfo, LeakTracePathItem, Optional, IOveralLeakInfo, TraceCluster, ISerializedInfo, DiffLeakOptions } from './Types';
|
|
11
11
|
import TraceFinder from '../paths/TraceFinder';
|
|
12
|
-
|
|
12
|
+
type DiffSnapshotsOptions = {
|
|
13
13
|
loadAllSnapshots?: boolean;
|
|
14
14
|
workDir?: string;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
type WorkDirOptions = {
|
|
17
17
|
workDir?: string;
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
type GetTraceOptions = {
|
|
20
20
|
workDir?: string;
|
|
21
21
|
printConsoleOnly?: boolean;
|
|
22
22
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeapAnalyzer.d.ts","sourceRoot":"","sources":["../../src/lib/HeapAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,0BAA0B,EAE1B,eAAe,EACf,iBAAiB,EAEjB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EAChB,MAAM,SAAS,CAAC;AAWjB,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAO/C,KAAK,oBAAoB,GAAG;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,cAAM,aAAa;IACX,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAMvC,iBAAiB,CACrB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,eAAe,EAAE,CAAC;IA0BvB,oBAAoB,CACxB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,eAAe,EAAE,CAAC;IAiFvB,iBAAiB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAgB/C,KAAK,CAAC,OAAO,GAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAM;IAuCzC,0BAA0B,CACxB,SAAS,EAAE,WAAW,EAAE,EACxB,GAAG,EAAE,WAAW,GACf,OAAO;IAUJ,aAAa,CACjB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,0BAA0B,CAAC;IAwGtC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,WAAW;IAiBvD,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,wBAAwB;IA6ChC,OAAO,CAAC,mBAAmB;IAmBpB,kBAAkB,CACvB,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAM,GAC9B,QAAQ,CAAC,eAAe,CAAC;IAyC5B,kBAAkB,CAChB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,aAAa,GACtB,QAAQ,CAAC,eAAe,CAAC;IA4BrB,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAWrD,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,mBAAmB;IAkB3B,eAAe,CACb,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,cAAmB,GAC3B,iBAAiB,EAAE;IAuDhB,cAAc,CAClB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA6B/B;;;;;;OAMG;IACH,kBAAkB,CAChB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,aAAa,GACtB,YAAY,EAAE;IAqCX,sBAAsB,CAC1B,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,GAAE;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAM;IAqBzC,gBAAgB,CACd,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,aAAa,EACvB,kBAAkB,EAAE,KAAK,CAAC,aAAa,CAAC,EACxC,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB;CA2ChC;;AAED,wBAAmC"}
|
package/dist/lib/HeapAnalyzer.js
CHANGED
|
@@ -49,13 +49,13 @@ class MemoryAnalyst {
|
|
|
49
49
|
const controlSnapshotDirs = options.controlWorkDirs.map(controlWorkDir => FileManager_1.default.getCurDataDir({
|
|
50
50
|
workDir: controlWorkDir,
|
|
51
51
|
}));
|
|
52
|
-
const
|
|
53
|
-
workDir:
|
|
54
|
-
});
|
|
52
|
+
const treatmentSnapshotDirs = options.treatmentWorkDirs.map(treatmentWorkDir => FileManager_1.default.getCurDataDir({
|
|
53
|
+
workDir: treatmentWorkDir,
|
|
54
|
+
}));
|
|
55
55
|
// check control working dir
|
|
56
56
|
controlSnapshotDirs.forEach(controlSnapshotDir => Utils_1.default.checkSnapshots({ snapshotDir: controlSnapshotDir }));
|
|
57
57
|
// check treatment working dir
|
|
58
|
-
Utils_1.default.checkSnapshots({ snapshotDir: treatmentSnapshotDir });
|
|
58
|
+
treatmentSnapshotDirs.forEach(treatmentSnapshotDir => Utils_1.default.checkSnapshots({ snapshotDir: treatmentSnapshotDir }));
|
|
59
59
|
// display control and treatment memory
|
|
60
60
|
MemoryBarChart_1.default.plotMemoryBarChart(options);
|
|
61
61
|
return this.diffMemoryLeakTraces(options);
|
|
@@ -76,17 +76,26 @@ class MemoryAnalyst {
|
|
|
76
76
|
leakPathsFromControlRuns.push(this.filterLeakPaths(snapshotDiff.leakedHeapNodeIdSet, snapshotDiff.snapshot, { workDir: controlWorkDir }));
|
|
77
77
|
controlSnapshots.push(snapshotDiff.snapshot);
|
|
78
78
|
}
|
|
79
|
-
// diff snapshots and get treatment raw paths
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
// diff snapshots from treatment dirs and get treatment raw paths array
|
|
80
|
+
const treatmentSnapshots = [];
|
|
81
|
+
const leakPathsFromTreatmentRuns = [];
|
|
82
|
+
let firstTreatmentSnapshotDiff = null;
|
|
83
|
+
for (const treatmentWorkDir of options.treatmentWorkDirs) {
|
|
84
|
+
const snapshotDiff = yield this.diffSnapshots({
|
|
85
|
+
loadAllSnapshots: true,
|
|
86
|
+
workDir: treatmentWorkDir,
|
|
87
|
+
});
|
|
88
|
+
if (firstTreatmentSnapshotDiff == null) {
|
|
89
|
+
firstTreatmentSnapshotDiff = snapshotDiff;
|
|
90
|
+
}
|
|
91
|
+
leakPathsFromTreatmentRuns.push(this.filterLeakPaths(snapshotDiff.leakedHeapNodeIdSet, snapshotDiff.snapshot, { workDir: treatmentWorkDir }));
|
|
92
|
+
treatmentSnapshots.push(snapshotDiff.snapshot);
|
|
93
|
+
}
|
|
86
94
|
const controlPathCounts = JSON.stringify(leakPathsFromControlRuns.map(leakPaths => leakPaths.length));
|
|
95
|
+
const treatmentPathCounts = JSON.stringify(leakPathsFromTreatmentRuns.map(leakPaths => leakPaths.length));
|
|
87
96
|
Console_1.default.topLevel(`${controlPathCounts} traces from control group`);
|
|
88
|
-
Console_1.default.topLevel(`${
|
|
89
|
-
const result = TraceBucket_1.default.clusterControlTreatmentPaths(leakPathsFromControlRuns, controlSnapshots,
|
|
97
|
+
Console_1.default.topLevel(`${treatmentPathCounts} traces from treatment group`);
|
|
98
|
+
const result = TraceBucket_1.default.clusterControlTreatmentPaths(leakPathsFromControlRuns, controlSnapshots, leakPathsFromTreatmentRuns, treatmentSnapshots, Utils_1.default.aggregateDominatorMetrics, {
|
|
90
99
|
strategy: Config_1.default.isMLClustering
|
|
91
100
|
? new MLTraceSimilarityStrategy_1.default()
|
|
92
101
|
: undefined,
|
|
@@ -95,7 +104,10 @@ class MemoryAnalyst {
|
|
|
95
104
|
yield this.serializeClusterUpdate(result.treatmentOnlyClusters);
|
|
96
105
|
// serialize JSON file with detailed leak trace information
|
|
97
106
|
const treatmentOnlyPaths = result.treatmentOnlyClusters.map(c => c.path);
|
|
98
|
-
|
|
107
|
+
if (firstTreatmentSnapshotDiff == null) {
|
|
108
|
+
throw Utils_1.default.haltOrThrow('treatemnt snapshot diff result not found');
|
|
109
|
+
}
|
|
110
|
+
return LeakTraceDetailsLogger_1.default.logTraces(firstTreatmentSnapshotDiff.leakedHeapNodeIdSet, firstTreatmentSnapshotDiff.snapshot, firstTreatmentSnapshotDiff.listOfLeakedHeapNodeIdSet, treatmentOnlyPaths, Config_1.default.traceJsonOutDir);
|
|
99
111
|
});
|
|
100
112
|
}
|
|
101
113
|
// find all unique pattern of leaks
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeapParser.d.ts","sourceRoot":"","sources":["../../src/lib/HeapParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,SAAS,CAAC;AAyCjB,iBAAe,kBAAkB,CAC/B,IAAI,EAAE,MAAM,EAEZ,QAAQ,KAAK,GACZ,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAatB;AA+CD,iBAAe,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,CAKvE;;;;;AAED,wBAGE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalValueSetter.d.ts","sourceRoot":"","sources":["../../src/lib/InternalValueSetter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,gBAAgB;AAChB,8BAAsB,mBAAmB,CAAC,CAAC;IAEzC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC;CAGtB;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,KAAK,EAAE,CAAC,EACR,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,GACzB,CAAC,CAmBH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeHeap.d.ts","sourceRoot":"","sources":["../../src/lib/NodeHeap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAS3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAGhE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAW7C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CASlE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CASlE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageInfoLoader.d.ts","sourceRoot":"","sources":["../../src/lib/PackageInfoLoader.ts"],"names":[],"mappings":"AAeA,gBAAgB;AAChB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA0B;mBAEtC,QAAQ;WA0BT,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessManager.d.ts","sourceRoot":"","sources":["../../src/lib/ProcessManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAM/C,KAAK,OAAO,GAAG;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,cAAM,cAAc;IAClB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,KAAK,CAAK;IAGX,KAAK,CACV,WAAW,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,EACpC,OAAO,GAAE,OAAY,GACpB,IAAI;IAeP,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;CAmBrB;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -11,6 +11,7 @@ import type { Nullable, Optional, RunMetaInfo } from './Types';
|
|
|
11
11
|
export declare class RunMetaInfoManager {
|
|
12
12
|
getRunMetaFilePath(options?: {
|
|
13
13
|
workDir?: Optional<string>;
|
|
14
|
+
readonly?: Optional<boolean>;
|
|
14
15
|
}): string;
|
|
15
16
|
saveRunMetaInfo(runMetaInfo: RunMetaInfo, options?: {
|
|
16
17
|
workDir?: Optional<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunInfoUtils.d.ts","sourceRoot":"","sources":["../../src/lib/RunInfoUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AAU7D,qBAAa,kBAAkB;IAC7B,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9B,GAAG,MAAM;IAeV,eAAe,CACb,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE;QAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAC,GACzE,MAAM;IAiBT,OAAO,CAAC,uBAAuB;IAS/B,eAAe,CAAC,OAAO,CAAC,EAAE;QACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC5B,GAAG,WAAW;IAaf,yBAAyB,CAAC,OAAO,CAAC,EAAE;QAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC5B,GAAG,QAAQ,CAAC,WAAW,CAAC;IAWzB,2BAA2B,IAAI,WAAW;IAO1C,oBAAoB,CAClB,OAAO,GAAE;QAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAM,GAC/D,IAAI;CAiBR;AAED,QAAA,MAAM,YAAY;;CAAiD,CAAC;AAGpE,gBAAgB;AAChB,eAAe,YAAY,CAAC"}
|
package/dist/lib/RunInfoUtils.js
CHANGED
|
@@ -16,8 +16,10 @@ class RunMetaInfoManager {
|
|
|
16
16
|
if ((options === null || options === void 0 ? void 0 : options.workDir) != null) {
|
|
17
17
|
return FileManager_1.default.getRunMetaFile({ workDir: options.workDir });
|
|
18
18
|
}
|
|
19
|
-
if (Config_1.default.useExternalSnapshot) {
|
|
20
|
-
|
|
19
|
+
if ((options === null || options === void 0 ? void 0 : options.readonly) && Config_1.default.useExternalSnapshot) {
|
|
20
|
+
// only returns the template file if the
|
|
21
|
+
// run meta file is used for readonly purpose
|
|
22
|
+
return Config_1.default.externalRunMetaTemplateFile;
|
|
21
23
|
}
|
|
22
24
|
if (Config_1.default.runMetaFile != null) {
|
|
23
25
|
return Config_1.default.runMetaFile;
|
|
@@ -40,7 +42,8 @@ class RunMetaInfoManager {
|
|
|
40
42
|
return runMetaInfo;
|
|
41
43
|
}
|
|
42
44
|
loadRunMetaInfo(options) {
|
|
43
|
-
const file = (options === null || options === void 0 ? void 0 : options.metaFile) ||
|
|
45
|
+
const file = (options === null || options === void 0 ? void 0 : options.metaFile) ||
|
|
46
|
+
this.getRunMetaFilePath(Object.assign({ readonly: true }, options));
|
|
44
47
|
try {
|
|
45
48
|
return this.loadRunMetaInfoFromFile(file);
|
|
46
49
|
}
|
|
@@ -49,7 +52,8 @@ class RunMetaInfoManager {
|
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
54
|
loadRunMetaInfoSilentFail(options) {
|
|
52
|
-
const file = (options === null || options === void 0 ? void 0 : options.metaFile) ||
|
|
55
|
+
const file = (options === null || options === void 0 ? void 0 : options.metaFile) ||
|
|
56
|
+
this.getRunMetaFilePath(Object.assign({ readonly: true }, options));
|
|
53
57
|
try {
|
|
54
58
|
return this.loadRunMetaInfoFromFile(file);
|
|
55
59
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @oncall web_perf_infra
|
|
9
|
+
*/
|
|
10
|
+
import type { IHeapNode, IHeapSnapshot, ISerializationHelper, ISerializedInfo, JSONifyArgs, JSONifyOptions, Nullable } from './Types';
|
|
11
|
+
export declare class SerializationHelper implements ISerializationHelper {
|
|
12
|
+
protected snapshot: Nullable<IHeapSnapshot>;
|
|
13
|
+
setSnapshot(snapshot: IHeapSnapshot): void;
|
|
14
|
+
createOrMergeWrapper(info: ISerializedInfo, _node: IHeapNode, _args: JSONifyArgs, _options: JSONifyOptions): ISerializedInfo;
|
|
15
|
+
}
|
|
16
|
+
declare const _default: typeof SerializationHelper;
|
|
17
|
+
export default _default;
|
|
18
|
+
//# sourceMappingURL=SerializationHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SerializationHelper.d.ts","sourceRoot":"","sources":["../../src/lib/SerializationHelper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,cAAc,EACd,QAAQ,EACT,MAAM,SAAS,CAAC;AAKjB,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAQ;IAEnD,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI1C,oBAAoB,CAClB,IAAI,EAAE,eAAe,EAErB,KAAK,EAAE,SAAS,EAEhB,KAAK,EAAE,WAAW,EAElB,QAAQ,EAAE,cAAc,GACvB,eAAe;CAGnB;;AAED,wBAIE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*
|
|
8
|
+
* @format
|
|
9
|
+
* @oncall web_perf_infra
|
|
10
|
+
*/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SerializationHelper = void 0;
|
|
16
|
+
const InternalValueSetter_1 = require("./InternalValueSetter");
|
|
17
|
+
const Constant_1 = __importDefault(require("./Constant"));
|
|
18
|
+
class SerializationHelper {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.snapshot = null;
|
|
21
|
+
}
|
|
22
|
+
setSnapshot(snapshot) {
|
|
23
|
+
this.snapshot = snapshot;
|
|
24
|
+
}
|
|
25
|
+
createOrMergeWrapper(info,
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
27
|
+
_node,
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
_args,
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
|
+
_options) {
|
|
32
|
+
return info;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.SerializationHelper = SerializationHelper;
|
|
36
|
+
exports.default = (0, InternalValueSetter_1.setInternalValue)(SerializationHelper, __filename, Constant_1.default.internalDir);
|
package/dist/lib/Serializer.d.ts
CHANGED
|
@@ -7,13 +7,9 @@
|
|
|
7
7
|
* @format
|
|
8
8
|
* @oncall web_perf_infra
|
|
9
9
|
*/
|
|
10
|
-
import { E2EStepInfo, HeapNodeIdSet, IHeapEdge, IHeapNode, IHeapSnapshot, ISerializedInfo, LeakTracePathItem, Nullable } from './Types';
|
|
11
|
-
declare
|
|
12
|
-
|
|
13
|
-
nodeIdsInSnapshots?: Array<Set<number>>;
|
|
14
|
-
};
|
|
15
|
-
declare function JSONifyPath(path: LeakTracePathItem, _snapshot: IHeapSnapshot, args: JSONifyArgs): Nullable<ISerializedInfo>;
|
|
16
|
-
declare type SummarizeOptions = {
|
|
10
|
+
import { E2EStepInfo, HeapNodeIdSet, IHeapEdge, IHeapNode, IHeapSnapshot, ISerializedInfo, JSONifyArgs, LeakTracePathItem, Nullable } from './Types';
|
|
11
|
+
declare function JSONifyPath(path: LeakTracePathItem, snapshot: IHeapSnapshot, args: JSONifyArgs): Nullable<ISerializedInfo>;
|
|
12
|
+
type SummarizeOptions = {
|
|
17
13
|
compact?: boolean;
|
|
18
14
|
color?: boolean;
|
|
19
15
|
progress?: number;
|
|
@@ -22,7 +18,7 @@ declare type SummarizeOptions = {
|
|
|
22
18
|
excludeKeySet?: HeapNodeIdSet;
|
|
23
19
|
};
|
|
24
20
|
declare function summarizeNodeShape(node: IHeapNode, options?: SummarizeOptions): string;
|
|
25
|
-
|
|
21
|
+
type UnboundedObjectInfo = {
|
|
26
22
|
id: number;
|
|
27
23
|
name: string;
|
|
28
24
|
node: IHeapNode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Serializer.d.ts","sourceRoot":"","sources":["../../src/lib/Serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EACL,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EAEX,iBAAiB,EACjB,QAAQ,EAET,MAAM,SAAS,CAAC;AAycjB,iBAAS,WAAW,CAClB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,WAAW,GAChB,QAAQ,CAAC,eAAe,CAAC,CA6C3B;AA+ID,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AA6BF,iBAAS,kBAAkB,CACzB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CASR;AAED,KAAK,mBAAmB,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAChD,CAAC;AAEF,iBAAS,yBAAyB,CAChC,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAgBR;AAED,iBAAS,8BAA8B,CACrC,gBAAgB,EAAE,mBAAmB,EAAE,GACtC,MAAM,CAMR;AAiBD,iBAAS,kBAAkB,CACzB,SAAS,EAAE,WAAW,EAAE,EACxB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAuBR;AAED,iBAAS,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAI7E;AAoBD,iBAAS,iBAAiB,CACxB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAeR;AAkBD,iBAAS,aAAa,CACpB,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CA2ER;;;;;;;;;;;AAED,wBASE"}
|
package/dist/lib/Serializer.js
CHANGED
|
@@ -18,6 +18,7 @@ const Config_1 = __importDefault(require("./Config"));
|
|
|
18
18
|
const Utils_1 = __importDefault(require("./Utils"));
|
|
19
19
|
const Console_1 = __importDefault(require("./Console"));
|
|
20
20
|
const TraceFinder_1 = __importDefault(require("../paths/TraceFinder"));
|
|
21
|
+
const SerializationHelper_1 = __importDefault(require("./SerializationHelper"));
|
|
21
22
|
const REGEXP_NAME_CLEANUP = /[[]\(\)]/g;
|
|
22
23
|
const EMPTY_JSONIFY_OPTIONS = {
|
|
23
24
|
fiberNodeReturnTrace: {},
|
|
@@ -374,7 +375,12 @@ function JSONifyNode(node, args, options) {
|
|
|
374
375
|
if (node.dominatorNode) {
|
|
375
376
|
info['dominator id (extra)'] = `@${node.dominatorNode.id}`;
|
|
376
377
|
}
|
|
377
|
-
|
|
378
|
+
// use serialization helper to wrap around
|
|
379
|
+
// the JSON node with additional tagging information
|
|
380
|
+
const { serializationHelper } = options;
|
|
381
|
+
return serializationHelper
|
|
382
|
+
? serializationHelper.createOrMergeWrapper(info, node, args, options)
|
|
383
|
+
: info;
|
|
378
384
|
}
|
|
379
385
|
function JSONifyTabsOrder() {
|
|
380
386
|
const file = Utils_1.default.getSnapshotSequenceFilePath();
|
|
@@ -383,7 +389,7 @@ function JSONifyTabsOrder() {
|
|
|
383
389
|
function shouldHighlight(node) {
|
|
384
390
|
return Utils_1.default.isDetachedDOMNode(node) || Utils_1.default.isDetachedFiberNode(node);
|
|
385
391
|
}
|
|
386
|
-
function JSONifyPath(path,
|
|
392
|
+
function JSONifyPath(path, snapshot, args) {
|
|
387
393
|
if (!path.node) {
|
|
388
394
|
return null;
|
|
389
395
|
}
|
|
@@ -393,6 +399,9 @@ function JSONifyPath(path, _snapshot, args) {
|
|
|
393
399
|
ret['$tabsOrder:' + JSONifyTabsOrder()] = '';
|
|
394
400
|
ret[`${idx++}: ${getNodeNameInJSON(path.node, args)}`] = JSONifyNode(path.node, args, Object.assign(Object.assign({}, EMPTY_JSONIFY_OPTIONS), { processedNodeId: new Set() }));
|
|
395
401
|
let pathItem = path;
|
|
402
|
+
// initialize serialization helper
|
|
403
|
+
const serializationHelper = new SerializationHelper_1.default();
|
|
404
|
+
serializationHelper.setSnapshot(snapshot);
|
|
396
405
|
while (pathItem === null || pathItem === void 0 ? void 0 : pathItem.edge) {
|
|
397
406
|
const edge = pathItem.edge;
|
|
398
407
|
const nextNode = edge.toNode;
|
|
@@ -401,7 +410,7 @@ function JSONifyPath(path, _snapshot, args) {
|
|
|
401
410
|
nextNode.highlight = true;
|
|
402
411
|
}
|
|
403
412
|
const edgeRetainSize = pathItem.edgeRetainSize;
|
|
404
|
-
ret[`${idx++}: ${getEdgeNameInJSON(edge, edgeRetainSize)}${getNodeNameInJSON(nextNode, args)}`] = JSONifyNode(nextNode, args, Object.assign(Object.assign({}, EMPTY_JSONIFY_OPTIONS), { processedNodeId: new Set() }));
|
|
413
|
+
ret[`${idx++}: ${getEdgeNameInJSON(edge, edgeRetainSize)}${getNodeNameInJSON(nextNode, args)}`] = JSONifyNode(nextNode, args, Object.assign(Object.assign({}, EMPTY_JSONIFY_OPTIONS), { processedNodeId: new Set(), serializationHelper }));
|
|
405
414
|
pathItem = pathItem.next;
|
|
406
415
|
}
|
|
407
416
|
return ret;
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
* @oncall web_perf_infra
|
|
10
10
|
*/
|
|
11
11
|
/// <reference types="node" />
|
|
12
|
-
|
|
12
|
+
type ReadFileOptions = {
|
|
13
13
|
startSignature?: string;
|
|
14
14
|
endSignature?: string;
|
|
15
15
|
inclusive?: boolean;
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
type NodeFSError = NodeJS.ErrnoException | null;
|
|
18
18
|
declare class StringLoader {
|
|
19
19
|
processErrorIfNotNull(err: NodeFSError): void;
|
|
20
20
|
readFile(file: string, options?: ReadFileOptions): Promise<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringLoader.d.ts","sourceRoot":"","sources":["../../src/lib/StringLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;;AAYH,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,WAAW,GAAG,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;AAIhD,cAAM,YAAY;IAChB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAY7C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkFtE,4BAA4B,CAC1B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC;IA8FlB,4BAA4B,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC;CAmHxB;;AAED,wBAAkC"}
|