arkanalyzer 1.0.7 → 1.0.9

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 (164) hide show
  1. package/config/arkanalyzer.json +8 -0
  2. package/lib/Config.d.ts +9 -1
  3. package/lib/Config.d.ts.map +1 -1
  4. package/lib/Config.js +24 -11
  5. package/lib/Scene.d.ts +49 -42
  6. package/lib/Scene.d.ts.map +1 -1
  7. package/lib/Scene.js +124 -93
  8. package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -1
  9. package/lib/callgraph/common/Statistics.js +1 -1
  10. package/lib/callgraph/model/CallGraph.d.ts +3 -2
  11. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  12. package/lib/callgraph/model/CallGraph.js +15 -5
  13. package/lib/callgraph/model/builder/CallGraphBuilder.js +1 -1
  14. package/lib/callgraph/pointerAnalysis/Pag.d.ts +35 -8
  15. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  16. package/lib/callgraph/pointerAnalysis/Pag.js +89 -8
  17. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +32 -5
  18. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  19. package/lib/callgraph/pointerAnalysis/PagBuilder.js +378 -83
  20. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +3 -0
  21. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  22. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +71 -18
  23. package/lib/core/base/Constant.d.ts +25 -5
  24. package/lib/core/base/Constant.d.ts.map +1 -1
  25. package/lib/core/base/Constant.js +46 -8
  26. package/lib/core/base/Expr.d.ts +45 -40
  27. package/lib/core/base/Expr.d.ts.map +1 -1
  28. package/lib/core/base/Expr.js +236 -150
  29. package/lib/core/base/Local.d.ts +2 -2
  30. package/lib/core/base/Local.d.ts.map +1 -1
  31. package/lib/core/base/Local.js +2 -2
  32. package/lib/core/base/Ref.d.ts +38 -37
  33. package/lib/core/base/Ref.d.ts.map +1 -1
  34. package/lib/core/base/Ref.js +102 -70
  35. package/lib/core/base/Stmt.d.ts +4 -0
  36. package/lib/core/base/Stmt.d.ts.map +1 -1
  37. package/lib/core/base/Stmt.js +12 -1
  38. package/lib/core/base/Type.d.ts +4 -0
  39. package/lib/core/base/Type.d.ts.map +1 -1
  40. package/lib/core/base/Type.js +41 -17
  41. package/lib/core/common/ArkError.d.ts +15 -0
  42. package/lib/core/common/ArkError.d.ts.map +1 -0
  43. package/lib/core/common/ArkError.js +28 -0
  44. package/lib/core/common/ArkIRTransformer.d.ts +1 -1
  45. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  46. package/lib/core/common/ArkIRTransformer.js +24 -8
  47. package/lib/core/common/CfgBuilder.d.ts.map +1 -1
  48. package/lib/core/common/CfgBuilder.js +5 -0
  49. package/lib/core/common/Const.d.ts +15 -10
  50. package/lib/core/common/Const.d.ts.map +1 -1
  51. package/lib/core/common/Const.js +18 -11
  52. package/lib/core/common/DummyMainCreater.d.ts +2 -1
  53. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  54. package/lib/core/common/DummyMainCreater.js +28 -15
  55. package/lib/core/common/EtsConst.d.ts +1 -0
  56. package/lib/core/common/EtsConst.d.ts.map +1 -1
  57. package/lib/core/common/EtsConst.js +2 -1
  58. package/lib/core/common/IRUtils.d.ts +6 -0
  59. package/lib/core/common/IRUtils.d.ts.map +1 -1
  60. package/lib/core/common/IRUtils.js +29 -2
  61. package/lib/core/common/ModelUtils.d.ts +1 -0
  62. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  63. package/lib/core/common/ModelUtils.js +32 -32
  64. package/lib/core/common/TSConst.d.ts +10 -3
  65. package/lib/core/common/TSConst.d.ts.map +1 -1
  66. package/lib/core/common/TSConst.js +11 -4
  67. package/lib/core/common/TypeInference.d.ts +8 -2
  68. package/lib/core/common/TypeInference.d.ts.map +1 -1
  69. package/lib/core/common/TypeInference.js +218 -87
  70. package/lib/core/common/ValueUtil.d.ts +0 -4
  71. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  72. package/lib/core/common/ValueUtil.js +8 -25
  73. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
  74. package/lib/core/dataflow/DataflowSolver.js +2 -4
  75. package/lib/core/dataflow/TiantAnalysis.js +2 -1
  76. package/lib/core/dataflow/Util.d.ts +1 -1
  77. package/lib/core/dataflow/Util.d.ts.map +1 -1
  78. package/lib/core/dataflow/Util.js +8 -7
  79. package/lib/core/graph/BasicBlock.d.ts +41 -0
  80. package/lib/core/graph/BasicBlock.d.ts.map +1 -1
  81. package/lib/core/graph/BasicBlock.js +132 -1
  82. package/lib/core/graph/Cfg.d.ts +30 -1
  83. package/lib/core/graph/Cfg.d.ts.map +1 -1
  84. package/lib/core/graph/Cfg.js +129 -6
  85. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  86. package/lib/core/graph/builder/ViewTreeBuilder.js +3 -2
  87. package/lib/core/model/ArkBaseModel.d.ts +8 -0
  88. package/lib/core/model/ArkBaseModel.d.ts.map +1 -1
  89. package/lib/core/model/ArkBaseModel.js +55 -3
  90. package/lib/core/model/ArkClass.d.ts +36 -30
  91. package/lib/core/model/ArkClass.d.ts.map +1 -1
  92. package/lib/core/model/ArkClass.js +78 -39
  93. package/lib/core/model/ArkExport.d.ts +3 -0
  94. package/lib/core/model/ArkExport.d.ts.map +1 -1
  95. package/lib/core/model/ArkExport.js +10 -0
  96. package/lib/core/model/ArkField.d.ts +2 -0
  97. package/lib/core/model/ArkField.d.ts.map +1 -1
  98. package/lib/core/model/ArkField.js +3 -0
  99. package/lib/core/model/ArkFile.d.ts +4 -0
  100. package/lib/core/model/ArkFile.d.ts.map +1 -1
  101. package/lib/core/model/ArkFile.js +20 -0
  102. package/lib/core/model/ArkImport.d.ts +2 -0
  103. package/lib/core/model/ArkImport.d.ts.map +1 -1
  104. package/lib/core/model/ArkImport.js +3 -0
  105. package/lib/core/model/ArkMetadata.d.ts +20 -0
  106. package/lib/core/model/ArkMetadata.d.ts.map +1 -0
  107. package/lib/core/model/ArkMetadata.js +44 -0
  108. package/lib/core/model/ArkMethod.d.ts +156 -53
  109. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  110. package/lib/core/model/ArkMethod.js +309 -54
  111. package/lib/core/model/ArkNamespace.d.ts +4 -0
  112. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  113. package/lib/core/model/ArkNamespace.js +13 -0
  114. package/lib/core/model/ArkSignature.d.ts +11 -5
  115. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  116. package/lib/core/model/ArkSignature.js +38 -18
  117. package/lib/core/model/builder/ArkClassBuilder.d.ts +0 -1
  118. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  119. package/lib/core/model/builder/ArkClassBuilder.js +9 -34
  120. package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
  121. package/lib/core/model/builder/ArkExportBuilder.js +6 -1
  122. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  123. package/lib/core/model/builder/ArkFieldBuilder.js +3 -0
  124. package/lib/core/model/builder/ArkFileBuilder.js +1 -1
  125. package/lib/core/model/builder/ArkImportBuilder.d.ts +2 -1
  126. package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -1
  127. package/lib/core/model/builder/ArkImportBuilder.js +12 -5
  128. package/lib/core/model/builder/ArkMethodBuilder.d.ts +2 -1
  129. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  130. package/lib/core/model/builder/ArkMethodBuilder.js +87 -47
  131. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  132. package/lib/core/model/builder/ArkNamespaceBuilder.js +2 -0
  133. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  134. package/lib/core/model/builder/builderUtils.js +25 -2
  135. package/lib/save/source/SourceClass.d.ts.map +1 -1
  136. package/lib/save/source/SourceClass.js +4 -0
  137. package/lib/save/source/SourceField.d.ts.map +1 -1
  138. package/lib/save/source/SourceField.js +4 -0
  139. package/lib/save/source/SourceMethod.d.ts.map +1 -1
  140. package/lib/save/source/SourceMethod.js +7 -0
  141. package/lib/save/source/SourceModule.d.ts.map +1 -1
  142. package/lib/save/source/SourceModule.js +14 -9
  143. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  144. package/lib/save/source/SourceNamespace.js +4 -0
  145. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  146. package/lib/save/source/SourceStmt.js +15 -3
  147. package/lib/save/source/SourceTransformer.d.ts +6 -0
  148. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  149. package/lib/save/source/SourceTransformer.js +72 -41
  150. package/lib/save/source/SourceUtils.d.ts.map +1 -1
  151. package/lib/save/source/SourceUtils.js +3 -2
  152. package/lib/transformer/StaticSingleAssignmentFormer.js +1 -1
  153. package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
  154. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
  155. package/lib/utils/CfgStructualAnalysis.js +41 -7
  156. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  157. package/lib/utils/callGraphUtils.js +7 -10
  158. package/lib/utils/crypto_utils.d.ts +6 -0
  159. package/lib/utils/crypto_utils.d.ts.map +1 -0
  160. package/lib/utils/crypto_utils.js +57 -0
  161. package/lib/utils/getAllFiles.d.ts +1 -1
  162. package/lib/utils/getAllFiles.d.ts.map +1 -1
  163. package/lib/utils/getAllFiles.js +4 -5
  164. package/package.json +3 -2
