@idlizer/arktscgen 2.1.7 → 2.1.9-arktscgen-5

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 (328) hide show
  1. package/build/libarkts-copy/generator/options.json5 +34 -0
  2. package/build/libarkts-copy/native/meson.build +128 -75
  3. package/build/libarkts-copy/native/meson_options.txt +6 -0
  4. package/build/libarkts-copy/native/src/bridges.cc +271 -8
  5. package/build/libarkts-copy/native/src/common.cc +168 -47
  6. package/build/libarkts-copy/native/src/common.h +53 -8
  7. package/build/libarkts-copy/native/src/generated/bridges.cc +2625 -319
  8. package/build/libarkts-copy/package.json +31 -17
  9. package/build/libarkts-copy/src/Es2pandaNativeModule.ts +98 -4
  10. package/build/libarkts-copy/src/arkts-api/AbstractVisitor.ts +1 -1
  11. package/build/libarkts-copy/src/arkts-api/ChainExpressionFilter.ts +78 -0
  12. package/build/libarkts-copy/src/arkts-api/CheckedBackFilter.ts +86 -8
  13. package/build/libarkts-copy/src/arkts-api/CompileWithCache.ts +193 -0
  14. package/build/libarkts-copy/src/arkts-api/ImportStorage.ts +78 -0
  15. package/build/libarkts-copy/src/arkts-api/InferVoidReturnType.ts +89 -0
  16. package/build/libarkts-copy/src/arkts-api/ProgramProvider.ts +50 -0
  17. package/build/libarkts-copy/src/arkts-api/SetBaseOverloads.ts +10 -17
  18. package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +2 -3
  19. package/build/libarkts-copy/src/arkts-api/factory/nodeFactory.ts +18 -6
  20. package/build/libarkts-copy/src/arkts-api/index.ts +10 -1
  21. package/build/libarkts-copy/src/arkts-api/node-cache.ts +8 -4
  22. package/build/libarkts-copy/src/arkts-api/node-utilities/AnnotationUsage.ts +29 -0
  23. package/build/libarkts-copy/src/arkts-api/node-utilities/ArkTsConfig.ts +25 -0
  24. package/build/libarkts-copy/src/arkts-api/node-utilities/ArrayExpression.ts +1 -1
  25. package/build/libarkts-copy/src/arkts-api/node-utilities/BlockStatement.ts +29 -0
  26. package/build/libarkts-copy/src/arkts-api/node-utilities/CallExpression.ts +2 -2
  27. package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDeclaration.ts +54 -0
  28. package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDefinition.ts +1 -1
  29. package/build/libarkts-copy/src/arkts-api/node-utilities/ClassProperty.ts +3 -3
  30. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSFunctionType.ts +2 -2
  31. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSImportDeclaration.ts +3 -33
  32. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSParameterExpression.ts +3 -9
  33. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSStructDeclaration.ts +1 -1
  34. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSTuple.ts +1 -1
  35. package/build/libarkts-copy/src/arkts-api/node-utilities/MemberExpression.ts +1 -1
  36. package/build/libarkts-copy/src/arkts-api/node-utilities/MethodDefinition.ts +2 -2
  37. package/build/libarkts-copy/src/arkts-api/node-utilities/NumberLiteral.ts +2 -2
  38. package/build/libarkts-copy/src/arkts-api/node-utilities/ObjectExpression.ts +1 -1
  39. package/build/libarkts-copy/src/arkts-api/node-utilities/Program.ts +40 -0
  40. package/build/libarkts-copy/src/arkts-api/node-utilities/TSInterfaceDeclaration.ts +2 -2
  41. package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeParameter.ts +1 -1
  42. package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeReferencePart.ts +1 -1
  43. package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclaration.ts +1 -1
  44. package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclarator.ts +1 -1
  45. package/build/libarkts-copy/src/arkts-api/peers/ArktsObject.ts +3 -1
  46. package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +80 -15
  47. package/build/libarkts-copy/src/arkts-api/peers/Config.ts +8 -1
  48. package/build/libarkts-copy/src/arkts-api/peers/Context.ts +71 -4
  49. package/build/libarkts-copy/src/arkts-api/peers/{Program.ts → ExternalSource.ts} +2 -22
  50. package/build/libarkts-copy/src/arkts-api/peers/Options.ts +34 -0
  51. package/build/libarkts-copy/src/arkts-api/plugins.ts +26 -12
  52. package/build/libarkts-copy/src/arkts-api/static/global.ts +10 -4
  53. package/build/libarkts-copy/src/arkts-api/static/profiler.ts +180 -23
  54. package/build/libarkts-copy/src/arkts-api/utilities/private.ts +22 -24
  55. package/build/libarkts-copy/src/arkts-api/utilities/public.ts +54 -12
  56. package/build/libarkts-copy/src/arkts-api/visitor.ts +32 -37
  57. package/build/libarkts-copy/src/arkts-api/wrapper-compat.ts +32 -0
  58. package/build/libarkts-copy/src/checkSdk.ts +25 -0
  59. package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +450 -442
  60. package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +769 -63
  61. package/build/libarkts-copy/src/generated/factory.ts +12 -15
  62. package/build/libarkts-copy/src/generated/index.ts +10 -3
  63. package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +7 -1
  64. package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +7 -1
  65. package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +7 -1
  66. package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +64 -6
  67. package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +16 -4
  68. package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +67 -0
  69. package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +17 -5
  70. package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +46 -6
  71. package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +13 -3
  72. package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +17 -5
  73. package/build/libarkts-copy/src/generated/peers/AstDumper.ts +7 -1
  74. package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +7 -1
  75. package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +7 -1
  76. package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +13 -3
  77. package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +13 -3
  78. package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +13 -3
  79. package/build/libarkts-copy/src/generated/peers/BindingProps.ts +7 -1
  80. package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +14 -4
  81. package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +30 -7
  82. package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +13 -3
  83. package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +16 -4
  84. package/build/libarkts-copy/src/generated/peers/CallExpression.ts +24 -3
  85. package/build/libarkts-copy/src/generated/peers/CatchClause.ts +16 -4
  86. package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +13 -3
  87. package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +13 -3
  88. package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +37 -4
  89. package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +136 -42
  90. package/build/libarkts-copy/src/generated/peers/ClassElement.ts +28 -4
  91. package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +13 -3
  92. package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +43 -5
  93. package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +13 -3
  94. package/build/libarkts-copy/src/generated/peers/CodeGen.ts +7 -1
  95. package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +13 -3
  96. package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +16 -4
  97. package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +13 -3
  98. package/build/libarkts-copy/src/generated/peers/Declaration.ts +7 -1
  99. package/build/libarkts-copy/src/generated/peers/Decorator.ts +13 -3
  100. package/build/libarkts-copy/src/generated/peers/{OverloadInfo.ts → DiagnosticInfo.ts} +8 -2
  101. package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +13 -3
  102. package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +13 -3
  103. package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +7 -1
  104. package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +14 -4
  105. package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +14 -4
  106. package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +20 -5
  107. package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +14 -4
  108. package/build/libarkts-copy/src/generated/peers/ETSModule.ts +63 -4
  109. package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +14 -4
  110. package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +17 -5
  111. package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +17 -5
  112. package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +14 -4
  113. package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +14 -4
  114. package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +54 -12
  115. package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +14 -4
  116. package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +7 -1
  117. package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +14 -4
  118. package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +14 -4
  119. package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +26 -8
  120. package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +14 -4
  121. package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +17 -5
  122. package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +14 -4
  123. package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +19 -4
  124. package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +14 -4
  125. package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +22 -4
  126. package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +7 -1
  127. package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +13 -3
  128. package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +13 -3
  129. package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +30 -7
  130. package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +30 -3
  131. package/build/libarkts-copy/src/generated/peers/Expression.ts +7 -1
  132. package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +13 -3
  133. package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +13 -3
  134. package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +13 -3
  135. package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +10 -2
  136. package/build/libarkts-copy/src/generated/peers/FunctionDecl.ts +7 -1
  137. package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +50 -6
  138. package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +16 -4
  139. package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +7 -1
  140. package/build/libarkts-copy/src/generated/peers/IRNode.ts +7 -1
  141. package/build/libarkts-copy/src/generated/peers/Identifier.ts +24 -5
  142. package/build/libarkts-copy/src/generated/peers/IfStatement.ts +18 -3
  143. package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +32 -4
  144. package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +13 -3
  145. package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +13 -3
  146. package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +13 -3
  147. package/build/libarkts-copy/src/generated/peers/ImportSource.ts +7 -1
  148. package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +13 -3
  149. package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +7 -1
  150. package/build/libarkts-copy/src/generated/peers/InterfaceDecl.ts +7 -1
  151. package/build/libarkts-copy/src/generated/peers/LabelPair.ts +7 -1
  152. package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +13 -3
  153. package/build/libarkts-copy/src/generated/peers/Literal.ts +15 -1
  154. package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +7 -1
  155. package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +7 -1
  156. package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +13 -3
  157. package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +13 -3
  158. package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +30 -10
  159. package/build/libarkts-copy/src/generated/peers/NamedType.ts +13 -3
  160. package/build/libarkts-copy/src/generated/peers/NewExpression.ts +13 -3
  161. package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +13 -3
  162. package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +25 -9
  163. package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +7 -1
  164. package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +14 -4
  165. package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +13 -3
  166. package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +14 -4
  167. package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +13 -3
  168. package/build/libarkts-copy/src/generated/peers/Program.ts +189 -0
  169. package/build/libarkts-copy/src/generated/peers/Property.ts +16 -4
  170. package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +13 -3
  171. package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +16 -4
  172. package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +7 -1
  173. package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +81 -10
  174. package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +7 -1
  175. package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +13 -3
  176. package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +7 -1
  177. package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +7 -1
  178. package/build/libarkts-copy/src/generated/peers/SourceRange.ts +7 -1
  179. package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +14 -4
  180. package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +46 -9
  181. package/build/libarkts-copy/src/generated/peers/Statement.ts +7 -1
  182. package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +16 -4
  183. package/build/libarkts-copy/src/generated/peers/{ETSDynamicFunctionType.ts → SuggestionInfo.ts} +7 -5
  184. package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +14 -4
  185. package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +14 -4
  186. package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +14 -4
  187. package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +14 -4
  188. package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +14 -4
  189. package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +14 -4
  190. package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +14 -4
  191. package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +14 -4
  192. package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +17 -5
  193. package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +14 -4
  194. package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +14 -4
  195. package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +52 -6
  196. package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +17 -5
  197. package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +14 -4
  198. package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +14 -4
  199. package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +14 -4
  200. package/build/libarkts-copy/src/generated/peers/TSImportType.ts +14 -4
  201. package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +14 -4
  202. package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +14 -4
  203. package/build/libarkts-copy/src/generated/peers/TSInferType.ts +14 -4
  204. package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +14 -4
  205. package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +82 -8
  206. package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +14 -4
  207. package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +14 -4
  208. package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +14 -4
  209. package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +14 -4
  210. package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +14 -4
  211. package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +14 -4
  212. package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +14 -4
  213. package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +14 -4
  214. package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +14 -4
  215. package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +14 -4
  216. package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +14 -4
  217. package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +14 -4
  218. package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +14 -4
  219. package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +14 -4
  220. package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +14 -4
  221. package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +14 -4
  222. package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +14 -4
  223. package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +14 -4
  224. package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +14 -4
  225. package/build/libarkts-copy/src/generated/peers/TSThisType.ts +14 -4
  226. package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +14 -4
  227. package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +59 -6
  228. package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +14 -4
  229. package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +14 -4
  230. package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +14 -4
  231. package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +47 -7
  232. package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +19 -4
  233. package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +14 -4
  234. package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +14 -4
  235. package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +14 -4
  236. package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +14 -4
  237. package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +14 -4
  238. package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +14 -4
  239. package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +14 -4
  240. package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +14 -4
  241. package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +14 -4
  242. package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +17 -5
  243. package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +14 -4
  244. package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +14 -4
  245. package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +14 -4
  246. package/build/libarkts-copy/src/generated/peers/TryStatement.ts +17 -5
  247. package/build/libarkts-copy/src/generated/peers/TypeNode.ts +37 -3
  248. package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +7 -1
  249. package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +7 -1
  250. package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +14 -4
  251. package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +19 -4
  252. package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +13 -3
  253. package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +14 -4
  254. package/build/libarkts-copy/src/generated/peers/VReg.ts +7 -1
  255. package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +7 -1
  256. package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +52 -8
  257. package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +17 -5
  258. package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +7 -1
  259. package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +7 -1
  260. package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +19 -4
  261. package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +14 -4
  262. package/build/libarkts-copy/src/index.ts +13 -1
  263. package/build/libarkts-copy/src/plugin-utils.ts +117 -0
  264. package/build/libarkts-copy/src/utils.ts +17 -28
  265. package/build/libarkts-copy/src/wrapper-compat/README.md +16 -0
  266. package/build/libarkts-copy/src/wrapper-compat/arkts-api/class-by-peer.ts +46 -0
  267. package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeFactory.ts +454 -0
  268. package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeTests.ts +99 -0
  269. package/build/libarkts-copy/src/wrapper-compat/arkts-api/index.ts +88 -0
  270. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrayExpression.ts +38 -0
  271. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrowFunctionExpression.ts +35 -0
  272. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/AssignmentExpression.ts +38 -0
  273. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/BlockStatement.ts +27 -0
  274. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/CallExpression.ts +45 -0
  275. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDeclaration.ts +27 -0
  276. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDefinition.ts +73 -0
  277. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassProperty.ts +51 -0
  278. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSFunctionType.ts +42 -0
  279. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSImportDeclaration.ts +39 -0
  280. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSParameterExpression.ts +43 -0
  281. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ExpressionStatement.ts +28 -0
  282. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionDeclaration.ts +37 -0
  283. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionExpression.ts +28 -0
  284. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/IfStatement.ts +37 -0
  285. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MemberExpression.ts +42 -0
  286. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MethodDefinition.ts +46 -0
  287. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/NumberLiteral.ts +30 -0
  288. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ObjectExpression.ts +37 -0
  289. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/Property.ts +27 -0
  290. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ScriptFunction.ts +46 -0
  291. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/StructDeclaration.ts +28 -0
  292. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSInterfaceDeclaration.ts +47 -0
  293. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeAliasDeclaration.ts +40 -0
  294. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeParameter.ts +36 -0
  295. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TryStatement.ts +41 -0
  296. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclaration.ts +42 -0
  297. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclarator.ts +39 -0
  298. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/ArktsObject.ts +45 -0
  299. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/AstNode.ts +26 -0
  300. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Config.ts +53 -0
  301. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Context.ts +60 -0
  302. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Diagnostic.ts +39 -0
  303. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts +33 -0
  304. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticKind.ts +33 -0
  305. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/ImportPathManager.ts +34 -0
  306. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Program.ts +105 -0
  307. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourcePosition.ts +38 -0
  308. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourceRange.ts +38 -0
  309. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts +33 -0
  310. package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/global.ts +16 -0
  311. package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/globalUtils.ts +27 -0
  312. package/build/libarkts-copy/src/wrapper-compat/arkts-api/to-be-generated/MemberExpression.ts +108 -0
  313. package/build/libarkts-copy/src/wrapper-compat/arkts-api/types.ts +907 -0
  314. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/nativePtrDecoder.ts +69 -0
  315. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/performance.ts +190 -0
  316. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/private.ts +198 -0
  317. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/public.ts +325 -0
  318. package/build/libarkts-copy/src/wrapper-compat/arkts-api/visitor.ts +421 -0
  319. package/build/libarkts-copy/src/wrapper-compat/index.ts +20 -0
  320. package/lib/index.js +330 -149
  321. package/package.json +2 -2
  322. package/templates/Es2pandaEnums.ts +4 -0
  323. package/templates/Es2pandaNativeModule.ts +5 -1
  324. package/templates/factory.ts +5 -1
  325. package/templates/index.ts +5 -1
  326. package/templates/node-map.ts +5 -1
  327. package/templates/peer.ts +5 -1
  328. package/build/libarkts-copy/README.md +0 -36
