@idlizer/arktscgen 2.1.5 → 2.1.9-arktscgen-4

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 (360) hide show
  1. package/build/libarkts-copy/generator/options.json5 +34 -0
  2. package/build/libarkts-copy/native/meson.build +128 -62
  3. package/build/libarkts-copy/native/meson_options.txt +19 -0
  4. package/build/libarkts-copy/native/src/bridges.cc +278 -15
  5. package/build/libarkts-copy/native/src/common.cc +212 -43
  6. package/build/libarkts-copy/native/src/common.h +95 -2
  7. package/build/libarkts-copy/native/src/generated/bridges.cc +2801 -466
  8. package/build/libarkts-copy/package.json +82 -62
  9. package/build/libarkts-copy/src/Es2pandaNativeModule.ts +97 -3
  10. package/build/libarkts-copy/src/InteropNativeModule.ts +3 -1
  11. package/build/libarkts-copy/src/arkts-api/AbstractVisitor.ts +1 -1
  12. package/build/libarkts-copy/src/arkts-api/ChainExpressionFilter.ts +78 -0
  13. package/build/libarkts-copy/src/arkts-api/CheckedBackFilter.ts +131 -0
  14. package/build/libarkts-copy/src/arkts-api/CompileWithCache.ts +193 -0
  15. package/build/libarkts-copy/src/arkts-api/ImportStorage.ts +78 -0
  16. package/build/libarkts-copy/src/arkts-api/InferVoidReturnType.ts +89 -0
  17. package/build/libarkts-copy/src/arkts-api/ProgramProvider.ts +50 -0
  18. package/build/libarkts-copy/src/arkts-api/SetBaseOverloads.ts +44 -0
  19. package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +2 -3
  20. package/build/libarkts-copy/src/arkts-api/factory/nodeFactory.ts +93 -10
  21. package/build/libarkts-copy/src/arkts-api/index.ts +13 -1
  22. package/build/libarkts-copy/src/arkts-api/node-cache.ts +8 -4
  23. package/build/libarkts-copy/src/arkts-api/node-utilities/AnnotationDeclaration.ts +32 -0
  24. package/build/libarkts-copy/src/arkts-api/node-utilities/AnnotationUsage.ts +37 -0
  25. package/build/libarkts-copy/src/arkts-api/node-utilities/ArkTsConfig.ts +26 -0
  26. package/build/libarkts-copy/src/arkts-api/node-utilities/ArrayExpression.ts +1 -1
  27. package/build/libarkts-copy/src/arkts-api/node-utilities/BinaryExpression.ts +37 -0
  28. package/build/libarkts-copy/src/arkts-api/node-utilities/BlockExpression.ts +27 -0
  29. package/build/libarkts-copy/src/arkts-api/node-utilities/BlockStatement.ts +29 -0
  30. package/build/libarkts-copy/src/arkts-api/node-utilities/CallExpression.ts +2 -2
  31. package/build/libarkts-copy/src/arkts-api/node-utilities/ChainExpression.ts +27 -0
  32. package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDeclaration.ts +54 -0
  33. package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDefinition.ts +1 -1
  34. package/build/libarkts-copy/src/arkts-api/node-utilities/ClassProperty.ts +27 -4
  35. package/build/libarkts-copy/src/arkts-api/node-utilities/ConditionalExpression.ts +36 -0
  36. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSFunctionType.ts +2 -2
  37. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSImportDeclaration.ts +3 -27
  38. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSNewClassInstanceExpression.ts +34 -0
  39. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSParameterExpression.ts +3 -9
  40. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSPrimitiveType.ts +28 -0
  41. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSStructDeclaration.ts +1 -1
  42. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSTuple.ts +1 -1
  43. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSTypeReference.ts +27 -0
  44. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSTypeReferencePart.ts +36 -0
  45. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSUndefinedType.ts +24 -0
  46. package/build/libarkts-copy/src/arkts-api/node-utilities/ETSUnionType.ts +27 -0
  47. package/build/libarkts-copy/src/arkts-api/node-utilities/Identifier.ts +27 -0
  48. package/build/libarkts-copy/src/arkts-api/node-utilities/ImportSpecifier.ts +31 -0
  49. package/build/libarkts-copy/src/arkts-api/node-utilities/MemberExpression.ts +1 -1
  50. package/build/libarkts-copy/src/arkts-api/node-utilities/MethodDefinition.ts +2 -2
  51. package/build/libarkts-copy/src/arkts-api/node-utilities/NullLiteral.ts +24 -0
  52. package/build/libarkts-copy/src/arkts-api/node-utilities/NumberLiteral.ts +2 -2
  53. package/build/libarkts-copy/src/arkts-api/node-utilities/ObjectExpression.ts +1 -1
  54. package/build/libarkts-copy/src/arkts-api/node-utilities/Program.ts +40 -0
  55. package/build/libarkts-copy/src/arkts-api/node-utilities/ReturnStatement.ts +27 -0
  56. package/build/libarkts-copy/src/arkts-api/node-utilities/StringLiteral.ts +27 -0
  57. package/build/libarkts-copy/src/arkts-api/node-utilities/SuperExpression.ts +24 -0
  58. package/build/libarkts-copy/src/arkts-api/node-utilities/TSAsExpression.ts +36 -0
  59. package/build/libarkts-copy/src/arkts-api/node-utilities/TSClassImplements.ts +31 -0
  60. package/build/libarkts-copy/src/arkts-api/node-utilities/TSInterfaceBody.ts +28 -0
  61. package/build/libarkts-copy/src/arkts-api/node-utilities/TSInterfaceDeclaration.ts +30 -10
  62. package/build/libarkts-copy/src/arkts-api/node-utilities/TSNonNullExpression.ts +27 -0
  63. package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeAliasDeclaration.ts +10 -2
  64. package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeParameter.ts +1 -1
  65. package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeParameterDeclaration.ts +31 -0
  66. package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeParameterInstantiation.ts +30 -0
  67. package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeReferencePart.ts +1 -1
  68. package/build/libarkts-copy/src/arkts-api/node-utilities/TemplateLiteral.ts +35 -0
  69. package/build/libarkts-copy/src/arkts-api/node-utilities/ThisExpression.ts +24 -0
  70. package/build/libarkts-copy/src/arkts-api/node-utilities/UndefinedLiteral.ts +24 -0
  71. package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclaration.ts +1 -1
  72. package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclarator.ts +1 -1
  73. package/build/libarkts-copy/src/arkts-api/peers/ArktsObject.ts +3 -1
  74. package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +78 -15
  75. package/build/libarkts-copy/src/arkts-api/peers/Config.ts +8 -1
  76. package/build/libarkts-copy/src/arkts-api/peers/Context.ts +72 -6
  77. package/build/libarkts-copy/src/arkts-api/peers/{Program.ts → ExternalSource.ts} +3 -21
  78. package/build/libarkts-copy/src/arkts-api/peers/Options.ts +34 -0
  79. package/build/libarkts-copy/src/arkts-api/plugins.ts +62 -0
  80. package/build/libarkts-copy/src/arkts-api/static/global.ts +9 -5
  81. package/build/libarkts-copy/src/arkts-api/static/profiler.ts +195 -23
  82. package/build/libarkts-copy/src/arkts-api/utilities/private.ts +36 -10
  83. package/build/libarkts-copy/src/arkts-api/utilities/public.ts +68 -20
  84. package/build/libarkts-copy/src/arkts-api/visitor.ts +162 -18
  85. package/build/libarkts-copy/src/arkts-api/wrapper-compat.ts +32 -0
  86. package/build/libarkts-copy/src/checkSdk.ts +25 -0
  87. package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +448 -436
  88. package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +775 -60
  89. package/build/libarkts-copy/src/generated/factory.ts +12 -15
  90. package/build/libarkts-copy/src/generated/index.ts +10 -3
  91. package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +7 -1
  92. package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +7 -1
  93. package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +7 -1
  94. package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +58 -6
  95. package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +10 -4
  96. package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +75 -0
  97. package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +11 -5
  98. package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +40 -6
  99. package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +9 -3
  100. package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +11 -5
  101. package/build/libarkts-copy/src/generated/peers/AstDumper.ts +7 -1
  102. package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +7 -1
  103. package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +7 -1
  104. package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +9 -3
  105. package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +9 -3
  106. package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +9 -3
  107. package/build/libarkts-copy/src/generated/peers/BindingProps.ts +7 -1
  108. package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +10 -4
  109. package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +26 -7
  110. package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +9 -3
  111. package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +10 -4
  112. package/build/libarkts-copy/src/generated/peers/CallExpression.ts +20 -3
  113. package/build/libarkts-copy/src/generated/peers/CatchClause.ts +10 -4
  114. package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +9 -3
  115. package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +9 -3
  116. package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +33 -4
  117. package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +128 -42
  118. package/build/libarkts-copy/src/generated/peers/ClassElement.ts +28 -4
  119. package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +9 -3
  120. package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +39 -5
  121. package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +9 -3
  122. package/build/libarkts-copy/src/generated/peers/CodeGen.ts +7 -1
  123. package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +9 -3
  124. package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +10 -4
  125. package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +9 -3
  126. package/build/libarkts-copy/src/generated/peers/Declaration.ts +7 -1
  127. package/build/libarkts-copy/src/generated/peers/Decorator.ts +9 -3
  128. package/build/libarkts-copy/src/generated/peers/{OverloadInfo.ts → DiagnosticInfo.ts} +8 -2
  129. package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +9 -3
  130. package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +9 -3
  131. package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +7 -1
  132. package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +10 -4
  133. package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +10 -4
  134. package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +16 -5
  135. package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +10 -4
  136. package/build/libarkts-copy/src/generated/peers/ETSModule.ts +59 -4
  137. package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +10 -4
  138. package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +11 -5
  139. package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +11 -5
  140. package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +10 -4
  141. package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +10 -4
  142. package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +46 -12
  143. package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +10 -4
  144. package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +7 -1
  145. package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +10 -4
  146. package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +10 -4
  147. package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +14 -8
  148. package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +10 -4
  149. package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +11 -5
  150. package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +10 -4
  151. package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +15 -4
  152. package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +10 -4
  153. package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +16 -4
  154. package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +7 -1
  155. package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +9 -3
  156. package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +9 -3
  157. package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +18 -7
  158. package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +26 -3
  159. package/build/libarkts-copy/src/generated/peers/Expression.ts +7 -1
  160. package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +9 -3
  161. package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +9 -3
  162. package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +9 -3
  163. package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +8 -2
  164. package/build/libarkts-copy/src/generated/peers/FunctionDecl.ts +7 -1
  165. package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +44 -6
  166. package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +10 -4
  167. package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +7 -1
  168. package/build/libarkts-copy/src/generated/peers/IRNode.ts +7 -1
  169. package/build/libarkts-copy/src/generated/peers/Identifier.ts +16 -5
  170. package/build/libarkts-copy/src/generated/peers/IfStatement.ts +14 -3
  171. package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +28 -4
  172. package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +9 -3
  173. package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +9 -3
  174. package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +9 -3
  175. package/build/libarkts-copy/src/generated/peers/ImportSource.ts +7 -1
  176. package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +9 -3
  177. package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +7 -1
  178. package/build/libarkts-copy/src/generated/peers/InterfaceDecl.ts +7 -1
  179. package/build/libarkts-copy/src/generated/peers/LabelPair.ts +7 -1
  180. package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +9 -3
  181. package/build/libarkts-copy/src/generated/peers/Literal.ts +15 -1
  182. package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +7 -1
  183. package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +7 -1
  184. package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +9 -3
  185. package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +9 -3
  186. package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +26 -10
  187. package/build/libarkts-copy/src/generated/peers/NamedType.ts +9 -3
  188. package/build/libarkts-copy/src/generated/peers/NewExpression.ts +9 -3
  189. package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +9 -3
  190. package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +12 -6
  191. package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +7 -1
  192. package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +10 -4
  193. package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +9 -3
  194. package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +10 -4
  195. package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +9 -3
  196. package/build/libarkts-copy/src/generated/peers/Program.ts +194 -0
  197. package/build/libarkts-copy/src/generated/peers/Property.ts +10 -4
  198. package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +9 -3
  199. package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +10 -4
  200. package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +7 -1
  201. package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +77 -10
  202. package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +7 -1
  203. package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +9 -3
  204. package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +7 -1
  205. package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +7 -1
  206. package/build/libarkts-copy/src/generated/peers/SourceRange.ts +7 -1
  207. package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +10 -4
  208. package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +46 -9
  209. package/build/libarkts-copy/src/generated/peers/Statement.ts +7 -1
  210. package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +10 -4
  211. package/build/libarkts-copy/src/generated/peers/{ETSDynamicFunctionType.ts → SuggestionInfo.ts} +7 -5
  212. package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +10 -4
  213. package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +10 -4
  214. package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +10 -4
  215. package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +10 -4
  216. package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +10 -4
  217. package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +10 -4
  218. package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +10 -4
  219. package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +10 -4
  220. package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +11 -5
  221. package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +10 -4
  222. package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +10 -4
  223. package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +48 -6
  224. package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +11 -5
  225. package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +10 -4
  226. package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +10 -4
  227. package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +10 -4
  228. package/build/libarkts-copy/src/generated/peers/TSImportType.ts +10 -4
  229. package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +10 -4
  230. package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +10 -4
  231. package/build/libarkts-copy/src/generated/peers/TSInferType.ts +10 -4
  232. package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +10 -4
  233. package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +78 -8
  234. package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +10 -4
  235. package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +10 -4
  236. package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +10 -4
  237. package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +10 -4
  238. package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +10 -4
  239. package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +10 -4
  240. package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +10 -4
  241. package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +10 -4
  242. package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +10 -4
  243. package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +10 -4
  244. package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +10 -4
  245. package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +10 -4
  246. package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +10 -4
  247. package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +10 -4
  248. package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +10 -4
  249. package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +10 -4
  250. package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +10 -4
  251. package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +10 -4
  252. package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +10 -4
  253. package/build/libarkts-copy/src/generated/peers/TSThisType.ts +10 -4
  254. package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +10 -4
  255. package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +53 -6
  256. package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +10 -4
  257. package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +10 -4
  258. package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +10 -4
  259. package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +41 -7
  260. package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +15 -4
  261. package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +10 -4
  262. package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +10 -4
  263. package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +10 -4
  264. package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +10 -4
  265. package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +10 -4
  266. package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +10 -4
  267. package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +10 -4
  268. package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +10 -4
  269. package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +10 -4
  270. package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +11 -5
  271. package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +10 -4
  272. package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +10 -4
  273. package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +10 -4
  274. package/build/libarkts-copy/src/generated/peers/TryStatement.ts +11 -5
  275. package/build/libarkts-copy/src/generated/peers/TypeNode.ts +37 -3
  276. package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +7 -1
  277. package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +7 -1
  278. package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +10 -4
  279. package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +15 -4
  280. package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +9 -3
  281. package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +10 -4
  282. package/build/libarkts-copy/src/generated/peers/VReg.ts +7 -1
  283. package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +7 -1
  284. package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +48 -8
  285. package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +11 -5
  286. package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +7 -1
  287. package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +7 -1
  288. package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +15 -4
  289. package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +10 -4
  290. package/build/libarkts-copy/src/index.ts +31 -1
  291. package/build/libarkts-copy/src/plugin-utils.ts +117 -0
  292. package/build/libarkts-copy/src/ts-api/factory/nodeFactory.ts +15 -0
  293. package/build/libarkts-copy/src/ts-api/factory/nodeTests.ts +15 -0
  294. package/build/libarkts-copy/src/ts-api/types.ts +15 -0
  295. package/build/libarkts-copy/src/utils.ts +24 -41
  296. package/build/libarkts-copy/src/wrapper-compat/README.md +16 -0
  297. package/build/libarkts-copy/src/wrapper-compat/arkts-api/class-by-peer.ts +46 -0
  298. package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeFactory.ts +454 -0
  299. package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeTests.ts +99 -0
  300. package/build/libarkts-copy/src/wrapper-compat/arkts-api/index.ts +88 -0
  301. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrayExpression.ts +38 -0
  302. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrowFunctionExpression.ts +35 -0
  303. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/AssignmentExpression.ts +38 -0
  304. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/BlockStatement.ts +27 -0
  305. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/CallExpression.ts +45 -0
  306. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDeclaration.ts +27 -0
  307. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDefinition.ts +73 -0
  308. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassProperty.ts +51 -0
  309. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSFunctionType.ts +42 -0
  310. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSImportDeclaration.ts +39 -0
  311. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSParameterExpression.ts +43 -0
  312. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ExpressionStatement.ts +28 -0
  313. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionDeclaration.ts +37 -0
  314. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionExpression.ts +28 -0
  315. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/IfStatement.ts +37 -0
  316. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MemberExpression.ts +42 -0
  317. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MethodDefinition.ts +46 -0
  318. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/NumberLiteral.ts +30 -0
  319. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ObjectExpression.ts +37 -0
  320. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/Property.ts +27 -0
  321. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ScriptFunction.ts +46 -0
  322. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/StructDeclaration.ts +28 -0
  323. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSInterfaceDeclaration.ts +47 -0
  324. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeAliasDeclaration.ts +40 -0
  325. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeParameter.ts +36 -0
  326. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TryStatement.ts +41 -0
  327. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclaration.ts +42 -0
  328. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclarator.ts +39 -0
  329. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/ArktsObject.ts +45 -0
  330. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/AstNode.ts +26 -0
  331. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Config.ts +53 -0
  332. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Context.ts +60 -0
  333. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Diagnostic.ts +39 -0
  334. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts +33 -0
  335. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticKind.ts +33 -0
  336. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/ImportPathManager.ts +34 -0
  337. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Program.ts +105 -0
  338. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourcePosition.ts +38 -0
  339. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourceRange.ts +38 -0
  340. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts +33 -0
  341. package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/global.ts +16 -0
  342. package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/globalUtils.ts +27 -0
  343. package/build/libarkts-copy/src/wrapper-compat/arkts-api/to-be-generated/MemberExpression.ts +108 -0
  344. package/build/libarkts-copy/src/wrapper-compat/arkts-api/types.ts +907 -0
  345. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/nativePtrDecoder.ts +69 -0
  346. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/performance.ts +190 -0
  347. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/private.ts +198 -0
  348. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/public.ts +325 -0
  349. package/build/libarkts-copy/src/wrapper-compat/arkts-api/visitor.ts +421 -0
  350. package/build/libarkts-copy/src/wrapper-compat/index.ts +20 -0
  351. package/build/libarkts-copy/tsconfig.json +2 -1
  352. package/lib/index.js +1704 -273
  353. package/package.json +2 -2
  354. package/templates/Es2pandaEnums.ts +4 -0
  355. package/templates/Es2pandaNativeModule.ts +5 -1
  356. package/templates/factory.ts +5 -1
  357. package/templates/index.ts +5 -1
  358. package/templates/node-map.ts +5 -1
  359. package/templates/peer.ts +5 -1
  360. package/build/libarkts-copy/README.md +0 -36
