@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
@@ -1,3 +1,18 @@
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
+
1
16
  {
2
17
  "irHack": [
3
18
  "AnnotationUsage",
@@ -11,6 +26,8 @@
11
26
  "es2panda_Impl",
12
27
  "es2panda_Config",
13
28
  "es2panda_ExternalSource",
29
+ "es2panda_OverloadInfo",
30
+ "es2panda_GlobalContext"
14
31
  ],
15
32
  "partial": [
16
33
  {
@@ -92,6 +109,14 @@
92
109
  "SetExtensionAccessorType" // ETSFunction type ambiguity
93
110
  ]
94
111
  },
112
+ {
113
+ interface: "ArkTsConfig",
114
+ methods: [
115
+ "EntriesConst",
116
+ "FilesConst",
117
+ "Parse",
118
+ ]
119
+ },
95
120
  ]
96
121
  },
97
122
  nonNullable: [
@@ -220,5 +245,14 @@
220
245
  }
221
246
  ]
222
247
  },
248
+ {
249
+ name: "Program",
250
+ methods: [
251
+ {
252
+ name: "Ast",
253
+ types: ["returnType"]
254
+ }
255
+ ]
256
+ }
223
257
  ],
224
258
  }
@@ -1,62 +1,128 @@
1
- project(
2
- 'es2panda_interop',
3
- 'cpp',
4
- version: '1.0',
5
- default_options: [
6
- 'cpp_std=c++17',
7
- 'buildtype=debug',
8
- ],
9
- )
10
-
11
- sources = [
12
- './src/common.cc',
13
- './src/bridges.cc',
14
- './src/generated/bridges.cc',
15
- get_option('interop_src_dir') / 'common-interop.cc',
16
- get_option('interop_src_dir') / 'callback-resource.cc',
17
- get_option('interop_src_dir') / 'interop-logging.cc',
18
- get_option('interop_src_dir') / 'napi/convertors-napi.cc',
19
- ]
20
-
21
- cflags = [
22
- '-DKOALA_INTEROP_MODULE=NativeModule',
23
- '-DINTEROP_LIBRARY_NAME=' + get_option('lib_name'),
24
- '-DKOALA_USE_NODE_VM',
25
- '-DKOALA_NAPI',
26
- ]
27
-
28
- if (target_machine.system() == 'windows')
29
- cflags += ['-DKOALA_WINDOWS']
30
- if (meson.get_compiler('cpp').get_id() == 'msvc')
31
- # apply node.exe symbol loading hook
32
- sources += [
33
- get_option('interop_src_dir') / 'napi/win-dynamic-node.cc'
34
- ]
35
- endif
36
- else
37
- cflags += ['-DKOALA_LINUX']
38
- endif
39
-
40
- shared_library(
41
- get_option('lib_name'),
42
- sources,
43
- override_options: [
44
- 'b_lundef=false',
45
- ],
46
- install: true,
47
- name_prefix: '',
48
- name_suffix: 'node',
49
- include_directories: [
50
- './src/',
51
- get_option('panda_sdk_dir') / 'ohos_arm64/include/tools/es2panda/public',
52
- get_option('panda_sdk_dir') / 'ohos_arm64/include/tools/es2panda',
53
- get_option('interop_src_dir'),
54
- get_option('interop_src_dir') / 'types',
55
- get_option('interop_src_dir') / 'napi',
56
- get_option('node_modules_dir') / 'node-api-headers/include',
57
- get_option('node_modules_dir') / 'node-addon-api',
58
- ],
59
- cpp_args: cflags,
60
- link_args: [],
61
- dependencies: []
62
- )
1
+ # Copyright (c) 2025 Huawei Device Co., Ltd.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ project(
15
+ 'es2panda_interop',
16
+ 'cpp',
17
+ version: '1.0',
18
+ default_options: [
19
+ 'cpp_std=c++17',
20
+ 'buildtype=release',
21
+ ],
22
+ )
23
+
24
+ sources = [
25
+ './src/common.cc',
26
+ './src/bridges.cc',
27
+ './src/generated/bridges.cc',
28
+ get_option('interop_src_dir') / 'common-interop.cc',
29
+ get_option('interop_src_dir') / 'callback-resource.cc',
30
+ get_option('interop_src_dir') / 'interop-logging.cc',
31
+ get_option('interop_src_dir') / 'napi/convertors-napi.cc',
32
+ ]
33
+
34
+ cflags = [
35
+ '-DKOALA_INTEROP_MODULE=NativeModule',
36
+ '-DINTEROP_LIBRARY_NAME=' + get_option('lib_name'),
37
+ '-DKOALA_USE_NODE_VM',
38
+ '-DKOALA_NAPI',
39
+ ]
40
+
41
+ if (target_machine.system() == 'windows')
42
+ cflags += ['-DKOALA_WINDOWS']
43
+ if (meson.get_compiler('cpp').get_id() == 'msvc')
44
+ # apply node.exe symbol loading hook
45
+ sources += [
46
+ get_option('interop_src_dir') / 'napi/win-dynamic-node.cc'
47
+ ]
48
+ endif
49
+ else
50
+ cflags += ['-DKOALA_LINUX']
51
+ endif
52
+
53
+ arch = target_machine.cpu()
54
+
55
+ oses = { 'darwin': 'macos' } # rename meson default names to convenient ones
56
+ archs = { 'x86_64': 'x64', 'aarch64': 'arm64', 'armv7-a': 'arm32', 'wasm32': 'wasm' }
57
+
58
+ os = target_machine.system()
59
+ os = oses.get(os, os)
60
+ arch = target_machine.cpu()
61
+ arch = archs.get(arch, arch)
62
+
63
+ cflags_cross = []
64
+ cflags_host = []
65
+ suffix_host = '_' + arch
66
+ suffix_cross = ''
67
+
68
+ if get_option('cross_compile')
69
+ if arch == 'arm64'
70
+ cflags_cross = ['--target=x86_64-linux-gnu']
71
+ suffix_cross = '_x64'
72
+ endif
73
+ if arch == 'x64'
74
+ cflags_cross = ['--target=aarch64-linux-gnu']
75
+ suffix_cross = '_arm64'
76
+ endif
77
+ endif
78
+
79
+ shared_library(
80
+ get_option('lib_name') + suffix_host,
81
+ sources,
82
+ override_options: [
83
+ 'b_lundef=false',
84
+ ],
85
+ install: true,
86
+ name_prefix: '',
87
+ name_suffix: 'node',
88
+ include_directories: [
89
+ './src/',
90
+ get_option('panda_sdk_dir') / 'ohos_arm64/include/tools/es2panda/public',
91
+ get_option('panda_sdk_dir') / 'ohos_arm64/include/tools/es2panda',
92
+ get_option('interop_src_dir'),
93
+ get_option('interop_src_dir') / 'types',
94
+ get_option('interop_src_dir') / 'napi',
95
+ get_option('node_modules_dir') / 'node-api-headers/include',
96
+ get_option('node_modules_dir') / 'node-addon-api',
97
+ ],
98
+ cpp_args: cflags + cflags_host,
99
+ link_args: [cflags_host],
100
+ dependencies: []
101
+ )
102
+
103
+ if get_option('cross_compile')
104
+ # sudo apt install g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
105
+ shared_library(
106
+ get_option('lib_name') + suffix_cross,
107
+ sources,
108
+ override_options: [
109
+ 'b_lundef=false',
110
+ ],
111
+ install: true,
112
+ name_prefix: '',
113
+ name_suffix: 'node',
114
+ include_directories: [
115
+ './src/',
116
+ get_option('panda_sdk_dir') / 'ohos_arm64/include/tools/es2panda/public',
117
+ get_option('panda_sdk_dir') / 'ohos_arm64/include/tools/es2panda',
118
+ get_option('interop_src_dir'),
119
+ get_option('interop_src_dir') / 'types',
120
+ get_option('interop_src_dir') / 'napi',
121
+ get_option('node_modules_dir') / 'node-api-headers/include',
122
+ get_option('node_modules_dir') / 'node-addon-api',
123
+ ],
124
+ cpp_args: cflags + cflags_cross,
125
+ link_args: [cflags_cross],
126
+ dependencies: []
127
+ )
128
+ endif
@@ -1,3 +1,16 @@
1
+ # Copyright (c) 2025 Huawei Device Co., Ltd.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
1
14
  option(
2
15
  'node_modules_dir',
3
16
  type : 'string',
@@ -22,3 +35,9 @@ option(
22
35
  value : 'es2panda',
23
36
  description : 'name of shared library'
24
37
  )
38
+ option(
39
+ 'cross_compile',
40
+ type : 'boolean',
41
+ value : false,
42
+ description : 'whether to build binaries for all architectures or just for current'
43
+ )
@@ -15,6 +15,10 @@
15
15
 
16
16
  #include "common.h"
17
17
 
18
+ #include <set>
19
+ #include <string>
20
+ #include <mutex>
21
+
18
22
  KNativePointer impl_AstNodeRecheck(KNativePointer contextPtr, KNativePointer nodePtr)
19
23
  {
20
24
  auto context = reinterpret_cast<es2panda_Context*>(contextPtr);
@@ -39,7 +43,7 @@ KNativePointer impl_AnnotationAllowedAnnotations(KNativePointer contextPtr, KNat
39
43
  auto node = reinterpret_cast<es2panda_AstNode*>(nodePtr);
40
44
  std::size_t params_len = 0;
41
45
  auto annotations = GetImpl()->AnnotationAllowedAnnotations(context, node, &params_len);
42
- return new std::vector<void*>(annotations, annotations + params_len);
46
+ return StageArena::cloneVector(annotations, params_len);
43
47
  }
44
48
  KOALA_INTEROP_3(AnnotationAllowedAnnotations, KNativePointer, KNativePointer, KNativePointer, KNativePointer)
45
49
 
@@ -49,7 +53,7 @@ KNativePointer impl_AnnotationAllowedAnnotationsConst(KNativePointer contextPtr,
49
53
  auto node = reinterpret_cast<es2panda_AstNode*>(nodePtr);
50
54
  std::size_t params_len = 0;
51
55
  auto annotations = GetImpl()->AnnotationAllowedAnnotationsConst(context, node, &params_len);
52
- return new std::vector<void*>(annotations, annotations + params_len);
56
+ return StageArena::cloneVector(annotations, params_len);
53
57
  }
54
58
  KOALA_INTEROP_3(AnnotationAllowedAnnotationsConst, KNativePointer, KNativePointer, KNativePointer, KNativePointer)
55
59
 
@@ -149,14 +153,6 @@ KNativePointer impl_ContextProgram(KNativePointer contextPtr)
149
153
  }
150
154
  KOALA_INTEROP_1(ContextProgram, KNativePointer, KNativePointer)
151
155
 
152
- KNativePointer impl_ProgramAst(KNativePointer contextPtr, KNativePointer programPtr)
153
- {
154
- auto context = reinterpret_cast<es2panda_Context*>(programPtr);
155
- auto program = reinterpret_cast<es2panda_Program*>(programPtr);
156
- return GetImpl()->ProgramAst(context, program);
157
- }
158
- KOALA_INTEROP_2(ProgramAst, KNativePointer, KNativePointer, KNativePointer)
159
-
160
156
  KBoolean impl_IsIdentifier(KNativePointer nodePtr)
161
157
  {
162
158
  auto node = reinterpret_cast<es2panda_AstNode*>(nodePtr);
@@ -190,7 +186,7 @@ KNativePointer impl_ContextErrorMessage(KNativePointer contextPtr)
190
186
  {
191
187
  auto context = reinterpret_cast<es2panda_Context*>(contextPtr);
192
188
 
193
- return new string(GetImpl()->ContextErrorMessage(context));
189
+ return StageArena::strdup(GetImpl()->ContextErrorMessage(context));
194
190
  }
195
191
  KOALA_INTEROP_1(ContextErrorMessage, KNativePointer, KNativePointer)
196
192
 
@@ -228,15 +224,34 @@ static KNativePointer impl_ProgramExternalSources(KNativePointer contextPtr, KNa
228
224
  auto&& instance = reinterpret_cast<es2panda_Program *>(instancePtr);
229
225
  std::size_t source_len = 0;
230
226
  auto external_sources = GetImpl()->ProgramExternalSources(context, instance, &source_len);
231
- return new std::vector<void*>(external_sources, external_sources + source_len);
227
+ return StageArena::cloneVector(external_sources, source_len);
232
228
  }
233
229
  KOALA_INTEROP_2(ProgramExternalSources, KNativePointer, KNativePointer, KNativePointer);
234
230
 
231
+ static KNativePointer impl_ProgramDirectExternalSources(KNativePointer contextPtr, KNativePointer instancePtr)
232
+ {
233
+ auto context = reinterpret_cast<es2panda_Context*>(contextPtr);
234
+ auto&& instance = reinterpret_cast<es2panda_Program *>(instancePtr);
235
+ std::size_t sourceLen = 0;
236
+ auto externalSources = GetImpl()->ProgramDirectExternalSources(context, instance, &sourceLen);
237
+ return new std::vector<void*>(externalSources, externalSources + sourceLen);
238
+ }
239
+ KOALA_INTEROP_2(ProgramDirectExternalSources, KNativePointer, KNativePointer, KNativePointer);
240
+
241
+ static KNativePointer impl_ProgramSourceFilePath(KNativePointer contextPtr, KNativePointer instancePtr)
242
+ {
243
+ auto context = reinterpret_cast<es2panda_Context*>(contextPtr);
244
+ auto&& instance = reinterpret_cast<es2panda_Program *>(instancePtr);
245
+ auto&& result = GetImpl()->ProgramSourceFilePathConst(context, instance);
246
+ return StageArena::strdup(result);
247
+ }
248
+ KOALA_INTEROP_2(ProgramSourceFilePath, KNativePointer, KNativePointer, KNativePointer);
249
+
235
250
  static KNativePointer impl_ExternalSourceName(KNativePointer instance)
236
251
  {
237
252
  auto&& _instance_ = reinterpret_cast<es2panda_ExternalSource *>(instance);
238
- auto&& _result_ = GetImpl()->ExternalSourceName(_instance_);
239
- return new std::string(_result_);
253
+ auto&& result = GetImpl()->ExternalSourceName(_instance_);
254
+ return StageArena::strdup(result);
240
255
  }
241
256
  KOALA_INTEROP_1(ExternalSourceName, KNativePointer, KNativePointer);
242
257
 
@@ -245,7 +260,7 @@ static KNativePointer impl_ExternalSourcePrograms(KNativePointer instance)
245
260
  auto&& _instance_ = reinterpret_cast<es2panda_ExternalSource *>(instance);
246
261
  std::size_t program_len = 0;
247
262
  auto programs = GetImpl()->ExternalSourcePrograms(_instance_, &program_len);
248
- return new std::vector<void*>(programs, programs + program_len);
263
+ return StageArena::cloneVector(programs, program_len);
249
264
  }
250
265
  KOALA_INTEROP_1(ExternalSourcePrograms, KNativePointer, KNativePointer);
251
266
 
@@ -331,3 +346,251 @@ KNativePointer impl_CreateSourceRange(KNativePointer context, KNativePointer sta
331
346
  return GetImpl()->CreateSourceRange(_context_, _start_, _end_);
332
347
  }
333
348
  KOALA_INTEROP_3(CreateSourceRange, KNativePointer, KNativePointer, KNativePointer, KNativePointer);
349
+
350
+ KNativePointer impl_ConfigGetOptions(KNativePointer config)
351
+ {
352
+ const auto _config = reinterpret_cast<es2panda_Config *>(config);
353
+ auto result = GetImpl()->ConfigGetOptions(_config);
354
+ return (void*)result;
355
+ }
356
+ KOALA_INTEROP_1(ConfigGetOptions, KNativePointer, KNativePointer)
357
+
358
+ KNativePointer impl_OptionsArkTsConfig(KNativePointer context, KNativePointer options)
359
+ {
360
+ const auto _context = reinterpret_cast<es2panda_Context *>(context);
361
+ const auto _options = reinterpret_cast<es2panda_Options *>(options);
362
+ auto result = GetImpl()->OptionsUtilArkTSConfigConst(_context, _options);
363
+ return (void*)result;
364
+ }
365
+ KOALA_INTEROP_2(OptionsArkTsConfig, KNativePointer, KNativePointer, KNativePointer)
366
+
367
+ KNativePointer impl_CreateCacheContextFromFile(KNativePointer configPtr, KStringPtr& source_file_namePtr, KNativePointer globalContextPtr, KBoolean isExternal) {
368
+ auto config = reinterpret_cast<es2panda_Config*>(configPtr);
369
+ auto globalContext = reinterpret_cast<es2panda_GlobalContext*>(globalContextPtr);
370
+ return GetImpl()->CreateCacheContextFromFile(config, getStringCopy(source_file_namePtr), globalContext, isExternal);
371
+ }
372
+ KOALA_INTEROP_4(CreateCacheContextFromFile, KNativePointer, KNativePointer, KStringPtr, KNativePointer, KBoolean)
373
+
374
+ KNativePointer impl_CreateGlobalContext(KNativePointer configPtr, KStringArray externalFileListPtr, KUInt fileNum, KBoolean LspUsage) {
375
+ auto config = reinterpret_cast<es2panda_Config*>(configPtr);
376
+ const int headerLen = 4;
377
+ const char** files = StageArena::allocArray<const char*>(fileNum);
378
+ uint8_t* filesPtr = (uint8_t*)externalFileListPtr;
379
+ std::size_t position = headerLen;
380
+ std::size_t strLen;
381
+ for (std::size_t i = 0; i < static_cast<std::size_t>(fileNum); ++i) {
382
+ strLen = unpackUInt(filesPtr + position);
383
+ position += headerLen;
384
+ files[i] = StageArena::strdup(std::string(reinterpret_cast<const char*>(filesPtr + position), strLen).c_str());
385
+ position += strLen;
386
+ }
387
+ return GetImpl()->CreateGlobalContext(config, files, fileNum, LspUsage);
388
+ }
389
+ KOALA_INTEROP_4(CreateGlobalContext, KNativePointer, KNativePointer, KStringArray, KUInt, KBoolean)
390
+
391
+ void impl_DestroyGlobalContext(KNativePointer globalContextPtr) {
392
+ auto globalContext = reinterpret_cast<es2panda_GlobalContext*>(globalContextPtr);
393
+ GetImpl()->DestroyGlobalContext(globalContext);
394
+ }
395
+ KOALA_INTEROP_V1(DestroyGlobalContext, KNativePointer)
396
+
397
+ // From koala-wrapper
398
+ // TODO check if some code should be generated
399
+
400
+ std::set<std::string> globalStructInfo;
401
+ std::mutex g_structMutex;
402
+
403
+ void impl_InsertGlobalStructInfo(KNativePointer contextPtr, KStringPtr& instancePtr)
404
+ {
405
+ std::lock_guard<std::mutex> lock(g_structMutex);
406
+ globalStructInfo.insert(getStringCopy(instancePtr));
407
+ return;
408
+ }
409
+ KOALA_INTEROP_V2(InsertGlobalStructInfo, KNativePointer, KStringPtr);
410
+
411
+ KBoolean impl_HasGlobalStructInfo(KNativePointer contextPtr, KStringPtr& instancePtr)
412
+ {
413
+ std::lock_guard<std::mutex> lock(g_structMutex);
414
+ return globalStructInfo.count(getStringCopy(instancePtr));
415
+ }
416
+ KOALA_INTEROP_2(HasGlobalStructInfo, KBoolean, KNativePointer, KStringPtr);
417
+
418
+ KNativePointer impl_ClassVariableDeclaration(KNativePointer context, KNativePointer classInstance)
419
+ {
420
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
421
+ const auto _classInstance = reinterpret_cast<es2panda_AstNode*>(classInstance);
422
+ auto _typedTsType = GetImpl()->TypedTsType(_context, _classInstance);
423
+ if (_typedTsType == nullptr) {
424
+ return nullptr;
425
+ }
426
+ const auto _instanceType = reinterpret_cast<es2panda_Type*>(_typedTsType);
427
+ auto _typeVar = GetImpl()->TypeVariable(_context, _instanceType);
428
+ if (_typeVar == nullptr) {
429
+ return nullptr;
430
+ }
431
+ const auto result = reinterpret_cast<es2panda_Declaration*>(GetImpl()->VariableDeclaration(_context, _typeVar));
432
+ const auto declNode = GetImpl()->DeclNode(_context, result);
433
+ return declNode;
434
+ }
435
+ KOALA_INTEROP_2(ClassVariableDeclaration, KNativePointer, KNativePointer, KNativePointer)
436
+
437
+ KBoolean impl_IsMethodDefinition(KNativePointer nodePtr)
438
+ {
439
+ auto node = reinterpret_cast<es2panda_AstNode*>(nodePtr);
440
+ return GetImpl()->IsMethodDefinition(node);
441
+ }
442
+ KOALA_INTEROP_1(IsMethodDefinition, KBoolean, KNativePointer)
443
+ KNativePointer impl_TSInterfaceBodyBodyPtr(KNativePointer context, KNativePointer receiver)
444
+ {
445
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
446
+ const auto _receiver = reinterpret_cast<es2panda_AstNode*>(receiver);
447
+ std::size_t length;
448
+ auto result = GetImpl()->TSInterfaceBodyBodyPtr(_context, _receiver, &length);
449
+ return StageArena::cloneVector(result, length);
450
+ }
451
+ KOALA_INTEROP_2(TSInterfaceBodyBodyPtr, KNativePointer, KNativePointer, KNativePointer);
452
+
453
+ KNativePointer impl_AnnotationDeclarationPropertiesPtrConst(KNativePointer context, KNativePointer receiver)
454
+ {
455
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
456
+ const auto _receiver = reinterpret_cast<es2panda_AstNode*>(receiver);
457
+ std::size_t length;
458
+ auto result = GetImpl()->AnnotationDeclarationPropertiesPtrConst(_context, _receiver, &length);
459
+ return StageArena::cloneVector(result, length);
460
+ }
461
+ KOALA_INTEROP_2(AnnotationDeclarationPropertiesPtrConst, KNativePointer, KNativePointer, KNativePointer);
462
+
463
+ KNativePointer impl_SourceRangeStart(KNativePointer context, KNativePointer range)
464
+ {
465
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
466
+ const auto _range = reinterpret_cast<es2panda_SourceRange*>(range);
467
+ auto result = GetImpl()->SourceRangeStart(_context, _range);
468
+ return result;
469
+ }
470
+ KOALA_INTEROP_2(SourceRangeStart, KNativePointer, KNativePointer, KNativePointer)
471
+
472
+ KNativePointer impl_SourceRangeEnd(KNativePointer context, KNativePointer range) {
473
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
474
+ const auto _range = reinterpret_cast<es2panda_SourceRange*>(range);
475
+ auto result = GetImpl()->SourceRangeEnd(_context, _range);
476
+ return result;
477
+ }
478
+ KOALA_INTEROP_2(SourceRangeEnd, KNativePointer, KNativePointer, KNativePointer)
479
+
480
+ KBoolean impl_IsArrayExpression(KNativePointer nodePtr)
481
+ {
482
+ auto node = reinterpret_cast<es2panda_AstNode*>(nodePtr);
483
+ return GetImpl()->IsArrayExpression(node);
484
+ }
485
+ KOALA_INTEROP_1(IsArrayExpression, KBoolean, KNativePointer)
486
+
487
+ KNativePointer impl_ETSParserGetGlobalProgramAbsName(KNativePointer contextPtr)
488
+ {
489
+ auto context = reinterpret_cast<es2panda_Context*>(contextPtr);
490
+ auto result = GetImpl()->ETSParserGetGlobalProgramAbsName(context);
491
+ return new std::string(result);
492
+ }
493
+ KOALA_INTEROP_1(ETSParserGetGlobalProgramAbsName, KNativePointer, KNativePointer)
494
+
495
+ KNativePointer impl_CreateDiagnosticKind(KNativePointer context, KStringPtr& message, KInt type)
496
+ {
497
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
498
+ const auto _message = getStringCopy(message);
499
+ const auto _type = static_cast<es2panda_PluginDiagnosticType>(type);
500
+ return const_cast<es2panda_DiagnosticKind *>(GetImpl()->CreateDiagnosticKind(_context, _message, _type));
501
+ }
502
+ KOALA_INTEROP_3(CreateDiagnosticKind, KNativePointer, KNativePointer, KStringPtr, KInt)
503
+
504
+ KNativePointer impl_CreateDiagnosticInfo(KNativePointer context, KNativePointer kind, KStringArray argsPtr, KInt argc)
505
+ {
506
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
507
+ const auto _kind = reinterpret_cast<es2panda_DiagnosticKind*>(kind);
508
+ const std::size_t headerLen = 4;
509
+ const char** _args = new const char*[argc];
510
+ std::size_t position = headerLen;
511
+ std::size_t strLen;
512
+ for (std::size_t i = 0; i < static_cast<std::size_t>(argc); ++i) {
513
+ strLen = unpackUInt(argsPtr + position);
514
+ position += headerLen;
515
+ _args[i] = strdup(std::string(reinterpret_cast<const char*>(argsPtr + position), strLen).c_str());
516
+ position += strLen;
517
+ }
518
+ return GetImpl()->CreateDiagnosticInfo(_context, _kind, _args, argc);
519
+ }
520
+ KOALA_INTEROP_4(CreateDiagnosticInfo, KNativePointer, KNativePointer, KNativePointer, KStringArray, KInt)
521
+
522
+ KNativePointer impl_CreateSuggestionInfo(KNativePointer context, KNativePointer kind, KStringArray argsPtr,
523
+ KInt argc, KStringPtr& substitutionCode)
524
+ {
525
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
526
+ const auto _kind = reinterpret_cast<es2panda_DiagnosticKind *>(kind);
527
+ const std::size_t headerLen = 4;
528
+ const char** _args = new const char*[argc];
529
+ std::size_t position = headerLen;
530
+ std::size_t strLen;
531
+ for (std::size_t i = 0; i < static_cast<std::size_t>(argc); ++i) {
532
+ strLen = unpackUInt(argsPtr + position);
533
+ position += headerLen;
534
+ _args[i] = strdup(std::string(reinterpret_cast<const char*>(argsPtr + position), strLen).c_str());
535
+ position += strLen;
536
+ }
537
+ const auto _substitutionCode = getStringCopy(substitutionCode);
538
+ return GetImpl()->CreateSuggestionInfo(_context, _kind, _args, argc, _substitutionCode);
539
+ }
540
+ KOALA_INTEROP_5(CreateSuggestionInfo, KNativePointer, KNativePointer, KNativePointer, KStringArray, KInt, KStringPtr)
541
+
542
+ void impl_LogDiagnostic(KNativePointer context, KNativePointer kind, KStringArray argvPtr,
543
+ KInt argc, KNativePointer pos)
544
+ {
545
+ auto&& _context_ = reinterpret_cast<es2panda_Context *>(context);
546
+ auto&& _kind_ = reinterpret_cast<es2panda_DiagnosticKind *>(kind);
547
+ auto&& _pos_ = reinterpret_cast<es2panda_SourcePosition *>(pos);
548
+ const std::size_t headerLen = 4;
549
+ const char** argv = new const char*[argc];
550
+ std::size_t position = headerLen;
551
+ std::size_t strLen;
552
+ for (std::size_t i = 0; i < static_cast<std::size_t>(argc); ++i) {
553
+ strLen = unpackUInt(argvPtr + position);
554
+ position += headerLen;
555
+ argv[i] = strdup(std::string(reinterpret_cast<const char*>(argvPtr + position), strLen).c_str());
556
+ position += strLen;
557
+ }
558
+ GetImpl()->LogDiagnostic(_context_, _kind_, argv, argc, _pos_);
559
+ }
560
+ KOALA_INTEROP_V5(LogDiagnostic, KNativePointer, KNativePointer, KStringArray, KInt, KNativePointer)
561
+
562
+ void impl_LogDiagnosticWithSuggestion(KNativePointer context, KNativePointer diagnosticInfo,
563
+ KNativePointer suggestionInfo, KNativePointer range)
564
+ {
565
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
566
+ const auto _diagnosticInfo = reinterpret_cast<es2panda_DiagnosticInfo*>(diagnosticInfo);
567
+ const auto _suggestionInfo = reinterpret_cast<es2panda_SuggestionInfo*>(suggestionInfo);
568
+ const auto _range = reinterpret_cast<es2panda_SourceRange*>(range);
569
+ GetImpl()->LogDiagnosticWithSuggestion(_context, _diagnosticInfo, _suggestionInfo, _range);
570
+ }
571
+ KOALA_INTEROP_V4(LogDiagnosticWithSuggestion, KNativePointer, KNativePointer, KNativePointer, KNativePointer)
572
+
573
+ KInt impl_GenerateStaticDeclarationsFromContext(KNativePointer contextPtr, KStringPtr &outputPath)
574
+ {
575
+ auto context = reinterpret_cast<es2panda_Context *>(contextPtr);
576
+ return GetImpl()->GenerateStaticDeclarationsFromContext(context, outputPath.data());
577
+ }
578
+ KOALA_INTEROP_2(GenerateStaticDeclarationsFromContext, KInt, KNativePointer, KStringPtr)
579
+
580
+ KNativePointer impl_AnnotationUsageIrPropertiesPtrConst(KNativePointer context, KNativePointer receiver)
581
+ {
582
+ const auto _context = reinterpret_cast<es2panda_Context*>(context);
583
+ const auto _receiver = reinterpret_cast<es2panda_AstNode*>(receiver);
584
+ std::size_t length;
585
+ auto result = GetImpl()->AnnotationUsageIrPropertiesPtrConst(_context, _receiver, &length);
586
+ return StageArena::cloneVector(result, length);
587
+ }
588
+ KOALA_INTEROP_2(AnnotationUsageIrPropertiesPtrConst, KNativePointer, KNativePointer, KNativePointer);
589
+
590
+ KInt impl_GenerateTsDeclarationsFromContext(KNativePointer contextPtr, KStringPtr &outputDeclEts, KStringPtr &outputEts,
591
+ KBoolean exportAll, KBoolean isolated)
592
+ {
593
+ auto context = reinterpret_cast<es2panda_Context *>(contextPtr);
594
+ return GetImpl()->GenerateTsDeclarationsFromContext(context, outputDeclEts.data(), outputEts.data(), exportAll, isolated );
595
+ }
596
+ KOALA_INTEROP_5(GenerateTsDeclarationsFromContext, KInt, KNativePointer, KStringPtr, KStringPtr, KBoolean, KBoolean)