arkanalyzer 1.0.94 → 2.0.0-beta1

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 (291) hide show
  1. package/lib/Config.d.ts +7 -0
  2. package/lib/Config.d.ts.map +1 -1
  3. package/lib/Scene.d.ts +134 -170
  4. package/lib/Scene.d.ts.map +1 -1
  5. package/lib/Scene.js +412 -976
  6. package/lib/callgraph/algorithm/AbstractAnalysis.js +3 -2
  7. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +1 -1
  8. package/lib/callgraph/model/CallGraph.js +1 -1
  9. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +1 -3
  10. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
  11. package/lib/callgraph/pointerAnalysis/PTAUtils.js +17 -7
  12. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  13. package/lib/callgraph/pointerAnalysis/Pag.js +4 -14
  14. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  15. package/lib/callgraph/pointerAnalysis/PagBuilder.js +2 -1
  16. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  17. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +1 -2
  18. package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.d.ts.map +1 -1
  19. package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.js +0 -1
  20. package/lib/cli/commands/cg.d.ts +1 -0
  21. package/lib/cli/commands/cg.d.ts.map +1 -1
  22. package/lib/cli/commands/cg.js +22 -18
  23. package/lib/cli/commands/ir.d.ts +1 -0
  24. package/lib/cli/commands/ir.d.ts.map +1 -1
  25. package/lib/cli/commands/ir.js +5 -2
  26. package/lib/core/base/Constant.d.ts +5 -5
  27. package/lib/core/base/Constant.d.ts.map +1 -1
  28. package/lib/core/base/Constant.js +12 -9
  29. package/lib/core/base/Expr.d.ts +36 -20
  30. package/lib/core/base/Expr.d.ts.map +1 -1
  31. package/lib/core/base/Expr.js +206 -94
  32. package/lib/core/base/Local.d.ts +10 -20
  33. package/lib/core/base/Local.d.ts.map +1 -1
  34. package/lib/core/base/Local.js +25 -28
  35. package/lib/core/base/Position.d.ts +6 -0
  36. package/lib/core/base/Position.d.ts.map +1 -1
  37. package/lib/core/base/Position.js +37 -11
  38. package/lib/core/base/Ref.d.ts +45 -33
  39. package/lib/core/base/Ref.d.ts.map +1 -1
  40. package/lib/core/base/Ref.js +225 -51
  41. package/lib/core/base/Stmt.d.ts +19 -9
  42. package/lib/core/base/Stmt.d.ts.map +1 -1
  43. package/lib/core/base/Stmt.js +135 -52
  44. package/lib/core/base/Type.d.ts +67 -4
  45. package/lib/core/base/Type.d.ts.map +1 -1
  46. package/lib/core/base/Type.js +391 -20
  47. package/lib/core/base/TypeExpr.d.ts +6 -4
  48. package/lib/core/base/TypeExpr.d.ts.map +1 -1
  49. package/lib/core/base/TypeExpr.js +34 -10
  50. package/lib/core/base/Value.d.ts +20 -2
  51. package/lib/core/base/Value.d.ts.map +1 -1
  52. package/lib/core/base/Value.js +12 -0
  53. package/lib/core/common/ArkIRTransformer.d.ts +18 -0
  54. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  55. package/lib/core/common/ArkIRTransformer.js +94 -75
  56. package/lib/core/common/ArkValueTransformer.d.ts +21 -3
  57. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  58. package/lib/core/common/ArkValueTransformer.js +455 -265
  59. package/lib/core/common/Builtin.d.ts +48 -24
  60. package/lib/core/common/Builtin.d.ts.map +1 -1
  61. package/lib/core/common/Builtin.js +90 -52
  62. package/lib/core/common/CanonicalizerValidator.d.ts +308 -0
  63. package/lib/core/common/CanonicalizerValidator.d.ts.map +1 -0
  64. package/lib/core/common/CanonicalizerValidator.js +888 -0
  65. package/lib/core/common/Const.d.ts +3 -3
  66. package/lib/core/common/Const.d.ts.map +1 -1
  67. package/lib/core/common/Const.js +3 -3
  68. package/lib/core/common/DummyMainCreater.d.ts +2 -21
  69. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  70. package/lib/core/common/DummyMainCreater.js +8 -105
  71. package/lib/core/common/IRInference.d.ts +55 -3
  72. package/lib/core/common/IRInference.d.ts.map +1 -1
  73. package/lib/core/common/IRInference.js +407 -126
  74. package/lib/core/common/IRUtils.d.ts +1 -0
  75. package/lib/core/common/IRUtils.d.ts.map +1 -1
  76. package/lib/core/common/IRUtils.js +44 -13
  77. package/lib/core/common/ModelUtils.d.ts +44 -20
  78. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  79. package/lib/core/common/ModelUtils.js +378 -208
  80. package/lib/core/common/SdkUtils.d.ts +35 -5
  81. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  82. package/lib/core/common/SdkUtils.js +181 -53
  83. package/lib/core/common/SignatureCanonicalizer.d.ts +95 -0
  84. package/lib/core/common/SignatureCanonicalizer.d.ts.map +1 -0
  85. package/lib/core/common/SignatureCanonicalizer.js +116 -0
  86. package/lib/core/common/SignatureCanonicalizerRegistry.d.ts +176 -0
  87. package/lib/core/common/SignatureCanonicalizerRegistry.d.ts.map +1 -0
  88. package/lib/core/common/SignatureCanonicalizerRegistry.js +343 -0
  89. package/lib/core/common/SignatureModelCanonicalizer.d.ts +69 -0
  90. package/lib/core/common/SignatureModelCanonicalizer.d.ts.map +1 -0
  91. package/lib/core/common/SignatureModelCanonicalizer.js +109 -0
  92. package/lib/core/common/StmtUseReplacer.d.ts +1 -0
  93. package/lib/core/common/StmtUseReplacer.d.ts.map +1 -1
  94. package/lib/core/common/StmtUseReplacer.js +9 -0
  95. package/lib/core/common/StringUtils.d.ts +12 -1
  96. package/lib/core/common/StringUtils.d.ts.map +1 -1
  97. package/lib/core/common/StringUtils.js +36 -17
  98. package/lib/core/common/TempSignatureCanonicalizer.d.ts +82 -0
  99. package/lib/core/common/TempSignatureCanonicalizer.d.ts.map +1 -0
  100. package/lib/core/common/TempSignatureCanonicalizer.js +177 -0
  101. package/lib/core/common/TypeInference.d.ts +24 -6
  102. package/lib/core/common/TypeInference.d.ts.map +1 -1
  103. package/lib/core/common/TypeInference.js +243 -117
  104. package/lib/core/common/ValueUtil.d.ts +2 -1
  105. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  106. package/lib/core/common/ValueUtil.js +4 -1
  107. package/lib/core/graph/Cfg.d.ts.map +1 -1
  108. package/lib/core/graph/Cfg.js +21 -6
  109. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  110. package/lib/core/graph/builder/CfgBuilder.js +46 -33
  111. package/lib/core/graph/builder/IfBuilder.d.ts.map +1 -1
  112. package/lib/core/graph/builder/IfBuilder.js +6 -2
  113. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  114. package/lib/core/graph/builder/ViewTreeBuilder.js +6 -2
  115. package/lib/core/inference/ModelInference.d.ts +24 -4
  116. package/lib/core/inference/ModelInference.d.ts.map +1 -1
  117. package/lib/core/inference/ModelInference.js +273 -79
  118. package/lib/core/inference/ValueInference.d.ts +3 -2
  119. package/lib/core/inference/ValueInference.d.ts.map +1 -1
  120. package/lib/core/inference/ValueInference.js +90 -40
  121. package/lib/core/inference/abc/AbcInference.d.ts.map +1 -1
  122. package/lib/core/inference/abc/AbcInference.js +28 -15
  123. package/lib/core/inference/arkts/ArkTsInference.d.ts +9 -3
  124. package/lib/core/inference/arkts/ArkTsInference.d.ts.map +1 -1
  125. package/lib/core/inference/arkts/ArkTsInference.js +54 -16
  126. package/lib/core/model/ArkClass.d.ts +192 -18
  127. package/lib/core/model/ArkClass.d.ts.map +1 -1
  128. package/lib/core/model/ArkClass.js +852 -122
  129. package/lib/core/model/ArkExport.d.ts.map +1 -1
  130. package/lib/core/model/ArkExport.js +1 -2
  131. package/lib/core/model/ArkField.d.ts +34 -2
  132. package/lib/core/model/ArkField.d.ts.map +1 -1
  133. package/lib/core/model/ArkField.js +89 -14
  134. package/lib/core/model/ArkFile.d.ts +72 -12
  135. package/lib/core/model/ArkFile.d.ts.map +1 -1
  136. package/lib/core/model/ArkFile.js +275 -65
  137. package/lib/core/model/ArkImport.d.ts.map +1 -1
  138. package/lib/core/model/ArkImport.js +1 -2
  139. package/lib/core/model/ArkMethod.d.ts +101 -15
  140. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  141. package/lib/core/model/ArkMethod.js +252 -39
  142. package/lib/core/model/ArkModule.d.ts +1 -1
  143. package/lib/core/model/ArkModule.js +1 -1
  144. package/lib/core/model/ArkNamespace.d.ts +80 -10
  145. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  146. package/lib/core/model/ArkNamespace.js +309 -76
  147. package/lib/core/model/ArkSignature.d.ts +242 -18
  148. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  149. package/lib/core/model/ArkSignature.js +725 -95
  150. package/lib/core/model/builder/ArkClassBuilder.d.ts +6 -3
  151. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  152. package/lib/core/model/builder/ArkClassBuilder.js +116 -71
  153. package/lib/core/model/builder/ArkExportBuilder.d.ts +1 -1
  154. package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
  155. package/lib/core/model/builder/ArkExportBuilder.js +1 -1
  156. package/lib/core/model/builder/ArkFieldBuilder.d.ts +0 -2
  157. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  158. package/lib/core/model/builder/ArkFieldBuilder.js +9 -43
  159. package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
  160. package/lib/core/model/builder/ArkFileBuilder.js +32 -33
  161. package/lib/core/model/builder/ArkMethodBuilder.d.ts +10 -3
  162. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  163. package/lib/core/model/builder/ArkMethodBuilder.js +40 -26
  164. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +3 -2
  165. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  166. package/lib/core/model/builder/ArkNamespaceBuilder.js +45 -77
  167. package/lib/core/model/builder/ArkSignatureBuilder.d.ts +9 -0
  168. package/lib/core/model/builder/ArkSignatureBuilder.d.ts.map +1 -1
  169. package/lib/core/model/builder/ArkSignatureBuilder.js +26 -3
  170. package/lib/core/model/builder/BodyBuilder.d.ts +1 -0
  171. package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
  172. package/lib/core/model/builder/BodyBuilder.js +37 -11
  173. package/lib/core/model/builder/builderUtils.d.ts +11 -1
  174. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  175. package/lib/core/model/builder/builderUtils.js +124 -90
  176. package/lib/frontend/FrontendBuilder.d.ts +10 -6
  177. package/lib/frontend/FrontendBuilder.d.ts.map +1 -1
  178. package/lib/frontend/FrontendBuilder.js +19 -45
  179. package/lib/frontend/ModuleScene.d.ts +43 -0
  180. package/lib/frontend/ModuleScene.d.ts.map +1 -0
  181. package/lib/frontend/ModuleScene.js +143 -0
  182. package/lib/frontend/SceneBuildStage.d.ts +15 -0
  183. package/lib/frontend/SceneBuildStage.d.ts.map +1 -0
  184. package/lib/frontend/SceneBuildStage.js +32 -0
  185. package/lib/frontend/SceneBuilder.d.ts +153 -0
  186. package/lib/frontend/SceneBuilder.d.ts.map +1 -0
  187. package/lib/frontend/SceneBuilder.js +859 -0
  188. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +0 -2
  189. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -1
  190. package/lib/frontend/arktsFrontend/ArktsFrontend.js +0 -18
  191. package/lib/frontend/arktsFrontend/FileBodyRemount.d.ts +17 -0
  192. package/lib/frontend/arktsFrontend/FileBodyRemount.d.ts.map +1 -0
  193. package/lib/frontend/arktsFrontend/FileBodyRemount.js +187 -0
  194. package/lib/frontend/common/ModuleBuilder.d.ts +4 -2
  195. package/lib/frontend/common/ModuleBuilder.d.ts.map +1 -1
  196. package/lib/frontend/common/ModuleBuilder.js +19 -9
  197. package/lib/frontend/cppFrontend/CppFrontend.d.ts +0 -6
  198. package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -1
  199. package/lib/frontend/cppFrontend/CppFrontend.js +0 -56
  200. package/lib/frontend/cppFrontend/base/Type.d.ts +7 -0
  201. package/lib/frontend/cppFrontend/base/Type.d.ts.map +1 -1
  202. package/lib/frontend/cppFrontend/base/Type.js +29 -0
  203. package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts.map +1 -1
  204. package/lib/frontend/cppFrontend/common/ArkIRTransformer.js +56 -56
  205. package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts +1 -1
  206. package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts.map +1 -1
  207. package/lib/frontend/cppFrontend/common/ArkValueTransformer.js +124 -113
  208. package/lib/frontend/cppFrontend/common/Builtin.d.ts +29 -19
  209. package/lib/frontend/cppFrontend/common/Builtin.d.ts.map +1 -1
  210. package/lib/frontend/cppFrontend/common/Builtin.js +56 -35
  211. package/lib/frontend/cppFrontend/common/IRInference.d.ts +7 -2
  212. package/lib/frontend/cppFrontend/common/IRInference.d.ts.map +1 -1
  213. package/lib/frontend/cppFrontend/common/IRInference.js +61 -28
  214. package/lib/frontend/cppFrontend/common/IRUtils.d.ts +1 -0
  215. package/lib/frontend/cppFrontend/common/IRUtils.d.ts.map +1 -1
  216. package/lib/frontend/cppFrontend/common/IRUtils.js +22 -10
  217. package/lib/frontend/cppFrontend/common/ModelUtils.d.ts +19 -0
  218. package/lib/frontend/cppFrontend/common/ModelUtils.d.ts.map +1 -1
  219. package/lib/frontend/cppFrontend/common/ModelUtils.js +84 -3
  220. package/lib/frontend/cppFrontend/common/TypeInference.d.ts.map +1 -1
  221. package/lib/frontend/cppFrontend/common/TypeInference.js +44 -54
  222. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts.map +1 -1
  223. package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.js +2 -1
  224. package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts +1 -1
  225. package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts.map +1 -1
  226. package/lib/frontend/cppFrontend/inference/CxxValueInference.d.ts.map +1 -1
  227. package/lib/frontend/cppFrontend/inference/CxxValueInference.js +41 -5
  228. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts.map +1 -1
  229. package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.js +18 -28
  230. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  231. package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.js +2 -3
  232. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +2 -2
  233. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
  234. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +31 -24
  235. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  236. package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.js +10 -16
  237. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts +0 -2
  238. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  239. package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.js +19 -37
  240. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts +1 -0
  241. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts.map +1 -1
  242. package/lib/frontend/cppFrontend/model/builder/BodyBuilder.js +30 -3
  243. package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts.map +1 -1
  244. package/lib/frontend/cppFrontend/model/builder/builderUtils.js +8 -4
  245. package/lib/index.d.ts +3 -0
  246. package/lib/index.d.ts.map +1 -1
  247. package/lib/index.js +10 -2
  248. package/lib/save/json/JsonSerialization.js +2 -2
  249. package/lib/save/source/SourceStmt.js +1 -1
  250. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  251. package/lib/save/source/SourceTransformer.js +0 -9
  252. package/lib/statistics/StageStatistics.d.ts +195 -0
  253. package/lib/statistics/StageStatistics.d.ts.map +1 -0
  254. package/lib/statistics/StageStatistics.js +346 -0
  255. package/lib/statistics/StageStatisticsReporter.d.ts +58 -0
  256. package/lib/statistics/StageStatisticsReporter.d.ts.map +1 -0
  257. package/lib/statistics/StageStatisticsReporter.js +255 -0
  258. package/lib/utils/Canonicalizer.d.ts +9 -2
  259. package/lib/utils/Canonicalizer.d.ts.map +1 -1
  260. package/lib/utils/Canonicalizer.js +19 -2
  261. package/lib/utils/CxxSceneUtils.d.ts +7 -0
  262. package/lib/utils/CxxSceneUtils.d.ts.map +1 -1
  263. package/lib/utils/CxxSceneUtils.js +10 -1
  264. package/lib/utils/FileUtils.d.ts +0 -1
  265. package/lib/utils/FileUtils.d.ts.map +1 -1
  266. package/lib/utils/FileUtils.js +1 -9
  267. package/lib/utils/HashUtils.d.ts +9 -0
  268. package/lib/utils/HashUtils.d.ts.map +1 -0
  269. package/lib/utils/HashUtils.js +65 -0
  270. package/lib/utils/ModuleUtils.d.ts.map +1 -1
  271. package/lib/utils/ModuleUtils.js +24 -5
  272. package/lib/utils/VisitedSegment.d.ts +23 -0
  273. package/lib/utils/VisitedSegment.d.ts.map +1 -0
  274. package/lib/utils/VisitedSegment.js +64 -0
  275. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  276. package/lib/utils/callGraphUtils.js +7 -7
  277. package/lib/utils/getAllFiles.d.ts.map +1 -1
  278. package/lib/utils/getAllFiles.js +11 -8
  279. package/lib/utils/logger.d.ts +4 -0
  280. package/lib/utils/logger.d.ts.map +1 -1
  281. package/lib/utils/logger.js +16 -0
  282. package/lib/utils/parseArkSourceFile.d.ts +33 -0
  283. package/lib/utils/parseArkSourceFile.d.ts.map +1 -0
  284. package/lib/utils/parseArkSourceFile.js +131 -0
  285. package/package.json +1 -1
  286. package/lib/utils/DependenciesSort.d.ts +0 -3
  287. package/lib/utils/DependenciesSort.d.ts.map +0 -1
  288. package/lib/utils/DependenciesSort.js +0 -72
  289. package/lib/utils/crypto_utils.d.ts +0 -6
  290. package/lib/utils/crypto_utils.d.ts.map +0 -1
  291. package/lib/utils/crypto_utils.js +0 -57