@@ -1,7 +1,13 @@
1
1
  import { Value } from '../base/Value';
2
2
  import { Scene } from '../../Scene';
3
+ import ts from 'ohos-typescript';
4
+ import { SceneOptions } from '../../Config';
5
+ import { Stmt } from '../base/Stmt';
6
+ import { ArkBaseModel } from '../model/ArkBaseModel';
3
7
  export declare class IRUtils {
4
8
  static moreThanOneAddress(value: Value): boolean;
5
9
  static generateTextForStmt(scene: Scene): void;
10
+ static setLeadingComments(metadata: Stmt | ArkBaseModel, node: ts.Node, sourceFile: ts.SourceFile, options: SceneOptions): void;
11
+ static getLeadingComments(node: ts.Node, sourceFile: ts.SourceFile, options: SceneOptions): string[];
6
12
  }
7
13
  //# sourceMappingURL=IRUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IRUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/IRUtils.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,qBAAa,OAAO;IAChB,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAQhD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAUjD"}
1
+ {"version":3,"file":"IRUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/IRUtils.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,OAAO;IAChB,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAchD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAW9C,MAAM,CAAC,kBAAkB,CACrB,QAAQ,EAAE,IAAI,GAAG,YAAY,EAC7B,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,OAAO,EAAE,YAAY,GACtB,IAAI;IAOP,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE;CAYvG"}
@@ -13,14 +13,23 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
16
19
  Object.defineProperty(exports, "__esModule", { value: true });