@@ -0,0 +1,30 @@
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 { TSTypeParameterInstantiation, TypeNode } from '../../generated';
17
+ import { isSameNativeObject } from '../peers/ArktsObject';
18
+ import { attachModifiers, updateThenAttach } from '../utilities/private';
19
+
20
+ export function updateTSTypeParameterInstantiation(
21
+ original: TSTypeParameterInstantiation,
22
+ params: readonly TypeNode[]
23
+ ): TSTypeParameterInstantiation {
24
+ if (isSameNativeObject(params, original.params)) {
25
+ return original;
26
+ }
27
+
28
+ const update = updateThenAttach(TSTypeParameterInstantiation.updateTSTypeParameterInstantiation, attachModifiers);
29
+ return update(original, params);
30
+ }
@@ -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)
@@ -0,0 +1,35 @@
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 { TemplateLiteral, TemplateElement, Expression } from '../../generated';
17
+ import { isSameNativeObject } from '../peers/ArktsObject';
18
+ import { attachModifiers, updateThenAttach } from '../utilities/private';
19
+
20
+ export function updateTemplateLiteral(
21
+ original: TemplateLiteral,
22
+ quasis: readonly TemplateElement[],
23
+ expressions: readonly Expression[],
24
+ multilineString: string
25
+ ): TemplateLiteral {
26
+ if (
27
+ isSameNativeObject(quasis, original.quasis) &&
28
+ isSameNativeObject(expressions, original.expressions)
29
+ ) {
30
+ return original;
31
+ }
32
+
33
+ const update = updateThenAttach(TemplateLiteral.updateTemplateLiteral, attachModifiers);
34
+ return update(original, quasis, expressions, multilineString);
35
+ }
@@ -0,0 +1,24 @@
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 { ThisExpression } from '../../generated';
17
+ import { attachModifiers, updateThenAttach } from '../utilities/private';
18
+
19
+ export function updateThisExpression(original: ThisExpression): ThisExpression {
20
+ /* TODO: no getter provided yet */
21
+
22
+ const update = updateThenAttach(ThisExpression.updateThisExpression, attachModifiers);
23
+ return update(original);
24
+ }
@@ -0,0 +1,24 @@
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 { UndefinedLiteral } from '../../generated';
17
+ import { attachModifiers, updateThenAttach } from '../utilities/private';
18
+
19
+ export function updateUndefinedLiteral(original: UndefinedLiteral): UndefinedLiteral {
20
+ /* TODO: no getter provided yet */
21
+
22
+ const update = updateThenAttach(UndefinedLiteral.updateUndefinedLiteral, attachModifiers);
23
+ return update(original);
24
+ }
@@ -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>(
@@ -13,21 +13,24 @@
13
13
  * limitations under the License.
14
14
  */
15
15
 
16
- import { isNullPtr, KInt, KNativePointer as KPtr, KNativePointer, nullptr } from "@koalaui/interop"
16
+ import { isNullPtr, KInt, KNativePointer, nullptr } from "@koalaui/interop"
17
17
  import { global } from "../static/global"
18
- import { allFlags, nodeType, unpackNodeArray, unpackNonNullableNode, unpackString } from "../utilities/private"
18
+ import { allFlags, unpackNodeArray, unpackNonNullableNode, unpackString } from "../utilities/private"
19
19
  import { throwError } from "../../utils"
20
- import { Es2pandaAstNodeType, Es2pandaModifierFlags } from "../../generated/Es2pandaEnums"
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
32
  this.updateChildren()
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 updateChildren(): this {
60
63
  if (this.peer === nullptr) {
61
64
  throwError('updateChildren called on NULLPTR')
62
65
  }
63
66
  global.es2panda._AstNodeUpdateChildren(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,46 @@ 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
+ global.generatedEs2panda._AstNodeSetOriginalNode(global.context, node.peer, this.originalPeer)
156
+ }
157
+
158
+ public get isExport(): boolean {
159
+ return global.generatedEs2panda._AstNodeIsExportedConst(global.context, this.peer);
160
+ }
161
+
162
+ public get isDefaultExport(): boolean {
163
+ return global.generatedEs2panda._AstNodeIsDefaultExportedConst(global.context, this.peer);
164
+ }
165
+
166
+ public get isStatic(): boolean {
167
+ return global.generatedEs2panda._AstNodeIsStaticConst(global.context, this.peer);
168
+ }
169
+
170
+ public get startPosition(): SourcePosition {
171
+ return new SourcePosition(global.generatedEs2panda._AstNodeStartConst(global.context, this.peer));
172
+ }
173
+
174
+ public set startPosition(start: SourcePosition) {
175
+ global.generatedEs2panda._AstNodeSetStart(global.context, this.peer, start.peer);
176
+ }
177
+
178
+ public get endPosition(): SourcePosition {
179
+ return new SourcePosition(global.generatedEs2panda._AstNodeEndConst(global.context, this.peer));
180
+ }
181
+
182
+ public set endPosition(end: SourcePosition) {
183
+ global.generatedEs2panda._AstNodeSetEnd(global.context, this.peer, end.peer);
184
+ }
122
185
  }
@@ -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,11 +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 { throwError } from "../../utils"
20
- import { passString } from "../utilities/private"
21
- import { KNativePointer } from "@koalaui/interop"
19
+ import { passString, passStringArray } from "../utilities/private"
20
+ import { KNativePointer, nullptr } from "@koalaui/interop"
21
+ import { Config } from "./Config"
22
22
 
23
23
  export class Context extends ArktsObject {
24
24
  constructor(peer: KNativePointer) {
@@ -29,7 +29,7 @@ export class Context extends ArktsObject {
29
29
  source: string
30
30
  ): Context {
31
31
  if (!global.configIsInitialized()) {
32
- throwError(`Config not initialized`)
32
+ throw new Error(`Config not initialized`)
33
33
  }
34
34
  return new Context(
35
35
  global.es2panda._CreateContextFromString(
@@ -40,7 +40,73 @@ export class Context extends ArktsObject {
40
40
  )
41
41
  }
42
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
+
43
83
  get program(): Program {
44
84
  return new Program(global.es2panda._ContextProgram(this.peer));
45
85
  }
46
- }
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,29 +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
- import { KNativePointer } 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
- return new ETSModule(global.es2panda._ProgramAst(global.context, this.peer))
29
- }
30
-
31
- get externalSources(): ExternalSource[] {
32
- return acceptNativeObjectArrayResult<ExternalSource>(
33
- global.es2panda._ProgramExternalSources(global.context, this.peer),
34
- (instance: KNativePointer) => new ExternalSource(instance)
35
- )
36
- }
37
-
38
- }
18
+ import { KNativePointer, nullptr } from "@koalaui/interop"
19
+ import { Program } from "../../generated"
20
+ import { ArktsObject } from "./ArktsObject"
39
21
 
40
22
  export class ExternalSource extends ArktsObject {
41
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
+ }
@@ -0,0 +1,62 @@
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 { Es2pandaContextState } from "../generated/Es2pandaEnums"
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"
22
+
23
+ export interface CompilationOptions {
24
+ readonly isMainProgram: boolean,
25
+ readonly stage: Es2pandaContextState,
26
+ readonly restart: boolean,
27
+ }
28
+
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
45
+
46
+ export function defaultFilter(name: string) {
47
+ if (name.startsWith("std.")) return false
48
+ if (name.startsWith("escompat")) return false
49
+ return true
50
+ }
51
+
52
+ export function listPrograms(program: Program, filter: (name: string) => boolean = defaultFilter, context: KNativePointer = global.context): Program[] {
53
+ return [
54
+ program,
55
+ ...programGetExternalSources(program, context).flatMap((it: ExternalSource) => {
56
+ if (filter(it.getName())) {
57
+ return it.programs
58
+ }
59
+ return []
60
+ })
61
+ ]
62
+ }
@@ -14,17 +14,18 @@
14
14
  */
15
15
 
16
16
  import { throwError } from "../../utils"
17
- import { KNativePointer } from "@koalaui/interop"
17
+ import { KNativePointer, nullptr } from "@koalaui/interop"
18
18
  import { initEs2panda, Es2pandaNativeModule, initGeneratedEs2panda } from "../../Es2pandaNativeModule"
19
19
  import { Es2pandaNativeModule as GeneratedEs2pandaNativeModule } from "../../generated/Es2pandaNativeModule"
20
20
  import { initInterop, InteropNativeModule } from "../../InteropNativeModule"
21
21
  import { Context } from "../peers/Context"
22
22
  import { Profiler } from "./profiler"
23
+ import { ArkTsConfig } from "../../generated"
23
24
 
24
25
  export class global {
25
26
  public static filePath: string = "./plugins/input/main.ets"
26
- public static packageName: string = ""
27
- public static filePathFromPackageRoot: string = global.filePath
27
+
28
+ public static arktsconfig?: ArkTsConfig
28
29
 
29
30
  private static _config?: KNativePointer
30
31
  public static set config(config: KNativePointer) {
@@ -34,12 +35,15 @@ export class global {
34
35
  return global._config ?? throwError('Global.config not initialized')
35
36
  }
36
37
  public static configIsInitialized(): boolean {
37
- return global._config !== undefined
38
+ return global._config !== undefined && global._config !== nullptr
39
+ }
40
+ public static resetConfig(): void {
41
+ global._config = undefined
38
42
  }
39
43
 
40
44
  // TODO: rename to contextPeer
41
45
  public static get context(): KNativePointer {
42
- return global.compilerContext.peer ?? throwError('Global.context not initialized')
46
+ return global.compilerContext?.peer ?? throwError('Global.context not initialized')
43
47
  }
44
48
 
45
49
  // TODO: rename to context when the pointer valued one is eliminated