@@ -1 +1 @@
1
- {"version":3,"file":"ArkExport.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkExport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkExport.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkExport.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,6 @@ const Position_1 = require("../base/Position");
19
19
  const TSConst_1 = require("../common/TSConst");
20
20
  const ArkBaseModel_1 = require("./ArkBaseModel");
21
21
  const ArkMetadata_1 = require("./ArkMetadata");
22
- const StringUtils_1 = require("../common/StringUtils");
23
22
  var ExportType;
24
23
  (function (ExportType) {
25
24
  ExportType[ExportType["NAME_SPACE"] = 0] = "NAME_SPACE";
@@ -107,7 +106,7 @@ class ExportInfo extends ArkBaseModel_1.ArkBaseModel {
107
106
  if (this.sourceCode !== undefined) {
108
107
  return this.sourceCode;
109
108
  }
110
- const code = (0, StringUtils_1.extractSourceTextByFullPosition)(this.getDeclaringArkFile().getCode(), this.originFullPosition);
109
+ const code = this.getDeclaringArkFile().getSourceTextByFullPosition(this.originFullPosition);
111
110
  if (code !== undefined) {
112
111
  this.sourceCode = code;
113
112
  return code;
@@ -31,19 +31,37 @@ export declare const FIELD_CATEGORY_MASK: number;
31
31
  * @category core/model
32
32
  */
33
33
  export declare class ArkField extends ArkBaseModel {
34
- private declaringClass;
35
- private fieldSignature;
34
+ /** @internal Formal ClassSigID for the declaring class. -1 = not yet interned. */
35
+ private declaringClassID;
36
+ /** @internal Formal FieldSigID of this field. -1 = not yet set. */
37
+ private fieldSigID;
36
38
  /** The full position (start/end line/col) of this field in the source file. */
37
39
  private originFullPosition;
38
40
  private sourceCode?;
39
41
  private initializer;
42
+ /**
43
+ * @deprecated Construct with the declaring class ID and (optionally) the signature
44
+ * object instead.
45
+ */
40
46
  constructor();
47
+ /**
48
+ * Build directly from the declaring class ID and (optionally) the field signature.
49
+ * `setSignature` is the registration point: it interns the signature, assigns the
50
+ * FieldSigID, and registers this field as the model.
51
+ * @param declaringClassID - Formal ClassSigID of the declaring class.
52
+ * @param fieldSig - The signature object; not yet registered — registration happens
53
+ * inside via setSignature.
54
+ */
55
+ constructor(declaringClassID: number, fieldSig?: FieldSignature);
41
56
  /**
42
57
  * Returns the program language of the file where this field's class defined.
43
58
  */
44
59
  getLanguage(): Language;
45
60
  getDeclaringArkClass(): ArkClass;
61
+ /** @deprecated Use the ID-injecting constructor {@link constructor(declaringClassID, fieldSig)}. */
46
62
  setDeclaringArkClass(declaringClass: ArkClass): void;
63
+ /** @internal Get the formal ClassSigID of the declaring class. Returns -1 if not interned. */
64
+ getDeclaringClassID(): number;
47
65
  /**
48
66
  * Returns the source text of the field extracted from the declaring ArkFile
49
67
  * using the field's origin position. Implements lazy loading with caching.
@@ -64,7 +82,21 @@ export declare class ArkField extends ArkBaseModel {
64
82
  getName(): string;
65
83
  getType(): Type;
66
84
  getSignature(): FieldSignature;
85
+ /**
86
+ * Set the field signature.
87
+ * Internally only the formal FieldSigID is stored; the signature itself is
88
+ * resolved back via the field signature canonicalizer (canonical instance).
89
+ * @param fieldSig - the field signature.
90
+ */
67
91
  setSignature(fieldSig: FieldSignature): void;
92
+ /** @internal Get the formal FieldSigID of this field. */
93
+ getFieldSigID(): number;
94
+ /**
95
+ * Returns the unique ID of this model — the FieldSigID in the canonicalizer.
96
+ * The signature table and the model table share one dense ID space, so this ID
97
+ * resolves both the signature and the model.
98
+ */
99
+ getId(): number;
68
100
  /**
69
101
  * Returns an array of statements used for initialization.
70
102
  * @returns An array of statements used for initialization.
@@ -1 +1 @@
1
- {"version":3,"file":"ArkField.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkField.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAwD,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,oBAAY,aAAa;IACrB,oBAAoB,IAAI;IACxB,mBAAmB,IAAI;IACvB,8BAA8B,IAAI;IAClC,iBAAiB,IAAI;IACrB,kBAAkB,IAAI;IACtB,WAAW,IAAI;IACf,eAAe,IAAI;IACnB,YAAY,IAAI;IAChB,kBAAkB,IAAI;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,KAA2B,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAA8B,CAAC;AAE/D;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACtC,OAAO,CAAC,cAAc,CAAY;IAElC,OAAO,CAAC,cAAc,CAAkB;IACxC,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B,OAAO,CAAC,WAAW,CAAc;;IAMjC;;OAEG;IACI,WAAW,IAAI,QAAQ;IAIvB,oBAAoB,IAAI,QAAQ;IAIhC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI;IAI3D;;;;OAIG;IACI,OAAO,IAAI,MAAM;IAYxB;;;OAGG;IACI,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACI,eAAe,IAAI,IAAI;IAIvB,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI1C,OAAO,IAAI,MAAM;IAIjB,OAAO,IAAI,IAAI;IAIf,YAAY,IAAI,cAAc;IAI9B,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAInD;;;OAGG;IACI,cAAc,IAAI,IAAI,EAAE;IAIxB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI;IAIzC,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAQ9C,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAQpD,gBAAgB,IAAI,OAAO;IAI3B,mBAAmB,IAAI,OAAO;IAIrC;;;OAGG;IACI,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IASzD;;;OAGG;IACI,iBAAiB,IAAI,eAAe;IAI3C;;;OAGG;IACI,qBAAqB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAI1D;;;OAGG;IACI,qBAAqB,IAAI,YAAY;IAIrC,QAAQ,IAAI,QAAQ;IAKpB,QAAQ,IAAI,OAAO;IAcnB,kBAAkB,IAAI,IAAI;CAKpC"}
1
+ {"version":3,"file":"ArkField.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkField.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAwD,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAMrC,oBAAY,aAAa;IACrB,oBAAoB,IAAI;IACxB,mBAAmB,IAAI;IACvB,8BAA8B,IAAI;IAClC,iBAAiB,IAAI;IACrB,kBAAkB,IAAI;IACtB,WAAW,IAAI;IACf,eAAe,IAAI;IACnB,YAAY,IAAI;IAChB,kBAAkB,IAAI;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,KAA2B,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAA8B,CAAC;AAE/D;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACtC,kFAAkF;IAClF,OAAO,CAAC,gBAAgB,CAAc;IAEtC,mEAAmE;IACnE,OAAO,CAAC,UAAU,CAAc;IAEhC,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B,OAAO,CAAC,WAAW,CAAc;IAEjC;;;OAGG;;IAEH;;;;;;;OAOG;gBACS,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc;IAW/D;;OAEG;IACI,WAAW,IAAI,QAAQ;IAIvB,oBAAoB,IAAI,QAAQ;IAOvC,oGAAoG;IAC7F,oBAAoB,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI;IAI3D,8FAA8F;IACvF,mBAAmB,IAAI,MAAM;IAIpC;;;;OAIG;IACI,OAAO,IAAI,MAAM;IAYxB;;;OAGG;IACI,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAEnC;;OAEG;IACI,eAAe,IAAI,IAAI;IAIvB,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI1C,OAAO,IAAI,MAAM;IAIjB,OAAO,IAAI,IAAI;IAIf,YAAY,IAAI,cAAc;IAWrC;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAWnD,yDAAyD;IAClD,aAAa,IAAI,MAAM;IAI9B;;;;OAIG;IACI,KAAK,IAAI,MAAM;IAItB;;;OAGG;IACI,cAAc,IAAI,IAAI,EAAE;IAIxB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI;IAIzC,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAQ9C,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAQpD,gBAAgB,IAAI,OAAO;IAI3B,mBAAmB,IAAI,OAAO;IAIrC;;;OAGG;IACI,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIzD;;;OAGG;IACI,iBAAiB,IAAI,eAAe;IAI3C;;;OAGG;IACI,qBAAqB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAI1D;;;OAGG;IACI,qBAAqB,IAAI,YAAY;IAIrC,QAAQ,IAAI,QAAQ;IAKpB,QAAQ,IAAI,OAAO;IAcnB,kBAAkB,IAAI,IAAI;CAKpC"}
@@ -13,12 +13,38 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ var desc = Object.getOwnPropertyDescriptor(m, k);
19
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
+ desc = { enumerable: true, get: function() { return m[k]; } };
21
+ }
22
+ Object.defineProperty(o, k2, desc);
23
+ }) : (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ o[k2] = m[k];
26
+ }));
27
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29
+ }) : function(o, v) {
30
+ o["default"] = v;
31
+ });
32
+ var __importStar = (this && this.__importStar) || function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
16
39
  Object.defineProperty(exports, "__esModule", { value: true });
17
40
  exports.ArkField = exports.FIELD_CATEGORY_MASK = exports.FIELD_CATEGORY_SHIFT = exports.FieldCategory = void 0;
18
41
  const Position_1 = require("../base/Position");
19
42
  const ArkClass_1 = require("./ArkClass");
43
+ const ArkSignature_1 = require("./ArkSignature");
20
44
  const ArkBaseModel_1 = require("./ArkBaseModel");
21
- const StringUtils_1 = require("../common/StringUtils");
45
+ const SignatureCanonicalizerRegistry_1 = require("../common/SignatureCanonicalizerRegistry");
46
+ const logger_1 = __importStar(require("../../utils/logger"));
47
+ const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'ArkField');
22
48
  var FieldCategory;
23
49
  (function (FieldCategory) {
24
50
  FieldCategory[FieldCategory["PROPERTY_DECLARATION"] = 0] = "PROPERTY_DECLARATION";
@@ -40,14 +66,24 @@ exports.FIELD_CATEGORY_SHIFT = ArkBaseModel_1.CLASS_SPECIFIC_TAG_SHIFT;
40
66
  * Mask for extracting field category from ArkField tags field.
41
67
  * Covers 4 bits for up to 16 field category values.
42
68
  */
43
- exports.FIELD_CATEGORY_MASK = 0xF << exports.FIELD_CATEGORY_SHIFT;
69
+ exports.FIELD_CATEGORY_MASK = 0xf << exports.FIELD_CATEGORY_SHIFT;
44
70
  /**
45
71
  * @category core/model
46
72
  */
47
73
  class ArkField extends ArkBaseModel_1.ArkBaseModel {
48
- constructor() {
74
+ constructor(declaringClassID, fieldSig) {
49
75
  super();
76
+ /** @internal Formal ClassSigID for the declaring class. -1 = not yet interned. */
77
+ this.declaringClassID = -1;
78
+ /** @internal Formal FieldSigID of this field. -1 = not yet set. */
79
+ this.fieldSigID = -1;
50
80
  this.initializer = [];
81
+ if (declaringClassID !== undefined) {
82
+ this.declaringClassID = declaringClassID;
83
+ }
84
+ if (fieldSig) {
85
+ this.setSignature(fieldSig);
86
+ }
51
87
  }
52
88
  /**
53
89
  * Returns the program language of the file where this field's class defined.
@@ -56,10 +92,18 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
56
92
  return this.getDeclaringArkClass().getLanguage();
57
93
  }
58
94
  getDeclaringArkClass() {
59
- return this.declaringClass;
95
+ if (this.declaringClassID !== -1) {
96
+ return SignatureCanonicalizerRegistry_1.SignatureCanonicalizerRegistry.getInstance().classSigCanonicalizer.getModel(this.declaringClassID);
97
+ }
98
+ return undefined;
60
99
  }
100
+ /** @deprecated Use the ID-injecting constructor {@link constructor(declaringClassID, fieldSig)}. */
61
101
  setDeclaringArkClass(declaringClass) {
62
- this.declaringClass = declaringClass;
102
+ this.declaringClassID = declaringClass.getClassSigID();
103
+ }
104
+ /** @internal Get the formal ClassSigID of the declaring class. Returns -1 if not interned. */
105
+ getDeclaringClassID() {
106
+ return this.declaringClassID;
63
107
  }
64
108
  /**
65
109
  * Returns the source text of the field extracted from the declaring ArkFile
@@ -70,7 +114,7 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
70
114
  if (this.sourceCode !== undefined) {
71
115
  return this.sourceCode;
72
116
  }
73
- const code = (0, StringUtils_1.extractSourceTextByFullPosition)(this.getDeclaringArkClass().getDeclaringArkFile().getCode(), this.originFullPosition);
117
+ const code = this.getDeclaringArkClass().getDeclaringArkFile().getSourceTextByFullPosition(this.originFullPosition);
74
118
  if (code !== undefined) {
75
119
  this.sourceCode = code;
76
120
  return code;
@@ -81,8 +125,7 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
81
125
  * @deprecated Source text is now stored on ArkFile only. This method has no effect.
82
126
  * @param _code - The source code (ignored).
83
127
  */
84
- setCode(_code) {
85
- }
128
+ setCode(_code) { }
86
129
  /**
87
130
  * Clears the cached source text, forcing re-extraction on next getCode call.
88
131
  */
@@ -96,16 +139,48 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
96
139
  this.setTagValue(exports.FIELD_CATEGORY_MASK, exports.FIELD_CATEGORY_SHIFT, category);
97
140
  }
98
141
  getName() {
99
- return this.fieldSignature.getFieldName();
142
+ return this.getSignature().getFieldName();
100
143
  }
101
144
  getType() {
102
- return this.fieldSignature.getType();
145
+ return this.getSignature().getType();
103
146
  }
104
147
  getSignature() {
105
- return this.fieldSignature;
148
+ if (this.fieldSigID !== -1) {
149
+ const sig = SignatureCanonicalizerRegistry_1.SignatureCanonicalizerRegistry.getInstance().fieldSigCanonicalizer.get(this.fieldSigID);
150
+ if (sig !== undefined) {
151
+ return sig;
152
+ }
153
+ }
154
+ logger.error(`Field has no interned signature (fieldSigID=${this.fieldSigID}); returning DEFAULT.`);
155
+ return ArkSignature_1.FieldSignature.DEFAULT;
106
156
  }
157
+ /**
158
+ * Set the field signature.
159
+ * Internally only the formal FieldSigID is stored; the signature itself is
160
+ * resolved back via the field signature canonicalizer (canonical instance).
161
+ * @param fieldSig - the field signature.
162
+ */
107
163
  setSignature(fieldSig) {
108
- this.fieldSignature = fieldSig;
164
+ const reg = SignatureCanonicalizerRegistry_1.SignatureCanonicalizerRegistry.getInstance();
165
+ const existing = reg.fieldSigCanonicalizer.getExistingId(fieldSig);
166
+ this.fieldSigID = existing >= 0 ? existing : reg.fieldSigCanonicalizer.getOrCreateId(fieldSig);
167
+ // 三态处理(与 ArkClass.setSignature 对齐):
168
+ // 新值首建 → 注册;驱逐态恢复 → 补注册;已有别的 model → 不覆盖。
169
+ if (existing < 0 || reg.fieldSigCanonicalizer.getModel(existing) === undefined) {
170
+ reg.registerField(this);
171
+ }
172
+ }
173
+ /** @internal Get the formal FieldSigID of this field. */
174
+ getFieldSigID() {
175
+ return this.fieldSigID;
176
+ }
177
+ /**
178
+ * Returns the unique ID of this model — the FieldSigID in the canonicalizer.
179
+ * The signature table and the model table share one dense ID space, so this ID
180
+ * resolves both the signature and the model.
181
+ */
182
+ getId() {
183
+ return this.fieldSigID;
109
184
  }
110
185
  /**
111
186
  * Returns an array of statements used for initialization.
@@ -168,7 +243,7 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
168
243
  return this.originFullPosition;
169
244
  }
170
245
  validate() {
171
- return this.validateFields(['declaringClass', 'fieldSignature']);
246
+ return this.validateFields(['declaringClassID', 'fieldSigID']);
172
247
  }
173
248
  // For class field, it is default public if there is not any access modify
174
249
  isPublic() {
@@ -184,7 +259,7 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
184
259
  }
185
260
  clearAllReferences() {
186
261
  this.initializer = [];
187
- this.declaringClass = undefined;
262
+ this.declaringClassID = -1;
188
263
  this.clearSourceCode();
189
264
  }
190
265
  }
@@ -1,10 +1,11 @@
1
- import { ModuleScene, Scene } from '../../Scene';
1
+ import type { ModuleScene, Scene } from '../../Scene';
2
2
  import type { ArkModule } from './ArkModule';
3
3
  import { ExportInfo } from './ArkExport';
4
4
  import { ImportInfo } from './ArkImport';
5
5
  import { ArkClass } from './ArkClass';
6
6
  import { ArkNamespace } from './ArkNamespace';
7
7
  import { ClassSignature, FileSignature, NamespaceSignature } from './ArkSignature';
8
+ import { FullPosition } from '../base/Position';
8
9
  import { ts } from '../../index';
9
10
  export declare const notStmtOrExprKind: string[];
10
11
  export declare enum Language {
@@ -25,20 +26,46 @@ export declare class ArkFile {
25
26
  private projectDir;
26
27
  /** Cached source text of this file, lazily loaded from the file system. */
27
28
  private sourceCode?;
28
- private defaultClass;
29
- private namespaces;
30
- private classes;
29
+ /** Cached line-start offsets for {@link sourceCode}; invalidated when code changes. */
30
+ private lineStarts?;
31
+ /** @internal Formal FileSigID of this file. 0 = DEFAULT (not yet set). */
32
+ private fileSigID;
33
+ /** @internal Formal ClassSigID for the default class. -1 = not yet interned. */
34
+ private defaultClassID;
35
+ /** @internal Whether this file belongs to the current project (true) or is external (SDK/BuiltIn/library, false). */
36
+ private projectFile;
37
+ /** @internal SigIDs of direct (top-level) child classes. undefined = no classes allocated yet. */
38
+ private topClassSigIDSet?;
39
+ /** @internal SigIDs of direct (top-level) child namespaces. undefined = no namespaces allocated yet. */
40
+ private topNamespaceSigIDs?;
41
+ private topNamespaceCount;
31
42
  private importInfoMap;
32
43
  private exportInfoMap;
33
44
  private scene;
34
45
  private moduleScene?;
35
46
  private arkModule?;
36
- private fileSignature;
47
+ /** @internal Get the Registry singleton. */
48
+ private get registry();
37
49
  private ohPackageJson5Path;
38
50
  private anonymousClassNumber;
39
51
  private anonymousNamespaceNumber;
40
52
  private ast;
41
53
  constructor(language: Language);
54
+ /**
55
+ * Returns the file signature of this file. A file signature consists of project's name and file's name.
56
+ * @returns The file signature of this file.
57
+ */
58
+ getFileSignature(): FileSignature;
59
+ /** @internal */
60
+ setFileSignature(fileSignature: FileSignature): void;
61
+ /** @internal Get the formal FileSigID of this file. */
62
+ getFileSigID(): number;
63
+ /**
64
+ * Returns the unique ID of this model — the FileSigID in the canonicalizer.
65
+ * The signature table and the model table share one dense ID space, so this ID
66
+ * resolves both the signature and the model.
67
+ */
68
+ getId(): number;
42
69
  /**
43
70
  * Returns the program language of the file.
44
71
  */
@@ -82,16 +109,55 @@ export declare class ArkFile {
82
109
  * @returns the codes of file, or undefined if the file cannot be read.
83
110
  */
84
111
  getCode(): string;
112
+ /**
113
+ * Returns cached absolute offsets of each line start in {@link getCode}.
114
+ * Built once per source text and reused by position-based source extraction.
115
+ */
116
+ getLineStarts(): number[];
117
+ /**
118
+ * Extracts a source slice by full position using the cached {@link getLineStarts} map.
119
+ */
120
+ getSourceTextByFullPosition(position: FullPosition | undefined): string | undefined;
85
121
  /**
86
122
  * Clears the cached source text, forcing re-read from file system on next getCode call.
87
123
  */
88
124
  clearSourceCode(): void;
89
- addArkClass(arkClass: ArkClass, originName?: string): void;
125
+ addArkClass(arkClass: ArkClass): void;
90
126
  getDefaultClass(): ArkClass;
91
127
  setDefaultClass(defaultClass: ArkClass): void;
128
+ /** @internal Get the formal ClassSigID of the default class. Returns -1 if not interned. */
129
+ getDefaultClassID(): number;
130
+ /** @internal Set the formal ClassSigID of the default class directly. */
131
+ setDefaultClassID(classID: number): void;
132
+ /** @internal Whether this file belongs to the current project. */
133
+ isProjectFile(): boolean;
134
+ /** @internal Set whether this file belongs to the current project. */
135
+ setProjectFile(isProject: boolean): void;
92
136
  getNamespace(namespaceSignature: NamespaceSignature): ArkNamespace | null;
93
137
  getNamespaceWithName(namespaceName: string): ArkNamespace | null;
94
138
  getNamespaces(): ArkNamespace[];
139
+ /** @internal Returns the SigIDs of direct child namespaces, or null if no namespaces exist. */
140
+ getTopNamespaceSigIDs(): Int32Array | null;
141
+ /** @internal Returns the number of direct child namespaces. */
142
+ getTopNamespaceCount(): number;
143
+ /** @internal Checks whether a namespace with the given SigID is a direct child of this file. */
144
+ hasTopNamespaceWithID(id: number): boolean;
145
+ /** @internal Returns the direct child namespace with the given SigID, or undefined. */
146
+ getTopNamespaceByID(id: number): ArkNamespace | undefined;
147
+ /** @internal Ensures the Int32Array has at least minCapacity slots. */
148
+ private ensureTopNamespaceCapacity;
149
+ /** @internal Appends a namespace SigID to the index. */
150
+ private addTopNamespaceSigID;
151
+ /** @internal Removes a namespace SigID from the index (swap-remove). */
152
+ private removeTopNamespaceSigID;
153
+ /** @internal Returns the SigIDs of direct child classes, or null if no classes exist. */
154
+ getTopClassSigIDs(): Set<number> | null;
155
+ /** @internal Returns the number of direct child classes (deduplicated by sigID). */
156
+ getTopClassCount(): number;
157
+ /** @internal Checks whether a class with the given SigID is a direct child of this file. */
158
+ hasTopClassWithID(id: number): boolean;
159
+ /** @internal Returns the direct child class with the given SigID, or undefined. */
160
+ getTopClassByID(id: number): ArkClass | undefined;
95
161
  /**
96
162
  * Returns the class based on its class signature. If the class could not be found, **null** will be returned.
97
163
  * @param classSignature - the class signature.
@@ -149,12 +215,6 @@ export declare class ArkFile {
149
215
  getModuleName(): string | undefined;
150
216
  setOhPackageJson5Path(ohPackageJson5Path: string[]): void;
151
217
  getOhPackageJson5Path(): string[];
152
- /**
153
- * Returns the file signature of this file. A file signature consists of project's name and file's name.
154
- * @returns The file signature of this file.
155
- */
156
- getFileSignature(): FileSignature;
157
- setFileSignature(fileSignature: FileSignature): void;
158
218
  getAllNamespacesUnderThisFile(): ArkNamespace[];
159
219
  getAnonymousClassNumber(): number;
160
220
  getAnonymousNamespaceNumber(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"ArkFile.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkFile.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkFile.ts"],"names":[],"mappings":"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"}