17
20
  exports.IRUtils = void 0;
18
21
  const Expr_1 = require("../base/Expr");
19
22
  const Ref_1 = require("../base/Ref");
23
+ const ohos_typescript_1 = __importDefault(require("ohos-typescript"));
24
+ const ArkMetadata_1 = require("../model/ArkMetadata");
20
25
  class IRUtils {
21
26
  static moreThanOneAddress(value) {
22
- if (value instanceof Expr_1.AbstractBinopExpr || value instanceof Expr_1.AbstractInvokeExpr || value instanceof Ref_1.AbstractFieldRef ||
23
- value instanceof Ref_1.ArkArrayRef || value instanceof Expr_1.ArkCastExpr || value instanceof Expr_1.ArkUnopExpr) {
27
+ if (value instanceof Expr_1.AbstractBinopExpr ||
28
+ value instanceof Expr_1.AbstractInvokeExpr ||
29
+ value instanceof Ref_1.AbstractFieldRef ||
30
+ value instanceof Ref_1.ArkArrayRef ||
31
+ value instanceof Expr_1.ArkCastExpr ||
32
+ value instanceof Expr_1.ArkUnopExpr) {
24
33
  return true;
25
34
  }
26
35
  return false;
@@ -35,5 +44,23 @@ class IRUtils {
35
44
  }
36
45
  }
37
46
  }
47
+ static setLeadingComments(metadata, node, sourceFile, options) {
48
+ let comments = this.getLeadingComments(node, sourceFile, options);
49
+ if (comments.length > 0) {
50
+ metadata.setMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS, comments);
51
+ }
52
+ }
53
+ static getLeadingComments(node, sourceFile, options) {
54
+ let comments = [];
55
+ if (!options.enableLeadingComments) {
56
+ return comments;
57
+ }
58
+ const commentRanges = ohos_typescript_1.default.getLeadingCommentRanges(node.getFullText(sourceFile), 0) || [];
59
+ for (const range of commentRanges) {
60
+ const comment = node.getFullText(sourceFile).slice(range.pos, range.end).replace(/\r\n/g, '\n');
61
+ comments.push(comment);
62
+ }
63
+ return comments;
64
+ }
38
65
  }
39
66
  exports.IRUtils = IRUtils;
@@ -57,5 +57,6 @@ export declare function getArkFile(im: FromInfo): ArkFile | null | undefined;
57
57
  * @param fromInfo importInfo or exportInfo
58
58
  */
59
59
  export declare function findExportInfo(fromInfo: FromInfo): ExportInfo | null;
60
+ export declare function findArkExport(exportInfo: ExportInfo | undefined): ArkExport | null;
60
61
  export declare function findArkExportInFile(name: string, declaringArkFile: ArkFile): ArkExport | null;
