@idlizer/arktscgen 2.1.10-arktscgen-2 → 2.1.10-arktscgen-3a

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 (229) hide show
  1. package/build/libarkts-copy/generator/options.json5 +89 -6
  2. package/build/libarkts-copy/native/meson.build +1 -0
  3. package/build/libarkts-copy/native/src/bridges.cc +10 -4
  4. package/build/libarkts-copy/native/src/common.cc +0 -12
  5. package/build/libarkts-copy/native/src/generated/bridges.cc +416 -723
  6. package/build/libarkts-copy/native/src/memoryTracker.cc +178 -0
  7. package/build/libarkts-copy/native/src/memoryTracker.h +52 -0
  8. package/build/libarkts-copy/package.json +8 -8
  9. package/build/libarkts-copy/src/Es2pandaNativeModule.ts +14 -2
  10. package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +2 -2
  11. package/build/libarkts-copy/src/arkts-api/index.ts +2 -1
  12. package/build/libarkts-copy/src/arkts-api/node-utilities/ScriptFunction.ts +1 -1
  13. package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +4 -1
  14. package/{templates/node-map.ts → build/libarkts-copy/src/arkts-api/peers/DiagnosticKind.ts} +8 -19
  15. package/build/libarkts-copy/src/arkts-api/utilities/extensions.ts +26 -9
  16. package/build/libarkts-copy/src/arkts-api/utilities/performance.ts +309 -0
  17. package/build/libarkts-copy/src/arkts-api/utilities/private.ts +7 -21
  18. package/build/libarkts-copy/src/arkts-api/utilities/public.ts +61 -7
  19. package/build/libarkts-copy/src/arkts-api/visitor.ts +21 -14
  20. package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +1 -0
  21. package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +88 -172
  22. package/build/libarkts-copy/src/generated/factory.ts +2 -3
  23. package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +0 -1
  24. package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +0 -1
  25. package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +0 -1
  26. package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +11 -13
  27. package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +1 -2
  28. package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +3 -1
  29. package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +0 -5
  30. package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +12 -14
  31. package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +0 -1
  32. package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +0 -1
  33. package/build/libarkts-copy/src/generated/peers/AstDumper.ts +0 -1
  34. package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +0 -1
  35. package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +0 -1
  36. package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +0 -1
  37. package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +0 -1
  38. package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +0 -1
  39. package/build/libarkts-copy/src/generated/peers/BindingProps.ts +0 -1
  40. package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +0 -1
  41. package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +0 -1
  42. package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +0 -1
  43. package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +1 -2
  44. package/build/libarkts-copy/src/generated/peers/CallExpression.ts +6 -2
  45. package/build/libarkts-copy/src/generated/peers/CatchClause.ts +0 -1
  46. package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +0 -1
  47. package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +0 -1
  48. package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +1 -24
  49. package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +26 -20
  50. package/build/libarkts-copy/src/generated/peers/ClassElement.ts +2 -30
  51. package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +1 -2
  52. package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +10 -12
  53. package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +1 -2
  54. package/build/libarkts-copy/src/generated/peers/CodeGen.ts +0 -1
  55. package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +0 -1
  56. package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +1 -2
  57. package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +0 -1
  58. package/build/libarkts-copy/src/generated/peers/Declaration.ts +0 -1
  59. package/build/libarkts-copy/src/generated/peers/Decorator.ts +0 -1
  60. package/build/libarkts-copy/src/generated/peers/DiagnosticInfo.ts +0 -1
  61. package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +0 -1
  62. package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +0 -1
  63. package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +0 -1
  64. package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +0 -1
  65. package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +9 -3
  66. package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +0 -1
  67. package/build/libarkts-copy/src/generated/peers/ETSIntrinsicNode.ts +0 -1
  68. package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +0 -1
  69. package/build/libarkts-copy/src/generated/peers/ETSModule.ts +12 -14
  70. package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +0 -1
  71. package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +0 -1
  72. package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +0 -1
  73. package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +0 -1
  74. package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +0 -1
  75. package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +13 -15
  76. package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +0 -1
  77. package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +1 -2
  78. package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +0 -1
  79. package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +0 -1
  80. package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +0 -1
  81. package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +2 -3
  82. package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +3 -4
  83. package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +0 -1
  84. package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +0 -1
  85. package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +1 -2
  86. package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +0 -1
  87. package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +0 -1
  88. package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +2 -3
  89. package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +0 -1
  90. package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +2 -3
  91. package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +2 -3
  92. package/build/libarkts-copy/src/generated/peers/Expression.ts +0 -1
  93. package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +0 -1
  94. package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +0 -1
  95. package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +0 -1
  96. package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +0 -1
  97. package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +10 -16
  98. package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +2 -3
  99. package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +2 -2
  100. package/build/libarkts-copy/src/generated/peers/IRNode.ts +0 -1
  101. package/build/libarkts-copy/src/generated/peers/Identifier.ts +0 -10
  102. package/build/libarkts-copy/src/generated/peers/IfStatement.ts +0 -1
  103. package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +1 -2
  104. package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +1 -2
  105. package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +0 -1
  106. package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +1 -2
  107. package/build/libarkts-copy/src/generated/peers/ImportSource.ts +0 -1
  108. package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +2 -3
  109. package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +0 -1
  110. package/build/libarkts-copy/src/generated/peers/LabelPair.ts +0 -1
  111. package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +1 -2
  112. package/build/libarkts-copy/src/generated/peers/Literal.ts +0 -1
  113. package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +0 -1
  114. package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +0 -1
  115. package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +0 -1
  116. package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +0 -1
  117. package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +5 -6
  118. package/build/libarkts-copy/src/generated/peers/NamedType.ts +2 -3
  119. package/build/libarkts-copy/src/generated/peers/NewExpression.ts +0 -1
  120. package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +0 -1
  121. package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +0 -1
  122. package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +0 -1
  123. package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +0 -5
  124. package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +0 -1
  125. package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +0 -1
  126. package/build/libarkts-copy/src/generated/peers/OverloadDeclaration.ts +0 -1
  127. package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +0 -1
  128. package/build/libarkts-copy/src/generated/peers/Program.ts +9 -2
  129. package/build/libarkts-copy/src/generated/peers/Property.ts +0 -1
  130. package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +0 -1
  131. package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +0 -1
  132. package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +0 -1
  133. package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +22 -19
  134. package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +0 -1
  135. package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +0 -1
  136. package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +0 -1
  137. package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +2 -1
  138. package/build/libarkts-copy/src/generated/peers/SourceRange.ts +0 -1
  139. package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +0 -5
  140. package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +0 -1
  141. package/build/libarkts-copy/src/generated/peers/Statement.ts +0 -1
  142. package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +0 -1
  143. package/build/libarkts-copy/src/generated/peers/SuggestionInfo.ts +0 -1
  144. package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +0 -1
  145. package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +0 -1
  146. package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +1 -2
  147. package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +0 -1
  148. package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +0 -1
  149. package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +0 -1
  150. package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +0 -1
  151. package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +0 -1
  152. package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +1 -2
  153. package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +0 -1
  154. package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +1 -2
  155. package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +2 -25
  156. package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +0 -1
  157. package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +0 -1
  158. package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +1 -2
  159. package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +1 -2
  160. package/build/libarkts-copy/src/generated/peers/TSImportType.ts +1 -2
  161. package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +0 -1
  162. package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +0 -1
  163. package/build/libarkts-copy/src/generated/peers/TSInferType.ts +1 -2
  164. package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +0 -1
  165. package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +14 -38
  166. package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +0 -1
  167. package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +0 -1
  168. package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +0 -1
  169. package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +1 -2
  170. package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +1 -2
  171. package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +0 -1
  172. package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +0 -1
  173. package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +0 -1
  174. package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +0 -1
  175. package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +0 -1
  176. package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +0 -1
  177. package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +0 -1
  178. package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +0 -1
  179. package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +0 -1
  180. package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +0 -1
  181. package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +0 -1
  182. package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +2 -3
  183. package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +1 -2
  184. package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +0 -1
  185. package/build/libarkts-copy/src/generated/peers/TSThisType.ts +0 -1
  186. package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +0 -1
  187. package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +26 -40
  188. package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +0 -1
  189. package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +0 -1
  190. package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +0 -1
  191. package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +11 -13
  192. package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +1 -2
  193. package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +0 -1
  194. package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +0 -1
  195. package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +0 -1
  196. package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +2 -3
  197. package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +0 -1
  198. package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +0 -1
  199. package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +0 -1
  200. package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +0 -1
  201. package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +2 -3
  202. package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +0 -1
  203. package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +1 -2
  204. package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +0 -1
  205. package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +0 -1
  206. package/build/libarkts-copy/src/generated/peers/TryStatement.ts +1 -2
  207. package/build/libarkts-copy/src/generated/peers/TypeNode.ts +10 -12
  208. package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +0 -1
  209. package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +0 -1
  210. package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +0 -1
  211. package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +0 -1
  212. package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +0 -1
  213. package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +0 -1
  214. package/build/libarkts-copy/src/generated/peers/VReg.ts +0 -1
  215. package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +0 -1
  216. package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +11 -20
  217. package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +0 -1
  218. package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +0 -1
  219. package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +0 -1
  220. package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +0 -1
  221. package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +0 -1
  222. package/build/libarkts-copy/src/index.ts +2 -1
  223. package/build/libarkts-copy/src/plugin-utils.ts +0 -10
  224. package/build/libarkts-copy/src/reexport-for-generated.ts +1 -20
  225. package/lib/index.js +115 -38
  226. package/package.json +4 -3
  227. package/templates/factory.ts +0 -1
  228. package/templates/peer.ts +0 -1
  229. package/build/libarkts-copy/src/arkts-api/ChainExpressionFilter.ts +0 -79
