@ttsc/factory 0.15.9 → 0.15.10

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 (1001) hide show
  1. package/lib/TsPrinter.mjs +1344 -0
  2. package/lib/TsPrinter.mjs.map +1 -0
  3. package/lib/ast/Node.mjs +2 -0
  4. package/lib/ast/Node.mjs.map +1 -0
  5. package/lib/ast/clauses/HeritageClause.mjs +2 -0
  6. package/lib/ast/clauses/HeritageClause.mjs.map +1 -0
  7. package/lib/ast/clauses/ParameterDeclaration.mjs +2 -0
  8. package/lib/ast/clauses/ParameterDeclaration.mjs.map +1 -0
  9. package/lib/ast/declarations/ClassDeclaration.mjs +2 -0
  10. package/lib/ast/declarations/ClassDeclaration.mjs.map +1 -0
  11. package/lib/ast/declarations/ClassElement.mjs +2 -0
  12. package/lib/ast/declarations/ClassElement.mjs.map +1 -0
  13. package/lib/ast/declarations/ClassStaticBlockDeclaration.mjs +2 -0
  14. package/lib/ast/declarations/ClassStaticBlockDeclaration.mjs.map +1 -0
  15. package/lib/ast/declarations/ConstructorDeclaration.mjs +2 -0
  16. package/lib/ast/declarations/ConstructorDeclaration.mjs.map +1 -0
  17. package/lib/ast/declarations/EnumDeclaration.mjs +2 -0
  18. package/lib/ast/declarations/EnumDeclaration.mjs.map +1 -0
  19. package/lib/ast/declarations/EnumMember.mjs +2 -0
  20. package/lib/ast/declarations/EnumMember.mjs.map +1 -0
  21. package/lib/ast/declarations/ExternalModuleReference.mjs +2 -0
  22. package/lib/ast/declarations/ExternalModuleReference.mjs.map +1 -0
  23. package/lib/ast/declarations/FunctionDeclaration.mjs +2 -0
  24. package/lib/ast/declarations/FunctionDeclaration.mjs.map +1 -0
  25. package/lib/ast/declarations/GetAccessorDeclaration.mjs +2 -0
  26. package/lib/ast/declarations/GetAccessorDeclaration.mjs.map +1 -0
  27. package/lib/ast/declarations/ImportEqualsDeclaration.mjs +2 -0
  28. package/lib/ast/declarations/ImportEqualsDeclaration.mjs.map +1 -0
  29. package/lib/ast/declarations/InterfaceDeclaration.mjs +2 -0
  30. package/lib/ast/declarations/InterfaceDeclaration.mjs.map +1 -0
  31. package/lib/ast/declarations/MethodDeclaration.mjs +2 -0
  32. package/lib/ast/declarations/MethodDeclaration.mjs.map +1 -0
  33. package/lib/ast/declarations/ModuleBlock.mjs +2 -0
  34. package/lib/ast/declarations/ModuleBlock.mjs.map +1 -0
  35. package/lib/ast/declarations/ModuleBody.mjs +2 -0
  36. package/lib/ast/declarations/ModuleBody.mjs.map +1 -0
  37. package/lib/ast/declarations/ModuleDeclaration.mjs +2 -0
  38. package/lib/ast/declarations/ModuleDeclaration.mjs.map +1 -0
  39. package/lib/ast/declarations/ModuleName.mjs +2 -0
  40. package/lib/ast/declarations/ModuleName.mjs.map +1 -0
  41. package/lib/ast/declarations/ModuleReference.mjs +2 -0
  42. package/lib/ast/declarations/ModuleReference.mjs.map +1 -0
  43. package/lib/ast/declarations/NamespaceExportDeclaration.mjs +2 -0
  44. package/lib/ast/declarations/NamespaceExportDeclaration.mjs.map +1 -0
  45. package/lib/ast/declarations/PropertyDeclaration.mjs +2 -0
  46. package/lib/ast/declarations/PropertyDeclaration.mjs.map +1 -0
  47. package/lib/ast/declarations/SemicolonClassElement.mjs +2 -0
  48. package/lib/ast/declarations/SemicolonClassElement.mjs.map +1 -0
  49. package/lib/ast/declarations/SetAccessorDeclaration.mjs +2 -0
  50. package/lib/ast/declarations/SetAccessorDeclaration.mjs.map +1 -0
  51. package/lib/ast/declarations/TypeAliasDeclaration.mjs +2 -0
  52. package/lib/ast/declarations/TypeAliasDeclaration.mjs.map +1 -0
  53. package/lib/ast/expressions/ArrayBindingElement.mjs +2 -0
  54. package/lib/ast/expressions/ArrayBindingElement.mjs.map +1 -0
  55. package/lib/ast/expressions/ArrayBindingPattern.mjs +2 -0
  56. package/lib/ast/expressions/ArrayBindingPattern.mjs.map +1 -0
  57. package/lib/ast/expressions/ArrayLiteralExpression.mjs +2 -0
  58. package/lib/ast/expressions/ArrayLiteralExpression.mjs.map +1 -0
  59. package/lib/ast/expressions/ArrowFunction.mjs +2 -0
  60. package/lib/ast/expressions/ArrowFunction.mjs.map +1 -0
  61. package/lib/ast/expressions/AsExpression.mjs +2 -0
  62. package/lib/ast/expressions/AsExpression.mjs.map +1 -0
  63. package/lib/ast/expressions/AwaitExpression.mjs +2 -0
  64. package/lib/ast/expressions/AwaitExpression.mjs.map +1 -0
  65. package/lib/ast/expressions/BigIntLiteral.mjs +2 -0
  66. package/lib/ast/expressions/BigIntLiteral.mjs.map +1 -0
  67. package/lib/ast/expressions/BinaryExpression.mjs +2 -0
  68. package/lib/ast/expressions/BinaryExpression.mjs.map +1 -0
  69. package/lib/ast/expressions/BindingElement.mjs +2 -0
  70. package/lib/ast/expressions/BindingElement.mjs.map +1 -0
  71. package/lib/ast/expressions/BindingName.mjs +2 -0
  72. package/lib/ast/expressions/BindingName.mjs.map +1 -0
  73. package/lib/ast/expressions/CallChain.mjs +2 -0
  74. package/lib/ast/expressions/CallChain.mjs.map +1 -0
  75. package/lib/ast/expressions/CallExpression.mjs +2 -0
  76. package/lib/ast/expressions/CallExpression.mjs.map +1 -0
  77. package/lib/ast/expressions/ClassExpression.mjs +2 -0
  78. package/lib/ast/expressions/ClassExpression.mjs.map +1 -0
  79. package/lib/ast/expressions/CommaListExpression.mjs +2 -0
  80. package/lib/ast/expressions/CommaListExpression.mjs.map +1 -0
  81. package/lib/ast/expressions/ComputedPropertyName.mjs +2 -0
  82. package/lib/ast/expressions/ComputedPropertyName.mjs.map +1 -0
  83. package/lib/ast/expressions/ConditionalExpression.mjs +2 -0
  84. package/lib/ast/expressions/ConditionalExpression.mjs.map +1 -0
  85. package/lib/ast/expressions/DeleteExpression.mjs +2 -0
  86. package/lib/ast/expressions/DeleteExpression.mjs.map +1 -0
  87. package/lib/ast/expressions/ElementAccessChain.mjs +2 -0
  88. package/lib/ast/expressions/ElementAccessChain.mjs.map +1 -0
  89. package/lib/ast/expressions/ElementAccessExpression.mjs +2 -0
  90. package/lib/ast/expressions/ElementAccessExpression.mjs.map +1 -0
  91. package/lib/ast/expressions/Expression.mjs +2 -0
  92. package/lib/ast/expressions/Expression.mjs.map +1 -0
  93. package/lib/ast/expressions/FunctionExpression.mjs +2 -0
  94. package/lib/ast/expressions/FunctionExpression.mjs.map +1 -0
  95. package/lib/ast/expressions/MetaProperty.mjs +2 -0
  96. package/lib/ast/expressions/MetaProperty.mjs.map +1 -0
  97. package/lib/ast/expressions/NewExpression.mjs +2 -0
  98. package/lib/ast/expressions/NewExpression.mjs.map +1 -0
  99. package/lib/ast/expressions/NoSubstitutionTemplateLiteral.mjs +2 -0
  100. package/lib/ast/expressions/NoSubstitutionTemplateLiteral.mjs.map +1 -0
  101. package/lib/ast/expressions/NonNullChain.mjs +2 -0
  102. package/lib/ast/expressions/NonNullChain.mjs.map +1 -0
  103. package/lib/ast/expressions/NonNullExpression.mjs +2 -0
  104. package/lib/ast/expressions/NonNullExpression.mjs.map +1 -0
  105. package/lib/ast/expressions/NumericLiteral.mjs +2 -0
  106. package/lib/ast/expressions/NumericLiteral.mjs.map +1 -0
  107. package/lib/ast/expressions/ObjectBindingPattern.mjs +2 -0
  108. package/lib/ast/expressions/ObjectBindingPattern.mjs.map +1 -0
  109. package/lib/ast/expressions/ObjectLiteralElement.mjs +2 -0
  110. package/lib/ast/expressions/ObjectLiteralElement.mjs.map +1 -0
  111. package/lib/ast/expressions/ObjectLiteralExpression.mjs +2 -0
  112. package/lib/ast/expressions/ObjectLiteralExpression.mjs.map +1 -0
  113. package/lib/ast/expressions/OmittedExpression.mjs +2 -0
  114. package/lib/ast/expressions/OmittedExpression.mjs.map +1 -0
  115. package/lib/ast/expressions/ParenthesizedExpression.mjs +2 -0
  116. package/lib/ast/expressions/ParenthesizedExpression.mjs.map +1 -0
  117. package/lib/ast/expressions/PartiallyEmittedExpression.mjs +2 -0
  118. package/lib/ast/expressions/PartiallyEmittedExpression.mjs.map +1 -0
  119. package/lib/ast/expressions/PostfixUnaryExpression.mjs +2 -0
  120. package/lib/ast/expressions/PostfixUnaryExpression.mjs.map +1 -0
  121. package/lib/ast/expressions/PrefixUnaryExpression.mjs +2 -0
  122. package/lib/ast/expressions/PrefixUnaryExpression.mjs.map +1 -0
  123. package/lib/ast/expressions/PropertyAccessChain.mjs +2 -0
  124. package/lib/ast/expressions/PropertyAccessChain.mjs.map +1 -0
  125. package/lib/ast/expressions/PropertyAccessExpression.mjs +2 -0
  126. package/lib/ast/expressions/PropertyAccessExpression.mjs.map +1 -0
  127. package/lib/ast/expressions/PropertyAssignment.mjs +2 -0
  128. package/lib/ast/expressions/PropertyAssignment.mjs.map +1 -0
  129. package/lib/ast/expressions/RegularExpressionLiteral.mjs +2 -0
  130. package/lib/ast/expressions/RegularExpressionLiteral.mjs.map +1 -0
  131. package/lib/ast/expressions/SatisfiesExpression.mjs +2 -0
  132. package/lib/ast/expressions/SatisfiesExpression.mjs.map +1 -0
  133. package/lib/ast/expressions/ShorthandPropertyAssignment.mjs +2 -0
  134. package/lib/ast/expressions/ShorthandPropertyAssignment.mjs.map +1 -0
  135. package/lib/ast/expressions/SpreadAssignment.mjs +2 -0
  136. package/lib/ast/expressions/SpreadAssignment.mjs.map +1 -0
  137. package/lib/ast/expressions/SpreadElement.mjs +2 -0
  138. package/lib/ast/expressions/SpreadElement.mjs.map +1 -0
  139. package/lib/ast/expressions/StringLiteral.mjs +2 -0
  140. package/lib/ast/expressions/StringLiteral.mjs.map +1 -0
  141. package/lib/ast/expressions/TaggedTemplateExpression.mjs +2 -0
  142. package/lib/ast/expressions/TaggedTemplateExpression.mjs.map +1 -0
  143. package/lib/ast/expressions/TemplateExpression.mjs +2 -0
  144. package/lib/ast/expressions/TemplateExpression.mjs.map +1 -0
  145. package/lib/ast/expressions/TemplateHead.mjs +2 -0
  146. package/lib/ast/expressions/TemplateHead.mjs.map +1 -0
  147. package/lib/ast/expressions/TemplateLiteral.mjs +2 -0
  148. package/lib/ast/expressions/TemplateLiteral.mjs.map +1 -0
  149. package/lib/ast/expressions/TemplateMiddle.mjs +2 -0
  150. package/lib/ast/expressions/TemplateMiddle.mjs.map +1 -0
  151. package/lib/ast/expressions/TemplateSpan.mjs +2 -0
  152. package/lib/ast/expressions/TemplateSpan.mjs.map +1 -0
  153. package/lib/ast/expressions/TemplateTail.mjs +2 -0
  154. package/lib/ast/expressions/TemplateTail.mjs.map +1 -0
  155. package/lib/ast/expressions/TypeAssertion.mjs +2 -0
  156. package/lib/ast/expressions/TypeAssertion.mjs.map +1 -0
  157. package/lib/ast/expressions/TypeOfExpression.mjs +2 -0
  158. package/lib/ast/expressions/TypeOfExpression.mjs.map +1 -0
  159. package/lib/ast/expressions/VoidExpression.mjs +2 -0
  160. package/lib/ast/expressions/VoidExpression.mjs.map +1 -0
  161. package/lib/ast/expressions/YieldExpression.mjs +2 -0
  162. package/lib/ast/expressions/YieldExpression.mjs.map +1 -0
  163. package/lib/ast/file/Bundle.mjs +2 -0
  164. package/lib/ast/file/Bundle.mjs.map +1 -0
  165. package/lib/ast/file/SourceFile.mjs +2 -0
  166. package/lib/ast/file/SourceFile.mjs.map +1 -0
  167. package/lib/ast/imports/ExportAssignment.mjs +2 -0
  168. package/lib/ast/imports/ExportAssignment.mjs.map +1 -0
  169. package/lib/ast/imports/ExportDeclaration.mjs +2 -0
  170. package/lib/ast/imports/ExportDeclaration.mjs.map +1 -0
  171. package/lib/ast/imports/ExportSpecifier.mjs +2 -0
  172. package/lib/ast/imports/ExportSpecifier.mjs.map +1 -0
  173. package/lib/ast/imports/ImportAttribute.mjs +2 -0
  174. package/lib/ast/imports/ImportAttribute.mjs.map +1 -0
  175. package/lib/ast/imports/ImportAttributeName.mjs +2 -0
  176. package/lib/ast/imports/ImportAttributeName.mjs.map +1 -0
  177. package/lib/ast/imports/ImportAttributes.mjs +2 -0
  178. package/lib/ast/imports/ImportAttributes.mjs.map +1 -0
  179. package/lib/ast/imports/ImportClause.mjs +2 -0
  180. package/lib/ast/imports/ImportClause.mjs.map +1 -0
  181. package/lib/ast/imports/ImportDeclaration.mjs +2 -0
  182. package/lib/ast/imports/ImportDeclaration.mjs.map +1 -0
  183. package/lib/ast/imports/ImportSpecifier.mjs +2 -0
  184. package/lib/ast/imports/ImportSpecifier.mjs.map +1 -0
  185. package/lib/ast/imports/NamedExports.mjs +2 -0
  186. package/lib/ast/imports/NamedExports.mjs.map +1 -0
  187. package/lib/ast/imports/NamedImports.mjs +2 -0
  188. package/lib/ast/imports/NamedImports.mjs.map +1 -0
  189. package/lib/ast/imports/NamespaceExport.mjs +2 -0
  190. package/lib/ast/imports/NamespaceExport.mjs.map +1 -0
  191. package/lib/ast/imports/NamespaceImport.mjs +2 -0
  192. package/lib/ast/imports/NamespaceImport.mjs.map +1 -0
  193. package/lib/ast/index.mjs +2 -0
  194. package/lib/ast/index.mjs.map +1 -0
  195. package/lib/ast/jsdoc/JSDoc.mjs +2 -0
  196. package/lib/ast/jsdoc/JSDoc.mjs.map +1 -0
  197. package/lib/ast/jsdoc/JSDocAllType.mjs +2 -0
  198. package/lib/ast/jsdoc/JSDocAllType.mjs.map +1 -0
  199. package/lib/ast/jsdoc/JSDocAugmentsTag.mjs +2 -0
  200. package/lib/ast/jsdoc/JSDocAugmentsTag.mjs.map +1 -0
  201. package/lib/ast/jsdoc/JSDocAuthorTag.mjs +2 -0
  202. package/lib/ast/jsdoc/JSDocAuthorTag.mjs.map +1 -0
  203. package/lib/ast/jsdoc/JSDocCallbackTag.mjs +2 -0
  204. package/lib/ast/jsdoc/JSDocCallbackTag.mjs.map +1 -0
  205. package/lib/ast/jsdoc/JSDocClassTag.mjs +2 -0
  206. package/lib/ast/jsdoc/JSDocClassTag.mjs.map +1 -0
  207. package/lib/ast/jsdoc/JSDocComment.mjs +2 -0
  208. package/lib/ast/jsdoc/JSDocComment.mjs.map +1 -0
  209. package/lib/ast/jsdoc/JSDocDeprecatedTag.mjs +2 -0
  210. package/lib/ast/jsdoc/JSDocDeprecatedTag.mjs.map +1 -0
  211. package/lib/ast/jsdoc/JSDocEnumTag.mjs +2 -0
  212. package/lib/ast/jsdoc/JSDocEnumTag.mjs.map +1 -0
  213. package/lib/ast/jsdoc/JSDocFunctionType.mjs +2 -0
  214. package/lib/ast/jsdoc/JSDocFunctionType.mjs.map +1 -0
  215. package/lib/ast/jsdoc/JSDocImplementsTag.mjs +2 -0
  216. package/lib/ast/jsdoc/JSDocImplementsTag.mjs.map +1 -0
  217. package/lib/ast/jsdoc/JSDocImportTag.mjs +2 -0
  218. package/lib/ast/jsdoc/JSDocImportTag.mjs.map +1 -0
  219. package/lib/ast/jsdoc/JSDocLink.mjs +2 -0
  220. package/lib/ast/jsdoc/JSDocLink.mjs.map +1 -0
  221. package/lib/ast/jsdoc/JSDocLinkCode.mjs +2 -0
  222. package/lib/ast/jsdoc/JSDocLinkCode.mjs.map +1 -0
  223. package/lib/ast/jsdoc/JSDocLinkPlain.mjs +2 -0
  224. package/lib/ast/jsdoc/JSDocLinkPlain.mjs.map +1 -0
  225. package/lib/ast/jsdoc/JSDocMemberName.mjs +2 -0
  226. package/lib/ast/jsdoc/JSDocMemberName.mjs.map +1 -0
  227. package/lib/ast/jsdoc/JSDocNameReference.mjs +2 -0
  228. package/lib/ast/jsdoc/JSDocNameReference.mjs.map +1 -0
  229. package/lib/ast/jsdoc/JSDocNamepathType.mjs +2 -0
  230. package/lib/ast/jsdoc/JSDocNamepathType.mjs.map +1 -0
  231. package/lib/ast/jsdoc/JSDocNonNullableType.mjs +2 -0
  232. package/lib/ast/jsdoc/JSDocNonNullableType.mjs.map +1 -0
  233. package/lib/ast/jsdoc/JSDocNullableType.mjs +2 -0
  234. package/lib/ast/jsdoc/JSDocNullableType.mjs.map +1 -0
  235. package/lib/ast/jsdoc/JSDocOptionalType.mjs +2 -0
  236. package/lib/ast/jsdoc/JSDocOptionalType.mjs.map +1 -0
  237. package/lib/ast/jsdoc/JSDocOverloadTag.mjs +2 -0
  238. package/lib/ast/jsdoc/JSDocOverloadTag.mjs.map +1 -0
  239. package/lib/ast/jsdoc/JSDocOverrideTag.mjs +2 -0
  240. package/lib/ast/jsdoc/JSDocOverrideTag.mjs.map +1 -0
  241. package/lib/ast/jsdoc/JSDocParameterTag.mjs +2 -0
  242. package/lib/ast/jsdoc/JSDocParameterTag.mjs.map +1 -0
  243. package/lib/ast/jsdoc/JSDocPrivateTag.mjs +2 -0
  244. package/lib/ast/jsdoc/JSDocPrivateTag.mjs.map +1 -0
  245. package/lib/ast/jsdoc/JSDocPropertyTag.mjs +2 -0
  246. package/lib/ast/jsdoc/JSDocPropertyTag.mjs.map +1 -0
  247. package/lib/ast/jsdoc/JSDocProtectedTag.mjs +2 -0
  248. package/lib/ast/jsdoc/JSDocProtectedTag.mjs.map +1 -0
  249. package/lib/ast/jsdoc/JSDocPublicTag.mjs +2 -0
  250. package/lib/ast/jsdoc/JSDocPublicTag.mjs.map +1 -0
  251. package/lib/ast/jsdoc/JSDocReadonlyTag.mjs +2 -0
  252. package/lib/ast/jsdoc/JSDocReadonlyTag.mjs.map +1 -0
  253. package/lib/ast/jsdoc/JSDocReturnTag.mjs +2 -0
  254. package/lib/ast/jsdoc/JSDocReturnTag.mjs.map +1 -0
  255. package/lib/ast/jsdoc/JSDocSatisfiesTag.mjs +2 -0
  256. package/lib/ast/jsdoc/JSDocSatisfiesTag.mjs.map +1 -0
  257. package/lib/ast/jsdoc/JSDocSeeTag.mjs +2 -0
  258. package/lib/ast/jsdoc/JSDocSeeTag.mjs.map +1 -0
  259. package/lib/ast/jsdoc/JSDocSignature.mjs +2 -0
  260. package/lib/ast/jsdoc/JSDocSignature.mjs.map +1 -0
  261. package/lib/ast/jsdoc/JSDocTag.mjs +2 -0
  262. package/lib/ast/jsdoc/JSDocTag.mjs.map +1 -0
  263. package/lib/ast/jsdoc/JSDocTemplateTag.mjs +2 -0
  264. package/lib/ast/jsdoc/JSDocTemplateTag.mjs.map +1 -0
  265. package/lib/ast/jsdoc/JSDocText.mjs +2 -0
  266. package/lib/ast/jsdoc/JSDocText.mjs.map +1 -0
  267. package/lib/ast/jsdoc/JSDocThisTag.mjs +2 -0
  268. package/lib/ast/jsdoc/JSDocThisTag.mjs.map +1 -0
  269. package/lib/ast/jsdoc/JSDocThrowsTag.mjs +2 -0
  270. package/lib/ast/jsdoc/JSDocThrowsTag.mjs.map +1 -0
  271. package/lib/ast/jsdoc/JSDocTypeExpression.mjs +2 -0
  272. package/lib/ast/jsdoc/JSDocTypeExpression.mjs.map +1 -0
  273. package/lib/ast/jsdoc/JSDocTypeLiteral.mjs +2 -0
  274. package/lib/ast/jsdoc/JSDocTypeLiteral.mjs.map +1 -0
  275. package/lib/ast/jsdoc/JSDocTypeTag.mjs +2 -0
  276. package/lib/ast/jsdoc/JSDocTypeTag.mjs.map +1 -0
  277. package/lib/ast/jsdoc/JSDocTypedefTag.mjs +2 -0
  278. package/lib/ast/jsdoc/JSDocTypedefTag.mjs.map +1 -0
  279. package/lib/ast/jsdoc/JSDocUnknownTag.mjs +2 -0
  280. package/lib/ast/jsdoc/JSDocUnknownTag.mjs.map +1 -0
  281. package/lib/ast/jsdoc/JSDocUnknownType.mjs +2 -0
  282. package/lib/ast/jsdoc/JSDocUnknownType.mjs.map +1 -0
  283. package/lib/ast/jsdoc/JSDocVariadicType.mjs +2 -0
  284. package/lib/ast/jsdoc/JSDocVariadicType.mjs.map +1 -0
  285. package/lib/ast/jsx/JsxAttribute.mjs +2 -0
  286. package/lib/ast/jsx/JsxAttribute.mjs.map +1 -0
  287. package/lib/ast/jsx/JsxAttributeLike.mjs +2 -0
  288. package/lib/ast/jsx/JsxAttributeLike.mjs.map +1 -0
  289. package/lib/ast/jsx/JsxAttributeName.mjs +2 -0
  290. package/lib/ast/jsx/JsxAttributeName.mjs.map +1 -0
  291. package/lib/ast/jsx/JsxAttributeValue.mjs +2 -0
  292. package/lib/ast/jsx/JsxAttributeValue.mjs.map +1 -0
  293. package/lib/ast/jsx/JsxAttributes.mjs +2 -0
  294. package/lib/ast/jsx/JsxAttributes.mjs.map +1 -0
  295. package/lib/ast/jsx/JsxChild.mjs +2 -0
  296. package/lib/ast/jsx/JsxChild.mjs.map +1 -0
  297. package/lib/ast/jsx/JsxClosingElement.mjs +2 -0
  298. package/lib/ast/jsx/JsxClosingElement.mjs.map +1 -0
  299. package/lib/ast/jsx/JsxClosingFragment.mjs +2 -0
  300. package/lib/ast/jsx/JsxClosingFragment.mjs.map +1 -0
  301. package/lib/ast/jsx/JsxElement.mjs +2 -0
  302. package/lib/ast/jsx/JsxElement.mjs.map +1 -0
  303. package/lib/ast/jsx/JsxExpression.mjs +2 -0
  304. package/lib/ast/jsx/JsxExpression.mjs.map +1 -0
  305. package/lib/ast/jsx/JsxFragment.mjs +2 -0
  306. package/lib/ast/jsx/JsxFragment.mjs.map +1 -0
  307. package/lib/ast/jsx/JsxNamespacedName.mjs +2 -0
  308. package/lib/ast/jsx/JsxNamespacedName.mjs.map +1 -0
  309. package/lib/ast/jsx/JsxOpeningElement.mjs +2 -0
  310. package/lib/ast/jsx/JsxOpeningElement.mjs.map +1 -0
  311. package/lib/ast/jsx/JsxOpeningFragment.mjs +2 -0
  312. package/lib/ast/jsx/JsxOpeningFragment.mjs.map +1 -0
  313. package/lib/ast/jsx/JsxSelfClosingElement.mjs +2 -0
  314. package/lib/ast/jsx/JsxSelfClosingElement.mjs.map +1 -0
  315. package/lib/ast/jsx/JsxSpreadAttribute.mjs +2 -0
  316. package/lib/ast/jsx/JsxSpreadAttribute.mjs.map +1 -0
  317. package/lib/ast/jsx/JsxTagName.mjs +2 -0
  318. package/lib/ast/jsx/JsxTagName.mjs.map +1 -0
  319. package/lib/ast/jsx/JsxText.mjs +2 -0
  320. package/lib/ast/jsx/JsxText.mjs.map +1 -0
  321. package/lib/ast/names/Decorator.mjs +2 -0
  322. package/lib/ast/names/Decorator.mjs.map +1 -0
  323. package/lib/ast/names/EntityName.mjs +2 -0
  324. package/lib/ast/names/EntityName.mjs.map +1 -0
  325. package/lib/ast/names/Identifier.mjs +2 -0
  326. package/lib/ast/names/Identifier.mjs.map +1 -0
  327. package/lib/ast/names/Modifier.mjs +2 -0
  328. package/lib/ast/names/Modifier.mjs.map +1 -0
  329. package/lib/ast/names/ModifierLike.mjs +2 -0
  330. package/lib/ast/names/ModifierLike.mjs.map +1 -0
  331. package/lib/ast/names/PrivateIdentifier.mjs +2 -0
  332. package/lib/ast/names/PrivateIdentifier.mjs.map +1 -0
  333. package/lib/ast/names/PropertyName.mjs +2 -0
  334. package/lib/ast/names/PropertyName.mjs.map +1 -0
  335. package/lib/ast/names/QualifiedName.mjs +2 -0
  336. package/lib/ast/names/QualifiedName.mjs.map +1 -0
  337. package/lib/ast/names/Token.mjs +2 -0
  338. package/lib/ast/names/Token.mjs.map +1 -0
  339. package/lib/ast/statements/Block.mjs +2 -0
  340. package/lib/ast/statements/Block.mjs.map +1 -0
  341. package/lib/ast/statements/BreakStatement.mjs +2 -0
  342. package/lib/ast/statements/BreakStatement.mjs.map +1 -0
  343. package/lib/ast/statements/CaseBlock.mjs +2 -0
  344. package/lib/ast/statements/CaseBlock.mjs.map +1 -0
  345. package/lib/ast/statements/CaseClause.mjs +2 -0
  346. package/lib/ast/statements/CaseClause.mjs.map +1 -0
  347. package/lib/ast/statements/CaseOrDefaultClause.mjs +2 -0
  348. package/lib/ast/statements/CaseOrDefaultClause.mjs.map +1 -0
  349. package/lib/ast/statements/CatchClause.mjs +2 -0
  350. package/lib/ast/statements/CatchClause.mjs.map +1 -0
  351. package/lib/ast/statements/ContinueStatement.mjs +2 -0
  352. package/lib/ast/statements/ContinueStatement.mjs.map +1 -0
  353. package/lib/ast/statements/DebuggerStatement.mjs +2 -0
  354. package/lib/ast/statements/DebuggerStatement.mjs.map +1 -0
  355. package/lib/ast/statements/Declaration.mjs +2 -0
  356. package/lib/ast/statements/Declaration.mjs.map +1 -0
  357. package/lib/ast/statements/DefaultClause.mjs +2 -0
  358. package/lib/ast/statements/DefaultClause.mjs.map +1 -0
  359. package/lib/ast/statements/DoStatement.mjs +2 -0
  360. package/lib/ast/statements/DoStatement.mjs.map +1 -0
  361. package/lib/ast/statements/EmptyStatement.mjs +2 -0
  362. package/lib/ast/statements/EmptyStatement.mjs.map +1 -0
  363. package/lib/ast/statements/ExpressionStatement.mjs +2 -0
  364. package/lib/ast/statements/ExpressionStatement.mjs.map +1 -0
  365. package/lib/ast/statements/ForInStatement.mjs +2 -0
  366. package/lib/ast/statements/ForInStatement.mjs.map +1 -0
  367. package/lib/ast/statements/ForInitializer.mjs +2 -0
  368. package/lib/ast/statements/ForInitializer.mjs.map +1 -0
  369. package/lib/ast/statements/ForOfStatement.mjs +2 -0
  370. package/lib/ast/statements/ForOfStatement.mjs.map +1 -0
  371. package/lib/ast/statements/ForStatement.mjs +2 -0
  372. package/lib/ast/statements/ForStatement.mjs.map +1 -0
  373. package/lib/ast/statements/IfStatement.mjs +2 -0
  374. package/lib/ast/statements/IfStatement.mjs.map +1 -0
  375. package/lib/ast/statements/LabeledStatement.mjs +2 -0
  376. package/lib/ast/statements/LabeledStatement.mjs.map +1 -0
  377. package/lib/ast/statements/NotEmittedStatement.mjs +2 -0
  378. package/lib/ast/statements/NotEmittedStatement.mjs.map +1 -0
  379. package/lib/ast/statements/ReturnStatement.mjs +2 -0
  380. package/lib/ast/statements/ReturnStatement.mjs.map +1 -0
  381. package/lib/ast/statements/Statement.mjs +2 -0
  382. package/lib/ast/statements/Statement.mjs.map +1 -0
  383. package/lib/ast/statements/SwitchStatement.mjs +2 -0
  384. package/lib/ast/statements/SwitchStatement.mjs.map +1 -0
  385. package/lib/ast/statements/ThrowStatement.mjs +2 -0
  386. package/lib/ast/statements/ThrowStatement.mjs.map +1 -0
  387. package/lib/ast/statements/TryStatement.mjs +2 -0
  388. package/lib/ast/statements/TryStatement.mjs.map +1 -0
  389. package/lib/ast/statements/VariableDeclaration.mjs +2 -0
  390. package/lib/ast/statements/VariableDeclaration.mjs.map +1 -0
  391. package/lib/ast/statements/VariableDeclarationList.mjs +2 -0
  392. package/lib/ast/statements/VariableDeclarationList.mjs.map +1 -0
  393. package/lib/ast/statements/VariableStatement.mjs +2 -0
  394. package/lib/ast/statements/VariableStatement.mjs.map +1 -0
  395. package/lib/ast/statements/WhileStatement.mjs +2 -0
  396. package/lib/ast/statements/WhileStatement.mjs.map +1 -0
  397. package/lib/ast/statements/WithStatement.mjs +2 -0
  398. package/lib/ast/statements/WithStatement.mjs.map +1 -0
  399. package/lib/ast/types/ArrayTypeNode.mjs +2 -0
  400. package/lib/ast/types/ArrayTypeNode.mjs.map +1 -0
  401. package/lib/ast/types/CallSignatureDeclaration.mjs +2 -0
  402. package/lib/ast/types/CallSignatureDeclaration.mjs.map +1 -0
  403. package/lib/ast/types/ConditionalTypeNode.mjs +2 -0
  404. package/lib/ast/types/ConditionalTypeNode.mjs.map +1 -0
  405. package/lib/ast/types/ConstructSignatureDeclaration.mjs +2 -0
  406. package/lib/ast/types/ConstructSignatureDeclaration.mjs.map +1 -0
  407. package/lib/ast/types/ConstructorTypeNode.mjs +2 -0
  408. package/lib/ast/types/ConstructorTypeNode.mjs.map +1 -0
  409. package/lib/ast/types/ExpressionWithTypeArguments.mjs +2 -0
  410. package/lib/ast/types/ExpressionWithTypeArguments.mjs.map +1 -0
  411. package/lib/ast/types/FunctionTypeNode.mjs +2 -0
  412. package/lib/ast/types/FunctionTypeNode.mjs.map +1 -0
  413. package/lib/ast/types/ImportTypeNode.mjs +2 -0
  414. package/lib/ast/types/ImportTypeNode.mjs.map +1 -0
  415. package/lib/ast/types/IndexSignatureDeclaration.mjs +2 -0
  416. package/lib/ast/types/IndexSignatureDeclaration.mjs.map +1 -0
  417. package/lib/ast/types/IndexedAccessTypeNode.mjs +2 -0
  418. package/lib/ast/types/IndexedAccessTypeNode.mjs.map +1 -0
  419. package/lib/ast/types/InferTypeNode.mjs +2 -0
  420. package/lib/ast/types/InferTypeNode.mjs.map +1 -0
  421. package/lib/ast/types/IntersectionTypeNode.mjs +2 -0
  422. package/lib/ast/types/IntersectionTypeNode.mjs.map +1 -0
  423. package/lib/ast/types/KeywordTypeNode.mjs +2 -0
  424. package/lib/ast/types/KeywordTypeNode.mjs.map +1 -0
  425. package/lib/ast/types/LiteralTypeNode.mjs +2 -0
  426. package/lib/ast/types/LiteralTypeNode.mjs.map +1 -0
  427. package/lib/ast/types/MappedTypeNode.mjs +2 -0
  428. package/lib/ast/types/MappedTypeNode.mjs.map +1 -0
  429. package/lib/ast/types/MethodSignature.mjs +2 -0
  430. package/lib/ast/types/MethodSignature.mjs.map +1 -0
  431. package/lib/ast/types/NamedTupleMember.mjs +2 -0
  432. package/lib/ast/types/NamedTupleMember.mjs.map +1 -0
  433. package/lib/ast/types/NotEmittedTypeElement.mjs +2 -0
  434. package/lib/ast/types/NotEmittedTypeElement.mjs.map +1 -0
  435. package/lib/ast/types/OptionalTypeNode.mjs +2 -0
  436. package/lib/ast/types/OptionalTypeNode.mjs.map +1 -0
  437. package/lib/ast/types/ParenthesizedTypeNode.mjs +2 -0
  438. package/lib/ast/types/ParenthesizedTypeNode.mjs.map +1 -0
  439. package/lib/ast/types/PropertySignature.mjs +2 -0
  440. package/lib/ast/types/PropertySignature.mjs.map +1 -0
  441. package/lib/ast/types/RestTypeNode.mjs +2 -0
  442. package/lib/ast/types/RestTypeNode.mjs.map +1 -0
  443. package/lib/ast/types/TemplateLiteralTypeNode.mjs +2 -0
  444. package/lib/ast/types/TemplateLiteralTypeNode.mjs.map +1 -0
  445. package/lib/ast/types/TemplateLiteralTypeSpan.mjs +2 -0
  446. package/lib/ast/types/TemplateLiteralTypeSpan.mjs.map +1 -0
  447. package/lib/ast/types/ThisTypeNode.mjs +2 -0
  448. package/lib/ast/types/ThisTypeNode.mjs.map +1 -0
  449. package/lib/ast/types/TupleTypeNode.mjs +2 -0
  450. package/lib/ast/types/TupleTypeNode.mjs.map +1 -0
  451. package/lib/ast/types/TypeElement.mjs +2 -0
  452. package/lib/ast/types/TypeElement.mjs.map +1 -0
  453. package/lib/ast/types/TypeLiteralNode.mjs +2 -0
  454. package/lib/ast/types/TypeLiteralNode.mjs.map +1 -0
  455. package/lib/ast/types/TypeNode.mjs +2 -0
  456. package/lib/ast/types/TypeNode.mjs.map +1 -0
  457. package/lib/ast/types/TypeOperatorNode.mjs +2 -0
  458. package/lib/ast/types/TypeOperatorNode.mjs.map +1 -0
  459. package/lib/ast/types/TypeParameterDeclaration.mjs +2 -0
  460. package/lib/ast/types/TypeParameterDeclaration.mjs.map +1 -0
  461. package/lib/ast/types/TypePredicateNode.mjs +2 -0
  462. package/lib/ast/types/TypePredicateNode.mjs.map +1 -0
  463. package/lib/ast/types/TypeQueryNode.mjs +2 -0
  464. package/lib/ast/types/TypeQueryNode.mjs.map +1 -0
  465. package/lib/ast/types/TypeReferenceNode.mjs +2 -0
  466. package/lib/ast/types/TypeReferenceNode.mjs.map +1 -0
  467. package/lib/ast/types/UnionTypeNode.mjs +2 -0
  468. package/lib/ast/types/UnionTypeNode.mjs.map +1 -0
  469. package/lib/comments.mjs +76 -0
  470. package/lib/comments.mjs.map +1 -0
  471. package/lib/factory/clauses/createHeritageClause.mjs +26 -0
  472. package/lib/factory/clauses/createHeritageClause.mjs.map +1 -0
  473. package/lib/factory/clauses/createParameterDeclaration.mjs +43 -0
  474. package/lib/factory/clauses/createParameterDeclaration.mjs.map +1 -0
  475. package/lib/factory/declarations/createClassDeclaration.mjs +44 -0
  476. package/lib/factory/declarations/createClassDeclaration.mjs.map +1 -0
  477. package/lib/factory/declarations/createClassStaticBlockDeclaration.mjs +25 -0
  478. package/lib/factory/declarations/createClassStaticBlockDeclaration.mjs.map +1 -0
  479. package/lib/factory/declarations/createConstructorDeclaration.mjs +28 -0
  480. package/lib/factory/declarations/createConstructorDeclaration.mjs.map +1 -0
  481. package/lib/factory/declarations/createEnumDeclaration.mjs +31 -0
  482. package/lib/factory/declarations/createEnumDeclaration.mjs.map +1 -0
  483. package/lib/factory/declarations/createEnumMember.mjs +26 -0
  484. package/lib/factory/declarations/createEnumMember.mjs.map +1 -0
  485. package/lib/factory/declarations/createExternalModuleReference.mjs +23 -0
  486. package/lib/factory/declarations/createExternalModuleReference.mjs.map +1 -0
  487. package/lib/factory/declarations/createFunctionDeclaration.mjs +48 -0
  488. package/lib/factory/declarations/createFunctionDeclaration.mjs.map +1 -0
  489. package/lib/factory/declarations/createGetAccessorDeclaration.mjs +39 -0
  490. package/lib/factory/declarations/createGetAccessorDeclaration.mjs.map +1 -0
  491. package/lib/factory/declarations/createImportEqualsDeclaration.mjs +35 -0
  492. package/lib/factory/declarations/createImportEqualsDeclaration.mjs.map +1 -0
  493. package/lib/factory/declarations/createInterfaceDeclaration.mjs +40 -0
  494. package/lib/factory/declarations/createInterfaceDeclaration.mjs.map +1 -0
  495. package/lib/factory/declarations/createMethodDeclaration.mjs +50 -0
  496. package/lib/factory/declarations/createMethodDeclaration.mjs.map +1 -0
  497. package/lib/factory/declarations/createModuleBlock.mjs +25 -0
  498. package/lib/factory/declarations/createModuleBlock.mjs.map +1 -0
  499. package/lib/factory/declarations/createModuleDeclaration.mjs +42 -0
  500. package/lib/factory/declarations/createModuleDeclaration.mjs.map +1 -0
  501. package/lib/factory/declarations/createNamespaceExportDeclaration.mjs +24 -0
  502. package/lib/factory/declarations/createNamespaceExportDeclaration.mjs.map +1 -0
  503. package/lib/factory/declarations/createPropertyDeclaration.mjs +41 -0
  504. package/lib/factory/declarations/createPropertyDeclaration.mjs.map +1 -0
  505. package/lib/factory/declarations/createSemicolonClassElement.mjs +20 -0
  506. package/lib/factory/declarations/createSemicolonClassElement.mjs.map +1 -0
  507. package/lib/factory/declarations/createSetAccessorDeclaration.mjs +37 -0
  508. package/lib/factory/declarations/createSetAccessorDeclaration.mjs.map +1 -0
  509. package/lib/factory/declarations/createTypeAliasDeclaration.mjs +35 -0
  510. package/lib/factory/declarations/createTypeAliasDeclaration.mjs.map +1 -0
  511. package/lib/factory/expressions/createAdd.mjs +25 -0
  512. package/lib/factory/expressions/createAdd.mjs.map +1 -0
  513. package/lib/factory/expressions/createArrayBindingPattern.mjs +23 -0
  514. package/lib/factory/expressions/createArrayBindingPattern.mjs.map +1 -0
  515. package/lib/factory/expressions/createArrayLiteralExpression.mjs +25 -0
  516. package/lib/factory/expressions/createArrayLiteralExpression.mjs.map +1 -0
  517. package/lib/factory/expressions/createArrowFunction.mjs +32 -0
  518. package/lib/factory/expressions/createArrowFunction.mjs.map +1 -0
  519. package/lib/factory/expressions/createAsExpression.mjs +23 -0
  520. package/lib/factory/expressions/createAsExpression.mjs.map +1 -0
  521. package/lib/factory/expressions/createAssignment.mjs +25 -0
  522. package/lib/factory/expressions/createAssignment.mjs.map +1 -0
  523. package/lib/factory/expressions/createAwaitExpression.mjs +22 -0
  524. package/lib/factory/expressions/createAwaitExpression.mjs.map +1 -0
  525. package/lib/factory/expressions/createBinaryExpression.mjs +33 -0
  526. package/lib/factory/expressions/createBinaryExpression.mjs.map +1 -0
  527. package/lib/factory/expressions/createBindingElement.mjs +39 -0
  528. package/lib/factory/expressions/createBindingElement.mjs.map +1 -0
  529. package/lib/factory/expressions/createBitwiseAnd.mjs +25 -0
  530. package/lib/factory/expressions/createBitwiseAnd.mjs.map +1 -0
  531. package/lib/factory/expressions/createBitwiseNot.mjs +24 -0
  532. package/lib/factory/expressions/createBitwiseNot.mjs.map +1 -0
  533. package/lib/factory/expressions/createBitwiseOr.mjs +24 -0
  534. package/lib/factory/expressions/createBitwiseOr.mjs.map +1 -0
  535. package/lib/factory/expressions/createBitwiseXor.mjs +24 -0
  536. package/lib/factory/expressions/createBitwiseXor.mjs.map +1 -0
  537. package/lib/factory/expressions/createCallChain.mjs +35 -0
  538. package/lib/factory/expressions/createCallChain.mjs.map +1 -0
  539. package/lib/factory/expressions/createCallExpression.mjs +29 -0
  540. package/lib/factory/expressions/createCallExpression.mjs.map +1 -0
  541. package/lib/factory/expressions/createClassExpression.mjs +34 -0
  542. package/lib/factory/expressions/createClassExpression.mjs.map +1 -0
  543. package/lib/factory/expressions/createComma.mjs +27 -0
  544. package/lib/factory/expressions/createComma.mjs.map +1 -0
  545. package/lib/factory/expressions/createCommaListExpression.mjs +23 -0
  546. package/lib/factory/expressions/createCommaListExpression.mjs.map +1 -0
  547. package/lib/factory/expressions/createComputedPropertyName.mjs +23 -0
  548. package/lib/factory/expressions/createComputedPropertyName.mjs.map +1 -0
  549. package/lib/factory/expressions/createConditionalExpression.mjs +28 -0
  550. package/lib/factory/expressions/createConditionalExpression.mjs.map +1 -0
  551. package/lib/factory/expressions/createDeleteExpression.mjs +22 -0
  552. package/lib/factory/expressions/createDeleteExpression.mjs.map +1 -0
  553. package/lib/factory/expressions/createDivide.mjs +24 -0
  554. package/lib/factory/expressions/createDivide.mjs.map +1 -0
  555. package/lib/factory/expressions/createElementAccessChain.mjs +32 -0
  556. package/lib/factory/expressions/createElementAccessChain.mjs.map +1 -0
  557. package/lib/factory/expressions/createElementAccessExpression.mjs +28 -0
  558. package/lib/factory/expressions/createElementAccessExpression.mjs.map +1 -0
  559. package/lib/factory/expressions/createEquality.mjs +26 -0
  560. package/lib/factory/expressions/createEquality.mjs.map +1 -0
  561. package/lib/factory/expressions/createExponent.mjs +25 -0
  562. package/lib/factory/expressions/createExponent.mjs.map +1 -0
  563. package/lib/factory/expressions/createFunctionExpression.mjs +38 -0
  564. package/lib/factory/expressions/createFunctionExpression.mjs.map +1 -0
  565. package/lib/factory/expressions/createGreaterThan.mjs +26 -0
  566. package/lib/factory/expressions/createGreaterThan.mjs.map +1 -0
  567. package/lib/factory/expressions/createGreaterThanEquals.mjs +26 -0
  568. package/lib/factory/expressions/createGreaterThanEquals.mjs.map +1 -0
  569. package/lib/factory/expressions/createImmediatelyInvokedArrowFunction.mjs +29 -0
  570. package/lib/factory/expressions/createImmediatelyInvokedArrowFunction.mjs.map +1 -0
  571. package/lib/factory/expressions/createImmediatelyInvokedFunctionExpression.mjs +29 -0
  572. package/lib/factory/expressions/createImmediatelyInvokedFunctionExpression.mjs.map +1 -0
  573. package/lib/factory/expressions/createInequality.mjs +26 -0
  574. package/lib/factory/expressions/createInequality.mjs.map +1 -0
  575. package/lib/factory/expressions/createLeftShift.mjs +25 -0
  576. package/lib/factory/expressions/createLeftShift.mjs.map +1 -0
  577. package/lib/factory/expressions/createLessThan.mjs +25 -0
  578. package/lib/factory/expressions/createLessThan.mjs.map +1 -0
  579. package/lib/factory/expressions/createLessThanEquals.mjs +26 -0
  580. package/lib/factory/expressions/createLessThanEquals.mjs.map +1 -0
  581. package/lib/factory/expressions/createLogicalAnd.mjs +26 -0
  582. package/lib/factory/expressions/createLogicalAnd.mjs.map +1 -0
  583. package/lib/factory/expressions/createLogicalNot.mjs +24 -0
  584. package/lib/factory/expressions/createLogicalNot.mjs.map +1 -0
  585. package/lib/factory/expressions/createLogicalOr.mjs +25 -0
  586. package/lib/factory/expressions/createLogicalOr.mjs.map +1 -0
  587. package/lib/factory/expressions/createMetaProperty.mjs +29 -0
  588. package/lib/factory/expressions/createMetaProperty.mjs.map +1 -0
  589. package/lib/factory/expressions/createModulo.mjs +23 -0
  590. package/lib/factory/expressions/createModulo.mjs.map +1 -0
  591. package/lib/factory/expressions/createMultiply.mjs +23 -0
  592. package/lib/factory/expressions/createMultiply.mjs.map +1 -0
  593. package/lib/factory/expressions/createNewExpression.mjs +30 -0
  594. package/lib/factory/expressions/createNewExpression.mjs.map +1 -0
  595. package/lib/factory/expressions/createNonNullChain.mjs +24 -0
  596. package/lib/factory/expressions/createNonNullChain.mjs.map +1 -0
  597. package/lib/factory/expressions/createNonNullExpression.mjs +24 -0
  598. package/lib/factory/expressions/createNonNullExpression.mjs.map +1 -0
  599. package/lib/factory/expressions/createObjectBindingPattern.mjs +24 -0
  600. package/lib/factory/expressions/createObjectBindingPattern.mjs.map +1 -0
  601. package/lib/factory/expressions/createObjectLiteralExpression.mjs +27 -0
  602. package/lib/factory/expressions/createObjectLiteralExpression.mjs.map +1 -0
  603. package/lib/factory/expressions/createOmittedExpression.mjs +23 -0
  604. package/lib/factory/expressions/createOmittedExpression.mjs.map +1 -0
  605. package/lib/factory/expressions/createParenthesizedExpression.mjs +24 -0
  606. package/lib/factory/expressions/createParenthesizedExpression.mjs.map +1 -0
  607. package/lib/factory/expressions/createPartiallyEmittedExpression.mjs +26 -0
  608. package/lib/factory/expressions/createPartiallyEmittedExpression.mjs.map +1 -0
  609. package/lib/factory/expressions/createPostfixDecrement.mjs +22 -0
  610. package/lib/factory/expressions/createPostfixDecrement.mjs.map +1 -0
  611. package/lib/factory/expressions/createPostfixIncrement.mjs +22 -0
  612. package/lib/factory/expressions/createPostfixIncrement.mjs.map +1 -0
  613. package/lib/factory/expressions/createPostfixUnaryExpression.mjs +25 -0
  614. package/lib/factory/expressions/createPostfixUnaryExpression.mjs.map +1 -0
  615. package/lib/factory/expressions/createPrefixDecrement.mjs +22 -0
  616. package/lib/factory/expressions/createPrefixDecrement.mjs.map +1 -0
  617. package/lib/factory/expressions/createPrefixIncrement.mjs +22 -0
  618. package/lib/factory/expressions/createPrefixIncrement.mjs.map +1 -0
  619. package/lib/factory/expressions/createPrefixMinus.mjs +22 -0
  620. package/lib/factory/expressions/createPrefixMinus.mjs.map +1 -0
  621. package/lib/factory/expressions/createPrefixPlus.mjs +22 -0
  622. package/lib/factory/expressions/createPrefixPlus.mjs.map +1 -0
  623. package/lib/factory/expressions/createPrefixUnaryExpression.mjs +25 -0
  624. package/lib/factory/expressions/createPrefixUnaryExpression.mjs.map +1 -0
  625. package/lib/factory/expressions/createPropertyAccessChain.mjs +32 -0
  626. package/lib/factory/expressions/createPropertyAccessChain.mjs.map +1 -0
  627. package/lib/factory/expressions/createPropertyAccessExpression.mjs +28 -0
  628. package/lib/factory/expressions/createPropertyAccessExpression.mjs.map +1 -0
  629. package/lib/factory/expressions/createPropertyAssignment.mjs +26 -0
  630. package/lib/factory/expressions/createPropertyAssignment.mjs.map +1 -0
  631. package/lib/factory/expressions/createRegularExpressionLiteral.mjs +23 -0
  632. package/lib/factory/expressions/createRegularExpressionLiteral.mjs.map +1 -0
  633. package/lib/factory/expressions/createRightShift.mjs +23 -0
  634. package/lib/factory/expressions/createRightShift.mjs.map +1 -0
  635. package/lib/factory/expressions/createSatisfiesExpression.mjs +25 -0
  636. package/lib/factory/expressions/createSatisfiesExpression.mjs.map +1 -0
  637. package/lib/factory/expressions/createShorthandPropertyAssignment.mjs +31 -0
  638. package/lib/factory/expressions/createShorthandPropertyAssignment.mjs.map +1 -0
  639. package/lib/factory/expressions/createSpreadAssignment.mjs +23 -0
  640. package/lib/factory/expressions/createSpreadAssignment.mjs.map +1 -0
  641. package/lib/factory/expressions/createSpreadElement.mjs +23 -0
  642. package/lib/factory/expressions/createSpreadElement.mjs.map +1 -0
  643. package/lib/factory/expressions/createStrictEquality.mjs +23 -0
  644. package/lib/factory/expressions/createStrictEquality.mjs.map +1 -0
  645. package/lib/factory/expressions/createStrictInequality.mjs +23 -0
  646. package/lib/factory/expressions/createStrictInequality.mjs.map +1 -0
  647. package/lib/factory/expressions/createSubtract.mjs +23 -0
  648. package/lib/factory/expressions/createSubtract.mjs.map +1 -0
  649. package/lib/factory/expressions/createTaggedTemplateExpression.mjs +27 -0
  650. package/lib/factory/expressions/createTaggedTemplateExpression.mjs.map +1 -0
  651. package/lib/factory/expressions/createTemplateExpression.mjs +27 -0
  652. package/lib/factory/expressions/createTemplateExpression.mjs.map +1 -0
  653. package/lib/factory/expressions/createTemplateSpan.mjs +28 -0
  654. package/lib/factory/expressions/createTemplateSpan.mjs.map +1 -0
  655. package/lib/factory/expressions/createTypeAssertion.mjs +25 -0
  656. package/lib/factory/expressions/createTypeAssertion.mjs.map +1 -0
  657. package/lib/factory/expressions/createTypeOfExpression.mjs +22 -0
  658. package/lib/factory/expressions/createTypeOfExpression.mjs.map +1 -0
  659. package/lib/factory/expressions/createUnsignedRightShift.mjs +23 -0
  660. package/lib/factory/expressions/createUnsignedRightShift.mjs.map +1 -0
  661. package/lib/factory/expressions/createVoidExpression.mjs +23 -0
  662. package/lib/factory/expressions/createVoidExpression.mjs.map +1 -0
  663. package/lib/factory/expressions/createVoidZero.mjs +22 -0
  664. package/lib/factory/expressions/createVoidZero.mjs.map +1 -0
  665. package/lib/factory/expressions/createYieldExpression.mjs +26 -0
  666. package/lib/factory/expressions/createYieldExpression.mjs.map +1 -0
  667. package/lib/factory/file/createBundle.mjs +29 -0
  668. package/lib/factory/file/createBundle.mjs.map +1 -0
  669. package/lib/factory/file/createNodeArray.mjs +24 -0
  670. package/lib/factory/file/createNodeArray.mjs.map +1 -0
  671. package/lib/factory/file/createSourceFile.mjs +24 -0
  672. package/lib/factory/file/createSourceFile.mjs.map +1 -0
  673. package/lib/factory/file/updateSourceFile.mjs +14 -0
  674. package/lib/factory/file/updateSourceFile.mjs.map +1 -0
  675. package/lib/factory/imports/createExportAssignment.mjs +27 -0
  676. package/lib/factory/imports/createExportAssignment.mjs.map +1 -0
  677. package/lib/factory/imports/createExportDeclaration.mjs +38 -0
  678. package/lib/factory/imports/createExportDeclaration.mjs.map +1 -0
  679. package/lib/factory/imports/createExportDefault.mjs +23 -0
  680. package/lib/factory/imports/createExportDefault.mjs.map +1 -0
  681. package/lib/factory/imports/createExportSpecifier.mjs +32 -0
  682. package/lib/factory/imports/createExportSpecifier.mjs.map +1 -0
  683. package/lib/factory/imports/createExternalModuleExport.mjs +26 -0
  684. package/lib/factory/imports/createExternalModuleExport.mjs.map +1 -0
  685. package/lib/factory/imports/createImportAttribute.mjs +25 -0
  686. package/lib/factory/imports/createImportAttribute.mjs.map +1 -0
  687. package/lib/factory/imports/createImportAttributes.mjs +30 -0
  688. package/lib/factory/imports/createImportAttributes.mjs.map +1 -0
  689. package/lib/factory/imports/createImportClause.mjs +27 -0
  690. package/lib/factory/imports/createImportClause.mjs.map +1 -0
  691. package/lib/factory/imports/createImportDeclaration.mjs +34 -0
  692. package/lib/factory/imports/createImportDeclaration.mjs.map +1 -0
  693. package/lib/factory/imports/createImportSpecifier.mjs +28 -0
  694. package/lib/factory/imports/createImportSpecifier.mjs.map +1 -0
  695. package/lib/factory/imports/createNamedExports.mjs +25 -0
  696. package/lib/factory/imports/createNamedExports.mjs.map +1 -0
  697. package/lib/factory/imports/createNamedImports.mjs +25 -0
  698. package/lib/factory/imports/createNamedImports.mjs.map +1 -0
  699. package/lib/factory/imports/createNamespaceExport.mjs +25 -0
  700. package/lib/factory/imports/createNamespaceExport.mjs.map +1 -0
  701. package/lib/factory/imports/createNamespaceImport.mjs +24 -0
  702. package/lib/factory/imports/createNamespaceImport.mjs.map +1 -0
  703. package/lib/factory/index.mjs +268 -0
  704. package/lib/factory/index.mjs.map +1 -0
  705. package/lib/factory/internal/asEntityName.mjs +7 -0
  706. package/lib/factory/internal/asEntityName.mjs.map +1 -0
  707. package/lib/factory/internal/asName.mjs +11 -0
  708. package/lib/factory/internal/asName.mjs.map +1 -0
  709. package/lib/factory/internal/asPropertyName.mjs +7 -0
  710. package/lib/factory/internal/asPropertyName.mjs.map +1 -0
  711. package/lib/factory/internal/make.mjs +14 -0
  712. package/lib/factory/internal/make.mjs.map +1 -0
  713. package/lib/factory/jsdoc/createJSDocAllType.mjs +21 -0
  714. package/lib/factory/jsdoc/createJSDocAllType.mjs.map +1 -0
  715. package/lib/factory/jsdoc/createJSDocAugmentsTag.mjs +30 -0
  716. package/lib/factory/jsdoc/createJSDocAugmentsTag.mjs.map +1 -0
  717. package/lib/factory/jsdoc/createJSDocAuthorTag.mjs +27 -0
  718. package/lib/factory/jsdoc/createJSDocAuthorTag.mjs.map +1 -0
  719. package/lib/factory/jsdoc/createJSDocCallbackTag.mjs +37 -0
  720. package/lib/factory/jsdoc/createJSDocCallbackTag.mjs.map +1 -0
  721. package/lib/factory/jsdoc/createJSDocClassTag.mjs +27 -0
  722. package/lib/factory/jsdoc/createJSDocClassTag.mjs.map +1 -0
  723. package/lib/factory/jsdoc/createJSDocComment.mjs +29 -0
  724. package/lib/factory/jsdoc/createJSDocComment.mjs.map +1 -0
  725. package/lib/factory/jsdoc/createJSDocDeprecatedTag.mjs +27 -0
  726. package/lib/factory/jsdoc/createJSDocDeprecatedTag.mjs.map +1 -0
  727. package/lib/factory/jsdoc/createJSDocEnumTag.mjs +31 -0
  728. package/lib/factory/jsdoc/createJSDocEnumTag.mjs.map +1 -0
  729. package/lib/factory/jsdoc/createJSDocFunctionType.mjs +26 -0
  730. package/lib/factory/jsdoc/createJSDocFunctionType.mjs.map +1 -0
  731. package/lib/factory/jsdoc/createJSDocImplementsTag.mjs +30 -0
  732. package/lib/factory/jsdoc/createJSDocImplementsTag.mjs.map +1 -0
  733. package/lib/factory/jsdoc/createJSDocImportTag.mjs +34 -0
  734. package/lib/factory/jsdoc/createJSDocImportTag.mjs.map +1 -0
  735. package/lib/factory/jsdoc/createJSDocLink.mjs +29 -0
  736. package/lib/factory/jsdoc/createJSDocLink.mjs.map +1 -0
  737. package/lib/factory/jsdoc/createJSDocLinkCode.mjs +29 -0
  738. package/lib/factory/jsdoc/createJSDocLinkCode.mjs.map +1 -0
  739. package/lib/factory/jsdoc/createJSDocLinkPlain.mjs +29 -0
  740. package/lib/factory/jsdoc/createJSDocLinkPlain.mjs.map +1 -0
  741. package/lib/factory/jsdoc/createJSDocMemberName.mjs +26 -0
  742. package/lib/factory/jsdoc/createJSDocMemberName.mjs.map +1 -0
  743. package/lib/factory/jsdoc/createJSDocNameReference.mjs +25 -0
  744. package/lib/factory/jsdoc/createJSDocNameReference.mjs.map +1 -0
  745. package/lib/factory/jsdoc/createJSDocNamepathType.mjs +25 -0
  746. package/lib/factory/jsdoc/createJSDocNamepathType.mjs.map +1 -0
  747. package/lib/factory/jsdoc/createJSDocNonNullableType.mjs +33 -0
  748. package/lib/factory/jsdoc/createJSDocNonNullableType.mjs.map +1 -0
  749. package/lib/factory/jsdoc/createJSDocNullableType.mjs +33 -0
  750. package/lib/factory/jsdoc/createJSDocNullableType.mjs.map +1 -0
  751. package/lib/factory/jsdoc/createJSDocOptionalType.mjs +23 -0
  752. package/lib/factory/jsdoc/createJSDocOptionalType.mjs.map +1 -0
  753. package/lib/factory/jsdoc/createJSDocOverloadTag.mjs +35 -0
  754. package/lib/factory/jsdoc/createJSDocOverloadTag.mjs.map +1 -0
  755. package/lib/factory/jsdoc/createJSDocOverrideTag.mjs +27 -0
  756. package/lib/factory/jsdoc/createJSDocOverrideTag.mjs.map +1 -0
  757. package/lib/factory/jsdoc/createJSDocParameterTag.mjs +46 -0
  758. package/lib/factory/jsdoc/createJSDocParameterTag.mjs.map +1 -0
  759. package/lib/factory/jsdoc/createJSDocPrivateTag.mjs +27 -0
  760. package/lib/factory/jsdoc/createJSDocPrivateTag.mjs.map +1 -0
  761. package/lib/factory/jsdoc/createJSDocPropertyTag.mjs +40 -0
  762. package/lib/factory/jsdoc/createJSDocPropertyTag.mjs.map +1 -0
  763. package/lib/factory/jsdoc/createJSDocProtectedTag.mjs +27 -0
  764. package/lib/factory/jsdoc/createJSDocProtectedTag.mjs.map +1 -0
  765. package/lib/factory/jsdoc/createJSDocPublicTag.mjs +27 -0
  766. package/lib/factory/jsdoc/createJSDocPublicTag.mjs.map +1 -0
  767. package/lib/factory/jsdoc/createJSDocReadonlyTag.mjs +27 -0
  768. package/lib/factory/jsdoc/createJSDocReadonlyTag.mjs.map +1 -0
  769. package/lib/factory/jsdoc/createJSDocReturnTag.mjs +32 -0
  770. package/lib/factory/jsdoc/createJSDocReturnTag.mjs.map +1 -0
  771. package/lib/factory/jsdoc/createJSDocSatisfiesTag.mjs +31 -0
  772. package/lib/factory/jsdoc/createJSDocSatisfiesTag.mjs.map +1 -0
  773. package/lib/factory/jsdoc/createJSDocSeeTag.mjs +31 -0
  774. package/lib/factory/jsdoc/createJSDocSeeTag.mjs.map +1 -0
  775. package/lib/factory/jsdoc/createJSDocSignature.mjs +32 -0
  776. package/lib/factory/jsdoc/createJSDocSignature.mjs.map +1 -0
  777. package/lib/factory/jsdoc/createJSDocTemplateTag.mjs +34 -0
  778. package/lib/factory/jsdoc/createJSDocTemplateTag.mjs.map +1 -0
  779. package/lib/factory/jsdoc/createJSDocText.mjs +25 -0
  780. package/lib/factory/jsdoc/createJSDocText.mjs.map +1 -0
  781. package/lib/factory/jsdoc/createJSDocThisTag.mjs +30 -0
  782. package/lib/factory/jsdoc/createJSDocThisTag.mjs.map +1 -0
  783. package/lib/factory/jsdoc/createJSDocThrowsTag.mjs +30 -0
  784. package/lib/factory/jsdoc/createJSDocThrowsTag.mjs.map +1 -0
  785. package/lib/factory/jsdoc/createJSDocTypeExpression.mjs +24 -0
  786. package/lib/factory/jsdoc/createJSDocTypeExpression.mjs.map +1 -0
  787. package/lib/factory/jsdoc/createJSDocTypeLiteral.mjs +29 -0
  788. package/lib/factory/jsdoc/createJSDocTypeLiteral.mjs.map +1 -0
  789. package/lib/factory/jsdoc/createJSDocTypeTag.mjs +31 -0
  790. package/lib/factory/jsdoc/createJSDocTypeTag.mjs.map +1 -0
  791. package/lib/factory/jsdoc/createJSDocTypedefTag.mjs +34 -0
  792. package/lib/factory/jsdoc/createJSDocTypedefTag.mjs.map +1 -0
  793. package/lib/factory/jsdoc/createJSDocUnknownTag.mjs +27 -0
  794. package/lib/factory/jsdoc/createJSDocUnknownTag.mjs.map +1 -0
  795. package/lib/factory/jsdoc/createJSDocUnknownType.mjs +21 -0
  796. package/lib/factory/jsdoc/createJSDocUnknownType.mjs.map +1 -0
  797. package/lib/factory/jsdoc/createJSDocVariadicType.mjs +24 -0
  798. package/lib/factory/jsdoc/createJSDocVariadicType.mjs.map +1 -0
  799. package/lib/factory/jsx/createJsxAttribute.mjs +29 -0
  800. package/lib/factory/jsx/createJsxAttribute.mjs.map +1 -0
  801. package/lib/factory/jsx/createJsxAttributes.mjs +27 -0
  802. package/lib/factory/jsx/createJsxAttributes.mjs.map +1 -0
  803. package/lib/factory/jsx/createJsxClosingElement.mjs +24 -0
  804. package/lib/factory/jsx/createJsxClosingElement.mjs.map +1 -0
  805. package/lib/factory/jsx/createJsxElement.mjs +32 -0
  806. package/lib/factory/jsx/createJsxElement.mjs.map +1 -0
  807. package/lib/factory/jsx/createJsxExpression.mjs +29 -0
  808. package/lib/factory/jsx/createJsxExpression.mjs.map +1 -0
  809. package/lib/factory/jsx/createJsxFragment.mjs +32 -0
  810. package/lib/factory/jsx/createJsxFragment.mjs.map +1 -0
  811. package/lib/factory/jsx/createJsxJsxClosingFragment.mjs +23 -0
  812. package/lib/factory/jsx/createJsxJsxClosingFragment.mjs.map +1 -0
  813. package/lib/factory/jsx/createJsxNamespacedName.mjs +28 -0
  814. package/lib/factory/jsx/createJsxNamespacedName.mjs.map +1 -0
  815. package/lib/factory/jsx/createJsxOpeningElement.mjs +32 -0
  816. package/lib/factory/jsx/createJsxOpeningElement.mjs.map +1 -0
  817. package/lib/factory/jsx/createJsxOpeningFragment.mjs +22 -0
  818. package/lib/factory/jsx/createJsxOpeningFragment.mjs.map +1 -0
  819. package/lib/factory/jsx/createJsxSelfClosingElement.mjs +31 -0
  820. package/lib/factory/jsx/createJsxSelfClosingElement.mjs.map +1 -0
  821. package/lib/factory/jsx/createJsxSpreadAttribute.mjs +24 -0
  822. package/lib/factory/jsx/createJsxSpreadAttribute.mjs.map +1 -0
  823. package/lib/factory/jsx/createJsxText.mjs +31 -0
  824. package/lib/factory/jsx/createJsxText.mjs.map +1 -0
  825. package/lib/factory/literals/createBigIntLiteral.mjs +23 -0
  826. package/lib/factory/literals/createBigIntLiteral.mjs.map +1 -0
  827. package/lib/factory/literals/createNoSubstitutionTemplateLiteral.mjs +24 -0
  828. package/lib/factory/literals/createNoSubstitutionTemplateLiteral.mjs.map +1 -0
  829. package/lib/factory/literals/createNumericLiteral.mjs +23 -0
  830. package/lib/factory/literals/createNumericLiteral.mjs.map +1 -0
  831. package/lib/factory/literals/createStringLiteral.mjs +29 -0
  832. package/lib/factory/literals/createStringLiteral.mjs.map +1 -0
  833. package/lib/factory/literals/createStringLiteralFromNode.mjs +25 -0
  834. package/lib/factory/literals/createStringLiteralFromNode.mjs.map +1 -0
  835. package/lib/factory/literals/createTemplateHead.mjs +27 -0
  836. package/lib/factory/literals/createTemplateHead.mjs.map +1 -0
  837. package/lib/factory/literals/createTemplateMiddle.mjs +25 -0
  838. package/lib/factory/literals/createTemplateMiddle.mjs.map +1 -0
  839. package/lib/factory/literals/createTemplateTail.mjs +25 -0
  840. package/lib/factory/literals/createTemplateTail.mjs.map +1 -0
  841. package/lib/factory/names/createDecorator.mjs +23 -0
  842. package/lib/factory/names/createDecorator.mjs.map +1 -0
  843. package/lib/factory/names/createFalse.mjs +22 -0
  844. package/lib/factory/names/createFalse.mjs.map +1 -0
  845. package/lib/factory/names/createIdentifier.mjs +23 -0
  846. package/lib/factory/names/createIdentifier.mjs.map +1 -0
  847. package/lib/factory/names/createLoopVariable.mjs +28 -0
  848. package/lib/factory/names/createLoopVariable.mjs.map +1 -0
  849. package/lib/factory/names/createModifier.mjs +25 -0
  850. package/lib/factory/names/createModifier.mjs.map +1 -0
  851. package/lib/factory/names/createModifiersFromModifierFlags.mjs +81 -0
  852. package/lib/factory/names/createModifiersFromModifierFlags.mjs.map +1 -0
  853. package/lib/factory/names/createNull.mjs +22 -0
  854. package/lib/factory/names/createNull.mjs.map +1 -0
  855. package/lib/factory/names/createPrivateIdentifier.mjs +23 -0
  856. package/lib/factory/names/createPrivateIdentifier.mjs.map +1 -0
  857. package/lib/factory/names/createQualifiedName.mjs +28 -0
  858. package/lib/factory/names/createQualifiedName.mjs.map +1 -0
  859. package/lib/factory/names/createSuper.mjs +22 -0
  860. package/lib/factory/names/createSuper.mjs.map +1 -0
  861. package/lib/factory/names/createTempVariable.mjs +33 -0
  862. package/lib/factory/names/createTempVariable.mjs.map +1 -0
  863. package/lib/factory/names/createThis.mjs +22 -0
  864. package/lib/factory/names/createThis.mjs.map +1 -0
  865. package/lib/factory/names/createToken.mjs +24 -0
  866. package/lib/factory/names/createToken.mjs.map +1 -0
  867. package/lib/factory/names/createTrue.mjs +22 -0
  868. package/lib/factory/names/createTrue.mjs.map +1 -0
  869. package/lib/factory/names/createUniqueName.mjs +32 -0
  870. package/lib/factory/names/createUniqueName.mjs.map +1 -0
  871. package/lib/factory/names/createUniquePrivateName.mjs +29 -0
  872. package/lib/factory/names/createUniquePrivateName.mjs.map +1 -0
  873. package/lib/factory/statements/createBlock.mjs +29 -0
  874. package/lib/factory/statements/createBlock.mjs.map +1 -0
  875. package/lib/factory/statements/createBreakStatement.mjs +31 -0
  876. package/lib/factory/statements/createBreakStatement.mjs.map +1 -0
  877. package/lib/factory/statements/createCaseBlock.mjs +30 -0
  878. package/lib/factory/statements/createCaseBlock.mjs.map +1 -0
  879. package/lib/factory/statements/createCaseClause.mjs +28 -0
  880. package/lib/factory/statements/createCaseClause.mjs.map +1 -0
  881. package/lib/factory/statements/createCatchClause.mjs +35 -0
  882. package/lib/factory/statements/createCatchClause.mjs.map +1 -0
  883. package/lib/factory/statements/createContinueStatement.mjs +31 -0
  884. package/lib/factory/statements/createContinueStatement.mjs.map +1 -0
  885. package/lib/factory/statements/createDebuggerStatement.mjs +21 -0
  886. package/lib/factory/statements/createDebuggerStatement.mjs.map +1 -0
  887. package/lib/factory/statements/createDefaultClause.mjs +24 -0
  888. package/lib/factory/statements/createDefaultClause.mjs.map +1 -0
  889. package/lib/factory/statements/createDoStatement.mjs +27 -0
  890. package/lib/factory/statements/createDoStatement.mjs.map +1 -0
  891. package/lib/factory/statements/createEmptyStatement.mjs +21 -0
  892. package/lib/factory/statements/createEmptyStatement.mjs.map +1 -0
  893. package/lib/factory/statements/createExpressionStatement.mjs +23 -0
  894. package/lib/factory/statements/createExpressionStatement.mjs.map +1 -0
  895. package/lib/factory/statements/createForInStatement.mjs +29 -0
  896. package/lib/factory/statements/createForInStatement.mjs.map +1 -0
  897. package/lib/factory/statements/createForOfStatement.mjs +39 -0
  898. package/lib/factory/statements/createForOfStatement.mjs.map +1 -0
  899. package/lib/factory/statements/createForStatement.mjs +32 -0
  900. package/lib/factory/statements/createForStatement.mjs.map +1 -0
  901. package/lib/factory/statements/createIfStatement.mjs +31 -0
  902. package/lib/factory/statements/createIfStatement.mjs.map +1 -0
  903. package/lib/factory/statements/createLabeledStatement.mjs +28 -0
  904. package/lib/factory/statements/createLabeledStatement.mjs.map +1 -0
  905. package/lib/factory/statements/createNotEmittedStatement.mjs +20 -0
  906. package/lib/factory/statements/createNotEmittedStatement.mjs.map +1 -0
  907. package/lib/factory/statements/createReturnStatement.mjs +28 -0
  908. package/lib/factory/statements/createReturnStatement.mjs.map +1 -0
  909. package/lib/factory/statements/createSwitchStatement.mjs +31 -0
  910. package/lib/factory/statements/createSwitchStatement.mjs.map +1 -0
  911. package/lib/factory/statements/createThrowStatement.mjs +22 -0
  912. package/lib/factory/statements/createThrowStatement.mjs.map +1 -0
  913. package/lib/factory/statements/createTryStatement.mjs +34 -0
  914. package/lib/factory/statements/createTryStatement.mjs.map +1 -0
  915. package/lib/factory/statements/createVariableDeclaration.mjs +38 -0
  916. package/lib/factory/statements/createVariableDeclaration.mjs.map +1 -0
  917. package/lib/factory/statements/createVariableDeclarationList.mjs +27 -0
  918. package/lib/factory/statements/createVariableDeclarationList.mjs.map +1 -0
  919. package/lib/factory/statements/createVariableStatement.mjs +33 -0
  920. package/lib/factory/statements/createVariableStatement.mjs.map +1 -0
  921. package/lib/factory/statements/createWhileStatement.mjs +27 -0
  922. package/lib/factory/statements/createWhileStatement.mjs.map +1 -0
  923. package/lib/factory/statements/createWithStatement.mjs +27 -0
  924. package/lib/factory/statements/createWithStatement.mjs.map +1 -0
  925. package/lib/factory/types/createArrayTypeNode.mjs +25 -0
  926. package/lib/factory/types/createArrayTypeNode.mjs.map +1 -0
  927. package/lib/factory/types/createCallSignature.mjs +26 -0
  928. package/lib/factory/types/createCallSignature.mjs.map +1 -0
  929. package/lib/factory/types/createConditionalTypeNode.mjs +28 -0
  930. package/lib/factory/types/createConditionalTypeNode.mjs.map +1 -0
  931. package/lib/factory/types/createConstructSignature.mjs +25 -0
  932. package/lib/factory/types/createConstructSignature.mjs.map +1 -0
  933. package/lib/factory/types/createConstructorTypeNode.mjs +27 -0
  934. package/lib/factory/types/createConstructorTypeNode.mjs.map +1 -0
  935. package/lib/factory/types/createExpressionWithTypeArguments.mjs +25 -0
  936. package/lib/factory/types/createExpressionWithTypeArguments.mjs.map +1 -0
  937. package/lib/factory/types/createFunctionTypeNode.mjs +27 -0
  938. package/lib/factory/types/createFunctionTypeNode.mjs.map +1 -0
  939. package/lib/factory/types/createImportTypeNode.mjs +27 -0
  940. package/lib/factory/types/createImportTypeNode.mjs.map +1 -0
  941. package/lib/factory/types/createIndexSignature.mjs +25 -0
  942. package/lib/factory/types/createIndexSignature.mjs.map +1 -0
  943. package/lib/factory/types/createIndexedAccessTypeNode.mjs +25 -0
  944. package/lib/factory/types/createIndexedAccessTypeNode.mjs.map +1 -0
  945. package/lib/factory/types/createInferTypeNode.mjs +24 -0
  946. package/lib/factory/types/createInferTypeNode.mjs.map +1 -0
  947. package/lib/factory/types/createIntersectionTypeNode.mjs +24 -0
  948. package/lib/factory/types/createIntersectionTypeNode.mjs.map +1 -0
  949. package/lib/factory/types/createKeywordTypeNode.mjs +25 -0
  950. package/lib/factory/types/createKeywordTypeNode.mjs.map +1 -0
  951. package/lib/factory/types/createLiteralTypeNode.mjs +26 -0
  952. package/lib/factory/types/createLiteralTypeNode.mjs.map +1 -0
  953. package/lib/factory/types/createMappedTypeNode.mjs +44 -0
  954. package/lib/factory/types/createMappedTypeNode.mjs.map +1 -0
  955. package/lib/factory/types/createMethodSignature.mjs +39 -0
  956. package/lib/factory/types/createMethodSignature.mjs.map +1 -0
  957. package/lib/factory/types/createNamedTupleMember.mjs +33 -0
  958. package/lib/factory/types/createNamedTupleMember.mjs.map +1 -0
  959. package/lib/factory/types/createNotEmittedTypeElement.mjs +17 -0
  960. package/lib/factory/types/createNotEmittedTypeElement.mjs.map +1 -0
  961. package/lib/factory/types/createOptionalTypeNode.mjs +23 -0
  962. package/lib/factory/types/createOptionalTypeNode.mjs.map +1 -0
  963. package/lib/factory/types/createParenthesizedType.mjs +23 -0
  964. package/lib/factory/types/createParenthesizedType.mjs.map +1 -0
  965. package/lib/factory/types/createPropertySignature.mjs +34 -0
  966. package/lib/factory/types/createPropertySignature.mjs.map +1 -0
  967. package/lib/factory/types/createRestTypeNode.mjs +22 -0
  968. package/lib/factory/types/createRestTypeNode.mjs.map +1 -0
  969. package/lib/factory/types/createTemplateLiteralType.mjs +27 -0
  970. package/lib/factory/types/createTemplateLiteralType.mjs.map +1 -0
  971. package/lib/factory/types/createTemplateLiteralTypeSpan.mjs +27 -0
  972. package/lib/factory/types/createTemplateLiteralTypeSpan.mjs.map +1 -0
  973. package/lib/factory/types/createThisTypeNode.mjs +22 -0
  974. package/lib/factory/types/createThisTypeNode.mjs.map +1 -0
  975. package/lib/factory/types/createTupleTypeNode.mjs +24 -0
  976. package/lib/factory/types/createTupleTypeNode.mjs.map +1 -0
  977. package/lib/factory/types/createTypeLiteralNode.mjs +25 -0
  978. package/lib/factory/types/createTypeLiteralNode.mjs.map +1 -0
  979. package/lib/factory/types/createTypeOperatorNode.mjs +26 -0
  980. package/lib/factory/types/createTypeOperatorNode.mjs.map +1 -0
  981. package/lib/factory/types/createTypeParameterDeclaration.mjs +34 -0
  982. package/lib/factory/types/createTypeParameterDeclaration.mjs.map +1 -0
  983. package/lib/factory/types/createTypePredicateNode.mjs +35 -0
  984. package/lib/factory/types/createTypePredicateNode.mjs.map +1 -0
  985. package/lib/factory/types/createTypeQueryNode.mjs +23 -0
  986. package/lib/factory/types/createTypeQueryNode.mjs.map +1 -0
  987. package/lib/factory/types/createTypeReferenceNode.mjs +30 -0
  988. package/lib/factory/types/createTypeReferenceNode.mjs.map +1 -0
  989. package/lib/factory/types/createUnionTypeNode.mjs +24 -0
  990. package/lib/factory/types/createUnionTypeNode.mjs.map +1 -0
  991. package/lib/index.mjs +10 -0
  992. package/lib/index.mjs.map +1 -0
  993. package/lib/internal/doc.mjs +171 -0
  994. package/lib/internal/doc.mjs.map +1 -0
  995. package/lib/syntax/NodeFlags.mjs +23 -0
  996. package/lib/syntax/NodeFlags.mjs.map +1 -0
  997. package/lib/syntax/SyntaxKind.mjs +110 -0
  998. package/lib/syntax/SyntaxKind.mjs.map +1 -0
  999. package/lib/syntax/index.mjs +3 -0
  1000. package/lib/syntax/index.mjs.map +1 -0
  1001. package/package.json +5 -3