61
62
  //# sourceMappingURL=ModelUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/ModelUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAiB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAS7C,OAAO,EAAE,SAAS,EAAwB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,qBAAa,UAAU;IACnB,OAAc,2BAA2B,EAAE,GAAG,CAAC,SAAS,CAAC,CAAa;WAExD,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;WAS9F,sCAAsC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI;WAiB5F,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI;IAwBhG;;OAEG;WACW,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI;IAWvF,yCAAyC;WAC3B,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI;WAQ5E,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI;IAQhG,qDAAqD;WACvC,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAIhG,kEAAkE;WACpD,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;WA2B7E,6BAA6B,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI;WAc9F,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI;WAYrF,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;WASxF,gCAAgC,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;WAQ9F,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;WAelF,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;WAWrF,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;WAQ3F,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI;WAS/E,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE;WASxD,2BAA2B,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI;WAO5F,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE;WAQjD,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE;WAQlD,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;WAiBnD,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI;WAUvE,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI;WAIpD,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI;WA2BvE,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS;WASrF,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI;WAgBlF,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;CAiDvF;AAOD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAwBnE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAmBpE;AAgCD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAgB7F"}
1
+ {"version":3,"file":"ModelUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/ModelUtils.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
40
40
  return (mod && mod.__esModule) ? mod : { "default": mod };
41
41
  };
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.findArkExportInFile = exports.findExportInfo = exports.getArkFile = exports.ModelUtils = void 0;
43
+ exports.findArkExportInFile = exports.findArkExport = exports.findExportInfo = exports.getArkFile = exports.ModelUtils = void 0;
44
44
  const Local_1 = require("../base/Local");
45
45
  const ArkClass_1 = require("../model/ArkClass");
46
46
  const ArkMethod_1 = require("../model/ArkMethod");
@@ -50,12 +50,12 @@ const ArkExport_1 = require("../model/ArkExport");
50
50
  const logger_1 = __importStar(require("../../utils/logger"));
51
51
  const FileUtils_1 = require("../../utils/FileUtils");
52
52
  const path_1 = __importDefault(require("path"));
53
- const pathTransfer_1 = require("../../utils/pathTransfer");
54
53
  const TSConst_1 = require("./TSConst");
55
54
  const ArkExportBuilder_1 = require("../model/builder/ArkExportBuilder");
56
55
  const EtsConst_1 = require("./EtsConst");
57
56
  const Type_1 = require("../base/Type");
