arkanalyzer 1.0.28 → 1.0.30

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 (88) hide show
  1. package/lib/Config.d.ts.map +1 -1
  2. package/lib/Config.js +9 -1
  3. package/lib/Scene.d.ts +7 -0
  4. package/lib/Scene.d.ts.map +1 -1
  5. package/lib/Scene.js +196 -173
  6. package/lib/VFG/builder/DVFGBuilder.d.ts.map +1 -1
  7. package/lib/VFG/builder/DVFGBuilder.js +11 -6
  8. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +3 -1
  9. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  10. package/lib/callgraph/algorithm/AbstractAnalysis.js +18 -10
  11. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  12. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +8 -7
  13. package/lib/callgraph/common/Statistics.d.ts.map +1 -1
  14. package/lib/callgraph/common/Statistics.js +25 -24
  15. package/lib/callgraph/model/CallGraph.d.ts +1 -1
  16. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  17. package/lib/callgraph/model/CallGraph.js +6 -3
  18. package/lib/callgraph/pointerAnalysis/Context.d.ts.map +1 -1
  19. package/lib/callgraph/pointerAnalysis/Context.js +0 -1
  20. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  21. package/lib/callgraph/pointerAnalysis/Pag.js +26 -26
  22. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +4 -0
  23. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  24. package/lib/callgraph/pointerAnalysis/PagBuilder.js +138 -108
  25. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  26. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +15 -14
  27. package/lib/core/base/Expr.d.ts.map +1 -1
  28. package/lib/core/base/Expr.js +6 -4
  29. package/lib/core/base/Type.d.ts +10 -1
  30. package/lib/core/base/Type.d.ts.map +1 -1
  31. package/lib/core/base/Type.js +18 -1
  32. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  33. package/lib/core/common/ArkValueTransformer.js +3 -1
  34. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  35. package/lib/core/common/DummyMainCreater.js +17 -20
  36. package/lib/core/common/IRInference.d.ts.map +1 -1
  37. package/lib/core/common/IRInference.js +18 -10
  38. package/lib/core/common/TypeInference.d.ts.map +1 -1
  39. package/lib/core/common/TypeInference.js +13 -2
  40. package/lib/core/dataflow/DataflowSolver.d.ts +1 -0
  41. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
  42. package/lib/core/dataflow/DataflowSolver.js +21 -17
  43. package/lib/core/dataflow/ReachingDef.d.ts.map +1 -1
  44. package/lib/core/dataflow/ReachingDef.js +6 -0
  45. package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -1
  46. package/lib/core/dataflow/UndefinedVariable.js +0 -25
  47. package/lib/core/graph/Cfg.d.ts +1 -0
  48. package/lib/core/graph/Cfg.d.ts.map +1 -1
  49. package/lib/core/graph/Cfg.js +49 -45
  50. package/lib/core/graph/DominanceFinder.js +19 -19
  51. package/lib/core/graph/builder/ViewTreeBuilder.d.ts +1 -0
  52. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  53. package/lib/core/graph/builder/ViewTreeBuilder.js +34 -31
  54. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  55. package/lib/core/model/ArkMethod.js +13 -6
  56. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  57. package/lib/core/model/builder/builderUtils.js +72 -63
  58. package/lib/save/serializeArkIR.d.ts.map +1 -1
  59. package/lib/save/serializeArkIR.js +11 -24
  60. package/lib/save/source/SourceBody.js +10 -10
  61. package/lib/save/source/SourceFilePrinter.d.ts +1 -0
  62. package/lib/save/source/SourceFilePrinter.d.ts.map +1 -1
  63. package/lib/save/source/SourceFilePrinter.js +11 -8
  64. package/lib/save/source/SourceNamespace.d.ts +1 -0
  65. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  66. package/lib/save/source/SourceNamespace.js +11 -8
  67. package/lib/save/source/SourceStmt.d.ts +1 -0
  68. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  69. package/lib/save/source/SourceStmt.js +37 -35
  70. package/lib/save/source/SourceTransformer.d.ts +2 -0
  71. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  72. package/lib/save/source/SourceTransformer.js +64 -54
  73. package/lib/transformer/StaticSingleAssignmentFormer.d.ts +5 -0
  74. package/lib/transformer/StaticSingleAssignmentFormer.d.ts.map +1 -1
  75. package/lib/transformer/StaticSingleAssignmentFormer.js +119 -101
  76. package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
  77. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
  78. package/lib/utils/CfgStructualAnalysis.js +28 -24
  79. package/lib/utils/FileUtils.d.ts.map +1 -1
  80. package/lib/utils/FileUtils.js +14 -12
  81. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  82. package/lib/utils/callGraphUtils.js +26 -23
  83. package/lib/utils/entryMethodUtils.d.ts.map +1 -1
  84. package/lib/utils/entryMethodUtils.js +11 -8
  85. package/lib/utils/pathTransfer.d.ts +1 -0
  86. package/lib/utils/pathTransfer.d.ts.map +1 -1
  87. package/lib/utils/pathTransfer.js +10 -1
  88. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ArkMethod.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMethod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkMethod.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMethod.ts"],"names":[],"mappings":"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"}
