arkanalyzer 1.0.6 → 1.0.8

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 (224) hide show
  1. package/config/arkanalyzer.json +8 -0
  2. package/docs/IR2ts-stmt.md +81 -0
  3. package/docs/IR2ts.md +82 -0
  4. package/lib/Config.d.ts +29 -1
  5. package/lib/Config.d.ts.map +1 -1
  6. package/lib/Config.js +44 -11
  7. package/lib/Scene.d.ts +152 -9
  8. package/lib/Scene.d.ts.map +1 -1
  9. package/lib/Scene.js +233 -66
  10. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +2 -1
  11. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  12. package/lib/callgraph/algorithm/AbstractAnalysis.js +14 -7
  13. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -1
  14. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +2 -4
  15. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  16. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +2 -3
  17. package/lib/callgraph/common/Statistics.js +1 -1
  18. package/lib/callgraph/model/BaseGraph.js +2 -2
  19. package/lib/callgraph/model/CallGraph.d.ts +3 -2
  20. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  21. package/lib/callgraph/model/CallGraph.js +23 -14
  22. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +2 -2
  23. package/lib/callgraph/model/builder/CallGraphBuilder.js +3 -3
  24. package/lib/callgraph/pointerAnalysis/Context.d.ts.map +1 -1
  25. package/lib/callgraph/pointerAnalysis/Context.js +0 -1
  26. package/lib/callgraph/pointerAnalysis/Pag.d.ts +36 -9
  27. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  28. package/lib/callgraph/pointerAnalysis/Pag.js +130 -37
  29. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +34 -5
  30. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  31. package/lib/callgraph/pointerAnalysis/PagBuilder.js +479 -126
  32. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +6 -0
  33. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  34. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +107 -45
  35. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts.map +1 -1
  36. package/lib/callgraph/pointerAnalysis/PtsDS.js +0 -2
  37. package/lib/core/base/Constant.d.ts +37 -5
  38. package/lib/core/base/Constant.d.ts.map +1 -1
  39. package/lib/core/base/Constant.js +58 -8
  40. package/lib/core/base/Expr.d.ts +98 -13
  41. package/lib/core/base/Expr.d.ts.map +1 -1
  42. package/lib/core/base/Expr.js +295 -127
  43. package/lib/core/base/Local.d.ts +70 -5
  44. package/lib/core/base/Local.d.ts.map +1 -1
  45. package/lib/core/base/Local.js +77 -4
  46. package/lib/core/base/Ref.d.ts +79 -5
  47. package/lib/core/base/Ref.d.ts.map +1 -1
  48. package/lib/core/base/Ref.js +143 -38
  49. package/lib/core/base/Stmt.d.ts +126 -12
  50. package/lib/core/base/Stmt.d.ts.map +1 -1
  51. package/lib/core/base/Stmt.js +135 -28
  52. package/lib/core/base/Type.d.ts +11 -2
  53. package/lib/core/base/Type.d.ts.map +1 -1
  54. package/lib/core/base/Type.js +47 -42
  55. package/lib/core/base/Value.d.ts +24 -2
  56. package/lib/core/base/Value.d.ts.map +1 -1
  57. package/lib/core/common/ArkError.d.ts +15 -0
  58. package/lib/core/common/ArkError.d.ts.map +1 -0
  59. package/lib/core/common/ArkError.js +28 -0
  60. package/lib/core/common/ArkIRTransformer.d.ts +12 -5
  61. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  62. package/lib/core/common/ArkIRTransformer.js +90 -45
  63. package/lib/core/common/BodyBuilder.d.ts +2 -0
  64. package/lib/core/common/BodyBuilder.d.ts.map +1 -1
  65. package/lib/core/common/BodyBuilder.js +5 -2
  66. package/lib/core/common/Builtin.js +1 -1
  67. package/lib/core/common/CfgBuilder.d.ts +12 -7
  68. package/lib/core/common/CfgBuilder.d.ts.map +1 -1
  69. package/lib/core/common/CfgBuilder.js +336 -140
  70. package/lib/core/common/Const.d.ts +15 -10
  71. package/lib/core/common/Const.d.ts.map +1 -1
  72. package/lib/core/common/Const.js +18 -11
  73. package/lib/core/common/DummyMainCreater.d.ts +5 -4
  74. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  75. package/lib/core/common/DummyMainCreater.js +43 -28
  76. package/lib/core/common/EtsConst.d.ts +1 -0
  77. package/lib/core/common/EtsConst.d.ts.map +1 -1
  78. package/lib/core/common/EtsConst.js +2 -1
  79. package/lib/core/common/ExprUseReplacer.js +8 -8
  80. package/lib/core/common/IRUtils.d.ts +7 -0
  81. package/lib/core/common/IRUtils.d.ts.map +1 -1
  82. package/lib/core/common/IRUtils.js +34 -2
  83. package/lib/core/common/ModelUtils.d.ts +1 -0
  84. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  85. package/lib/core/common/ModelUtils.js +39 -36
  86. package/lib/core/common/RefUseReplacer.js +3 -3
  87. package/lib/core/common/StmtUseReplacer.js +4 -4
  88. package/lib/core/common/TSConst.d.ts +10 -3
  89. package/lib/core/common/TSConst.d.ts.map +1 -1
  90. package/lib/core/common/TSConst.js +11 -4
  91. package/lib/core/common/TypeInference.d.ts +8 -2
  92. package/lib/core/common/TypeInference.d.ts.map +1 -1
  93. package/lib/core/common/TypeInference.js +222 -90
  94. package/lib/core/common/ValueUtil.d.ts +0 -4
  95. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  96. package/lib/core/common/ValueUtil.js +10 -27
  97. package/lib/core/common/VisibleValue.js +1 -1
  98. package/lib/core/dataflow/DataflowProblem.d.ts +1 -0
  99. package/lib/core/dataflow/DataflowProblem.d.ts.map +1 -1
  100. package/lib/core/dataflow/DataflowProblem.js +4 -4
  101. package/lib/core/dataflow/DataflowSolver.d.ts +20 -16
  102. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
  103. package/lib/core/dataflow/DataflowSolver.js +67 -78
  104. package/lib/core/dataflow/TiantAnalysis.d.ts +1 -0
  105. package/lib/core/dataflow/TiantAnalysis.d.ts.map +1 -1
  106. package/lib/core/dataflow/TiantAnalysis.js +42 -28
  107. package/lib/core/dataflow/UndefinedVariable.d.ts +15 -1
  108. package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -1
  109. package/lib/core/dataflow/UndefinedVariable.js +122 -76
  110. package/lib/core/dataflow/Util.d.ts +5 -1
  111. package/lib/core/dataflow/Util.d.ts.map +1 -1
  112. package/lib/core/dataflow/Util.js +43 -22
  113. package/lib/core/graph/BasicBlock.d.ts +72 -0
  114. package/lib/core/graph/BasicBlock.d.ts.map +1 -1
  115. package/lib/core/graph/BasicBlock.js +165 -3
  116. package/lib/core/graph/Cfg.d.ts +30 -1
  117. package/lib/core/graph/Cfg.d.ts.map +1 -1
  118. package/lib/core/graph/Cfg.js +131 -11
  119. package/lib/core/graph/DominanceFinder.js +7 -7
  120. package/lib/core/graph/DominanceTree.js +4 -4
  121. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  122. package/lib/core/graph/builder/ViewTreeBuilder.js +6 -5
  123. package/lib/core/model/ArkBaseModel.d.ts +59 -0
  124. package/lib/core/model/ArkBaseModel.d.ts.map +1 -0
  125. package/lib/core/model/ArkBaseModel.js +271 -0
  126. package/lib/core/model/ArkBody.d.ts +3 -9
  127. package/lib/core/model/ArkBody.d.ts.map +1 -1
  128. package/lib/core/model/ArkBody.js +3 -14
  129. package/lib/core/model/ArkClass.d.ts +107 -13
  130. package/lib/core/model/ArkClass.d.ts.map +1 -1
  131. package/lib/core/model/ArkClass.js +152 -54
  132. package/lib/core/model/ArkExport.d.ts +8 -7
  133. package/lib/core/model/ArkExport.d.ts.map +1 -1
  134. package/lib/core/model/ArkExport.js +16 -18
  135. package/lib/core/model/ArkField.d.ts +16 -13
  136. package/lib/core/model/ArkField.d.ts.map +1 -1
  137. package/lib/core/model/ArkField.js +18 -62
  138. package/lib/core/model/ArkFile.d.ts +42 -0
  139. package/lib/core/model/ArkFile.d.ts.map +1 -1
  140. package/lib/core/model/ArkFile.js +58 -0
  141. package/lib/core/model/ArkImport.d.ts +9 -7
  142. package/lib/core/model/ArkImport.d.ts.map +1 -1
  143. package/lib/core/model/ArkImport.js +11 -12
  144. package/lib/core/model/ArkMetadata.d.ts +20 -0
  145. package/lib/core/model/ArkMetadata.d.ts.map +1 -0
  146. package/lib/core/model/ArkMetadata.js +44 -0
  147. package/lib/core/model/ArkMethod.d.ts +195 -17
  148. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  149. package/lib/core/model/ArkMethod.js +363 -46
  150. package/lib/core/model/ArkNamespace.d.ts +6 -8
  151. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  152. package/lib/core/model/ArkNamespace.js +16 -20
  153. package/lib/core/model/ArkSignature.d.ts +41 -0
  154. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  155. package/lib/core/model/ArkSignature.js +76 -19
  156. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  157. package/lib/core/model/builder/ArkClassBuilder.js +60 -49
  158. package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
  159. package/lib/core/model/builder/ArkExportBuilder.js +12 -6
  160. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  161. package/lib/core/model/builder/ArkFieldBuilder.js +13 -9
  162. package/lib/core/model/builder/ArkFileBuilder.js +1 -3
  163. package/lib/core/model/builder/ArkImportBuilder.d.ts +2 -1
  164. package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -1
  165. package/lib/core/model/builder/ArkImportBuilder.js +16 -13
  166. package/lib/core/model/builder/ArkMethodBuilder.d.ts +3 -1
  167. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  168. package/lib/core/model/builder/ArkMethodBuilder.js +105 -45
  169. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  170. package/lib/core/model/builder/ArkNamespaceBuilder.js +4 -5
  171. package/lib/core/model/builder/builderUtils.d.ts +2 -1
  172. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  173. package/lib/core/model/builder/builderUtils.js +63 -43
  174. package/lib/index.d.ts +2 -1
  175. package/lib/index.d.ts.map +1 -1
  176. package/lib/index.js +4 -3
  177. package/lib/save/ArkStream.js +1 -1
  178. package/lib/save/DotPrinter.d.ts.map +1 -1
  179. package/lib/save/DotPrinter.js +1 -15
  180. package/lib/save/GraphPrinter.d.ts.map +1 -1
  181. package/lib/save/GraphPrinter.js +4 -2
  182. package/lib/save/JsonPrinter.js +5 -5
  183. package/lib/save/ViewTreePrinter.d.ts +16 -0
  184. package/lib/save/ViewTreePrinter.d.ts.map +1 -0
  185. package/lib/save/ViewTreePrinter.js +130 -0
  186. package/lib/save/source/SourceBase.d.ts +2 -2
  187. package/lib/save/source/SourceBase.d.ts.map +1 -1
  188. package/lib/save/source/SourceBase.js +6 -13
  189. package/lib/save/source/SourceBody.d.ts.map +1 -1
  190. package/lib/save/source/SourceBody.js +27 -14
  191. package/lib/save/source/SourceClass.d.ts.map +1 -1
  192. package/lib/save/source/SourceClass.js +12 -8
  193. package/lib/save/source/SourceField.d.ts.map +1 -1
  194. package/lib/save/source/SourceField.js +6 -2
  195. package/lib/save/source/SourceMethod.d.ts.map +1 -1
  196. package/lib/save/source/SourceMethod.js +10 -3
  197. package/lib/save/source/SourceModule.d.ts.map +1 -1
  198. package/lib/save/source/SourceModule.js +16 -10
  199. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  200. package/lib/save/source/SourceNamespace.js +4 -0
  201. package/lib/save/source/SourceStmt.d.ts +1 -1
  202. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  203. package/lib/save/source/SourceStmt.js +37 -25
  204. package/lib/save/source/SourceTransformer.d.ts +6 -0
  205. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  206. package/lib/save/source/SourceTransformer.js +82 -51
  207. package/lib/save/source/SourceUtils.d.ts.map +1 -1
  208. package/lib/save/source/SourceUtils.js +12 -11
  209. package/lib/transformer/StaticSingleAssignmentFormer.js +3 -3
  210. package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
  211. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
  212. package/lib/utils/CfgStructualAnalysis.js +103 -72
  213. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  214. package/lib/utils/callGraphUtils.js +7 -10
  215. package/lib/utils/crypto_utils.d.ts +6 -0
  216. package/lib/utils/crypto_utils.d.ts.map +1 -0
  217. package/lib/utils/crypto_utils.js +57 -0
  218. package/lib/utils/entryMethodUtils.d.ts.map +1 -1
  219. package/lib/utils/entryMethodUtils.js +27 -26
  220. package/lib/utils/getAllFiles.d.ts +1 -1
  221. package/lib/utils/getAllFiles.d.ts.map +1 -1
  222. package/lib/utils/getAllFiles.js +4 -5
  223. package/lib/utils/logger.js +2 -2
  224. package/package.json +3 -2
