arkanalyzer 1.0.36 → 1.0.38

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.
Files changed (44) hide show
  1. package/lib/Scene.js +5 -5
  2. package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -1
  3. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +1 -3
  4. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  5. package/lib/callgraph/pointerAnalysis/PagBuilder.js +4 -37
  6. package/lib/core/base/Expr.d.ts.map +1 -1
  7. package/lib/core/base/Expr.js +9 -4
  8. package/lib/core/base/Local.d.ts.map +1 -1
  9. package/lib/core/base/Local.js +5 -0
  10. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  11. package/lib/core/common/ArkIRTransformer.js +0 -10
  12. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  13. package/lib/core/common/ArkValueTransformer.js +14 -18
  14. package/lib/core/common/IRInference.d.ts.map +1 -1
  15. package/lib/core/common/IRInference.js +10 -12
  16. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  17. package/lib/core/common/ModelUtils.js +3 -4
  18. package/lib/core/common/SdkUtils.d.ts +1 -1
  19. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  20. package/lib/core/common/SdkUtils.js +12 -12
  21. package/lib/core/common/TypeInference.d.ts +2 -1
  22. package/lib/core/common/TypeInference.d.ts.map +1 -1
  23. package/lib/core/common/TypeInference.js +23 -13
  24. package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
  25. package/lib/core/graph/builder/TrapBuilder.js +20 -15
  26. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  27. package/lib/core/graph/builder/ViewTreeBuilder.js +9 -5
  28. package/lib/core/model/ArkImport.js +1 -1
  29. package/lib/core/model/ArkMethod.d.ts +2 -0
  30. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  31. package/lib/core/model/ArkMethod.js +37 -28
  32. package/lib/core/model/builder/ArkClassBuilder.js +12 -3
  33. package/lib/core/model/builder/ArkFieldBuilder.js +2 -2
  34. package/lib/core/model/builder/ArkFileBuilder.js +2 -2
  35. package/lib/core/model/builder/ArkNamespaceBuilder.js +4 -4
  36. package/lib/save/JsonPrinter.d.ts.map +1 -1
  37. package/lib/save/JsonPrinter.js +50 -32
  38. package/lib/save/base/PrinterUtils.d.ts +1 -0
  39. package/lib/save/base/PrinterUtils.d.ts.map +1 -1
  40. package/lib/save/base/PrinterUtils.js +4 -0
  41. package/lib/save/source/SourceStmt.d.ts +1 -0
  42. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  43. package/lib/save/source/SourceStmt.js +11 -2
  44. package/package.json +2 -2
@@ -13,9 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
16
  Object.defineProperty(exports, "__esModule", { value: true });
20
17
  exports.JsonPrinter = void 0;
21
18
  const Printer_1 = require("./Printer");
@@ -26,7 +23,6 @@ const Constant_1 = require("../core/base/Constant");
26
23
  const ArkSignature_1 = require("../core/model/ArkSignature");
27
24
  const Ref_1 = require("../core/base/Ref");
28
25
  const Local_1 = require("../core/base/Local");