58
- const ArkClassBuilder_1 = require("../model/builder/ArkClassBuilder");
57
+ const ArkMethodBuilder_1 = require("../model/builder/ArkMethodBuilder");
58
+ const Const_1 = require("./Const");
59
59
  class ModelUtils {
60
60
  static getMethodSignatureFromArkClass(arkClass, methodName) {
61
61
  for (const arkMethod of arkClass.getMethods()) {
@@ -209,7 +209,7 @@ class ModelUtils {
209
209
  static getStaticMethodWithName(methodName, thisClass) {
210
210
  const thisNamespace = thisClass.getDeclaringArkNamespace();
211
211
  if (thisNamespace) {
212
- const defaultClass = thisNamespace.getClassWithName('_DEFAULT_ARK_CLASS');
212
+ const defaultClass = thisNamespace.getClassWithName(Const_1.DEFAULT_ARK_CLASS_NAME);
213
213
  if (defaultClass) {
214
214
  const method = defaultClass.getMethodWithName(methodName);
215
215
  if (method) {
@@ -220,7 +220,7 @@ class ModelUtils {
220
220
  return this.getStaticMethodInFileWithName(methodName, thisClass.getDeclaringArkFile());
221
221
  }
222
222
  static getStaticMethodInFileWithName(methodName, arkFile) {
223
- const defaultClass = arkFile.getClasses().find(cls => cls.getName() === '_DEFAULT_ARK_CLASS') || null;
223
+ const defaultClass = arkFile.getClasses().find(cls => cls.getName() === Const_1.DEFAULT_ARK_CLASS_NAME) || null;
224
224
  if (defaultClass) {
225
225
  let method = defaultClass.getMethodWithName(methodName);
226
226
  if (method) {
@@ -328,14 +328,15 @@ class ModelUtils {
328
328
  return (_j = (_e = (_d = (_c = (_b = (_a = namespace.getDefaultClass()) === null || _a === void 0 ? void 0 : _a.getMethodWithName(name)) !== null && _b !== void 0 ? _b : findArkExport(namespace.getExportInfoBy(name))) !== null && _c !== void 0 ? _c : namespace.getClassWithName(name)) !== null && _d !== void 0 ? _d : namespace.getNamespaceWithName(name)) !== null && _e !== void 0 ? _e : (_h = (_g = (_f = namespace.getDefaultClass()) === null || _f === void 0 ? void 0 : _f.getDefaultArkMethod()) === null || _g === void 0 ? void 0 : _g.getBody()) === null || _h === void 0 ? void 0 : _h.getAliasTypeByName(name)) !== null && _j !== void 0 ? _j : (_o = (_m = (_l = (_k = namespace.getDefaultClass()) === null || _k === void 0 ? void 0 : _k.getDefaultArkMethod()) === null || _l === void 0 ? void 0 : _l.getBody()) === null || _m === void 0 ? void 0 : _m.getLocals()) === null || _o === void 0 ? void 0 : _o.get(name);
329
329
  }
330
330
  static findPropertyInClass(name, arkClass) {
331
- var _a, _b, _c, _d;
332
- let arkMethod = (_b = (_a = arkClass.getMethodWithName(name)) !== null && _a !== void 0 ? _a : arkClass.getStaticMethodWithName(name)) !== null && _b !== void 0 ? _b : (_c = arkClass.getSuperClass()) === null || _c === void 0 ? void 0 : _c.getMethodWithName(name);
333
- if (arkMethod) {
334
- return arkMethod;
335
- }
336
- const arkField = (_d = arkClass.getFieldWithName(name)) !== null && _d !== void 0 ? _d : arkClass.getStaticFieldWithName(name);
337
- if (arkField) {
338
- return arkField;
331
+ var _a, _b, _c;
332
+ let property;
333
+ let currentClass = arkClass;
334
+ do {
335
+ property = (_c = (_b = (_a = currentClass.getMethodWithName(name)) !== null && _a !== void 0 ? _a : currentClass.getStaticMethodWithName(name)) !== null && _b !== void 0 ? _b : currentClass.getFieldWithName(name)) !== null && _c !== void 0 ? _c : currentClass.getStaticFieldWithName(name);
336
+ currentClass = currentClass.getSuperClass();
337
+ } while (!property && currentClass);
338
+ if (property) {
339
+ return property;
339
340
  }
340
341
  if (arkClass.isDefaultArkClass()) {
341
342
  return findArkExport(arkClass.getDeclaringArkFile().getExportInfoBy(name));
@@ -346,8 +347,10 @@ class ModelUtils {
346
347
  var _a, _b;
347
348
  if (file.getFilePath().includes(EtsConst_1.COMPONENT_PATH) || file.getFilePath().includes(EtsConst_1.API_INTERNAL)) {
348
349
  this.getAllClassesInFile(file).forEach(cls => {
349
- if (!cls.isAnonymousClass()) {
350
+ if (!cls.isAnonymousClass() && !cls.isDefaultArkClass()) {
350
351
  globalMap.set(cls.getName(), cls);
352
+ }
353
+ if (cls.isDefaultArkClass()) {
351
354
  cls.getMethods().forEach(mtd => {
352
355
  if (!mtd.isDefaultArkMethod() && !mtd.isAnonymousMethod()) {
353
356
  globalMap.set(mtd.getName(), mtd);
@@ -357,7 +360,7 @@ class ModelUtils {
357
360
  });
358
361
  (_b = (_a = file.getDefaultClass().getDefaultArkMethod()) === null || _a === void 0 ? void 0 : _a.getBody()) === null || _b === void 0 ? void 0 : _b.getLocals().forEach(local => {
359
362
  const name = local.getName();
360
- if (name !== TSConst_1.THIS_NAME && !name.startsWith(TSConst_1.TEMP_LOCAL_PREFIX) && !name.endsWith(EtsConst_1.COMPONENT_INSTANCE)) {
363
+ if (name !== TSConst_1.THIS_NAME && !name.startsWith(Const_1.TEMP_LOCAL_PREFIX) && !name.endsWith(EtsConst_1.COMPONENT_INSTANCE)) {
361
364
  const type = local.getType();
362
365
  let arkExport;
363
366
  if (type instanceof Type_1.UnclearReferenceType) {
@@ -372,16 +375,16 @@ class ModelUtils {
372
375
  entry.setSignature(signature);
373
376
  arkExport.getMethods().forEach(m => {
374
377
  const ms = m.getSignature();
375
- m.setSignature(new ArkSignature_1.MethodSignature(signature, ms.getMethodSubSignature()));
376
- (0, ArkClassBuilder_1.checkAndUpdateMethod)(m, entry);
378
+ m.setDeclareSignatures(new ArkSignature_1.MethodSignature(signature, ms.getMethodSubSignature()));
379
+ (0, ArkMethodBuilder_1.checkAndUpdateMethod)(m, entry);
377
380
  entry.addMethod(m);
378
381
  });
379
382
  const attr = globalMap.get(name + EtsConst_1.COMPONENT_ATTRIBUTE);
380
383
  if (attr instanceof ArkClass_1.ArkClass) {
381
384
  attr.getMethods().forEach(m => {
382
385
  const ms = m.getSignature();
383
- m.setSignature(new ArkSignature_1.MethodSignature(signature, ms.getMethodSubSignature()));
384
- (0, ArkClassBuilder_1.checkAndUpdateMethod)(m, entry);
386
+ m.setDeclareSignatures(new ArkSignature_1.MethodSignature(signature, ms.getMethodSubSignature()));
387
+ (0, ArkMethodBuilder_1.checkAndUpdateMethod)(m, entry);
385
388
  entry.addMethod(m);
386
389
  });
387
390
  }
@@ -396,7 +399,7 @@ exports.ModelUtils = ModelUtils;
396
399
  ModelUtils.implicitArkUIBuilderMethods = new Set();
397
400
  const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'ModelUtils');
398
401
  let moduleMap;
399
- const fileSuffixArray = ['.ets: ', '.ts: ', '.d.ets: ', '.d.ts: '];
402
+ const fileSuffixArray = ['.ets', '.ts', '.d.ets', '.d.ts'];
400
403
  /**
401
404
  * find arkFile by from info
402
405
  * export xx from '../xx'
@@ -424,7 +427,7 @@ function getArkFile(im) {
424
427
  //sdk path
425
428
  const scene = im.getDeclaringArkFile().getScene();
426
429
  for (const sdk of scene.getProjectSdkMap().values()) {
427
- const arkFile = getArkFileFormMap(processSdkPath(sdk, from), scene.getSdkArkFilesMap());
430
+ const arkFile = getArkFileFormMap(sdk.name, processSdkPath(sdk, from), scene);
428
431
  if (arkFile) {
429
432
  return arkFile;
430
433
  }
@@ -490,6 +493,7 @@ function findArkExport(exportInfo) {
490
493
  }
491
494
  return arkExport || null;
492
495
  }
496
+ exports.findArkExport = findArkExport;
493
497
  function findArkExportInFile(name, declaringArkFile) {
494
498
  var _a, _b, _c, _d, _e, _f, _g, _h;
495
499
  let arkExport = (_f = (_c = (_b = (_a = declaringArkFile.getClassWithName(name)) !== null && _a !== void 0 ? _a : declaringArkFile.getDefaultClass().getMethodWithName(name)) !== null && _b !== void 0 ? _b : declaringArkFile.getNamespaceWithName(name)) !== null && _c !== void 0 ? _c : (_e = (_d = declaringArkFile.getDefaultClass().getDefaultArkMethod()) === null || _d === void 0 ? void 0 : _d.getBody()) === null || _e === void 0 ? void 0 : _e.getLocals().get(name)) !== null && _f !== void 0 ? _f : (_h = (_g = declaringArkFile.getDefaultClass().getDefaultArkMethod()) === null || _g === void 0 ? void 0 : _g.getBody()) === null || _h === void 0 ? void 0 : _h.getAliasTypeByName(name);
@@ -506,7 +510,6 @@ function findArkExportInFile(name, declaringArkFile) {
506
510
  }
507
511
  exports.findArkExportInFile = findArkExportInFile;
508
512
  function processSdkPath(sdk, formPath) {
509
- const sdkName = sdk.name;
510
513
  let dir;
511
514
  if (formPath.startsWith('@ohos.') || formPath.startsWith('@hms.') || formPath.startsWith('@system.')) {
512
515
  dir = 'api';
@@ -522,9 +525,9 @@ function processSdkPath(sdk, formPath) {
522
525
  if (FileUtils_1.FileUtils.isDirectory(originPath)) {
523
526
  formPath = path_1.default.join(formPath, FileUtils_1.FileUtils.getIndexFileName(originPath));
524
527
  }
525
- return `@${sdkName}/${formPath}`;
528
+ return `${formPath}`;
526
529
  }
527
- return `@${sdkName}/${dir}/${formPath}`;
530
+ return `${dir}/${formPath}`;
528
531
  }
529
532
  function getArkFileFromScene(im, originPath) {
530
533
  if (FileUtils_1.FileUtils.isDirectory(originPath)) {
@@ -537,22 +540,19 @@ function getArkFileFromScene(im, originPath) {
537
540
  return scene.getFile(fromSignature);
538
541
  }
539
542
  const projectName = im.getDeclaringArkFile().getProjectName();
540
- const filePath = `@${projectName}/${fileName}`;
541
- if (projectName !== scene.getProjectName()) {
542
- return getArkFileFormMap(filePath, scene.getSdkArkFilesMap());
543
- }
544
- return getArkFileFormMap(filePath, scene.getFilesMap());
543
+ return getArkFileFormMap(projectName, fileName, scene);
545
544
  }
546
- function getArkFileFormMap(filePath, map) {
545
+ function getArkFileFormMap(projectName, filePath, scene) {
547
546
  if (/\.e?ts$/.test(filePath)) {
548
- return map.get((0, pathTransfer_1.transfer2UnixPath)(filePath) + ': ');
547
+ return scene.getFile(new ArkSignature_1.FileSignature(projectName, filePath));
549
548
  }
550
549
  for (const suffix of fileSuffixArray) {
551
- const arkFile = map.get((0, pathTransfer_1.transfer2UnixPath)(filePath) + suffix);
550
+ const arkFile = scene.getFile(new ArkSignature_1.FileSignature(projectName, filePath + suffix));
552
551
  if (arkFile) {
553
552
  return arkFile;
554
553
  }
555
554
  }
555
+ return null;
556
556
  }
557
557
  function findExportInfoInfile(fromInfo, file) {
558
558
  const exportName = fromInfo.isDefault() ? TSConst_1.DEFAULT : fromInfo.getOriginName();
@@ -1,11 +1,18 @@
1
1
  export declare const CONSTRUCTOR_NAME = "constructor";
2
2
  export declare const SUPER_NAME = "super";
3
3
  export declare const THIS_NAME = "this";
4
+ export declare const GLOBAL_THIS: string;
4
5
  export declare const DEFAULT = "default";
5
6
  export declare const ALL = "*";
6
7
  export declare const IMPORT = "import";
7
8
  export declare const DECLARE_KEYWORD = "DeclareKeyword";
8
- export declare const ABSTRACT_KEYWORD = "AbstractKeyword";
9
- export declare const STATIC_KEYWORD = "StaticKeyword";
10
- export declare const TEMP_LOCAL_PREFIX = "$temp";
9
+ export declare const NULL_KEYWORD = "null";
10
+ export declare const UNDEFINED_KEYWORD = "undefined";
11
+ export declare const ANY_KEYWORD = "any";
12
+ export declare const UNKNOWN_KEYWORD = "unknown";
13
+ export declare const BOOLEAN_KEYWORD = "boolean";
14
+ export declare const NUMBER_KEYWORD = "number";
15
+ export declare const STRING_KEYWORD = "string";
16
+ export declare const VOID_KEYWORD = "void";
17
+ export declare const NEVER_KEYWORD = "never";
11
18
  //# sourceMappingURL=TSConst.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TSConst.d.ts","sourceRoot":"","sources":["../../../src/core/common/TSConst.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,SAAS,SAAS,CAAC;AAEhC,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,GAAG,MAAM,CAAC;AAEvB,eAAO,MAAM,MAAM,WAAW,CAAC;AAG/B,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAClD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAE9C,eAAO,MAAM,iBAAiB,UAAU,CAAC"}
1
+ {"version":3,"file":"TSConst.d.ts","sourceRoot":"","sources":["../../../src/core/common/TSConst.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,WAAW,EAAE,MAAqB,CAAA;AAE/C,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,GAAG,MAAM,CAAC;AAEvB,eAAO,MAAM,MAAM,WAAW,CAAC;AAG/B,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,WAAW,QAAQ,CAAC;AACjC,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,aAAa,UAAU,CAAC"}
@@ -14,15 +14,22 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.TEMP_LOCAL_PREFIX = exports.STATIC_KEYWORD = exports.ABSTRACT_KEYWORD = exports.DECLARE_KEYWORD = exports.IMPORT = exports.ALL = exports.DEFAULT = exports.THIS_NAME = exports.SUPER_NAME = exports.CONSTRUCTOR_NAME = void 0;
17
+ exports.NEVER_KEYWORD = exports.VOID_KEYWORD = exports.STRING_KEYWORD = exports.NUMBER_KEYWORD = exports.BOOLEAN_KEYWORD = exports.UNKNOWN_KEYWORD = exports.ANY_KEYWORD = exports.UNDEFINED_KEYWORD = exports.NULL_KEYWORD = exports.DECLARE_KEYWORD = exports.IMPORT = exports.ALL = exports.DEFAULT = exports.GLOBAL_THIS = exports.THIS_NAME = exports.SUPER_NAME = exports.CONSTRUCTOR_NAME = void 0;
18
18
  exports.CONSTRUCTOR_NAME = 'constructor';
19
19
  exports.SUPER_NAME = 'super';
20
20
  exports.THIS_NAME = 'this';
21
+ exports.GLOBAL_THIS = 'globalThis';
21
22
  exports.DEFAULT = 'default';
22
23
  exports.ALL = '*';
23
24
  exports.IMPORT = 'import';
24
25
  // ast const
25
26
  exports.DECLARE_KEYWORD = 'DeclareKeyword';
26
- exports.ABSTRACT_KEYWORD = 'AbstractKeyword';
27
- exports.STATIC_KEYWORD = 'StaticKeyword';
28
- exports.TEMP_LOCAL_PREFIX = '$temp';
27
+ exports.NULL_KEYWORD = 'null';
28
+ exports.UNDEFINED_KEYWORD = 'undefined';
29
+ exports.ANY_KEYWORD = 'any';
30
+ exports.UNKNOWN_KEYWORD = 'unknown';
31
+ exports.BOOLEAN_KEYWORD = 'boolean';
32
+ exports.NUMBER_KEYWORD = 'number';
33
+ exports.STRING_KEYWORD = 'string';
34
+ exports.VOID_KEYWORD = 'void';
35
+ exports.NEVER_KEYWORD = 'never';
@@ -1,10 +1,11 @@
1
1
  import { Stmt } from '../base/Stmt';
2
- import { GenericType, Type } from '../base/Type';
2
+ import { GenericType, Type, UnclearReferenceType } from '../base/Type';
3
3
  import { ArkMethod } from '../model/ArkMethod';
4
4
  import { ArkExport } from '../model/ArkExport';
5
5
  import { ArkClass } from '../model/ArkClass';
6
6
  import { ArkField } from '../model/ArkField';
7
7
  import { Value } from '../base/Value';
8
+ import { ClassSignature } from '../model/ArkSignature';
8
9
  export declare class TypeInference {
9
10
  static inferTypeInArkField(arkField: ArkField): void;
10
11
  static inferUnclearedType(leftOpType: Type, declaringArkClass: ArkClass, rightType?: Type): Type | null | undefined;
@@ -23,6 +24,7 @@ export declare class TypeInference {
23
24
  * infer type for fieldRefs in stmt.
24
25
  */
25
26
  private static resolveFieldRefsInStmt;
27
+ private static processRef;
26
28
  static parseArkExport2Type(arkExport: ArkExport | undefined | null): Type | null;
27
29
  /**
28
30
  * infer and pass type for ArkAssignStmt right and left
@@ -33,12 +35,16 @@ export declare class TypeInference {
33
35
  static isUnclearType(type: Type | null | undefined): boolean;
34
36
  static inferSimpleTypeInStmt(stmt: Stmt): void;
35
37
  static buildTypeFromStr(typeStr: string): Type;
36
- static inferValueType(value: Value, arkClass: ArkClass): Type | null;
38
+ static inferValueType(value: Value, arkMethod: ArkMethod): Type | null;
37
39
  static inferMethodReturnType(method: ArkMethod): void;
40
+ private static inferSignatureReturnType;
38
41
  static inferGenericType(types: GenericType[] | undefined, arkClass: ArkClass): void;
42
+ static inferUnclearRefType(urType: UnclearReferenceType, arkClass: ArkClass): Type | null;
39
43
  static inferUnclearReferenceType(refName: string, arkClass: ArkClass): Type | null;
40
44
  static inferFieldType(baseType: Type, fieldName: string, declareClass: ArkClass): [any, Type] | null;
41
45
  static inferBaseType(baseName: string, arkClass: ArkClass): Type | null;
42
46
  static inferRealGenericTypes(realTypes: Type[] | undefined, arkClass: ArkClass): void;
47
+ static inferAnonymousClass(anon: ArkClass | null, declaredSignature: ClassSignature, set?: Set<string>): void;
48
+ private static assignAnonField;
43
49
  }
44
50
  //# sourceMappingURL=TypeInference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAgC,IAAI,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAQH,WAAW,EAKX,IAAI,EAMP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAatC,qBAAa,aAAa;WAER,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAqC7C,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI;WA6ClF,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAoB3D;;;OAGG;WACW,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAcjE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;WAiCvB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAkCvF;;;;OAIG;WACW,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WA8B1D,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS;WAU3C,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;WAcvC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;WA2BvC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAU7D,qBAAqB,CAAC,MAAM,EAAE,SAAS;WAwBvC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ;WAmBrE,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAoC3E,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI;WA4C7F,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAoBhE,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAc/F"}
1
+ {"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAgC,IAAI,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAQH,WAAW,EAKX,IAAI,EACJ,oBAAoB,EAKvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMtC,OAAO,EAAE,cAAc,EAAuC,MAAM,uBAAuB,CAAC;AAQ5F,qBAAa,aAAa;WAER,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAqC7C,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI;WA6ClF,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAsC3D;;;OAGG;WACW,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAcjE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAerC,OAAO,CAAC,MAAM,CAAC,UAAU;WAsBX,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAwBvF;;;;OAIG;WACW,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAuC1D,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS;WAgB3C,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;WAcvC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;WA2BvC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;WAU/D,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAgC5D,OAAO,CAAC,MAAM,CAAC,wBAAwB;WAkBzB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ;WAmBrE,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAmBlF,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAoC3E,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI;WAgD7F,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAoBhE,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAe9E,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,IAAI;IA+B/H,OAAO,CAAC,MAAM,CAAC,eAAe;CA8BjC"}