@@ -15,43 +15,16 @@
15
15
 
16
16
  import { ETSImportDeclaration, StringLiteral } from "../../generated"
17
17
  import { isSameNativeObject } from "../peers/ArktsObject"
18
- import { passNode, passNodeArray, unpackNonNullableNode, updateNodeByNode } from "../utilities/private"
18
+ import { updateNodeByNode } from "../utilities/private"
19
19
  import { AstNode } from "../peers/AstNode"
20
- import { Es2pandaImportFlags, Es2pandaImportKinds } from "../../generated/Es2pandaEnums"
21
- import { global } from "../static/global"
22
- import { Program } from "../peers/Program"
23
-
24
- export function createETSImportDeclaration(
25
- source: StringLiteral | undefined,
26
- specifiers: readonly AstNode[],
27
- importKind: Es2pandaImportKinds,
28
- program: Program,
29
- flags: Es2pandaImportFlags
30
- ) {
31
- // TODO: check that plugin is on parsed stage
32
- const res = unpackNonNullableNode(
33
- global.es2panda._ETSParserBuildImportDeclaration(
34
- global.context,
35
- importKind,
36
- passNodeArray(specifiers),
37
- specifiers.length,
38
- passNode(source),
39
- program.peer,
40
- flags
41
- )
42
- )
43
- global.es2panda._InsertETSImportDeclarationAndParse(global.context, program.peer, res.peer)
44
- // return new ETSImportDeclaration(res.peer)
45
- // according to es2panda developers, import declaration is added to ast by compiler
46
- }
20
+ import { Es2pandaImportKinds } from "../../generated/Es2pandaEnums"
47
21
 