29
- const util_1 = __importDefault(require("util"));
30
26
  class JsonPrinter extends Printer_1.Printer {
31
27
  constructor(arkFile) {
32
28
  super();
@@ -57,8 +53,9 @@ class JsonPrinter extends Printer_1.Printer {
57
53
  return {
58
54
  signature: this.serializeClassSignature(clazz.getSignature()),
59
55
  modifiers: clazz.getModifiers(),
60
- decorators: clazz.getDecorators().map(decorator => this.serializeDecorator(decorator)),
61
- typeParameters: (_a = clazz.getGenericsTypes()) === null || _a === void 0 ? void 0 : _a.map(type => this.serializeType(type)),
56
+ decorators: clazz.getDecorators().map((decorator) => this.serializeDecorator(decorator)),
57
+ typeParameters: (_a = clazz.getGenericsTypes()) === null || _a === void 0 ? void 0 : _a.map((type) => this.serializeType(type)),
58
+ category: clazz.getCategory(),
62
59
  superClassName: clazz.getSuperClassName(),
63
60
  implementedInterfaceNames: clazz.getImplementedInterfaceNames(),
64
61
  fields: clazz.getFields().map(field => this.serializeField(field)),
@@ -96,6 +93,7 @@ class JsonPrinter extends Printer_1.Printer {
96
93
  name: parameter.getName(),
97
94
  type: this.serializeType(parameter.getType()),
98
95
  isOptional: parameter.isOptional(),
96
+ isRest: parameter.hasDotDotDotToken(),
99
97
  };
100
98
  }
101
99
  serializeImportInfo(importInfo) {
@@ -161,6 +159,12 @@ class JsonPrinter extends Printer_1.Printer {
161
159
  types: type.getTypes().map(type => this.serializeType(type)),
162
160
  };
163
161
  }
162
+ else if (type instanceof Type_1.IntersectionType) {
163
+ return {
164
+ _: 'IntersectionType',
165
+ types: type.getTypes().map((type) => this.serializeType(type)),
166
+ };
167
+ }
164
168
  else if (type instanceof Type_1.TupleType) {
165
169
  return {
166
170
  _: 'TupleType',
@@ -203,9 +207,6 @@ class JsonPrinter extends Printer_1.Printer {
203
207
  literal: type.getLiteralName(),
204
208
  };
205
209
  }
206
- else if (type instanceof Type_1.PrimitiveType) {
207
- throw new Error('Unhandled PrimitiveType: ' + util_1.default.inspect(type, { showHidden: true, depth: null }));
208
- }
209
210
  else if (type instanceof Type_1.ClassType) {
210
211
  return {
211
212
  _: 'ClassType',
@@ -235,13 +236,13 @@ class JsonPrinter extends Printer_1.Printer {
235
236
  };
236
237
  }
237
238
  else if (type instanceof Type_1.GenericType) {
238
- let defaultType = type.getDefaultType();
239
239
  let constraint = type.getConstraint();
240
+ let defaultType = type.getDefaultType();
240
241
  return {
241
242
  _: 'GenericType',
242
243
  name: type.getName(),
243
- defaultType: defaultType && this.serializeType(defaultType),
244
244
  constraint: constraint && this.serializeType(constraint),
245
+ defaultType: defaultType && this.serializeType(defaultType),
245
246
  };
246
247
  }
247
248
  else if (type instanceof Type_1.AliasType) {
@@ -265,11 +266,12 @@ class JsonPrinter extends Printer_1.Printer {
265
266
  originType: type.getOriginType(),
266
267
  };
267
268
  }
268
- else if (type instanceof Type_1.AnnotationType) {
269
- throw new Error('Unhandled AnnotationType: ' + util_1.default.inspect(type, { showHidden: true, depth: null }));
270
- }
271
269
  else {
272
- throw new Error('Unhandled Type: ' + util_1.default.inspect(type, { showHidden: true, depth: null }));
270
+ console.warn(`Unhandled Type: ${type.constructor.name} (${type.toString()})`);
271
+ return {
272
+ _: type.constructor.name,
273
+ text: type.toString(),
274
+ };
273
275
  }
274
276
  }
275
277
  serializeFileSignature(file) {
@@ -457,9 +459,6 @@ class JsonPrinter extends Printer_1.Printer {
457
459
  right: this.serializeValue(value.getOp2()),
458
460
  };
459
461
  }
460
- else if (value instanceof Expr_1.AbstractBinopExpr) {
461
- return new Error('Unhandled BinopExpr: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
462
- }
463
462
  else if (value instanceof Expr_1.ArkUnopExpr) {
464
463
  return {
465
464
  _: 'UnopExpr',
@@ -490,9 +489,6 @@ class JsonPrinter extends Printer_1.Printer {
490
489
  args: value.getArgs().map(arg => this.serializeValue(arg)),
491
490
  };
492
491
  }
493
- else if (value instanceof Expr_1.AbstractInvokeExpr) {
494
- throw new Error('Unhandled CallExpr: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
495
- }
496
492
  else if (value instanceof Ref_1.ArkThisRef) {
497
493
  return {
498
494
  _: 'ThisRef',
@@ -514,6 +510,28 @@ class JsonPrinter extends Printer_1.Printer {
514
510
  type: this.serializeType(value.getType()),
515
511
  };
516
512
  }
513
+ else if (value instanceof Ref_1.ArkCaughtExceptionRef) {
514
+ return {
515
+ _: 'CaughtExceptionRef',
516
+ type: this.serializeType(value.getType()),
517
+ };
518
+ }
519
+ else if (value instanceof Ref_1.GlobalRef) {
520
+ let ref = value.getRef();
521
+ return {
522
+ _: 'GlobalRef',
523
+ name: value.getName(),
524
+ ref: ref ? this.serializeValue(ref) : null,
525
+ };
526
+ }
527
+ else if (value instanceof Ref_1.ClosureFieldRef) {
528
+ return {
529
+ _: 'ClosureFieldRef',
530
+ base: this.serializeLocal(value.getBase()),
531
+ fieldName: value.getFieldName(),
532
+ type: this.serializeType(value.getType()),
533
+ };
534
+ }
517
535
  else if (value instanceof Ref_1.ArkInstanceFieldRef) {
518
536
  return {
519
537
  _: 'InstanceFieldRef',
@@ -527,17 +545,13 @@ class JsonPrinter extends Printer_1.Printer {
527
545
  field: this.serializeFieldSignature(value.getFieldSignature()),
528
546
  };
529
547
  }
530
- else if (value instanceof Ref_1.AbstractFieldRef) {
531
- throw new Error('Unhandled FieldRef: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
532
- }
533
- else if (value instanceof Ref_1.AbstractRef) {
534
- throw new Error('Unhandled Ref: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
535
- }
536
- else if (value instanceof Expr_1.AbstractExpr) {
537
- throw new Error('Unhandled Expr: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
538
- }
539
548
  else {
540
- throw new Error('Unhandled Value: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
549
+ console.warn(`Unhandled Value: ${value.constructor.name} (${value.toString()})`);
550
+ return {
551
+ _: value.constructor.name,
552
+ text: value.toString(),
553
+ type: this.serializeType(value.getType()),
554
+ };
541
555
  }
542
556
  }
543
557
  serializeStmt(stmt) {
@@ -578,7 +592,11 @@ class JsonPrinter extends Printer_1.Printer {
578
592
  };
579
593
  }
580
594
  else {
581
- throw new Error('Unhandled Stmt: ' + util_1.default.inspect(stmt, { showHidden: true, depth: null }));
595
+ console.warn(`Unhandled Stmt: ${stmt.constructor.name} (${stmt.toString()})`);
596
+ return {
597
+ _: stmt.constructor.name,
598
+ text: stmt.toString(),
599
+ };
582
600
  }
583
601
  }
584
602
  }
@@ -15,6 +15,7 @@ export declare class PrinterUtils {
15
15
  static getOriginType(cls: ArkClass): number;
16
16
  static isComponentPop(invokeExpr: ArkStaticInvokeExpr): boolean;
17
17
  static isComponentCreate(invokeExpr: ArkStaticInvokeExpr): boolean;
18
+ static isConstructorInvoke(invokeExpr: ArkInstanceInvokeExpr): boolean;
18
19
  static isComponentAttributeInvoke(invokeExpr: ArkInstanceInvokeExpr, visitor?: Set<ArkInstanceInvokeExpr>): boolean;
19
20
  static isComponentIfBranchInvoke(invokeExpr: ArkStaticInvokeExpr): boolean;
20
21
  static isComponentIfElseInvoke(invokeExpr: ArkStaticInvokeExpr): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"PrinterUtils.d.ts","sourceRoot":"","sources":["../../../src/save/base/PrinterUtils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAsB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5H,OAAO,EAAiB,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAS3D,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAM7D,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,qBAAa,YAAY;IACrB,OAAc,uBAAuB,sBAQlC;WAEW,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIxC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI1C,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,oBAAoB,GAAG,OAAO;WAqBvE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI7B,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM;WAOpC,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAWxD,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAW3D,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAE,GAAG,CAAC,qBAAqB,CAAa,GAAG,OAAO;WA2BvH,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAUnE,uBAAuB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAajE,4BAA4B,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM;WAoB9F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAevC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAY7C"}
1
+ {"version":3,"file":"PrinterUtils.d.ts","sourceRoot":"","sources":["../../../src/save/base/PrinterUtils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAsB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5H,OAAO,EAAiB,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAS3D,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAM7D,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,qBAAa,YAAY;IACrB,OAAc,uBAAuB,sBAQlC;WAEW,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIxC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI1C,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,oBAAoB,GAAG,OAAO;WAqBvE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI7B,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM;WAOpC,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAWxD,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAW3D,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO;WAK/D,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAE,GAAG,CAAC,qBAAqB,CAAa,GAAG,OAAO;WA2BvH,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAUnE,uBAAuB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAajE,4BAA4B,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM;WAoB9F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAevC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAY7C"}
@@ -108,6 +108,10 @@ class PrinterUtils {
108
108
  }
109
109
  return false;
110
110
  }
111
+ static isConstructorInvoke(invokeExpr) {
112
+ let methodName = invokeExpr.getMethodSignature().getMethodSubSignature().getMethodName();
113
+ return this.isConstructorMethod(methodName);
114
+ }
111
115
  static isComponentAttributeInvoke(invokeExpr, visitor = new Set()) {
112
116
  if (visitor.has(invokeExpr)) {
113
117
  return false;
@@ -57,6 +57,7 @@ export declare class SourceAssignStmt extends SourceStmt {
57
57
  */
58
58
  private transferRightNewExpr;
59
59
  private handleConstructorInvoke;
60
+ private transferConstructorInvokeExpr;
60
61
  /**
61
62
  * $temp0 = newarray[4]
62
63
  * $temp0[0] = 1
@@ -1 +1 @@
1
- {"version":3,"file":"SourceStmt.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceStmt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceStmt.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceStmt.ts"],"names":[],"mappings":"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"}
@@ -148,6 +148,9 @@ class SourceAssignStmt extends SourceStmt {
148
148
  else if (this.rightOp instanceof Expr_1.ArkStaticInvokeExpr && PrinterUtils_1.PrinterUtils.isComponentCreate(this.rightOp)) {
149
149
  this.transferRightComponentCreate();
150
150
  }
151
+ else if (this.rightOp instanceof Expr_1.ArkInstanceInvokeExpr && PrinterUtils_1.PrinterUtils.isConstructorInvoke(this.rightOp)) {
152
+ this.transferConstructorInvokeExpr(this.rightOp);
153
+ }
151
154
  else if (this.rightOp instanceof Expr_1.ArkInstanceInvokeExpr && PrinterUtils_1.PrinterUtils.isComponentAttributeInvoke(this.rightOp)) {
152
155
  this.transferRightComponentAttribute();
153
156
  }
@@ -241,8 +244,8 @@ class SourceAssignStmt extends SourceStmt {
241
244
  if (this.context.getStmtReader().hasNext()) {
242
245
  let stmt = this.context.getStmtReader().next();
243
246
  let rollback = true;
244
- if (stmt instanceof Stmt_1.ArkInvokeStmt && stmt.getInvokeExpr()) {
245
- let instanceInvokeExpr = stmt.getInvokeExpr();
247
+ if (stmt instanceof Stmt_1.ArkAssignStmt && stmt.getRightOp() instanceof Expr_1.ArkInstanceInvokeExpr) {
248
+ let instanceInvokeExpr = stmt.getRightOp();
246
249
  if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName() &&
247
250
  instanceInvokeExpr.getBase().getName() === this.leftOp.getName()) {
248
251
  this.handleConstructorInvoke(instanceInvokeExpr, originType);
@@ -278,6 +281,12 @@ class SourceAssignStmt extends SourceStmt {
278
281
  this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
279
282
  }
280
283
  }
284
+ transferConstructorInvokeExpr(expr) {
285
+ let rightCode = this.transformer.valueToString(this.rightOp);
286
+ const pattern = /\([^)]*\)\.constructor/;
287
+ this.rightCode = rightCode.replace(pattern, '');
288
+ this.dumpType = AssignStmtDumpType.NORMAL;
289
+ }
281
290
  /**
282
291
  * $temp0 = newarray[4]
283
292
  * $temp0[0] = 1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arkanalyzer",
3
- "version": "1.0.36",
4
- "commit_id": "83386e30",
3
+ "version": "1.0.38",
4
+ "commit_id": "d907a054",
5
5
  "files": [
6
6
  "docs",
7
7
  "lib",