@@ -550,7 +550,7 @@ class ArkMethod extends ArkBaseModel_1.ArkBaseModel {
550
550
  })) !== null && _b !== void 0 ? _b : signatures === null || signatures === void 0 ? void 0 : signatures[0]) !== null && _c !== void 0 ? _c : this.getSignature();
551
551
  }
552
552
  matchParam(paramType, arg, scene) {
553
- var _a;
553
+ var _a, _b;
554
554
  const argType = arg.getType();
555
555
  if (arg instanceof Local_1.Local) {
556
556
  const stmt = arg.getDeclaringStmt();
@@ -571,17 +571,24 @@ class ArkMethod extends ArkBaseModel_1.ArkBaseModel {
571
571
  else if (argType instanceof Type_1.FunctionType && paramType instanceof Type_1.FunctionType) {
572
572
  return argType.getMethodSignature().getParamLength() === paramType.getMethodSignature().getParamLength();
573
573
  }
574
- else if (argType instanceof Type_1.FunctionType && paramType instanceof Type_1.ClassType &&
574
+ else if (paramType instanceof Type_1.ClassType &&
575
575
  paramType.getClassSignature().getClassName().includes(EtsConst_1.CALL_BACK)) {
576
- return true;
576
+ return argType instanceof Type_1.FunctionType;
577
577
  }
578
578
  else if (paramType instanceof Type_1.LiteralType && arg instanceof Constant_1.Constant) {
579
579
  return arg.getValue().replace(/[\"|\']/g, '') === paramType.getLiteralName()
580
580
  .toString().replace(/[\"|\']/g, '');
581
581
  }
582
- else if (paramType instanceof Type_1.NumberType && argType instanceof Type_1.ClassType && ArkClass_1.ClassCategory.ENUM ===
583
- ((_a = scene.getClass(argType.getClassSignature())) === null || _a === void 0 ? void 0 : _a.getCategory())) {
584
- return true;
582
+ else if (paramType instanceof Type_1.ClassType && argType instanceof Type_1.EnumValueType) {
583
+ return paramType.getClassSignature() === argType.getFieldSignature().getDeclaringSignature();
584
+ }
585
+ else if (paramType instanceof Type_1.EnumValueType) {
586
+ if (argType instanceof Type_1.EnumValueType) {
587
+ return paramType.getFieldSignature() === argType.getFieldSignature();
588
+ }
589
+ else if (argType.constructor === ((_a = paramType.getConstant()) === null || _a === void 0 ? void 0 : _a.getType().constructor) && arg instanceof Constant_1.Constant) {
590
+ return ((_b = paramType.getConstant()) === null || _b === void 0 ? void 0 : _b.getValue()) === arg.getValue();
591
+ }
585
592
  }
586
593
  return argType.constructor === paramType.constructor;
587
594
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAuB5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,qBA4GvI;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA8F9E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,QAiDjD"}
1
+ {"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAuB5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AA4ED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,eAAe,EAAE,CA8C3J;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA8F9E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,QAiDjD"}
@@ -181,6 +181,76 @@ function buildTypeParameters(typeParameters, sourceFile, arkInstance) {
181
181
  return genericTypes;
182
182
  }
183
183
  exports.buildTypeParameters = buildTypeParameters;
184
+ function buildObjectBindingPatternParam(methodParameter, paramNameNode) {
185
+ methodParameter.setName('ObjectBindingPattern');
186
+ let elements = [];
187
+ paramNameNode.elements.forEach((element) => {
188
+ let paraElement = new ArkMethodBuilder_1.ObjectBindingPatternParameter();
189
+ if (element.propertyName) {
190
+ if (ohos_typescript_1.default.isIdentifier(element.propertyName)) {
191
+ paraElement.setPropertyName(element.propertyName.text);
192
+ }
193
+ else {
194
+ logger.warn('New propertyName of ObjectBindingPattern found, please contact developers to support this!');
195
+ }
196
+ }
197
+ if (element.name) {
198
+ if (ohos_typescript_1.default.isIdentifier(element.name)) {
199
+ paraElement.setName(element.name.text);
200
+ }
201
+ else {
202
+ logger.warn('New name of ObjectBindingPattern found, please contact developers to support this!');
203
+ }
204
+ }
205
+ if (element.initializer) {
206
+ logger.warn('TODO: support ObjectBindingPattern initializer.');
207
+ }
208
+ if (element.dotDotDotToken) {
209
+ paraElement.setOptional(true);
210
+ }
211
+ elements.push(paraElement);
212
+ });
213
+ methodParameter.setObjElements(elements);
214
+ }
215
+ function buildBindingElementOfBindingPatternParam(element, paraElement) {
216
+ if (element.propertyName) {
217
+ if (ohos_typescript_1.default.isIdentifier(element.propertyName)) {
218
+ paraElement.setPropertyName(element.propertyName.text);
219
+ }
220
+ else {
221
+ logger.warn('New propertyName of ArrayBindingPattern found, please contact developers to support this!');
222
+ }
223
+ }
224
+ if (element.name) {
225
+ if (ohos_typescript_1.default.isIdentifier(element.name)) {
226
+ paraElement.setName(element.name.text);
227
+ }
228
+ else {
229
+ logger.warn('New name of ArrayBindingPattern found, please contact developers to support this!');
230
+ }
231
+ }
232
+ if (element.initializer) {
233
+ logger.warn('TODO: support ArrayBindingPattern initializer.');
234
+ }
235
+ if (element.dotDotDotToken) {
236
+ paraElement.setOptional(true);
237
+ }
238
+ }
239
+ function buildArrayBindingPatternParam(methodParameter, paramNameNode) {
240
+ methodParameter.setName('ArrayBindingPattern');
241
+ let elements = [];
242
+ paramNameNode.elements.forEach((element) => {
243
+ let paraElement = new ArkMethodBuilder_1.ArrayBindingPatternParameter();
244
+ if (ohos_typescript_1.default.isBindingElement(element)) {
245
+ buildBindingElementOfBindingPatternParam(element, paraElement);
246
+ }
247
+ else if (ohos_typescript_1.default.isOmittedExpression(element)) {
248
+ logger.warn('TODO: support OmittedExpression for ArrayBindingPattern parameter name.');
249
+ }
250
+ elements.push(paraElement);
251
+ });
252
+ methodParameter.setArrayElements(elements);
253
+ }
184
254
  function buildParameters(params, arkInstance, sourceFile) {
185
255
  let parameters = [];
186
256
  params.forEach((parameter) => {
@@ -190,71 +260,10 @@ function buildParameters(params, arkInstance, sourceFile) {
190
260
  methodParameter.setName(parameter.name.text);
191
261
  }
192
262
  else if (ohos_typescript_1.default.isObjectBindingPattern(parameter.name)) {
193
- methodParameter.setName('ObjectBindingPattern');
194
- let elements = [];
195
- parameter.name.elements.forEach((element) => {
196
- let paraElement = new ArkMethodBuilder_1.ObjectBindingPatternParameter();
197
- if (element.propertyName) {
198
- if (ohos_typescript_1.default.isIdentifier(element.propertyName)) {
199
- paraElement.setPropertyName(element.propertyName.text);
200
- }
201
- else {
202
- logger.warn('New propertyName of ObjectBindingPattern found, please contact developers to support this!');
203
- }
204
- }
205
- if (element.name) {
206
- if (ohos_typescript_1.default.isIdentifier(element.name)) {
207
- paraElement.setName(element.name.text);
208
- }
209
- else {
210
- logger.warn('New name of ObjectBindingPattern found, please contact developers to support this!');
211
- }
212
- }
213
- if (element.initializer) {
214
- logger.warn('TODO: support ObjectBindingPattern initializer.');
215
- }
216
- if (element.dotDotDotToken) {
217
- paraElement.setOptional(true);
218
- }
219
- elements.push(paraElement);
220
- });
221
- methodParameter.setObjElements(elements);
263
+ buildObjectBindingPatternParam(methodParameter, parameter.name);
222
264
  }
223
265
  else if (ohos_typescript_1.default.isArrayBindingPattern(parameter.name)) {
224
- methodParameter.setName('ArrayBindingPattern');
225
- let elements = [];
226
- parameter.name.elements.forEach((element) => {
227
- let paraElement = new ArkMethodBuilder_1.ArrayBindingPatternParameter();
228
- if (ohos_typescript_1.default.isBindingElement(element)) {
229
- if (element.propertyName) {
230
- if (ohos_typescript_1.default.isIdentifier(element.propertyName)) {
231
- paraElement.setPropertyName(element.propertyName.text);
232
- }
233
- else {
234
- logger.warn('New propertyName of ArrayBindingPattern found, please contact developers to support this!');
235
- }
236
- }
237
- if (element.name) {
238
- if (ohos_typescript_1.default.isIdentifier(element.name)) {
239
- paraElement.setName(element.name.text);
240
- }
241
- else {
242
- logger.warn('New name of ArrayBindingPattern found, please contact developers to support this!');
243
- }
244
- }
245
- if (element.initializer) {
246
- logger.warn('TODO: support ArrayBindingPattern initializer.');
247
- }
248
- if (element.dotDotDotToken) {
249
- paraElement.setOptional(true);
250
- }
251
- }
252
- else if (ohos_typescript_1.default.isOmittedExpression(element)) {
253
- logger.warn('TODO: support OmittedExpression for ArrayBindingPattern parameter name.');
254
- }
255
- elements.push(paraElement);
256
- });
257
- methodParameter.setArrayElements(elements);
266
+ buildArrayBindingPatternParam(methodParameter, parameter.name);
258
267
  }
259
268
  else {
260
269
  logger.warn('Parameter name is not identifier, ObjectBindingPattern nor ArrayBindingPattern, please contact developers to support this!');
@@ -1 +1 @@
1
- {"version":3,"file":"serializeArkIR.d.ts","sourceRoot":"","sources":["../../src/save/serializeArkIR.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKhD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,KAAK,CAY1F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,KAAK,CAS1F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAWxE;AAED,wBAAgB,cAAc,CAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAe,GACzB,IAAI,CAcN;AAgND,eAAO,MAAM,OAAO,SAqCd,CAAC"}
1
+ {"version":3,"file":"serializeArkIR.d.ts","sourceRoot":"","sources":["../../src/save/serializeArkIR.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKhD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,KAAK,CAY1F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,KAAK,CAS1F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAWxE;AAED,wBAAgB,cAAc,CAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAe,GACzB,IAAI,CAcN;AAgMD,eAAO,MAAM,OAAO,SAqCd,CAAC"}
@@ -81,9 +81,7 @@ function serializeScene(scene, outDir, verbose = false) {
81
81
  }
82
82
  exports.serializeScene = serializeScene;
83
83
  function serializeSingleTsFile(input, output, options) {
84
- if (options.verbose) {
85
- console.log(`Serializing TS file to JSON: '${input}' -> '${output}'`);
86
- }
84
+ options.verbose && console.log(`Serializing TS file to JSON: '${input}' -> '${output}'`);
87
85
  let filepath = path_1.default.resolve(input);
88
86
  let projectDir = path_1.default.dirname(filepath);
89
87
  const scene = buildSceneFromSingleFile(filepath, options.verbose);
@@ -95,28 +93,20 @@ function serializeSingleTsFile(input, output, options) {
95
93
  }
96
94
  }
97
95
  if (options.inferTypes) {
98
- if (options.verbose) {
99
- console.log('Inferring types...');
100
- }
96
+ options.verbose && console.log('Inferring types...');
101
97
  scene.inferTypes();
102
98
  if (options.inferTypes > 1) {
103
99
  for (let i = 1; i < options.inferTypes; i++) {
104
- if (options.verbose) {
105
- console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
106
- }
100
+ options.verbose && console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
107
101
  scene.inferTypes();
108
102
  }
109
103
  }
110
104
  }
111
105
  if (options.entrypoint) {
112
- if (options.verbose) {
113
- console.log('Generating entrypoint...');
114
- }
106
+ options.verbose && console.log('Generating entrypoint...');
115
107
  PointerAnalysis_1.PointerAnalysis.pointerAnalysisForWholeProject(scene);
116
108
  }
117
- if (options.verbose) {
118
- console.log('Extracting single ArkFile...');
119
- }
109
+ options.verbose && console.log('Extracting single ArkFile...');
120
110
  if (files.length === 0) {
121
111
  console.error(`ERROR: No files found in the project directory '${projectDir}'.`);
122
112
  process.exit(1);
@@ -128,6 +118,10 @@ function serializeSingleTsFile(input, output, options) {
128
118
  // Note: we explicitly push a single path to the project files (in config),
129
119
  // so we expect there is only *one* ArkFile in the scene.
130
120
  let arkFile = scene.getFiles()[0];
121
+ serializeFile(arkFile, output, options, scene);
122
+ options.verbose && console.log('All done!');
123
+ }
124
+ function serializeFile(arkFile, output, options, scene) {
131
125
  let outPath;
132
126
  if (fs_1.default.existsSync(output) && fs_1.default.statSync(output).isDirectory()) {
133
127
  outPath = path_1.default.join(output, arkFile.getName() + '.json');
@@ -156,9 +150,6 @@ function serializeSingleTsFile(input, output, options) {
156
150
  console.log(`Serializing entrypoint to '${outPath}'...`);
157
151
  printer.dumpToJson(arkFile, outPath);
158
152
  }
159
- if (options.verbose) {
160
- console.log('All done!');
161
- }
162
153
  }
163
154
  function serializeMultipleTsFiles(inputDir, outDir, options) {
164
155
  console.log(`Serializing multiple TS files to JSON: '${inputDir}' -> '${outDir}'`);
@@ -185,9 +176,7 @@ function serializeMultipleTsFiles(inputDir, outDir, options) {
185
176
  scene.inferTypes();
186
177
  if (options.inferTypes > 1) {
187
178
  for (let i = 1; i < options.inferTypes; i++) {
188
- if (options.verbose) {
189
- console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
190
- }
179
+ options.verbose && console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
191
180
  scene.inferTypes();
192
181
  }
193
182
  }
@@ -225,9 +214,7 @@ function serializeTsProject(inputDir, outDir, options) {
225
214
  scene.inferTypes();
226
215
  if (options.inferTypes > 1) {
227
216
  for (let i = 1; i < options.inferTypes; i++) {
228
- if (options.verbose) {
229
- console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
230
- }
217
+ options.verbose && console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
231
218
  scene.inferTypes();
232
219
  }
233
220
  }
@@ -231,12 +231,13 @@ class SourceBody {
231
231
  for (let i = stmts.length - 1; i > 0; i--) {
232
232
  if (stmts[i] instanceof Stmt_1.ArkInvokeStmt && stmts[i].getInvokeExpr()) {
233
233
  let instanceInvokeExpr = stmts[i].getInvokeExpr();
234
- if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName()) {
235
- let localName = instanceInvokeExpr.getBase().getName();
236
- let newExprIdx = findNewExpr(i, localName);
237
- if (newExprIdx >= 0 && newExprIdx < i - 1) {
238
- moveStmt(i, newExprIdx);
239
- }
234
+ if ('constructor' !== instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName()) {
235
+ continue;
236
+ }
237
+ let localName = instanceInvokeExpr.getBase().getName();
238
+ let newExprIdx = findNewExpr(i, localName);
239
+ if (newExprIdx >= 0 && newExprIdx < i - 1) {
240
+ moveStmt(i, newExprIdx);
240
241
  }
241
242
  }
242
243
  }
@@ -246,10 +247,9 @@ class SourceBody {
246
247
  if (!(stmts[j] instanceof Stmt_1.ArkAssignStmt)) {
247
248
  continue;
248
249
  }
249
- if (stmts[j].getLeftOp() instanceof Local_1.Local) {
250
- if (stmts[j].getLeftOp().getName() === name) {
251
- return j;
252
- }
250
+ const leftOp = stmts[j].getLeftOp();
251
+ if (leftOp instanceof Local_1.Local && leftOp.getName() === name) {
252
+ return j;
253
253
  }
254
254
  }
255
255
  return -1;
@@ -8,6 +8,7 @@ export declare class SourceFilePrinter extends Printer {
8
8
  arkFile: ArkFile;
9
9
  items: Dump[];
10
10
  constructor(arkFile: ArkFile);
11
+ private printDefaultClassInFile;
11
12
  dump(): string;
12
13
  }
13
14
  //# sourceMappingURL=SourceFilePrinter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SourceFilePrinter.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceFilePrinter.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAM;gBAEP,OAAO,EAAE,OAAO;IAKrB,IAAI,IAAI,MAAM;CA2CxB"}
1
+ {"version":3,"file":"SourceFilePrinter.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceFilePrinter.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAM;gBAEP,OAAO,EAAE,OAAO;IAK5B,OAAO,CAAC,uBAAuB;IAYxB,IAAI,IAAI,MAAM;CA8BxB"}
@@ -31,6 +31,16 @@ class SourceFilePrinter extends Printer_1.Printer {
31
31
  this.items = [];
32
32
  this.arkFile = arkFile;
33
33
  }
34
+ printDefaultClassInFile(cls) {
35
+ for (let method of cls.getMethods()) {
36
+ if (method.isDefaultArkMethod()) {
37
+ this.items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
38
+ }
39
+ else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
40
+ this.items.push(new SourceMethod_1.SourceMethod(method));
41
+ }
42
+ }
43
+ }
34
44
  dump() {
35
45
  this.printer.clear();
36
46
  // print imports
@@ -42,14 +52,7 @@ class SourceFilePrinter extends Printer_1.Printer {
42
52
  // print class
43
53
  for (let cls of this.arkFile.getClasses()) {
44
54
  if (cls.isDefaultArkClass()) {
45
- for (let method of cls.getMethods()) {
46
- if (method.isDefaultArkMethod()) {
47
- this.items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
48
- }
49
- else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
50
- this.items.push(new SourceMethod_1.SourceMethod(method));
51
- }
52
- }
55
+ this.printDefaultClassInFile(cls);
53
56
  }
54
57
  else if (!PrinterUtils_1.PrinterUtils.isAnonymousClass(cls.getName())) {
55
58
  this.items.push(new SourceClass_1.SourceClass(cls));
@@ -7,6 +7,7 @@ export declare class SourceNamespace extends SourceBase {
7
7
  ns: ArkNamespace;
8
8
  constructor(ns: ArkNamespace, indent?: string);
9
9
  getLine(): number;
10
+ private printDefaultClassInNamespace;
10
11
  dump(): string;
11
12
  }
12
13
  //# sourceMappingURL=SourceNamespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SourceNamespace.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceNamespace.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC3C,EAAE,EAAE,YAAY,CAAC;gBAEE,EAAE,EAAE,YAAY,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;CAsDxB"}
1
+ {"version":3,"file":"SourceNamespace.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceNamespace.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC3C,EAAE,EAAE,YAAY,CAAC;gBAEE,EAAE,EAAE,YAAY,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIxB,OAAO,CAAC,4BAA4B;IAU7B,IAAI,IAAI,MAAM;CA2CxB"}
@@ -32,6 +32,16 @@ class SourceNamespace extends SourceBase_1.SourceBase {
32
32
  getLine() {
33
33
  return this.ns.getLine();
34
34
  }
35
+ printDefaultClassInNamespace(items, cls) {
36
+ for (let method of cls.getMethods()) {
37
+ if (method.isDefaultArkMethod()) {
38
+ items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
39
+ }
40
+ else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
41
+ items.push(new SourceMethod_1.SourceMethod(method, this.printer.getIndent()));
42
+ }
43
+ }
44
+ }
35
45
  dump() {
36
46
  const commentsMetadata = this.ns.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS);
37
47
  if (commentsMetadata instanceof ArkMetadata_1.CommentsMetadata) {
@@ -50,14 +60,7 @@ class SourceNamespace extends SourceBase_1.SourceBase {
50
60
  continue;
51
61
  }
52
62
  if (cls.isDefaultArkClass()) {
53
- for (let method of cls.getMethods()) {
54
- if (method.isDefaultArkMethod()) {
55
- items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
56
- }
57
- else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
58
- items.push(new SourceMethod_1.SourceMethod(method, this.printer.getIndent()));
59
- }
60
- }
63
+ this.printDefaultClassInNamespace(items, cls);
61
64
  }
62
65
  else {
63
66
  items.push(new SourceClass_1.SourceClass(cls, this.printer.getIndent()));
@@ -56,6 +56,7 @@ export declare class SourceAssignStmt extends SourceStmt {
56
56
  * temp1.constructor(10)
57
57
  */
58
58
  private transferRightNewExpr;
59
+ private handleConstructorInvoke;
59
60
  /**
60
61
  * $temp0 = newarray[4]
61
62
  * $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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"}
@@ -188,36 +188,35 @@ class SourceAssignStmt extends SourceStmt {
188
188
  }
189
189
  if (this.context.hasTempVisit(this.leftCode)) {
190
190
  this.setText('');
191
+ return;
191
192
  }
192
193
  else if (PrinterUtils_1.PrinterUtils.isTemp(this.leftCode)) {
193
194
  this.setText(`${this.rightCode};`);
195
+ return;
194
196
  }
195
- else {
196
- if (this.leftOp instanceof Local_1.Local &&
197
- this.context.getLocals().has(this.leftOp.getName()) &&
198
- !this.isLocalTempValue(this.leftOp)) {
199
- if (this.context.isLocalDefined(this.leftOp)) {
200
- this.setText(`${this.leftCode} = ${this.rightCode};`);
197
+ if (this.leftOp instanceof Local_1.Local &&
198
+ this.context.getLocals().has(this.leftOp.getName()) &&
199
+ !this.isLocalTempValue(this.leftOp)) {
200
+ if (this.context.isLocalDefined(this.leftOp)) {
201
+ this.setText(`${this.leftCode} = ${this.rightCode};`);
202
+ return;
203
+ }
204
+ let flag = this.leftOp.getConstFlag() ? 'const' : 'let';
205
+ if (this.context.getArkFile().getExportInfoBy(this.leftCode) && this.context.isInDefaultMethod()) {
206
+ this.setText(`export ${flag} ${this.leftCode} = ${this.rightCode};`);
207
+ }
208
+ else {
209
+ if (this.leftTypeCode.length > 0) {
210
+ this.setText(`${flag} ${this.leftCode}: ${this.leftTypeCode} = ${this.rightCode};`);
201
211
  }
202
212
  else {
203
- let flag = this.leftOp.getConstFlag() ? 'const' : 'let';
204
- if (this.context.getArkFile().getExportInfoBy(this.leftCode) && this.context.isInDefaultMethod()) {
205
- this.setText(`export ${flag} ${this.leftCode} = ${this.rightCode};`);
206
- }
207
- else {
208
- if (this.leftTypeCode.length > 0) {
209
- this.setText(`${flag} ${this.leftCode}: ${this.leftTypeCode} = ${this.rightCode};`);
210
- }
211
- else {
212
- this.setText(`${flag} ${this.leftCode} = ${this.rightCode};`);
213
- }
214
- }
215
- this.context.defineLocal(this.leftOp);
213
+ this.setText(`${flag} ${this.leftCode} = ${this.rightCode};`);
216
214
  }
217
215
  }
218
- else {
219
- this.setText(`${this.leftCode} = ${this.rightCode};`);
220
- }
216
+ this.context.defineLocal(this.leftOp);
217
+ }
218
+ else {
219
+ this.setText(`${this.leftCode} = ${this.rightCode};`);
221
220
  }
222
221
  }
223
222
  afterDump() {
@@ -249,19 +248,7 @@ class SourceAssignStmt extends SourceStmt {
249
248
  let instanceInvokeExpr = stmt.getInvokeExpr();
250
249
  if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName() &&
251
250
  instanceInvokeExpr.getBase().getName() === this.leftOp.getName()) {
252
- let args = [];
253
- instanceInvokeExpr.getArgs().forEach((v) => {
254
- args.push(this.transformer.valueToString(v));
255
- });
256
- if (originType === PrinterUtils_1.CLASS_CATEGORY_COMPONENT) {
257
- this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
258
- }
259
- else if (originType === ArkClass_1.ClassCategory.TYPE_LITERAL || originType === ArkClass_1.ClassCategory.OBJECT) {
260
- this.rightCode = `${this.transformer.literalObjectToString(this.rightOp.getType())}`;
261
- }
262
- else {
263
- this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
264
- }
251
+ this.handleConstructorInvoke(instanceInvokeExpr, originType);
265
252
  return;
266
253
  }
267
254
  }
@@ -279,6 +266,21 @@ class SourceAssignStmt extends SourceStmt {
279
266
  this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}()`;
280
267
  }
281
268
  }
269
+ handleConstructorInvoke(instanceInvokeExpr, originType) {
270
+ let args = [];
271
+ instanceInvokeExpr.getArgs().forEach((v) => {
272
+ args.push(this.transformer.valueToString(v));
273
+ });
274
+ if (originType === PrinterUtils_1.CLASS_CATEGORY_COMPONENT) {
275
+ this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
276
+ }
277
+ else if (originType === ArkClass_1.ClassCategory.TYPE_LITERAL || originType === ArkClass_1.ClassCategory.OBJECT) {
278
+ this.rightCode = `${this.transformer.literalObjectToString(this.rightOp.getType())}`;
279
+ }
280
+ else {
281
+ this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
282
+ }
283
+ }
282
284
  /**
283
285
  * $temp0 = newarray[4]
284
286
  * $temp0[0] = 1
@@ -25,6 +25,7 @@ export declare class SourceTransformer {
25
25
  private anonymousMethodToString;
26
26
  private anonymousClassToString;
27
27
  instanceInvokeExprToString(invokeExpr: ArkInstanceInvokeExpr): string;
28
+ private transBuilderMethod;
28
29
  staticInvokeExprToString(invokeExpr: ArkStaticInvokeExpr): string;
29
30
  private genericTypesToString;
30
31
  typeArrayToString(types: Type[], split?: string): string;
@@ -32,6 +33,7 @@ export declare class SourceTransformer {
32
33
  private exprToString;
33
34
  refToString(value: AbstractRef): string;
34
35
  valueToString(value: Value, operator?: string): string;
36
+ private localToString;
35
37
  literalObjectToString(type: ClassType): string;
36
38
  typeToString(type: Type): string;
37
39
  private literalType2string;
@@ -1 +1 @@
1
- {"version":3,"file":"SourceTransformer.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAMH,qBAAqB,EAKrB,mBAAmB,EAKtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAGH,SAAS,EAQT,IAAI,EAKP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAmE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AASnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,MAAM,WAAW,kBAAkB;IAC/B,UAAU,IAAI,OAAO,CAAC;IAEtB,wBAAwB,IAAI,YAAY,GAAG,SAAS,CAAC;IAErD,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IAExD,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErD,UAAU,IAAI,aAAa,CAAC;IAE5B,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAEpC,iBAAiB,IAAI,OAAO,CAAC;CAChC;AAED,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAE1B,OAAO,EAAE,kBAAkB;IAIvC,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAKvB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM;IAkBrE,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM;IA4DxE,OAAO,CAAC,oBAAoB;IAYrB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,GAAE,MAAa,GAAG,MAAM;WASvD,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAUpD,OAAO,CAAC,YAAY;IA2Db,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IA8BvC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAiDtD,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAW9C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IA+DvC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,gBAAgB;CAkB3B"}
1
+ {"version":3,"file":"SourceTransformer.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAMH,qBAAqB,EAKrB,mBAAmB,EAKtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAGH,SAAS,EAQT,IAAI,EAKP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAmE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AASnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,MAAM,WAAW,kBAAkB;IAC/B,UAAU,IAAI,OAAO,CAAC;IAEtB,wBAAwB,IAAI,YAAY,GAAG,SAAS,CAAC;IAErD,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IAExD,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErD,UAAU,IAAI,aAAa,CAAC;IAE5B,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAEpC,iBAAiB,IAAI,OAAO,CAAC;CAChC;AAED,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAE1B,OAAO,EAAE,kBAAkB;IAIvC,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAKvB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM;IAkB5E,OAAO,CAAC,kBAAkB;IAwCnB,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM;IA8BxE,OAAO,CAAC,oBAAoB;IAYrB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,GAAE,MAAa,GAAG,MAAM;WASvD,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAUpD,OAAO,CAAC,YAAY;IA2Db,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IA8BvC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAqB7D,OAAO,CAAC,aAAa;IAgCd,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAW9C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IA+DvC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,gBAAgB;CAkB3B"}