@@ -47,6 +47,15 @@ const CfgStructualAnalysis_1 = require("../../utils/CfgStructualAnalysis");
47
47
  const ModelUtils_1 = require("../../core/common/ModelUtils");
48
48
  const SourceUtils_1 = require("./SourceUtils");
49
49
  const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'SourceBody');
50
+ class AliasStmt extends Stmt_1.Stmt {
51
+ constructor(position) {
52
+ super();
53
+ this.originalPosition = position;
54
+ }
55
+ toString() {
56
+ return '';
57
+ }
58
+ }
50
59
  class SourceBody {
51
60
  constructor(indent, method, inBuilder) {
52
61
  this.stmts = [];
@@ -133,26 +142,30 @@ class SourceBody {
133
142
  this.buildTypeAliasStmt();
134
143
  }
135
144
  buildTypeAliasStmt() {
136
- for (const [_, [aliasType, declaration]] of this.arkBody.getAliasTypeMap()) {
137
- let stmt = new Stmt_1.OriginalStmt('', declaration.getPosition());
145
+ let map = this.arkBody.getAliasTypeMap();
146
+ if (!map) {
147
+ return;
148
+ }
149
+ for (const [_, [aliasType, declaration]] of map) {
150
+ let stmt = new AliasStmt(declaration.getPosition());
138
151
  this.pushStmt(new SourceStmt_1.SourceTypeAliasStmt(this, stmt, aliasType));
139
152
  }
140
153
  }
141
154
  buildBasicBlock(block, type) {
142
- if (type == CfgStructualAnalysis_1.CodeBlockType.BREAK) {
155
+ if (type === CfgStructualAnalysis_1.CodeBlockType.BREAK) {
143
156
  this.pushStmt(new SourceStmt_1.SourceBreakStmt(this, this.lastStmt));
144
157
  return;
145
158
  }
146
- else if (type == CfgStructualAnalysis_1.CodeBlockType.CONTINUE) {
159
+ else if (type === CfgStructualAnalysis_1.CodeBlockType.CONTINUE) {
147
160
  this.pushStmt(new SourceStmt_1.SourceContinueStmt(this, this.lastStmt));
148
161
  }
149
- else if (type == CfgStructualAnalysis_1.CodeBlockType.COMPOUND_END) {
162
+ else if (type === CfgStructualAnalysis_1.CodeBlockType.COMPOUND_END) {
150
163
  this.pushStmt(new SourceStmt_1.SourceCompoundEndStmt(this, this.lastStmt, '}'));
151
164
  }
152
- else if (type == CfgStructualAnalysis_1.CodeBlockType.ELSE) {
165
+ else if (type === CfgStructualAnalysis_1.CodeBlockType.ELSE) {
153
166
  this.pushStmt(new SourceStmt_1.SourceElseStmt(this, this.lastStmt));
154
167
  }
155
- else if (type == CfgStructualAnalysis_1.CodeBlockType.DO) {
168
+ else if (type === CfgStructualAnalysis_1.CodeBlockType.DO) {
156
169
  this.pushStmt(new SourceStmt_1.SourceDoStmt(this, this.lastStmt));
157
170
  }
158
171
  if (!block) {
@@ -166,17 +179,17 @@ class SourceBody {
166
179
  continue;
167
180
  }
168
181
  if (stmt instanceof Stmt_1.ArkIfStmt) {
169
- if (type == CfgStructualAnalysis_1.CodeBlockType.IF) {
182
+ if (type === CfgStructualAnalysis_1.CodeBlockType.IF) {
170
183
  this.pushStmt(new SourceStmt_1.SourceIfStmt(this, stmt));
171
184
  }
172
- else if (type == CfgStructualAnalysis_1.CodeBlockType.WHILE) {
185
+ else if (type === CfgStructualAnalysis_1.CodeBlockType.WHILE) {
173
186
  this.pushStmt(new SourceStmt_1.SourceWhileStmt(this, stmt, block));
174
187
  }
175
- else if (type == CfgStructualAnalysis_1.CodeBlockType.FOR) {
188
+ else if (type === CfgStructualAnalysis_1.CodeBlockType.FOR) {
176
189
  let inc = this.cfgUtils.getForIncBlock(block);
177
190
  this.pushStmt(new SourceStmt_1.SourceForStmt(this, stmt, block, inc));
178
191
  }
179
- else if (type == CfgStructualAnalysis_1.CodeBlockType.DO_WHILE) {
192
+ else if (type === CfgStructualAnalysis_1.CodeBlockType.DO_WHILE) {
180
193
  this.pushStmt(new SourceStmt_1.SourceDoWhileStmt(this, stmt, block));
181
194
  }
182
195
  }
@@ -227,7 +240,7 @@ class SourceBody {
227
240
  for (let i = stmts.length - 1; i > 0; i--) {
228
241
  if (stmts[i] instanceof Stmt_1.ArkInvokeStmt && stmts[i].getInvokeExpr()) {
229
242
  let instanceInvokeExpr = stmts[i].getInvokeExpr();
230
- if ('constructor' == instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName()) {
243
+ if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName()) {
231
244
  let localName = instanceInvokeExpr.getBase().getName();
232
245
  let newExprIdx = findNewExpr(i, localName);
233
246
  if (newExprIdx >= 0 && newExprIdx < i - 1) {
@@ -243,7 +256,7 @@ class SourceBody {
243
256
  continue;
244
257
  }
245
258
  if (stmts[j].getLeftOp() instanceof Local_1.Local) {
246
- if (stmts[j].getLeftOp().getName() == name) {
259
+ if (stmts[j].getLeftOp().getName() === name) {
247
260
  return j;
248
261
  }
249
262
  }
@@ -282,7 +295,7 @@ class StmtReader {
282
295
  return stmt;
283
296
  }
284
297
  rollback() {
285
- if (this.pos == 0) {
298
+ if (this.pos === 0) {
286
299
  logger.error('SourceBody: StmtReader->rollback No more stmt to rollback.');
287
300
  throw new Error('No more stmt to rollback.');
288
301
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SourceClass.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceClass.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAOhD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACvC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;IACxB,OAAO,CAAC,WAAW,CAAoB;gBAEpB,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAW;IAM9C,wBAAwB,IAAI,YAAY,GAAG,SAAS;IAIpD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAoDd,YAAY,IAAI,MAAM;IAI7B,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,eAAe;IAmBvB,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;IAgBhC,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,oBAAoB;CAU/B;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBAC5B,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAW;IAI9C,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAKd,YAAY,IAAI,MAAM;CAmBhC"}
1
+ {"version":3,"file":"SourceClass.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceClass.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAOhD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAI7D;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACvC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;IACxB,OAAO,CAAC,WAAW,CAAoB;gBAEpB,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAW;IAM9C,wBAAwB,IAAI,YAAY,GAAG,SAAS;IAIpD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAsDd,YAAY,IAAI,MAAM;IAI7B,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,eAAe;IAmBvB,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;IAgBhC,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,oBAAoB;CAU/B;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBAC5B,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAW;IAI9C,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAKd,YAAY,IAAI,MAAM;CAmBhC"}
@@ -24,6 +24,7 @@ const SourceTransformer_1 = require("./SourceTransformer");
24
24
  const SourceUtils_1 = require("./SourceUtils");
25
25
  const Const_1 = require("../../core/common/Const");
26
26
  const ArkField_1 = require("../../core/model/ArkField");
27
+ const ArkMetadata_1 = require("../../core/model/ArkMetadata");
27
28
  /**
28
29
  * @category save
29
30
  */
@@ -41,13 +42,16 @@ class SourceClass extends SourceBase_1.SourceBase {
41
42
  }
42
43
  dump() {
43
44
  this.printer.clear();
44
- if (this.cls.getCategory() == ArkClass_1.ClassCategory.OBJECT) {
45
+ (this.cls.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS) || []).forEach((comment) => {
46
+ this.printer.writeIndent().writeLine(comment);
47
+ });
48
+ if (this.cls.getCategory() === ArkClass_1.ClassCategory.OBJECT) {
45
49
  return this.dumpObject();
46
50
  }
47
- if (this.cls.getCategory() == ArkClass_1.ClassCategory.TYPE_LITERAL) {
51
+ if (this.cls.getCategory() === ArkClass_1.ClassCategory.TYPE_LITERAL) {
48
52
  return this.dumpTypeLiteral();
49
53
  }
50
- this.printDecorator(this.cls.getModifiers());
54
+ this.printDecorator(this.cls.getDecorators());
51
55
  // print export class name<> + extends c0 implements x1, x2 {
52
56
  this.printer
53
57
  .writeIndent()
@@ -99,7 +103,7 @@ class SourceClass extends SourceBase_1.SourceBase {
99
103
  if (instanceInitializer.has(field.getName())) {
100
104
  this.printer.write(`: ${instanceInitializer.get(field.getName())}`);
101
105
  }
102
- if (index != array.length - 1) {
106
+ if (index !== array.length - 1) {
103
107
  this.printer.write(`, `);
104
108
  }
105
109
  });
@@ -116,7 +120,7 @@ class SourceClass extends SourceBase_1.SourceBase {
116
120
  else {
117
121
  this.printer.write(`'${name}': ${this.transformer.typeToString(field.getType())}`);
118
122
  }
119
- if (index != array.length - 1) {
123
+ if (index !== array.length - 1) {
120
124
  this.printer.write(`, `);
121
125
  }
122
126
  });
@@ -143,10 +147,10 @@ class SourceClass extends SourceBase_1.SourceBase {
143
147
  let staticInitializer = this.parseFieldInitMethod(Const_1.STATIC_INIT_METHOD_NAME);
144
148
  let items = [];
145
149
  for (let field of this.cls.getFields()) {
146
- if (field.getCategory() == ArkField_1.FieldCategory.GET_ACCESSOR) {
150
+ if (field.getCategory() === ArkField_1.FieldCategory.GET_ACCESSOR) {
147
151
  continue;
148
152
  }
149
- if (field.getModifiers().has('StaticKeyword')) {
153
+ if (field.isStatic()) {
150
154
  items.push(new SourceField_1.SourceField(field, this.printer.getIndent(), staticInitializer));
151
155
  }
152
156
  else {
@@ -157,7 +161,7 @@ class SourceClass extends SourceBase_1.SourceBase {
157
161
  }
158
162
  parseFieldInitMethod(name) {
159
163
  let method = this.cls.getMethodWithName(name);
160
- if (!method || (method === null || method === void 0 ? void 0 : method.getBody()) == undefined) {
164
+ if (!method || (method === null || method === void 0 ? void 0 : method.getBody()) === undefined) {
161
165
  return new Map();
162
166
  }
163
167
  let srcBody = new SourceBody_1.SourceBody(this.printer.getIndent(), method, false);
@@ -1 +1 @@
1
- {"version":3,"file":"SourceField.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceField.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACvC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,WAAW,CAAsB;gBAEtB,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAa,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAOlF,OAAO,IAAI,MAAM;IAGjB,IAAI,IAAI,MAAM;IAiCd,YAAY,IAAI,MAAM;CAGhC"}
1
+ {"version":3,"file":"SourceField.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceField.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACvC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,WAAW,CAAsB;gBAEtB,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAa,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAOlF,OAAO,IAAI,MAAM;IAGjB,IAAI,IAAI,MAAM;IAoCd,YAAY,IAAI,MAAM;CAGhC"}
@@ -19,6 +19,7 @@ const ArkField_1 = require("../../core/model/ArkField");
19
19
  const SourceBase_1 = require("./SourceBase");
20
20
  const SourceTransformer_1 = require("./SourceTransformer");
21
21
  const Type_1 = require("../../core/base/Type");
22
+ const ArkMetadata_1 = require("../../core/model/ArkMetadata");
22
23
  /**
23
24
  * @category save
24
25
  */
@@ -34,7 +35,10 @@ class SourceField extends SourceBase_1.SourceBase {
34
35
  }
35
36
  dump() {
36
37
  this.printer.clear();
37
- this.printDecorator(this.field.getModifiers());
38
+ (this.field.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS) || []).forEach((comment) => {
39
+ this.printer.writeIndent().writeLine(comment);
40
+ });
41
+ this.printDecorator(this.field.getDecorators());
38
42
  this.printer.writeIndent();
39
43
  if (this.field.getCategory() !== ArkField_1.FieldCategory.ENUM_MEMBER) {
40
44
  this.printer.writeSpace(this.modifiersToString(this.field.getModifiers()));
@@ -53,7 +57,7 @@ class SourceField extends SourceBase_1.SourceBase {
53
57
  if (this.initializer.has(this.field.getName())) {
54
58
  this.printer.write(` = ${this.initializer.get(this.field.getName())}`);
55
59
  }
56
- if (this.field.getCategory() == ArkField_1.FieldCategory.ENUM_MEMBER) {
60
+ if (this.field.getCategory() === ArkField_1.FieldCategory.ENUM_MEMBER) {
57
61
  this.printer.writeLine(',');
58
62
  }
59
63
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"SourceMethod.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceMethod.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;IACxC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAoB;gBAEpB,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,MAAW;IAOlD,wBAAwB,IAAI,YAAY,GAAG,SAAS;IAIpD,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAItC,IAAI,IAAI,MAAM;IAUd,YAAY,IAAI,MAAM;IAItB,OAAO,IAAI,MAAM;IAoBjB,iBAAiB,IAAI,UAAU,EAAE;IAKxC,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,SAAS;IAKjB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IA+CjD,yBAAyB,IAAI,MAAM;IAuB1C,OAAO,CAAC,aAAa;CAQxB"}
1
+ {"version":3,"file":"SourceMethod.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceMethod.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;IACxC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAoB;gBAEpB,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,MAAW;IAOlD,wBAAwB,IAAI,YAAY,GAAG,SAAS;IAIpD,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAItC,IAAI,IAAI,MAAM;IAad,YAAY,IAAI,MAAM;IAItB,OAAO,IAAI,MAAM;IAuBjB,iBAAiB,IAAI,UAAU,EAAE;IAKxC,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,SAAS;IAKjB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IA+CjD,yBAAyB,IAAI,MAAM;IAuB1C,OAAO,CAAC,aAAa;CAQxB"}
@@ -21,6 +21,7 @@ const SourceBase_1 = require("./SourceBase");
21
21
  const SourceBody_1 = require("./SourceBody");
22
22
  const SourceTransformer_1 = require("./SourceTransformer");
23
23
  const SourceUtils_1 = require("./SourceUtils");
24
+ const ArkMetadata_1 = require("../../core/model/ArkMetadata");
24
25
  /**
25
26
  * @category save
26
27
  */
@@ -39,6 +40,9 @@ class SourceMethod extends SourceBase_1.SourceBase {
39
40
  }
40
41
  dump() {
41
42
  this.printer.clear();
43
+ (this.method.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS) || []).forEach((comment) => {
44
+ this.printer.writeIndent().writeLine(comment);
45
+ });
42
46
  if (!this.method.isDefaultArkMethod()) {
43
47
  this.printMethod(this.method);
44
48
  }
@@ -52,6 +56,9 @@ class SourceMethod extends SourceBase_1.SourceBase {
52
56
  }
53
57
  getLine() {
54
58
  let line = this.method.getLine();
59
+ if (line === null) {
60
+ line = 0;
61
+ }
55
62
  if (line > 0) {
56
63
  return line;
57
64
  }
@@ -72,7 +79,7 @@ class SourceMethod extends SourceBase_1.SourceBase {
72
79
  return srcBody.getStmts();
73
80
  }
74
81
  printMethod(method) {
75
- this.printDecorator(method.getModifiers());
82
+ this.printDecorator(method.getDecorators());
76
83
  this.printer.writeIndent().write(this.methodProtoToString(method));
77
84
  // abstract function no body
78
85
  if (!method.getBody()) {
@@ -162,8 +169,8 @@ class SourceMethod extends SourceBase_1.SourceBase {
162
169
  }
163
170
  initInBuilder() {
164
171
  return (this.method.hasBuilderDecorator() ||
165
- ((this.method.getName() == 'build' || this.method.getName() == 'pageTransition') &&
166
- !this.method.containsModifier('StaticKeyword') &&
172
+ ((this.method.getName() === 'build' || this.method.getName() === 'pageTransition') &&
173
+ !this.method.isStatic() &&
167
174
  this.method.getDeclaringArkClass().hasViewTree()));
168
175
  }
169
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SourceModule.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceModule.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAc,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,gBAAiB,SAAQ,UAAU;IAC5C,IAAI,EAAE,UAAU,CAAC;gBAEE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IA4Cd,YAAY,IAAI,MAAM;CAGhC;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAC5C,IAAI,EAAE,UAAU,CAAC;gBAEE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAuDd,YAAY,IAAI,MAAM;CAGhC"}
1
+ {"version":3,"file":"SourceModule.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceModule.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAc,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,gBAAiB,SAAQ,UAAU;IAC5C,IAAI,EAAE,UAAU,CAAC;gBAEE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAuCd,YAAY,IAAI,MAAM;CAGhC;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAC5C,IAAI,EAAE,UAAU,CAAC;gBAEE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAwCd,YAAY,IAAI,MAAM;CAGhC"}
@@ -15,7 +15,9 @@
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.SourceImportInfo = exports.SourceExportInfo = void 0;
18
+ const ArkBaseModel_1 = require("../../core/model/ArkBaseModel");
18
19
  const ArkExport_1 = require("../../core/model/ArkExport");
20
+ const ArkMetadata_1 = require("../../core/model/ArkMetadata");
19
21
  const SourceBase_1 = require("./SourceBase");
20
22
  class SourceExportInfo extends SourceBase_1.SourceBase {
21
23
  constructor(info, indent = '') {
@@ -28,21 +30,24 @@ class SourceExportInfo extends SourceBase_1.SourceBase {
28
30
  dump() {
29
31
  var _a;
30
32
  this.printer.clear();
31
- if (((_a = this.info.getArkExport()) === null || _a === void 0 ? void 0 : _a.getModifiers().has('ExportKeyword')) || this.info.getExportClauseType() == ArkExport_1.ExportType.LOCAL) {
33
+ (this.info.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS) || []).forEach((comment) => {
34
+ this.printer.writeIndent().writeLine(comment);
35
+ });
36
+ if (!this.info.getFrom() &&
37
+ (((_a = this.info.getArkExport()) === null || _a === void 0 ? void 0 : _a.containsModifier(ArkBaseModel_1.ModifierType.EXPORT)) ||
38
+ this.info.getExportClauseType() === ArkExport_1.ExportType.LOCAL ||
39
+ this.info.getExportClauseType() === ArkExport_1.ExportType.TYPE)) {
32
40
  return this.printer.toString();
33
41
  }
34
42
  if (this.info.getExportClauseName() === '*') {
35
43
  // just like: export * as xx from './yy'
36
- if (this.info.getNameBeforeAs() &&
37
- this.info.getNameBeforeAs() != '*') {
44
+ if (this.info.getNameBeforeAs() && this.info.getNameBeforeAs() !== '*') {
38
45
  this.printer
39
46
  .writeIndent()
40
47
  .write(`export ${this.info.getNameBeforeAs()} as ${this.info.getExportClauseName()}`);
41
48
  }
42
49
  else {
43
- this.printer
44
- .writeIndent()
45
- .write(`export ${this.info.getExportClauseName()}`);
50
+ this.printer.writeIndent().write(`export ${this.info.getExportClauseName()}`);
46
51
  }
47
52
  }
48
53
  else {
@@ -74,6 +79,9 @@ class SourceImportInfo extends SourceBase_1.SourceBase {
74
79
  return this.info.getOriginTsPosition().getLineNo();
75
80
  }
76
81
  dump() {
82
+ (this.info.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS) || []).forEach((comment) => {
83
+ this.printer.writeIndent().writeLine(comment);
84
+ });
77
85
  if (this.info.getImportType() === 'Identifier') {
78
86
  // sample: import fs from 'fs'
79
87
  this.printer
@@ -99,7 +107,7 @@ class SourceImportInfo extends SourceBase_1.SourceBase {
99
107
  .writeIndent()
100
108
  .writeLine(`import * as ${this.info.getImportClauseName()} from '${this.info.getFrom()}';`);
101
109
  }
102
- else if (this.info.getImportType() == 'EqualsImport') {
110
+ else if (this.info.getImportType() === 'EqualsImport') {
103
111
  // sample: import mmmm = require('./xxx')
104
112
  this.printer
105
113
  .writeIndent()
@@ -107,9 +115,7 @@ class SourceImportInfo extends SourceBase_1.SourceBase {
107
115
  }
108
116
  else {
109
117
  // sample: import '../xxx'
110
- this.printer
111
- .writeIndent()
112
- .writeLine(`import '${this.info.getFrom()}';`);
118
+ this.printer.writeIndent().writeLine(`import '${this.info.getFrom()}';`);
113
119
  }
114
120
  return this.printer.toString();
115
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SourceNamespace.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceNamespace.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAQ,UAAU,EAAE,MAAM,cAAc,CAAC;AAMhD;;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;IA2Dd,YAAY,IAAI,MAAM;CAGhC"}
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,EAAQ,UAAU,EAAE,MAAM,cAAc,CAAC;AAMhD;;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;IA8Dd,YAAY,IAAI,MAAM;CAGhC"}
@@ -15,6 +15,7 @@
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.SourceNamespace = void 0;
18
+ const ArkMetadata_1 = require("../../core/model/ArkMetadata");
18
19
  const SourceBase_1 = require("./SourceBase");
19
20
  const SourceClass_1 = require("./SourceClass");
20
21
  const SourceMethod_1 = require("./SourceMethod");
@@ -32,6 +33,9 @@ class SourceNamespace extends SourceBase_1.SourceBase {
32
33
  return this.ns.getLine();
33
34
  }
34
35
  dump() {
36
+ (this.ns.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS) || []).forEach((comment) => {
37
+ this.printer.writeIndent().writeLine(comment);
38
+ });
35
39
  this.printer
36
40
  .writeIndent()
37
41
  .writeSpace(this.modifiersToString(this.ns.getModifiers()))
@@ -84,7 +84,7 @@ export declare class SourceWhileStmt extends SourceStmt {
84
84
  /**
85
85
  * $temp2 = $temp1.next()
86
86
  * $temp3 = $temp2.done()
87
- * if $temp3 == true
87
+ * if $temp3 === true
88
88
  * $temp4 = $temp2.value
89
89
  * $temp5 = <> cast
90
90
  * @returns
@@ -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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"}
@@ -50,6 +50,8 @@ const SourceTransformer_1 = require("./SourceTransformer");
50
50
  const SourceUtils_1 = require("./SourceUtils");
51
51
  const ValueUtil_1 = require("../../core/common/ValueUtil");
52
52
  const ArkClass_1 = require("../../core/model/ArkClass");
53
+ const ArkBaseModel_1 = require("../../core/model/ArkBaseModel");
54
+ const ArkMetadata_1 = require("../../core/model/ArkMetadata");
53
55
  const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'SourceStmt');
54
56
  const IGNOR_TYPES = new Set(['any', 'Map', 'Set']);
55
57
  class SourceStmt {
@@ -75,10 +77,15 @@ class SourceStmt {
75
77
  beforeDump() { }
76
78
  afterDump() { }
77
79
  dumpTs() {
80
+ let content = [];
81
+ let comments = this.original.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS) || [];
82
+ comments.forEach((v) => {
83
+ content.push(`${this.printer.getIndent()}${v}\n`);
84
+ });
78
85
  if (this.text.length > 0) {
79
- return `${this.printer.getIndent()}${this.text}\n`;
86
+ content.push(`${this.printer.getIndent()}${this.text}\n`);
80
87
  }
81
- return ``;
88
+ return content.join('');
82
89
  }
83
90
  get printer() {
84
91
  return this.context.getPrinter();
@@ -118,8 +125,8 @@ class SourceAssignStmt extends SourceStmt {
118
125
  transfer2ts() {
119
126
  this.leftOp = this.original.getLeftOp();
120
127
  this.rightOp = this.original.getRightOp();
121
- if ((this.leftOp instanceof Local_1.Local && this.leftOp.getName() == 'this') ||
122
- (this.rightOp instanceof Constant_1.Constant && this.rightOp.getValue() == 'undefined') ||
128
+ if ((this.leftOp instanceof Local_1.Local && this.leftOp.getName() === 'this') ||
129
+ (this.rightOp instanceof Constant_1.Constant && this.rightOp.getValue() === 'undefined') ||
123
130
  this.rightOp instanceof Ref_1.ArkParameterRef) {
124
131
  this.setText('');
125
132
  this.dumpType = AssignStmtDumpType.NORMAL;
@@ -145,11 +152,11 @@ class SourceAssignStmt extends SourceStmt {
145
152
  if (this.isLocalTempValue(this.leftOp)) {
146
153
  this.context.setTempCode(this.leftOp.getName(), this.rightCode);
147
154
  }
148
- if ((this.leftOp instanceof Ref_1.ArkInstanceFieldRef && this.leftOp.getBase().getName() == 'this') ||
155
+ if ((this.leftOp instanceof Ref_1.ArkInstanceFieldRef && this.leftOp.getBase().getName() === 'this') ||
149
156
  this.leftOp instanceof Ref_1.ArkStaticFieldRef) {
150
157
  this.context.setTempCode(this.leftOp.getFieldName(), this.rightCode);
151
158
  }
152
- if (this.dumpType == undefined) {
159
+ if (this.dumpType === undefined) {
153
160
  this.setText(`${this.leftCode} = ${this.rightCode}`);
154
161
  this.dumpType = AssignStmtDumpType.TEMP_REPLACE;
155
162
  }
@@ -171,7 +178,7 @@ class SourceAssignStmt extends SourceStmt {
171
178
  }
172
179
  }
173
180
  beforeDump() {
174
- if (this.dumpType != AssignStmtDumpType.TEMP_REPLACE) {
181
+ if (this.dumpType !== AssignStmtDumpType.TEMP_REPLACE) {
175
182
  return;
176
183
  }
177
184
  if (this.context.hasTempVisit(this.leftCode)) {
@@ -209,7 +216,7 @@ class SourceAssignStmt extends SourceStmt {
209
216
  }
210
217
  }
211
218
  afterDump() {
212
- if (this.dumpType == AssignStmtDumpType.COMPONENT_CREATE) {
219
+ if (this.dumpType === AssignStmtDumpType.COMPONENT_CREATE) {
213
220
  this.printer.incIndent();
214
221
  }
215
222
  }
@@ -235,16 +242,16 @@ class SourceAssignStmt extends SourceStmt {
235
242
  let rollback = true;
236
243
  if (stmt instanceof Stmt_1.ArkInvokeStmt && stmt.getInvokeExpr()) {
237
244
  let instanceInvokeExpr = stmt.getInvokeExpr();
238
- if ('constructor' == instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName() &&
239
- instanceInvokeExpr.getBase().getName() == this.leftOp.getName()) {
245
+ if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName() &&
246
+ instanceInvokeExpr.getBase().getName() === this.leftOp.getName()) {
240
247
  let args = [];
241
248
  instanceInvokeExpr.getArgs().forEach((v) => {
242
249
  args.push(this.transformer.valueToString(v));
243
250
  });
244
- if (originType == SourceUtils_1.CLASS_CATEGORY_COMPONENT) {
251
+ if (originType === SourceUtils_1.CLASS_CATEGORY_COMPONENT) {
245
252
  this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
246
253
  }
247
- else if (originType == ArkClass_1.ClassCategory.TYPE_LITERAL || originType == ArkClass_1.ClassCategory.OBJECT) {
254
+ else if (originType === ArkClass_1.ClassCategory.TYPE_LITERAL || originType === ArkClass_1.ClassCategory.OBJECT) {
248
255
  this.rightCode = `${this.transformer.literalObjectToString(this.rightOp.getType())}`;
249
256
  }
250
257
  else {
@@ -257,10 +264,10 @@ class SourceAssignStmt extends SourceStmt {
257
264
  this.context.getStmtReader().rollback();
258
265
  }
259
266
  }
260
- if (originType == SourceUtils_1.CLASS_CATEGORY_COMPONENT) {
267
+ if (originType === SourceUtils_1.CLASS_CATEGORY_COMPONENT) {
261
268
  this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}()`;
262
269
  }
263
- else if (originType == ArkClass_1.ClassCategory.TYPE_LITERAL || originType == ArkClass_1.ClassCategory.OBJECT) {
270
+ else if (originType === ArkClass_1.ClassCategory.TYPE_LITERAL || originType === ArkClass_1.ClassCategory.OBJECT) {
264
271
  this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}`;
265
272
  }
266
273
  else {
@@ -280,7 +287,7 @@ class SourceAssignStmt extends SourceStmt {
280
287
  let stmt = this.context.getStmtReader().next();
281
288
  if (stmt instanceof Stmt_1.ArkAssignStmt) {
282
289
  let left = stmt.getLeftOp();
283
- if (left instanceof Ref_1.ArkArrayRef && left.getBase().getName() == localName) {
290
+ if (left instanceof Ref_1.ArkArrayRef && left.getBase().getName() === localName) {
284
291
  arrayExpr.addInitValue(this.transformer.valueToString(stmt.getRightOp()));
285
292
  }
286
293
  else {
@@ -393,7 +400,7 @@ class SourceWhileStmt extends SourceStmt {
393
400
  /**
394
401
  * $temp2 = $temp1.next()
395
402
  * $temp3 = $temp2.done()
396
- * if $temp3 == true
403
+ * if $temp3 === true
397
404
  * $temp4 = $temp2.value
398
405
  * $temp5 = <> cast
399
406
  * @returns
@@ -406,7 +413,7 @@ class SourceWhileStmt extends SourceStmt {
406
413
  if (!(firstStmt instanceof Stmt_1.ArkAssignStmt)) {
407
414
  return false;
408
415
  }
409
- if (!(this.isLocalTempValue(temp3) && op2 instanceof Constant_1.Constant && op2.getValue() == 'true')) {
416
+ if (!(this.isLocalTempValue(temp3) && op2 instanceof Constant_1.Constant && op2.getValue() === 'true')) {
410
417
  return false;
411
418
  }
412
419
  let stmt = temp3.getDeclaringStmt();
@@ -417,7 +424,7 @@ class SourceWhileStmt extends SourceStmt {
417
424
  if (!(done instanceof Ref_1.ArkInstanceFieldRef)) {
418
425
  return false;
419
426
  }
420
- if (done.getFieldSignature().toString() != '@ES2015/BuiltinClass: IteratorResult.done') {
427
+ if (done.getFieldSignature().toString() !== '@ES2015/BuiltinClass: IteratorResult.done') {
421
428
  return false;
422
429
  }
423
430
  let temp2 = done.getBase();
@@ -432,7 +439,7 @@ class SourceWhileStmt extends SourceStmt {
432
439
  if (!(next instanceof Expr_1.ArkInstanceInvokeExpr)) {
433
440
  return false;
434
441
  }
435
- if (next.getMethodSignature().getMethodSubSignature().getMethodName() != 'next') {
442
+ if (next.getMethodSignature().getMethodSubSignature().getMethodName() !== 'next') {
436
443
  return false;
437
444
  }
438
445
  let temp1 = next.getBase();
@@ -447,11 +454,11 @@ class SourceWhileStmt extends SourceStmt {
447
454
  if (!(iterator instanceof Expr_1.ArkInstanceInvokeExpr)) {
448
455
  return false;
449
456
  }
450
- if (iterator.getMethodSignature().getMethodSubSignature().getMethodName() != 'iterator') {
457
+ if (iterator.getMethodSignature().getMethodSubSignature().getMethodName() !== 'iterator') {
451
458
  return false;
452
459
  }
453
460
  let successors = this.block.getSuccessors();
454
- if (successors.length != 2) {
461
+ if (successors.length !== 2) {
455
462
  return false;
456
463
  }
457
464
  let stmts = successors[0].getStmts();
@@ -489,7 +496,7 @@ class SourceWhileStmt extends SourceStmt {
489
496
  if (!(ref instanceof Ref_1.ArkArrayRef)) {
490
497
  break;
491
498
  }
492
- if (ref.getBase().getName() != valueName) {
499
+ if (ref.getBase().getName() !== valueName) {
493
500
  break;
494
501
  }
495
502
  let name = stmt.getLeftOp().getName();
@@ -520,12 +527,12 @@ class SourceWhileStmt extends SourceStmt {
520
527
  continue;
521
528
  }
522
529
  if (SourceUtils_1.SourceUtils.isDeIncrementStmt(stmt, Expr_1.NormalBinaryOperator.Addition) &&
523
- stmt.getLeftOp().getName() == value.getName()) {
530
+ stmt.getLeftOp().getName() === value.getName()) {
524
531
  this.context.setSkipStmt(stmt);
525
532
  return `${value.getName()}++`;
526
533
  }
527
534
  if (SourceUtils_1.SourceUtils.isDeIncrementStmt(stmt, Expr_1.NormalBinaryOperator.Subtraction) &&
528
- stmt.getLeftOp().getName() == value.getName()) {
535
+ stmt.getLeftOp().getName() === value.getName()) {
529
536
  this.context.setSkipStmt(stmt);
530
537
  return `${value.getName()}--`;
531
538
  }
@@ -718,7 +725,12 @@ class SourceTypeAliasStmt extends SourceStmt {
718
725
  this.aliasType = aliasType;
719
726
  }
720
727
  transfer2ts() {
721
- this.setText(`type ${this.aliasType.getName()} = ${this.transformer.typeToString(this.aliasType.getOriginalType())};`);
728
+ let modifier = '';
729
+ let modifiersArray = (0, ArkBaseModel_1.modifiers2stringArray)(this.aliasType.getModifiers());
730
+ if (modifiersArray.length > 0) {
731
+ modifier = `${modifiersArray.join(' ')} `;
732
+ }
733
+ this.setText(`${modifier}type ${this.aliasType.getName()} = ${this.transformer.typeToString(this.aliasType.getOriginalType())};`);
722
734
  }
723
735
  }
724
736
  exports.SourceTypeAliasStmt = SourceTypeAliasStmt;
@@ -26,6 +26,7 @@ export declare class SourceTransformer {
26
26
  private anonymousClassToString;
27
27
  instanceInvokeExprToString(invokeExpr: ArkInstanceInvokeExpr): string;
28
28
  staticInvokeExprToString(invokeExpr: ArkStaticInvokeExpr): string;
29
+ private genericTypesToString;
29
30
  typeArrayToString(types: Type[], split?: string): string;
30
31
  static constToString(value: Constant): string;
31
32
  private exprToString;
@@ -33,5 +34,10 @@ export declare class SourceTransformer {
33
34
  valueToString(value: Value, operator?: string): string;
34
35
  literalObjectToString(type: ClassType): string;
35
36
  typeToString(type: Type): string;
37
+ private literalType2string;
38
+ private unionType2string;
39
+ private arrayType2string;
40
+ private unclearReferenceType2string;
41
+ private classType2string;
36
42
  }
37
43
  //# sourceMappingURL=SourceTransformer.d.ts.map
@@ -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,EAEH,SAAS,EAMT,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;AAI7D,MAAM,WAAW,kBAAkB;IAC/B,UAAU,IAAI,OAAO,CAAC;IACtB,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;IAiBrE,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM;IAwDjE,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,GAAE,MAAa,GAAG,MAAM;WASvD,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAQpD,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;CAmF1C"}
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,EAEH,SAAS,EAMT,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;AAI7D,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;IA0DxE,OAAO,CAAC,oBAAoB;IAYrB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,GAAE,MAAa,GAAG,MAAM;WASvD,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAQpD,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;IAoDvC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,gBAAgB;CAkB3B"}