arkanalyzer 1.0.26 → 1.0.28
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/config/arkanalyzer.json +1 -0
- package/lib/VFG/DVFG.d.ts +43 -0
- package/lib/VFG/DVFG.d.ts.map +1 -0
- package/lib/VFG/DVFG.js +109 -0
- package/lib/VFG/builder/DVFGBuilder.d.ts +17 -0
- package/lib/VFG/builder/DVFGBuilder.d.ts.map +1 -0
- package/lib/VFG/builder/DVFGBuilder.js +111 -0
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -0
- package/lib/callgraph/model/CallGraph.d.ts +4 -0
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
- package/lib/callgraph/model/CallGraph.js +29 -0
- package/lib/callgraph/pointerAnalysis/Pag.js +3 -3
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +10 -3
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +141 -62
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +2 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +33 -7
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +7 -2
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +10 -4
- package/lib/core/base/Ref.d.ts +0 -1
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +0 -11
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +43 -17
- package/lib/core/common/Builtin.d.ts +2 -0
- package/lib/core/common/Builtin.d.ts.map +1 -1
- package/lib/core/common/Builtin.js +4 -0
- package/lib/core/common/IRInference.d.ts +3 -0
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +67 -27
- package/lib/core/common/SdkUtils.js +1 -1
- package/lib/core/common/TypeInference.d.ts +5 -3
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +92 -59
- package/lib/core/dataflow/ReachingDef.d.ts.map +1 -1
- package/lib/core/dataflow/ReachingDef.js +1 -0
- package/lib/core/graph/BaseImplicitGraph.d.ts +1 -0
- package/lib/core/graph/BaseImplicitGraph.d.ts.map +1 -1
- package/lib/core/graph/BaseImplicitGraph.js +6 -0
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +5 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -2
- package/package.json +2 -2
|
@@ -62,7 +62,7 @@ class CSFuncID {
|
|
|
62
62
|
}
|
|
63
63
|
exports.CSFuncID = CSFuncID;
|
|
64
64
|
class PagBuilder {
|
|
65
|
-
constructor(p, cg, s, kLimit) {
|
|
65
|
+
constructor(p, cg, s, kLimit, scale) {
|
|
66
66
|
this.handledFunc = new Set();
|
|
67
67
|
this.worklist = [];
|
|
68
68
|
// TODO: change string to hash value
|
|
@@ -73,7 +73,7 @@ class PagBuilder {
|
|
|
73
73
|
this.cid2ThisLocalMap = new Map();
|
|
74
74
|
this.sdkMethodReturnValueMap = new Map();
|
|
75
75
|
// record the SDK API param, and create fake Values
|
|
76
|
-
this.
|
|
76
|
+
this.methodParamValueMap = new Map();
|
|
77
77
|
this.fakeSdkMethodParamDeclaringStmt = new Stmt_1.ArkAssignStmt(new Local_1.Local(""), new Local_1.Local(""));
|
|
78
78
|
this.funcHandledThisRound = new Set();
|
|
79
79
|
this.updatedNodesThisRound = new Map();
|
|
@@ -83,6 +83,7 @@ class PagBuilder {
|
|
|
83
83
|
this.externalScopeVariableMap = new Map();
|
|
84
84
|
this.pag = p;
|
|
85
85
|
this.cg = cg;
|
|
86
|
+
this.scale = scale;
|
|
86
87
|
this.funcPags = new Map;
|
|
87
88
|
this.ctx = new Context_1.KLimitedContextSensitive(kLimit);
|
|
88
89
|
this.scene = s;
|
|
@@ -163,52 +164,10 @@ class PagBuilder {
|
|
|
163
164
|
continue;
|
|
164
165
|
}
|
|
165
166
|
// handle call
|
|
166
|
-
|
|
167
|
-
if (ivkExpr instanceof Expr_1.ArkStaticInvokeExpr) {
|
|
168
|
-
let cs = this.cg.getCallSiteByStmt(stmt);
|
|
169
|
-
if (cs) {
|
|
170
|
-
// direct call is already existing in CG
|
|
171
|
-
// TODO: API Invoke stmt has anonymous method param, how to add these param into callee
|
|
172
|
-
fpag.addNormalCallSite(cs);
|
|
173
|
-
if (ivkExpr.getMethodSignature().getDeclaringClassSignature()
|
|
174
|
-
.getDeclaringFileSignature().getFileName() === Const_1.UNKNOWN_FILE_NAME) {
|
|
175
|
-
fpag.addUnknownCallSite(cs);
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
throw new Error('Can not find static callsite');
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
else if (ivkExpr instanceof Expr_1.ArkInstanceInvokeExpr || ivkExpr instanceof Expr_1.ArkPtrInvokeExpr) {
|
|
184
|
-
let ptcs = this.cg.getDynCallsiteByStmt(stmt);
|
|
185
|
-
if (ptcs) {
|
|
186
|
-
this.addToDynamicCallSite(fpag, ptcs);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
167
|
+
this.buildInvokeExprInAssignStmt(stmt, fpag);
|
|
189
168
|
}
|
|
190
|
-
else if (stmt instanceof Stmt_1.ArkInvokeStmt) {
|
|
191
|
-
|
|
192
|
-
let cs = this.cg.getCallSiteByStmt(stmt);
|
|
193
|
-
if (cs) {
|
|
194
|
-
// direct call or constructor call is already existing in CG
|
|
195
|
-
// TODO: some ptr invoke stmt is recognized as Static invoke in tests/resources/callgraph/funPtrTest1/fnPtrTest4.ts
|
|
196
|
-
// TODO: instance invoke(ptr invoke)
|
|
197
|
-
if (this.cg.isUnknownMethod(cs.calleeFuncID)) {
|
|
198
|
-
fpag.addUnknownCallSite(cs);
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
fpag.addNormalCallSite(cs);
|
|
202
|
-
}
|
|
203
|
-
continue;
|
|
204
|
-
}
|
|
205
|
-
let dycs = this.cg.getDynCallsiteByStmt(stmt);
|
|
206
|
-
if (dycs) {
|
|
207
|
-
this.addToDynamicCallSite(fpag, dycs);
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
throw new Error('Can not find callsite by stmt');
|
|
211
|
-
}
|
|
169
|
+
else if (stmt instanceof Stmt_1.ArkInvokeStmt && this.scale === PointerAnalysisConfig_1.PtaAnalysisScale.WholeProgram) {
|
|
170
|
+
this.buildInvokeExprInInvokeStmt(stmt, fpag);
|
|
212
171
|
}
|
|
213
172
|
else {
|
|
214
173
|
// TODO: need handle other type of stmt?
|
|
@@ -218,27 +177,109 @@ class PagBuilder {
|
|
|
218
177
|
this.pagStat.numTotalFunction++;
|
|
219
178
|
return true;
|
|
220
179
|
}
|
|
180
|
+
buildInvokeExprInAssignStmt(stmt, fpag) {
|
|
181
|
+
let ivkExpr = stmt.getInvokeExpr();
|
|
182
|
+
if (ivkExpr instanceof Expr_1.ArkStaticInvokeExpr) {
|
|
183
|
+
let cs = this.cg.getCallSiteByStmt(stmt);
|
|
184
|
+
if (cs) {
|
|
185
|
+
// direct call is already existing in CG
|
|
186
|
+
// TODO: API Invoke stmt has anonymous method param, how to add these param into callee
|
|
187
|
+
fpag.addNormalCallSite(cs);
|
|
188
|
+
if (ivkExpr.getMethodSignature().getDeclaringClassSignature()
|
|
189
|
+
.getDeclaringFileSignature().getFileName() === Const_1.UNKNOWN_FILE_NAME) {
|
|
190
|
+
fpag.addUnknownCallSite(cs);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
throw new Error('Can not find static callsite');
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else if (ivkExpr instanceof Expr_1.ArkInstanceInvokeExpr || ivkExpr instanceof Expr_1.ArkPtrInvokeExpr) {
|
|
199
|
+
let ptcs = this.cg.getDynCallsiteByStmt(stmt);
|
|
200
|
+
if (ptcs) {
|
|
201
|
+
this.addToDynamicCallSite(fpag, ptcs);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
buildInvokeExprInInvokeStmt(stmt, fpag) {
|
|
206
|
+
// TODO: discuss if we need a invokeStmt
|
|
207
|
+
let cs = this.cg.getCallSiteByStmt(stmt);
|
|
208
|
+
if (cs) {
|
|
209
|
+
// direct call or constructor call is already existing in CG
|
|
210
|
+
// TODO: some ptr invoke stmt is recognized as Static invoke in tests/resources/callgraph/funPtrTest1/fnPtrTest4.ts
|
|
211
|
+
// TODO: instance invoke(ptr invoke)
|
|
212
|
+
if (this.cg.isUnknownMethod(cs.calleeFuncID)) {
|
|
213
|
+
fpag.addUnknownCallSite(cs);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
fpag.addNormalCallSite(cs);
|
|
217
|
+
}
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
let dycs = this.cg.getDynCallsiteByStmt(stmt);
|
|
221
|
+
if (dycs) {
|
|
222
|
+
this.addToDynamicCallSite(fpag, dycs);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
throw new Error('Can not find callsite by stmt');
|
|
226
|
+
}
|
|
227
|
+
}
|
|
221
228
|
/**
|
|
222
229
|
* will not create real funcPag, only create param values
|
|
223
230
|
*/
|
|
224
231
|
buildSDKFuncPag(funcID) {
|
|
225
|
-
var _a;
|
|
226
232
|
// check if SDK method
|
|
227
233
|
let cgNode = this.cg.getNode(funcID);
|
|
228
234
|
if (!cgNode.isSdkMethod()) {
|
|
229
235
|
return;
|
|
230
236
|
}
|
|
231
|
-
let
|
|
237
|
+
let paramArr = this.createDummyParamValue(funcID);
|
|
238
|
+
this.methodParamValueMap.set(funcID, paramArr);
|
|
239
|
+
}
|
|
240
|
+
createDummyParamValue(funcID, type = 1) {
|
|
241
|
+
let arkMethod = this.cg.getArkMethodByFuncID(funcID);
|
|
242
|
+
if (!arkMethod) {
|
|
243
|
+
return new Map();
|
|
244
|
+
}
|
|
245
|
+
let args = arkMethod.getParameters();
|
|
232
246
|
if (!args) {
|
|
233
|
-
return;
|
|
247
|
+
return new Map();
|
|
248
|
+
}
|
|
249
|
+
let paramArr = new Map();
|
|
250
|
+
if (type === 0) {
|
|
251
|
+
// heapObj
|
|
252
|
+
args.forEach((arg, index) => {
|
|
253
|
+
let paramType = arg.getType();
|
|
254
|
+
if (!(paramType instanceof Type_1.ClassType)) {
|
|
255
|
+
return;
|
|
256
|
+
// TODO: support more type
|
|
257
|
+
}
|
|
258
|
+
let argInstance = new Expr_1.ArkNewExpr(paramType);
|
|
259
|
+
paramArr.set(index, argInstance);
|
|
260
|
+
});
|
|
234
261
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
262
|
+
else if (type === 1) {
|
|
263
|
+
// Local
|
|
264
|
+
args.forEach((arg, index) => {
|
|
265
|
+
let argInstance = new Local_1.Local(arg.getName(), arg.getType());
|
|
266
|
+
argInstance.setDeclaringStmt(this.fakeSdkMethodParamDeclaringStmt);
|
|
267
|
+
paramArr.set(index, argInstance);
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
return paramArr;
|
|
271
|
+
}
|
|
272
|
+
createDummyParamPagNodes(value, funcID) {
|
|
273
|
+
let paramPagNodes = new Map();
|
|
274
|
+
let method = this.cg.getArkMethodByFuncID(funcID);
|
|
275
|
+
if (!method || !method.getCfg()) {
|
|
276
|
+
return paramPagNodes;
|
|
277
|
+
}
|
|
278
|
+
value.forEach((v, index) => {
|
|
279
|
+
let paramArkExprNode = this.pag.getOrNewNode(Context_1.DUMMY_CID, v, this.fakeSdkMethodParamDeclaringStmt);
|
|
280
|
+
paramPagNodes.set(index, paramArkExprNode.getID());
|
|
240
281
|
});
|
|
241
|
-
|
|
282
|
+
return paramPagNodes;
|
|
242
283
|
}
|
|
243
284
|
buildPagFromFuncPag(funcID, cid) {
|
|
244
285
|
var _a;
|
|
@@ -249,7 +290,7 @@ class PagBuilder {
|
|
|
249
290
|
if (this.handledFunc.has(`${cid}-${funcID}`)) {
|
|
250
291
|
return;
|
|
251
292
|
}
|
|
252
|
-
this.addEdgesFromFuncPag(funcPag, cid);
|
|
293
|
+
this.addEdgesFromFuncPag(funcPag, cid, funcID);
|
|
253
294
|
let interFuncPag = (_a = this.interFuncPags) === null || _a === void 0 ? void 0 : _a.get(funcID);
|
|
254
295
|
if (interFuncPag) {
|
|
255
296
|
this.addEdgesFromInterFuncPag(interFuncPag, cid);
|
|
@@ -260,11 +301,16 @@ class PagBuilder {
|
|
|
260
301
|
this.handledFunc.add(`${cid}-${funcID}`);
|
|
261
302
|
}
|
|
262
303
|
/// Add Pag Nodes and Edges in function
|
|
263
|
-
addEdgesFromFuncPag(funcPag, cid) {
|
|
304
|
+
addEdgesFromFuncPag(funcPag, cid, funcID) {
|
|
264
305
|
let inEdges = funcPag.getInternalEdges();
|
|
265
306
|
if (inEdges === undefined) {
|
|
266
307
|
return false;
|
|
267
308
|
}
|
|
309
|
+
let paramNodes;
|
|
310
|
+
let paramRefIndex = 0;
|
|
311
|
+
if (this.scale === PointerAnalysisConfig_1.PtaAnalysisScale.MethodLevel) {
|
|
312
|
+
paramNodes = this.createDummyParamPagNodes(this.createDummyParamValue(funcID, 0), funcID);
|
|
313
|
+
}
|
|
268
314
|
for (let e of inEdges) {
|
|
269
315
|
let srcPagNode = this.getOrNewPagNode(cid, e.src, e.stmt);
|
|
270
316
|
let dstPagNode = this.getOrNewPagNode(cid, e.dst, e.stmt);
|
|
@@ -273,6 +319,14 @@ class PagBuilder {
|
|
|
273
319
|
if (dstPagNode.getStmt() instanceof Stmt_1.ArkReturnStmt) {
|
|
274
320
|
dstPagNode.setStmt(e.stmt);
|
|
275
321
|
}
|
|
322
|
+
// for demand-driven analysis, add fake parameter heapObj nodes
|
|
323
|
+
if (e.src instanceof Ref_1.ArkParameterRef && this.scale === PointerAnalysisConfig_1.PtaAnalysisScale.MethodLevel) {
|
|
324
|
+
let paramObjNodeID = paramNodes === null || paramNodes === void 0 ? void 0 : paramNodes.get(paramRefIndex++);
|
|
325
|
+
if (!paramObjNodeID) {
|
|
326
|
+
continue;
|
|
327
|
+
}
|
|
328
|
+
this.pag.addPagEdge(this.pag.getNode(paramObjNodeID), srcPagNode, Pag_1.PagEdgeKind.Address);
|
|
329
|
+
}
|
|
276
330
|
}
|
|
277
331
|
return true;
|
|
278
332
|
}
|
|
@@ -282,6 +336,9 @@ class PagBuilder {
|
|
|
282
336
|
let ivkExpr = cs.callStmt.getInvokeExpr();
|
|
283
337
|
let calleeCid = this.ctx.getOrNewContext(cid, cs.calleeFuncID, true);
|
|
284
338
|
let calleeCGNode = this.cg.getNode(cs.calleeFuncID);
|
|
339
|
+
if (this.scale === PointerAnalysisConfig_1.PtaAnalysisScale.MethodLevel) {
|
|
340
|
+
this.addStaticPagCallReturnEdge(cs, cid, calleeCid);
|
|
341
|
+
}
|
|
285
342
|
// process the Storage API(Static)
|
|
286
343
|
if (!this.processStorage(cs, calleeCGNode, cid)) {
|
|
287
344
|
// If not Storage API, process normal edge
|
|
@@ -508,6 +565,10 @@ class PagBuilder {
|
|
|
508
565
|
if (!this.cg.detectReachable(dstCGNode.getID(), callerNode.getID())) {
|
|
509
566
|
let calleeCid = this.ctx.getOrNewContext(cid, dstCGNode.getID(), true);
|
|
510
567
|
let staticCS = new CallGraph_1.CallSite(cs.callStmt, cs.args, dstCGNode.getID(), cs.callerFuncID);
|
|
568
|
+
if (this.scale === PointerAnalysisConfig_1.PtaAnalysisScale.MethodLevel) {
|
|
569
|
+
srcNodes.push(...this.addStaticPagCallReturnEdge(staticCS, baseClassPTNode, calleeCid));
|
|
570
|
+
continue;
|
|
571
|
+
}
|
|
511
572
|
srcNodes.push(...this.processContainerPagCallEdge(staticCS, cid, baseClassPTNode));
|
|
512
573
|
srcNodes.push(...this.addStaticPagCallEdge(staticCS, cid, calleeCid));
|
|
513
574
|
// Pass base's pts to callee's this pointer
|
|
@@ -752,6 +813,21 @@ class PagBuilder {
|
|
|
752
813
|
}
|
|
753
814
|
return srcNodes;
|
|
754
815
|
}
|
|
816
|
+
addStaticPagCallReturnEdge(cs, callerCid, calleeCid) {
|
|
817
|
+
if (!calleeCid) {
|
|
818
|
+
calleeCid = this.ctx.getOrNewContext(callerCid, cs.calleeFuncID, true);
|
|
819
|
+
}
|
|
820
|
+
let srcNodes = [];
|
|
821
|
+
// Add reachable
|
|
822
|
+
let calleeNode = this.cg.getNode(cs.calleeFuncID);
|
|
823
|
+
let calleeMethod = this.scene.getMethod(calleeNode.getMethod());
|
|
824
|
+
if (!calleeMethod) {
|
|
825
|
+
// TODO: check if nodes need to delete
|
|
826
|
+
return srcNodes;
|
|
827
|
+
}
|
|
828
|
+
srcNodes.push(...this.addSDKMethodReturnPagEdge(cs, callerCid, calleeCid, calleeMethod));
|
|
829
|
+
return srcNodes;
|
|
830
|
+
}
|
|
755
831
|
addCallParamPagEdge(params, cs, callerCid, calleeCid) {
|
|
756
832
|
var _a, _b, _c;
|
|
757
833
|
let srcNodes = [];
|
|
@@ -819,17 +895,18 @@ class PagBuilder {
|
|
|
819
895
|
if ((0, PTAUtils_1.IsCollectionAPI)(calleeMethod.getSignature())) {
|
|
820
896
|
return srcNodes;
|
|
821
897
|
}
|
|
822
|
-
if (!this.
|
|
898
|
+
if (!this.methodParamValueMap.has(calleeNode.getID())) {
|
|
823
899
|
this.buildSDKFuncPag(calleeNode.getID());
|
|
824
900
|
}
|
|
825
|
-
this.addSDKMethodReturnPagEdge(cs, callerCid, calleeCid, calleeMethod);
|
|
901
|
+
srcNodes.push(...this.addSDKMethodReturnPagEdge(cs, callerCid, calleeCid, calleeMethod));
|
|
826
902
|
srcNodes.push(...this.addSDKMethodParamPagEdge(cs, callerCid, calleeCid, calleeNode.getID()));
|
|
827
903
|
return srcNodes;
|
|
828
904
|
}
|
|
829
905
|
addSDKMethodReturnPagEdge(cs, callerCid, calleeCid, calleeMethod) {
|
|
906
|
+
let srcNodes = [];
|
|
830
907
|
let returnType = calleeMethod.getReturnType();
|
|
831
908
|
if (!(returnType instanceof Type_1.ClassType) || !(cs.callStmt instanceof Stmt_1.ArkAssignStmt)) {
|
|
832
|
-
return;
|
|
909
|
+
return srcNodes;
|
|
833
910
|
}
|
|
834
911
|
// check fake heap object exists or not
|
|
835
912
|
let cidMap = this.sdkMethodReturnValueMap.get(calleeMethod);
|
|
@@ -847,6 +924,8 @@ class PagBuilder {
|
|
|
847
924
|
let srcPagNode = this.getOrNewPagNode(calleeCid, newExpr);
|
|
848
925
|
let dstPagNode = this.getOrNewPagNode(callerCid, cs.callStmt.getLeftOp(), cs.callStmt);
|
|
849
926
|
this.pag.addPagEdge(srcPagNode, dstPagNode, Pag_1.PagEdgeKind.Address, cs.callStmt);
|
|
927
|
+
srcNodes.push(srcPagNode.getID());
|
|
928
|
+
return srcNodes;
|
|
850
929
|
}
|
|
851
930
|
addSDKMethodParamPagEdge(cs, callerCid, calleeCid, funcID) {
|
|
852
931
|
var _a, _b;
|
|
@@ -859,7 +938,7 @@ class PagBuilder {
|
|
|
859
938
|
let paramValue;
|
|
860
939
|
if (arg instanceof Local_1.Local && arg.getType() instanceof Type_1.FunctionType) {
|
|
861
940
|
// TODO: cannot find value
|
|
862
|
-
paramValue = this.
|
|
941
|
+
paramValue = this.methodParamValueMap.get(funcID).get(i);
|
|
863
942
|
}
|
|
864
943
|
else {
|
|
865
944
|
continue;
|
|
@@ -8,6 +8,7 @@ import { Stmt } from '../../core/base/Stmt';
|
|
|
8
8
|
import { Pag } from './Pag';
|
|
9
9
|
import { PointerAnalysisConfig } from './PointerAnalysisConfig';
|
|
10
10
|
import { DiffPTData, IPtsCollection } from './PtsDS';
|
|
11
|
+
import { ArkMethod } from '../../core/model/ArkMethod';
|
|
11
12
|
export declare class PointerAnalysis extends AbstractAnalysis {
|
|
12
13
|
private pag;
|
|
13
14
|
private pagBuilder;
|
|
@@ -19,6 +20,7 @@ export declare class PointerAnalysis extends AbstractAnalysis {
|
|
|
19
20
|
private config;
|
|
20
21
|
constructor(p: Pag, cg: CallGraph, s: Scene, config: PointerAnalysisConfig);
|
|
21
22
|
static pointerAnalysisForWholeProject(projectScene: Scene, config?: PointerAnalysisConfig): PointerAnalysis;
|
|
23
|
+
static pointerAnalysisForMethod(s: Scene, method: ArkMethod, config?: PointerAnalysisConfig): PointerAnalysis;
|
|
22
24
|
protected init(): void;
|
|
23
25
|
start(): void;
|
|
24
26
|
private postProcess;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PointerAnalysis.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAG5D,OAAO,EAAE,SAAS,EAAiB,QAAQ,EAAe,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAa,IAAI,EAAe,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI5C,OAAO,EAAE,GAAG,EAAgF,MAAM,OAAO,CAAC;AAE1G,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"PointerAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PointerAnalysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
|
|
|
62
62
|
this.pag = p;
|
|
63
63
|
this.cg = cg;
|
|
64
64
|
this.ptd = new PtsDS_1.DiffPTData(config.ptsCollectionCtor);
|
|
65
|
-
this.pagBuilder = new PagBuilder_1.PagBuilder(this.pag, this.cg, s, config.kLimit);
|
|
65
|
+
this.pagBuilder = new PagBuilder_1.PagBuilder(this.pag, this.cg, s, config.kLimit, config.analysisScale);
|
|
66
66
|
this.cgBuilder = new CallGraphBuilder_1.CallGraphBuilder(this.cg, s);
|
|
67
67
|
this.ptaStat = new Statistics_1.PTAStat(this);
|
|
68
68
|
this.config = config;
|
|
@@ -86,6 +86,20 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
|
|
|
86
86
|
pta.start();
|
|
87
87
|
return pta;
|
|
88
88
|
}
|
|
89
|
+
static pointerAnalysisForMethod(s, method, config) {
|
|
90
|
+
let cg = new CallGraph_1.CallGraph(s);
|
|
91
|
+
let cgBuilder = new CallGraphBuilder_1.CallGraphBuilder(cg, s);
|
|
92
|
+
cgBuilder.buildDirectCallGraphForScene();
|
|
93
|
+
let pag = new Pag_1.Pag();
|
|
94
|
+
if (!config) {
|
|
95
|
+
config = PointerAnalysisConfig_1.PointerAnalysisConfig.create(1, 'out/', false, false);
|
|
96
|
+
}
|
|
97
|
+
let entryMethodID = cg.getCallGraphNodeByMethod(method.getSignature()).getID();
|
|
98
|
+
let pta = new PointerAnalysis(pag, cg, s, config);
|
|
99
|
+
pta.setEntries([entryMethodID]);
|
|
100
|
+
pta.start();
|
|
101
|
+
return pta;
|
|
102
|
+
}
|
|
89
103
|
init() {
|
|
90
104
|
logger.warn(`========== Init Pointer Analysis ==========`);
|
|
91
105
|
// start statistics
|
|
@@ -143,7 +157,12 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
|
|
|
143
157
|
// do pointer transfer
|
|
144
158
|
this.solveWorklist();
|
|
145
159
|
// process dynamic call
|
|
146
|
-
|
|
160
|
+
if (this.config.analysisScale === PointerAnalysisConfig_1.PtaAnalysisScale.WholeProgram || this.ptaStat.iterTimes === 1) {
|
|
161
|
+
reanalyzer = this.onTheFlyDynamicCallSolve();
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
reanalyzer = false;
|
|
165
|
+
}
|
|
147
166
|
if (this.config.dotDump) {
|
|
148
167
|
this.pag.dump(path_1.default.join(this.config.outputDirectory, `pta_pag_itor#${this.ptaStat.iterTimes}.dot`));
|
|
149
168
|
}
|
|
@@ -153,6 +172,7 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
|
|
|
153
172
|
* get newly added Address Edge, and add them to initial WorkList
|
|
154
173
|
*/
|
|
155
174
|
initWorklist() {
|
|
175
|
+
let changed = false;
|
|
156
176
|
for (let e of this.pag.getAddrEdges()) {
|
|
157
177
|
this.ptaStat.numProcessedAddr++;
|
|
158
178
|
let { src, dst } = e.getEndPoints();
|
|
@@ -163,8 +183,10 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
|
|
|
163
183
|
this.worklist.push(src);
|
|
164
184
|
}
|
|
165
185
|
this.worklist.push(dst);
|
|
186
|
+
changed = true;
|
|
166
187
|
}
|
|
167
188
|
this.pag.resetAddrEdges();
|
|
189
|
+
return changed;
|
|
168
190
|
}
|
|
169
191
|
solveWorklist() {
|
|
170
192
|
while (this.worklist.length > 0) {
|
|
@@ -343,7 +365,7 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
|
|
|
343
365
|
let srcNodes = this.pagBuilder.handleUnprocessedCallSites(processedCallSites);
|
|
344
366
|
changed = this.addToReanalyze(srcNodes) || changed;
|
|
345
367
|
changed = this.pagBuilder.handleReachable() || changed;
|
|
346
|
-
this.initWorklist();
|
|
368
|
+
changed = this.initWorklist() || changed;
|
|
347
369
|
return changed;
|
|
348
370
|
}
|
|
349
371
|
processDynCallSite(node, pts, processedCallSites) {
|
|
@@ -455,8 +477,10 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
|
|
|
455
477
|
}
|
|
456
478
|
addIncomingEdgesToWorkList(valueNode, workListNodes, processedNodes) {
|
|
457
479
|
let inCopyEdges = valueNode.getIncomingCopyEdges();
|
|
458
|
-
|
|
459
|
-
|
|
480
|
+
let inThisEdges = valueNode.getIncomingThisEdges();
|
|
481
|
+
let combinedEdges = new Set([...inCopyEdges !== null && inCopyEdges !== void 0 ? inCopyEdges : [], ...inThisEdges !== null && inThisEdges !== void 0 ? inThisEdges : []]);
|
|
482
|
+
if (combinedEdges) {
|
|
483
|
+
combinedEdges.forEach(edge => {
|
|
460
484
|
let srcID = edge.getSrcID();
|
|
461
485
|
if (!processedNodes.has(srcID)) {
|
|
462
486
|
workListNodes.push(srcID);
|
|
@@ -466,8 +490,10 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
|
|
|
466
490
|
}
|
|
467
491
|
addOutgoingEdgesToWorkList(valueNode, workListNodes, processedNodes) {
|
|
468
492
|
let outCopyEdges = valueNode.getOutgoingCopyEdges();
|
|
469
|
-
|
|
470
|
-
|
|
493
|
+
let outThisEdges = valueNode.getOutgoingThisEdges();
|
|
494
|
+
let combinedEdges = new Set([...outCopyEdges !== null && outCopyEdges !== void 0 ? outCopyEdges : [], ...outThisEdges !== null && outThisEdges !== void 0 ? outThisEdges : []]);
|
|
495
|
+
if (combinedEdges) {
|
|
496
|
+
combinedEdges.forEach(edge => {
|
|
471
497
|
let dstID = edge.getDstID();
|
|
472
498
|
if (!processedNodes.has(dstID)) {
|
|
473
499
|
workListNodes.push(dstID);
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { IPtsCollection, PtsCollectionType } from './PtsDS';
|
|
2
2
|
import { NodeID } from '../../core/graph/BaseExplicitGraph';
|
|
3
|
+
export declare enum PtaAnalysisScale {
|
|
4
|
+
WholeProgram = 0,
|
|
5
|
+
MethodLevel = 1
|
|
6
|
+
}
|
|
3
7
|
export declare class PointerAnalysisConfig {
|
|
4
8
|
private static instance;
|
|
5
9
|
kLimit: number;
|
|
@@ -7,10 +11,11 @@ export declare class PointerAnalysisConfig {
|
|
|
7
11
|
detectTypeDiff: boolean;
|
|
8
12
|
dotDump: boolean;
|
|
9
13
|
unhandledFuncDump: boolean;
|
|
14
|
+
analysisScale: PtaAnalysisScale;
|
|
10
15
|
ptsCollectionType: PtsCollectionType;
|
|
11
16
|
ptsCollectionCtor: new () => IPtsCollection<NodeID>;
|
|
12
|
-
constructor(kLimit: number, outputDirectory: string, detectTypeDiff?: boolean, dotDump?: boolean, unhandledFuncDump?: boolean, ptsCoType?: PtsCollectionType);
|
|
13
|
-
static create(kLimit: number, outputDirectory: string, detectTypeDiff?: boolean, dotDump?: boolean, unhandledFuncDump?: boolean, ptsCoType?: PtsCollectionType): PointerAnalysisConfig;
|
|
17
|
+
constructor(kLimit: number, outputDirectory: string, detectTypeDiff?: boolean, dotDump?: boolean, unhandledFuncDump?: boolean, analysisScale?: PtaAnalysisScale, ptsCoType?: PtsCollectionType);
|
|
18
|
+
static create(kLimit: number, outputDirectory: string, detectTypeDiff?: boolean, dotDump?: boolean, unhandledFuncDump?: boolean, analysisScale?: PtaAnalysisScale, ptsCoType?: PtsCollectionType): PointerAnalysisConfig;
|
|
14
19
|
static getInstance(): PointerAnalysisConfig;
|
|
15
20
|
}
|
|
16
21
|
//# sourceMappingURL=PointerAnalysisConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerAnalysisConfig.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PointerAnalysisConfig.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA2B,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwB;IAExC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,UAAU,cAAc,CAAC,MAAM,CAAC,CAAC;gBAM/C,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe,EAChF,OAAO,GAAE,OAAe,EAAE,iBAAiB,GAAE,OAAe,EAAE,SAAS,oBAAwB;
|
|
1
|
+
{"version":3,"file":"PointerAnalysisConfig.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PointerAnalysisConfig.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA2B,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,oBAAY,gBAAgB;IACxB,YAAY,IAAI;IAChB,WAAW,IAAI;CAClB;AAED,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwB;IAExC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,gBAAgB,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,UAAU,cAAc,CAAC,MAAM,CAAC,CAAC;gBAM/C,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe,EAChF,OAAO,GAAE,OAAe,EAAE,iBAAiB,GAAE,OAAe,EAC5D,aAAa,GAAE,gBAAgD,EAAE,SAAS,oBAAwB;WAuBxF,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe,EACzF,OAAO,GAAE,OAAe,EAAE,iBAAiB,GAAE,OAAe,EAC5D,aAAa,GAAE,gBAAgD,EAAE,SAAS,oBAAwB,GAAG,qBAAqB;WAUhH,WAAW,IAAI,qBAAqB;CAMrD"}
|
|
@@ -37,15 +37,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
37
37
|
return result;
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.PointerAnalysisConfig = void 0;
|
|
40
|
+
exports.PointerAnalysisConfig = exports.PtaAnalysisScale = void 0;
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
const PtsDS_1 = require("./PtsDS");
|
|
43
|
+
var PtaAnalysisScale;
|
|
44
|
+
(function (PtaAnalysisScale) {
|
|
45
|
+
PtaAnalysisScale[PtaAnalysisScale["WholeProgram"] = 0] = "WholeProgram";
|
|
46
|
+
PtaAnalysisScale[PtaAnalysisScale["MethodLevel"] = 1] = "MethodLevel";
|
|
47
|
+
})(PtaAnalysisScale = exports.PtaAnalysisScale || (exports.PtaAnalysisScale = {}));
|
|
43
48
|
class PointerAnalysisConfig {
|
|
44
49
|
/*
|
|
45
50
|
* Note: DO NOT use `new PointerAnalysisConfig` to initialize ptaconfig
|
|
46
51
|
* Use PointerAnalysisConfig.create() for singleton pattern
|
|
47
52
|
*/
|
|
48
|
-
constructor(kLimit, outputDirectory, detectTypeDiff = false, dotDump = false, unhandledFuncDump = false, ptsCoType = PtsDS_1.PtsCollectionType.Set) {
|
|
53
|
+
constructor(kLimit, outputDirectory, detectTypeDiff = false, dotDump = false, unhandledFuncDump = false, analysisScale = PtaAnalysisScale.WholeProgram, ptsCoType = PtsDS_1.PtsCollectionType.Set) {
|
|
49
54
|
if (kLimit > 5) {
|
|
50
55
|
throw new Error('K Limit too large');
|
|
51
56
|
}
|
|
@@ -54,6 +59,7 @@ class PointerAnalysisConfig {
|
|
|
54
59
|
this.detectTypeDiff = detectTypeDiff;
|
|
55
60
|
this.dotDump = dotDump;
|
|
56
61
|
this.unhandledFuncDump = unhandledFuncDump;
|
|
62
|
+
this.analysisScale = analysisScale;
|
|
57
63
|
this.ptsCollectionType = ptsCoType;
|
|
58
64
|
this.ptsCollectionCtor = (0, PtsDS_1.createPtsCollectionCtor)(ptsCoType);
|
|
59
65
|
if (!fs.existsSync(outputDirectory)) {
|
|
@@ -64,8 +70,8 @@ class PointerAnalysisConfig {
|
|
|
64
70
|
* Create Singleton instance
|
|
65
71
|
* The instance can be created multi-times and be overwrited
|
|
66
72
|
*/
|
|
67
|
-
static create(kLimit, outputDirectory, detectTypeDiff = false, dotDump = false, unhandledFuncDump = false, ptsCoType = PtsDS_1.PtsCollectionType.Set) {
|
|
68
|
-
PointerAnalysisConfig.instance = new PointerAnalysisConfig(kLimit, outputDirectory, detectTypeDiff, dotDump, unhandledFuncDump, ptsCoType);
|
|
73
|
+
static create(kLimit, outputDirectory, detectTypeDiff = false, dotDump = false, unhandledFuncDump = false, analysisScale = PtaAnalysisScale.WholeProgram, ptsCoType = PtsDS_1.PtsCollectionType.Set) {
|
|
74
|
+
PointerAnalysisConfig.instance = new PointerAnalysisConfig(kLimit, outputDirectory, detectTypeDiff, dotDump, unhandledFuncDump, analysisScale, ptsCoType);
|
|
69
75
|
return PointerAnalysisConfig.instance;
|
|
70
76
|
}
|
|
71
77
|
/*
|
package/lib/core/base/Ref.d.ts
CHANGED
|
@@ -134,7 +134,6 @@ export declare class ArkParameterRef extends AbstractRef {
|
|
|
134
134
|
export declare class ArkThisRef extends AbstractRef {
|
|
135
135
|
private type;
|
|
136
136
|
constructor(type: ClassType);
|
|
137
|
-
inferType(arkMethod: ArkMethod): AbstractRef;
|
|
138
137
|
getType(): ClassType;
|
|
139
138
|
getUses(): Value[];
|
|
140
139
|
toString(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/core/base/Ref.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAa,SAAS,EAAkB,IAAI,EAAe,MAAM,QAAQ,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/core/base/Ref.ts"],"names":[],"mappings":"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"}
|
package/lib/core/base/Ref.js
CHANGED
|
@@ -41,7 +41,6 @@ exports.ClosureFieldRef = exports.GlobalRef = exports.ArkCaughtExceptionRef = ex
|
|
|
41
41
|
const logger_1 = __importStar(require("../../utils/logger"));
|
|
42
42
|
const Type_1 = require("./Type");
|
|
43
43
|
const TypeInference_1 = require("../common/TypeInference");
|
|
44
|
-
const Const_1 = require("../common/Const");
|
|
45
44
|
const Stmt_1 = require("./Stmt");
|
|
46
45
|
const IRInference_1 = require("../common/IRInference");
|
|
47
46
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'Ref');
|
|
@@ -258,16 +257,6 @@ class ArkThisRef extends AbstractRef {
|
|
|
258
257
|
super();
|
|
259
258
|
this.type = type;
|
|
260
259
|
}
|
|
261
|
-
inferType(arkMethod) {
|
|
262
|
-
const classSignature = this.type.getClassSignature();
|
|
263
|
-
if (classSignature.getClassName().startsWith(Const_1.ANONYMOUS_CLASS_PREFIX)) {
|
|
264
|
-
let type = TypeInference_1.TypeInference.inferBaseType(classSignature.getDeclaringClassName(), arkMethod.getDeclaringArkClass());
|
|
265
|
-
if (type instanceof Type_1.ClassType) {
|
|
266
|
-
this.type = type;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
return this;
|
|
270
|
-
}
|
|
271
260
|
getType() {
|
|
272
261
|
return this.type;
|
|
273
262
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../../src/core/base/Type.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAG,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAsB,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../../src/core/base/Type.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAG,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAsB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAazE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,8BAAsB,IAAI;IACtB,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,aAAa,IAAI,MAAM;CACnC;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,IAAI;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAiB;WAEnC,WAAW,IAAI,OAAO;IAIpC,OAAO;IAIA,aAAa,IAAI,MAAM;CAGjC;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,IAAI;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAqB;WAEvC,WAAW,IAAI,WAAW;IAIxC,OAAO;IAIA,aAAa,IAAI,MAAM;CAGjC;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,IAAI;IAC1C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,YAAY,CAAS;gBAEjB,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,IAAI,EAAO;IAM5C,OAAO;IAIP,eAAe,IAAI,IAAI,EAAE;IAIzB,aAAa,IAAI,MAAM;CAOjC;AAED;;;GAGG;AACH,8BAAsB,aAAc,SAAQ,IAAI;IAC5C,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,EAAE,MAAM;IAKjB,OAAO;IAIP,aAAa,IAAI,MAAM;CAGjC;AAED,qBAAa,WAAY,SAAQ,aAAa;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAErD,OAAO;WAIO,WAAW;CAG5B;AAED,qBAAa,UAAW,SAAQ,aAAa;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAEpD,OAAO;WAIO,WAAW;CAG5B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,aAAa;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAEpD,OAAO;WAIO,WAAW;CAG5B;AAED,qBAAa,UAAW,SAAQ,aAAa;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAEpD,OAAO;WAIO,WAAW;CAG5B;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAAa;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAkB;WAEpC,WAAW,IAAI,QAAQ;IAIrC,OAAO;CAGV;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;WAEzC,WAAW,IAAI,aAAa;IAI1C,OAAO;CAGV;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,aAAa;IAC1C,gBAAuB,IAAI,cAAyB;IACpD,gBAAuB,KAAK,cAA0B;IAEtD,OAAO,CAAC,WAAW,CAA4B;gBAEnC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAK3C,cAAc,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO;IAI3C,aAAa,IAAI,MAAM;CAGjC;AAED;;;GAGG;AACH,qBAAa,SAAU,SAAQ,IAAI;IAC/B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAO;gBACX,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,GAAE,IAAgC;IAM9D,QAAQ,IAAI,IAAI,EAAE;IAIlB,WAAW,IAAI,IAAI;IAInB,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI;IAIhC,aAAa,IAAI,MAAM;IAavB,QAAQ,IAAI,IAAI,EAAE;CAW5B;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,IAAI;IACtC,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,EAAE,IAAI,EAAE;IAKlB,QAAQ,IAAI,IAAI,EAAE;IAIlB,aAAa,IAAI,MAAM;CAWjC;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,IAAI;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAkB;WAEpC,WAAW,IAAI,QAAQ;IAIrC,OAAO;IAIA,aAAa,IAAI,MAAM;CAGjC;AAED,qBAAa,SAAU,SAAQ,IAAI;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAmB;WAErC,WAAW,IAAI,SAAS;IAItC,OAAO;IAIA,aAAa,IAAI,MAAM;CAGjC;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,IAAI;IAClC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,eAAe,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE,IAAI,EAAE;IAMhE,kBAAkB,IAAI,eAAe;IAIrC,mBAAmB,IAAI,IAAI,EAAE,GAAG,SAAS;IAIzC,aAAa,IAAI,MAAM;CAGjC;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IACzC,OAAO,CAAC,UAAU,CAAiB;gBAEvB,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE,IAAI,EAAE;IAK5F,aAAa,IAAI,cAAc;IAI/B,aAAa,IAAI,MAAM;CAGjC;AAED;;;GAGG;AACH,qBAAa,SAAU,SAAQ,IAAI;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,IAAI,EAAE;IAM9D,iBAAiB,IAAI,cAAc;IAInC,iBAAiB,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAI1D,mBAAmB,IAAI,IAAI,EAAE,GAAG,SAAS;IAIzC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI;IAIpD,aAAa,IAAI,MAAM;CAQjC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAU,SAAQ,IAAI;IAC/B,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAC,CAAU;gBAEnB,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM;IAM7C;;;OAGG;IACI,WAAW,IAAI,IAAI;IAInB,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI;IAIhC,YAAY,IAAI,MAAM;IAItB,eAAe,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI;IAI5C,eAAe,IAAI,OAAO,GAAG,SAAS;IAItC,aAAa,IAAI,MAAM;CAejC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAU,SAAQ,IAAI;IAC/B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAC,CAAU;gBAEnB,KAAK,EAAE,IAAI,EAAE;IAKlB,QAAQ,IAAI,IAAI,EAAE;IAIlB,eAAe,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI;IAI5C,eAAe,IAAI,OAAO,GAAG,SAAS;IAItC,aAAa,IAAI,MAAM;CAMjC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,SAAU,SAAQ,IAAK,YAAW,SAAS;IACpD,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,SAAS,CAAqB;IACtC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE;IAQlG,OAAO,IAAI,MAAM;IAIjB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIjC,eAAe,IAAI,IAAI;IAIvB,aAAa,IAAI,MAAM;IASvB,aAAa,IAAI,UAAU;IAI3B,YAAY,IAAI,MAAM;IAOtB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO;IAQrD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrC,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAIlD,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAO5C,YAAY,IAAI,kBAAkB;IAIlC,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI;IAIlD,eAAe,IAAI,WAAW,EAAE,GAAG,SAAS;IAI5C,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,IAAI;IAInD,mBAAmB,IAAI,IAAI,EAAE,GAAG,SAAS;CAGnD;AAED,qBAAa,WAAY,SAAQ,IAAI;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAC,CAAO;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAO;IAC1B,OAAO,CAAC,KAAK,CAAa;gBAEd,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI;IAOxD,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,IAAI,GAAG,SAAS;IAIlC,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIhC,aAAa,IAAI,IAAI,GAAG,SAAS;IAIjC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI/B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,QAAQ,IAAI,MAAM;IAIlB,aAAa,IAAI,MAAM;CAUjC;AAED,8BAAsB,cAAe,SAAQ,IAAI;IAC7C,OAAO,CAAC,UAAU,CAAS;IAE3B,SAAS,aAAa,UAAU,EAAE,MAAM;IAKjC,aAAa,IAAI,MAAM;IAIvB,aAAa,IAAI,MAAM;CAGjC;AAED,qBAAa,uBAAwB,SAAQ,cAAc;IACvD,OAAO,CAAC,kBAAkB,CAAkD;WAE9D,WAAW,CAAC,SAAS,EAAE,kBAAkB,GAAG,uBAAuB;IAM1E,qBAAqB,IAAI,kBAAkB;IAI3C,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;gBAIrD,UAAU,EAAE,MAAM;IAIvB,aAAa,IAAI,MAAM;CAGjC;AAED,qBAAa,uBAAwB,SAAQ,cAAc;gBAC3C,UAAU,EAAE,MAAM;CAGjC;AAED,qBAAa,cAAe,SAAQ,IAAI;IACpC,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAe;gBAEnB,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE;IAMtD,eAAe,IAAI,eAAe;IAIlC,WAAW,IAAI,KAAK,EAAE;IAItB,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI;IAIhC,aAAa,IAAI,MAAM;CAGjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAiD,MAAM,cAAc,CAAC;AAuBrG,OAAO,EACH,SAAS,EAcT,IAAI,EAMP,MAAM,cAAc,CAAC;AAetB,OAAO,EAAyE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/G,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C,OAAO,EAAE,gBAAgB,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOhF,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAA+D;IACnF,OAAO,CAAC,wBAAwB,CAAS;gBAE7B,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS;IAQ9F,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC;IAIvB,YAAY,IAAI,KAAK;IAIrB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAInE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,IAAgC,GAAG,KAAK;IAMlF,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAIlD,OAAO,CAAC,YAAY;IAOb,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,aAAa;IAkE1D,OAAO,CAAC,kCAAkC;IAY1C,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,oCAAoC;IA2C5C,OAAO,CAAC,qCAAqC;IAsC7C,OAAO,CAAC,2BAA2B;IAmBnC,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,8BAA8B;IAatC,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,qCAAqC;IAY7C,OAAO,CAAC,8BAA8B;IAsBtC,OAAO,CAAC,iCAAiC;IAUzC,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,uCAAuC;IA+B/C,OAAO,CAAC,qBAAqB;IAsC7B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAiD,MAAM,cAAc,CAAC;AAuBrG,OAAO,EACH,SAAS,EAcT,IAAI,EAMP,MAAM,cAAc,CAAC;AAetB,OAAO,EAAyE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/G,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C,OAAO,EAAE,gBAAgB,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOhF,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAA+D;IACnF,OAAO,CAAC,wBAAwB,CAAS;gBAE7B,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS;IAQ9F,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC;IAIvB,YAAY,IAAI,KAAK;IAIrB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAInE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,IAAgC,GAAG,KAAK;IAMlF,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAIlD,OAAO,CAAC,YAAY;IAOb,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,aAAa;IAkE1D,OAAO,CAAC,kCAAkC;IAY1C,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,oCAAoC;IA2C5C,OAAO,CAAC,qCAAqC;IAsC7C,OAAO,CAAC,2BAA2B;IAmBnC,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,8BAA8B;IAatC,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,qCAAqC;IAY7C,OAAO,CAAC,8BAA8B;IAsBtC,OAAO,CAAC,iCAAiC;IAUzC,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,uCAAuC;IA+B/C,OAAO,CAAC,qBAAqB;IAsC7B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,+BAA+B;IA0CvC,OAAO,CAAC,sCAAsC;IAoC9C,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,2BAA2B;IAyDnC,OAAO,CAAC,8BAA8B;IAyBtC,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,2BAA2B;IAiBnC,OAAO,CAAC,4BAA4B;IAmDpC,OAAO,CAAC,iCAAiC;IAoCzC,OAAO,CAAC,qCAAqC;IAkC7C,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,oCAAoC;IAwC5C,OAAO,CAAC,qCAAqC;IAiC7C,OAAO,CAAC,8BAA8B;IAkBtC,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,+BAA+B;IASvC,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,gCAAgC;IAIxC,OAAO,CAAC,sCAAsC;IAI9C,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,2BAA2B;IAenC,OAAO,CAAC,4BAA4B;IAW7B,sCAAsC,CAAC,uBAAuB,EAAE,EAAE,CAAC,uBAAuB,GAAG,aAAa;IAU1G,kCAAkC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,EAC3C,OAAO,EAAE,OAAO,EAAE,WAAW,GAAE,OAAc,GAAG,aAAa;IAQvG,OAAO,CAAC,yBAAyB;IAgDjC,OAAO,CAAC,gCAAgC;IAsBxC,OAAO,CAAC,iCAAiC;IAwBzC,OAAO,CAAC,kCAAkC;IAsC1C,OAAO,CAAC,+BAA+B;IAqDvC,OAAO,CAAC,iCAAiC;IA4CzC,OAAO,CAAC,uCAAuC;IAsCxC,wBAAwB,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,GAAG,aAAa;IA4BxE,OAAO,CAAC,0BAA0B;IA6ClC,OAAO,CAAC,gBAAgB;IAUjB,iBAAiB,CAAC,SAAS,GAAE,IAAgC,GAAG,KAAK;IAQ5E,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,aAAa;IAed,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI;IA+D/C,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,uBAAuB;WAqBjB,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI;IAoB1G,OAAO,CAAC,8BAA8B;IA6CtC,OAAO,CAAC,wBAAwB;IAiChC,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,uBAAuB;WAOjB,4BAA4B,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO;CAoB/E"}
|