package/lib/index.js CHANGED
@@ -3834,10 +3834,13 @@ var IDLExtendedAttributes;
3834
3834
  IDLExtendedAttributes["Interfaces"] = "Interfaces";
3835
3835
  IDLExtendedAttributes["NativeModule"] = "NativeModule";
3836
3836
  IDLExtendedAttributes["Optional"] = "Optional";
3837
+ IDLExtendedAttributes["UnionOnlyNull"] = "OptionalOnlyNull";
3838
+ IDLExtendedAttributes["UnionWithNull"] = "OptionalWithNull";
3837
3839
  IDLExtendedAttributes["OriginalEnumMemberName"] = "OriginalEnumMemberName";
3838
3840
  IDLExtendedAttributes["OriginalGenericName"] = "OriginalGenericName";
3839
3841
  IDLExtendedAttributes["Predefined"] = "Predefined";
3840
3842
  IDLExtendedAttributes["Protected"] = "Protected";
3843
+ IDLExtendedAttributes["Abstract"] = "Abstract";
3841
3844
  IDLExtendedAttributes["Synthetic"] = "Synthetic";
3842
3845
  IDLExtendedAttributes["Throws"] = "Throws";
3843
3846
  IDLExtendedAttributes["TraceKey"] = "TraceKey";
@@ -4904,10 +4907,22 @@ function linearizeNamespaceMembers(entries) {
4904
4907
  }
