arkanalyzer 1.0.41 → 1.0.43
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 -2
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +52 -38
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +11 -5
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.js +42 -24
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +6 -11
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +26 -23
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +11 -63
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +72 -499
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +4 -2
- package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.d.ts +24 -0
- package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.js +167 -0
- package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.d.ts +26 -0
- package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.js +151 -0
- package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.d.ts +15 -0
- package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.js +16 -0
- package/lib/callgraph/pointerAnalysis/plugins/PluginManager.d.ts +25 -0
- package/lib/callgraph/pointerAnalysis/plugins/PluginManager.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/PluginManager.js +66 -0
- package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.d.ts +37 -0
- package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.js +160 -0
- package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.d.ts +68 -0
- package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.js +288 -0
- package/lib/core/base/Expr.d.ts +1 -0
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +9 -0
- package/lib/core/common/DummyMainCreater.js +1 -1
- package/lib/core/common/IRInference.d.ts +1 -1
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +7 -3
- package/lib/core/common/ModelUtils.js +1 -1
- package/lib/core/common/SdkUtils.d.ts +3 -2
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +30 -30
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +7 -5
- package/lib/core/dataflow/DataflowSolver.js +3 -3
- package/lib/core/dataflow/UndefinedVariable.js +2 -2
- package/lib/core/graph/BasicBlock.d.ts.map +1 -1
- package/lib/core/graph/BasicBlock.js +9 -4
- package/lib/core/graph/Cfg.d.ts.map +1 -1
- package/lib/core/graph/Cfg.js +4 -1
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +4 -4
- package/lib/core/graph/builder/ConditionBuilder.d.ts +2 -1
- package/lib/core/graph/builder/ConditionBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ConditionBuilder.js +8 -4
- package/lib/core/graph/builder/TrapBuilder.d.ts +19 -1
- package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/TrapBuilder.js +195 -68
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +2 -1
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +3 -4
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +24 -20
- package/lib/core/model/builder/ArkImportBuilder.js +28 -25
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +1 -2
- package/lib/core/model/builder/BodyBuilder.js +1 -1
- package/lib/pass/Context.d.ts +47 -0
- package/lib/pass/Context.d.ts.map +1 -0
- package/lib/pass/Context.js +72 -0
- package/lib/pass/Dispatcher.d.ts +102 -0
- package/lib/pass/Dispatcher.d.ts.map +1 -0
- package/lib/pass/Dispatcher.js +202 -0
- package/lib/pass/Pass.d.ts +83 -0
- package/lib/pass/Pass.d.ts.map +1 -0
- package/lib/pass/Pass.js +95 -0
- package/lib/pass/ScenePassMgr.d.ts +73 -0
- package/lib/pass/ScenePassMgr.d.ts.map +1 -0
- package/lib/pass/ScenePassMgr.js +156 -0
- package/lib/pass/validators/Exprs.d.ts +9 -0
- package/lib/pass/validators/Exprs.d.ts.map +1 -0
- package/lib/pass/validators/Exprs.js +40 -0
- package/lib/pass/validators/Models.d.ts +14 -0
- package/lib/pass/validators/Models.d.ts.map +1 -0
- package/lib/pass/validators/Models.js +42 -0
- package/lib/pass/validators/SceneValidator.d.ts +19 -0
- package/lib/pass/validators/SceneValidator.d.ts.map +1 -0
- package/lib/pass/validators/SceneValidator.js +77 -0
- package/lib/pass/validators/Stmts.d.ts +7 -0
- package/lib/pass/validators/Stmts.d.ts.map +1 -0
- package/lib/pass/validators/Stmts.js +36 -0
- package/lib/pass/validators/Validator.d.ts +207 -0
- package/lib/pass/validators/Validator.d.ts.map +1 -0
- package/lib/pass/validators/Validator.js +343 -0
- package/lib/pass/validators/Values.d.ts +7 -0
- package/lib/pass/validators/Values.d.ts.map +1 -0
- package/lib/pass/validators/Values.js +34 -0
- package/lib/save/JsonPrinter.d.ts.map +1 -1
- package/lib/save/JsonPrinter.js +26 -102
- package/lib/save/source/SourceStmt.d.ts +1 -0
- package/lib/save/source/SourceStmt.d.ts.map +1 -1
- package/lib/save/source/SourceStmt.js +5 -8
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +13 -6
- package/lib/utils/ValueAsserts.d.ts +9 -0
- package/lib/utils/ValueAsserts.d.ts.map +1 -0
- package/lib/utils/ValueAsserts.js +89 -0
- package/package.json +2 -2
package/lib/save/JsonPrinter.js
CHANGED
|
@@ -134,24 +134,16 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
134
134
|
throw new Error('Type is undefined');
|
|
135
135
|
}
|
|
136
136
|
if (type instanceof Type_1.AnyType) {
|
|
137
|
-
return {
|
|
138
|
-
_: 'AnyType',
|
|
139
|
-
};
|
|
137
|
+
return { _: 'AnyType' };
|
|
140
138
|
}
|
|
141
139
|
else if (type instanceof Type_1.UnknownType) {
|
|
142
|
-
return {
|
|
143
|
-
_: 'UnknownType',
|
|
144
|
-
};
|
|
140
|
+
return { _: 'UnknownType' };
|
|
145
141
|
}
|
|
146
142
|
else if (type instanceof Type_1.VoidType) {
|
|
147
|
-
return {
|
|
148
|
-
_: 'VoidType',
|
|
149
|
-
};
|
|
143
|
+
return { _: 'VoidType' };
|
|
150
144
|
}
|
|
151
145
|
else if (type instanceof Type_1.NeverType) {
|
|
152
|
-
return {
|
|
153
|
-
_: 'NeverType',
|
|
154
|
-
};
|
|
146
|
+
return { _: 'NeverType' };
|
|
155
147
|
}
|
|
156
148
|
else if (type instanceof Type_1.UnionType) {
|
|
157
149
|
return {
|
|
@@ -172,34 +164,22 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
172
164
|
};
|
|
173
165
|
}
|
|
174
166
|
else if (type instanceof Type_1.BooleanType) {
|
|
175
|
-
return {
|
|
176
|
-
_: 'BooleanType',
|
|
177
|
-
};
|
|
167
|
+
return { _: 'BooleanType' };
|
|
178
168
|
}
|
|
179
169
|
else if (type instanceof Type_1.NumberType) {
|
|
180
|
-
return {
|
|
181
|
-
_: 'NumberType',
|
|
182
|
-
};
|
|
170
|
+
return { _: 'NumberType' };
|
|
183
171
|
}
|
|
184
172
|
else if (type instanceof Type_1.BigIntType) {
|
|
185
|
-
return {
|
|
186
|
-
_: 'BigIntType',
|
|
187
|
-
};
|
|
173
|
+
return { _: 'BigIntType' };
|
|
188
174
|
}
|
|
189
175
|
else if (type instanceof Type_1.StringType) {
|
|
190
|
-
return {
|
|
191
|
-
_: 'StringType',
|
|
192
|
-
};
|
|
176
|
+
return { _: 'StringType' };
|
|
193
177
|
}
|
|
194
178
|
else if (type instanceof Type_1.NullType) {
|
|
195
|
-
return {
|
|
196
|
-
_: 'NullType',
|
|
197
|
-
};
|
|
179
|
+
return { _: 'NullType' };
|
|
198
180
|
}
|
|
199
181
|
else if (type instanceof Type_1.UndefinedType) {
|
|
200
|
-
return {
|
|
201
|
-
_: 'UndefinedType',
|
|
202
|
-
};
|
|
182
|
+
return { _: 'UndefinedType' };
|
|
203
183
|
}
|
|
204
184
|
else if (type instanceof Type_1.LiteralType) {
|
|
205
185
|
return {
|
|
@@ -392,55 +372,28 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
392
372
|
return Object.assign({ _: 'Constant' }, this.serializeConstant(value));
|
|
393
373
|
}
|
|
394
374
|
else if (value instanceof Expr_1.ArkNewExpr) {
|
|
395
|
-
return {
|
|
396
|
-
_: 'NewExpr',
|
|
397
|
-
classType: this.serializeType(value.getClassType()),
|
|
398
|
-
};
|
|
375
|
+
return { _: 'NewExpr', classType: this.serializeType(value.getClassType()) };
|
|
399
376
|
}
|
|
400
377
|
else if (value instanceof Expr_1.ArkNewArrayExpr) {
|
|
401
|
-
return {
|
|
402
|
-
_: 'NewArrayExpr',
|
|
403
|
-
elementType: this.serializeType(value.getBaseType()),
|
|
404
|
-
size: this.serializeValue(value.getSize()),
|
|
405
|
-
};
|
|
378
|
+
return { _: 'NewArrayExpr', elementType: this.serializeType(value.getBaseType()), size: this.serializeValue(value.getSize()) };
|
|
406
379
|
}
|
|
407
380
|
else if (value instanceof Expr_1.ArkDeleteExpr) {
|
|
408
|
-
return {
|
|
409
|
-
_: 'DeleteExpr',
|
|
410
|
-
arg: this.serializeValue(value.getField()),
|
|
411
|
-
};
|
|
381
|
+
return { _: 'DeleteExpr', arg: this.serializeValue(value.getField()) };
|
|
412
382
|
}
|
|
413
383
|
else if (value instanceof Expr_1.ArkAwaitExpr) {
|
|
414
|
-
return {
|
|
415
|
-
_: 'AwaitExpr',
|
|
416
|
-
arg: this.serializeValue(value.getPromise()),
|
|
417
|
-
};
|
|
384
|
+
return { _: 'AwaitExpr', arg: this.serializeValue(value.getPromise()) };
|
|
418
385
|
}
|
|
419
386
|
else if (value instanceof Expr_1.ArkYieldExpr) {
|
|
420
|
-
return {
|
|
421
|
-
_: 'YieldExpr',
|
|
422
|
-
arg: this.serializeValue(value.getYieldValue()),
|
|
423
|
-
};
|
|
387
|
+
return { _: 'YieldExpr', arg: this.serializeValue(value.getYieldValue()) };
|
|
424
388
|
}
|
|
425
389
|
else if (value instanceof Expr_1.ArkTypeOfExpr) {
|
|
426
|
-
return {
|
|
427
|
-
_: 'TypeOfExpr',
|
|
428
|
-
arg: this.serializeValue(value.getOp()),
|
|
429
|
-
};
|
|
390
|
+
return { _: 'TypeOfExpr', arg: this.serializeValue(value.getOp()) };
|
|
430
391
|
}
|
|
431
392
|
else if (value instanceof Expr_1.ArkInstanceOfExpr) {
|
|
432
|
-
return {
|
|
433
|
-
_: 'InstanceOfExpr',
|
|
434
|
-
arg: this.serializeValue(value.getOp()),
|
|
435
|
-
checkType: this.serializeType(value.getCheckType()),
|
|
436
|
-
};
|
|
393
|
+
return { _: 'InstanceOfExpr', arg: this.serializeValue(value.getOp()), checkType: this.serializeType(value.getCheckType()) };
|
|
437
394
|
}
|
|
438
395
|
else if (value instanceof Expr_1.ArkCastExpr) {
|
|
439
|
-
return {
|
|
440
|
-
_: 'CastExpr',
|
|
441
|
-
arg: this.serializeValue(value.getOp()),
|
|
442
|
-
type: this.serializeType(value.getType()),
|
|
443
|
-
};
|
|
396
|
+
return { _: 'CastExpr', arg: this.serializeValue(value.getOp()), type: this.serializeType(value.getType()) };
|
|
444
397
|
}
|
|
445
398
|
else if (value instanceof Expr_1.ArkPhiExpr) {
|
|
446
399
|
const args = value.getArgs();
|
|
@@ -470,11 +423,7 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
470
423
|
};
|
|
471
424
|
}
|
|
472
425
|
else if (value instanceof Expr_1.ArkUnopExpr) {
|
|
473
|
-
return {
|
|
474
|
-
_: 'UnopExpr',
|
|
475
|
-
op: value.getOperator(),
|
|
476
|
-
arg: this.serializeValue(value.getOp()),
|
|
477
|
-
};
|
|
426
|
+
return { _: 'UnopExpr', op: value.getOperator(), arg: this.serializeValue(value.getOp()) };
|
|
478
427
|
}
|
|
479
428
|
else if (value instanceof Expr_1.ArkInstanceInvokeExpr) {
|
|
480
429
|
return {
|
|
@@ -500,17 +449,10 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
500
449
|
};
|
|
501
450
|
}
|
|
502
451
|
else if (value instanceof Ref_1.ArkThisRef) {
|
|
503
|
-
return {
|
|
504
|
-
_: 'ThisRef',
|
|
505
|
-
type: this.serializeType(value.getType()),
|
|
506
|
-
};
|
|
452
|
+
return { _: 'ThisRef', type: this.serializeType(value.getType()) };
|
|
507
453
|
}
|
|
508
454
|
else if (value instanceof Ref_1.ArkParameterRef) {
|
|
509
|
-
return {
|
|
510
|
-
_: 'ParameterRef',
|
|
511
|
-
index: value.getIndex(),
|
|
512
|
-
type: this.serializeType(value.getType()),
|
|
513
|
-
};
|
|
455
|
+
return { _: 'ParameterRef', index: value.getIndex(), type: this.serializeType(value.getType()) };
|
|
514
456
|
}
|
|
515
457
|
else if (value instanceof Ref_1.ArkArrayRef) {
|
|
516
458
|
return {
|
|
@@ -521,18 +463,11 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
521
463
|
};
|
|
522
464
|
}
|
|
523
465
|
else if (value instanceof Ref_1.ArkCaughtExceptionRef) {
|
|
524
|
-
return {
|
|
525
|
-
_: 'CaughtExceptionRef',
|
|
526
|
-
type: this.serializeType(value.getType()),
|
|
527
|
-
};
|
|
466
|
+
return { _: 'CaughtExceptionRef', type: this.serializeType(value.getType()) };
|
|
528
467
|
}
|
|
529
468
|
else if (value instanceof Ref_1.GlobalRef) {
|
|
530
469
|
let ref = value.getRef();
|
|
531
|
-
return {
|
|
532
|
-
_: 'GlobalRef',
|
|
533
|
-
name: value.getName(),
|
|
534
|
-
ref: ref ? this.serializeValue(ref) : null,
|
|
535
|
-
};
|
|
470
|
+
return { _: 'GlobalRef', name: value.getName(), ref: ref ? this.serializeValue(ref) : null };
|
|
536
471
|
}
|
|
537
472
|
else if (value instanceof Ref_1.ClosureFieldRef) {
|
|
538
473
|
return {
|
|
@@ -543,25 +478,14 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
543
478
|
};
|
|
544
479
|
}
|
|
545
480
|
else if (value instanceof Ref_1.ArkInstanceFieldRef) {
|
|
546
|
-
return {
|
|
547
|
-
_: 'InstanceFieldRef',
|
|
548
|
-
instance: this.serializeValue(value.getBase()),
|
|
549
|
-
field: this.serializeFieldSignature(value.getFieldSignature()),
|
|
550
|
-
};
|
|
481
|
+
return { _: 'InstanceFieldRef', instance: this.serializeValue(value.getBase()), field: this.serializeFieldSignature(value.getFieldSignature()) };
|
|
551
482
|
}
|
|
552
483
|
else if (value instanceof Ref_1.ArkStaticFieldRef) {
|
|
553
|
-
return {
|
|
554
|
-
_: 'StaticFieldRef',
|
|
555
|
-
field: this.serializeFieldSignature(value.getFieldSignature()),
|
|
556
|
-
};
|
|
484
|
+
return { _: 'StaticFieldRef', field: this.serializeFieldSignature(value.getFieldSignature()) };
|
|
557
485
|
}
|
|
558
486
|
else {
|
|
559
487
|
console.warn(`Unhandled Value: ${value.constructor.name} (${value.toString()})`);
|
|
560
|
-
return {
|
|
561
|
-
_: value.constructor.name,
|
|
562
|
-
text: value.toString(),
|
|
563
|
-
type: this.serializeType(value.getType()),
|
|
564
|
-
};
|
|
488
|
+
return { _: value.constructor.name, text: value.toString(), type: this.serializeType(value.getType()) };
|
|
565
489
|
}
|
|
566
490
|
}
|
|
567
491
|
serializeStmt(stmt) {
|
|
@@ -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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"}
|
|
@@ -449,9 +449,6 @@ class SourceWhileStmt extends SourceStmt {
|
|
|
449
449
|
return false;
|
|
450
450
|
}
|
|
451
451
|
let temp2 = done.getBase();
|
|
452
|
-
if (!(temp2 instanceof Local_1.Local)) {
|
|
453
|
-
return false;
|
|
454
|
-
}
|
|
455
452
|
stmt = temp2.getDeclaringStmt();
|
|
456
453
|
if (!(stmt instanceof Stmt_1.ArkAssignStmt)) {
|
|
457
454
|
return false;
|
|
@@ -464,9 +461,6 @@ class SourceWhileStmt extends SourceStmt {
|
|
|
464
461
|
return false;
|
|
465
462
|
}
|
|
466
463
|
let temp1 = next.getBase();
|
|
467
|
-
if (!(temp1 instanceof Local_1.Local)) {
|
|
468
|
-
return false;
|
|
469
|
-
}
|
|
470
464
|
stmt = temp1.getDeclaringStmt();
|
|
471
465
|
if (!(stmt instanceof Stmt_1.ArkAssignStmt)) {
|
|
472
466
|
return false;
|
|
@@ -478,6 +472,9 @@ class SourceWhileStmt extends SourceStmt {
|
|
|
478
472
|
if (iterator.getMethodSignature().getMethodSubSignature().getMethodName() !== 'Symbol.iterator') {
|
|
479
473
|
return false;
|
|
480
474
|
}
|
|
475
|
+
return this.getForOf2ts(temp3, temp1, iterator);
|
|
476
|
+
}
|
|
477
|
+
getForOf2ts(temp3, temp1, iterator) {
|
|
481
478
|
let successors = this.block.getSuccessors();
|
|
482
479
|
if (successors.length !== 2) {
|
|
483
480
|
return false;
|
|
@@ -486,7 +483,7 @@ class SourceWhileStmt extends SourceStmt {
|
|
|
486
483
|
if (stmts.length < 2) {
|
|
487
484
|
return false;
|
|
488
485
|
}
|
|
489
|
-
stmt = stmts[1];
|
|
486
|
+
let stmt = stmts[1];
|
|
490
487
|
if (!(stmt instanceof Stmt_1.ArkAssignStmt)) {
|
|
491
488
|
return false;
|
|
492
489
|
}
|
|
@@ -779,7 +776,7 @@ class SourceCatchStmt extends SourceStmt {
|
|
|
779
776
|
}
|
|
780
777
|
transfer2ts() {
|
|
781
778
|
if (this.block) {
|
|
782
|
-
let stmt = this.block.
|
|
779
|
+
let stmt = this.block.getHead();
|
|
783
780
|
if (stmt instanceof Stmt_1.ArkAssignStmt) {
|
|
784
781
|
if (stmt.getLeftOp() instanceof Local_1.Local) {
|
|
785
782
|
let name = stmt.getLeftOp().getName();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUtils.d.ts","sourceRoot":"","sources":["../../src/utils/FileUtils.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,qBAAa,SAAS;IAClB,gBAAuB,WAAW;;;MAGhC;WAEY,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WASzC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;WAOrC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIrC,iBAAiB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FileUtils.d.ts","sourceRoot":"","sources":["../../src/utils/FileUtils.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,qBAAa,SAAS;IAClB,gBAAuB,WAAW;;;MAGhC;WAEY,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WASzC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;WAOrC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIrC,iBAAiB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;WAkClG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ;CAgB1F;AAED,qBAAa,UAAU;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAIzC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,GAAG,CAAC,MAAM,CAAqB,GAAG,MAAM,CA2BrH"}
|
package/lib/utils/FileUtils.js
CHANGED
|
@@ -84,12 +84,19 @@ class FileUtils {
|
|
|
84
84
|
if (moduleMap.get(name)) {
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (
|
|
91
|
-
|
|
87
|
+
const dir = path_1.default.dirname(filePath);
|
|
88
|
+
let modulePath = path_1.default.resolve(dir, value.replace('file:', ''));
|
|
89
|
+
let main = '';
|
|
90
|
+
if (this.isDirectory(modulePath)) {
|
|
91
|
+
const target = ohPkgContentMap.get(path_1.default.resolve(modulePath, EtsConst_1.OH_PACKAGE_JSON5));
|
|
92
|
+
if (target === null || target === void 0 ? void 0 : target.main) {
|
|
93
|
+
main = path_1.default.resolve(modulePath, target.main);
|
|
94
|
+
}
|
|
92
95
|
}
|
|
96
|
+
else {
|
|
97
|
+
modulePath = path_1.default.resolve(dir, 'oh_modules', name);
|
|
98
|
+
}
|
|
99
|
+
moduleMap.set(name, new ModulePath(modulePath, main));
|
|
93
100
|
});
|
|
94
101
|
});
|
|
95
102
|
return moduleMap;
|
|
@@ -119,7 +126,7 @@ FileUtils.FILE_FILTER = {
|
|
|
119
126
|
class ModulePath {
|
|
120
127
|
constructor(path, main) {
|
|
121
128
|
this.path = (0, pathTransfer_1.transfer2UnixPath)(path);
|
|
122
|
-
this.main = (0, pathTransfer_1.transfer2UnixPath)(main);
|
|
129
|
+
this.main = main ? (0, pathTransfer_1.transfer2UnixPath)(main) : main;
|
|
123
130
|
}
|
|
124
131
|
}
|
|
125
132
|
exports.ModulePath = ModulePath;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class ValueAsserts {
|
|
2
|
+
static ENABLE: boolean;
|
|
3
|
+
static enable(): void;
|
|
4
|
+
static disable(): void;
|
|
5
|
+
static assert(cond: boolean, msg?: string): any;
|
|
6
|
+
static assertDefined(val: any, msg?: string): asserts val;
|
|
7
|
+
static assertNotEmptyArray(val: any[], msg?: string): asserts val;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ValueAsserts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValueAsserts.d.ts","sourceRoot":"","sources":["../../src/utils/ValueAsserts.ts"],"names":[],"mappings":"AAmBA,qBAAa,YAAY;IACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAS;WAEjB,MAAM,IAAI,IAAI;WAId,OAAO,IAAI,IAAI;WAIf,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG;WAYxC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;WAclD,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;CAa3E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025 Huawei Device Co., Ltd.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
19
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
21
|
+
}
|
|
22
|
+
Object.defineProperty(o, k2, desc);
|
|
23
|
+
}) : (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
o[k2] = m[k];
|
|
26
|
+
}));
|
|
27
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
28
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
29
|
+
}) : function(o, v) {
|
|
30
|
+
o["default"] = v;
|
|
31
|
+
});
|
|
32
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.ValueAsserts = void 0;
|
|
41
|
+
const logger_1 = __importStar(require("./logger"));
|
|
42
|
+
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'ValueAsserts');
|
|
43
|
+
class ValueAsserts {
|
|
44
|
+
static enable() {
|
|
45
|
+
this.ENABLE = true;
|
|
46
|
+
}
|
|
47
|
+
static disable() {
|
|
48
|
+
this.ENABLE = false;
|
|
49
|
+
}
|
|
50
|
+
static assert(cond, msg) {
|
|
51
|
+
if (!ValueAsserts.ENABLE || cond) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
let errorMsg = 'Assert failed: condition is false';
|
|
55
|
+
if (msg) {
|
|
56
|
+
errorMsg = 'Assert failed: ' + msg;
|
|
57
|
+
}
|
|
58
|
+
logger.error(errorMsg);
|
|
59
|
+
throw Error(errorMsg);
|
|
60
|
+
}
|
|
61
|
+
static assertDefined(val, msg) {
|
|
62
|
+
if (!ValueAsserts.ENABLE) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (val === undefined) {
|
|
66
|
+
let errorMsg = 'Assert failed: value is undefined';
|
|
67
|
+
if (msg) {
|
|
68
|
+
errorMsg = 'Assert failed: ' + msg;
|
|
69
|
+
}
|
|
70
|
+
logger.error(errorMsg);
|
|
71
|
+
throw Error(errorMsg);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
static assertNotEmptyArray(val, msg) {
|
|
75
|
+
if (!ValueAsserts.ENABLE) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (val.length === 0) {
|
|
79
|
+
let errorMsg = 'Assert failed: array is empty';
|
|
80
|
+
if (msg) {
|
|
81
|
+
errorMsg = 'Assert failed: ' + msg;
|
|
82
|
+
}
|
|
83
|
+
logger.error(errorMsg);
|
|
84
|
+
throw Error(errorMsg);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.ValueAsserts = ValueAsserts;
|
|
89
|
+
ValueAsserts.ENABLE = false;
|