@@ -0,0 +1,1344 @@
1
+ import { getSyntheticLeadingComments, getSyntheticTrailingComments } from './comments.mjs';
2
+ import { join, hardline, printDocToString, line, softline, group, concat, indent, ifBreak } from './internal/doc.mjs';
3
+ import { SyntaxKind } from './syntax/SyntaxKind.mjs';
4
+ import { NodeFlags } from './syntax/NodeFlags.mjs';
5
+
6
+ const escapeString = (text, singleQuote) => {
7
+ const escaped = text
8
+ .replace(/\\/g, "\\\\")
9
+ .replace(/\n/g, "\\n")
10
+ .replace(/\r/g, "\\r")
11
+ .replace(/\t/g, "\\t");
12
+ return singleQuote === true
13
+ ? `'${escaped.replace(/'/g, "\\'")}'`
14
+ : `"${escaped.replace(/"/g, '\\"')}"`;
15
+ };
16
+ /**
17
+ * Printer turning {@link factory} produced AST nodes into TypeScript source
18
+ * text.
19
+ *
20
+ * The printer is a width-aware pretty-printer: it builds a Prettier-style
21
+ * document for the {@link Node} discriminated union and lays it out against
22
+ * {@link TsPrinterOptions.printWidth}. Lists (arguments, parameters, generic
23
+ * arguments, array / object members, ...) print on one line when they fit and
24
+ * break onto indented lines — with trailing commas — when they do not. Every
25
+ * `node.kind` narrows to its concrete type, so the walk is fully type-checked;
26
+ * no `typescript` module is involved.
27
+ *
28
+ * @author Jeongho Nam - https://github.com/samchon
29
+ * @example
30
+ * ```typescript
31
+ * import factory, { TsPrinter } from "@ttsc/factory";
32
+ *
33
+ * const printer = new TsPrinter({ printWidth: 80, indent: " " });
34
+ * printer.print(factory.createStringLiteral("hello")); // "hello"
35
+ * ```;
36
+ */
37
+ class TsPrinter {
38
+ printWidth_;
39
+ indent_;
40
+ newLine_;
41
+ constructor(options = {}) {
42
+ this.printWidth_ = options.printWidth ?? 80;
43
+ this.indent_ = options.indent ?? " ";
44
+ this.newLine_ = options.newLine ?? "\n";
45
+ }
46
+ /** Print a single node (or a whole {@link SourceFile}) into source text. */
47
+ print(node) {
48
+ return this.layout(this.emit(node));
49
+ }
50
+ /** Print multiple nodes, joining them with new lines. */
51
+ printNodes(nodes) {
52
+ return this.layout(join(hardline, nodes.map((n) => this.emit(n))));
53
+ }
54
+ /**
55
+ * Print an entire source file.
56
+ *
57
+ * @param sourceFile A {@link SourceFile}. When omitted, one is composed from
58
+ * the given `statements`.
59
+ * @param statements Statements to compose a source file from when no
60
+ * `sourceFile` is provided.
61
+ */
62
+ printFile(sourceFile, statements = []) {
63
+ const list = sourceFile
64
+ ? sourceFile.statements
65
+ : statements;
66
+ return (this.layout(join(hardline, list.map((s) => this.emit(s)))) + this.newLine_);
67
+ }
68
+ /* ----------------------------------------------------------------------- */
69
+ /* INTERNAL */
70
+ /* ----------------------------------------------------------------------- */
71
+ layout(doc) {
72
+ return printDocToString(doc, {
73
+ printWidth: this.printWidth_,
74
+ indent: this.indent_,
75
+ newLine: this.newLine_,
76
+ });
77
+ }
78
+ /** Comma-separated, width-aware delimited list (`(...)`, `[...]`, `<...>`). */
79
+ delim(open, items, close, opts = {}) {
80
+ if (items.length === 0)
81
+ return open + close;
82
+ const ln = opts.space ? line : softline;
83
+ return group(concat([
84
+ open,
85
+ indent(concat([ln, join(concat([",", line]), items)])),
86
+ opts.trailingComma ? ifBreak(",") : "",
87
+ ln,
88
+ close,
89
+ ]), opts.forceBreak === true);
90
+ }
91
+ /**
92
+ * Semicolon-separated member block (`{ a; b }`), e.g. interfaces.
93
+ *
94
+ * A bare {@link import("./ast").Identifier} member acts as a blank-line spacer
95
+ * (the legacy `createIdentifier("\n")` codegen idiom): it inserts an empty
96
+ * line between members and carries no `;` terminator, matching the legacy
97
+ * printer.
98
+ */
99
+ memberBlock(members, forceBreak) {
100
+ const inner = [];
101
+ let first = true;
102
+ let blank = false;
103
+ for (const member of members) {
104
+ if (member.kind === "Identifier") {
105
+ blank = true;
106
+ continue;
107
+ }
108
+ if (!first)
109
+ inner.push(";", line);
110
+ if (blank) {
111
+ inner.push(hardline);
112
+ blank = false;
113
+ }
114
+ inner.push(this.emit(member));
115
+ first = false;
116
+ }
117
+ if (inner.length === 0)
118
+ return "{}";
119
+ return group(concat([
120
+ "{",
121
+ indent(concat([line, concat(inner)])),
122
+ ifBreak(";"),
123
+ line,
124
+ "}",
125
+ ]), forceBreak);
126
+ }
127
+ /** Always-broken statement block (`{ ... }`). */
128
+ statementBlock(items) {
129
+ if (items.length === 0)
130
+ return "{}";
131
+ return concat([
132
+ "{",
133
+ indent(concat([hardline, join(hardline, items)])),
134
+ hardline,
135
+ "}",
136
+ ]);
137
+ }
138
+ typeArguments(args) {
139
+ // type-argument / type-parameter lists disallow a trailing comma (TS1009)
140
+ return args && args.length
141
+ ? this.delim("<", args.map((a) => this.emit(a)), ">", {
142
+ trailingComma: false,
143
+ })
144
+ : "";
145
+ }
146
+ params(params) {
147
+ return this.delim("(", params.map((p) => this.emit(p)), ")", {
148
+ trailingComma: true,
149
+ });
150
+ }
151
+ modifiers(mods, decoratorsOnNewLine) {
152
+ if (!mods || mods.length === 0)
153
+ return "";
154
+ const decorators = mods.filter((m) => m.kind === "Decorator");
155
+ const tokens = mods.filter((m) => m.kind !== "Decorator");
156
+ const parts = [];
157
+ const gap = decoratorsOnNewLine ? hardline : " ";
158
+ if (decorators.length)
159
+ parts.push(join(gap, decorators.map((d) => this.emit(d))), gap);
160
+ if (tokens.length)
161
+ parts.push(join(" ", tokens.map((t) => this.emit(t))), " ");
162
+ return concat(parts);
163
+ }
164
+ heritage(clauses) {
165
+ return clauses && clauses.length
166
+ ? concat([
167
+ " ",
168
+ join(" ", clauses.map((c) => this.emit(c))),
169
+ ])
170
+ : "";
171
+ }
172
+ optType(type) {
173
+ return type ? concat([": ", this.emit(type)]) : "";
174
+ }
175
+ optBody(body) {
176
+ return body ? concat([" ", this.emit(body)]) : ";";
177
+ }
178
+ emit(node) {
179
+ const body = this.emitNode(node);
180
+ const leading = getSyntheticLeadingComments(node);
181
+ const trailing = getSyntheticTrailingComments(node);
182
+ if ((leading === undefined || leading.length === 0) &&
183
+ (trailing === undefined || trailing.length === 0))
184
+ return body;
185
+ const parts = [];
186
+ if (leading !== undefined)
187
+ for (const comment of leading)
188
+ parts.push(this.leadingComment(comment));
189
+ parts.push(body);
190
+ if (trailing !== undefined)
191
+ for (const comment of trailing)
192
+ parts.push(this.trailingComment(comment));
193
+ return concat(parts);
194
+ }
195
+ /** Render a leading comment followed by its node separator. */
196
+ leadingComment(comment) {
197
+ // a `//` comment must terminate the line; a `/* */` honours its own flag
198
+ const newLine = comment.kind === SyntaxKind.SingleLineCommentTrivia ||
199
+ comment.hasTrailingNewLine === true;
200
+ return concat([this.commentBody(comment), newLine ? hardline : " "]);
201
+ }
202
+ /** Render a trailing comment preceded by its node separator. */
203
+ trailingComment(comment) {
204
+ const newLine = comment.kind === SyntaxKind.SingleLineCommentTrivia ||
205
+ comment.hasTrailingNewLine === true;
206
+ return concat([
207
+ comment.hasLeadingNewLine === true ? hardline : " ",
208
+ this.commentBody(comment),
209
+ newLine ? hardline : "",
210
+ ]);
211
+ }
212
+ /** Render the delimited comment body, re-flowing embedded line breaks. */
213
+ commentBody(comment) {
214
+ if (comment.kind === SyntaxKind.SingleLineCommentTrivia)
215
+ return concat(["//", comment.text]);
216
+ // re-emit embedded newlines as hardlines so each line re-indents in place
217
+ return concat([
218
+ "/*",
219
+ join(hardline, comment.text.replace(/\r\n?/g, "\n").split("\n")),
220
+ "*/",
221
+ ]);
222
+ }
223
+ emitNode(node) {
224
+ switch (node.kind) {
225
+ /* names & tokens */
226
+ case "Identifier":
227
+ return node.text;
228
+ case "PrivateIdentifier":
229
+ return node.text;
230
+ case "QualifiedName":
231
+ return concat([this.emit(node.left), ".", this.emit(node.right)]);
232
+ case "Token":
233
+ return node.token;
234
+ case "Decorator":
235
+ return concat(["@", this.emit(node.expression)]);
236
+ /* literals */
237
+ case "StringLiteral":
238
+ return escapeString(node.text, node.singleQuote);
239
+ case "NumericLiteral":
240
+ return node.text;
241
+ case "BigIntLiteral":
242
+ return node.text;
243
+ /* expressions */
244
+ case "ArrayLiteralExpression":
245
+ return this.delim("[", node.elements.map((e) => this.emit(e)), "]", { trailingComma: true, forceBreak: node.multiLine === true });
246
+ case "ObjectLiteralExpression":
247
+ return this.delim("{", node.properties.map((p) => this.emit(p)), "}", {
248
+ space: true,
249
+ trailingComma: true,
250
+ forceBreak: node.multiLine === true,
251
+ });
252
+ case "PropertyAssignment":
253
+ return concat([
254
+ this.emit(node.name),
255
+ ": ",
256
+ this.emit(node.initializer),
257
+ ]);
258
+ case "ShorthandPropertyAssignment":
259
+ return concat([
260
+ this.emit(node.name),
261
+ node.objectAssignmentInitializer
262
+ ? concat([" = ", this.emit(node.objectAssignmentInitializer)])
263
+ : "",
264
+ ]);
265
+ case "SpreadAssignment":
266
+ return concat(["...", this.emit(node.expression)]);
267
+ case "PropertyAccessExpression":
268
+ return concat([this.emit(node.expression), ".", this.emit(node.name)]);
269
+ case "ElementAccessExpression":
270
+ return concat([
271
+ this.emit(node.expression),
272
+ "[",
273
+ this.emit(node.argumentExpression),
274
+ "]",
275
+ ]);
276
+ case "CallExpression":
277
+ return concat([
278
+ this.emit(node.expression),
279
+ this.typeArguments(node.typeArguments),
280
+ this.params(node.arguments),
281
+ ]);
282
+ case "NewExpression":
283
+ return concat([
284
+ "new ",
285
+ this.emit(node.expression),
286
+ this.typeArguments(node.typeArguments),
287
+ this.params(node.arguments ?? []),
288
+ ]);
289
+ case "ParenthesizedExpression":
290
+ return concat(["(", this.emit(node.expression), ")"]);
291
+ case "BinaryExpression":
292
+ return group(concat([
293
+ this.emit(node.left),
294
+ " ",
295
+ node.operator,
296
+ indent(concat([line, this.emit(node.right)])),
297
+ ]));
298
+ case "PrefixUnaryExpression":
299
+ return concat([node.operator, this.emit(node.operand)]);
300
+ case "PostfixUnaryExpression":
301
+ return concat([this.emit(node.operand), node.operator]);
302
+ case "ConditionalExpression":
303
+ return group(concat([
304
+ this.emit(node.condition),
305
+ indent(concat([
306
+ line,
307
+ "? ",
308
+ this.emit(node.whenTrue),
309
+ line,
310
+ ": ",
311
+ this.emit(node.whenFalse),
312
+ ])),
313
+ ]));
314
+ case "ArrowFunction":
315
+ return concat([
316
+ this.modifiers(node.modifiers, false),
317
+ this.typeArguments(node.typeParameters),
318
+ this.params(node.parameters),
319
+ this.optType(node.type),
320
+ " => ",
321
+ this.emit(node.body),
322
+ ]);
323
+ case "FunctionExpression":
324
+ return concat([
325
+ this.modifiers(node.modifiers, false),
326
+ "function",
327
+ node.asteriskToken ? "*" : "",
328
+ node.name ? concat([" ", this.emit(node.name)]) : " ",
329
+ this.typeArguments(node.typeParameters),
330
+ this.params(node.parameters),
331
+ this.optType(node.type),
332
+ " ",
333
+ this.emit(node.body),
334
+ ]);
335
+ case "AsExpression":
336
+ return concat([
337
+ this.emit(node.expression),
338
+ " as ",
339
+ this.emit(node.type),
340
+ ]);
341
+ case "SatisfiesExpression":
342
+ return concat([
343
+ this.emit(node.expression),
344
+ " satisfies ",
345
+ this.emit(node.type),
346
+ ]);
347
+ case "NonNullExpression":
348
+ return concat([this.emit(node.expression), "!"]);
349
+ case "SpreadElement":
350
+ return concat(["...", this.emit(node.expression)]);
351
+ case "AwaitExpression":
352
+ return concat(["await ", this.emit(node.expression)]);
353
+ case "TypeOfExpression":
354
+ return concat(["typeof ", this.emit(node.expression)]);
355
+ /* types */
356
+ case "KeywordTypeNode":
357
+ return node.keyword;
358
+ case "TypeReferenceNode":
359
+ return concat([
360
+ this.emit(node.typeName),
361
+ this.typeArguments(node.typeArguments),
362
+ ]);
363
+ case "ArrayTypeNode":
364
+ return concat([this.postfixTypeOperand(node.elementType), "[]"]);
365
+ case "UnionTypeNode":
366
+ return this.binaryType("|", node.types.map((t) => this.emit(t)));
367
+ case "IntersectionTypeNode":
368
+ return this.binaryType("&", node.types.map((t) => this.emit(t)));
369
+ case "LiteralTypeNode":
370
+ return this.emit(node.literal);
371
+ case "TypeLiteralNode":
372
+ return this.memberBlock(node.members, false);
373
+ case "FunctionTypeNode":
374
+ return concat([
375
+ this.typeArguments(node.typeParameters),
376
+ this.params(node.parameters),
377
+ " => ",
378
+ this.emit(node.type),
379
+ ]);
380
+ case "TupleTypeNode":
381
+ return this.delim("[", node.elements.map((e) => this.emit(e)), "]", {
382
+ trailingComma: true,
383
+ });
384
+ case "ParenthesizedTypeNode":
385
+ return concat(["(", this.emit(node.type), ")"]);
386
+ case "TypeOperatorNode":
387
+ return concat([node.operator, " ", this.emit(node.type)]);
388
+ case "IndexedAccessTypeNode":
389
+ return concat([
390
+ this.postfixTypeOperand(node.objectType),
391
+ "[",
392
+ this.emit(node.indexType),
393
+ "]",
394
+ ]);
395
+ case "TypeQueryNode":
396
+ return concat(["typeof ", this.emit(node.exprName)]);
397
+ case "ExpressionWithTypeArguments":
398
+ return concat([
399
+ this.emit(node.expression),
400
+ this.typeArguments(node.typeArguments),
401
+ ]);
402
+ case "PropertySignature":
403
+ return concat([
404
+ this.modifiers(node.modifiers, false),
405
+ this.emit(node.name),
406
+ node.questionToken ? "?" : "",
407
+ this.optType(node.type),
408
+ ]);
409
+ case "IndexSignature":
410
+ return concat([
411
+ this.modifiers(node.modifiers, false),
412
+ "[",
413
+ join(", ", node.parameters.map((p) => this.emit(p))),
414
+ "]: ",
415
+ this.emit(node.type),
416
+ ]);
417
+ case "MethodSignature":
418
+ return concat([
419
+ this.modifiers(node.modifiers, false),
420
+ this.emit(node.name),
421
+ node.questionToken ? "?" : "",
422
+ this.typeArguments(node.typeParameters),
423
+ this.params(node.parameters),
424
+ this.optType(node.type),
425
+ ]);
426
+ case "TypeParameterDeclaration":
427
+ return concat([
428
+ this.modifiers(node.modifiers, false),
429
+ this.emit(node.name),
430
+ node.constraint
431
+ ? concat([" extends ", this.emit(node.constraint)])
432
+ : "",
433
+ node.default ? concat([" = ", this.emit(node.default)]) : "",
434
+ ]);
435
+ /* support */
436
+ case "ParameterDeclaration":
437
+ return concat([
438
+ this.modifiers(node.modifiers, false),
439
+ node.dotDotDotToken ? "..." : "",
440
+ this.emit(node.name),
441
+ node.questionToken ? "?" : "",
442
+ this.optType(node.type),
443
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
444
+ ]);
445
+ case "HeritageClause":
446
+ return concat([
447
+ node.token,
448
+ " ",
449
+ join(", ", node.types.map((t) => this.emit(t))),
450
+ ]);
451
+ /* statements */
452
+ case "VariableStatement":
453
+ return concat([
454
+ this.modifiers(node.modifiers, false),
455
+ this.emit(node.declarationList),
456
+ ";",
457
+ ]);
458
+ case "VariableDeclarationList": {
459
+ const keyword = node.flags === NodeFlags.Const
460
+ ? "const"
461
+ : node.flags === NodeFlags.Let
462
+ ? "let"
463
+ : "var";
464
+ return concat([
465
+ keyword,
466
+ " ",
467
+ join(", ", node.declarations.map((d) => this.emit(d))),
468
+ ]);
469
+ }
470
+ case "VariableDeclaration":
471
+ return concat([
472
+ this.emit(node.name),
473
+ node.exclamationToken ? "!" : "",
474
+ this.optType(node.type),
475
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
476
+ ]);
477
+ case "ExpressionStatement":
478
+ return concat([this.emit(node.expression), ";"]);
479
+ case "ReturnStatement":
480
+ return node.expression
481
+ ? concat(["return ", this.emit(node.expression), ";"])
482
+ : "return;";
483
+ case "ThrowStatement":
484
+ return concat(["throw ", this.emit(node.expression), ";"]);
485
+ case "IfStatement":
486
+ return concat([
487
+ "if (",
488
+ this.emit(node.expression),
489
+ ") ",
490
+ this.emit(node.thenStatement),
491
+ node.elseStatement
492
+ ? concat([" else ", this.emit(node.elseStatement)])
493
+ : "",
494
+ ]);
495
+ case "Block":
496
+ return this.statementBlock(node.statements.map((s) => this.emit(s)));
497
+ /* declarations */
498
+ case "FunctionDeclaration":
499
+ return concat([
500
+ this.modifiers(node.modifiers, true),
501
+ "function",
502
+ node.asteriskToken ? "*" : "",
503
+ " ",
504
+ node.name ? this.emit(node.name) : "",
505
+ this.typeArguments(node.typeParameters),
506
+ this.params(node.parameters),
507
+ this.optType(node.type),
508
+ this.optBody(node.body),
509
+ ]);
510
+ case "ClassDeclaration":
511
+ return concat([
512
+ this.modifiers(node.modifiers, true),
513
+ "class",
514
+ node.name ? concat([" ", this.emit(node.name)]) : "",
515
+ this.typeArguments(node.typeParameters),
516
+ this.heritage(node.heritageClauses),
517
+ " ",
518
+ this.statementBlock(node.members.map((m) => this.emit(m))),
519
+ ]);
520
+ case "PropertyDeclaration":
521
+ return concat([
522
+ this.modifiers(node.modifiers, true),
523
+ this.emit(node.name),
524
+ node.questionOrExclamationToken
525
+ ? this.emit(node.questionOrExclamationToken)
526
+ : "",
527
+ this.optType(node.type),
528
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
529
+ ";",
530
+ ]);
531
+ case "MethodDeclaration":
532
+ return concat([
533
+ this.modifiers(node.modifiers, true),
534
+ node.asteriskToken ? "*" : "",
535
+ this.emit(node.name),
536
+ node.questionToken ? "?" : "",
537
+ this.typeArguments(node.typeParameters),
538
+ this.params(node.parameters),
539
+ this.optType(node.type),
540
+ this.optBody(node.body),
541
+ ]);
542
+ case "ConstructorDeclaration":
543
+ return concat([
544
+ this.modifiers(node.modifiers, true),
545
+ "constructor",
546
+ this.params(node.parameters),
547
+ this.optBody(node.body),
548
+ ]);
549
+ case "GetAccessorDeclaration":
550
+ return concat([
551
+ this.modifiers(node.modifiers, true),
552
+ "get ",
553
+ this.emit(node.name),
554
+ this.params(node.parameters),
555
+ this.optType(node.type),
556
+ this.optBody(node.body),
557
+ ]);
558
+ case "SetAccessorDeclaration":
559
+ return concat([
560
+ this.modifiers(node.modifiers, true),
561
+ "set ",
562
+ this.emit(node.name),
563
+ this.params(node.parameters),
564
+ this.optBody(node.body),
565
+ ]);
566
+ case "InterfaceDeclaration":
567
+ return concat([
568
+ this.modifiers(node.modifiers, true),
569
+ "interface ",
570
+ this.emit(node.name),
571
+ this.typeArguments(node.typeParameters),
572
+ this.heritage(node.heritageClauses),
573
+ " ",
574
+ this.memberBlock(node.members, true),
575
+ ]);
576
+ case "TypeAliasDeclaration":
577
+ return concat([
578
+ this.modifiers(node.modifiers, true),
579
+ "type ",
580
+ this.emit(node.name),
581
+ this.typeArguments(node.typeParameters),
582
+ " = ",
583
+ this.emit(node.type),
584
+ ";",
585
+ ]);
586
+ case "EnumDeclaration":
587
+ return concat([
588
+ this.modifiers(node.modifiers, true),
589
+ "enum ",
590
+ this.emit(node.name),
591
+ " ",
592
+ node.members.length === 0
593
+ ? "{}"
594
+ : concat([
595
+ "{",
596
+ indent(concat([
597
+ hardline,
598
+ join(concat([",", hardline]), node.members.map((m) => this.emit(m))),
599
+ ",",
600
+ ])),
601
+ hardline,
602
+ "}",
603
+ ]),
604
+ ]);
605
+ case "EnumMember":
606
+ return concat([
607
+ this.emit(node.name),
608
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
609
+ ]);
610
+ /* imports & exports */
611
+ case "ImportDeclaration":
612
+ return concat([
613
+ this.modifiers(node.modifiers, false),
614
+ "import ",
615
+ node.importClause
616
+ ? concat([this.emit(node.importClause), " from "])
617
+ : "",
618
+ this.emit(node.moduleSpecifier),
619
+ ";",
620
+ ]);
621
+ case "ImportClause": {
622
+ const named = [];
623
+ if (node.name)
624
+ named.push(this.emit(node.name));
625
+ if (node.namedBindings)
626
+ named.push(this.emit(node.namedBindings));
627
+ return concat([node.isTypeOnly ? "type " : "", join(", ", named)]);
628
+ }
629
+ case "NamedImports":
630
+ return this.delim("{", node.elements.map((e) => this.emit(e)), "}", { space: true, trailingComma: true });
631
+ case "ImportSpecifier":
632
+ return concat([
633
+ node.isTypeOnly ? "type " : "",
634
+ node.propertyName
635
+ ? concat([this.emit(node.propertyName), " as "])
636
+ : "",
637
+ this.emit(node.name),
638
+ ]);
639
+ case "NamespaceImport":
640
+ return concat(["* as ", this.emit(node.name)]);
641
+ case "ExportDeclaration":
642
+ return concat([
643
+ this.modifiers(node.modifiers, false),
644
+ "export ",
645
+ node.isTypeOnly ? "type " : "",
646
+ node.exportClause ? this.emit(node.exportClause) : "*",
647
+ node.moduleSpecifier
648
+ ? concat([" from ", this.emit(node.moduleSpecifier)])
649
+ : "",
650
+ ";",
651
+ ]);
652
+ case "NamedExports":
653
+ return this.delim("{", node.elements.map((e) => this.emit(e)), "}", { space: true, trailingComma: true });
654
+ case "ExportSpecifier":
655
+ return concat([
656
+ node.isTypeOnly ? "type " : "",
657
+ node.propertyName
658
+ ? concat([this.emit(node.propertyName), " as "])
659
+ : "",
660
+ this.emit(node.name),
661
+ ]);
662
+ case "ExportAssignment":
663
+ return concat([
664
+ this.modifiers(node.modifiers, false),
665
+ node.isExportEquals ? "export = " : "export default ",
666
+ this.emit(node.expression),
667
+ ";",
668
+ ]);
669
+ /* source file */
670
+ case "SourceFile":
671
+ return concat([
672
+ join(hardline, node.statements.map((s) => this.emit(s))),
673
+ hardline,
674
+ ]);
675
+ /* loops & flow */
676
+ case "ForStatement":
677
+ return concat([
678
+ "for (",
679
+ node.initializer ? this.emit(node.initializer) : "",
680
+ "; ",
681
+ node.condition ? this.emit(node.condition) : "",
682
+ "; ",
683
+ node.incrementor ? this.emit(node.incrementor) : "",
684
+ ") ",
685
+ this.emit(node.statement),
686
+ ]);
687
+ case "ForInStatement":
688
+ return concat([
689
+ "for (",
690
+ this.emit(node.initializer),
691
+ " in ",
692
+ this.emit(node.expression),
693
+ ") ",
694
+ this.emit(node.statement),
695
+ ]);
696
+ case "ForOfStatement":
697
+ return concat([
698
+ "for ",
699
+ node.awaitModifier ? "await " : "",
700
+ "(",
701
+ this.emit(node.initializer),
702
+ " of ",
703
+ this.emit(node.expression),
704
+ ") ",
705
+ this.emit(node.statement),
706
+ ]);
707
+ case "WhileStatement":
708
+ return concat([
709
+ "while (",
710
+ this.emit(node.expression),
711
+ ") ",
712
+ this.emit(node.statement),
713
+ ]);
714
+ case "DoStatement":
715
+ return concat([
716
+ "do ",
717
+ this.emit(node.statement),
718
+ " while (",
719
+ this.emit(node.expression),
720
+ ");",
721
+ ]);
722
+ case "SwitchStatement":
723
+ return concat([
724
+ "switch (",
725
+ this.emit(node.expression),
726
+ ") ",
727
+ this.emit(node.caseBlock),
728
+ ]);
729
+ case "CaseBlock":
730
+ return node.clauses.length === 0
731
+ ? "{}"
732
+ : concat([
733
+ "{",
734
+ indent(concat([
735
+ hardline,
736
+ join(hardline, node.clauses.map((c) => this.emit(c))),
737
+ ])),
738
+ hardline,
739
+ "}",
740
+ ]);
741
+ case "CaseClause":
742
+ return concat([
743
+ "case ",
744
+ this.emit(node.expression),
745
+ ":",
746
+ node.statements.length
747
+ ? indent(concat([
748
+ hardline,
749
+ join(hardline, node.statements.map((s) => this.emit(s))),
750
+ ]))
751
+ : "",
752
+ ]);
753
+ case "DefaultClause":
754
+ return concat([
755
+ "default:",
756
+ node.statements.length
757
+ ? indent(concat([
758
+ hardline,
759
+ join(hardline, node.statements.map((s) => this.emit(s))),
760
+ ]))
761
+ : "",
762
+ ]);
763
+ case "BreakStatement":
764
+ return node.label
765
+ ? concat(["break ", this.emit(node.label), ";"])
766
+ : "break;";
767
+ case "ContinueStatement":
768
+ return node.label
769
+ ? concat(["continue ", this.emit(node.label), ";"])
770
+ : "continue;";
771
+ case "TryStatement":
772
+ return concat([
773
+ "try ",
774
+ this.emit(node.tryBlock),
775
+ node.catchClause ? concat([" ", this.emit(node.catchClause)]) : "",
776
+ node.finallyBlock
777
+ ? concat([" finally ", this.emit(node.finallyBlock)])
778
+ : "",
779
+ ]);
780
+ case "CatchClause":
781
+ return node.variableDeclaration
782
+ ? concat([
783
+ "catch (",
784
+ this.emit(node.variableDeclaration),
785
+ ") ",
786
+ this.emit(node.block),
787
+ ])
788
+ : concat(["catch ", this.emit(node.block)]);
789
+ case "LabeledStatement":
790
+ return concat([this.emit(node.label), ": ", this.emit(node.statement)]);
791
+ case "WithStatement":
792
+ return concat([
793
+ "with (",
794
+ this.emit(node.expression),
795
+ ") ",
796
+ this.emit(node.statement),
797
+ ]);
798
+ case "DebuggerStatement":
799
+ return "debugger;";
800
+ case "EmptyStatement":
801
+ return ";";
802
+ /* modules & namespaces */
803
+ case "ModuleDeclaration":
804
+ return concat([
805
+ this.modifiers(node.modifiers, true),
806
+ node.name.kind === "StringLiteral" ? "module " : "namespace ",
807
+ this.emit(node.name),
808
+ node.body ? concat([" ", this.emit(node.body)]) : ";",
809
+ ]);
810
+ case "ModuleBlock":
811
+ return this.statementBlock(node.statements.map((s) => this.emit(s)));
812
+ case "ClassStaticBlockDeclaration":
813
+ return concat(["static ", this.emit(node.body)]);
814
+ case "ImportEqualsDeclaration":
815
+ return concat([
816
+ this.modifiers(node.modifiers, false),
817
+ "import ",
818
+ node.isTypeOnly ? "type " : "",
819
+ this.emit(node.name),
820
+ " = ",
821
+ this.emit(node.moduleReference),
822
+ ";",
823
+ ]);
824
+ case "ExternalModuleReference":
825
+ return concat(["require(", this.emit(node.expression), ")"]);
826
+ case "NamespaceExportDeclaration":
827
+ return concat(["export as namespace ", this.emit(node.name), ";"]);
828
+ case "SemicolonClassElement":
829
+ return ";";
830
+ case "NamespaceExport":
831
+ return concat(["* as ", this.emit(node.name)]);
832
+ /* advanced types */
833
+ case "ThisTypeNode":
834
+ return "this";
835
+ case "ConstructorTypeNode":
836
+ return concat([
837
+ this.modifiers(node.modifiers, false),
838
+ "new ",
839
+ this.typeArguments(node.typeParameters),
840
+ this.params(node.parameters),
841
+ " => ",
842
+ this.emit(node.type),
843
+ ]);
844
+ case "TypePredicateNode":
845
+ return concat([
846
+ node.assertsModifier ? "asserts " : "",
847
+ this.emit(node.parameterName),
848
+ node.type ? concat([" is ", this.emit(node.type)]) : "",
849
+ ]);
850
+ case "ConditionalTypeNode":
851
+ return concat([
852
+ this.emit(node.checkType),
853
+ " extends ",
854
+ this.emit(node.extendsType),
855
+ " ? ",
856
+ this.emit(node.trueType),
857
+ " : ",
858
+ this.emit(node.falseType),
859
+ ]);
860
+ case "InferTypeNode":
861
+ return concat(["infer ", this.emit(node.typeParameter)]);
862
+ case "MappedTypeNode": {
863
+ const ro = node.readonlyToken
864
+ ? node.readonlyToken.token === "readonly"
865
+ ? "readonly "
866
+ : `${node.readonlyToken.token}readonly `
867
+ : "";
868
+ const q = node.questionToken
869
+ ? node.questionToken.token === "?"
870
+ ? "?"
871
+ : `${node.questionToken.token}?`
872
+ : "";
873
+ return concat([
874
+ "{ ",
875
+ ro,
876
+ "[",
877
+ this.emit(node.typeParameter.name),
878
+ " in ",
879
+ node.typeParameter.constraint
880
+ ? this.emit(node.typeParameter.constraint)
881
+ : "",
882
+ node.nameType ? concat([" as ", this.emit(node.nameType)]) : "",
883
+ "]",
884
+ q,
885
+ node.type ? concat([": ", this.emit(node.type)]) : "",
886
+ " }",
887
+ ]);
888
+ }
889
+ case "TemplateLiteralType":
890
+ return concat([
891
+ this.emit(node.head),
892
+ concat(node.templateSpans.map((s) => this.emit(s))),
893
+ ]);
894
+ case "TemplateLiteralTypeSpan":
895
+ return concat([this.emit(node.type), this.emit(node.literal)]);
896
+ case "NamedTupleMember":
897
+ return concat([
898
+ node.dotDotDotToken ? "..." : "",
899
+ this.emit(node.name),
900
+ node.questionToken ? "?" : "",
901
+ ": ",
902
+ this.emit(node.type),
903
+ ]);
904
+ case "OptionalTypeNode":
905
+ return concat([this.emit(node.type), "?"]);
906
+ case "RestTypeNode":
907
+ return concat(["...", this.emit(node.type)]);
908
+ case "ImportTypeNode":
909
+ return concat([
910
+ node.isTypeOf ? "typeof " : "",
911
+ "import(",
912
+ this.emit(node.argument),
913
+ ")",
914
+ node.qualifier ? concat([".", this.emit(node.qualifier)]) : "",
915
+ this.typeArguments(node.typeArguments),
916
+ ]);
917
+ case "CallSignature":
918
+ return concat([
919
+ this.typeArguments(node.typeParameters),
920
+ this.params(node.parameters),
921
+ this.optType(node.type),
922
+ ]);
923
+ case "ConstructSignature":
924
+ return concat([
925
+ "new ",
926
+ this.typeArguments(node.typeParameters),
927
+ this.params(node.parameters),
928
+ this.optType(node.type),
929
+ ]);
930
+ /* template literals */
931
+ case "TemplateHead":
932
+ return concat(["`", node.text, "${"]);
933
+ case "TemplateMiddle":
934
+ return concat(["}", node.text, "${"]);
935
+ case "TemplateTail":
936
+ return concat(["}", node.text, "`"]);
937
+ case "NoSubstitutionTemplateLiteral":
938
+ return concat(["`", node.text, "`"]);
939
+ /* template & misc expressions */
940
+ case "TemplateExpression":
941
+ return concat([
942
+ this.emit(node.head),
943
+ concat(node.templateSpans.map((s) => this.emit(s))),
944
+ ]);
945
+ case "TemplateSpan":
946
+ return concat([this.emit(node.expression), this.emit(node.literal)]);
947
+ case "TaggedTemplateExpression":
948
+ return concat([
949
+ this.emit(node.tag),
950
+ this.typeArguments(node.typeArguments),
951
+ this.emit(node.template),
952
+ ]);
953
+ case "YieldExpression":
954
+ return concat([
955
+ "yield",
956
+ node.asteriskToken ? "*" : "",
957
+ node.expression ? concat([" ", this.emit(node.expression)]) : "",
958
+ ]);
959
+ case "DeleteExpression":
960
+ return concat(["delete ", this.emit(node.expression)]);
961
+ case "VoidExpression":
962
+ return concat(["void ", this.emit(node.expression)]);
963
+ case "RegularExpressionLiteral":
964
+ return node.text;
965
+ case "ClassExpression":
966
+ return concat([
967
+ this.modifiers(node.modifiers, true),
968
+ "class",
969
+ node.name ? concat([" ", this.emit(node.name)]) : "",
970
+ this.typeArguments(node.typeParameters),
971
+ this.heritage(node.heritageClauses),
972
+ " ",
973
+ this.statementBlock(node.members.map((m) => this.emit(m))),
974
+ ]);
975
+ case "MetaProperty":
976
+ return concat([node.keywordToken, ".", this.emit(node.name)]);
977
+ case "CommaListExpression":
978
+ return join(", ", node.elements.map((e) => this.emit(e)));
979
+ case "ComputedPropertyName":
980
+ return concat(["[", this.emit(node.expression), "]"]);
981
+ case "OmittedExpression":
982
+ return "";
983
+ case "BindingElement":
984
+ return concat([
985
+ node.dotDotDotToken ? "..." : "",
986
+ node.propertyName ? concat([this.emit(node.propertyName), ": "]) : "",
987
+ this.emit(node.name),
988
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
989
+ ]);
990
+ case "ObjectBindingPattern":
991
+ return this.delim("{", node.elements.map((e) => this.emit(e)), "}", { space: true, trailingComma: true });
992
+ case "ArrayBindingPattern":
993
+ return this.delim("[", node.elements.map((e) => this.emit(e)), "]", { trailingComma: true });
994
+ case "TypeAssertion":
995
+ return concat([
996
+ "<",
997
+ this.emit(node.type),
998
+ ">",
999
+ this.emit(node.expression),
1000
+ ]);
1001
+ case "PropertyAccessChain":
1002
+ return concat([
1003
+ this.emit(node.expression),
1004
+ node.questionDotToken ? "?." : ".",
1005
+ this.emit(node.name),
1006
+ ]);
1007
+ case "ElementAccessChain":
1008
+ return concat([
1009
+ this.emit(node.expression),
1010
+ node.questionDotToken ? "?." : "",
1011
+ "[",
1012
+ this.emit(node.argumentExpression),
1013
+ "]",
1014
+ ]);
1015
+ case "CallChain":
1016
+ return concat([
1017
+ this.emit(node.expression),
1018
+ node.questionDotToken ? "?." : "",
1019
+ this.typeArguments(node.typeArguments),
1020
+ this.params(node.arguments),
1021
+ ]);
1022
+ case "NonNullChain":
1023
+ return concat([this.emit(node.expression), "!"]);
1024
+ /* jsx */
1025
+ case "JsxElement":
1026
+ return group(concat([
1027
+ this.emit(node.openingElement),
1028
+ indent(concat(node.children.map((c) => concat([softline, this.emit(c)])))),
1029
+ softline,
1030
+ this.emit(node.closingElement),
1031
+ ]));
1032
+ case "JsxSelfClosingElement":
1033
+ return concat([
1034
+ "<",
1035
+ this.emit(node.tagName),
1036
+ this.typeArguments(node.typeArguments),
1037
+ this.emit(node.attributes),
1038
+ " />",
1039
+ ]);
1040
+ case "JsxOpeningElement":
1041
+ return concat([
1042
+ "<",
1043
+ this.emit(node.tagName),
1044
+ this.typeArguments(node.typeArguments),
1045
+ this.emit(node.attributes),
1046
+ ">",
1047
+ ]);
1048
+ case "JsxClosingElement":
1049
+ return concat(["</", this.emit(node.tagName), ">"]);
1050
+ case "JsxFragment":
1051
+ return group(concat([
1052
+ this.emit(node.openingFragment),
1053
+ indent(concat(node.children.map((c) => concat([softline, this.emit(c)])))),
1054
+ softline,
1055
+ this.emit(node.closingFragment),
1056
+ ]));
1057
+ case "JsxOpeningFragment":
1058
+ return "<>";
1059
+ case "JsxClosingFragment":
1060
+ return "</>";
1061
+ case "JsxText":
1062
+ return node.text;
1063
+ case "JsxAttribute":
1064
+ return node.initializer === undefined
1065
+ ? this.emit(node.name)
1066
+ : concat([this.emit(node.name), "=", this.emit(node.initializer)]);
1067
+ case "JsxAttributes":
1068
+ return node.properties.length === 0
1069
+ ? ""
1070
+ : concat(node.properties.map((p) => concat([" ", this.emit(p)])));
1071
+ case "JsxSpreadAttribute":
1072
+ return concat(["{...", this.emit(node.expression), "}"]);
1073
+ case "JsxExpression":
1074
+ return concat([
1075
+ "{",
1076
+ node.dotDotDotToken ? "..." : "",
1077
+ node.expression ? this.emit(node.expression) : "",
1078
+ "}",
1079
+ ]);
1080
+ case "JsxNamespacedName":
1081
+ return concat([this.emit(node.namespace), ":", this.emit(node.name)]);
1082
+ /* synthetic / emit-internal */
1083
+ case "Bundle":
1084
+ return join(hardline, node.sourceFiles.map((s) => this.emit(s)));
1085
+ case "PartiallyEmittedExpression":
1086
+ return this.emit(node.expression);
1087
+ case "ImportAttribute":
1088
+ return concat([this.emit(node.name), ": ", this.emit(node.value)]);
1089
+ case "ImportAttributes":
1090
+ return node.elements.length === 0
1091
+ ? concat([node.token, " {}"])
1092
+ : concat([
1093
+ node.token,
1094
+ " { ",
1095
+ join(", ", node.elements.map((e) => this.emit(e))),
1096
+ " }",
1097
+ ]);
1098
+ case "NotEmittedStatement":
1099
+ case "NotEmittedTypeElement":
1100
+ return "";
1101
+ /* jsdoc — types */
1102
+ case "JSDocAllType":
1103
+ return "*";
1104
+ case "JSDocUnknownType":
1105
+ return "?";
1106
+ case "JSDocNonNullableType":
1107
+ return node.postfix
1108
+ ? concat([this.emit(node.type), "!"])
1109
+ : concat(["!", this.emit(node.type)]);
1110
+ case "JSDocNullableType":
1111
+ return node.postfix
1112
+ ? concat([this.emit(node.type), "?"])
1113
+ : concat(["?", this.emit(node.type)]);
1114
+ case "JSDocOptionalType":
1115
+ return concat([this.emit(node.type), "="]);
1116
+ case "JSDocVariadicType":
1117
+ return concat(["...", this.emit(node.type)]);
1118
+ case "JSDocNamepathType":
1119
+ return this.emit(node.type);
1120
+ case "JSDocFunctionType":
1121
+ return concat([
1122
+ "function(",
1123
+ join(", ", node.parameters.map((p) => this.emit(p))),
1124
+ ")",
1125
+ node.type ? concat([": ", this.emit(node.type)]) : "",
1126
+ ]);
1127
+ case "JSDocTypeExpression":
1128
+ return concat(["{", this.emit(node.type), "}"]);
1129
+ case "JSDocNameReference":
1130
+ return this.emit(node.name);
1131
+ case "JSDocMemberName":
1132
+ return concat([this.emit(node.left), "#", this.emit(node.right)]);
1133
+ case "JSDocLink":
1134
+ return concat([
1135
+ "{@link ",
1136
+ node.name ? this.emit(node.name) : "",
1137
+ node.text,
1138
+ "}",
1139
+ ]);
1140
+ case "JSDocLinkCode":
1141
+ return concat([
1142
+ "{@linkcode ",
1143
+ node.name ? this.emit(node.name) : "",
1144
+ node.text,
1145
+ "}",
1146
+ ]);
1147
+ case "JSDocLinkPlain":
1148
+ return concat([
1149
+ "{@linkplain ",
1150
+ node.name ? this.emit(node.name) : "",
1151
+ node.text,
1152
+ "}",
1153
+ ]);
1154
+ case "JSDocText":
1155
+ return node.text;
1156
+ case "JSDocTypeLiteral":
1157
+ return concat([
1158
+ join(hardline, (node.jsDocPropertyTags ?? []).map((t) => this.emit(t))),
1159
+ node.isArrayType ? "[]" : "",
1160
+ ]);
1161
+ case "JSDocSignature":
1162
+ return join(hardline, [
1163
+ ...(node.typeParameters ?? []),
1164
+ ...node.parameters,
1165
+ ...(node.type ? [node.type] : []),
1166
+ ].map((t) => this.emit(t)));
1167
+ case "JSDoc": {
1168
+ const body = node.comment === undefined
1169
+ ? ""
1170
+ : typeof node.comment === "string"
1171
+ ? node.comment
1172
+ : concat(node.comment.map((c) => this.emit(c)));
1173
+ const lines = [concat([" * ", body])];
1174
+ for (const tag of node.tags ?? [])
1175
+ lines.push(concat([" * ", this.emit(tag)]));
1176
+ return concat([
1177
+ "/**",
1178
+ hardline,
1179
+ join(hardline, lines),
1180
+ hardline,
1181
+ " */",
1182
+ ]);
1183
+ }
1184
+ /* jsdoc — tags */
1185
+ case "JSDocTypeTag":
1186
+ case "JSDocThisTag":
1187
+ case "JSDocEnumTag":
1188
+ case "JSDocSatisfiesTag":
1189
+ return concat([
1190
+ "@",
1191
+ this.emit(node.tagName),
1192
+ " ",
1193
+ this.emit(node.typeExpression),
1194
+ this.jsDocComment(node.comment),
1195
+ ]);
1196
+ case "JSDocReturnTag":
1197
+ case "JSDocThrowsTag":
1198
+ return concat([
1199
+ "@",
1200
+ this.emit(node.tagName),
1201
+ node.typeExpression
1202
+ ? concat([" ", this.emit(node.typeExpression)])
1203
+ : "",
1204
+ this.jsDocComment(node.comment),
1205
+ ]);
1206
+ case "JSDocAuthorTag":
1207
+ case "JSDocClassTag":
1208
+ case "JSDocPublicTag":
1209
+ case "JSDocPrivateTag":
1210
+ case "JSDocProtectedTag":
1211
+ case "JSDocReadonlyTag":
1212
+ case "JSDocOverrideTag":
1213
+ case "JSDocDeprecatedTag":
1214
+ case "JSDocUnknownTag":
1215
+ return concat([
1216
+ "@",
1217
+ this.emit(node.tagName),
1218
+ this.jsDocComment(node.comment),
1219
+ ]);
1220
+ case "JSDocAugmentsTag":
1221
+ case "JSDocImplementsTag":
1222
+ return concat([
1223
+ "@",
1224
+ this.emit(node.tagName),
1225
+ " {",
1226
+ this.emit(node.class),
1227
+ "}",
1228
+ this.jsDocComment(node.comment),
1229
+ ]);
1230
+ case "JSDocParameterTag":
1231
+ case "JSDocPropertyTag": {
1232
+ const name = node.isBracketed
1233
+ ? concat(["[", this.emit(node.name), "]"])
1234
+ : this.emit(node.name);
1235
+ const type = node.typeExpression
1236
+ ? this.emit(node.typeExpression)
1237
+ : undefined;
1238
+ const main = node.isNameFirst
1239
+ ? concat([name, type ? concat([" ", type]) : ""])
1240
+ : concat([type ? concat([type, " "]) : "", name]);
1241
+ return concat([
1242
+ "@",
1243
+ this.emit(node.tagName),
1244
+ " ",
1245
+ main,
1246
+ this.jsDocComment(node.comment),
1247
+ ]);
1248
+ }
1249
+ case "JSDocSeeTag":
1250
+ return concat([
1251
+ "@",
1252
+ this.emit(node.tagName),
1253
+ node.name ? concat([" ", this.emit(node.name)]) : "",
1254
+ this.jsDocComment(node.comment),
1255
+ ]);
1256
+ case "JSDocOverloadTag":
1257
+ case "JSDocCallbackTag": {
1258
+ const full = node.kind === "JSDocCallbackTag" && node.fullName
1259
+ ? concat([" ", this.emit(node.fullName)])
1260
+ : "";
1261
+ return concat([
1262
+ "@",
1263
+ this.emit(node.tagName),
1264
+ full,
1265
+ hardline,
1266
+ this.emit(node.typeExpression),
1267
+ this.jsDocComment(node.comment),
1268
+ ]);
1269
+ }
1270
+ case "JSDocImportTag":
1271
+ return concat([
1272
+ "@",
1273
+ this.emit(node.tagName),
1274
+ " ",
1275
+ node.importClause
1276
+ ? concat([this.emit(node.importClause), " from "])
1277
+ : "",
1278
+ this.emit(node.moduleSpecifier),
1279
+ this.jsDocComment(node.comment),
1280
+ ]);
1281
+ case "JSDocTemplateTag":
1282
+ return concat([
1283
+ "@",
1284
+ this.emit(node.tagName),
1285
+ node.constraint ? concat([" ", this.emit(node.constraint)]) : "",
1286
+ " ",
1287
+ join(", ", node.typeParameters.map((t) => this.emit(t))),
1288
+ this.jsDocComment(node.comment),
1289
+ ]);
1290
+ case "JSDocTypedefTag":
1291
+ return concat([
1292
+ "@",
1293
+ this.emit(node.tagName),
1294
+ node.typeExpression
1295
+ ? concat([" ", this.emit(node.typeExpression)])
1296
+ : "",
1297
+ node.fullName ? concat([" ", this.emit(node.fullName)]) : "",
1298
+ this.jsDocComment(node.comment),
1299
+ ]);
1300
+ default:
1301
+ return this.unsupported(node);
1302
+ }
1303
+ }
1304
+ /**
1305
+ * Emit a type in the operand position of a postfix type (`T[]`, `T[K]`),
1306
+ * parenthesizing the lower-precedence type forms that would otherwise
1307
+ * re-associate — matching the legacy printer's parenthesizer rules.
1308
+ */
1309
+ postfixTypeOperand(type) {
1310
+ const parenthesize = type.kind === "UnionTypeNode" ||
1311
+ type.kind === "IntersectionTypeNode" ||
1312
+ type.kind === "FunctionTypeNode" ||
1313
+ type.kind === "ConstructorTypeNode" ||
1314
+ type.kind === "ConditionalTypeNode" ||
1315
+ type.kind === "InferTypeNode" ||
1316
+ type.kind === "TypeOperatorNode";
1317
+ return parenthesize ? concat(["(", this.emit(type), ")"]) : this.emit(type);
1318
+ }
1319
+ /** Render a JSDoc tag's trailing comment, prefixed with a space when present. */
1320
+ jsDocComment(comment) {
1321
+ if (comment === undefined)
1322
+ return "";
1323
+ if (typeof comment === "string")
1324
+ return comment.length ? concat([" ", comment]) : "";
1325
+ return comment.length
1326
+ ? concat([" ", concat(comment.map((c) => this.emit(c)))])
1327
+ : "";
1328
+ }
1329
+ /** Width-aware `|` / `&` type list with leading-operator breaks. */
1330
+ binaryType(operator, parts) {
1331
+ if (parts.length === 1)
1332
+ return parts[0];
1333
+ return group(indent(concat([
1334
+ ifBreak(concat([line, operator, " "])),
1335
+ join(concat([line, operator, " "]), parts),
1336
+ ])));
1337
+ }
1338
+ unsupported(node) {
1339
+ throw new Error(`@ttsc/factory: TsPrinter cannot print node of kind "${node.kind}".`);
1340
+ }
1341
+ }
1342
+
1343
+ export { TsPrinter };
1344
+ //# sourceMappingURL=TsPrinter.mjs.map