4905
4908
 
4906
4909
  const modulesCache = new Map();
4910
+ /**
4911
+ * Is source submodule of target.
4912
+ * Every source is submodule if target is empty string
4913
+ * @example `isSubmodule("a.b.c", "a") === true`
4914
+ * @example `isSubmodule("a", "a.b.c") === false`
4915
+ * @example `isSubmodule("a.b.cd", "a.b.c") === false`
4916
+ */
4917
+ function isSubmodule(source, target) {
4918
+ return source === target
4919
+ || target === ""
4920
+ || source.startsWith(target + '.');
4921
+ }
4907
4922
  function isInModule(nodeOrPackage, module) {
4908
4923
  if (typeof nodeOrPackage === 'object')
4909
4924
  return isInModule(getPackageName(nodeOrPackage), module);
4910
- return module.packages.some(modulePackage => nodeOrPackage.startsWith(modulePackage));
4925
+ return module.packages.some(modulePackage => isSubmodule(nodeOrPackage, modulePackage));
4911
4926
  }
4912
4927
  function isInExternalModule(node) {
4913
4928
  var _a;
@@ -5410,7 +5425,9 @@ class LanguageWriter {
5410
5425
  fs__namespace.writeFileSync(file, this.getOutput().join("\n"));
5411
5426
  }
5412
5427
  writeLines(lines) {
5413
- lines.split("\n").forEach(it => this.print(it));
5428
+ if (typeof lines === 'string')
5429
+ lines = lines.split("\n");
5430
+ lines.forEach(it => this.print(it));
5414
5431
  }
5415
5432
  writeGetterImplementation(method, op) {
5416
5433
  var _a;
@@ -5456,7 +5473,7 @@ class LanguageWriter {
5456
5473
  makeThis() {
5457
5474
  return new StringExpression("this");
5458
5475
  }
5459
- makeNull(value) {
5476
+ makeNull(type) {
5460
5477
  return new StringExpression("null");
5461
5478
  }
5462
5479
  makeVoid() {
@@ -6155,12 +6172,12 @@ class FatalParserException extends Error {
6155
6172
  }
6156
6173
  var TokenKind;
6157
6174
  (function (TokenKind) {
6158
- TokenKind["Words"] = "Words";
6159
- TokenKind["Literal"] = "Literal";
6160
- TokenKind["Symbol"] = "Symbol";
6161
- TokenKind["Comment"] = "Comment";
6162
- TokenKind["Whitespace"] = "Space";
6163
- TokenKind["End"] = "End";
6175
+ TokenKind[TokenKind["Words"] = 0] = "Words";
6176
+ TokenKind[TokenKind["Literal"] = 1] = "Literal";
6177
+ TokenKind[TokenKind["Symbol"] = 2] = "Symbol";
6178
+ TokenKind[TokenKind["Comment"] = 3] = "Comment";
6179
+ TokenKind[TokenKind["Whitespace"] = 4] = "Whitespace";
6180
+ TokenKind[TokenKind["End"] = 5] = "End";
6164
6181
  })(TokenKind || (TokenKind = {}));
6165
6182
  const supportedDeclarations = new Set(["attribute", "callback", "const", "constructor", "dictionary",
6166
6183
  "enum", "import", "interface", "namespace", "package", "typedef", "version"]);
@@ -6170,10 +6187,6 @@ const interfaceContent = new Set([IDLKind.Constructor, IDLKind.Const, IDLKind.Pr
6170
6187
  const globalContent = new Set([IDLKind.Namespace, IDLKind.Interface, IDLKind.Enum, IDLKind.Method, IDLKind.Typedef, IDLKind.Callback, IDLKind.Import, IDLKind.Version, IDLKind.Const]);
6171
6188
  const havingBlocks = new Set([IDLKind.Namespace, IDLKind.Interface, IDLKind.Enum]);
6172
6189
  const modifierTokens = new Set(["static", "readonly", "async"]);
6173
- // Uncomment in case of parser debugging
6174
- function trac(s) {
6175
- // console.log(s)
6176
- }
6177
6190
  class Parser {
6178
6191
  constructor(fileName, content) {
6179
6192
  var _a, _b;
@@ -6214,11 +6227,14 @@ class Parser {
6214
6227
  var _a;
6215
6228
  const previousDiagnosticsCount = DiagnosticMessageGroup.allGroupsEntries.length;
6216
6229
  try {
6217
- trac("parseIDL");
6218
6230
  this._lexerNext();
6219
6231
  this._prevToken = this._curToken;
6220
6232
  let file = this.parseFile();
6221
6233
  file.text = this.content;
6234
+ if (DiagnosticMessageGroup.allGroupsEntries.length != previousDiagnosticsCount) {
6235
+ // Empty for now, messages will be added in following `catch`.
6236
+ throw new FatalParserException();
6237
+ }
6222
6238
  return file;
6223
6239
  }
6224
6240
  catch (e) {
@@ -7298,6 +7314,7 @@ class IDLDeserializer {
7298
7314
  toIDLConstructor(file, node) {
7299
7315
  return this.withInfo(node, createConstructor(node.arguments.map(it => this.toIDLParameter(file, it)), undefined, {
7300
7316
  documentation: this.makeDocs(node),
7317
+ extendedAttributes: this.toExtendedAttributes(node.extAttrs),
7301
7318
  }));
7302
7319
  }
7303
7320
  toIDLParameter(file, node) {
@@ -8224,7 +8241,7 @@ class CppLanguageWriter extends CLikeLanguageWriter {
8224
8241
  writePrintLog(message) {
8225
8242
  this.print(`printf("${message}\\n");`);
8226
8243
  }
8227
- makeDefinedCheck(value, isTag) {
8244
+ makeDefinedCheck(value, type, isTag) {
8228
8245
  return this.makeString(isTag ? `${value} != ${PrimitiveTypeList.UndefinedTag}`
8229
8246
  : `runtimeType(${value}) != ${PrimitiveTypeList.UndefinedRuntime}`);
8230
8247
  }
@@ -8652,7 +8669,9 @@ class TSLanguageWriter extends LanguageWriter {
8652
8669
  const normalizedArgs = signature.args.map((it, i) => isOptionalType(it) && signature.isArgOptional(i) ? maybeUnwrapOptionalType(it) : it);
8653
8670
  this.printer.print(`${prefix}${name}${typeParams}(${normalizedArgs.map((it, index) => `${this.escapeKeyword(signature.argName(index))}${signature.isArgOptional(index) ? "?" : ``}: ${this.getNodeName(it)}${signature.argDefault(index) ? ' = ' + signature.argDefault(index) : ""}`).join(", ")})${needReturn ? ": " + this.getNodeName(signature.returnType) : ""}${needBracket ? " {" : ""}`);
8654
8671
  }
8655
- makeNull() {
8672
+ makeNull(type) {
8673
+ if (type && hasExtAttribute(type, IDLExtendedAttributes.UnionOnlyNull))
8674
+ return new StringExpression("null");
8656
8675
  return new StringExpression("undefined");
8657
8676
  }
8658
8677
  makeAssign(variableName, type, expr, isDeclared = true, isConst = true, options) {
@@ -8709,7 +8728,15 @@ class TSLanguageWriter extends LanguageWriter {
8709
8728
  makeRuntimeType(rt) {
8710
8729
  return this.makeString(`RuntimeType.${RuntimeType[rt]}`);
8711
8730
  }
8712
- makeDefinedCheck(value) {
8731
+ makeDefinedCheck(value, type) {
8732
+ if (type) {
8733
+ if (hasExtAttribute(type, IDLExtendedAttributes.UnionWithNull)) {
8734
+ return this.makeString(`${value} !== undefined && ${value} !== null`);
8735
+ }
8736
+ else if (hasExtAttribute(type, IDLExtendedAttributes.UnionOnlyNull)) {
8737
+ return this.makeString(`${value} !== null`);
8738
+ }
8739
+ }
8713
8740
  return this.makeString(`${value} !== undefined`);
8714
8741
  }
8715
8742
  makeTupleAlloc(option) {
@@ -9039,6 +9066,12 @@ class ETSLanguageWriter extends TSLanguageWriter {
9039
9066
  super(printer, resolver, typeConvertor, Language.ARKTS);
9040
9067
  this.arrayConvertor = arrayConvertor;
9041
9068
  }
9069
+ pushNamespace(namespace, options) {
9070
+ if (options.isDefault) {
9071
+ this.print(`export default ${namespace}`);
9072
+ }
9073
+ super.pushNamespace(namespace, options);
9074
+ }
9042
9075
  fork(options) {
9043
9076
  var _a;
9044
9077
  return new ETSLanguageWriter(new IndentedPrinter([], this.indentDepth()), (_a = options === null || options === void 0 ? void 0 : options.resolver) !== null && _a !== void 0 ? _a : this.resolver, this.typeConvertor, this.arrayConvertor);
@@ -9323,7 +9356,7 @@ class AggregateConvertor extends BaseArgConvertor {
9323
9356
  statements.push(assigneer(writer.makeString(bufferName)));
9324
9357
  }
9325
9358
  else if (writer.language == Language.CJ) {
9326
- const resultExpression = writer.makeString(`${writer.getNodeName(this.idlType)}(${this.decl.properties.map(prop => `${bufferName}_${prop.name}`).join(", ")})`);
9359
+ const resultExpression = writer.makeString(`${writer.getNodeName(this.idlType)}(${this.decl.properties.map(prop => `${bufferName}${capitalize(prop.name)}`).join(", ")})`);
9327
9360
  statements.push(assigneer(resultExpression));
9328
9361
  }
9329
9362
  else if (writer.language == Language.KOTLIN) {
@@ -12425,6 +12458,32 @@ class Typechecker {
12425
12458
  }
12426
12459
  return ancestor === Config.defaultAncestor;
12427
12460
  }
12461
+ hasDescendants(ref) {
12462
+ const iface = isReferenceType(ref) ? this.resolveReference(ref) : ref;
12463
+ if (!iface || !isInterface$1(iface)) {
12464
+ return false;
12465
+ }
12466
+ const lookupScopes = [];
12467
+ const parent = iface.parent;
12468
+ if (parent && isNamespace(parent)) {
12469
+ lookupScopes.push(...this.namespaces.filter(ns => ns.name === parent.name));
12470
+ }
12471
+ else {
12472
+ lookupScopes.push(this.file);
12473
+ }
12474
+ const visitInterfaces = (node, cb) => {
12475
+ switch (node.kind) {
12476
+ case IDLKind.File:
12477
+ return node.entries.some((value) => visitInterfaces(value, cb));
12478
+ case IDLKind.Namespace:
12479
+ return node.members.some((value) => visitInterfaces(value, cb));
12480
+ case IDLKind.Interface:
12481
+ return cb(node);
12482
+ }
12483
+ return false;
12484
+ };
12485
+ return lookupScopes.some(scope => visitInterfaces(scope, (node) => node.name !== iface.name && this.isHeir(node, iface.name)));
12486
+ }
12428
12487
  isPeer(node) {
12429
12488
  if (node.name === Config.astNodeCommonAncestor)
12430
12489
  return false; // TODO: is handwritten
@@ -12887,19 +12946,22 @@ class BridgesPrinter extends InteropPrinter {
12887
12946
  writer.writeStatements(writer.makeStatement(nativeCall), writer.makeReturn(writer.makeString('')));
12888
12947
  }
12889
12948
  else {
12890
- writer.writeStatements(writer.makeAssign(BridgesConstructions.result, undefined, nativeCall, true, false), writer.makeReturn(writer.makeString(this.maybeDropConst(this.makeReturnExpression(node.returnType), node))));
12949
+ writer.writeStatements(writer.makeAssign(BridgesConstructions.result, undefined, nativeCall, true, false), writer.makeReturn(this.makeReturnExpression(node)));
12891
12950
  }
12892
12951
  }
12893
- makeReturnExpression(returnType) {
12894
- if (isSequence(returnType)) {
12895
- return BridgesConstructions.sequenceConstructor(BridgesConstructions.result, BridgesConstructions.sequenceLengthUsage);
12896
- }
12897
- if (isString(returnType)) {
12898
- return BridgesConstructions.stringConstructor(BridgesConstructions.result);
12952
+ makeReturnExpression(node) {
12953
+ const makeStringCtor = () => BridgesConstructions.stringConstructor(BridgesConstructions.result);
12954
+ const makeSequenceCtor = () => BridgesConstructions.sequenceConstructor(BridgesConstructions.result, BridgesConstructions.sequenceLengthUsage);
12955
+ const expr = this.maybeDropConst(node, isSequence(node.returnType) ? makeSequenceCtor() :
12956
+ isString(node.returnType) ? makeStringCtor() :
12957
+ BridgesConstructions.result);
12958
+ if (isSequence(node.returnType)) {
12959
+ // writer.makeTernary annoys by adding the extra parentheses
12960
+ return this.writer.makeString(`${BridgesConstructions.sequenceLengthUsage} ? ${expr} : nullptr`);
12899
12961
  }
12900
- return BridgesConstructions.result;
12962
+ return this.writer.makeString(expr);
12901
12963
  }
12902
- maybeDropConst(value, node) {
12964
+ maybeDropConst(node, value) {
12903
12965
  if (this.typechecker.isConstReturnValue(node)) {
12904
12966
  return BridgesConstructions.dropConstCast(value);
12905
12967
  }
@@ -13465,21 +13527,35 @@ class BindingParameterTypeConvertor extends TopLevelTypeConvertor {
13465
13527
  * limitations under the License.
13466
13528
  */
13467
13529
  class BindingReturnValueTypeConvertor extends TopLevelTypeConvertor {
13468
- constructor(typechecker) {
13530
+ constructor(typechecker, importer) {
13469
13531
  const plain = (type) => (writer, call) => call;
13470
- const wrap = (wrapWith) => (writer, call) => writer.makeFunctionCall(wrapWith, [call]);
13532
+ const wrap = (wrapWith, ...args) => (writer, call) => writer.makeFunctionCall(wrapWith, [call, ...args.map(a => writer.makeString(a))]);
13533
+ const isAstNode = (ref) => (isReferenceType(ref) || isInterface$1(ref)) && this.typechecker.isHeir(ref, Config.astNodeCommonAncestor);
13534
+ const makeArgs = (type) => {
13535
+ const iface = isReferenceType(type)
13536
+ ? this.typechecker.resolveReference(type)
13537
+ : undefined;
13538
+ if (iface && isAstNode(iface) && !this.typechecker.hasDescendants(iface)) {
13539
+ const astNodeTypeName = this.typechecker.nodeTypeName(iface);
13540
+ if (astNodeTypeName) {
13541
+ importer.withEnumImport(Config.nodeTypeAttribute);
13542
+ return [astNodeTypeName];
13543
+ }
13544
+ }
13545
+ return [];
13546
+ };
13471
13547
  super(typechecker, {
13472
- sequence: (type) => wrap(PeersConstructions.arrayOfPointersToArrayOfPeers),
13548
+ sequence: (type) => wrap(PeersConstructions.arrayOfPointersToArrayOfPeers, ...makeArgs(type.elementType[0])),
13473
13549
  string: (type) => wrap(PeersConstructions.receiveString),
13474
- reference: (type) => this.typechecker.isHeir(type, Config.astNodeCommonAncestor)
13475
- ? wrap(PeersConstructions.unpackNonNullable)
13550
+ reference: (type) => isAstNode(type)
13551
+ ? wrap(PeersConstructions.unpackNonNullable, ...makeArgs(type))
13476
13552
  : wrap(baseNameString(type.name)),
13477
13553
  optional: (type) => {
13478
- if (isReferenceType(type.type)) {
13479
- if (this.typechecker.isHeir(type.type, Config.astNodeCommonAncestor)) {
13480
- return wrap(PeersConstructions.unpackNullable);
13481
- }
13482
- return wrap(PeersConstructions.newOf(baseNameString(type.type.name)));
13554
+ const innerType = type.type;
13555
+ if (isReferenceType(innerType)) {
13556
+ return isAstNode(innerType)
13557
+ ? wrap(PeersConstructions.unpackNullable, ...makeArgs(innerType))
13558
+ : wrap(PeersConstructions.newOf(baseNameString(innerType.name)));
13483
13559
  }
13484
13560
  throwException(`unexpected optional of non-reference type`);
13485
13561
  },
@@ -13490,6 +13566,7 @@ class BindingReturnValueTypeConvertor extends TopLevelTypeConvertor {
13490
13566
  boolean: plain,
13491
13567
  undefined: plain
13492
13568
  });
13569
+ this.importer = importer;
13493
13570
  }
13494
13571
  }
13495
13572
 
@@ -13530,7 +13607,7 @@ class PeerPrinter extends SingleFilePrinter {
13530
13607
  this.typechecker = new Typechecker(this.idl);
13531
13608
  this.importer = new Importer(this.typechecker, `.`, this.node.name);
13532
13609
  this.bindingParameterTypeConvertor = new BindingParameterTypeConvertor(this.typechecker);
13533
- this.bindingReturnValueTypeConvertor = new BindingReturnValueTypeConvertor(this.typechecker);
13610
+ this.bindingReturnValueTypeConvertor = new BindingReturnValueTypeConvertor(this.typechecker, this.importer);
13534
13611
  this.parent = (_a = parent(this.node)) !== null && _a !== void 0 ? _a : Config.defaultAncestor;
13535
13612
  this.writer = new TSLanguageWriter(new IndentedPrinter(), createEmptyReferenceResolver(), { convert: (node) => convertAndImport(this.importer, new class extends LibraryTypeConvertor {
13536
13613
  convertTypeReference(type) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlizer/arktscgen",
3
- "version": "2.1.10-arktscgen-2",
3
+ "version": "2.1.10-arktscgen-3a",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "bin": "lib/index.js",
@@ -19,7 +19,7 @@
19
19
  "license": "Apache-2.0",
20
20
  "keywords": [],
21
21
  "dependencies": {
22
- "@idlizer/core": "2.1.10-arktscgen-2",
22
+ "@idlizer/core": "2.1.10-arktscgen-3a",
23
23
  "@types/node": "^18.0.0",
24
24
  "commander": "^10.0.0",
25
25
  "typescript": "^4.9.5"
@@ -38,7 +38,8 @@
38
38
  },
39
39
  "scripts": {
40
40
  "compile:core": "npm run --prefix ../core compile",
41
- "compile": "npm run compile:core && rollup -c",
41
+ "compile:self": "rollup -c",
42
+ "compile": "npm run compile:core && npm run compile:self",
42
43
  "external:test": "npm run --prefix ../external/ui2abc/libarkts run",
43
44
  "external:clean": "rimraf ../external/ui2abc/libarkts/src/generated/peers",
44
45
  "external:generate": "npm run compile && node . --panda-sdk-path ../external/incremental/tools/panda/node_modules/@panda/sdk/ --output-dir ../external/ui2abc/ --options-file ../external/ui2abc/libarkts/generator/options.json5 --debug --no-initialize",
@@ -24,7 +24,6 @@ import {
24
24
  unpackNonNullableNode,
25
25
  unpackNode,
26
26
  unpackNodeArray,
27
- assertValidPeer,
28
27
  AstNode,
29
28
  KNativePointer,
30
29
  nodeByType,
package/templates/peer.ts CHANGED
@@ -24,7 +24,6 @@ import {
24
24
  unpackNonNullableNode,
25
25
  unpackNode,
26
26
  unpackNodeArray,
27
- assertValidPeer,
28
27
  AstNode,
29
28
  KNativePointer,
30
29
  nodeByType,
@@ -1,79 +0,0 @@
1
- /*
2
- * Copyright (c) 2022-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 { BlockStatement, ChainExpression, Expression, isChainExpression, isMemberExpression, MemberExpression } from "src/generated";
17
- import { AbstractVisitor } from "./AbstractVisitor";
18
- import { AstNode } from "./peers/AstNode"
19
- import { factory } from "./factory/nodeFactory";
20
- import { Es2pandaTokenType, Es2pandaVariableDeclarationKind, Es2pandaVariableDeclaratorFlag } from "src/generated/Es2pandaEnums";
21
-
22
-
23
- export class ChainExpressionFilter extends AbstractVisitor {
24
- static counter = 0
25
- transformChainExpression(node: ChainExpression): Expression {
26
- const expression = node.expression
27
- if (expression == undefined) return node
28
- if (!isMemberExpression(expression)) return node
29
- return this.transformMemberExpression(expression)
30
- }
31
- transformMemberExpression(expression: MemberExpression): Expression {
32
- const temporaryVarName = `chaintmp%%_${ChainExpressionFilter.counter++}`
33
- return factory.createBlockExpression(
34
- [
35
- factory.createVariableDeclaration(
36
- Es2pandaVariableDeclarationKind.VARIABLE_DECLARATION_KIND_LET,
37
- [
38
- factory.createVariableDeclarator(
39
- Es2pandaVariableDeclaratorFlag.VARIABLE_DECLARATOR_FLAG_LET,
40
- factory.createIdentifier(temporaryVarName),
41
- expression.object
42
- )
43
- ],
44
- undefined
45
- ),
46
- factory.createExpressionStatement(
47
- factory.createConditionalExpression(
48
- factory.createBinaryExpression(
49
- factory.createIdentifier(temporaryVarName, undefined),
50
- factory.createUndefinedLiteral(),
51
- Es2pandaTokenType.TOKEN_TYPE_PUNCTUATOR_STRICT_EQUAL
52
- ),
53
- factory.createUndefinedLiteral(),
54
- factory.createMemberExpression(
55
- factory.createIdentifier(temporaryVarName, undefined),
56
- expression.property,
57
- expression.kind,
58
- expression.isComputed,
59
- false
60
- )
61
- )
62
- )
63
- ]
64
- )
65
- }
66
-
67
-
68
- visitor(beforeChildren: BlockStatement): BlockStatement
69
- visitor(beforeChildren: AstNode): AstNode {
70
- const node = this.visitEachChild(beforeChildren)
71
- if (isChainExpression(node)) {
72
- return this.transformChainExpression(node)
73
- }
74
- if (isMemberExpression(node) && node.isOptional) {
75
- return this.transformMemberExpression(node)
76
- }
77
- return node
78
- }
79
- }