48
22
  export function updateETSImportDeclaration(
49
23
  original: ETSImportDeclaration,
50
24
  source: StringLiteral | undefined,
51
25
  specifiers: readonly AstNode[],
52
26
  importKind: Es2pandaImportKinds
53
- ) {
54
- throw new Error("Do not update imports, insert them instead")
27
+ ): ETSImportDeclaration {
55
28
  if (isSameNativeObject(source, original.source)
56
29
  && isSameNativeObject(specifiers, original.specifiers)
57
30
  /* no getter for importKind */
@@ -59,11 +32,8 @@ export function updateETSImportDeclaration(
59
32
  /* TODO: probably should set importMetadata, but no getter provided yet */
60
33
  return original
61
34
  }
62
- /*
63
35
  return updateNodeByNode(
64
36
  ETSImportDeclaration.createETSImportDeclaration(source, specifiers, importKind),
65
37
  original
66
38
  )
67
- */
68
- return original
69
39
  }
@@ -21,16 +21,12 @@ export function createETSParameterExpression(
21
21
  identOrSpread: AnnotatedExpression | undefined,
22
22
  isOptional: boolean,
23
23
  initExpr?: Expression,
24
- typeAnnotation?: TypeNode,
25
24
  annotations?: readonly AnnotationUsage[]
26
- ) {
25
+ ): ETSParameterExpression {
27
26
  const res = ETSParameterExpression.createETSParameterExpression(identOrSpread, isOptional)
28
27
  if (initExpr) {
29
28
  res.setInitializer(initExpr)
30
29
  }
31
- if (typeAnnotation) {
32
- res.setTypeAnnotation(typeAnnotation)
33
- }
34
30
  if (annotations) {
35
31
  res.setAnnotations(annotations)
36
32
  }
@@ -42,19 +38,17 @@ export function updateETSParameterExpression(
42
38
  identOrSpread: AnnotatedExpression | undefined,
43
39
  isOptional: boolean,
44
40
  initExpr?: Expression,
45
- typeAnnotation?: TypeNode,
46
41
  annotations?: readonly AnnotationUsage[],
47
- ) {
42
+ ): ETSParameterExpression {
48
43
  if ((isSameNativeObject(identOrSpread, original.ident) || isSameNativeObject(identOrSpread, original.restParameter))
49
44
  && isSameNativeObject(isOptional, original.isOptional)
50
45
  && isSameNativeObject(initExpr, original.initializer)
51
- && isSameNativeObject(typeAnnotation, original.typeAnnotation)
52
46
  && isSameNativeObject(annotations, original.annotations)
53
47
  ) {
54
48
  return original
55
49
  }
56
50
  return updateNodeByNode(
57
- createETSParameterExpression(identOrSpread, isOptional, initExpr, typeAnnotation, annotations),
51
+ createETSParameterExpression(identOrSpread, isOptional, initExpr, annotations),
58
52
  original
59
53
  )
60
54
  }
@@ -20,7 +20,7 @@ import { updateNodeByNode } from "../utilities/private"
20
20
  export function updateETSStructDeclaration(
21
21
  original: ETSStructDeclaration,
22
22
  def?: ClassDefinition
23
- ) {
23
+ ): ETSStructDeclaration {
24
24
  if (isSameNativeObject(def, original.definition)) {
25
25
  return original
26
26
  }
@@ -20,7 +20,7 @@ import { updateNodeByNode } from "../utilities/private"
20
20
  export function updateETSTuple(
21
21
  original: ETSTuple,
22
22
  typeList: readonly TypeNode[]
23
- ) {
23
+ ): ETSTuple {
24
24
  if (isSameNativeObject(typeList, original.tupleTypeAnnotationsList)) {
25
25
  return original
26
26
  }
@@ -25,7 +25,7 @@ export function updateMemberExpression(
25
25
  kind: Es2pandaMemberExpressionKind,
26
26
  computed: boolean,
27
27
  optional_arg: boolean
28
- ) {
28
+ ): MemberExpression {
29
29
  if (isSameNativeObject(object_arg, original.object)
30
30
  && isSameNativeObject(property, original.property)
31
31
  && isSameNativeObject(kind, original.kind)
@@ -29,7 +29,7 @@ export function createMethodDefinition(
29
29
  modifiers: Es2pandaModifierFlags,
30
30
  isComputed: boolean,
31
31
  overloads?: readonly MethodDefinition[]
32
- ) {
32
+ ): MethodDefinition {
33
33
  const res = MethodDefinition.createMethodDefinition(
34
34
  kind,
35
35
  key,
@@ -51,7 +51,7 @@ export function updateMethodDefinition(
51
51
  modifiers: Es2pandaModifierFlags,
52
52
  isComputed: boolean,
53
53
  overloads?: readonly MethodDefinition[]
54
- ) {
54
+ ): MethodDefinition {
55
55
  if (isSameNativeObject(kind, original.kind)
56
56
  && isSameNativeObject(key, original.key)
57
57
  && isSameNativeObject(value, original.value)
@@ -20,7 +20,7 @@ import { updateNodeByNode } from "../utilities/private"
20
20
 
21
21
  export function createNumberLiteral(
22
22
  value: number
23
- ) {
23
+ ): NumberLiteral {
24
24
  return new NumberLiteral(
25
25
  global.es2panda._CreateNumberLiteral(
26
26
  global.context,
@@ -32,7 +32,7 @@ export function createNumberLiteral(
32
32
  export function updateNumberLiteral(
33
33
  original: NumberLiteral,
34
34
  value: number
35
- ) {
35
+ ): NumberLiteral {
36
36
  if (isSameNativeObject(value.toString(), original.str)) {
37
37
  return original
38
38
  }
@@ -20,7 +20,7 @@ import { nodeType, updateNodeByNode } from "../utilities/private"
20
20
  export function updateObjectExpression(
21
21
  original: ObjectExpression,
22
22
  properties: readonly Expression[]
23
- ) {
23
+ ): ObjectExpression {
24
24
  if (isSameNativeObject(properties, original.properties)){
25
25
  return original
26
26
  }
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+
16
+ import { ExternalSource } from "../peers/ExternalSource"
17
+ import { acceptNativeObjectArrayResult } from "../utilities/private"
18
+ import { KNativePointer } from "@koalaui/interop"
19
+ import { global } from "../static/global"
20
+ import { Program } from "../../generated"
21
+
22
+ export function programGetExternalSources(program: Program, context: KNativePointer = global.context): ExternalSource[] {
23
+ return acceptNativeObjectArrayResult<ExternalSource>(
24
+ global.es2panda._ProgramExternalSources(context, program.peer),
25
+ (instance: KNativePointer) => new ExternalSource(instance)
26
+ )
27
+ }
28
+
29
+ export function dumpProgramInfo(program: Program) {
30
+ console.log(`Program info:`)
31
+ console.log(`\tAbsoluteName: ${program.absoluteName}`)
32
+ console.log(`\tFileName: ${program.fileName}`)
33
+ console.log(`\tFileNameWithExtension: ${program.fileNameWithExtension}`)
34
+ console.log(`\tModuleName: ${program.moduleName}`)
35
+ console.log(`\tModulePrefix: ${program.modulePrefix}`)
36
+ console.log(`\tRelativeFilePath: ${program.relativeFilePath}`)
37
+ console.log(`\tResolvedFilePath: ${program.resolvedFilePath}`)
38
+ console.log(`\tSourceFileFolder: ${program.sourceFileFolder}`)
39
+ console.log(`\tSourceFilePath: ${program.sourceFilePath}`)
40
+ }
@@ -31,7 +31,7 @@ export function createTSInterfaceDeclaration(
31
31
  isStatic: boolean,
32
32
  isExternal: boolean,
33
33
  modifierFlags?: Es2pandaModifierFlags,
34
- ) {
34
+ ): TSInterfaceDeclaration {
35
35
  const res = TSInterfaceDeclaration.createTSInterfaceDeclaration(
36
36
  _extends,
37
37
  id,
@@ -55,7 +55,7 @@ export function updateTSInterfaceDeclaration(
55
55
  isStatic: boolean,
56
56
  isExternal: boolean,
57
57
  modifierFlags?: Es2pandaModifierFlags,
58
- ) {
58
+ ): TSInterfaceDeclaration {
59
59
  if (isSameNativeObject(_extends, original.extends)
60
60
  && isSameNativeObject(id, original.id)
61
61
  && isSameNativeObject(typeParams, original.typeParams)
@@ -24,7 +24,7 @@ export function updateTSTypeParameter(
24
24
  constraint: TypeNode | undefined,
25
25
  defaultType: TypeNode | undefined,
26
26
  flags: Es2pandaModifierFlags
27
- ) {
27
+ ): TSTypeParameter {
28
28
  if (isSameNativeObject(name, original.name)
29
29
  && isSameNativeObject(constraint, original.constraint)
30
30
  && isSameNativeObject(defaultType, original.defaultType)
@@ -22,7 +22,7 @@ export function updateETSTypeReferencePart(
22
22
  name?: Expression,
23
23
  typeParams?: TSTypeParameterInstantiation,
24
24
  prev?: ETSTypeReferencePart
25
- ) {
25
+ ): ETSTypeReferencePart {
26
26
  if (isSameNativeObject(name, original.name)
27
27
  && isSameNativeObject(typeParams, original.typeParams)
28
28
  && isSameNativeObject(prev, original.previous)
@@ -40,7 +40,7 @@ export function updateVariableDeclaration(
40
40
  kind: Es2pandaVariableDeclarationKind,
41
41
  declarators: readonly VariableDeclarator[],
42
42
  annotations?: readonly AnnotationUsage[]
43
- ) {
43
+ ): VariableDeclaration {
44
44
  if (isSameNativeObject(kind, original.kind)
45
45
  && isSameNativeObject(declarators, original.declarators)
46
46
  && isSameNativeObject(annotations, original.annotations)
@@ -23,7 +23,7 @@ export function updateVariableDeclarator(
23
23
  flag: Es2pandaVariableDeclaratorFlag,
24
24
  ident?: Expression,
25
25
  init?: Expression
26
- ) {
26
+ ): VariableDeclarator {
27
27
  if (isSameNativeObject(flag, original.flag)
28
28
  && isSameNativeObject(ident, original.id)
29
29
  && isSameNativeObject(init, original.init)
@@ -20,7 +20,9 @@ export abstract class ArktsObject {
20
20
  this.peer = peer
21
21
  }
22
22
 
23
- readonly peer: KNativePointer
23
+ peer: KNativePointer
24
+
25
+ public onUpdate(node: ArktsObject) {}
24
26
  }
25
27
 
26
28
  export function isSameNativeObject<T extends ArktsObject | number | string | boolean | undefined>(
@@ -19,15 +19,18 @@ import { allFlags, unpackNodeArray, unpackNonNullableNode, unpackString } from "
19
19
  import { throwError } from "../../utils"
20
20
  import { Es2pandaModifierFlags } from "../../generated/Es2pandaEnums"
21
21
  import { ArktsObject } from "./ArktsObject"
22
+ import { SourcePosition } from "./SourcePosition"
23
+ import { NodeCache } from "../node-cache"
22
24
 
23
25
  export abstract class AstNode extends ArktsObject {
24
26
  protected constructor(peer: KNativePointer) {
25
- global.profiler.createdNodes ++
27
+ global.profiler.nodeCreated()
26
28
  if (isNullPtr(peer)) {
27
29
  throwError(`attempted to create AstNode from nullptr`)
28
30
  }
29
31
  super(peer)
30
- this.updateChildren()
32
+ this.setChildrenParentPtr()
33
+ NodeCache.addToCache(peer, this)
31
34
  }
32
35
 
33
36
  public get originalPeer(): KNativePointer {
@@ -56,11 +59,12 @@ export abstract class AstNode extends ArktsObject {
56
59
  )
57
60
  }
58
61
 
59
- public updateChildren(): void {
62
+ public setChildrenParentPtr(): this {
60
63
  if (this.peer === nullptr) {
61
- throwError('updateChildren called on NULLPTR')
64
+ throwError('AstNodeSetChildrenParentPtr called on NULLPTR')
62
65
  }
63
- global.es2panda._AstNodeUpdateChildren(global.context, this.peer)
66
+ global.es2panda._AstNodeSetChildrenParentPtr(global.context, this.peer)
67
+ return this
64
68
  }
65
69
 
66
70
  public updateModifiers(modifierFlags: KInt | undefined): this {
@@ -95,20 +99,37 @@ export abstract class AstNode extends ArktsObject {
95
99
  return unpackString(global.es2panda._AstNodeDumpModifiers(global.context, this.peer))
96
100
  }
97
101
 
102
+ // public clone(): this {
103
+ // return unpackNonNullableNode(global.generatedEs2panda._AstNodeClone(global.context, this.peer, this.parent.peer));
104
+ // }
105
+
106
+ // public get parent(): AstNode {
107
+ // const parent = global.generatedEs2panda._AstNodeParent(global.context, this.peer)
108
+ // if (parent === nullptr) {
109
+ // throwError(`no parent`)
110
+ // }
111
+ // return unpackNonNullableNode(parent)
112
+ // }
113
+
114
+ // public set parent(node: AstNode) {
115
+ // global.generatedEs2panda._AstNodeSetParent(global.context, this.peer, node.peer)
116
+ // }
117
+
98
118
  public clone(): this {
99
- return unpackNonNullableNode(global.generatedEs2panda._AstNodeClone(global.context, this.peer, this.parent.peer));
119
+ const clonedNode = unpackNonNullableNode(
120
+ global.generatedEs2panda._AstNodeClone(global.context, this.peer, this.parent?.peer ?? nullptr)
121
+ );
122
+ clonedNode.parent = undefined;
123
+ return clonedNode as this;
100
124
  }
101
-
102
- public get parent(): AstNode {
103
- const parent = global.generatedEs2panda._AstNodeParent(global.context, this.peer)
104
- if (parent === nullptr) {
105
- throwError(`no parent`)
106
- }
107
- return unpackNonNullableNode(parent)
125
+
126
+ public get parent(): AstNode | undefined {
127
+ const parent = global.generatedEs2panda._AstNodeParent(global.context, this.peer);
128
+ return unpackNonNullableNode(parent);
108
129
  }
109
130
 
110
- public set parent(node: AstNode) {
111
- global.generatedEs2panda._AstNodeSetParent(global.context, this.peer, node.peer)
131
+ public set parent(node: AstNode | undefined) {
132
+ global.generatedEs2panda._AstNodeSetParent(global.context, this.peer, node?.peer ?? nullptr);
112
133
  }
113
134
 
114
135
  public get modifierFlags(): Es2pandaModifierFlags {
@@ -119,4 +140,48 @@ export abstract class AstNode extends ArktsObject {
119
140
  global.generatedEs2panda._AstNodeClearModifier(global.context, this.peer, allFlags)
120
141
  global.generatedEs2panda._AstNodeAddModifier(global.context, this.peer, flags ?? Es2pandaModifierFlags.MODIFIER_FLAGS_NONE)
121
142
  }
143
+
144
+ /** @deprecated Use {@link modifierFlags} instead */
145
+ public get modifiers(): KInt {
146
+ return this.modifierFlags
147
+ }
148
+
149
+ /** @deprecated Use {@link modifierFlags} instead */
150
+ public set modifiers(flags: KInt | undefined) {
151
+ this.modifierFlags = flags
152
+ }
153
+
154
+ public override onUpdate(node: AstNode): void {
155
+ // TODO Update modifiers only for specific AST nodes in the generated factory code
156
+ node.modifierFlags = this.modifierFlags
157
+ global.generatedEs2panda._AstNodeSetOriginalNode(global.context, node.peer, this.originalPeer)
158
+ }
159
+
160
+ public get isExport(): boolean {
161
+ return global.generatedEs2panda._AstNodeIsExportedConst(global.context, this.peer);
162
+ }
163
+
164
+ public get isDefaultExport(): boolean {
165
+ return global.generatedEs2panda._AstNodeIsDefaultExportedConst(global.context, this.peer);
166
+ }
167
+
168
+ public get isStatic(): boolean {
169
+ return global.generatedEs2panda._AstNodeIsStaticConst(global.context, this.peer);
170
+ }
171
+
172
+ public get startPosition(): SourcePosition {
173
+ return new SourcePosition(global.generatedEs2panda._AstNodeStartConst(global.context, this.peer));
174
+ }
175
+
176
+ public set startPosition(start: SourcePosition) {
177
+ global.generatedEs2panda._AstNodeSetStart(global.context, this.peer, start.peer);
178
+ }
179
+
180
+ public get endPosition(): SourcePosition {
181
+ return new SourcePosition(global.generatedEs2panda._AstNodeEndConst(global.context, this.peer));
182
+ }
183
+
184
+ public set endPosition(end: SourcePosition) {
185
+ global.generatedEs2panda._AstNodeSetEnd(global.context, this.peer, end.peer);
186
+ }
122
187
  }
@@ -16,7 +16,7 @@
16
16
  import { ArktsObject } from "./ArktsObject"
17
17
  import { global } from "../static/global"
18
18
  import { passStringArray } from "../utilities/private"
19
- import { KNativePointer } from "@koalaui/interop"
19
+ import { KNativePointer, nullptr } from "@koalaui/interop"
20
20
 
21
21
  export class Config extends ArktsObject {
22
22
  constructor(peer: KNativePointer) {
@@ -48,5 +48,12 @@ export class Config extends ArktsObject {
48
48
  )
49
49
  }
50
50
 
51
+ destroy() {
52
+ if (this.peer != nullptr) {
53
+ global.es2panda._DestroyConfig(this.peer)
54
+ this.peer = nullptr
55
+ }
56
+ }
57
+
51
58
  readonly path: string
52
59
  }
@@ -14,10 +14,11 @@
14
14
  */
15
15
 
16
16
  import { ArktsObject } from "./ArktsObject"
17
- import { Program } from "./Program"
17
+ import { Program } from "../../generated"
18
18
  import { global } from "../static/global"
19
- import { passString } from "../utilities/private"
20
- import { KNativePointer } from "@koalaui/interop"
19
+ import { passString, passStringArray } from "../utilities/private"
20
+ import { KNativePointer, nullptr } from "@koalaui/interop"
21
+ import { Config } from "./Config"
21
22
 
22
23
  export class Context extends ArktsObject {
23
24
  constructor(peer: KNativePointer) {
@@ -39,7 +40,73 @@ export class Context extends ArktsObject {
39
40
  )
40
41
  }
41
42
 
43
+ static createFromFile(filePath: string, configPath: string, stdlibPath: string, outputPath: string): Context | undefined {
44
+ const config = Config.create([
45
+ "",
46
+ "--arktsconfig",
47
+ configPath,
48
+ '--extension',
49
+ 'ets',
50
+ '--stdlib',
51
+ stdlibPath,
52
+ filePath,
53
+ '--output',
54
+ outputPath,
55
+ ])
56
+ return new Context(
57
+ global.es2panda._CreateContextFromFile(
58
+ config.peer,
59
+ passString(filePath)
60
+ )
61
+ )
62
+ }
63
+
64
+ static createCacheFromFile(filePath: string, config: Config, globalContext: GlobalContext, isExternal: boolean) {
65
+ return new Context(
66
+ global.es2panda._CreateCacheContextFromFile(
67
+ config.peer,
68
+ passString(filePath),
69
+ globalContext.peer,
70
+ isExternal
71
+ )
72
+ )
73
+ }
74
+
75
+
76
+ destroy() {
77
+ if (this.peer != nullptr) {
78
+ global.es2panda._DestroyContext(this.peer)
79
+ this.peer = nullptr
80
+ }
81
+ }
82
+
42
83
  get program(): Program {
43
84
  return new Program(global.es2panda._ContextProgram(this.peer));
44
85
  }
45
- }
86
+ }
87
+
88
+ export class GlobalContext extends ArktsObject {
89
+ static create(
90
+ config: Config, externalFileList: string[]
91
+ ): GlobalContext {
92
+ return new GlobalContext(
93
+ global.es2panda._CreateGlobalContext(
94
+ config.peer,
95
+ passStringArray(externalFileList),
96
+ externalFileList.length,
97
+ false
98
+ )
99
+ )
100
+ }
101
+
102
+ constructor(peer: KNativePointer) {
103
+ super(peer)
104
+ }
105
+
106
+ destroy() {
107
+ if (this.peer != nullptr) {
108
+ global.es2panda._DestroyGlobalContext(this.peer)
109
+ this.peer = nullptr
110
+ }
111
+ }
112
+ }
@@ -13,31 +13,11 @@
13
13
  * limitations under the License.
14
14
  */
15
15
 
16
- import { ArktsObject } from "./ArktsObject"
17
16
  import { global } from "../static/global"
18
17
  import { acceptNativeObjectArrayResult, unpackString } from "../utilities/private"
19
18
  import { KNativePointer, nullptr } from "@koalaui/interop"
20
- import { ETSModule } from "../../generated"
21
-
22
- export class Program extends ArktsObject {
23
- constructor(peer: KNativePointer) {
24
- super(peer)
25
- }
26
-
27
- get astNode(): ETSModule {
28
- let program = global.es2panda._ProgramAst(global.context, this.peer)
29
- if (program == nullptr) throw new Error(`astNode() cannt get AST`)
30
- return new ETSModule(program)
31
- }
32
-
33
- get externalSources(): ExternalSource[] {
34
- return acceptNativeObjectArrayResult<ExternalSource>(
35
- global.es2panda._ProgramExternalSources(global.context, this.peer),
36
- (instance: KNativePointer) => new ExternalSource(instance)
37
- )
38
- }
39
-
40
- }
19
+ import { Program } from "../../generated"
20
+ import { ArktsObject } from "./ArktsObject"
41
21
 
42
22
  export class ExternalSource extends ArktsObject {
43
23
  constructor(peer: KNativePointer) {
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Copyright (c) 2025 Huawei Device Co., Ltd.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+
16
+ import { KNativePointer } from "@koalaui/interop"
17
+ import { ArktsObject } from "./ArktsObject"
18
+ import { global } from "../static/global"
19
+ import { Config } from "./Config"
20
+ import { ArkTsConfig } from "../../generated"
21
+
22
+ export class Options extends ArktsObject {
23
+ constructor(peer: KNativePointer) {
24
+ super(peer)
25
+ }
26
+
27
+ static createOptions(config: Config) {
28
+ return new Options(global.es2panda._ConfigGetOptions(config.peer))
29
+ }
30
+
31
+ getArkTsConfig(): ArkTsConfig {
32
+ return new ArkTsConfig(global.es2panda._OptionsArkTsConfig(global.context, this.peer))
33
+ }
34
+ }
@@ -14,15 +14,34 @@
14
14
  */
15
15
 
16
16
  import { Es2pandaContextState } from "../generated/Es2pandaEnums"
17
- import { ExternalSource, Program } from "./peers/Program"
17
+ import { Program } from "../generated"
18
+ import { ExternalSource } from "./peers/ExternalSource"
19
+ import { programGetExternalSources } from "./node-utilities/Program"
20
+ import { KNativePointer } from "@koalaui/interop"
21
+ import { global } from "./static/global"
18
22
 
19
23
  export interface CompilationOptions {
20
24
  readonly isMainProgram: boolean,
21
- readonly name: string,
22
25
  readonly stage: Es2pandaContextState,
26
+ readonly restart: boolean,
23
27
  }
24
28
 
25
- export type ProgramTransformer = (program: Program, compilationOptions: CompilationOptions) => void
29
+ export interface PluginContext {
30
+ setParameter<V>(name: string, value: V): void
31
+ parameter<V>(name: string) : V | undefined
32
+
33
+ }
34
+ export class PluginContextImpl implements PluginContext {
35
+ map = new Map<String, Object|undefined>()
36
+ parameter<V>(name: string): V|undefined {
37
+ return this.map.get(name) as (V|undefined)
38
+ }
39
+ setParameter<V>(name: string, value: V) {
40
+ this.map.set(name, value as Object)
41
+ }
42
+ }
43
+
44
+ export type ProgramTransformer = (program: Program, compilationOptions: CompilationOptions, context: PluginContext) => void
26
45
 
27
46
  export function defaultFilter(name: string) {
28
47
  if (name.startsWith("std.")) return false
@@ -30,17 +49,12 @@ export function defaultFilter(name: string) {
30
49
  return true
31
50
  }
32
51
 
33
- export interface ProgramWithName {
34
- program: Program,
35
- name: string
36
- }
37
-
38
- export function listPrograms(program: Program, filter: (name: string) => boolean = defaultFilter): ProgramWithName[] {
52
+ export function listPrograms(program: Program, filter: (name: string) => boolean = defaultFilter, context: KNativePointer = global.context): Program[] {
39
53
  return [
40
- { program, name: "" },
41
- ...program.externalSources.flatMap((it: ExternalSource) => {
54
+ program,
55
+ ...programGetExternalSources(program, context).flatMap((it: ExternalSource) => {
42
56
  if (filter(it.getName())) {
43
- return it.programs.map(program => ({ program, name: it.getName() } as ProgramWithName))
57
+ return it.programs
44
58
  }
45
59
  return []
46
60
  })