@ttsc/factory 0.15.6 → 0.15.7

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 (2169) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +129 -96
  3. package/lib/TsPrinter.d.ts +23 -1
  4. package/lib/TsPrinter.js +398 -31
  5. package/lib/TsPrinter.js.map +1 -1
  6. package/lib/TsPrinter.mjs +398 -31
  7. package/lib/TsPrinter.mjs.map +1 -1
  8. package/lib/ast/Node.d.ts +63 -1
  9. package/lib/ast/expressions/ObjectLiteralElement.d.ts +4 -1
  10. package/lib/ast/expressions/PartiallyEmittedExpression.d.ts +18 -0
  11. package/lib/ast/expressions/PartiallyEmittedExpression.js +3 -0
  12. package/lib/ast/expressions/PartiallyEmittedExpression.js.map +1 -0
  13. package/lib/ast/expressions/PartiallyEmittedExpression.mjs +2 -0
  14. package/lib/ast/expressions/PartiallyEmittedExpression.mjs.map +1 -0
  15. package/lib/ast/file/Bundle.d.ts +14 -0
  16. package/lib/ast/file/Bundle.js +3 -0
  17. package/lib/ast/file/Bundle.js.map +1 -0
  18. package/lib/ast/file/Bundle.mjs +2 -0
  19. package/lib/ast/file/Bundle.mjs.map +1 -0
  20. package/lib/ast/imports/ImportAttribute.d.ts +17 -0
  21. package/lib/ast/imports/ImportAttribute.js +3 -0
  22. package/lib/ast/imports/ImportAttribute.js.map +1 -0
  23. package/lib/ast/imports/ImportAttribute.mjs +2 -0
  24. package/lib/ast/imports/ImportAttribute.mjs.map +1 -0
  25. package/lib/ast/imports/ImportAttributeName.d.ts +9 -0
  26. package/lib/ast/imports/ImportAttributeName.js +3 -0
  27. package/lib/ast/imports/ImportAttributeName.js.map +1 -0
  28. package/lib/ast/imports/ImportAttributeName.mjs +2 -0
  29. package/lib/ast/imports/ImportAttributeName.mjs.map +1 -0
  30. package/lib/ast/imports/ImportAttributes.d.ts +18 -0
  31. package/lib/ast/imports/ImportAttributes.js +3 -0
  32. package/lib/ast/imports/ImportAttributes.js.map +1 -0
  33. package/lib/ast/imports/ImportAttributes.mjs +2 -0
  34. package/lib/ast/imports/ImportAttributes.mjs.map +1 -0
  35. package/lib/ast/index.d.ts +70 -0
  36. package/lib/ast/jsdoc/JSDoc.d.ts +17 -0
  37. package/lib/ast/jsdoc/JSDoc.js +3 -0
  38. package/lib/ast/jsdoc/JSDoc.js.map +1 -0
  39. package/lib/ast/jsdoc/JSDoc.mjs +2 -0
  40. package/lib/ast/jsdoc/JSDoc.mjs.map +1 -0
  41. package/lib/ast/jsdoc/JSDocAllType.d.ts +11 -0
  42. package/lib/ast/jsdoc/JSDocAllType.js +3 -0
  43. package/lib/ast/jsdoc/JSDocAllType.js.map +1 -0
  44. package/lib/ast/jsdoc/JSDocAllType.mjs +2 -0
  45. package/lib/ast/jsdoc/JSDocAllType.mjs.map +1 -0
  46. package/lib/ast/jsdoc/JSDocAugmentsTag.d.ts +20 -0
  47. package/lib/ast/jsdoc/JSDocAugmentsTag.js +3 -0
  48. package/lib/ast/jsdoc/JSDocAugmentsTag.js.map +1 -0
  49. package/lib/ast/jsdoc/JSDocAugmentsTag.mjs +2 -0
  50. package/lib/ast/jsdoc/JSDocAugmentsTag.mjs.map +1 -0
  51. package/lib/ast/jsdoc/JSDocAuthorTag.d.ts +17 -0
  52. package/lib/ast/jsdoc/JSDocAuthorTag.js +3 -0
  53. package/lib/ast/jsdoc/JSDocAuthorTag.js.map +1 -0
  54. package/lib/ast/jsdoc/JSDocAuthorTag.mjs +2 -0
  55. package/lib/ast/jsdoc/JSDocAuthorTag.mjs.map +1 -0
  56. package/lib/ast/jsdoc/JSDocCallbackTag.d.ts +22 -0
  57. package/lib/ast/jsdoc/JSDocCallbackTag.js +3 -0
  58. package/lib/ast/jsdoc/JSDocCallbackTag.js.map +1 -0
  59. package/lib/ast/jsdoc/JSDocCallbackTag.mjs +2 -0
  60. package/lib/ast/jsdoc/JSDocCallbackTag.mjs.map +1 -0
  61. package/lib/ast/jsdoc/JSDocClassTag.d.ts +17 -0
  62. package/lib/ast/jsdoc/JSDocClassTag.js +3 -0
  63. package/lib/ast/jsdoc/JSDocClassTag.js.map +1 -0
  64. package/lib/ast/jsdoc/JSDocClassTag.mjs +2 -0
  65. package/lib/ast/jsdoc/JSDocClassTag.mjs.map +1 -0
  66. package/lib/ast/jsdoc/JSDocComment.d.ts +11 -0
  67. package/lib/ast/jsdoc/JSDocComment.js +3 -0
  68. package/lib/ast/jsdoc/JSDocComment.js.map +1 -0
  69. package/lib/ast/jsdoc/JSDocComment.mjs +2 -0
  70. package/lib/ast/jsdoc/JSDocComment.mjs.map +1 -0
  71. package/lib/ast/jsdoc/JSDocDeprecatedTag.d.ts +17 -0
  72. package/lib/ast/jsdoc/JSDocDeprecatedTag.js +3 -0
  73. package/lib/ast/jsdoc/JSDocDeprecatedTag.js.map +1 -0
  74. package/lib/ast/jsdoc/JSDocDeprecatedTag.mjs +2 -0
  75. package/lib/ast/jsdoc/JSDocDeprecatedTag.mjs.map +1 -0
  76. package/lib/ast/jsdoc/JSDocEnumTag.d.ts +20 -0
  77. package/lib/ast/jsdoc/JSDocEnumTag.js +3 -0
  78. package/lib/ast/jsdoc/JSDocEnumTag.js.map +1 -0
  79. package/lib/ast/jsdoc/JSDocEnumTag.mjs +2 -0
  80. package/lib/ast/jsdoc/JSDocEnumTag.mjs.map +1 -0
  81. package/lib/ast/jsdoc/JSDocFunctionType.d.ts +17 -0
  82. package/lib/ast/jsdoc/JSDocFunctionType.js +3 -0
  83. package/lib/ast/jsdoc/JSDocFunctionType.js.map +1 -0
  84. package/lib/ast/jsdoc/JSDocFunctionType.mjs +2 -0
  85. package/lib/ast/jsdoc/JSDocFunctionType.mjs.map +1 -0
  86. package/lib/ast/jsdoc/JSDocImplementsTag.d.ts +20 -0
  87. package/lib/ast/jsdoc/JSDocImplementsTag.js +3 -0
  88. package/lib/ast/jsdoc/JSDocImplementsTag.js.map +1 -0
  89. package/lib/ast/jsdoc/JSDocImplementsTag.mjs +2 -0
  90. package/lib/ast/jsdoc/JSDocImplementsTag.mjs.map +1 -0
  91. package/lib/ast/jsdoc/JSDocImportTag.d.ts +23 -0
  92. package/lib/ast/jsdoc/JSDocImportTag.js +3 -0
  93. package/lib/ast/jsdoc/JSDocImportTag.js.map +1 -0
  94. package/lib/ast/jsdoc/JSDocImportTag.mjs +2 -0
  95. package/lib/ast/jsdoc/JSDocImportTag.mjs.map +1 -0
  96. package/lib/ast/jsdoc/JSDocLink.d.ts +17 -0
  97. package/lib/ast/jsdoc/JSDocLink.js +3 -0
  98. package/lib/ast/jsdoc/JSDocLink.js.map +1 -0
  99. package/lib/ast/jsdoc/JSDocLink.mjs +2 -0
  100. package/lib/ast/jsdoc/JSDocLink.mjs.map +1 -0
  101. package/lib/ast/jsdoc/JSDocLinkCode.d.ts +17 -0
  102. package/lib/ast/jsdoc/JSDocLinkCode.js +3 -0
  103. package/lib/ast/jsdoc/JSDocLinkCode.js.map +1 -0
  104. package/lib/ast/jsdoc/JSDocLinkCode.mjs +2 -0
  105. package/lib/ast/jsdoc/JSDocLinkCode.mjs.map +1 -0
  106. package/lib/ast/jsdoc/JSDocLinkPlain.d.ts +17 -0
  107. package/lib/ast/jsdoc/JSDocLinkPlain.js +3 -0
  108. package/lib/ast/jsdoc/JSDocLinkPlain.js.map +1 -0
  109. package/lib/ast/jsdoc/JSDocLinkPlain.mjs +2 -0
  110. package/lib/ast/jsdoc/JSDocLinkPlain.mjs.map +1 -0
  111. package/lib/ast/jsdoc/JSDocMemberName.d.ts +17 -0
  112. package/lib/ast/jsdoc/JSDocMemberName.js +3 -0
  113. package/lib/ast/jsdoc/JSDocMemberName.js.map +1 -0
  114. package/lib/ast/jsdoc/JSDocMemberName.mjs +2 -0
  115. package/lib/ast/jsdoc/JSDocMemberName.mjs.map +1 -0
  116. package/lib/ast/jsdoc/JSDocNameReference.d.ts +15 -0
  117. package/lib/ast/jsdoc/JSDocNameReference.js +3 -0
  118. package/lib/ast/jsdoc/JSDocNameReference.js.map +1 -0
  119. package/lib/ast/jsdoc/JSDocNameReference.mjs +2 -0
  120. package/lib/ast/jsdoc/JSDocNameReference.mjs.map +1 -0
  121. package/lib/ast/jsdoc/JSDocNamepathType.d.ts +14 -0
  122. package/lib/ast/jsdoc/JSDocNamepathType.js +3 -0
  123. package/lib/ast/jsdoc/JSDocNamepathType.js.map +1 -0
  124. package/lib/ast/jsdoc/JSDocNamepathType.mjs +2 -0
  125. package/lib/ast/jsdoc/JSDocNamepathType.mjs.map +1 -0
  126. package/lib/ast/jsdoc/JSDocNonNullableType.d.ts +16 -0
  127. package/lib/ast/jsdoc/JSDocNonNullableType.js +3 -0
  128. package/lib/ast/jsdoc/JSDocNonNullableType.js.map +1 -0
  129. package/lib/ast/jsdoc/JSDocNonNullableType.mjs +2 -0
  130. package/lib/ast/jsdoc/JSDocNonNullableType.mjs.map +1 -0
  131. package/lib/ast/jsdoc/JSDocNullableType.d.ts +16 -0
  132. package/lib/ast/jsdoc/JSDocNullableType.js +3 -0
  133. package/lib/ast/jsdoc/JSDocNullableType.js.map +1 -0
  134. package/lib/ast/jsdoc/JSDocNullableType.mjs +2 -0
  135. package/lib/ast/jsdoc/JSDocNullableType.mjs.map +1 -0
  136. package/lib/ast/jsdoc/JSDocOptionalType.d.ts +14 -0
  137. package/lib/ast/jsdoc/JSDocOptionalType.js +3 -0
  138. package/lib/ast/jsdoc/JSDocOptionalType.js.map +1 -0
  139. package/lib/ast/jsdoc/JSDocOptionalType.mjs +2 -0
  140. package/lib/ast/jsdoc/JSDocOptionalType.mjs.map +1 -0
  141. package/lib/ast/jsdoc/JSDocOverloadTag.d.ts +20 -0
  142. package/lib/ast/jsdoc/JSDocOverloadTag.js +3 -0
  143. package/lib/ast/jsdoc/JSDocOverloadTag.js.map +1 -0
  144. package/lib/ast/jsdoc/JSDocOverloadTag.mjs +2 -0
  145. package/lib/ast/jsdoc/JSDocOverloadTag.mjs.map +1 -0
  146. package/lib/ast/jsdoc/JSDocOverrideTag.d.ts +17 -0
  147. package/lib/ast/jsdoc/JSDocOverrideTag.js +3 -0
  148. package/lib/ast/jsdoc/JSDocOverrideTag.js.map +1 -0
  149. package/lib/ast/jsdoc/JSDocOverrideTag.mjs +2 -0
  150. package/lib/ast/jsdoc/JSDocOverrideTag.mjs.map +1 -0
  151. package/lib/ast/jsdoc/JSDocParameterTag.d.ts +27 -0
  152. package/lib/ast/jsdoc/JSDocParameterTag.js +3 -0
  153. package/lib/ast/jsdoc/JSDocParameterTag.js.map +1 -0
  154. package/lib/ast/jsdoc/JSDocParameterTag.mjs +2 -0
  155. package/lib/ast/jsdoc/JSDocParameterTag.mjs.map +1 -0
  156. package/lib/ast/jsdoc/JSDocPrivateTag.d.ts +17 -0
  157. package/lib/ast/jsdoc/JSDocPrivateTag.js +3 -0
  158. package/lib/ast/jsdoc/JSDocPrivateTag.js.map +1 -0
  159. package/lib/ast/jsdoc/JSDocPrivateTag.mjs +2 -0
  160. package/lib/ast/jsdoc/JSDocPrivateTag.mjs.map +1 -0
  161. package/lib/ast/jsdoc/JSDocPropertyTag.d.ts +27 -0
  162. package/lib/ast/jsdoc/JSDocPropertyTag.js +3 -0
  163. package/lib/ast/jsdoc/JSDocPropertyTag.js.map +1 -0
  164. package/lib/ast/jsdoc/JSDocPropertyTag.mjs +2 -0
  165. package/lib/ast/jsdoc/JSDocPropertyTag.mjs.map +1 -0
  166. package/lib/ast/jsdoc/JSDocProtectedTag.d.ts +17 -0
  167. package/lib/ast/jsdoc/JSDocProtectedTag.js +3 -0
  168. package/lib/ast/jsdoc/JSDocProtectedTag.js.map +1 -0
  169. package/lib/ast/jsdoc/JSDocProtectedTag.mjs +2 -0
  170. package/lib/ast/jsdoc/JSDocProtectedTag.mjs.map +1 -0
  171. package/lib/ast/jsdoc/JSDocPublicTag.d.ts +17 -0
  172. package/lib/ast/jsdoc/JSDocPublicTag.js +3 -0
  173. package/lib/ast/jsdoc/JSDocPublicTag.js.map +1 -0
  174. package/lib/ast/jsdoc/JSDocPublicTag.mjs +2 -0
  175. package/lib/ast/jsdoc/JSDocPublicTag.mjs.map +1 -0
  176. package/lib/ast/jsdoc/JSDocReadonlyTag.d.ts +17 -0
  177. package/lib/ast/jsdoc/JSDocReadonlyTag.js +3 -0
  178. package/lib/ast/jsdoc/JSDocReadonlyTag.js.map +1 -0
  179. package/lib/ast/jsdoc/JSDocReadonlyTag.mjs +2 -0
  180. package/lib/ast/jsdoc/JSDocReadonlyTag.mjs.map +1 -0
  181. package/lib/ast/jsdoc/JSDocReturnTag.d.ts +20 -0
  182. package/lib/ast/jsdoc/JSDocReturnTag.js +3 -0
  183. package/lib/ast/jsdoc/JSDocReturnTag.js.map +1 -0
  184. package/lib/ast/jsdoc/JSDocReturnTag.mjs +2 -0
  185. package/lib/ast/jsdoc/JSDocReturnTag.mjs.map +1 -0
  186. package/lib/ast/jsdoc/JSDocSatisfiesTag.d.ts +20 -0
  187. package/lib/ast/jsdoc/JSDocSatisfiesTag.js +3 -0
  188. package/lib/ast/jsdoc/JSDocSatisfiesTag.js.map +1 -0
  189. package/lib/ast/jsdoc/JSDocSatisfiesTag.mjs +2 -0
  190. package/lib/ast/jsdoc/JSDocSatisfiesTag.mjs.map +1 -0
  191. package/lib/ast/jsdoc/JSDocSeeTag.d.ts +20 -0
  192. package/lib/ast/jsdoc/JSDocSeeTag.js +3 -0
  193. package/lib/ast/jsdoc/JSDocSeeTag.js.map +1 -0
  194. package/lib/ast/jsdoc/JSDocSeeTag.mjs +2 -0
  195. package/lib/ast/jsdoc/JSDocSeeTag.mjs.map +1 -0
  196. package/lib/ast/jsdoc/JSDocSignature.d.ts +20 -0
  197. package/lib/ast/jsdoc/JSDocSignature.js +3 -0
  198. package/lib/ast/jsdoc/JSDocSignature.js.map +1 -0
  199. package/lib/ast/jsdoc/JSDocSignature.mjs +2 -0
  200. package/lib/ast/jsdoc/JSDocSignature.mjs.map +1 -0
  201. package/lib/ast/jsdoc/JSDocTag.d.ts +31 -0
  202. package/lib/ast/jsdoc/JSDocTag.js +3 -0
  203. package/lib/ast/jsdoc/JSDocTag.js.map +1 -0
  204. package/lib/ast/jsdoc/JSDocTag.mjs +2 -0
  205. package/lib/ast/jsdoc/JSDocTag.mjs.map +1 -0
  206. package/lib/ast/jsdoc/JSDocTemplateTag.d.ts +23 -0
  207. package/lib/ast/jsdoc/JSDocTemplateTag.js +3 -0
  208. package/lib/ast/jsdoc/JSDocTemplateTag.js.map +1 -0
  209. package/lib/ast/jsdoc/JSDocTemplateTag.mjs +2 -0
  210. package/lib/ast/jsdoc/JSDocTemplateTag.mjs.map +1 -0
  211. package/lib/ast/jsdoc/JSDocText.d.ts +13 -0
  212. package/lib/ast/jsdoc/JSDocText.js +3 -0
  213. package/lib/ast/jsdoc/JSDocText.js.map +1 -0
  214. package/lib/ast/jsdoc/JSDocText.mjs +2 -0
  215. package/lib/ast/jsdoc/JSDocText.mjs.map +1 -0
  216. package/lib/ast/jsdoc/JSDocThisTag.d.ts +20 -0
  217. package/lib/ast/jsdoc/JSDocThisTag.js +3 -0
  218. package/lib/ast/jsdoc/JSDocThisTag.js.map +1 -0
  219. package/lib/ast/jsdoc/JSDocThisTag.mjs +2 -0
  220. package/lib/ast/jsdoc/JSDocThisTag.mjs.map +1 -0
  221. package/lib/ast/jsdoc/JSDocThrowsTag.d.ts +20 -0
  222. package/lib/ast/jsdoc/JSDocThrowsTag.js +3 -0
  223. package/lib/ast/jsdoc/JSDocThrowsTag.js.map +1 -0
  224. package/lib/ast/jsdoc/JSDocThrowsTag.mjs +2 -0
  225. package/lib/ast/jsdoc/JSDocThrowsTag.mjs.map +1 -0
  226. package/lib/ast/jsdoc/JSDocTypeExpression.d.ts +14 -0
  227. package/lib/ast/jsdoc/JSDocTypeExpression.js +3 -0
  228. package/lib/ast/jsdoc/JSDocTypeExpression.js.map +1 -0
  229. package/lib/ast/jsdoc/JSDocTypeExpression.mjs +2 -0
  230. package/lib/ast/jsdoc/JSDocTypeExpression.mjs.map +1 -0
  231. package/lib/ast/jsdoc/JSDocTypeLiteral.d.ts +16 -0
  232. package/lib/ast/jsdoc/JSDocTypeLiteral.js +3 -0
  233. package/lib/ast/jsdoc/JSDocTypeLiteral.js.map +1 -0
  234. package/lib/ast/jsdoc/JSDocTypeLiteral.mjs +2 -0
  235. package/lib/ast/jsdoc/JSDocTypeLiteral.mjs.map +1 -0
  236. package/lib/ast/jsdoc/JSDocTypeTag.d.ts +20 -0
  237. package/lib/ast/jsdoc/JSDocTypeTag.js +3 -0
  238. package/lib/ast/jsdoc/JSDocTypeTag.js.map +1 -0
  239. package/lib/ast/jsdoc/JSDocTypeTag.mjs +2 -0
  240. package/lib/ast/jsdoc/JSDocTypeTag.mjs.map +1 -0
  241. package/lib/ast/jsdoc/JSDocTypedefTag.d.ts +23 -0
  242. package/lib/ast/jsdoc/JSDocTypedefTag.js +3 -0
  243. package/lib/ast/jsdoc/JSDocTypedefTag.js.map +1 -0
  244. package/lib/ast/jsdoc/JSDocTypedefTag.mjs +2 -0
  245. package/lib/ast/jsdoc/JSDocTypedefTag.mjs.map +1 -0
  246. package/lib/ast/jsdoc/JSDocUnknownTag.d.ts +17 -0
  247. package/lib/ast/jsdoc/JSDocUnknownTag.js +3 -0
  248. package/lib/ast/jsdoc/JSDocUnknownTag.js.map +1 -0
  249. package/lib/ast/jsdoc/JSDocUnknownTag.mjs +2 -0
  250. package/lib/ast/jsdoc/JSDocUnknownTag.mjs.map +1 -0
  251. package/lib/ast/jsdoc/JSDocUnknownType.d.ts +11 -0
  252. package/lib/ast/jsdoc/JSDocUnknownType.js +3 -0
  253. package/lib/ast/jsdoc/JSDocUnknownType.js.map +1 -0
  254. package/lib/ast/jsdoc/JSDocUnknownType.mjs +2 -0
  255. package/lib/ast/jsdoc/JSDocUnknownType.mjs.map +1 -0
  256. package/lib/ast/jsdoc/JSDocVariadicType.d.ts +14 -0
  257. package/lib/ast/jsdoc/JSDocVariadicType.js +3 -0
  258. package/lib/ast/jsdoc/JSDocVariadicType.js.map +1 -0
  259. package/lib/ast/jsdoc/JSDocVariadicType.mjs +2 -0
  260. package/lib/ast/jsdoc/JSDocVariadicType.mjs.map +1 -0
  261. package/lib/ast/jsx/JsxAttribute.d.ts +17 -0
  262. package/lib/ast/jsx/JsxAttribute.js +3 -0
  263. package/lib/ast/jsx/JsxAttribute.js.map +1 -0
  264. package/lib/ast/jsx/JsxAttribute.mjs +2 -0
  265. package/lib/ast/jsx/JsxAttribute.mjs.map +1 -0
  266. package/lib/ast/jsx/JsxAttributeLike.d.ts +9 -0
  267. package/lib/ast/jsx/JsxAttributeLike.js +3 -0
  268. package/lib/ast/jsx/JsxAttributeLike.js.map +1 -0
  269. package/lib/ast/jsx/JsxAttributeLike.mjs +2 -0
  270. package/lib/ast/jsx/JsxAttributeLike.mjs.map +1 -0
  271. package/lib/ast/jsx/JsxAttributeName.d.ts +9 -0
  272. package/lib/ast/jsx/JsxAttributeName.js +3 -0
  273. package/lib/ast/jsx/JsxAttributeName.js.map +1 -0
  274. package/lib/ast/jsx/JsxAttributeName.mjs +2 -0
  275. package/lib/ast/jsx/JsxAttributeName.mjs.map +1 -0
  276. package/lib/ast/jsx/JsxAttributeValue.d.ts +12 -0
  277. package/lib/ast/jsx/JsxAttributeValue.js +3 -0
  278. package/lib/ast/jsx/JsxAttributeValue.js.map +1 -0
  279. package/lib/ast/jsx/JsxAttributeValue.mjs +2 -0
  280. package/lib/ast/jsx/JsxAttributeValue.mjs.map +1 -0
  281. package/lib/ast/jsx/JsxAttributes.d.ts +14 -0
  282. package/lib/ast/jsx/JsxAttributes.js +3 -0
  283. package/lib/ast/jsx/JsxAttributes.js.map +1 -0
  284. package/lib/ast/jsx/JsxAttributes.mjs +2 -0
  285. package/lib/ast/jsx/JsxAttributes.mjs.map +1 -0
  286. package/lib/ast/jsx/JsxChild.d.ts +12 -0
  287. package/lib/ast/jsx/JsxChild.js +3 -0
  288. package/lib/ast/jsx/JsxChild.js.map +1 -0
  289. package/lib/ast/jsx/JsxChild.mjs +2 -0
  290. package/lib/ast/jsx/JsxChild.mjs.map +1 -0
  291. package/lib/ast/jsx/JsxClosingElement.d.ts +14 -0
  292. package/lib/ast/jsx/JsxClosingElement.js +3 -0
  293. package/lib/ast/jsx/JsxClosingElement.js.map +1 -0
  294. package/lib/ast/jsx/JsxClosingElement.mjs +2 -0
  295. package/lib/ast/jsx/JsxClosingElement.mjs.map +1 -0
  296. package/lib/ast/jsx/JsxClosingFragment.d.ts +11 -0
  297. package/lib/ast/jsx/JsxClosingFragment.js +3 -0
  298. package/lib/ast/jsx/JsxClosingFragment.js.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.d.ts +20 -0
  302. package/lib/ast/jsx/JsxElement.js +3 -0
  303. package/lib/ast/jsx/JsxElement.js.map +1 -0
  304. package/lib/ast/jsx/JsxElement.mjs +2 -0
  305. package/lib/ast/jsx/JsxElement.mjs.map +1 -0
  306. package/lib/ast/jsx/JsxExpression.d.ts +17 -0
  307. package/lib/ast/jsx/JsxExpression.js +3 -0
  308. package/lib/ast/jsx/JsxExpression.js.map +1 -0
  309. package/lib/ast/jsx/JsxExpression.mjs +2 -0
  310. package/lib/ast/jsx/JsxExpression.mjs.map +1 -0
  311. package/lib/ast/jsx/JsxFragment.d.ts +20 -0
  312. package/lib/ast/jsx/JsxFragment.js +3 -0
  313. package/lib/ast/jsx/JsxFragment.js.map +1 -0
  314. package/lib/ast/jsx/JsxFragment.mjs +2 -0
  315. package/lib/ast/jsx/JsxFragment.mjs.map +1 -0
  316. package/lib/ast/jsx/JsxNamespacedName.d.ts +16 -0
  317. package/lib/ast/jsx/JsxNamespacedName.js +3 -0
  318. package/lib/ast/jsx/JsxNamespacedName.js.map +1 -0
  319. package/lib/ast/jsx/JsxNamespacedName.mjs +2 -0
  320. package/lib/ast/jsx/JsxNamespacedName.mjs.map +1 -0
  321. package/lib/ast/jsx/JsxOpeningElement.d.ts +20 -0
  322. package/lib/ast/jsx/JsxOpeningElement.js +3 -0
  323. package/lib/ast/jsx/JsxOpeningElement.js.map +1 -0
  324. package/lib/ast/jsx/JsxOpeningElement.mjs +2 -0
  325. package/lib/ast/jsx/JsxOpeningElement.mjs.map +1 -0
  326. package/lib/ast/jsx/JsxOpeningFragment.d.ts +11 -0
  327. package/lib/ast/jsx/JsxOpeningFragment.js +3 -0
  328. package/lib/ast/jsx/JsxOpeningFragment.js.map +1 -0
  329. package/lib/ast/jsx/JsxOpeningFragment.mjs +2 -0
  330. package/lib/ast/jsx/JsxOpeningFragment.mjs.map +1 -0
  331. package/lib/ast/jsx/JsxSelfClosingElement.d.ts +20 -0
  332. package/lib/ast/jsx/JsxSelfClosingElement.js +3 -0
  333. package/lib/ast/jsx/JsxSelfClosingElement.js.map +1 -0
  334. package/lib/ast/jsx/JsxSelfClosingElement.mjs +2 -0
  335. package/lib/ast/jsx/JsxSelfClosingElement.mjs.map +1 -0
  336. package/lib/ast/jsx/JsxSpreadAttribute.d.ts +14 -0
  337. package/lib/ast/jsx/JsxSpreadAttribute.js +3 -0
  338. package/lib/ast/jsx/JsxSpreadAttribute.js.map +1 -0
  339. package/lib/ast/jsx/JsxSpreadAttribute.mjs +2 -0
  340. package/lib/ast/jsx/JsxSpreadAttribute.mjs.map +1 -0
  341. package/lib/ast/jsx/JsxTagName.d.ts +12 -0
  342. package/lib/ast/jsx/JsxTagName.js +3 -0
  343. package/lib/ast/jsx/JsxTagName.js.map +1 -0
  344. package/lib/ast/jsx/JsxTagName.mjs +2 -0
  345. package/lib/ast/jsx/JsxTagName.mjs.map +1 -0
  346. package/lib/ast/jsx/JsxText.d.ts +16 -0
  347. package/lib/ast/jsx/JsxText.js +3 -0
  348. package/lib/ast/jsx/JsxText.js.map +1 -0
  349. package/lib/ast/jsx/JsxText.mjs +2 -0
  350. package/lib/ast/jsx/JsxText.mjs.map +1 -0
  351. package/lib/ast/statements/NotEmittedStatement.d.ts +14 -0
  352. package/lib/ast/statements/NotEmittedStatement.js +3 -0
  353. package/lib/ast/statements/NotEmittedStatement.js.map +1 -0
  354. package/lib/ast/statements/NotEmittedStatement.mjs +2 -0
  355. package/lib/ast/statements/NotEmittedStatement.mjs.map +1 -0
  356. package/lib/ast/statements/VariableDeclaration.d.ts +3 -3
  357. package/lib/ast/types/LiteralTypeNode.d.ts +4 -3
  358. package/lib/ast/types/NotEmittedTypeElement.d.ts +12 -0
  359. package/lib/ast/types/NotEmittedTypeElement.js +3 -0
  360. package/lib/ast/types/NotEmittedTypeElement.js.map +1 -0
  361. package/lib/ast/types/NotEmittedTypeElement.mjs +2 -0
  362. package/lib/ast/types/NotEmittedTypeElement.mjs.map +1 -0
  363. package/lib/comments.d.ts +103 -0
  364. package/lib/comments.js +83 -0
  365. package/lib/comments.js.map +1 -0
  366. package/lib/comments.mjs +82 -0
  367. package/lib/comments.mjs.map +1 -0
  368. package/lib/factory/clauses/createHeritageClause.d.ts +14 -2
  369. package/lib/factory/clauses/createHeritageClause.js +14 -2
  370. package/lib/factory/clauses/createHeritageClause.js.map +1 -1
  371. package/lib/factory/clauses/createHeritageClause.mjs +14 -2
  372. package/lib/factory/clauses/createHeritageClause.mjs.map +1 -1
  373. package/lib/factory/clauses/createParameterDeclaration.d.ts +18 -1
  374. package/lib/factory/clauses/createParameterDeclaration.js +18 -1
  375. package/lib/factory/clauses/createParameterDeclaration.js.map +1 -1
  376. package/lib/factory/clauses/createParameterDeclaration.mjs +18 -1
  377. package/lib/factory/clauses/createParameterDeclaration.mjs.map +1 -1
  378. package/lib/factory/declarations/createClassDeclaration.d.ts +21 -1
  379. package/lib/factory/declarations/createClassDeclaration.js +21 -1
  380. package/lib/factory/declarations/createClassDeclaration.js.map +1 -1
  381. package/lib/factory/declarations/createClassDeclaration.mjs +21 -1
  382. package/lib/factory/declarations/createClassDeclaration.mjs.map +1 -1
  383. package/lib/factory/declarations/createClassStaticBlockDeclaration.d.ts +13 -1
  384. package/lib/factory/declarations/createClassStaticBlockDeclaration.js +13 -1
  385. package/lib/factory/declarations/createClassStaticBlockDeclaration.js.map +1 -1
  386. package/lib/factory/declarations/createClassStaticBlockDeclaration.mjs +13 -1
  387. package/lib/factory/declarations/createClassStaticBlockDeclaration.mjs.map +1 -1
  388. package/lib/factory/declarations/createConstructorDeclaration.d.ts +14 -1
  389. package/lib/factory/declarations/createConstructorDeclaration.js +14 -1
  390. package/lib/factory/declarations/createConstructorDeclaration.js.map +1 -1
  391. package/lib/factory/declarations/createConstructorDeclaration.mjs +14 -1
  392. package/lib/factory/declarations/createConstructorDeclaration.mjs.map +1 -1
  393. package/lib/factory/declarations/createEnumDeclaration.d.ts +16 -1
  394. package/lib/factory/declarations/createEnumDeclaration.js +16 -1
  395. package/lib/factory/declarations/createEnumDeclaration.js.map +1 -1
  396. package/lib/factory/declarations/createEnumDeclaration.mjs +16 -1
  397. package/lib/factory/declarations/createEnumDeclaration.mjs.map +1 -1
  398. package/lib/factory/declarations/createEnumMember.d.ts +12 -1
  399. package/lib/factory/declarations/createEnumMember.js +12 -1
  400. package/lib/factory/declarations/createEnumMember.js.map +1 -1
  401. package/lib/factory/declarations/createEnumMember.mjs +12 -1
  402. package/lib/factory/declarations/createEnumMember.mjs.map +1 -1
  403. package/lib/factory/declarations/createExternalModuleReference.d.ts +11 -1
  404. package/lib/factory/declarations/createExternalModuleReference.js +11 -1
  405. package/lib/factory/declarations/createExternalModuleReference.js.map +1 -1
  406. package/lib/factory/declarations/createExternalModuleReference.mjs +11 -1
  407. package/lib/factory/declarations/createExternalModuleReference.mjs.map +1 -1
  408. package/lib/factory/declarations/createFunctionDeclaration.d.ts +21 -1
  409. package/lib/factory/declarations/createFunctionDeclaration.js +21 -1
  410. package/lib/factory/declarations/createFunctionDeclaration.js.map +1 -1
  411. package/lib/factory/declarations/createFunctionDeclaration.mjs +21 -1
  412. package/lib/factory/declarations/createFunctionDeclaration.mjs.map +1 -1
  413. package/lib/factory/declarations/createGetAccessorDeclaration.d.ts +16 -1
  414. package/lib/factory/declarations/createGetAccessorDeclaration.js +16 -1
  415. package/lib/factory/declarations/createGetAccessorDeclaration.js.map +1 -1
  416. package/lib/factory/declarations/createGetAccessorDeclaration.mjs +16 -1
  417. package/lib/factory/declarations/createGetAccessorDeclaration.mjs.map +1 -1
  418. package/lib/factory/declarations/createImportEqualsDeclaration.d.ts +18 -5
  419. package/lib/factory/declarations/createImportEqualsDeclaration.js +18 -5
  420. package/lib/factory/declarations/createImportEqualsDeclaration.js.map +1 -1
  421. package/lib/factory/declarations/createImportEqualsDeclaration.mjs +18 -5
  422. package/lib/factory/declarations/createImportEqualsDeclaration.mjs.map +1 -1
  423. package/lib/factory/declarations/createInterfaceDeclaration.d.ts +17 -1
  424. package/lib/factory/declarations/createInterfaceDeclaration.js +17 -1
  425. package/lib/factory/declarations/createInterfaceDeclaration.js.map +1 -1
  426. package/lib/factory/declarations/createInterfaceDeclaration.mjs +17 -1
  427. package/lib/factory/declarations/createInterfaceDeclaration.mjs.map +1 -1
  428. package/lib/factory/declarations/createMethodDeclaration.d.ts +21 -1
  429. package/lib/factory/declarations/createMethodDeclaration.js +21 -1
  430. package/lib/factory/declarations/createMethodDeclaration.js.map +1 -1
  431. package/lib/factory/declarations/createMethodDeclaration.mjs +21 -1
  432. package/lib/factory/declarations/createMethodDeclaration.mjs.map +1 -1
  433. package/lib/factory/declarations/createModuleBlock.d.ts +13 -1
  434. package/lib/factory/declarations/createModuleBlock.js +13 -1
  435. package/lib/factory/declarations/createModuleBlock.js.map +1 -1
  436. package/lib/factory/declarations/createModuleBlock.mjs +13 -1
  437. package/lib/factory/declarations/createModuleBlock.mjs.map +1 -1
  438. package/lib/factory/declarations/createModuleDeclaration.d.ts +22 -3
  439. package/lib/factory/declarations/createModuleDeclaration.js +23 -5
  440. package/lib/factory/declarations/createModuleDeclaration.js.map +1 -1
  441. package/lib/factory/declarations/createModuleDeclaration.mjs +23 -5
  442. package/lib/factory/declarations/createModuleDeclaration.mjs.map +1 -1
  443. package/lib/factory/declarations/createNamespaceExportDeclaration.d.ts +11 -1
  444. package/lib/factory/declarations/createNamespaceExportDeclaration.js +11 -1
  445. package/lib/factory/declarations/createNamespaceExportDeclaration.js.map +1 -1
  446. package/lib/factory/declarations/createNamespaceExportDeclaration.mjs +11 -1
  447. package/lib/factory/declarations/createNamespaceExportDeclaration.mjs.map +1 -1
  448. package/lib/factory/declarations/createPropertyDeclaration.d.ts +17 -1
  449. package/lib/factory/declarations/createPropertyDeclaration.js +17 -1
  450. package/lib/factory/declarations/createPropertyDeclaration.js.map +1 -1
  451. package/lib/factory/declarations/createPropertyDeclaration.mjs +17 -1
  452. package/lib/factory/declarations/createPropertyDeclaration.mjs.map +1 -1
  453. package/lib/factory/declarations/createSemicolonClassElement.d.ts +9 -1
  454. package/lib/factory/declarations/createSemicolonClassElement.js +9 -1
  455. package/lib/factory/declarations/createSemicolonClassElement.js.map +1 -1
  456. package/lib/factory/declarations/createSemicolonClassElement.mjs +9 -1
  457. package/lib/factory/declarations/createSemicolonClassElement.mjs.map +1 -1
  458. package/lib/factory/declarations/createSetAccessorDeclaration.d.ts +16 -1
  459. package/lib/factory/declarations/createSetAccessorDeclaration.js +16 -1
  460. package/lib/factory/declarations/createSetAccessorDeclaration.js.map +1 -1
  461. package/lib/factory/declarations/createSetAccessorDeclaration.mjs +16 -1
  462. package/lib/factory/declarations/createSetAccessorDeclaration.mjs.map +1 -1
  463. package/lib/factory/declarations/createTypeAliasDeclaration.d.ts +14 -1
  464. package/lib/factory/declarations/createTypeAliasDeclaration.js +14 -1
  465. package/lib/factory/declarations/createTypeAliasDeclaration.js.map +1 -1
  466. package/lib/factory/declarations/createTypeAliasDeclaration.mjs +14 -1
  467. package/lib/factory/declarations/createTypeAliasDeclaration.mjs.map +1 -1
  468. package/lib/factory/expressions/createAdd.d.ts +14 -4
  469. package/lib/factory/expressions/createAdd.js +15 -6
  470. package/lib/factory/expressions/createAdd.js.map +1 -1
  471. package/lib/factory/expressions/createAdd.mjs +15 -6
  472. package/lib/factory/expressions/createAdd.mjs.map +1 -1
  473. package/lib/factory/expressions/createArrayBindingPattern.d.ts +13 -3
  474. package/lib/factory/expressions/createArrayBindingPattern.js +13 -3
  475. package/lib/factory/expressions/createArrayBindingPattern.js.map +1 -1
  476. package/lib/factory/expressions/createArrayBindingPattern.mjs +13 -3
  477. package/lib/factory/expressions/createArrayBindingPattern.mjs.map +1 -1
  478. package/lib/factory/expressions/createArrayLiteralExpression.d.ts +13 -2
  479. package/lib/factory/expressions/createArrayLiteralExpression.js +13 -2
  480. package/lib/factory/expressions/createArrayLiteralExpression.js.map +1 -1
  481. package/lib/factory/expressions/createArrayLiteralExpression.mjs +13 -2
  482. package/lib/factory/expressions/createArrayLiteralExpression.mjs.map +1 -1
  483. package/lib/factory/expressions/createArrowFunction.d.ts +16 -3
  484. package/lib/factory/expressions/createArrowFunction.js +16 -3
  485. package/lib/factory/expressions/createArrowFunction.js.map +1 -1
  486. package/lib/factory/expressions/createArrowFunction.mjs +16 -3
  487. package/lib/factory/expressions/createArrowFunction.mjs.map +1 -1
  488. package/lib/factory/expressions/createAsExpression.d.ts +12 -3
  489. package/lib/factory/expressions/createAsExpression.js +12 -3
  490. package/lib/factory/expressions/createAsExpression.js.map +1 -1
  491. package/lib/factory/expressions/createAsExpression.mjs +12 -3
  492. package/lib/factory/expressions/createAsExpression.mjs.map +1 -1
  493. package/lib/factory/expressions/createAssignment.d.ts +14 -4
  494. package/lib/factory/expressions/createAssignment.js +15 -6
  495. package/lib/factory/expressions/createAssignment.js.map +1 -1
  496. package/lib/factory/expressions/createAssignment.mjs +15 -6
  497. package/lib/factory/expressions/createAssignment.mjs.map +1 -1
  498. package/lib/factory/expressions/createAwaitExpression.d.ts +11 -2
  499. package/lib/factory/expressions/createAwaitExpression.js +11 -2
  500. package/lib/factory/expressions/createAwaitExpression.js.map +1 -1
  501. package/lib/factory/expressions/createAwaitExpression.mjs +11 -2
  502. package/lib/factory/expressions/createAwaitExpression.mjs.map +1 -1
  503. package/lib/factory/expressions/createBinaryExpression.d.ts +16 -2
  504. package/lib/factory/expressions/createBinaryExpression.js +16 -2
  505. package/lib/factory/expressions/createBinaryExpression.js.map +1 -1
  506. package/lib/factory/expressions/createBinaryExpression.mjs +16 -2
  507. package/lib/factory/expressions/createBinaryExpression.mjs.map +1 -1
  508. package/lib/factory/expressions/createBindingElement.d.ts +22 -6
  509. package/lib/factory/expressions/createBindingElement.js +22 -6
  510. package/lib/factory/expressions/createBindingElement.js.map +1 -1
  511. package/lib/factory/expressions/createBindingElement.mjs +22 -6
  512. package/lib/factory/expressions/createBindingElement.mjs.map +1 -1
  513. package/lib/factory/expressions/createBitwiseAnd.d.ts +14 -4
  514. package/lib/factory/expressions/createBitwiseAnd.js +15 -6
  515. package/lib/factory/expressions/createBitwiseAnd.js.map +1 -1
  516. package/lib/factory/expressions/createBitwiseAnd.mjs +15 -6
  517. package/lib/factory/expressions/createBitwiseAnd.mjs.map +1 -1
  518. package/lib/factory/expressions/createBitwiseNot.d.ts +13 -3
  519. package/lib/factory/expressions/createBitwiseNot.js +14 -5
  520. package/lib/factory/expressions/createBitwiseNot.js.map +1 -1
  521. package/lib/factory/expressions/createBitwiseNot.mjs +14 -5
  522. package/lib/factory/expressions/createBitwiseNot.mjs.map +1 -1
  523. package/lib/factory/expressions/createBitwiseOr.d.ts +13 -4
  524. package/lib/factory/expressions/createBitwiseOr.js +14 -6
  525. package/lib/factory/expressions/createBitwiseOr.js.map +1 -1
  526. package/lib/factory/expressions/createBitwiseOr.mjs +14 -6
  527. package/lib/factory/expressions/createBitwiseOr.mjs.map +1 -1
  528. package/lib/factory/expressions/createBitwiseXor.d.ts +13 -4
  529. package/lib/factory/expressions/createBitwiseXor.js +14 -6
  530. package/lib/factory/expressions/createBitwiseXor.js.map +1 -1
  531. package/lib/factory/expressions/createBitwiseXor.mjs +14 -6
  532. package/lib/factory/expressions/createBitwiseXor.mjs.map +1 -1
  533. package/lib/factory/expressions/createCallChain.d.ts +20 -6
  534. package/lib/factory/expressions/createCallChain.js +20 -6
  535. package/lib/factory/expressions/createCallChain.js.map +1 -1
  536. package/lib/factory/expressions/createCallChain.mjs +20 -6
  537. package/lib/factory/expressions/createCallChain.mjs.map +1 -1
  538. package/lib/factory/expressions/createCallExpression.d.ts +13 -3
  539. package/lib/factory/expressions/createCallExpression.js +13 -3
  540. package/lib/factory/expressions/createCallExpression.js.map +1 -1
  541. package/lib/factory/expressions/createCallExpression.mjs +13 -3
  542. package/lib/factory/expressions/createCallExpression.mjs.map +1 -1
  543. package/lib/factory/expressions/createClassExpression.d.ts +17 -7
  544. package/lib/factory/expressions/createClassExpression.js +17 -7
  545. package/lib/factory/expressions/createClassExpression.js.map +1 -1
  546. package/lib/factory/expressions/createClassExpression.mjs +17 -7
  547. package/lib/factory/expressions/createClassExpression.mjs.map +1 -1
  548. package/lib/factory/expressions/createComma.d.ts +16 -4
  549. package/lib/factory/expressions/createComma.js +17 -6
  550. package/lib/factory/expressions/createComma.js.map +1 -1
  551. package/lib/factory/expressions/createComma.mjs +17 -6
  552. package/lib/factory/expressions/createComma.mjs.map +1 -1
  553. package/lib/factory/expressions/createCommaListExpression.d.ts +13 -3
  554. package/lib/factory/expressions/createCommaListExpression.js +13 -3
  555. package/lib/factory/expressions/createCommaListExpression.js.map +1 -1
  556. package/lib/factory/expressions/createCommaListExpression.mjs +13 -3
  557. package/lib/factory/expressions/createCommaListExpression.mjs.map +1 -1
  558. package/lib/factory/expressions/createComputedPropertyName.d.ts +13 -3
  559. package/lib/factory/expressions/createComputedPropertyName.js +13 -3
  560. package/lib/factory/expressions/createComputedPropertyName.js.map +1 -1
  561. package/lib/factory/expressions/createComputedPropertyName.mjs +13 -3
  562. package/lib/factory/expressions/createComputedPropertyName.mjs.map +1 -1
  563. package/lib/factory/expressions/createConditionalExpression.d.ts +12 -1
  564. package/lib/factory/expressions/createConditionalExpression.js +12 -1
  565. package/lib/factory/expressions/createConditionalExpression.js.map +1 -1
  566. package/lib/factory/expressions/createConditionalExpression.mjs +12 -1
  567. package/lib/factory/expressions/createConditionalExpression.mjs.map +1 -1
  568. package/lib/factory/expressions/createDeleteExpression.d.ts +12 -3
  569. package/lib/factory/expressions/createDeleteExpression.js +12 -3
  570. package/lib/factory/expressions/createDeleteExpression.js.map +1 -1
  571. package/lib/factory/expressions/createDeleteExpression.mjs +12 -3
  572. package/lib/factory/expressions/createDeleteExpression.mjs.map +1 -1
  573. package/lib/factory/expressions/createDivide.d.ts +13 -4
  574. package/lib/factory/expressions/createDivide.js +14 -6
  575. package/lib/factory/expressions/createDivide.js.map +1 -1
  576. package/lib/factory/expressions/createDivide.mjs +14 -6
  577. package/lib/factory/expressions/createDivide.mjs.map +1 -1
  578. package/lib/factory/expressions/createElementAccessChain.d.ts +17 -5
  579. package/lib/factory/expressions/createElementAccessChain.js +17 -5
  580. package/lib/factory/expressions/createElementAccessChain.js.map +1 -1
  581. package/lib/factory/expressions/createElementAccessChain.mjs +17 -5
  582. package/lib/factory/expressions/createElementAccessChain.mjs.map +1 -1
  583. package/lib/factory/expressions/createElementAccessExpression.d.ts +12 -2
  584. package/lib/factory/expressions/createElementAccessExpression.js +12 -2
  585. package/lib/factory/expressions/createElementAccessExpression.js.map +1 -1
  586. package/lib/factory/expressions/createElementAccessExpression.mjs +12 -2
  587. package/lib/factory/expressions/createElementAccessExpression.mjs.map +1 -1
  588. package/lib/factory/expressions/createEquality.d.ts +15 -4
  589. package/lib/factory/expressions/createEquality.js +16 -6
  590. package/lib/factory/expressions/createEquality.js.map +1 -1
  591. package/lib/factory/expressions/createEquality.mjs +16 -6
  592. package/lib/factory/expressions/createEquality.mjs.map +1 -1
  593. package/lib/factory/expressions/createExponent.d.ts +14 -4
  594. package/lib/factory/expressions/createExponent.js +15 -6
  595. package/lib/factory/expressions/createExponent.js.map +1 -1
  596. package/lib/factory/expressions/createExponent.mjs +15 -6
  597. package/lib/factory/expressions/createExponent.mjs.map +1 -1
  598. package/lib/factory/expressions/createFunctionExpression.d.ts +14 -4
  599. package/lib/factory/expressions/createFunctionExpression.js +14 -4
  600. package/lib/factory/expressions/createFunctionExpression.js.map +1 -1
  601. package/lib/factory/expressions/createFunctionExpression.mjs +14 -4
  602. package/lib/factory/expressions/createFunctionExpression.mjs.map +1 -1
  603. package/lib/factory/expressions/createGreaterThan.d.ts +15 -4
  604. package/lib/factory/expressions/createGreaterThan.js +16 -6
  605. package/lib/factory/expressions/createGreaterThan.js.map +1 -1
  606. package/lib/factory/expressions/createGreaterThan.mjs +16 -6
  607. package/lib/factory/expressions/createGreaterThan.mjs.map +1 -1
  608. package/lib/factory/expressions/createGreaterThanEquals.d.ts +15 -4
  609. package/lib/factory/expressions/createGreaterThanEquals.js +16 -6
  610. package/lib/factory/expressions/createGreaterThanEquals.js.map +1 -1
  611. package/lib/factory/expressions/createGreaterThanEquals.mjs +16 -6
  612. package/lib/factory/expressions/createGreaterThanEquals.mjs.map +1 -1
  613. package/lib/factory/expressions/createImmediatelyInvokedArrowFunction.d.ts +14 -1
  614. package/lib/factory/expressions/createImmediatelyInvokedArrowFunction.js +14 -1
  615. package/lib/factory/expressions/createImmediatelyInvokedArrowFunction.js.map +1 -1
  616. package/lib/factory/expressions/createImmediatelyInvokedArrowFunction.mjs +14 -1
  617. package/lib/factory/expressions/createImmediatelyInvokedArrowFunction.mjs.map +1 -1
  618. package/lib/factory/expressions/createImmediatelyInvokedFunctionExpression.d.ts +14 -2
  619. package/lib/factory/expressions/createImmediatelyInvokedFunctionExpression.js +14 -2
  620. package/lib/factory/expressions/createImmediatelyInvokedFunctionExpression.js.map +1 -1
  621. package/lib/factory/expressions/createImmediatelyInvokedFunctionExpression.mjs +14 -2
  622. package/lib/factory/expressions/createImmediatelyInvokedFunctionExpression.mjs.map +1 -1
  623. package/lib/factory/expressions/createInequality.d.ts +15 -4
  624. package/lib/factory/expressions/createInequality.js +16 -6
  625. package/lib/factory/expressions/createInequality.js.map +1 -1
  626. package/lib/factory/expressions/createInequality.mjs +16 -6
  627. package/lib/factory/expressions/createInequality.mjs.map +1 -1
  628. package/lib/factory/expressions/createLeftShift.d.ts +14 -4
  629. package/lib/factory/expressions/createLeftShift.js +15 -6
  630. package/lib/factory/expressions/createLeftShift.js.map +1 -1
  631. package/lib/factory/expressions/createLeftShift.mjs +15 -6
  632. package/lib/factory/expressions/createLeftShift.mjs.map +1 -1
  633. package/lib/factory/expressions/createLessThan.d.ts +14 -4
  634. package/lib/factory/expressions/createLessThan.js +15 -6
  635. package/lib/factory/expressions/createLessThan.js.map +1 -1
  636. package/lib/factory/expressions/createLessThan.mjs +15 -6
  637. package/lib/factory/expressions/createLessThan.mjs.map +1 -1
  638. package/lib/factory/expressions/createLessThanEquals.d.ts +15 -4
  639. package/lib/factory/expressions/createLessThanEquals.js +16 -6
  640. package/lib/factory/expressions/createLessThanEquals.js.map +1 -1
  641. package/lib/factory/expressions/createLessThanEquals.mjs +16 -6
  642. package/lib/factory/expressions/createLessThanEquals.mjs.map +1 -1
  643. package/lib/factory/expressions/createLogicalAnd.d.ts +15 -4
  644. package/lib/factory/expressions/createLogicalAnd.js +16 -6
  645. package/lib/factory/expressions/createLogicalAnd.js.map +1 -1
  646. package/lib/factory/expressions/createLogicalAnd.mjs +16 -6
  647. package/lib/factory/expressions/createLogicalAnd.mjs.map +1 -1
  648. package/lib/factory/expressions/createLogicalNot.d.ts +13 -3
  649. package/lib/factory/expressions/createLogicalNot.js +14 -5
  650. package/lib/factory/expressions/createLogicalNot.js.map +1 -1
  651. package/lib/factory/expressions/createLogicalNot.mjs +14 -5
  652. package/lib/factory/expressions/createLogicalNot.mjs.map +1 -1
  653. package/lib/factory/expressions/createLogicalOr.d.ts +14 -4
  654. package/lib/factory/expressions/createLogicalOr.js +15 -6
  655. package/lib/factory/expressions/createLogicalOr.js.map +1 -1
  656. package/lib/factory/expressions/createLogicalOr.mjs +15 -6
  657. package/lib/factory/expressions/createLogicalOr.mjs.map +1 -1
  658. package/lib/factory/expressions/createMetaProperty.d.ts +18 -4
  659. package/lib/factory/expressions/createMetaProperty.js +18 -4
  660. package/lib/factory/expressions/createMetaProperty.js.map +1 -1
  661. package/lib/factory/expressions/createMetaProperty.mjs +18 -4
  662. package/lib/factory/expressions/createMetaProperty.mjs.map +1 -1
  663. package/lib/factory/expressions/createModulo.d.ts +12 -4
  664. package/lib/factory/expressions/createModulo.js +13 -6
  665. package/lib/factory/expressions/createModulo.js.map +1 -1
  666. package/lib/factory/expressions/createModulo.mjs +13 -6
  667. package/lib/factory/expressions/createModulo.mjs.map +1 -1
  668. package/lib/factory/expressions/createMultiply.d.ts +12 -4
  669. package/lib/factory/expressions/createMultiply.js +13 -6
  670. package/lib/factory/expressions/createMultiply.js.map +1 -1
  671. package/lib/factory/expressions/createMultiply.mjs +13 -6
  672. package/lib/factory/expressions/createMultiply.mjs.map +1 -1
  673. package/lib/factory/expressions/createNewExpression.d.ts +14 -3
  674. package/lib/factory/expressions/createNewExpression.js +14 -3
  675. package/lib/factory/expressions/createNewExpression.js.map +1 -1
  676. package/lib/factory/expressions/createNewExpression.mjs +14 -3
  677. package/lib/factory/expressions/createNewExpression.mjs.map +1 -1
  678. package/lib/factory/expressions/createNonNullChain.d.ts +14 -3
  679. package/lib/factory/expressions/createNonNullChain.js +14 -3
  680. package/lib/factory/expressions/createNonNullChain.js.map +1 -1
  681. package/lib/factory/expressions/createNonNullChain.mjs +14 -3
  682. package/lib/factory/expressions/createNonNullChain.mjs.map +1 -1
  683. package/lib/factory/expressions/createNonNullExpression.d.ts +13 -2
  684. package/lib/factory/expressions/createNonNullExpression.js +13 -2
  685. package/lib/factory/expressions/createNonNullExpression.js.map +1 -1
  686. package/lib/factory/expressions/createNonNullExpression.mjs +13 -2
  687. package/lib/factory/expressions/createNonNullExpression.mjs.map +1 -1
  688. package/lib/factory/expressions/createObjectBindingPattern.d.ts +14 -3
  689. package/lib/factory/expressions/createObjectBindingPattern.js +14 -3
  690. package/lib/factory/expressions/createObjectBindingPattern.js.map +1 -1
  691. package/lib/factory/expressions/createObjectBindingPattern.mjs +14 -3
  692. package/lib/factory/expressions/createObjectBindingPattern.mjs.map +1 -1
  693. package/lib/factory/expressions/createObjectLiteralExpression.d.ts +15 -2
  694. package/lib/factory/expressions/createObjectLiteralExpression.js +15 -2
  695. package/lib/factory/expressions/createObjectLiteralExpression.js.map +1 -1
  696. package/lib/factory/expressions/createObjectLiteralExpression.mjs +15 -2
  697. package/lib/factory/expressions/createObjectLiteralExpression.mjs.map +1 -1
  698. package/lib/factory/expressions/createOmittedExpression.d.ts +13 -2
  699. package/lib/factory/expressions/createOmittedExpression.js +13 -2
  700. package/lib/factory/expressions/createOmittedExpression.js.map +1 -1
  701. package/lib/factory/expressions/createOmittedExpression.mjs +13 -2
  702. package/lib/factory/expressions/createOmittedExpression.mjs.map +1 -1
  703. package/lib/factory/expressions/createParenthesizedExpression.d.ts +13 -2
  704. package/lib/factory/expressions/createParenthesizedExpression.js +13 -2
  705. package/lib/factory/expressions/createParenthesizedExpression.js.map +1 -1
  706. package/lib/factory/expressions/createParenthesizedExpression.mjs +13 -2
  707. package/lib/factory/expressions/createParenthesizedExpression.mjs.map +1 -1
  708. package/lib/factory/expressions/createPartiallyEmittedExpression.d.ts +22 -0
  709. package/lib/factory/expressions/createPartiallyEmittedExpression.js +27 -0
  710. package/lib/factory/expressions/createPartiallyEmittedExpression.js.map +1 -0
  711. package/lib/factory/expressions/createPartiallyEmittedExpression.mjs +26 -0
  712. package/lib/factory/expressions/createPartiallyEmittedExpression.mjs.map +1 -0
  713. package/lib/factory/expressions/createPostfixDecrement.d.ts +11 -3
  714. package/lib/factory/expressions/createPostfixDecrement.js +12 -5
  715. package/lib/factory/expressions/createPostfixDecrement.js.map +1 -1
  716. package/lib/factory/expressions/createPostfixDecrement.mjs +12 -5
  717. package/lib/factory/expressions/createPostfixDecrement.mjs.map +1 -1
  718. package/lib/factory/expressions/createPostfixIncrement.d.ts +11 -3
  719. package/lib/factory/expressions/createPostfixIncrement.js +12 -5
  720. package/lib/factory/expressions/createPostfixIncrement.js.map +1 -1
  721. package/lib/factory/expressions/createPostfixIncrement.mjs +12 -5
  722. package/lib/factory/expressions/createPostfixIncrement.mjs.map +1 -1
  723. package/lib/factory/expressions/createPostfixUnaryExpression.d.ts +13 -2
  724. package/lib/factory/expressions/createPostfixUnaryExpression.js +13 -2
  725. package/lib/factory/expressions/createPostfixUnaryExpression.js.map +1 -1
  726. package/lib/factory/expressions/createPostfixUnaryExpression.mjs +13 -2
  727. package/lib/factory/expressions/createPostfixUnaryExpression.mjs.map +1 -1
  728. package/lib/factory/expressions/createPrefixDecrement.d.ts +11 -3
  729. package/lib/factory/expressions/createPrefixDecrement.js +12 -5
  730. package/lib/factory/expressions/createPrefixDecrement.js.map +1 -1
  731. package/lib/factory/expressions/createPrefixDecrement.mjs +12 -5
  732. package/lib/factory/expressions/createPrefixDecrement.mjs.map +1 -1
  733. package/lib/factory/expressions/createPrefixIncrement.d.ts +11 -3
  734. package/lib/factory/expressions/createPrefixIncrement.js +12 -5
  735. package/lib/factory/expressions/createPrefixIncrement.js.map +1 -1
  736. package/lib/factory/expressions/createPrefixIncrement.mjs +12 -5
  737. package/lib/factory/expressions/createPrefixIncrement.mjs.map +1 -1
  738. package/lib/factory/expressions/createPrefixMinus.d.ts +11 -3
  739. package/lib/factory/expressions/createPrefixMinus.js +12 -5
  740. package/lib/factory/expressions/createPrefixMinus.js.map +1 -1
  741. package/lib/factory/expressions/createPrefixMinus.mjs +12 -5
  742. package/lib/factory/expressions/createPrefixMinus.mjs.map +1 -1
  743. package/lib/factory/expressions/createPrefixPlus.d.ts +10 -2
  744. package/lib/factory/expressions/createPrefixPlus.js +11 -4
  745. package/lib/factory/expressions/createPrefixPlus.js.map +1 -1
  746. package/lib/factory/expressions/createPrefixPlus.mjs +11 -4
  747. package/lib/factory/expressions/createPrefixPlus.mjs.map +1 -1
  748. package/lib/factory/expressions/createPrefixUnaryExpression.d.ts +13 -2
  749. package/lib/factory/expressions/createPrefixUnaryExpression.js +13 -2
  750. package/lib/factory/expressions/createPrefixUnaryExpression.js.map +1 -1
  751. package/lib/factory/expressions/createPrefixUnaryExpression.mjs +13 -2
  752. package/lib/factory/expressions/createPrefixUnaryExpression.mjs.map +1 -1
  753. package/lib/factory/expressions/createPropertyAccessChain.d.ts +17 -5
  754. package/lib/factory/expressions/createPropertyAccessChain.js +17 -5
  755. package/lib/factory/expressions/createPropertyAccessChain.js.map +1 -1
  756. package/lib/factory/expressions/createPropertyAccessChain.mjs +17 -5
  757. package/lib/factory/expressions/createPropertyAccessChain.mjs.map +1 -1
  758. package/lib/factory/expressions/createPropertyAccessExpression.d.ts +13 -3
  759. package/lib/factory/expressions/createPropertyAccessExpression.js +13 -3
  760. package/lib/factory/expressions/createPropertyAccessExpression.js.map +1 -1
  761. package/lib/factory/expressions/createPropertyAccessExpression.mjs +13 -3
  762. package/lib/factory/expressions/createPropertyAccessExpression.mjs.map +1 -1
  763. package/lib/factory/expressions/createPropertyAssignment.d.ts +14 -3
  764. package/lib/factory/expressions/createPropertyAssignment.js +14 -3
  765. package/lib/factory/expressions/createPropertyAssignment.js.map +1 -1
  766. package/lib/factory/expressions/createPropertyAssignment.mjs +14 -3
  767. package/lib/factory/expressions/createPropertyAssignment.mjs.map +1 -1
  768. package/lib/factory/expressions/createRegularExpressionLiteral.d.ts +13 -3
  769. package/lib/factory/expressions/createRegularExpressionLiteral.js +13 -3
  770. package/lib/factory/expressions/createRegularExpressionLiteral.js.map +1 -1
  771. package/lib/factory/expressions/createRegularExpressionLiteral.mjs +13 -3
  772. package/lib/factory/expressions/createRegularExpressionLiteral.mjs.map +1 -1
  773. package/lib/factory/expressions/createRightShift.d.ts +12 -4
  774. package/lib/factory/expressions/createRightShift.js +13 -6
  775. package/lib/factory/expressions/createRightShift.js.map +1 -1
  776. package/lib/factory/expressions/createRightShift.mjs +13 -6
  777. package/lib/factory/expressions/createRightShift.mjs.map +1 -1
  778. package/lib/factory/expressions/createSatisfiesExpression.d.ts +14 -3
  779. package/lib/factory/expressions/createSatisfiesExpression.js +14 -3
  780. package/lib/factory/expressions/createSatisfiesExpression.js.map +1 -1
  781. package/lib/factory/expressions/createSatisfiesExpression.mjs +14 -3
  782. package/lib/factory/expressions/createSatisfiesExpression.mjs.map +1 -1
  783. package/lib/factory/expressions/createShorthandPropertyAssignment.d.ts +14 -2
  784. package/lib/factory/expressions/createShorthandPropertyAssignment.js +14 -2
  785. package/lib/factory/expressions/createShorthandPropertyAssignment.js.map +1 -1
  786. package/lib/factory/expressions/createShorthandPropertyAssignment.mjs +14 -2
  787. package/lib/factory/expressions/createShorthandPropertyAssignment.mjs.map +1 -1
  788. package/lib/factory/expressions/createSpreadAssignment.d.ts +12 -2
  789. package/lib/factory/expressions/createSpreadAssignment.js +12 -2
  790. package/lib/factory/expressions/createSpreadAssignment.js.map +1 -1
  791. package/lib/factory/expressions/createSpreadAssignment.mjs +12 -2
  792. package/lib/factory/expressions/createSpreadAssignment.mjs.map +1 -1
  793. package/lib/factory/expressions/createSpreadElement.d.ts +12 -2
  794. package/lib/factory/expressions/createSpreadElement.js +12 -2
  795. package/lib/factory/expressions/createSpreadElement.js.map +1 -1
  796. package/lib/factory/expressions/createSpreadElement.mjs +12 -2
  797. package/lib/factory/expressions/createSpreadElement.mjs.map +1 -1
  798. package/lib/factory/expressions/createStrictEquality.d.ts +12 -4
  799. package/lib/factory/expressions/createStrictEquality.js +13 -6
  800. package/lib/factory/expressions/createStrictEquality.js.map +1 -1
  801. package/lib/factory/expressions/createStrictEquality.mjs +13 -6
  802. package/lib/factory/expressions/createStrictEquality.mjs.map +1 -1
  803. package/lib/factory/expressions/createStrictInequality.d.ts +12 -4
  804. package/lib/factory/expressions/createStrictInequality.js +13 -6
  805. package/lib/factory/expressions/createStrictInequality.js.map +1 -1
  806. package/lib/factory/expressions/createStrictInequality.mjs +13 -6
  807. package/lib/factory/expressions/createStrictInequality.mjs.map +1 -1
  808. package/lib/factory/expressions/createSubtract.d.ts +12 -4
  809. package/lib/factory/expressions/createSubtract.js +13 -6
  810. package/lib/factory/expressions/createSubtract.js.map +1 -1
  811. package/lib/factory/expressions/createSubtract.mjs +13 -6
  812. package/lib/factory/expressions/createSubtract.mjs.map +1 -1
  813. package/lib/factory/expressions/createTaggedTemplateExpression.d.ts +17 -5
  814. package/lib/factory/expressions/createTaggedTemplateExpression.js +17 -5
  815. package/lib/factory/expressions/createTaggedTemplateExpression.js.map +1 -1
  816. package/lib/factory/expressions/createTaggedTemplateExpression.mjs +17 -5
  817. package/lib/factory/expressions/createTaggedTemplateExpression.mjs.map +1 -1
  818. package/lib/factory/expressions/createTemplateExpression.d.ts +17 -4
  819. package/lib/factory/expressions/createTemplateExpression.js +17 -4
  820. package/lib/factory/expressions/createTemplateExpression.js.map +1 -1
  821. package/lib/factory/expressions/createTemplateExpression.mjs +17 -4
  822. package/lib/factory/expressions/createTemplateExpression.mjs.map +1 -1
  823. package/lib/factory/expressions/createTemplateSpan.d.ts +18 -4
  824. package/lib/factory/expressions/createTemplateSpan.js +18 -4
  825. package/lib/factory/expressions/createTemplateSpan.js.map +1 -1
  826. package/lib/factory/expressions/createTemplateSpan.mjs +18 -4
  827. package/lib/factory/expressions/createTemplateSpan.mjs.map +1 -1
  828. package/lib/factory/expressions/createTypeAssertion.d.ts +15 -4
  829. package/lib/factory/expressions/createTypeAssertion.js +15 -4
  830. package/lib/factory/expressions/createTypeAssertion.js.map +1 -1
  831. package/lib/factory/expressions/createTypeAssertion.mjs +15 -4
  832. package/lib/factory/expressions/createTypeAssertion.mjs.map +1 -1
  833. package/lib/factory/expressions/createTypeOfExpression.d.ts +11 -2
  834. package/lib/factory/expressions/createTypeOfExpression.js +11 -2
  835. package/lib/factory/expressions/createTypeOfExpression.js.map +1 -1
  836. package/lib/factory/expressions/createTypeOfExpression.mjs +11 -2
  837. package/lib/factory/expressions/createTypeOfExpression.mjs.map +1 -1
  838. package/lib/factory/expressions/createUnsignedRightShift.d.ts +12 -4
  839. package/lib/factory/expressions/createUnsignedRightShift.js +13 -6
  840. package/lib/factory/expressions/createUnsignedRightShift.js.map +1 -1
  841. package/lib/factory/expressions/createUnsignedRightShift.mjs +13 -6
  842. package/lib/factory/expressions/createUnsignedRightShift.mjs.map +1 -1
  843. package/lib/factory/expressions/createVoidExpression.d.ts +13 -3
  844. package/lib/factory/expressions/createVoidExpression.js +13 -3
  845. package/lib/factory/expressions/createVoidExpression.js.map +1 -1
  846. package/lib/factory/expressions/createVoidExpression.mjs +13 -3
  847. package/lib/factory/expressions/createVoidExpression.mjs.map +1 -1
  848. package/lib/factory/expressions/createVoidZero.d.ts +11 -2
  849. package/lib/factory/expressions/createVoidZero.js +11 -2
  850. package/lib/factory/expressions/createVoidZero.js.map +1 -1
  851. package/lib/factory/expressions/createVoidZero.mjs +11 -2
  852. package/lib/factory/expressions/createVoidZero.mjs.map +1 -1
  853. package/lib/factory/expressions/createYieldExpression.d.ts +16 -4
  854. package/lib/factory/expressions/createYieldExpression.js +16 -4
  855. package/lib/factory/expressions/createYieldExpression.js.map +1 -1
  856. package/lib/factory/expressions/createYieldExpression.mjs +16 -4
  857. package/lib/factory/expressions/createYieldExpression.mjs.map +1 -1
  858. package/lib/factory/file/createBundle.d.ts +25 -0
  859. package/lib/factory/file/createBundle.js +30 -0
  860. package/lib/factory/file/createBundle.js.map +1 -0
  861. package/lib/factory/file/createBundle.mjs +29 -0
  862. package/lib/factory/file/createBundle.mjs.map +1 -0
  863. package/lib/factory/file/createNodeArray.d.ts +15 -2
  864. package/lib/factory/file/createNodeArray.js +15 -2
  865. package/lib/factory/file/createNodeArray.js.map +1 -1
  866. package/lib/factory/file/createNodeArray.mjs +15 -2
  867. package/lib/factory/file/createNodeArray.mjs.map +1 -1
  868. package/lib/factory/file/createSourceFile.d.ts +12 -1
  869. package/lib/factory/file/createSourceFile.js +12 -1
  870. package/lib/factory/file/createSourceFile.js.map +1 -1
  871. package/lib/factory/file/createSourceFile.mjs +12 -1
  872. package/lib/factory/file/createSourceFile.mjs.map +1 -1
  873. package/lib/factory/imports/createExportAssignment.d.ts +12 -1
  874. package/lib/factory/imports/createExportAssignment.js +12 -1
  875. package/lib/factory/imports/createExportAssignment.js.map +1 -1
  876. package/lib/factory/imports/createExportAssignment.mjs +12 -1
  877. package/lib/factory/imports/createExportAssignment.mjs.map +1 -1
  878. package/lib/factory/imports/createExportDeclaration.d.ts +15 -1
  879. package/lib/factory/imports/createExportDeclaration.js +15 -1
  880. package/lib/factory/imports/createExportDeclaration.js.map +1 -1
  881. package/lib/factory/imports/createExportDeclaration.mjs +15 -1
  882. package/lib/factory/imports/createExportDeclaration.mjs.map +1 -1
  883. package/lib/factory/imports/createExportDefault.d.ts +12 -2
  884. package/lib/factory/imports/createExportDefault.js +12 -2
  885. package/lib/factory/imports/createExportDefault.js.map +1 -1
  886. package/lib/factory/imports/createExportDefault.mjs +12 -2
  887. package/lib/factory/imports/createExportDefault.mjs.map +1 -1
  888. package/lib/factory/imports/createExportSpecifier.d.ts +13 -1
  889. package/lib/factory/imports/createExportSpecifier.js +13 -1
  890. package/lib/factory/imports/createExportSpecifier.js.map +1 -1
  891. package/lib/factory/imports/createExportSpecifier.mjs +13 -1
  892. package/lib/factory/imports/createExportSpecifier.mjs.map +1 -1
  893. package/lib/factory/imports/createExternalModuleExport.d.ts +13 -2
  894. package/lib/factory/imports/createExternalModuleExport.js +13 -2
  895. package/lib/factory/imports/createExternalModuleExport.js.map +1 -1
  896. package/lib/factory/imports/createExternalModuleExport.mjs +13 -2
  897. package/lib/factory/imports/createExternalModuleExport.mjs.map +1 -1
  898. package/lib/factory/imports/createImportAttribute.d.ts +21 -0
  899. package/lib/factory/imports/createImportAttribute.js +26 -0
  900. package/lib/factory/imports/createImportAttribute.js.map +1 -0
  901. package/lib/factory/imports/createImportAttribute.mjs +25 -0
  902. package/lib/factory/imports/createImportAttribute.mjs.map +1 -0
  903. package/lib/factory/imports/createImportAttributes.d.ts +26 -0
  904. package/lib/factory/imports/createImportAttributes.js +31 -0
  905. package/lib/factory/imports/createImportAttributes.js.map +1 -0
  906. package/lib/factory/imports/createImportAttributes.mjs +30 -0
  907. package/lib/factory/imports/createImportAttributes.mjs.map +1 -0
  908. package/lib/factory/imports/createImportClause.d.ts +13 -1
  909. package/lib/factory/imports/createImportClause.js +13 -1
  910. package/lib/factory/imports/createImportClause.js.map +1 -1
  911. package/lib/factory/imports/createImportClause.mjs +13 -1
  912. package/lib/factory/imports/createImportClause.mjs.map +1 -1
  913. package/lib/factory/imports/createImportDeclaration.d.ts +13 -1
  914. package/lib/factory/imports/createImportDeclaration.js +13 -1
  915. package/lib/factory/imports/createImportDeclaration.js.map +1 -1
  916. package/lib/factory/imports/createImportDeclaration.mjs +13 -1
  917. package/lib/factory/imports/createImportDeclaration.mjs.map +1 -1
  918. package/lib/factory/imports/createImportSpecifier.d.ts +13 -1
  919. package/lib/factory/imports/createImportSpecifier.js +13 -1
  920. package/lib/factory/imports/createImportSpecifier.js.map +1 -1
  921. package/lib/factory/imports/createImportSpecifier.mjs +13 -1
  922. package/lib/factory/imports/createImportSpecifier.mjs.map +1 -1
  923. package/lib/factory/imports/createNamedExports.d.ts +13 -1
  924. package/lib/factory/imports/createNamedExports.js +13 -1
  925. package/lib/factory/imports/createNamedExports.js.map +1 -1
  926. package/lib/factory/imports/createNamedExports.mjs +13 -1
  927. package/lib/factory/imports/createNamedExports.mjs.map +1 -1
  928. package/lib/factory/imports/createNamedImports.d.ts +13 -1
  929. package/lib/factory/imports/createNamedImports.js +13 -1
  930. package/lib/factory/imports/createNamedImports.js.map +1 -1
  931. package/lib/factory/imports/createNamedImports.mjs +13 -1
  932. package/lib/factory/imports/createNamedImports.mjs.map +1 -1
  933. package/lib/factory/imports/createNamespaceExport.d.ts +12 -1
  934. package/lib/factory/imports/createNamespaceExport.js +12 -1
  935. package/lib/factory/imports/createNamespaceExport.js.map +1 -1
  936. package/lib/factory/imports/createNamespaceExport.mjs +12 -1
  937. package/lib/factory/imports/createNamespaceExport.mjs.map +1 -1
  938. package/lib/factory/imports/createNamespaceImport.d.ts +11 -1
  939. package/lib/factory/imports/createNamespaceImport.js +11 -1
  940. package/lib/factory/imports/createNamespaceImport.js.map +1 -1
  941. package/lib/factory/imports/createNamespaceImport.mjs +11 -1
  942. package/lib/factory/imports/createNamespaceImport.mjs.map +1 -1
  943. package/lib/factory/index.d.ts +68 -0
  944. package/lib/factory/index.js +68 -0
  945. package/lib/factory/index.js.map +1 -1
  946. package/lib/factory/index.mjs +68 -0
  947. package/lib/factory/index.mjs.map +1 -1
  948. package/lib/factory/jsdoc/createJSDocAllType.d.ts +17 -0
  949. package/lib/factory/jsdoc/createJSDocAllType.js +22 -0
  950. package/lib/factory/jsdoc/createJSDocAllType.js.map +1 -0
  951. package/lib/factory/jsdoc/createJSDocAllType.mjs +21 -0
  952. package/lib/factory/jsdoc/createJSDocAllType.mjs.map +1 -0
  953. package/lib/factory/jsdoc/createJSDocAugmentsTag.d.ts +21 -0
  954. package/lib/factory/jsdoc/createJSDocAugmentsTag.js +31 -0
  955. package/lib/factory/jsdoc/createJSDocAugmentsTag.js.map +1 -0
  956. package/lib/factory/jsdoc/createJSDocAugmentsTag.mjs +30 -0
  957. package/lib/factory/jsdoc/createJSDocAugmentsTag.mjs.map +1 -0
  958. package/lib/factory/jsdoc/createJSDocAuthorTag.d.ts +19 -0
  959. package/lib/factory/jsdoc/createJSDocAuthorTag.js +28 -0
  960. package/lib/factory/jsdoc/createJSDocAuthorTag.js.map +1 -0
  961. package/lib/factory/jsdoc/createJSDocAuthorTag.mjs +27 -0
  962. package/lib/factory/jsdoc/createJSDocAuthorTag.mjs.map +1 -0
  963. package/lib/factory/jsdoc/createJSDocCallbackTag.d.ts +27 -0
  964. package/lib/factory/jsdoc/createJSDocCallbackTag.js +38 -0
  965. package/lib/factory/jsdoc/createJSDocCallbackTag.js.map +1 -0
  966. package/lib/factory/jsdoc/createJSDocCallbackTag.mjs +37 -0
  967. package/lib/factory/jsdoc/createJSDocCallbackTag.mjs.map +1 -0
  968. package/lib/factory/jsdoc/createJSDocClassTag.d.ts +19 -0
  969. package/lib/factory/jsdoc/createJSDocClassTag.js +28 -0
  970. package/lib/factory/jsdoc/createJSDocClassTag.js.map +1 -0
  971. package/lib/factory/jsdoc/createJSDocClassTag.mjs +27 -0
  972. package/lib/factory/jsdoc/createJSDocClassTag.mjs.map +1 -0
  973. package/lib/factory/jsdoc/createJSDocComment.d.ts +22 -0
  974. package/lib/factory/jsdoc/createJSDocComment.js +30 -0
  975. package/lib/factory/jsdoc/createJSDocComment.js.map +1 -0
  976. package/lib/factory/jsdoc/createJSDocComment.mjs +29 -0
  977. package/lib/factory/jsdoc/createJSDocComment.mjs.map +1 -0
  978. package/lib/factory/jsdoc/createJSDocDeprecatedTag.d.ts +19 -0
  979. package/lib/factory/jsdoc/createJSDocDeprecatedTag.js +28 -0
  980. package/lib/factory/jsdoc/createJSDocDeprecatedTag.js.map +1 -0
  981. package/lib/factory/jsdoc/createJSDocDeprecatedTag.mjs +27 -0
  982. package/lib/factory/jsdoc/createJSDocDeprecatedTag.mjs.map +1 -0
  983. package/lib/factory/jsdoc/createJSDocEnumTag.d.ts +22 -0
  984. package/lib/factory/jsdoc/createJSDocEnumTag.js +32 -0
  985. package/lib/factory/jsdoc/createJSDocEnumTag.js.map +1 -0
  986. package/lib/factory/jsdoc/createJSDocEnumTag.mjs +31 -0
  987. package/lib/factory/jsdoc/createJSDocEnumTag.mjs.map +1 -0
  988. package/lib/factory/jsdoc/createJSDocFunctionType.d.ts +19 -0
  989. package/lib/factory/jsdoc/createJSDocFunctionType.js +27 -0
  990. package/lib/factory/jsdoc/createJSDocFunctionType.js.map +1 -0
  991. package/lib/factory/jsdoc/createJSDocFunctionType.mjs +26 -0
  992. package/lib/factory/jsdoc/createJSDocFunctionType.mjs.map +1 -0
  993. package/lib/factory/jsdoc/createJSDocImplementsTag.d.ts +21 -0
  994. package/lib/factory/jsdoc/createJSDocImplementsTag.js +31 -0
  995. package/lib/factory/jsdoc/createJSDocImplementsTag.js.map +1 -0
  996. package/lib/factory/jsdoc/createJSDocImplementsTag.mjs +30 -0
  997. package/lib/factory/jsdoc/createJSDocImplementsTag.mjs.map +1 -0
  998. package/lib/factory/jsdoc/createJSDocImportTag.d.ts +24 -0
  999. package/lib/factory/jsdoc/createJSDocImportTag.js +35 -0
  1000. package/lib/factory/jsdoc/createJSDocImportTag.js.map +1 -0
  1001. package/lib/factory/jsdoc/createJSDocImportTag.mjs +34 -0
  1002. package/lib/factory/jsdoc/createJSDocImportTag.mjs.map +1 -0
  1003. package/lib/factory/jsdoc/createJSDocLink.d.ts +22 -0
  1004. package/lib/factory/jsdoc/createJSDocLink.js +30 -0
  1005. package/lib/factory/jsdoc/createJSDocLink.js.map +1 -0
  1006. package/lib/factory/jsdoc/createJSDocLink.mjs +29 -0
  1007. package/lib/factory/jsdoc/createJSDocLink.mjs.map +1 -0
  1008. package/lib/factory/jsdoc/createJSDocLinkCode.d.ts +22 -0
  1009. package/lib/factory/jsdoc/createJSDocLinkCode.js +30 -0
  1010. package/lib/factory/jsdoc/createJSDocLinkCode.js.map +1 -0
  1011. package/lib/factory/jsdoc/createJSDocLinkCode.mjs +29 -0
  1012. package/lib/factory/jsdoc/createJSDocLinkCode.mjs.map +1 -0
  1013. package/lib/factory/jsdoc/createJSDocLinkPlain.d.ts +22 -0
  1014. package/lib/factory/jsdoc/createJSDocLinkPlain.js +30 -0
  1015. package/lib/factory/jsdoc/createJSDocLinkPlain.js.map +1 -0
  1016. package/lib/factory/jsdoc/createJSDocLinkPlain.mjs +29 -0
  1017. package/lib/factory/jsdoc/createJSDocLinkPlain.mjs.map +1 -0
  1018. package/lib/factory/jsdoc/createJSDocMemberName.d.ts +19 -0
  1019. package/lib/factory/jsdoc/createJSDocMemberName.js +27 -0
  1020. package/lib/factory/jsdoc/createJSDocMemberName.js.map +1 -0
  1021. package/lib/factory/jsdoc/createJSDocMemberName.mjs +26 -0
  1022. package/lib/factory/jsdoc/createJSDocMemberName.mjs.map +1 -0
  1023. package/lib/factory/jsdoc/createJSDocNameReference.d.ts +19 -0
  1024. package/lib/factory/jsdoc/createJSDocNameReference.js +26 -0
  1025. package/lib/factory/jsdoc/createJSDocNameReference.js.map +1 -0
  1026. package/lib/factory/jsdoc/createJSDocNameReference.mjs +25 -0
  1027. package/lib/factory/jsdoc/createJSDocNameReference.mjs.map +1 -0
  1028. package/lib/factory/jsdoc/createJSDocNamepathType.d.ts +19 -0
  1029. package/lib/factory/jsdoc/createJSDocNamepathType.js +26 -0
  1030. package/lib/factory/jsdoc/createJSDocNamepathType.js.map +1 -0
  1031. package/lib/factory/jsdoc/createJSDocNamepathType.mjs +25 -0
  1032. package/lib/factory/jsdoc/createJSDocNamepathType.mjs.map +1 -0
  1033. package/lib/factory/jsdoc/createJSDocNonNullableType.d.ts +26 -0
  1034. package/lib/factory/jsdoc/createJSDocNonNullableType.js +34 -0
  1035. package/lib/factory/jsdoc/createJSDocNonNullableType.js.map +1 -0
  1036. package/lib/factory/jsdoc/createJSDocNonNullableType.mjs +33 -0
  1037. package/lib/factory/jsdoc/createJSDocNonNullableType.mjs.map +1 -0
  1038. package/lib/factory/jsdoc/createJSDocNullableType.d.ts +26 -0
  1039. package/lib/factory/jsdoc/createJSDocNullableType.js +34 -0
  1040. package/lib/factory/jsdoc/createJSDocNullableType.js.map +1 -0
  1041. package/lib/factory/jsdoc/createJSDocNullableType.mjs +33 -0
  1042. package/lib/factory/jsdoc/createJSDocNullableType.mjs.map +1 -0
  1043. package/lib/factory/jsdoc/createJSDocOptionalType.d.ts +17 -0
  1044. package/lib/factory/jsdoc/createJSDocOptionalType.js +24 -0
  1045. package/lib/factory/jsdoc/createJSDocOptionalType.js.map +1 -0
  1046. package/lib/factory/jsdoc/createJSDocOptionalType.mjs +23 -0
  1047. package/lib/factory/jsdoc/createJSDocOptionalType.mjs.map +1 -0
  1048. package/lib/factory/jsdoc/createJSDocOverloadTag.d.ts +26 -0
  1049. package/lib/factory/jsdoc/createJSDocOverloadTag.js +36 -0
  1050. package/lib/factory/jsdoc/createJSDocOverloadTag.js.map +1 -0
  1051. package/lib/factory/jsdoc/createJSDocOverloadTag.mjs +35 -0
  1052. package/lib/factory/jsdoc/createJSDocOverloadTag.mjs.map +1 -0
  1053. package/lib/factory/jsdoc/createJSDocOverrideTag.d.ts +19 -0
  1054. package/lib/factory/jsdoc/createJSDocOverrideTag.js +28 -0
  1055. package/lib/factory/jsdoc/createJSDocOverrideTag.js.map +1 -0
  1056. package/lib/factory/jsdoc/createJSDocOverrideTag.mjs +27 -0
  1057. package/lib/factory/jsdoc/createJSDocOverrideTag.mjs.map +1 -0
  1058. package/lib/factory/jsdoc/createJSDocParameterTag.d.ts +34 -0
  1059. package/lib/factory/jsdoc/createJSDocParameterTag.js +47 -0
  1060. package/lib/factory/jsdoc/createJSDocParameterTag.js.map +1 -0
  1061. package/lib/factory/jsdoc/createJSDocParameterTag.mjs +46 -0
  1062. package/lib/factory/jsdoc/createJSDocParameterTag.mjs.map +1 -0
  1063. package/lib/factory/jsdoc/createJSDocPrivateTag.d.ts +19 -0
  1064. package/lib/factory/jsdoc/createJSDocPrivateTag.js +28 -0
  1065. package/lib/factory/jsdoc/createJSDocPrivateTag.js.map +1 -0
  1066. package/lib/factory/jsdoc/createJSDocPrivateTag.mjs +27 -0
  1067. package/lib/factory/jsdoc/createJSDocPrivateTag.mjs.map +1 -0
  1068. package/lib/factory/jsdoc/createJSDocPropertyTag.d.ts +28 -0
  1069. package/lib/factory/jsdoc/createJSDocPropertyTag.js +41 -0
  1070. package/lib/factory/jsdoc/createJSDocPropertyTag.js.map +1 -0
  1071. package/lib/factory/jsdoc/createJSDocPropertyTag.mjs +40 -0
  1072. package/lib/factory/jsdoc/createJSDocPropertyTag.mjs.map +1 -0
  1073. package/lib/factory/jsdoc/createJSDocProtectedTag.d.ts +19 -0
  1074. package/lib/factory/jsdoc/createJSDocProtectedTag.js +28 -0
  1075. package/lib/factory/jsdoc/createJSDocProtectedTag.js.map +1 -0
  1076. package/lib/factory/jsdoc/createJSDocProtectedTag.mjs +27 -0
  1077. package/lib/factory/jsdoc/createJSDocProtectedTag.mjs.map +1 -0
  1078. package/lib/factory/jsdoc/createJSDocPublicTag.d.ts +19 -0
  1079. package/lib/factory/jsdoc/createJSDocPublicTag.js +28 -0
  1080. package/lib/factory/jsdoc/createJSDocPublicTag.js.map +1 -0
  1081. package/lib/factory/jsdoc/createJSDocPublicTag.mjs +27 -0
  1082. package/lib/factory/jsdoc/createJSDocPublicTag.mjs.map +1 -0
  1083. package/lib/factory/jsdoc/createJSDocReadonlyTag.d.ts +19 -0
  1084. package/lib/factory/jsdoc/createJSDocReadonlyTag.js +28 -0
  1085. package/lib/factory/jsdoc/createJSDocReadonlyTag.js.map +1 -0
  1086. package/lib/factory/jsdoc/createJSDocReadonlyTag.mjs +27 -0
  1087. package/lib/factory/jsdoc/createJSDocReadonlyTag.mjs.map +1 -0
  1088. package/lib/factory/jsdoc/createJSDocReturnTag.d.ts +23 -0
  1089. package/lib/factory/jsdoc/createJSDocReturnTag.js +33 -0
  1090. package/lib/factory/jsdoc/createJSDocReturnTag.js.map +1 -0
  1091. package/lib/factory/jsdoc/createJSDocReturnTag.mjs +32 -0
  1092. package/lib/factory/jsdoc/createJSDocReturnTag.mjs.map +1 -0
  1093. package/lib/factory/jsdoc/createJSDocSatisfiesTag.d.ts +22 -0
  1094. package/lib/factory/jsdoc/createJSDocSatisfiesTag.js +32 -0
  1095. package/lib/factory/jsdoc/createJSDocSatisfiesTag.js.map +1 -0
  1096. package/lib/factory/jsdoc/createJSDocSatisfiesTag.mjs +31 -0
  1097. package/lib/factory/jsdoc/createJSDocSatisfiesTag.mjs.map +1 -0
  1098. package/lib/factory/jsdoc/createJSDocSeeTag.d.ts +22 -0
  1099. package/lib/factory/jsdoc/createJSDocSeeTag.js +32 -0
  1100. package/lib/factory/jsdoc/createJSDocSeeTag.js.map +1 -0
  1101. package/lib/factory/jsdoc/createJSDocSeeTag.mjs +31 -0
  1102. package/lib/factory/jsdoc/createJSDocSeeTag.mjs.map +1 -0
  1103. package/lib/factory/jsdoc/createJSDocSignature.d.ts +24 -0
  1104. package/lib/factory/jsdoc/createJSDocSignature.js +33 -0
  1105. package/lib/factory/jsdoc/createJSDocSignature.js.map +1 -0
  1106. package/lib/factory/jsdoc/createJSDocSignature.mjs +32 -0
  1107. package/lib/factory/jsdoc/createJSDocSignature.mjs.map +1 -0
  1108. package/lib/factory/jsdoc/createJSDocTemplateTag.d.ts +24 -0
  1109. package/lib/factory/jsdoc/createJSDocTemplateTag.js +35 -0
  1110. package/lib/factory/jsdoc/createJSDocTemplateTag.js.map +1 -0
  1111. package/lib/factory/jsdoc/createJSDocTemplateTag.mjs +34 -0
  1112. package/lib/factory/jsdoc/createJSDocTemplateTag.mjs.map +1 -0
  1113. package/lib/factory/jsdoc/createJSDocText.d.ts +19 -0
  1114. package/lib/factory/jsdoc/createJSDocText.js +26 -0
  1115. package/lib/factory/jsdoc/createJSDocText.js.map +1 -0
  1116. package/lib/factory/jsdoc/createJSDocText.mjs +25 -0
  1117. package/lib/factory/jsdoc/createJSDocText.mjs.map +1 -0
  1118. package/lib/factory/jsdoc/createJSDocThisTag.d.ts +21 -0
  1119. package/lib/factory/jsdoc/createJSDocThisTag.js +31 -0
  1120. package/lib/factory/jsdoc/createJSDocThisTag.js.map +1 -0
  1121. package/lib/factory/jsdoc/createJSDocThisTag.mjs +30 -0
  1122. package/lib/factory/jsdoc/createJSDocThisTag.mjs.map +1 -0
  1123. package/lib/factory/jsdoc/createJSDocThrowsTag.d.ts +22 -0
  1124. package/lib/factory/jsdoc/createJSDocThrowsTag.js +31 -0
  1125. package/lib/factory/jsdoc/createJSDocThrowsTag.js.map +1 -0
  1126. package/lib/factory/jsdoc/createJSDocThrowsTag.mjs +30 -0
  1127. package/lib/factory/jsdoc/createJSDocThrowsTag.mjs.map +1 -0
  1128. package/lib/factory/jsdoc/createJSDocTypeExpression.d.ts +18 -0
  1129. package/lib/factory/jsdoc/createJSDocTypeExpression.js +25 -0
  1130. package/lib/factory/jsdoc/createJSDocTypeExpression.js.map +1 -0
  1131. package/lib/factory/jsdoc/createJSDocTypeExpression.mjs +24 -0
  1132. package/lib/factory/jsdoc/createJSDocTypeExpression.mjs.map +1 -0
  1133. package/lib/factory/jsdoc/createJSDocTypeLiteral.d.ts +22 -0
  1134. package/lib/factory/jsdoc/createJSDocTypeLiteral.js +30 -0
  1135. package/lib/factory/jsdoc/createJSDocTypeLiteral.js.map +1 -0
  1136. package/lib/factory/jsdoc/createJSDocTypeLiteral.mjs +29 -0
  1137. package/lib/factory/jsdoc/createJSDocTypeLiteral.mjs.map +1 -0
  1138. package/lib/factory/jsdoc/createJSDocTypeTag.d.ts +22 -0
  1139. package/lib/factory/jsdoc/createJSDocTypeTag.js +32 -0
  1140. package/lib/factory/jsdoc/createJSDocTypeTag.js.map +1 -0
  1141. package/lib/factory/jsdoc/createJSDocTypeTag.mjs +31 -0
  1142. package/lib/factory/jsdoc/createJSDocTypeTag.mjs.map +1 -0
  1143. package/lib/factory/jsdoc/createJSDocTypedefTag.d.ts +24 -0
  1144. package/lib/factory/jsdoc/createJSDocTypedefTag.js +35 -0
  1145. package/lib/factory/jsdoc/createJSDocTypedefTag.js.map +1 -0
  1146. package/lib/factory/jsdoc/createJSDocTypedefTag.mjs +34 -0
  1147. package/lib/factory/jsdoc/createJSDocTypedefTag.mjs.map +1 -0
  1148. package/lib/factory/jsdoc/createJSDocUnknownTag.d.ts +20 -0
  1149. package/lib/factory/jsdoc/createJSDocUnknownTag.js +28 -0
  1150. package/lib/factory/jsdoc/createJSDocUnknownTag.js.map +1 -0
  1151. package/lib/factory/jsdoc/createJSDocUnknownTag.mjs +27 -0
  1152. package/lib/factory/jsdoc/createJSDocUnknownTag.mjs.map +1 -0
  1153. package/lib/factory/jsdoc/createJSDocUnknownType.d.ts +17 -0
  1154. package/lib/factory/jsdoc/createJSDocUnknownType.js +22 -0
  1155. package/lib/factory/jsdoc/createJSDocUnknownType.js.map +1 -0
  1156. package/lib/factory/jsdoc/createJSDocUnknownType.mjs +21 -0
  1157. package/lib/factory/jsdoc/createJSDocUnknownType.mjs.map +1 -0
  1158. package/lib/factory/jsdoc/createJSDocVariadicType.d.ts +18 -0
  1159. package/lib/factory/jsdoc/createJSDocVariadicType.js +25 -0
  1160. package/lib/factory/jsdoc/createJSDocVariadicType.js.map +1 -0
  1161. package/lib/factory/jsdoc/createJSDocVariadicType.mjs +24 -0
  1162. package/lib/factory/jsdoc/createJSDocVariadicType.mjs.map +1 -0
  1163. package/lib/factory/jsx/createJsxAttribute.d.ts +22 -0
  1164. package/lib/factory/jsx/createJsxAttribute.js +30 -0
  1165. package/lib/factory/jsx/createJsxAttribute.js.map +1 -0
  1166. package/lib/factory/jsx/createJsxAttribute.mjs +29 -0
  1167. package/lib/factory/jsx/createJsxAttribute.mjs.map +1 -0
  1168. package/lib/factory/jsx/createJsxAttributes.d.ts +23 -0
  1169. package/lib/factory/jsx/createJsxAttributes.js +28 -0
  1170. package/lib/factory/jsx/createJsxAttributes.js.map +1 -0
  1171. package/lib/factory/jsx/createJsxAttributes.mjs +27 -0
  1172. package/lib/factory/jsx/createJsxAttributes.mjs.map +1 -0
  1173. package/lib/factory/jsx/createJsxClosingElement.d.ts +20 -0
  1174. package/lib/factory/jsx/createJsxClosingElement.js +25 -0
  1175. package/lib/factory/jsx/createJsxClosingElement.js.map +1 -0
  1176. package/lib/factory/jsx/createJsxClosingElement.mjs +24 -0
  1177. package/lib/factory/jsx/createJsxClosingElement.mjs.map +1 -0
  1178. package/lib/factory/jsx/createJsxElement.d.ts +24 -0
  1179. package/lib/factory/jsx/createJsxElement.js +33 -0
  1180. package/lib/factory/jsx/createJsxElement.js.map +1 -0
  1181. package/lib/factory/jsx/createJsxElement.mjs +32 -0
  1182. package/lib/factory/jsx/createJsxElement.mjs.map +1 -0
  1183. package/lib/factory/jsx/createJsxExpression.d.ts +22 -0
  1184. package/lib/factory/jsx/createJsxExpression.js +30 -0
  1185. package/lib/factory/jsx/createJsxExpression.js.map +1 -0
  1186. package/lib/factory/jsx/createJsxExpression.mjs +29 -0
  1187. package/lib/factory/jsx/createJsxExpression.mjs.map +1 -0
  1188. package/lib/factory/jsx/createJsxFragment.d.ts +24 -0
  1189. package/lib/factory/jsx/createJsxFragment.js +33 -0
  1190. package/lib/factory/jsx/createJsxFragment.js.map +1 -0
  1191. package/lib/factory/jsx/createJsxFragment.mjs +32 -0
  1192. package/lib/factory/jsx/createJsxFragment.mjs.map +1 -0
  1193. package/lib/factory/jsx/createJsxJsxClosingFragment.d.ts +19 -0
  1194. package/lib/factory/jsx/createJsxJsxClosingFragment.js +24 -0
  1195. package/lib/factory/jsx/createJsxJsxClosingFragment.js.map +1 -0
  1196. package/lib/factory/jsx/createJsxJsxClosingFragment.mjs +23 -0
  1197. package/lib/factory/jsx/createJsxJsxClosingFragment.mjs.map +1 -0
  1198. package/lib/factory/jsx/createJsxNamespacedName.d.ts +21 -0
  1199. package/lib/factory/jsx/createJsxNamespacedName.js +29 -0
  1200. package/lib/factory/jsx/createJsxNamespacedName.js.map +1 -0
  1201. package/lib/factory/jsx/createJsxNamespacedName.mjs +28 -0
  1202. package/lib/factory/jsx/createJsxNamespacedName.mjs.map +1 -0
  1203. package/lib/factory/jsx/createJsxOpeningElement.d.ts +24 -0
  1204. package/lib/factory/jsx/createJsxOpeningElement.js +33 -0
  1205. package/lib/factory/jsx/createJsxOpeningElement.js.map +1 -0
  1206. package/lib/factory/jsx/createJsxOpeningElement.mjs +32 -0
  1207. package/lib/factory/jsx/createJsxOpeningElement.mjs.map +1 -0
  1208. package/lib/factory/jsx/createJsxOpeningFragment.d.ts +18 -0
  1209. package/lib/factory/jsx/createJsxOpeningFragment.js +23 -0
  1210. package/lib/factory/jsx/createJsxOpeningFragment.js.map +1 -0
  1211. package/lib/factory/jsx/createJsxOpeningFragment.mjs +22 -0
  1212. package/lib/factory/jsx/createJsxOpeningFragment.mjs.map +1 -0
  1213. package/lib/factory/jsx/createJsxSelfClosingElement.d.ts +23 -0
  1214. package/lib/factory/jsx/createJsxSelfClosingElement.js +32 -0
  1215. package/lib/factory/jsx/createJsxSelfClosingElement.js.map +1 -0
  1216. package/lib/factory/jsx/createJsxSelfClosingElement.mjs +31 -0
  1217. package/lib/factory/jsx/createJsxSelfClosingElement.mjs.map +1 -0
  1218. package/lib/factory/jsx/createJsxSpreadAttribute.d.ts +20 -0
  1219. package/lib/factory/jsx/createJsxSpreadAttribute.js +25 -0
  1220. package/lib/factory/jsx/createJsxSpreadAttribute.js.map +1 -0
  1221. package/lib/factory/jsx/createJsxSpreadAttribute.mjs +24 -0
  1222. package/lib/factory/jsx/createJsxSpreadAttribute.mjs.map +1 -0
  1223. package/lib/factory/jsx/createJsxText.d.ts +24 -0
  1224. package/lib/factory/jsx/createJsxText.js +32 -0
  1225. package/lib/factory/jsx/createJsxText.js.map +1 -0
  1226. package/lib/factory/jsx/createJsxText.mjs +31 -0
  1227. package/lib/factory/jsx/createJsxText.mjs.map +1 -0
  1228. package/lib/factory/literals/createBigIntLiteral.d.ts +11 -1
  1229. package/lib/factory/literals/createBigIntLiteral.js +11 -1
  1230. package/lib/factory/literals/createBigIntLiteral.js.map +1 -1
  1231. package/lib/factory/literals/createBigIntLiteral.mjs +11 -1
  1232. package/lib/factory/literals/createBigIntLiteral.mjs.map +1 -1
  1233. package/lib/factory/literals/createNoSubstitutionTemplateLiteral.d.ts +12 -1
  1234. package/lib/factory/literals/createNoSubstitutionTemplateLiteral.js +12 -1
  1235. package/lib/factory/literals/createNoSubstitutionTemplateLiteral.js.map +1 -1
  1236. package/lib/factory/literals/createNoSubstitutionTemplateLiteral.mjs +12 -1
  1237. package/lib/factory/literals/createNoSubstitutionTemplateLiteral.mjs.map +1 -1
  1238. package/lib/factory/literals/createNumericLiteral.d.ts +11 -1
  1239. package/lib/factory/literals/createNumericLiteral.js +11 -1
  1240. package/lib/factory/literals/createNumericLiteral.js.map +1 -1
  1241. package/lib/factory/literals/createNumericLiteral.mjs +11 -1
  1242. package/lib/factory/literals/createNumericLiteral.mjs.map +1 -1
  1243. package/lib/factory/literals/createStringLiteral.d.ts +16 -1
  1244. package/lib/factory/literals/createStringLiteral.js +16 -1
  1245. package/lib/factory/literals/createStringLiteral.js.map +1 -1
  1246. package/lib/factory/literals/createStringLiteral.mjs +16 -1
  1247. package/lib/factory/literals/createStringLiteral.mjs.map +1 -1
  1248. package/lib/factory/literals/createStringLiteralFromNode.d.ts +21 -0
  1249. package/lib/factory/literals/createStringLiteralFromNode.js +26 -0
  1250. package/lib/factory/literals/createStringLiteralFromNode.js.map +1 -0
  1251. package/lib/factory/literals/createStringLiteralFromNode.mjs +25 -0
  1252. package/lib/factory/literals/createStringLiteralFromNode.mjs.map +1 -0
  1253. package/lib/factory/literals/createTemplateHead.d.ts +14 -1
  1254. package/lib/factory/literals/createTemplateHead.js +14 -1
  1255. package/lib/factory/literals/createTemplateHead.js.map +1 -1
  1256. package/lib/factory/literals/createTemplateHead.mjs +14 -1
  1257. package/lib/factory/literals/createTemplateHead.mjs.map +1 -1
  1258. package/lib/factory/literals/createTemplateMiddle.d.ts +13 -1
  1259. package/lib/factory/literals/createTemplateMiddle.js +13 -1
  1260. package/lib/factory/literals/createTemplateMiddle.js.map +1 -1
  1261. package/lib/factory/literals/createTemplateMiddle.mjs +13 -1
  1262. package/lib/factory/literals/createTemplateMiddle.mjs.map +1 -1
  1263. package/lib/factory/literals/createTemplateTail.d.ts +13 -1
  1264. package/lib/factory/literals/createTemplateTail.js +13 -1
  1265. package/lib/factory/literals/createTemplateTail.js.map +1 -1
  1266. package/lib/factory/literals/createTemplateTail.mjs +13 -1
  1267. package/lib/factory/literals/createTemplateTail.mjs.map +1 -1
  1268. package/lib/factory/names/createDecorator.d.ts +11 -1
  1269. package/lib/factory/names/createDecorator.js +11 -1
  1270. package/lib/factory/names/createDecorator.js.map +1 -1
  1271. package/lib/factory/names/createDecorator.mjs +11 -1
  1272. package/lib/factory/names/createDecorator.mjs.map +1 -1
  1273. package/lib/factory/names/createFalse.d.ts +10 -1
  1274. package/lib/factory/names/createFalse.js +11 -3
  1275. package/lib/factory/names/createFalse.js.map +1 -1
  1276. package/lib/factory/names/createFalse.mjs +11 -3
  1277. package/lib/factory/names/createFalse.mjs.map +1 -1
  1278. package/lib/factory/names/createIdentifier.d.ts +11 -1
  1279. package/lib/factory/names/createIdentifier.js +11 -1
  1280. package/lib/factory/names/createIdentifier.js.map +1 -1
  1281. package/lib/factory/names/createIdentifier.mjs +11 -1
  1282. package/lib/factory/names/createIdentifier.mjs.map +1 -1
  1283. package/lib/factory/names/createLoopVariable.d.ts +24 -0
  1284. package/lib/factory/names/createLoopVariable.js +29 -0
  1285. package/lib/factory/names/createLoopVariable.js.map +1 -0
  1286. package/lib/factory/names/createLoopVariable.mjs +28 -0
  1287. package/lib/factory/names/createLoopVariable.mjs.map +1 -0
  1288. package/lib/factory/names/createModifier.d.ts +13 -1
  1289. package/lib/factory/names/createModifier.js +13 -1
  1290. package/lib/factory/names/createModifier.js.map +1 -1
  1291. package/lib/factory/names/createModifier.mjs +13 -1
  1292. package/lib/factory/names/createModifier.mjs.map +1 -1
  1293. package/lib/factory/names/createModifiersFromModifierFlags.d.ts +25 -0
  1294. package/lib/factory/names/createModifiersFromModifierFlags.js +81 -0
  1295. package/lib/factory/names/createModifiersFromModifierFlags.js.map +1 -0
  1296. package/lib/factory/names/createModifiersFromModifierFlags.mjs +80 -0
  1297. package/lib/factory/names/createModifiersFromModifierFlags.mjs.map +1 -0
  1298. package/lib/factory/names/createNull.d.ts +10 -1
  1299. package/lib/factory/names/createNull.js +11 -3
  1300. package/lib/factory/names/createNull.js.map +1 -1
  1301. package/lib/factory/names/createNull.mjs +11 -3
  1302. package/lib/factory/names/createNull.mjs.map +1 -1
  1303. package/lib/factory/names/createPrivateIdentifier.d.ts +11 -1
  1304. package/lib/factory/names/createPrivateIdentifier.js +11 -1
  1305. package/lib/factory/names/createPrivateIdentifier.js.map +1 -1
  1306. package/lib/factory/names/createPrivateIdentifier.mjs +11 -1
  1307. package/lib/factory/names/createPrivateIdentifier.mjs.map +1 -1
  1308. package/lib/factory/names/createQualifiedName.d.ts +14 -1
  1309. package/lib/factory/names/createQualifiedName.js +14 -1
  1310. package/lib/factory/names/createQualifiedName.js.map +1 -1
  1311. package/lib/factory/names/createQualifiedName.mjs +14 -1
  1312. package/lib/factory/names/createQualifiedName.mjs.map +1 -1
  1313. package/lib/factory/names/createSuper.d.ts +10 -1
  1314. package/lib/factory/names/createSuper.js +11 -3
  1315. package/lib/factory/names/createSuper.js.map +1 -1
  1316. package/lib/factory/names/createSuper.mjs +11 -3
  1317. package/lib/factory/names/createSuper.mjs.map +1 -1
  1318. package/lib/factory/names/createTempVariable.d.ts +29 -0
  1319. package/lib/factory/names/createTempVariable.js +34 -0
  1320. package/lib/factory/names/createTempVariable.js.map +1 -0
  1321. package/lib/factory/names/createTempVariable.mjs +33 -0
  1322. package/lib/factory/names/createTempVariable.mjs.map +1 -0
  1323. package/lib/factory/names/createThis.d.ts +10 -1
  1324. package/lib/factory/names/createThis.js +11 -3
  1325. package/lib/factory/names/createThis.js.map +1 -1
  1326. package/lib/factory/names/createThis.mjs +11 -3
  1327. package/lib/factory/names/createThis.mjs.map +1 -1
  1328. package/lib/factory/names/createToken.d.ts +12 -1
  1329. package/lib/factory/names/createToken.js +12 -1
  1330. package/lib/factory/names/createToken.js.map +1 -1
  1331. package/lib/factory/names/createToken.mjs +12 -1
  1332. package/lib/factory/names/createToken.mjs.map +1 -1
  1333. package/lib/factory/names/createTrue.d.ts +10 -1
  1334. package/lib/factory/names/createTrue.js +11 -3
  1335. package/lib/factory/names/createTrue.js.map +1 -1
  1336. package/lib/factory/names/createTrue.mjs +11 -3
  1337. package/lib/factory/names/createTrue.mjs.map +1 -1
  1338. package/lib/factory/names/createUniqueName.d.ts +28 -0
  1339. package/lib/factory/names/createUniqueName.js +33 -0
  1340. package/lib/factory/names/createUniqueName.js.map +1 -0
  1341. package/lib/factory/names/createUniqueName.mjs +32 -0
  1342. package/lib/factory/names/createUniqueName.mjs.map +1 -0
  1343. package/lib/factory/names/createUniquePrivateName.d.ts +25 -0
  1344. package/lib/factory/names/createUniquePrivateName.js +30 -0
  1345. package/lib/factory/names/createUniquePrivateName.js.map +1 -0
  1346. package/lib/factory/names/createUniquePrivateName.mjs +29 -0
  1347. package/lib/factory/names/createUniquePrivateName.mjs.map +1 -0
  1348. package/lib/factory/statements/createBlock.d.ts +16 -1
  1349. package/lib/factory/statements/createBlock.js +16 -1
  1350. package/lib/factory/statements/createBlock.js.map +1 -1
  1351. package/lib/factory/statements/createBlock.mjs +16 -1
  1352. package/lib/factory/statements/createBlock.mjs.map +1 -1
  1353. package/lib/factory/statements/createBreakStatement.d.ts +16 -1
  1354. package/lib/factory/statements/createBreakStatement.js +16 -1
  1355. package/lib/factory/statements/createBreakStatement.js.map +1 -1
  1356. package/lib/factory/statements/createBreakStatement.mjs +16 -1
  1357. package/lib/factory/statements/createBreakStatement.mjs.map +1 -1
  1358. package/lib/factory/statements/createCaseBlock.d.ts +18 -1
  1359. package/lib/factory/statements/createCaseBlock.js +18 -1
  1360. package/lib/factory/statements/createCaseBlock.js.map +1 -1
  1361. package/lib/factory/statements/createCaseBlock.mjs +18 -1
  1362. package/lib/factory/statements/createCaseBlock.mjs.map +1 -1
  1363. package/lib/factory/statements/createCaseClause.d.ts +15 -1
  1364. package/lib/factory/statements/createCaseClause.js +15 -1
  1365. package/lib/factory/statements/createCaseClause.js.map +1 -1
  1366. package/lib/factory/statements/createCaseClause.mjs +15 -1
  1367. package/lib/factory/statements/createCaseClause.mjs.map +1 -1
  1368. package/lib/factory/statements/createCatchClause.d.ts +16 -1
  1369. package/lib/factory/statements/createCatchClause.js +16 -1
  1370. package/lib/factory/statements/createCatchClause.js.map +1 -1
  1371. package/lib/factory/statements/createCatchClause.mjs +16 -1
  1372. package/lib/factory/statements/createCatchClause.mjs.map +1 -1
  1373. package/lib/factory/statements/createContinueStatement.d.ts +16 -1
  1374. package/lib/factory/statements/createContinueStatement.js +16 -1
  1375. package/lib/factory/statements/createContinueStatement.js.map +1 -1
  1376. package/lib/factory/statements/createContinueStatement.mjs +16 -1
  1377. package/lib/factory/statements/createContinueStatement.mjs.map +1 -1
  1378. package/lib/factory/statements/createDebuggerStatement.d.ts +10 -1
  1379. package/lib/factory/statements/createDebuggerStatement.js +10 -1
  1380. package/lib/factory/statements/createDebuggerStatement.js.map +1 -1
  1381. package/lib/factory/statements/createDebuggerStatement.mjs +10 -1
  1382. package/lib/factory/statements/createDebuggerStatement.mjs.map +1 -1
  1383. package/lib/factory/statements/createDefaultClause.d.ts +12 -1
  1384. package/lib/factory/statements/createDefaultClause.js +12 -1
  1385. package/lib/factory/statements/createDefaultClause.js.map +1 -1
  1386. package/lib/factory/statements/createDefaultClause.mjs +12 -1
  1387. package/lib/factory/statements/createDefaultClause.mjs.map +1 -1
  1388. package/lib/factory/statements/createDoStatement.d.ts +14 -1
  1389. package/lib/factory/statements/createDoStatement.js +14 -1
  1390. package/lib/factory/statements/createDoStatement.js.map +1 -1
  1391. package/lib/factory/statements/createDoStatement.mjs +14 -1
  1392. package/lib/factory/statements/createDoStatement.mjs.map +1 -1
  1393. package/lib/factory/statements/createEmptyStatement.d.ts +10 -1
  1394. package/lib/factory/statements/createEmptyStatement.js +10 -1
  1395. package/lib/factory/statements/createEmptyStatement.js.map +1 -1
  1396. package/lib/factory/statements/createEmptyStatement.mjs +10 -1
  1397. package/lib/factory/statements/createEmptyStatement.mjs.map +1 -1
  1398. package/lib/factory/statements/createExpressionStatement.d.ts +11 -1
  1399. package/lib/factory/statements/createExpressionStatement.js +11 -1
  1400. package/lib/factory/statements/createExpressionStatement.js.map +1 -1
  1401. package/lib/factory/statements/createExpressionStatement.mjs +11 -1
  1402. package/lib/factory/statements/createExpressionStatement.mjs.map +1 -1
  1403. package/lib/factory/statements/createForInStatement.d.ts +15 -1
  1404. package/lib/factory/statements/createForInStatement.js +15 -1
  1405. package/lib/factory/statements/createForInStatement.js.map +1 -1
  1406. package/lib/factory/statements/createForInStatement.mjs +15 -1
  1407. package/lib/factory/statements/createForInStatement.mjs.map +1 -1
  1408. package/lib/factory/statements/createForOfStatement.d.ts +24 -1
  1409. package/lib/factory/statements/createForOfStatement.js +24 -1
  1410. package/lib/factory/statements/createForOfStatement.js.map +1 -1
  1411. package/lib/factory/statements/createForOfStatement.mjs +24 -1
  1412. package/lib/factory/statements/createForOfStatement.mjs.map +1 -1
  1413. package/lib/factory/statements/createForStatement.d.ts +17 -1
  1414. package/lib/factory/statements/createForStatement.js +17 -1
  1415. package/lib/factory/statements/createForStatement.js.map +1 -1
  1416. package/lib/factory/statements/createForStatement.mjs +17 -1
  1417. package/lib/factory/statements/createForStatement.mjs.map +1 -1
  1418. package/lib/factory/statements/createIfStatement.d.ts +17 -1
  1419. package/lib/factory/statements/createIfStatement.js +17 -1
  1420. package/lib/factory/statements/createIfStatement.js.map +1 -1
  1421. package/lib/factory/statements/createIfStatement.mjs +17 -1
  1422. package/lib/factory/statements/createIfStatement.mjs.map +1 -1
  1423. package/lib/factory/statements/createLabeledStatement.d.ts +14 -1
  1424. package/lib/factory/statements/createLabeledStatement.js +14 -1
  1425. package/lib/factory/statements/createLabeledStatement.js.map +1 -1
  1426. package/lib/factory/statements/createLabeledStatement.mjs +14 -1
  1427. package/lib/factory/statements/createLabeledStatement.mjs.map +1 -1
  1428. package/lib/factory/statements/createNotEmittedStatement.d.ts +16 -0
  1429. package/lib/factory/statements/createNotEmittedStatement.js +21 -0
  1430. package/lib/factory/statements/createNotEmittedStatement.js.map +1 -0
  1431. package/lib/factory/statements/createNotEmittedStatement.mjs +20 -0
  1432. package/lib/factory/statements/createNotEmittedStatement.mjs.map +1 -0
  1433. package/lib/factory/statements/createReturnStatement.d.ts +16 -1
  1434. package/lib/factory/statements/createReturnStatement.js +16 -1
  1435. package/lib/factory/statements/createReturnStatement.js.map +1 -1
  1436. package/lib/factory/statements/createReturnStatement.mjs +16 -1
  1437. package/lib/factory/statements/createReturnStatement.mjs.map +1 -1
  1438. package/lib/factory/statements/createSwitchStatement.d.ts +18 -1
  1439. package/lib/factory/statements/createSwitchStatement.js +18 -1
  1440. package/lib/factory/statements/createSwitchStatement.js.map +1 -1
  1441. package/lib/factory/statements/createSwitchStatement.mjs +18 -1
  1442. package/lib/factory/statements/createSwitchStatement.mjs.map +1 -1
  1443. package/lib/factory/statements/createThrowStatement.d.ts +10 -1
  1444. package/lib/factory/statements/createThrowStatement.js +10 -1
  1445. package/lib/factory/statements/createThrowStatement.js.map +1 -1
  1446. package/lib/factory/statements/createThrowStatement.mjs +10 -1
  1447. package/lib/factory/statements/createThrowStatement.mjs.map +1 -1
  1448. package/lib/factory/statements/createTryStatement.d.ts +20 -1
  1449. package/lib/factory/statements/createTryStatement.js +20 -1
  1450. package/lib/factory/statements/createTryStatement.js.map +1 -1
  1451. package/lib/factory/statements/createTryStatement.mjs +20 -1
  1452. package/lib/factory/statements/createTryStatement.mjs.map +1 -1
  1453. package/lib/factory/statements/createVariableDeclaration.d.ts +20 -4
  1454. package/lib/factory/statements/createVariableDeclaration.js +20 -4
  1455. package/lib/factory/statements/createVariableDeclaration.js.map +1 -1
  1456. package/lib/factory/statements/createVariableDeclaration.mjs +20 -4
  1457. package/lib/factory/statements/createVariableDeclaration.mjs.map +1 -1
  1458. package/lib/factory/statements/createVariableDeclarationList.d.ts +13 -1
  1459. package/lib/factory/statements/createVariableDeclarationList.js +14 -3
  1460. package/lib/factory/statements/createVariableDeclarationList.js.map +1 -1
  1461. package/lib/factory/statements/createVariableDeclarationList.mjs +14 -3
  1462. package/lib/factory/statements/createVariableDeclarationList.mjs.map +1 -1
  1463. package/lib/factory/statements/createVariableStatement.d.ts +14 -1
  1464. package/lib/factory/statements/createVariableStatement.js +14 -1
  1465. package/lib/factory/statements/createVariableStatement.js.map +1 -1
  1466. package/lib/factory/statements/createVariableStatement.mjs +14 -1
  1467. package/lib/factory/statements/createVariableStatement.mjs.map +1 -1
  1468. package/lib/factory/statements/createWhileStatement.d.ts +14 -1
  1469. package/lib/factory/statements/createWhileStatement.js +14 -1
  1470. package/lib/factory/statements/createWhileStatement.js.map +1 -1
  1471. package/lib/factory/statements/createWhileStatement.mjs +14 -1
  1472. package/lib/factory/statements/createWhileStatement.mjs.map +1 -1
  1473. package/lib/factory/statements/createWithStatement.d.ts +14 -1
  1474. package/lib/factory/statements/createWithStatement.js +14 -1
  1475. package/lib/factory/statements/createWithStatement.js.map +1 -1
  1476. package/lib/factory/statements/createWithStatement.mjs +14 -1
  1477. package/lib/factory/statements/createWithStatement.mjs.map +1 -1
  1478. package/lib/factory/types/createArrayTypeNode.d.ts +13 -1
  1479. package/lib/factory/types/createArrayTypeNode.js +13 -1
  1480. package/lib/factory/types/createArrayTypeNode.js.map +1 -1
  1481. package/lib/factory/types/createArrayTypeNode.mjs +13 -1
  1482. package/lib/factory/types/createArrayTypeNode.mjs.map +1 -1
  1483. package/lib/factory/types/createCallSignature.d.ts +15 -4
  1484. package/lib/factory/types/createCallSignature.js +15 -4
  1485. package/lib/factory/types/createCallSignature.js.map +1 -1
  1486. package/lib/factory/types/createCallSignature.mjs +15 -4
  1487. package/lib/factory/types/createCallSignature.mjs.map +1 -1
  1488. package/lib/factory/types/createConditionalTypeNode.d.ts +18 -6
  1489. package/lib/factory/types/createConditionalTypeNode.js +18 -6
  1490. package/lib/factory/types/createConditionalTypeNode.js.map +1 -1
  1491. package/lib/factory/types/createConditionalTypeNode.mjs +18 -6
  1492. package/lib/factory/types/createConditionalTypeNode.mjs.map +1 -1
  1493. package/lib/factory/types/createConstructSignature.d.ts +14 -4
  1494. package/lib/factory/types/createConstructSignature.js +14 -4
  1495. package/lib/factory/types/createConstructSignature.js.map +1 -1
  1496. package/lib/factory/types/createConstructSignature.mjs +14 -4
  1497. package/lib/factory/types/createConstructSignature.mjs.map +1 -1
  1498. package/lib/factory/types/createConstructorTypeNode.d.ts +16 -5
  1499. package/lib/factory/types/createConstructorTypeNode.js +16 -5
  1500. package/lib/factory/types/createConstructorTypeNode.js.map +1 -1
  1501. package/lib/factory/types/createConstructorTypeNode.mjs +16 -5
  1502. package/lib/factory/types/createConstructorTypeNode.mjs.map +1 -1
  1503. package/lib/factory/types/createExpressionWithTypeArguments.d.ts +13 -2
  1504. package/lib/factory/types/createExpressionWithTypeArguments.js +13 -2
  1505. package/lib/factory/types/createExpressionWithTypeArguments.js.map +1 -1
  1506. package/lib/factory/types/createExpressionWithTypeArguments.mjs +13 -2
  1507. package/lib/factory/types/createExpressionWithTypeArguments.mjs.map +1 -1
  1508. package/lib/factory/types/createFunctionTypeNode.d.ts +14 -2
  1509. package/lib/factory/types/createFunctionTypeNode.js +14 -2
  1510. package/lib/factory/types/createFunctionTypeNode.js.map +1 -1
  1511. package/lib/factory/types/createFunctionTypeNode.mjs +14 -2
  1512. package/lib/factory/types/createFunctionTypeNode.mjs.map +1 -1
  1513. package/lib/factory/types/createImportTypeNode.d.ts +17 -6
  1514. package/lib/factory/types/createImportTypeNode.js +17 -6
  1515. package/lib/factory/types/createImportTypeNode.js.map +1 -1
  1516. package/lib/factory/types/createImportTypeNode.mjs +17 -6
  1517. package/lib/factory/types/createImportTypeNode.mjs.map +1 -1
  1518. package/lib/factory/types/createIndexSignature.d.ts +13 -3
  1519. package/lib/factory/types/createIndexSignature.js +13 -3
  1520. package/lib/factory/types/createIndexSignature.js.map +1 -1
  1521. package/lib/factory/types/createIndexSignature.mjs +13 -3
  1522. package/lib/factory/types/createIndexSignature.mjs.map +1 -1
  1523. package/lib/factory/types/createIndexedAccessTypeNode.d.ts +13 -2
  1524. package/lib/factory/types/createIndexedAccessTypeNode.js +13 -2
  1525. package/lib/factory/types/createIndexedAccessTypeNode.js.map +1 -1
  1526. package/lib/factory/types/createIndexedAccessTypeNode.mjs +13 -2
  1527. package/lib/factory/types/createIndexedAccessTypeNode.mjs.map +1 -1
  1528. package/lib/factory/types/createInferTypeNode.d.ts +14 -3
  1529. package/lib/factory/types/createInferTypeNode.js +14 -3
  1530. package/lib/factory/types/createInferTypeNode.js.map +1 -1
  1531. package/lib/factory/types/createInferTypeNode.mjs +14 -3
  1532. package/lib/factory/types/createInferTypeNode.mjs.map +1 -1
  1533. package/lib/factory/types/createIntersectionTypeNode.d.ts +12 -1
  1534. package/lib/factory/types/createIntersectionTypeNode.js +12 -1
  1535. package/lib/factory/types/createIntersectionTypeNode.js.map +1 -1
  1536. package/lib/factory/types/createIntersectionTypeNode.mjs +12 -1
  1537. package/lib/factory/types/createIntersectionTypeNode.mjs.map +1 -1
  1538. package/lib/factory/types/createKeywordTypeNode.d.ts +13 -1
  1539. package/lib/factory/types/createKeywordTypeNode.js +13 -1
  1540. package/lib/factory/types/createKeywordTypeNode.js.map +1 -1
  1541. package/lib/factory/types/createKeywordTypeNode.mjs +13 -1
  1542. package/lib/factory/types/createKeywordTypeNode.mjs.map +1 -1
  1543. package/lib/factory/types/createLiteralTypeNode.d.ts +17 -4
  1544. package/lib/factory/types/createLiteralTypeNode.js +15 -2
  1545. package/lib/factory/types/createLiteralTypeNode.js.map +1 -1
  1546. package/lib/factory/types/createLiteralTypeNode.mjs +15 -2
  1547. package/lib/factory/types/createLiteralTypeNode.mjs.map +1 -1
  1548. package/lib/factory/types/createMappedTypeNode.d.ts +27 -8
  1549. package/lib/factory/types/createMappedTypeNode.js +27 -8
  1550. package/lib/factory/types/createMappedTypeNode.js.map +1 -1
  1551. package/lib/factory/types/createMappedTypeNode.mjs +27 -8
  1552. package/lib/factory/types/createMappedTypeNode.mjs.map +1 -1
  1553. package/lib/factory/types/createMethodSignature.d.ts +16 -3
  1554. package/lib/factory/types/createMethodSignature.js +16 -3
  1555. package/lib/factory/types/createMethodSignature.js.map +1 -1
  1556. package/lib/factory/types/createMethodSignature.mjs +16 -3
  1557. package/lib/factory/types/createMethodSignature.mjs.map +1 -1
  1558. package/lib/factory/types/createNamedTupleMember.d.ts +17 -6
  1559. package/lib/factory/types/createNamedTupleMember.js +17 -6
  1560. package/lib/factory/types/createNamedTupleMember.js.map +1 -1
  1561. package/lib/factory/types/createNamedTupleMember.mjs +17 -6
  1562. package/lib/factory/types/createNamedTupleMember.mjs.map +1 -1
  1563. package/lib/factory/types/createNotEmittedTypeElement.d.ts +13 -0
  1564. package/lib/factory/types/createNotEmittedTypeElement.js +18 -0
  1565. package/lib/factory/types/createNotEmittedTypeElement.js.map +1 -0
  1566. package/lib/factory/types/createNotEmittedTypeElement.mjs +17 -0
  1567. package/lib/factory/types/createNotEmittedTypeElement.mjs.map +1 -0
  1568. package/lib/factory/types/createOptionalTypeNode.d.ts +13 -3
  1569. package/lib/factory/types/createOptionalTypeNode.js +13 -3
  1570. package/lib/factory/types/createOptionalTypeNode.js.map +1 -1
  1571. package/lib/factory/types/createOptionalTypeNode.mjs +13 -3
  1572. package/lib/factory/types/createOptionalTypeNode.mjs.map +1 -1
  1573. package/lib/factory/types/createParenthesizedType.d.ts +12 -2
  1574. package/lib/factory/types/createParenthesizedType.js +12 -2
  1575. package/lib/factory/types/createParenthesizedType.js.map +1 -1
  1576. package/lib/factory/types/createParenthesizedType.mjs +12 -2
  1577. package/lib/factory/types/createParenthesizedType.mjs.map +1 -1
  1578. package/lib/factory/types/createPropertySignature.d.ts +15 -3
  1579. package/lib/factory/types/createPropertySignature.js +15 -3
  1580. package/lib/factory/types/createPropertySignature.js.map +1 -1
  1581. package/lib/factory/types/createPropertySignature.mjs +15 -3
  1582. package/lib/factory/types/createPropertySignature.mjs.map +1 -1
  1583. package/lib/factory/types/createRestTypeNode.d.ts +12 -3
  1584. package/lib/factory/types/createRestTypeNode.js +12 -3
  1585. package/lib/factory/types/createRestTypeNode.js.map +1 -1
  1586. package/lib/factory/types/createRestTypeNode.mjs +12 -3
  1587. package/lib/factory/types/createRestTypeNode.mjs.map +1 -1
  1588. package/lib/factory/types/createTemplateLiteralType.d.ts +17 -4
  1589. package/lib/factory/types/createTemplateLiteralType.js +17 -4
  1590. package/lib/factory/types/createTemplateLiteralType.js.map +1 -1
  1591. package/lib/factory/types/createTemplateLiteralType.mjs +17 -4
  1592. package/lib/factory/types/createTemplateLiteralType.mjs.map +1 -1
  1593. package/lib/factory/types/createTemplateLiteralTypeSpan.d.ts +17 -4
  1594. package/lib/factory/types/createTemplateLiteralTypeSpan.js +17 -4
  1595. package/lib/factory/types/createTemplateLiteralTypeSpan.js.map +1 -1
  1596. package/lib/factory/types/createTemplateLiteralTypeSpan.mjs +17 -4
  1597. package/lib/factory/types/createTemplateLiteralTypeSpan.mjs.map +1 -1
  1598. package/lib/factory/types/createThisTypeNode.d.ts +12 -2
  1599. package/lib/factory/types/createThisTypeNode.js +12 -2
  1600. package/lib/factory/types/createThisTypeNode.js.map +1 -1
  1601. package/lib/factory/types/createThisTypeNode.mjs +12 -2
  1602. package/lib/factory/types/createThisTypeNode.mjs.map +1 -1
  1603. package/lib/factory/types/createTupleTypeNode.d.ts +13 -2
  1604. package/lib/factory/types/createTupleTypeNode.js +13 -2
  1605. package/lib/factory/types/createTupleTypeNode.js.map +1 -1
  1606. package/lib/factory/types/createTupleTypeNode.mjs +13 -2
  1607. package/lib/factory/types/createTupleTypeNode.mjs.map +1 -1
  1608. package/lib/factory/types/createTypeLiteralNode.d.ts +14 -2
  1609. package/lib/factory/types/createTypeLiteralNode.js +14 -2
  1610. package/lib/factory/types/createTypeLiteralNode.js.map +1 -1
  1611. package/lib/factory/types/createTypeLiteralNode.mjs +14 -2
  1612. package/lib/factory/types/createTypeLiteralNode.mjs.map +1 -1
  1613. package/lib/factory/types/createTypeOperatorNode.d.ts +14 -2
  1614. package/lib/factory/types/createTypeOperatorNode.js +14 -2
  1615. package/lib/factory/types/createTypeOperatorNode.js.map +1 -1
  1616. package/lib/factory/types/createTypeOperatorNode.mjs +14 -2
  1617. package/lib/factory/types/createTypeOperatorNode.mjs.map +1 -1
  1618. package/lib/factory/types/createTypeParameterDeclaration.d.ts +14 -2
  1619. package/lib/factory/types/createTypeParameterDeclaration.js +14 -2
  1620. package/lib/factory/types/createTypeParameterDeclaration.js.map +1 -1
  1621. package/lib/factory/types/createTypeParameterDeclaration.mjs +14 -2
  1622. package/lib/factory/types/createTypeParameterDeclaration.mjs.map +1 -1
  1623. package/lib/factory/types/createTypePredicateNode.d.ts +18 -5
  1624. package/lib/factory/types/createTypePredicateNode.js +18 -5
  1625. package/lib/factory/types/createTypePredicateNode.js.map +1 -1
  1626. package/lib/factory/types/createTypePredicateNode.mjs +18 -5
  1627. package/lib/factory/types/createTypePredicateNode.mjs.map +1 -1
  1628. package/lib/factory/types/createTypeQueryNode.d.ts +11 -1
  1629. package/lib/factory/types/createTypeQueryNode.js +11 -1
  1630. package/lib/factory/types/createTypeQueryNode.js.map +1 -1
  1631. package/lib/factory/types/createTypeQueryNode.mjs +11 -1
  1632. package/lib/factory/types/createTypeQueryNode.mjs.map +1 -1
  1633. package/lib/factory/types/createTypeReferenceNode.d.ts +13 -1
  1634. package/lib/factory/types/createTypeReferenceNode.js +13 -1
  1635. package/lib/factory/types/createTypeReferenceNode.js.map +1 -1
  1636. package/lib/factory/types/createTypeReferenceNode.mjs +13 -1
  1637. package/lib/factory/types/createTypeReferenceNode.mjs.map +1 -1
  1638. package/lib/factory/types/createUnionTypeNode.d.ts +12 -1
  1639. package/lib/factory/types/createUnionTypeNode.js +12 -1
  1640. package/lib/factory/types/createUnionTypeNode.js.map +1 -1
  1641. package/lib/factory/types/createUnionTypeNode.mjs +12 -1
  1642. package/lib/factory/types/createUnionTypeNode.mjs.map +1 -1
  1643. package/lib/index.d.ts +5 -2
  1644. package/lib/index.js +10 -6
  1645. package/lib/index.js.map +1 -1
  1646. package/lib/index.mjs +10 -6
  1647. package/lib/index.mjs.map +1 -1
  1648. package/lib/syntax/NodeFlags.d.ts +13 -6
  1649. package/lib/syntax/NodeFlags.js +0 -14
  1650. package/lib/syntax/NodeFlags.js.map +1 -1
  1651. package/lib/syntax/NodeFlags.mjs +0 -14
  1652. package/lib/syntax/NodeFlags.mjs.map +1 -1
  1653. package/lib/syntax/SyntaxKind.d.ts +90 -86
  1654. package/lib/syntax/SyntaxKind.js +0 -103
  1655. package/lib/syntax/SyntaxKind.js.map +1 -1
  1656. package/lib/syntax/SyntaxKind.mjs +0 -103
  1657. package/lib/syntax/SyntaxKind.mjs.map +1 -1
  1658. package/lib/syntax/index.d.ts +0 -1
  1659. package/lib/syntax/index.js +0 -1
  1660. package/lib/syntax/index.js.map +1 -1
  1661. package/lib/syntax/index.mjs +0 -1
  1662. package/lib/syntax/index.mjs.map +1 -1
  1663. package/package.json +1 -1
  1664. package/src/TsPrinter.ts +1585 -1174
  1665. package/src/ast/Node.ts +416 -292
  1666. package/src/ast/clauses/HeritageClause.ts +20 -20
  1667. package/src/ast/clauses/ParameterDeclaration.ts +35 -35
  1668. package/src/ast/declarations/ClassDeclaration.ts +32 -32
  1669. package/src/ast/declarations/ClassElement.ts +21 -21
  1670. package/src/ast/declarations/ClassStaticBlockDeclaration.ts +16 -16
  1671. package/src/ast/declarations/ConstructorDeclaration.ts +24 -24
  1672. package/src/ast/declarations/EnumDeclaration.ts +24 -24
  1673. package/src/ast/declarations/EnumMember.ts +20 -20
  1674. package/src/ast/declarations/ExternalModuleReference.ts +16 -16
  1675. package/src/ast/declarations/FunctionDeclaration.ts +40 -40
  1676. package/src/ast/declarations/GetAccessorDeclaration.ts +32 -32
  1677. package/src/ast/declarations/ImportEqualsDeclaration.ts +27 -27
  1678. package/src/ast/declarations/InterfaceDeclaration.ts +32 -32
  1679. package/src/ast/declarations/MethodDeclaration.ts +43 -43
  1680. package/src/ast/declarations/ModuleBlock.ts +16 -16
  1681. package/src/ast/declarations/ModuleBody.ts +9 -9
  1682. package/src/ast/declarations/ModuleDeclaration.ts +28 -28
  1683. package/src/ast/declarations/ModuleName.ts +9 -9
  1684. package/src/ast/declarations/ModuleReference.ts +9 -9
  1685. package/src/ast/declarations/NamespaceExportDeclaration.ts +16 -16
  1686. package/src/ast/declarations/PropertyDeclaration.ts +32 -32
  1687. package/src/ast/declarations/SemicolonClassElement.ts +11 -11
  1688. package/src/ast/declarations/SetAccessorDeclaration.ts +28 -28
  1689. package/src/ast/declarations/TypeAliasDeclaration.ts +28 -28
  1690. package/src/ast/expressions/ArrayBindingElement.ts +9 -9
  1691. package/src/ast/expressions/ArrayBindingPattern.ts +16 -16
  1692. package/src/ast/expressions/ArrayLiteralExpression.ts +19 -19
  1693. package/src/ast/expressions/ArrowFunction.ts +33 -33
  1694. package/src/ast/expressions/AsExpression.ts +20 -20
  1695. package/src/ast/expressions/AwaitExpression.ts +16 -16
  1696. package/src/ast/expressions/BigIntLiteral.ts +14 -14
  1697. package/src/ast/expressions/BinaryExpression.ts +23 -23
  1698. package/src/ast/expressions/BindingElement.ts +28 -28
  1699. package/src/ast/expressions/BindingName.ts +13 -13
  1700. package/src/ast/expressions/CallChain.ts +27 -27
  1701. package/src/ast/expressions/CallExpression.ts +23 -23
  1702. package/src/ast/expressions/ClassExpression.ts +32 -32
  1703. package/src/ast/expressions/CommaListExpression.ts +16 -16
  1704. package/src/ast/expressions/ComputedPropertyName.ts +16 -16
  1705. package/src/ast/expressions/ConditionalExpression.ts +22 -22
  1706. package/src/ast/expressions/DeleteExpression.ts +16 -16
  1707. package/src/ast/expressions/ElementAccessChain.ts +23 -23
  1708. package/src/ast/expressions/ElementAccessExpression.ts +19 -19
  1709. package/src/ast/expressions/Expression.ts +87 -87
  1710. package/src/ast/expressions/FunctionExpression.ts +40 -40
  1711. package/src/ast/expressions/MetaProperty.ts +20 -20
  1712. package/src/ast/expressions/NewExpression.ts +23 -23
  1713. package/src/ast/expressions/NoSubstitutionTemplateLiteral.ts +14 -14
  1714. package/src/ast/expressions/NonNullChain.ts +16 -16
  1715. package/src/ast/expressions/NonNullExpression.ts +16 -16
  1716. package/src/ast/expressions/NumericLiteral.ts +14 -14
  1717. package/src/ast/expressions/ObjectBindingPattern.ts +16 -16
  1718. package/src/ast/expressions/ObjectLiteralElement.ts +19 -13
  1719. package/src/ast/expressions/ObjectLiteralExpression.ts +19 -19
  1720. package/src/ast/expressions/OmittedExpression.ts +11 -11
  1721. package/src/ast/expressions/ParenthesizedExpression.ts +16 -16
  1722. package/src/ast/expressions/PartiallyEmittedExpression.ts +21 -0
  1723. package/src/ast/expressions/PostfixUnaryExpression.ts +20 -20
  1724. package/src/ast/expressions/PrefixUnaryExpression.ts +20 -20
  1725. package/src/ast/expressions/PropertyAccessChain.ts +25 -25
  1726. package/src/ast/expressions/PropertyAccessExpression.ts +21 -21
  1727. package/src/ast/expressions/PropertyAssignment.ts +20 -20
  1728. package/src/ast/expressions/RegularExpressionLiteral.ts +14 -14
  1729. package/src/ast/expressions/SatisfiesExpression.ts +20 -20
  1730. package/src/ast/expressions/ShorthandPropertyAssignment.ts +20 -20
  1731. package/src/ast/expressions/SpreadAssignment.ts +16 -16
  1732. package/src/ast/expressions/SpreadElement.ts +16 -16
  1733. package/src/ast/expressions/StringLiteral.ts +17 -17
  1734. package/src/ast/expressions/TaggedTemplateExpression.ts +24 -24
  1735. package/src/ast/expressions/TemplateExpression.ts +20 -20
  1736. package/src/ast/expressions/TemplateHead.ts +17 -17
  1737. package/src/ast/expressions/TemplateLiteral.ts +11 -11
  1738. package/src/ast/expressions/TemplateMiddle.ts +14 -14
  1739. package/src/ast/expressions/TemplateSpan.ts +21 -21
  1740. package/src/ast/expressions/TemplateTail.ts +14 -14
  1741. package/src/ast/expressions/TypeAssertion.ts +20 -20
  1742. package/src/ast/expressions/TypeOfExpression.ts +16 -16
  1743. package/src/ast/expressions/VoidExpression.ts +16 -16
  1744. package/src/ast/expressions/YieldExpression.ts +20 -20
  1745. package/src/ast/file/Bundle.ts +16 -0
  1746. package/src/ast/file/SourceFile.ts +16 -16
  1747. package/src/ast/imports/ExportAssignment.ts +23 -23
  1748. package/src/ast/imports/ExportDeclaration.ts +28 -28
  1749. package/src/ast/imports/ExportSpecifier.ts +22 -22
  1750. package/src/ast/imports/ImportAttribute.ts +20 -0
  1751. package/src/ast/imports/ImportAttributeName.ts +10 -0
  1752. package/src/ast/imports/ImportAttributes.ts +22 -0
  1753. package/src/ast/imports/ImportClause.ts +24 -24
  1754. package/src/ast/imports/ImportDeclaration.ts +24 -24
  1755. package/src/ast/imports/ImportSpecifier.ts +22 -22
  1756. package/src/ast/imports/NamedExports.ts +16 -16
  1757. package/src/ast/imports/NamedImports.ts +16 -16
  1758. package/src/ast/imports/NamespaceExport.ts +16 -16
  1759. package/src/ast/imports/NamespaceImport.ts +16 -16
  1760. package/src/ast/index.ts +232 -162
  1761. package/src/ast/jsdoc/JSDoc.ts +20 -0
  1762. package/src/ast/jsdoc/JSDocAllType.ts +11 -0
  1763. package/src/ast/jsdoc/JSDocAugmentsTag.ts +24 -0
  1764. package/src/ast/jsdoc/JSDocAuthorTag.ts +20 -0
  1765. package/src/ast/jsdoc/JSDocCallbackTag.ts +27 -0
  1766. package/src/ast/jsdoc/JSDocClassTag.ts +20 -0
  1767. package/src/ast/jsdoc/JSDocComment.ts +16 -0
  1768. package/src/ast/jsdoc/JSDocDeprecatedTag.ts +20 -0
  1769. package/src/ast/jsdoc/JSDocEnumTag.ts +24 -0
  1770. package/src/ast/jsdoc/JSDocFunctionType.ts +20 -0
  1771. package/src/ast/jsdoc/JSDocImplementsTag.ts +24 -0
  1772. package/src/ast/jsdoc/JSDocImportTag.ts +28 -0
  1773. package/src/ast/jsdoc/JSDocLink.ts +20 -0
  1774. package/src/ast/jsdoc/JSDocLinkCode.ts +20 -0
  1775. package/src/ast/jsdoc/JSDocLinkPlain.ts +20 -0
  1776. package/src/ast/jsdoc/JSDocMemberName.ts +20 -0
  1777. package/src/ast/jsdoc/JSDocNameReference.ts +17 -0
  1778. package/src/ast/jsdoc/JSDocNamepathType.ts +16 -0
  1779. package/src/ast/jsdoc/JSDocNonNullableType.ts +19 -0
  1780. package/src/ast/jsdoc/JSDocNullableType.ts +19 -0
  1781. package/src/ast/jsdoc/JSDocOptionalType.ts +16 -0
  1782. package/src/ast/jsdoc/JSDocOverloadTag.ts +24 -0
  1783. package/src/ast/jsdoc/JSDocOverrideTag.ts +20 -0
  1784. package/src/ast/jsdoc/JSDocParameterTag.ts +34 -0
  1785. package/src/ast/jsdoc/JSDocPrivateTag.ts +20 -0
  1786. package/src/ast/jsdoc/JSDocPropertyTag.ts +34 -0
  1787. package/src/ast/jsdoc/JSDocProtectedTag.ts +20 -0
  1788. package/src/ast/jsdoc/JSDocPublicTag.ts +20 -0
  1789. package/src/ast/jsdoc/JSDocReadonlyTag.ts +20 -0
  1790. package/src/ast/jsdoc/JSDocReturnTag.ts +24 -0
  1791. package/src/ast/jsdoc/JSDocSatisfiesTag.ts +24 -0
  1792. package/src/ast/jsdoc/JSDocSeeTag.ts +24 -0
  1793. package/src/ast/jsdoc/JSDocSignature.ts +24 -0
  1794. package/src/ast/jsdoc/JSDocTag.ts +57 -0
  1795. package/src/ast/jsdoc/JSDocTemplateTag.ts +28 -0
  1796. package/src/ast/jsdoc/JSDocText.ts +14 -0
  1797. package/src/ast/jsdoc/JSDocThisTag.ts +24 -0
  1798. package/src/ast/jsdoc/JSDocThrowsTag.ts +24 -0
  1799. package/src/ast/jsdoc/JSDocTypeExpression.ts +16 -0
  1800. package/src/ast/jsdoc/JSDocTypeLiteral.ts +19 -0
  1801. package/src/ast/jsdoc/JSDocTypeTag.ts +24 -0
  1802. package/src/ast/jsdoc/JSDocTypedefTag.ts +28 -0
  1803. package/src/ast/jsdoc/JSDocUnknownTag.ts +20 -0
  1804. package/src/ast/jsdoc/JSDocUnknownType.ts +11 -0
  1805. package/src/ast/jsdoc/JSDocVariadicType.ts +16 -0
  1806. package/src/ast/jsx/JsxAttribute.ts +20 -0
  1807. package/src/ast/jsx/JsxAttributeLike.ts +10 -0
  1808. package/src/ast/jsx/JsxAttributeName.ts +10 -0
  1809. package/src/ast/jsx/JsxAttributeValue.ts +18 -0
  1810. package/src/ast/jsx/JsxAttributes.ts +16 -0
  1811. package/src/ast/jsx/JsxChild.ts +18 -0
  1812. package/src/ast/jsx/JsxClosingElement.ts +16 -0
  1813. package/src/ast/jsx/JsxClosingFragment.ts +11 -0
  1814. package/src/ast/jsx/JsxElement.ts +24 -0
  1815. package/src/ast/jsx/JsxExpression.ts +20 -0
  1816. package/src/ast/jsx/JsxFragment.ts +24 -0
  1817. package/src/ast/jsx/JsxNamespacedName.ts +19 -0
  1818. package/src/ast/jsx/JsxOpeningElement.ts +24 -0
  1819. package/src/ast/jsx/JsxOpeningFragment.ts +11 -0
  1820. package/src/ast/jsx/JsxSelfClosingElement.ts +24 -0
  1821. package/src/ast/jsx/JsxSpreadAttribute.ts +16 -0
  1822. package/src/ast/jsx/JsxTagName.ts +17 -0
  1823. package/src/ast/jsx/JsxText.ts +18 -0
  1824. package/src/ast/names/Decorator.ts +16 -16
  1825. package/src/ast/names/EntityName.ts +9 -9
  1826. package/src/ast/names/Identifier.ts +15 -15
  1827. package/src/ast/names/Modifier.ts +10 -10
  1828. package/src/ast/names/ModifierLike.ts +9 -9
  1829. package/src/ast/names/PrivateIdentifier.ts +14 -14
  1830. package/src/ast/names/PropertyName.ts +17 -17
  1831. package/src/ast/names/QualifiedName.ts +20 -20
  1832. package/src/ast/names/Token.ts +16 -16
  1833. package/src/ast/statements/Block.ts +19 -19
  1834. package/src/ast/statements/BreakStatement.ts +16 -16
  1835. package/src/ast/statements/CaseBlock.ts +16 -16
  1836. package/src/ast/statements/CaseClause.ts +20 -20
  1837. package/src/ast/statements/CaseOrDefaultClause.ts +9 -9
  1838. package/src/ast/statements/CatchClause.ts +20 -20
  1839. package/src/ast/statements/ContinueStatement.ts +16 -16
  1840. package/src/ast/statements/DebuggerStatement.ts +11 -11
  1841. package/src/ast/statements/Declaration.ts +17 -17
  1842. package/src/ast/statements/DefaultClause.ts +16 -16
  1843. package/src/ast/statements/DoStatement.ts +20 -20
  1844. package/src/ast/statements/EmptyStatement.ts +11 -11
  1845. package/src/ast/statements/ExpressionStatement.ts +16 -16
  1846. package/src/ast/statements/ForInStatement.ts +24 -24
  1847. package/src/ast/statements/ForInitializer.ts +9 -9
  1848. package/src/ast/statements/ForOfStatement.ts +28 -28
  1849. package/src/ast/statements/ForStatement.ts +27 -27
  1850. package/src/ast/statements/IfStatement.ts +23 -23
  1851. package/src/ast/statements/LabeledStatement.ts +20 -20
  1852. package/src/ast/statements/NotEmittedStatement.ts +16 -0
  1853. package/src/ast/statements/ReturnStatement.ts +16 -16
  1854. package/src/ast/statements/Statement.ts +67 -67
  1855. package/src/ast/statements/SwitchStatement.ts +20 -20
  1856. package/src/ast/statements/ThrowStatement.ts +16 -16
  1857. package/src/ast/statements/TryStatement.ts +23 -23
  1858. package/src/ast/statements/VariableDeclaration.ts +28 -28
  1859. package/src/ast/statements/VariableDeclarationList.ts +20 -20
  1860. package/src/ast/statements/VariableStatement.ts +20 -20
  1861. package/src/ast/statements/WhileStatement.ts +20 -20
  1862. package/src/ast/statements/WithStatement.ts +20 -20
  1863. package/src/ast/types/ArrayTypeNode.ts +16 -16
  1864. package/src/ast/types/CallSignatureDeclaration.ts +24 -24
  1865. package/src/ast/types/ConditionalTypeNode.ts +25 -25
  1866. package/src/ast/types/ConstructSignatureDeclaration.ts +24 -24
  1867. package/src/ast/types/ConstructorTypeNode.ts +28 -28
  1868. package/src/ast/types/ExpressionWithTypeArguments.ts +20 -20
  1869. package/src/ast/types/FunctionTypeNode.ts +24 -24
  1870. package/src/ast/types/ImportTypeNode.ts +26 -26
  1871. package/src/ast/types/IndexSignatureDeclaration.ts +24 -24
  1872. package/src/ast/types/IndexedAccessTypeNode.ts +19 -19
  1873. package/src/ast/types/InferTypeNode.ts +16 -16
  1874. package/src/ast/types/IntersectionTypeNode.ts +16 -16
  1875. package/src/ast/types/KeywordTypeNode.ts +16 -16
  1876. package/src/ast/types/LiteralTypeNode.ts +25 -19
  1877. package/src/ast/types/MappedTypeNode.ts +34 -34
  1878. package/src/ast/types/MethodSignature.ts +36 -36
  1879. package/src/ast/types/NamedTupleMember.ts +27 -27
  1880. package/src/ast/types/NotEmittedTypeElement.ts +12 -0
  1881. package/src/ast/types/OptionalTypeNode.ts +16 -16
  1882. package/src/ast/types/ParenthesizedTypeNode.ts +16 -16
  1883. package/src/ast/types/PropertySignature.ts +28 -28
  1884. package/src/ast/types/RestTypeNode.ts +16 -16
  1885. package/src/ast/types/TemplateLiteralTypeNode.ts +20 -20
  1886. package/src/ast/types/TemplateLiteralTypeSpan.ts +21 -21
  1887. package/src/ast/types/ThisTypeNode.ts +11 -11
  1888. package/src/ast/types/TupleTypeNode.ts +16 -16
  1889. package/src/ast/types/TypeElement.ts +17 -17
  1890. package/src/ast/types/TypeLiteralNode.ts +16 -16
  1891. package/src/ast/types/TypeNode.ts +55 -55
  1892. package/src/ast/types/TypeOperatorNode.ts +20 -20
  1893. package/src/ast/types/TypeParameterDeclaration.ts +27 -27
  1894. package/src/ast/types/TypePredicateNode.ts +25 -25
  1895. package/src/ast/types/TypeQueryNode.ts +16 -16
  1896. package/src/ast/types/TypeReferenceNode.ts +20 -20
  1897. package/src/ast/types/UnionTypeNode.ts +16 -16
  1898. package/src/comments.ts +159 -0
  1899. package/src/factory/clauses/createHeritageClause.ts +28 -16
  1900. package/src/factory/clauses/createParameterDeclaration.ts +56 -39
  1901. package/src/factory/declarations/createClassDeclaration.ts +56 -36
  1902. package/src/factory/declarations/createClassStaticBlockDeclaration.ts +25 -13
  1903. package/src/factory/declarations/createConstructorDeclaration.ts +36 -23
  1904. package/src/factory/declarations/createEnumDeclaration.ts +39 -24
  1905. package/src/factory/declarations/createEnumMember.ts +28 -17
  1906. package/src/factory/declarations/createExternalModuleReference.ts +23 -13
  1907. package/src/factory/declarations/createFunctionDeclaration.ts +64 -44
  1908. package/src/factory/declarations/createGetAccessorDeclaration.ts +51 -36
  1909. package/src/factory/declarations/createImportEqualsDeclaration.ts +44 -31
  1910. package/src/factory/declarations/createInterfaceDeclaration.ts +52 -36
  1911. package/src/factory/declarations/createMethodDeclaration.ts +67 -47
  1912. package/src/factory/declarations/createModuleBlock.ts +25 -13
  1913. package/src/factory/declarations/createModuleDeclaration.ts +51 -32
  1914. package/src/factory/declarations/createNamespaceExportDeclaration.ts +25 -15
  1915. package/src/factory/declarations/createPropertyDeclaration.ts +53 -37
  1916. package/src/factory/declarations/createSemicolonClassElement.ts +19 -11
  1917. package/src/factory/declarations/createSetAccessorDeclaration.ts +47 -32
  1918. package/src/factory/declarations/createTypeAliasDeclaration.ts +45 -32
  1919. package/src/factory/expressions/createAdd.ts +27 -17
  1920. package/src/factory/expressions/createArrayBindingPattern.ts +23 -13
  1921. package/src/factory/expressions/createArrayLiteralExpression.ts +27 -16
  1922. package/src/factory/expressions/createArrowFunction.ts +47 -34
  1923. package/src/factory/expressions/createAsExpression.ts +24 -15
  1924. package/src/factory/expressions/createAssignment.ts +27 -17
  1925. package/src/factory/expressions/createAwaitExpression.ts +22 -13
  1926. package/src/factory/expressions/createBinaryExpression.ts +37 -23
  1927. package/src/factory/expressions/createBindingElement.ts +50 -34
  1928. package/src/factory/expressions/createBitwiseAnd.ts +27 -17
  1929. package/src/factory/expressions/createBitwiseNot.ts +23 -13
  1930. package/src/factory/expressions/createBitwiseOr.ts +25 -16
  1931. package/src/factory/expressions/createBitwiseXor.ts +26 -17
  1932. package/src/factory/expressions/createCallChain.ts +39 -25
  1933. package/src/factory/expressions/createCallExpression.ts +32 -22
  1934. package/src/factory/expressions/createClassExpression.ts +46 -36
  1935. package/src/factory/expressions/createComma.ts +29 -17
  1936. package/src/factory/expressions/createCommaListExpression.ts +23 -13
  1937. package/src/factory/expressions/createComputedPropertyName.ts +23 -13
  1938. package/src/factory/expressions/createConditionalExpression.ts +33 -22
  1939. package/src/factory/expressions/createDeleteExpression.ts +22 -13
  1940. package/src/factory/expressions/createDivide.ts +26 -17
  1941. package/src/factory/expressions/createElementAccessChain.ts +36 -24
  1942. package/src/factory/expressions/createElementAccessExpression.ts +31 -21
  1943. package/src/factory/expressions/createEquality.ts +28 -17
  1944. package/src/factory/expressions/createExponent.ts +27 -17
  1945. package/src/factory/expressions/createFunctionExpression.ts +54 -44
  1946. package/src/factory/expressions/createGreaterThan.ts +28 -17
  1947. package/src/factory/expressions/createGreaterThanEquals.ts +28 -17
  1948. package/src/factory/expressions/createImmediatelyInvokedArrowFunction.ts +43 -30
  1949. package/src/factory/expressions/createImmediatelyInvokedFunctionExpression.ts +44 -32
  1950. package/src/factory/expressions/createInequality.ts +28 -17
  1951. package/src/factory/expressions/createLeftShift.ts +27 -17
  1952. package/src/factory/expressions/createLessThan.ts +27 -17
  1953. package/src/factory/expressions/createLessThanEquals.ts +28 -17
  1954. package/src/factory/expressions/createLogicalAnd.ts +28 -17
  1955. package/src/factory/expressions/createLogicalNot.ts +23 -13
  1956. package/src/factory/expressions/createLogicalOr.ts +27 -17
  1957. package/src/factory/expressions/createMetaProperty.ts +31 -17
  1958. package/src/factory/expressions/createModulo.ts +25 -17
  1959. package/src/factory/expressions/createMultiply.ts +25 -17
  1960. package/src/factory/expressions/createNewExpression.ts +33 -22
  1961. package/src/factory/expressions/createNonNullChain.ts +23 -12
  1962. package/src/factory/expressions/createNonNullExpression.ts +24 -13
  1963. package/src/factory/expressions/createObjectBindingPattern.ts +24 -13
  1964. package/src/factory/expressions/createObjectLiteralExpression.ts +29 -16
  1965. package/src/factory/expressions/createOmittedExpression.ts +22 -11
  1966. package/src/factory/expressions/createParenthesizedExpression.ts +24 -13
  1967. package/src/factory/expressions/createPartiallyEmittedExpression.ts +28 -0
  1968. package/src/factory/expressions/createPostfixDecrement.ts +23 -15
  1969. package/src/factory/expressions/createPostfixIncrement.ts +23 -15
  1970. package/src/factory/expressions/createPostfixUnaryExpression.ts +28 -17
  1971. package/src/factory/expressions/createPrefixDecrement.ts +23 -15
  1972. package/src/factory/expressions/createPrefixIncrement.ts +23 -15
  1973. package/src/factory/expressions/createPrefixMinus.ts +21 -13
  1974. package/src/factory/expressions/createPrefixPlus.ts +21 -13
  1975. package/src/factory/expressions/createPrefixUnaryExpression.ts +28 -17
  1976. package/src/factory/expressions/createPropertyAccessChain.ts +41 -29
  1977. package/src/factory/expressions/createPropertyAccessExpression.ts +35 -25
  1978. package/src/factory/expressions/createPropertyAssignment.ts +28 -17
  1979. package/src/factory/expressions/createRegularExpressionLiteral.ts +23 -13
  1980. package/src/factory/expressions/createRightShift.ts +25 -17
  1981. package/src/factory/expressions/createSatisfiesExpression.ts +26 -15
  1982. package/src/factory/expressions/createShorthandPropertyAssignment.ts +37 -25
  1983. package/src/factory/expressions/createSpreadAssignment.ts +23 -13
  1984. package/src/factory/expressions/createSpreadElement.ts +22 -12
  1985. package/src/factory/expressions/createStrictEquality.ts +25 -17
  1986. package/src/factory/expressions/createStrictInequality.ts +25 -17
  1987. package/src/factory/expressions/createSubtract.ts +25 -17
  1988. package/src/factory/expressions/createTaggedTemplateExpression.ts +35 -23
  1989. package/src/factory/expressions/createTemplateExpression.ts +28 -15
  1990. package/src/factory/expressions/createTemplateSpan.ts +34 -20
  1991. package/src/factory/expressions/createTypeAssertion.ts +26 -15
  1992. package/src/factory/expressions/createTypeOfExpression.ts +22 -13
  1993. package/src/factory/expressions/createUnsignedRightShift.ts +29 -21
  1994. package/src/factory/expressions/createVoidExpression.ts +22 -12
  1995. package/src/factory/expressions/createVoidZero.ts +21 -12
  1996. package/src/factory/expressions/createYieldExpression.ts +27 -15
  1997. package/src/factory/file/createBundle.ts +30 -0
  1998. package/src/factory/file/createNodeArray.ts +25 -12
  1999. package/src/factory/file/createSourceFile.ts +24 -13
  2000. package/src/factory/file/updateSourceFile.ts +15 -15
  2001. package/src/factory/imports/createExportAssignment.ts +30 -19
  2002. package/src/factory/imports/createExportDeclaration.ts +49 -35
  2003. package/src/factory/imports/createExportDefault.ts +22 -12
  2004. package/src/factory/imports/createExportSpecifier.ts +35 -23
  2005. package/src/factory/imports/createExternalModuleExport.ts +32 -21
  2006. package/src/factory/imports/createImportAttribute.ts +30 -0
  2007. package/src/factory/imports/createImportAttributes.ts +32 -0
  2008. package/src/factory/imports/createImportClause.ts +34 -22
  2009. package/src/factory/imports/createImportDeclaration.ts +43 -31
  2010. package/src/factory/imports/createImportSpecifier.ts +31 -19
  2011. package/src/factory/imports/createNamedExports.ts +25 -13
  2012. package/src/factory/imports/createNamedImports.ts +25 -13
  2013. package/src/factory/imports/createNamespaceExport.ts +25 -14
  2014. package/src/factory/imports/createNamespaceImport.ts +24 -14
  2015. package/src/factory/index.ts +267 -198
  2016. package/src/factory/internal/asEntityName.ts +6 -6
  2017. package/src/factory/internal/asName.ts +10 -10
  2018. package/src/factory/internal/asPropertyName.ts +6 -6
  2019. package/src/factory/internal/make.ts +17 -17
  2020. package/src/factory/jsdoc/createJSDocAllType.ts +19 -0
  2021. package/src/factory/jsdoc/createJSDocAugmentsTag.ts +38 -0
  2022. package/src/factory/jsdoc/createJSDocAuthorTag.ts +29 -0
  2023. package/src/factory/jsdoc/createJSDocCallbackTag.ts +46 -0
  2024. package/src/factory/jsdoc/createJSDocClassTag.ts +29 -0
  2025. package/src/factory/jsdoc/createJSDocComment.ts +31 -0
  2026. package/src/factory/jsdoc/createJSDocDeprecatedTag.ts +29 -0
  2027. package/src/factory/jsdoc/createJSDocEnumTag.ts +39 -0
  2028. package/src/factory/jsdoc/createJSDocFunctionType.ts +32 -0
  2029. package/src/factory/jsdoc/createJSDocImplementsTag.ts +38 -0
  2030. package/src/factory/jsdoc/createJSDocImportTag.ts +44 -0
  2031. package/src/factory/jsdoc/createJSDocLink.ts +31 -0
  2032. package/src/factory/jsdoc/createJSDocLinkCode.ts +31 -0
  2033. package/src/factory/jsdoc/createJSDocLinkPlain.ts +31 -0
  2034. package/src/factory/jsdoc/createJSDocMemberName.ts +28 -0
  2035. package/src/factory/jsdoc/createJSDocNameReference.ts +30 -0
  2036. package/src/factory/jsdoc/createJSDocNamepathType.ts +24 -0
  2037. package/src/factory/jsdoc/createJSDocNonNullableType.ts +35 -0
  2038. package/src/factory/jsdoc/createJSDocNullableType.ts +35 -0
  2039. package/src/factory/jsdoc/createJSDocOptionalType.ts +22 -0
  2040. package/src/factory/jsdoc/createJSDocOverloadTag.ts +43 -0
  2041. package/src/factory/jsdoc/createJSDocOverrideTag.ts +29 -0
  2042. package/src/factory/jsdoc/createJSDocParameterTag.ts +58 -0
  2043. package/src/factory/jsdoc/createJSDocPrivateTag.ts +29 -0
  2044. package/src/factory/jsdoc/createJSDocPropertyTag.ts +52 -0
  2045. package/src/factory/jsdoc/createJSDocProtectedTag.ts +29 -0
  2046. package/src/factory/jsdoc/createJSDocPublicTag.ts +29 -0
  2047. package/src/factory/jsdoc/createJSDocReadonlyTag.ts +29 -0
  2048. package/src/factory/jsdoc/createJSDocReturnTag.ts +40 -0
  2049. package/src/factory/jsdoc/createJSDocSatisfiesTag.ts +39 -0
  2050. package/src/factory/jsdoc/createJSDocSeeTag.ts +39 -0
  2051. package/src/factory/jsdoc/createJSDocSignature.ts +40 -0
  2052. package/src/factory/jsdoc/createJSDocTemplateTag.ts +44 -0
  2053. package/src/factory/jsdoc/createJSDocText.ts +24 -0
  2054. package/src/factory/jsdoc/createJSDocThisTag.ts +38 -0
  2055. package/src/factory/jsdoc/createJSDocThrowsTag.ts +38 -0
  2056. package/src/factory/jsdoc/createJSDocTypeExpression.ts +25 -0
  2057. package/src/factory/jsdoc/createJSDocTypeLiteral.ts +31 -0
  2058. package/src/factory/jsdoc/createJSDocTypeTag.ts +39 -0
  2059. package/src/factory/jsdoc/createJSDocTypedefTag.ts +44 -0
  2060. package/src/factory/jsdoc/createJSDocUnknownTag.ts +29 -0
  2061. package/src/factory/jsdoc/createJSDocUnknownType.ts +20 -0
  2062. package/src/factory/jsdoc/createJSDocVariadicType.ts +23 -0
  2063. package/src/factory/jsx/createJsxAttribute.ts +35 -0
  2064. package/src/factory/jsx/createJsxAttributes.ts +27 -0
  2065. package/src/factory/jsx/createJsxClosingElement.ts +24 -0
  2066. package/src/factory/jsx/createJsxElement.ts +40 -0
  2067. package/src/factory/jsx/createJsxExpression.ts +31 -0
  2068. package/src/factory/jsx/createJsxFragment.ts +40 -0
  2069. package/src/factory/jsx/createJsxJsxClosingFragment.ts +22 -0
  2070. package/src/factory/jsx/createJsxNamespacedName.ts +30 -0
  2071. package/src/factory/jsx/createJsxOpeningElement.ts +40 -0
  2072. package/src/factory/jsx/createJsxOpeningFragment.ts +21 -0
  2073. package/src/factory/jsx/createJsxSelfClosingElement.ts +39 -0
  2074. package/src/factory/jsx/createJsxSpreadAttribute.ts +24 -0
  2075. package/src/factory/jsx/createJsxText.ts +33 -0
  2076. package/src/factory/literals/createBigIntLiteral.ts +22 -12
  2077. package/src/factory/literals/createNoSubstitutionTemplateLiteral.ts +25 -14
  2078. package/src/factory/literals/createNumericLiteral.ts +22 -12
  2079. package/src/factory/literals/createStringLiteral.ts +30 -15
  2080. package/src/factory/literals/createStringLiteralFromNode.ts +30 -0
  2081. package/src/factory/literals/createTemplateHead.ts +28 -15
  2082. package/src/factory/literals/createTemplateMiddle.ts +24 -12
  2083. package/src/factory/literals/createTemplateTail.ts +24 -12
  2084. package/src/factory/names/createDecorator.ts +22 -12
  2085. package/src/factory/names/createFalse.ts +20 -11
  2086. package/src/factory/names/createIdentifier.ts +22 -12
  2087. package/src/factory/names/createLoopVariable.ts +28 -0
  2088. package/src/factory/names/createModifier.ts +26 -14
  2089. package/src/factory/names/createModifiersFromModifierFlags.ts +79 -0
  2090. package/src/factory/names/createNull.ts +20 -11
  2091. package/src/factory/names/createPrivateIdentifier.ts +22 -12
  2092. package/src/factory/names/createQualifiedName.ts +30 -17
  2093. package/src/factory/names/createSuper.ts +20 -11
  2094. package/src/factory/names/createTempVariable.ts +36 -0
  2095. package/src/factory/names/createThis.ts +20 -11
  2096. package/src/factory/names/createToken.ts +25 -14
  2097. package/src/factory/names/createTrue.ts +20 -11
  2098. package/src/factory/names/createUniqueName.ts +35 -0
  2099. package/src/factory/names/createUniquePrivateName.ts +34 -0
  2100. package/src/factory/statements/createBlock.ts +30 -15
  2101. package/src/factory/statements/createBreakStatement.ts +32 -17
  2102. package/src/factory/statements/createCaseBlock.ts +30 -13
  2103. package/src/factory/statements/createCaseClause.ts +29 -15
  2104. package/src/factory/statements/createCatchClause.ts +43 -28
  2105. package/src/factory/statements/createContinueStatement.ts +32 -17
  2106. package/src/factory/statements/createDebuggerStatement.ts +20 -11
  2107. package/src/factory/statements/createDefaultClause.ts +24 -13
  2108. package/src/factory/statements/createDoStatement.ts +28 -15
  2109. package/src/factory/statements/createEmptyStatement.ts +20 -11
  2110. package/src/factory/statements/createExpressionStatement.ts +23 -13
  2111. package/src/factory/statements/createForInStatement.ts +37 -23
  2112. package/src/factory/statements/createForOfStatement.ts +49 -26
  2113. package/src/factory/statements/createForStatement.ts +41 -25
  2114. package/src/factory/statements/createIfStatement.ts +34 -18
  2115. package/src/factory/statements/createLabeledStatement.ts +30 -17
  2116. package/src/factory/statements/createNotEmittedStatement.ts +20 -0
  2117. package/src/factory/statements/createReturnStatement.ts +28 -13
  2118. package/src/factory/statements/createSwitchStatement.ts +32 -15
  2119. package/src/factory/statements/createThrowStatement.ts +21 -12
  2120. package/src/factory/statements/createTryStatement.ts +37 -18
  2121. package/src/factory/statements/createVariableDeclaration.ts +48 -32
  2122. package/src/factory/statements/createVariableDeclarationList.ts +29 -17
  2123. package/src/factory/statements/createVariableStatement.ts +42 -29
  2124. package/src/factory/statements/createWhileStatement.ts +28 -15
  2125. package/src/factory/statements/createWithStatement.ts +28 -15
  2126. package/src/factory/types/createArrayTypeNode.ts +24 -12
  2127. package/src/factory/types/createCallSignature.ts +34 -23
  2128. package/src/factory/types/createConditionalTypeNode.ts +32 -20
  2129. package/src/factory/types/createConstructSignature.ts +33 -23
  2130. package/src/factory/types/createConstructorTypeNode.ts +37 -26
  2131. package/src/factory/types/createExpressionWithTypeArguments.ts +31 -20
  2132. package/src/factory/types/createFunctionTypeNode.ts +35 -23
  2133. package/src/factory/types/createImportTypeNode.ts +31 -20
  2134. package/src/factory/types/createIndexSignature.ts +33 -23
  2135. package/src/factory/types/createIndexedAccessTypeNode.ts +27 -16
  2136. package/src/factory/types/createInferTypeNode.ts +24 -13
  2137. package/src/factory/types/createIntersectionTypeNode.ts +24 -13
  2138. package/src/factory/types/createKeywordTypeNode.ts +25 -13
  2139. package/src/factory/types/createLiteralTypeNode.ts +38 -19
  2140. package/src/factory/types/createMappedTypeNode.ts +56 -37
  2141. package/src/factory/types/createMethodSignature.ts +53 -40
  2142. package/src/factory/types/createNamedTupleMember.ts +37 -26
  2143. package/src/factory/types/createNotEmittedTypeElement.ts +16 -0
  2144. package/src/factory/types/createOptionalTypeNode.ts +22 -12
  2145. package/src/factory/types/createParenthesizedType.ts +23 -13
  2146. package/src/factory/types/createPropertySignature.ts +44 -32
  2147. package/src/factory/types/createRestTypeNode.ts +21 -12
  2148. package/src/factory/types/createTemplateLiteralType.ts +33 -20
  2149. package/src/factory/types/createTemplateLiteralTypeSpan.ts +34 -21
  2150. package/src/factory/types/createThisTypeNode.ts +20 -10
  2151. package/src/factory/types/createTupleTypeNode.ts +24 -13
  2152. package/src/factory/types/createTypeLiteralNode.ts +25 -13
  2153. package/src/factory/types/createTypeOperatorNode.ts +28 -16
  2154. package/src/factory/types/createTypeParameterDeclaration.ts +43 -31
  2155. package/src/factory/types/createTypePredicateNode.ts +45 -32
  2156. package/src/factory/types/createTypeQueryNode.ts +22 -12
  2157. package/src/factory/types/createTypeReferenceNode.ts +32 -20
  2158. package/src/factory/types/createUnionTypeNode.ts +24 -13
  2159. package/src/index.ts +40 -30
  2160. package/src/internal/doc.ts +195 -195
  2161. package/src/syntax/NodeFlags.ts +19 -12
  2162. package/src/syntax/SyntaxKind.ts +114 -108
  2163. package/src/syntax/index.ts +2 -3
  2164. package/lib/syntax/tokenToString.d.ts +0 -3
  2165. package/lib/syntax/tokenToString.js +0 -95
  2166. package/lib/syntax/tokenToString.js.map +0 -1
  2167. package/lib/syntax/tokenToString.mjs +0 -94
  2168. package/lib/syntax/tokenToString.mjs.map +0 -1
  2169. package/src/syntax/tokenToString.ts +0 -99
package/src/TsPrinter.ts CHANGED
@@ -1,1174 +1,1585 @@
1
- import type { ModifierLike, Node, SourceFile, Statement } from "./ast";
2
- import type { Doc } from "./internal/doc";
3
- import {
4
- concat,
5
- group,
6
- hardline,
7
- ifBreak,
8
- indent,
9
- join,
10
- line,
11
- printDocToString,
12
- softline,
13
- } from "./internal/doc";
14
- import { tokenToString } from "./syntax";
15
-
16
- /** Options for {@link TsPrinter}. */
17
- export interface TsPrinterOptions {
18
- /** Maximum line width before groups break. Defaults to `80`. */
19
- printWidth?: number;
20
- /** Indentation unit. Defaults to two spaces. */
21
- indent?: string;
22
- /** New line sequence. Defaults to `"\n"` (LineFeed). */
23
- newLine?: string;
24
- }
25
-
26
- const escapeString = (text: string, singleQuote?: boolean): string => {
27
- const escaped: string = text
28
- .replace(/\\/g, "\\\\")
29
- .replace(/\n/g, "\\n")
30
- .replace(/\r/g, "\\r")
31
- .replace(/\t/g, "\\t");
32
- return singleQuote === true
33
- ? `'${escaped.replace(/'/g, "\\'")}'`
34
- : `"${escaped.replace(/"/g, '\\"')}"`;
35
- };
36
-
37
- /**
38
- * Printer turning {@link factory} produced AST nodes into TypeScript source
39
- * text.
40
- *
41
- * The printer is a width-aware pretty-printer: it builds a Prettier-style
42
- * document for the {@link Node} discriminated union and lays it out against
43
- * {@link TsPrinterOptions.printWidth}. Lists (arguments, parameters, generic
44
- * arguments, array / object members, ...) print on one line when they fit and
45
- * break onto indented lines — with trailing commas — when they do not. Every
46
- * `node.kind` narrows to its concrete type, so the walk is fully type-checked;
47
- * no `typescript` module is involved.
48
- *
49
- * @author Jeongho Nam - https://github.com/samchon
50
- * @example
51
- * ```typescript
52
- * import factory, { TsPrinter } from "@ttsc/factory";
53
- *
54
- * const printer = new TsPrinter({ printWidth: 80, indent: " " });
55
- * printer.print(factory.createStringLiteral("hello")); // "hello"
56
- * ```;
57
- */
58
- export class TsPrinter {
59
- private readonly printWidth_: number;
60
- private readonly indent_: string;
61
- private readonly newLine_: string;
62
-
63
- public constructor(options: TsPrinterOptions = {}) {
64
- this.printWidth_ = options.printWidth ?? 80;
65
- this.indent_ = options.indent ?? " ";
66
- this.newLine_ = options.newLine ?? "\n";
67
- }
68
-
69
- /** Print a single node (or a whole {@link SourceFile}) into source text. */
70
- public print(node: Node): string {
71
- return this.layout(this.emit(node));
72
- }
73
-
74
- /** Print multiple nodes, joining them with new lines. */
75
- public printNodes(nodes: readonly Node[]): string {
76
- return this.layout(
77
- join(
78
- hardline,
79
- nodes.map((n) => this.emit(n)),
80
- ),
81
- );
82
- }
83
-
84
- /**
85
- * Print an entire source file.
86
- *
87
- * @param sourceFile A {@link SourceFile}. When omitted, one is composed from
88
- * the given `statements`.
89
- * @param statements Statements to compose a source file from when no
90
- * `sourceFile` is provided.
91
- */
92
- public printFile(
93
- sourceFile?: SourceFile,
94
- statements: readonly Statement[] = [],
95
- ): string {
96
- const list: readonly Statement[] = sourceFile
97
- ? sourceFile.statements
98
- : statements;
99
- return (
100
- this.layout(
101
- join(
102
- hardline,
103
- list.map((s) => this.emit(s)),
104
- ),
105
- ) + this.newLine_
106
- );
107
- }
108
-
109
- /* ----------------------------------------------------------------------- */
110
- /* INTERNAL */
111
- /* ----------------------------------------------------------------------- */
112
- private layout(doc: Doc): string {
113
- return printDocToString(doc, {
114
- printWidth: this.printWidth_,
115
- indent: this.indent_,
116
- newLine: this.newLine_,
117
- });
118
- }
119
-
120
- /** Comma-separated, width-aware delimited list (`(...)`, `[...]`, `<...>`). */
121
- private delim(
122
- open: string,
123
- items: Doc[],
124
- close: string,
125
- opts: {
126
- space?: boolean;
127
- trailingComma?: boolean;
128
- forceBreak?: boolean;
129
- } = {},
130
- ): Doc {
131
- if (items.length === 0) return open + close;
132
- const ln = opts.space ? line : softline;
133
- return group(
134
- concat([
135
- open,
136
- indent(concat([ln, join(concat([",", line]), items)])),
137
- opts.trailingComma ? ifBreak(",") : "",
138
- ln,
139
- close,
140
- ]),
141
- opts.forceBreak === true,
142
- );
143
- }
144
-
145
- /** Semicolon-separated member block (`{ a; b }`), e.g. interfaces. */
146
- private memberBlock(items: Doc[], forceBreak: boolean): Doc {
147
- if (items.length === 0) return "{}";
148
- return group(
149
- concat([
150
- "{",
151
- indent(concat([line, join(concat([";", line]), items)])),
152
- ifBreak(";"),
153
- line,
154
- "}",
155
- ]),
156
- forceBreak,
157
- );
158
- }
159
-
160
- /** Always-broken statement block (`{ ... }`). */
161
- private statementBlock(items: Doc[]): Doc {
162
- if (items.length === 0) return "{}";
163
- return concat([
164
- "{",
165
- indent(concat([hardline, join(hardline, items)])),
166
- hardline,
167
- "}",
168
- ]);
169
- }
170
-
171
- private typeArguments(args: readonly Node[] | undefined): Doc {
172
- return args && args.length
173
- ? this.delim(
174
- "<",
175
- args.map((a) => this.emit(a)),
176
- ">",
177
- {
178
- trailingComma: true,
179
- },
180
- )
181
- : "";
182
- }
183
-
184
- private params(params: readonly Node[]): Doc {
185
- return this.delim(
186
- "(",
187
- params.map((p) => this.emit(p)),
188
- ")",
189
- {
190
- trailingComma: true,
191
- },
192
- );
193
- }
194
-
195
- private modifiers(
196
- mods: readonly ModifierLike[] | undefined,
197
- decoratorsOnNewLine: boolean,
198
- ): Doc {
199
- if (!mods || mods.length === 0) return "";
200
- const decorators = mods.filter((m) => m.kind === "Decorator");
201
- const tokens = mods.filter((m) => m.kind !== "Decorator");
202
- const parts: Doc[] = [];
203
- const gap: Doc = decoratorsOnNewLine ? hardline : " ";
204
- if (decorators.length)
205
- parts.push(
206
- join(
207
- gap,
208
- decorators.map((d) => this.emit(d)),
209
- ),
210
- gap,
211
- );
212
- if (tokens.length)
213
- parts.push(
214
- join(
215
- " ",
216
- tokens.map((t) => this.emit(t)),
217
- ),
218
- " ",
219
- );
220
- return concat(parts);
221
- }
222
-
223
- private heritage(clauses: readonly Node[] | undefined): Doc {
224
- return clauses && clauses.length
225
- ? concat([
226
- " ",
227
- join(
228
- " ",
229
- clauses.map((c) => this.emit(c)),
230
- ),
231
- ])
232
- : "";
233
- }
234
-
235
- private optType(type: Node | undefined): Doc {
236
- return type ? concat([": ", this.emit(type)]) : "";
237
- }
238
-
239
- private optBody(body: Node | undefined): Doc {
240
- return body ? concat([" ", this.emit(body)]) : ";";
241
- }
242
-
243
- private emit(node: Node): Doc {
244
- switch (node.kind) {
245
- /* names & tokens */
246
- case "Identifier":
247
- return node.text;
248
- case "PrivateIdentifier":
249
- return node.text;
250
- case "QualifiedName":
251
- return concat([this.emit(node.left), ".", this.emit(node.right)]);
252
- case "Token":
253
- return tokenToString(node.token);
254
- case "Decorator":
255
- return concat(["@", this.emit(node.expression)]);
256
-
257
- /* literals */
258
- case "StringLiteral":
259
- return escapeString(node.text, node.singleQuote);
260
- case "NumericLiteral":
261
- return node.text;
262
- case "BigIntLiteral":
263
- return node.text;
264
-
265
- /* expressions */
266
- case "ArrayLiteralExpression":
267
- return this.delim(
268
- "[",
269
- node.elements.map((e) => this.emit(e)),
270
- "]",
271
- { trailingComma: true, forceBreak: node.multiLine === true },
272
- );
273
- case "ObjectLiteralExpression":
274
- return this.delim(
275
- "{",
276
- node.properties.map((p) => this.emit(p)),
277
- "}",
278
- {
279
- space: true,
280
- trailingComma: true,
281
- forceBreak: node.multiLine === true,
282
- },
283
- );
284
- case "PropertyAssignment":
285
- return concat([
286
- this.emit(node.name),
287
- ": ",
288
- this.emit(node.initializer),
289
- ]);
290
- case "ShorthandPropertyAssignment":
291
- return concat([
292
- this.emit(node.name),
293
- node.objectAssignmentInitializer
294
- ? concat([" = ", this.emit(node.objectAssignmentInitializer)])
295
- : "",
296
- ]);
297
- case "SpreadAssignment":
298
- return concat(["...", this.emit(node.expression)]);
299
- case "PropertyAccessExpression":
300
- return concat([this.emit(node.expression), ".", this.emit(node.name)]);
301
- case "ElementAccessExpression":
302
- return concat([
303
- this.emit(node.expression),
304
- "[",
305
- this.emit(node.argumentExpression),
306
- "]",
307
- ]);
308
- case "CallExpression":
309
- return concat([
310
- this.emit(node.expression),
311
- this.typeArguments(node.typeArguments),
312
- this.params(node.arguments),
313
- ]);
314
- case "NewExpression":
315
- return concat([
316
- "new ",
317
- this.emit(node.expression),
318
- this.typeArguments(node.typeArguments),
319
- this.params(node.arguments ?? []),
320
- ]);
321
- case "ParenthesizedExpression":
322
- return concat(["(", this.emit(node.expression), ")"]);
323
- case "BinaryExpression":
324
- return group(
325
- concat([
326
- this.emit(node.left),
327
- " ",
328
- tokenToString(node.operator),
329
- indent(concat([line, this.emit(node.right)])),
330
- ]),
331
- );
332
- case "PrefixUnaryExpression":
333
- return concat([tokenToString(node.operator), this.emit(node.operand)]);
334
- case "PostfixUnaryExpression":
335
- return concat([this.emit(node.operand), tokenToString(node.operator)]);
336
- case "ConditionalExpression":
337
- return group(
338
- concat([
339
- this.emit(node.condition),
340
- indent(
341
- concat([
342
- line,
343
- "? ",
344
- this.emit(node.whenTrue),
345
- line,
346
- ": ",
347
- this.emit(node.whenFalse),
348
- ]),
349
- ),
350
- ]),
351
- );
352
- case "ArrowFunction":
353
- return concat([
354
- this.modifiers(node.modifiers, false),
355
- this.typeArguments(node.typeParameters),
356
- this.params(node.parameters),
357
- this.optType(node.type),
358
- " => ",
359
- this.emit(node.body),
360
- ]);
361
- case "FunctionExpression":
362
- return concat([
363
- this.modifiers(node.modifiers, false),
364
- "function",
365
- node.asteriskToken ? "*" : "",
366
- node.name ? concat([" ", this.emit(node.name)]) : " ",
367
- this.typeArguments(node.typeParameters),
368
- this.params(node.parameters),
369
- this.optType(node.type),
370
- " ",
371
- this.emit(node.body),
372
- ]);
373
- case "AsExpression":
374
- return concat([
375
- this.emit(node.expression),
376
- " as ",
377
- this.emit(node.type),
378
- ]);
379
- case "SatisfiesExpression":
380
- return concat([
381
- this.emit(node.expression),
382
- " satisfies ",
383
- this.emit(node.type),
384
- ]);
385
- case "NonNullExpression":
386
- return concat([this.emit(node.expression), "!"]);
387
- case "SpreadElement":
388
- return concat(["...", this.emit(node.expression)]);
389
- case "AwaitExpression":
390
- return concat(["await ", this.emit(node.expression)]);
391
- case "TypeOfExpression":
392
- return concat(["typeof ", this.emit(node.expression)]);
393
-
394
- /* types */
395
- case "KeywordTypeNode":
396
- return tokenToString(node.keyword);
397
- case "TypeReferenceNode":
398
- return concat([
399
- this.emit(node.typeName),
400
- this.typeArguments(node.typeArguments),
401
- ]);
402
- case "ArrayTypeNode":
403
- return concat([this.emit(node.elementType), "[]"]);
404
- case "UnionTypeNode":
405
- return this.binaryType(
406
- "|",
407
- node.types.map((t) => this.emit(t)),
408
- );
409
- case "IntersectionTypeNode":
410
- return this.binaryType(
411
- "&",
412
- node.types.map((t) => this.emit(t)),
413
- );
414
- case "LiteralTypeNode":
415
- return this.emit(node.literal);
416
- case "TypeLiteralNode":
417
- return this.memberBlock(
418
- node.members.map((m) => this.emit(m)),
419
- false,
420
- );
421
- case "FunctionTypeNode":
422
- return concat([
423
- this.typeArguments(node.typeParameters),
424
- this.params(node.parameters),
425
- " => ",
426
- this.emit(node.type),
427
- ]);
428
- case "TupleTypeNode":
429
- return this.delim(
430
- "[",
431
- node.elements.map((e) => this.emit(e)),
432
- "]",
433
- {
434
- trailingComma: true,
435
- },
436
- );
437
- case "ParenthesizedTypeNode":
438
- return concat(["(", this.emit(node.type), ")"]);
439
- case "TypeOperatorNode":
440
- return concat([
441
- tokenToString(node.operator),
442
- " ",
443
- this.emit(node.type),
444
- ]);
445
- case "IndexedAccessTypeNode":
446
- return concat([
447
- this.emit(node.objectType),
448
- "[",
449
- this.emit(node.indexType),
450
- "]",
451
- ]);
452
- case "TypeQueryNode":
453
- return concat(["typeof ", this.emit(node.exprName)]);
454
- case "ExpressionWithTypeArguments":
455
- return concat([
456
- this.emit(node.expression),
457
- this.typeArguments(node.typeArguments),
458
- ]);
459
- case "PropertySignature":
460
- return concat([
461
- this.modifiers(node.modifiers, false),
462
- this.emit(node.name),
463
- node.questionToken ? "?" : "",
464
- this.optType(node.type),
465
- ]);
466
- case "IndexSignature":
467
- return concat([
468
- this.modifiers(node.modifiers, false),
469
- "[",
470
- join(
471
- ", ",
472
- node.parameters.map((p) => this.emit(p)),
473
- ),
474
- "]: ",
475
- this.emit(node.type),
476
- ]);
477
- case "MethodSignature":
478
- return concat([
479
- this.modifiers(node.modifiers, false),
480
- this.emit(node.name),
481
- node.questionToken ? "?" : "",
482
- this.typeArguments(node.typeParameters),
483
- this.params(node.parameters),
484
- this.optType(node.type),
485
- ]);
486
- case "TypeParameterDeclaration":
487
- return concat([
488
- this.modifiers(node.modifiers, false),
489
- this.emit(node.name),
490
- node.constraint
491
- ? concat([" extends ", this.emit(node.constraint)])
492
- : "",
493
- node.default ? concat([" = ", this.emit(node.default)]) : "",
494
- ]);
495
-
496
- /* support */
497
- case "ParameterDeclaration":
498
- return concat([
499
- this.modifiers(node.modifiers, false),
500
- node.dotDotDotToken ? "..." : "",
501
- this.emit(node.name),
502
- node.questionToken ? "?" : "",
503
- this.optType(node.type),
504
- node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
505
- ]);
506
- case "HeritageClause":
507
- return concat([
508
- tokenToString(node.token),
509
- " ",
510
- join(
511
- ", ",
512
- node.types.map((t) => this.emit(t)),
513
- ),
514
- ]);
515
-
516
- /* statements */
517
- case "VariableStatement":
518
- return concat([
519
- this.modifiers(node.modifiers, false),
520
- this.emit(node.declarationList),
521
- ";",
522
- ]);
523
- case "VariableDeclarationList": {
524
- const keyword: string =
525
- node.flags === 2 ? "const" : node.flags === 1 ? "let" : "var";
526
- return concat([
527
- keyword,
528
- " ",
529
- join(
530
- ", ",
531
- node.declarations.map((d) => this.emit(d)),
532
- ),
533
- ]);
534
- }
535
- case "VariableDeclaration":
536
- return concat([
537
- this.emit(node.name),
538
- node.exclamationToken ? "!" : "",
539
- this.optType(node.type),
540
- node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
541
- ]);
542
- case "ExpressionStatement":
543
- return concat([this.emit(node.expression), ";"]);
544
- case "ReturnStatement":
545
- return node.expression
546
- ? concat(["return ", this.emit(node.expression), ";"])
547
- : "return;";
548
- case "ThrowStatement":
549
- return concat(["throw ", this.emit(node.expression), ";"]);
550
- case "IfStatement":
551
- return concat([
552
- "if (",
553
- this.emit(node.expression),
554
- ") ",
555
- this.emit(node.thenStatement),
556
- node.elseStatement
557
- ? concat([" else ", this.emit(node.elseStatement)])
558
- : "",
559
- ]);
560
- case "Block":
561
- return this.statementBlock(node.statements.map((s) => this.emit(s)));
562
-
563
- /* declarations */
564
- case "FunctionDeclaration":
565
- return concat([
566
- this.modifiers(node.modifiers, true),
567
- "function",
568
- node.asteriskToken ? "*" : "",
569
- " ",
570
- node.name ? this.emit(node.name) : "",
571
- this.typeArguments(node.typeParameters),
572
- this.params(node.parameters),
573
- this.optType(node.type),
574
- this.optBody(node.body),
575
- ]);
576
- case "ClassDeclaration":
577
- return concat([
578
- this.modifiers(node.modifiers, true),
579
- "class",
580
- node.name ? concat([" ", this.emit(node.name)]) : "",
581
- this.typeArguments(node.typeParameters),
582
- this.heritage(node.heritageClauses),
583
- " ",
584
- this.statementBlock(node.members.map((m) => this.emit(m))),
585
- ]);
586
- case "PropertyDeclaration":
587
- return concat([
588
- this.modifiers(node.modifiers, true),
589
- this.emit(node.name),
590
- node.questionOrExclamationToken
591
- ? this.emit(node.questionOrExclamationToken)
592
- : "",
593
- this.optType(node.type),
594
- node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
595
- ";",
596
- ]);
597
- case "MethodDeclaration":
598
- return concat([
599
- this.modifiers(node.modifiers, true),
600
- node.asteriskToken ? "*" : "",
601
- this.emit(node.name),
602
- node.questionToken ? "?" : "",
603
- this.typeArguments(node.typeParameters),
604
- this.params(node.parameters),
605
- this.optType(node.type),
606
- this.optBody(node.body),
607
- ]);
608
- case "ConstructorDeclaration":
609
- return concat([
610
- this.modifiers(node.modifiers, true),
611
- "constructor",
612
- this.params(node.parameters),
613
- this.optBody(node.body),
614
- ]);
615
- case "GetAccessorDeclaration":
616
- return concat([
617
- this.modifiers(node.modifiers, true),
618
- "get ",
619
- this.emit(node.name),
620
- this.params(node.parameters),
621
- this.optType(node.type),
622
- this.optBody(node.body),
623
- ]);
624
- case "SetAccessorDeclaration":
625
- return concat([
626
- this.modifiers(node.modifiers, true),
627
- "set ",
628
- this.emit(node.name),
629
- this.params(node.parameters),
630
- this.optBody(node.body),
631
- ]);
632
- case "InterfaceDeclaration":
633
- return concat([
634
- this.modifiers(node.modifiers, true),
635
- "interface ",
636
- this.emit(node.name),
637
- this.typeArguments(node.typeParameters),
638
- this.heritage(node.heritageClauses),
639
- " ",
640
- this.memberBlock(
641
- node.members.map((m) => this.emit(m)),
642
- true,
643
- ),
644
- ]);
645
- case "TypeAliasDeclaration":
646
- return concat([
647
- this.modifiers(node.modifiers, true),
648
- "type ",
649
- this.emit(node.name),
650
- this.typeArguments(node.typeParameters),
651
- " = ",
652
- this.emit(node.type),
653
- ";",
654
- ]);
655
- case "EnumDeclaration":
656
- return concat([
657
- this.modifiers(node.modifiers, true),
658
- "enum ",
659
- this.emit(node.name),
660
- " ",
661
- node.members.length === 0
662
- ? "{}"
663
- : concat([
664
- "{",
665
- indent(
666
- concat([
667
- hardline,
668
- join(
669
- concat([",", hardline]),
670
- node.members.map((m) => this.emit(m)),
671
- ),
672
- ",",
673
- ]),
674
- ),
675
- hardline,
676
- "}",
677
- ]),
678
- ]);
679
- case "EnumMember":
680
- return concat([
681
- this.emit(node.name),
682
- node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
683
- ]);
684
-
685
- /* imports & exports */
686
- case "ImportDeclaration":
687
- return concat([
688
- this.modifiers(node.modifiers, false),
689
- "import ",
690
- node.importClause
691
- ? concat([this.emit(node.importClause), " from "])
692
- : "",
693
- this.emit(node.moduleSpecifier),
694
- ";",
695
- ]);
696
- case "ImportClause": {
697
- const named: Doc[] = [];
698
- if (node.name) named.push(this.emit(node.name));
699
- if (node.namedBindings) named.push(this.emit(node.namedBindings));
700
- return concat([node.isTypeOnly ? "type " : "", join(", ", named)]);
701
- }
702
- case "NamedImports":
703
- return this.delim(
704
- "{",
705
- node.elements.map((e) => this.emit(e)),
706
- "}",
707
- { space: true, trailingComma: true },
708
- );
709
- case "ImportSpecifier":
710
- return concat([
711
- node.isTypeOnly ? "type " : "",
712
- node.propertyName
713
- ? concat([this.emit(node.propertyName), " as "])
714
- : "",
715
- this.emit(node.name),
716
- ]);
717
- case "NamespaceImport":
718
- return concat(["* as ", this.emit(node.name)]);
719
- case "ExportDeclaration":
720
- return concat([
721
- this.modifiers(node.modifiers, false),
722
- "export ",
723
- node.isTypeOnly ? "type " : "",
724
- node.exportClause ? this.emit(node.exportClause) : "*",
725
- node.moduleSpecifier
726
- ? concat([" from ", this.emit(node.moduleSpecifier)])
727
- : "",
728
- ";",
729
- ]);
730
- case "NamedExports":
731
- return this.delim(
732
- "{",
733
- node.elements.map((e) => this.emit(e)),
734
- "}",
735
- { space: true, trailingComma: true },
736
- );
737
- case "ExportSpecifier":
738
- return concat([
739
- node.isTypeOnly ? "type " : "",
740
- node.propertyName
741
- ? concat([this.emit(node.propertyName), " as "])
742
- : "",
743
- this.emit(node.name),
744
- ]);
745
- case "ExportAssignment":
746
- return concat([
747
- this.modifiers(node.modifiers, false),
748
- node.isExportEquals ? "export = " : "export default ",
749
- this.emit(node.expression),
750
- ";",
751
- ]);
752
-
753
- /* source file */
754
- case "SourceFile":
755
- return concat([
756
- join(
757
- hardline,
758
- node.statements.map((s) => this.emit(s)),
759
- ),
760
- hardline,
761
- ]);
762
-
763
- /* loops & flow */
764
- case "ForStatement":
765
- return concat([
766
- "for (",
767
- node.initializer ? this.emit(node.initializer) : "",
768
- "; ",
769
- node.condition ? this.emit(node.condition) : "",
770
- "; ",
771
- node.incrementor ? this.emit(node.incrementor) : "",
772
- ") ",
773
- this.emit(node.statement),
774
- ]);
775
- case "ForInStatement":
776
- return concat([
777
- "for (",
778
- this.emit(node.initializer),
779
- " in ",
780
- this.emit(node.expression),
781
- ") ",
782
- this.emit(node.statement),
783
- ]);
784
- case "ForOfStatement":
785
- return concat([
786
- "for ",
787
- node.awaitModifier ? "await " : "",
788
- "(",
789
- this.emit(node.initializer),
790
- " of ",
791
- this.emit(node.expression),
792
- ") ",
793
- this.emit(node.statement),
794
- ]);
795
- case "WhileStatement":
796
- return concat([
797
- "while (",
798
- this.emit(node.expression),
799
- ") ",
800
- this.emit(node.statement),
801
- ]);
802
- case "DoStatement":
803
- return concat([
804
- "do ",
805
- this.emit(node.statement),
806
- " while (",
807
- this.emit(node.expression),
808
- ");",
809
- ]);
810
- case "SwitchStatement":
811
- return concat([
812
- "switch (",
813
- this.emit(node.expression),
814
- ") ",
815
- this.emit(node.caseBlock),
816
- ]);
817
- case "CaseBlock":
818
- return node.clauses.length === 0
819
- ? "{}"
820
- : concat([
821
- "{",
822
- indent(
823
- concat([
824
- hardline,
825
- join(
826
- hardline,
827
- node.clauses.map((c) => this.emit(c)),
828
- ),
829
- ]),
830
- ),
831
- hardline,
832
- "}",
833
- ]);
834
- case "CaseClause":
835
- return concat([
836
- "case ",
837
- this.emit(node.expression),
838
- ":",
839
- node.statements.length
840
- ? indent(
841
- concat([
842
- hardline,
843
- join(
844
- hardline,
845
- node.statements.map((s) => this.emit(s)),
846
- ),
847
- ]),
848
- )
849
- : "",
850
- ]);
851
- case "DefaultClause":
852
- return concat([
853
- "default:",
854
- node.statements.length
855
- ? indent(
856
- concat([
857
- hardline,
858
- join(
859
- hardline,
860
- node.statements.map((s) => this.emit(s)),
861
- ),
862
- ]),
863
- )
864
- : "",
865
- ]);
866
- case "BreakStatement":
867
- return node.label
868
- ? concat(["break ", this.emit(node.label), ";"])
869
- : "break;";
870
- case "ContinueStatement":
871
- return node.label
872
- ? concat(["continue ", this.emit(node.label), ";"])
873
- : "continue;";
874
- case "TryStatement":
875
- return concat([
876
- "try ",
877
- this.emit(node.tryBlock),
878
- node.catchClause ? concat([" ", this.emit(node.catchClause)]) : "",
879
- node.finallyBlock
880
- ? concat([" finally ", this.emit(node.finallyBlock)])
881
- : "",
882
- ]);
883
- case "CatchClause":
884
- return node.variableDeclaration
885
- ? concat([
886
- "catch (",
887
- this.emit(node.variableDeclaration),
888
- ") ",
889
- this.emit(node.block),
890
- ])
891
- : concat(["catch ", this.emit(node.block)]);
892
- case "LabeledStatement":
893
- return concat([this.emit(node.label), ": ", this.emit(node.statement)]);
894
- case "WithStatement":
895
- return concat([
896
- "with (",
897
- this.emit(node.expression),
898
- ") ",
899
- this.emit(node.statement),
900
- ]);
901
- case "DebuggerStatement":
902
- return "debugger;";
903
- case "EmptyStatement":
904
- return ";";
905
-
906
- /* modules & namespaces */
907
- case "ModuleDeclaration":
908
- return concat([
909
- this.modifiers(node.modifiers, true),
910
- node.name.kind === "StringLiteral" ? "module " : "namespace ",
911
- this.emit(node.name),
912
- node.body ? concat([" ", this.emit(node.body)]) : ";",
913
- ]);
914
- case "ModuleBlock":
915
- return this.statementBlock(node.statements.map((s) => this.emit(s)));
916
- case "ClassStaticBlockDeclaration":
917
- return concat(["static ", this.emit(node.body)]);
918
- case "ImportEqualsDeclaration":
919
- return concat([
920
- this.modifiers(node.modifiers, false),
921
- "import ",
922
- node.isTypeOnly ? "type " : "",
923
- this.emit(node.name),
924
- " = ",
925
- this.emit(node.moduleReference),
926
- ";",
927
- ]);
928
- case "ExternalModuleReference":
929
- return concat(["require(", this.emit(node.expression), ")"]);
930
- case "NamespaceExportDeclaration":
931
- return concat(["export as namespace ", this.emit(node.name), ";"]);
932
- case "SemicolonClassElement":
933
- return ";";
934
- case "NamespaceExport":
935
- return concat(["* as ", this.emit(node.name)]);
936
-
937
- /* advanced types */
938
- case "ThisTypeNode":
939
- return "this";
940
- case "ConstructorTypeNode":
941
- return concat([
942
- this.modifiers(node.modifiers, false),
943
- "new ",
944
- this.typeArguments(node.typeParameters),
945
- this.params(node.parameters),
946
- " => ",
947
- this.emit(node.type),
948
- ]);
949
- case "TypePredicateNode":
950
- return concat([
951
- node.assertsModifier ? "asserts " : "",
952
- this.emit(node.parameterName),
953
- node.type ? concat([" is ", this.emit(node.type)]) : "",
954
- ]);
955
- case "ConditionalTypeNode":
956
- return concat([
957
- this.emit(node.checkType),
958
- " extends ",
959
- this.emit(node.extendsType),
960
- " ? ",
961
- this.emit(node.trueType),
962
- " : ",
963
- this.emit(node.falseType),
964
- ]);
965
- case "InferTypeNode":
966
- return concat(["infer ", this.emit(node.typeParameter)]);
967
- case "MappedTypeNode": {
968
- const ro = node.readonlyToken
969
- ? tokenToString(node.readonlyToken.token) === "readonly"
970
- ? "readonly "
971
- : `${tokenToString(node.readonlyToken.token)}readonly `
972
- : "";
973
- const q = node.questionToken
974
- ? tokenToString(node.questionToken.token) === "?"
975
- ? "?"
976
- : `${tokenToString(node.questionToken.token)}?`
977
- : "";
978
- return concat([
979
- "{ ",
980
- ro,
981
- "[",
982
- this.emit(node.typeParameter.name),
983
- " in ",
984
- node.typeParameter.constraint
985
- ? this.emit(node.typeParameter.constraint)
986
- : "",
987
- node.nameType ? concat([" as ", this.emit(node.nameType)]) : "",
988
- "]",
989
- q,
990
- node.type ? concat([": ", this.emit(node.type)]) : "",
991
- " }",
992
- ]);
993
- }
994
- case "TemplateLiteralType":
995
- return concat([
996
- this.emit(node.head),
997
- concat(node.templateSpans.map((s) => this.emit(s))),
998
- ]);
999
- case "TemplateLiteralTypeSpan":
1000
- return concat([this.emit(node.type), this.emit(node.literal)]);
1001
- case "NamedTupleMember":
1002
- return concat([
1003
- node.dotDotDotToken ? "..." : "",
1004
- this.emit(node.name),
1005
- node.questionToken ? "?" : "",
1006
- ": ",
1007
- this.emit(node.type),
1008
- ]);
1009
- case "OptionalTypeNode":
1010
- return concat([this.emit(node.type), "?"]);
1011
- case "RestTypeNode":
1012
- return concat(["...", this.emit(node.type)]);
1013
- case "ImportTypeNode":
1014
- return concat([
1015
- node.isTypeOf ? "typeof " : "",
1016
- "import(",
1017
- this.emit(node.argument),
1018
- ")",
1019
- node.qualifier ? concat([".", this.emit(node.qualifier)]) : "",
1020
- this.typeArguments(node.typeArguments),
1021
- ]);
1022
- case "CallSignature":
1023
- return concat([
1024
- this.typeArguments(node.typeParameters),
1025
- this.params(node.parameters),
1026
- this.optType(node.type),
1027
- ]);
1028
- case "ConstructSignature":
1029
- return concat([
1030
- "new ",
1031
- this.typeArguments(node.typeParameters),
1032
- this.params(node.parameters),
1033
- this.optType(node.type),
1034
- ]);
1035
-
1036
- /* template literals */
1037
- case "TemplateHead":
1038
- return concat(["`", node.text, "${"]);
1039
- case "TemplateMiddle":
1040
- return concat(["}", node.text, "${"]);
1041
- case "TemplateTail":
1042
- return concat(["}", node.text, "`"]);
1043
- case "NoSubstitutionTemplateLiteral":
1044
- return concat(["`", node.text, "`"]);
1045
-
1046
- /* template & misc expressions */
1047
- case "TemplateExpression":
1048
- return concat([
1049
- this.emit(node.head),
1050
- concat(node.templateSpans.map((s) => this.emit(s))),
1051
- ]);
1052
- case "TemplateSpan":
1053
- return concat([this.emit(node.expression), this.emit(node.literal)]);
1054
- case "TaggedTemplateExpression":
1055
- return concat([
1056
- this.emit(node.tag),
1057
- this.typeArguments(node.typeArguments),
1058
- this.emit(node.template),
1059
- ]);
1060
- case "YieldExpression":
1061
- return concat([
1062
- "yield",
1063
- node.asteriskToken ? "*" : "",
1064
- node.expression ? concat([" ", this.emit(node.expression)]) : "",
1065
- ]);
1066
- case "DeleteExpression":
1067
- return concat(["delete ", this.emit(node.expression)]);
1068
- case "VoidExpression":
1069
- return concat(["void ", this.emit(node.expression)]);
1070
- case "RegularExpressionLiteral":
1071
- return node.text;
1072
- case "ClassExpression":
1073
- return concat([
1074
- this.modifiers(node.modifiers, true),
1075
- "class",
1076
- node.name ? concat([" ", this.emit(node.name)]) : "",
1077
- this.typeArguments(node.typeParameters),
1078
- this.heritage(node.heritageClauses),
1079
- " ",
1080
- this.statementBlock(node.members.map((m) => this.emit(m))),
1081
- ]);
1082
- case "MetaProperty":
1083
- return concat([
1084
- tokenToString(node.keywordToken),
1085
- ".",
1086
- this.emit(node.name),
1087
- ]);
1088
- case "CommaListExpression":
1089
- return join(
1090
- ", ",
1091
- node.elements.map((e) => this.emit(e)),
1092
- );
1093
- case "ComputedPropertyName":
1094
- return concat(["[", this.emit(node.expression), "]"]);
1095
- case "OmittedExpression":
1096
- return "";
1097
- case "BindingElement":
1098
- return concat([
1099
- node.dotDotDotToken ? "..." : "",
1100
- node.propertyName ? concat([this.emit(node.propertyName), ": "]) : "",
1101
- this.emit(node.name),
1102
- node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
1103
- ]);
1104
- case "ObjectBindingPattern":
1105
- return this.delim(
1106
- "{",
1107
- node.elements.map((e) => this.emit(e)),
1108
- "}",
1109
- { space: true, trailingComma: true },
1110
- );
1111
- case "ArrayBindingPattern":
1112
- return this.delim(
1113
- "[",
1114
- node.elements.map((e) => this.emit(e)),
1115
- "]",
1116
- { trailingComma: true },
1117
- );
1118
- case "TypeAssertion":
1119
- return concat([
1120
- "<",
1121
- this.emit(node.type),
1122
- ">",
1123
- this.emit(node.expression),
1124
- ]);
1125
- case "PropertyAccessChain":
1126
- return concat([
1127
- this.emit(node.expression),
1128
- node.questionDotToken ? "?." : ".",
1129
- this.emit(node.name),
1130
- ]);
1131
- case "ElementAccessChain":
1132
- return concat([
1133
- this.emit(node.expression),
1134
- node.questionDotToken ? "?." : "",
1135
- "[",
1136
- this.emit(node.argumentExpression),
1137
- "]",
1138
- ]);
1139
- case "CallChain":
1140
- return concat([
1141
- this.emit(node.expression),
1142
- node.questionDotToken ? "?." : "",
1143
- this.typeArguments(node.typeArguments),
1144
- this.params(node.arguments),
1145
- ]);
1146
- case "NonNullChain":
1147
- return concat([this.emit(node.expression), "!"]);
1148
-
1149
- default:
1150
- return this.unsupported(node);
1151
- }
1152
- }
1153
-
1154
- /** Width-aware `|` / `&` type list with leading-operator breaks. */
1155
- private binaryType(operator: string, parts: Doc[]): Doc {
1156
- if (parts.length === 1) return parts[0]!;
1157
- return group(
1158
- indent(
1159
- concat([
1160
- ifBreak(concat([line, operator, " "])),
1161
- join(concat([line, operator, " "]), parts),
1162
- ]),
1163
- ),
1164
- );
1165
- }
1166
-
1167
- private unsupported(node: never): never {
1168
- throw new Error(
1169
- `@ttsc/factory: TsPrinter cannot print node of kind "${
1170
- (node as Node).kind
1171
- }".`,
1172
- );
1173
- }
1174
- }
1
+ import type { ModifierLike, Node, SourceFile, Statement } from "./ast";
2
+ import type { SynthesizedComment } from "./comments";
3
+ import {
4
+ getSyntheticLeadingComments,
5
+ getSyntheticTrailingComments,
6
+ } from "./comments";
7
+ import type { Doc } from "./internal/doc";
8
+ import {
9
+ concat,
10
+ group,
11
+ hardline,
12
+ ifBreak,
13
+ indent,
14
+ join,
15
+ line,
16
+ printDocToString,
17
+ softline,
18
+ } from "./internal/doc";
19
+ import { NodeFlags, SyntaxKind } from "./syntax";
20
+
21
+ /** Options for {@link TsPrinter}. */
22
+ export interface TsPrinterOptions {
23
+ /** Maximum line width before groups break. Defaults to `80`. */
24
+ printWidth?: number;
25
+ /** Indentation unit. Defaults to two spaces. */
26
+ indent?: string;
27
+ /** New line sequence. Defaults to `"\n"` (LineFeed). */
28
+ newLine?: string;
29
+ }
30
+
31
+ const escapeString = (text: string, singleQuote?: boolean): string => {
32
+ const escaped: string = text
33
+ .replace(/\\/g, "\\\\")
34
+ .replace(/\n/g, "\\n")
35
+ .replace(/\r/g, "\\r")
36
+ .replace(/\t/g, "\\t");
37
+ return singleQuote === true
38
+ ? `'${escaped.replace(/'/g, "\\'")}'`
39
+ : `"${escaped.replace(/"/g, '\\"')}"`;
40
+ };
41
+
42
+ /**
43
+ * Printer turning {@link factory} produced AST nodes into TypeScript source
44
+ * text.
45
+ *
46
+ * The printer is a width-aware pretty-printer: it builds a Prettier-style
47
+ * document for the {@link Node} discriminated union and lays it out against
48
+ * {@link TsPrinterOptions.printWidth}. Lists (arguments, parameters, generic
49
+ * arguments, array / object members, ...) print on one line when they fit and
50
+ * break onto indented lines — with trailing commas — when they do not. Every
51
+ * `node.kind` narrows to its concrete type, so the walk is fully type-checked;
52
+ * no `typescript` module is involved.
53
+ *
54
+ * @author Jeongho Nam - https://github.com/samchon
55
+ * @example
56
+ * ```typescript
57
+ * import factory, { TsPrinter } from "@ttsc/factory";
58
+ *
59
+ * const printer = new TsPrinter({ printWidth: 80, indent: " " });
60
+ * printer.print(factory.createStringLiteral("hello")); // "hello"
61
+ * ```;
62
+ */
63
+ export class TsPrinter {
64
+ private readonly printWidth_: number;
65
+ private readonly indent_: string;
66
+ private readonly newLine_: string;
67
+
68
+ public constructor(options: TsPrinterOptions = {}) {
69
+ this.printWidth_ = options.printWidth ?? 80;
70
+ this.indent_ = options.indent ?? " ";
71
+ this.newLine_ = options.newLine ?? "\n";
72
+ }
73
+
74
+ /** Print a single node (or a whole {@link SourceFile}) into source text. */
75
+ public print(node: Node): string {
76
+ return this.layout(this.emit(node));
77
+ }
78
+
79
+ /** Print multiple nodes, joining them with new lines. */
80
+ public printNodes(nodes: readonly Node[]): string {
81
+ return this.layout(
82
+ join(
83
+ hardline,
84
+ nodes.map((n) => this.emit(n)),
85
+ ),
86
+ );
87
+ }
88
+
89
+ /**
90
+ * Print an entire source file.
91
+ *
92
+ * @param sourceFile A {@link SourceFile}. When omitted, one is composed from
93
+ * the given `statements`.
94
+ * @param statements Statements to compose a source file from when no
95
+ * `sourceFile` is provided.
96
+ */
97
+ public printFile(
98
+ sourceFile?: SourceFile,
99
+ statements: readonly Statement[] = [],
100
+ ): string {
101
+ const list: readonly Statement[] = sourceFile
102
+ ? sourceFile.statements
103
+ : statements;
104
+ return (
105
+ this.layout(
106
+ join(
107
+ hardline,
108
+ list.map((s) => this.emit(s)),
109
+ ),
110
+ ) + this.newLine_
111
+ );
112
+ }
113
+
114
+ /* ----------------------------------------------------------------------- */
115
+ /* INTERNAL */
116
+ /* ----------------------------------------------------------------------- */
117
+ private layout(doc: Doc): string {
118
+ return printDocToString(doc, {
119
+ printWidth: this.printWidth_,
120
+ indent: this.indent_,
121
+ newLine: this.newLine_,
122
+ });
123
+ }
124
+
125
+ /** Comma-separated, width-aware delimited list (`(...)`, `[...]`, `<...>`). */
126
+ private delim(
127
+ open: string,
128
+ items: Doc[],
129
+ close: string,
130
+ opts: {
131
+ space?: boolean;
132
+ trailingComma?: boolean;
133
+ forceBreak?: boolean;
134
+ } = {},
135
+ ): Doc {
136
+ if (items.length === 0) return open + close;
137
+ const ln = opts.space ? line : softline;
138
+ return group(
139
+ concat([
140
+ open,
141
+ indent(concat([ln, join(concat([",", line]), items)])),
142
+ opts.trailingComma ? ifBreak(",") : "",
143
+ ln,
144
+ close,
145
+ ]),
146
+ opts.forceBreak === true,
147
+ );
148
+ }
149
+
150
+ /**
151
+ * Semicolon-separated member block (`{ a; b }`), e.g. interfaces.
152
+ *
153
+ * A bare {@link import("./ast").Identifier} member acts as a blank-line spacer
154
+ * (the legacy `createIdentifier("\n")` codegen idiom): it inserts an empty
155
+ * line between members and carries no `;` terminator, matching the legacy
156
+ * printer.
157
+ */
158
+ private memberBlock(members: readonly Node[], forceBreak: boolean): Doc {
159
+ const inner: Doc[] = [];
160
+ let first: boolean = true;
161
+ let blank: boolean = false;
162
+ for (const member of members) {
163
+ if (member.kind === "Identifier") {
164
+ blank = true;
165
+ continue;
166
+ }
167
+ if (!first) inner.push(";", line);
168
+ if (blank) {
169
+ inner.push(hardline);
170
+ blank = false;
171
+ }
172
+ inner.push(this.emit(member));
173
+ first = false;
174
+ }
175
+ if (inner.length === 0) return "{}";
176
+ return group(
177
+ concat([
178
+ "{",
179
+ indent(concat([line, concat(inner)])),
180
+ ifBreak(";"),
181
+ line,
182
+ "}",
183
+ ]),
184
+ forceBreak,
185
+ );
186
+ }
187
+
188
+ /** Always-broken statement block (`{ ... }`). */
189
+ private statementBlock(items: Doc[]): Doc {
190
+ if (items.length === 0) return "{}";
191
+ return concat([
192
+ "{",
193
+ indent(concat([hardline, join(hardline, items)])),
194
+ hardline,
195
+ "}",
196
+ ]);
197
+ }
198
+
199
+ private typeArguments(args: readonly Node[] | undefined): Doc {
200
+ // type-argument / type-parameter lists disallow a trailing comma (TS1009)
201
+ return args && args.length
202
+ ? this.delim(
203
+ "<",
204
+ args.map((a) => this.emit(a)),
205
+ ">",
206
+ {
207
+ trailingComma: false,
208
+ },
209
+ )
210
+ : "";
211
+ }
212
+
213
+ private params(params: readonly Node[]): Doc {
214
+ return this.delim(
215
+ "(",
216
+ params.map((p) => this.emit(p)),
217
+ ")",
218
+ {
219
+ trailingComma: true,
220
+ },
221
+ );
222
+ }
223
+
224
+ private modifiers(
225
+ mods: readonly ModifierLike[] | undefined,
226
+ decoratorsOnNewLine: boolean,
227
+ ): Doc {
228
+ if (!mods || mods.length === 0) return "";
229
+ const decorators = mods.filter((m) => m.kind === "Decorator");
230
+ const tokens = mods.filter((m) => m.kind !== "Decorator");
231
+ const parts: Doc[] = [];
232
+ const gap: Doc = decoratorsOnNewLine ? hardline : " ";
233
+ if (decorators.length)
234
+ parts.push(
235
+ join(
236
+ gap,
237
+ decorators.map((d) => this.emit(d)),
238
+ ),
239
+ gap,
240
+ );
241
+ if (tokens.length)
242
+ parts.push(
243
+ join(
244
+ " ",
245
+ tokens.map((t) => this.emit(t)),
246
+ ),
247
+ " ",
248
+ );
249
+ return concat(parts);
250
+ }
251
+
252
+ private heritage(clauses: readonly Node[] | undefined): Doc {
253
+ return clauses && clauses.length
254
+ ? concat([
255
+ " ",
256
+ join(
257
+ " ",
258
+ clauses.map((c) => this.emit(c)),
259
+ ),
260
+ ])
261
+ : "";
262
+ }
263
+
264
+ private optType(type: Node | undefined): Doc {
265
+ return type ? concat([": ", this.emit(type)]) : "";
266
+ }
267
+
268
+ private optBody(body: Node | undefined): Doc {
269
+ return body ? concat([" ", this.emit(body)]) : ";";
270
+ }
271
+
272
+ private emit(node: Node): Doc {
273
+ const body: Doc = this.emitNode(node);
274
+ const leading: SynthesizedComment[] | undefined =
275
+ getSyntheticLeadingComments(node);
276
+ const trailing: SynthesizedComment[] | undefined =
277
+ getSyntheticTrailingComments(node);
278
+ if (
279
+ (leading === undefined || leading.length === 0) &&
280
+ (trailing === undefined || trailing.length === 0)
281
+ )
282
+ return body;
283
+ const parts: Doc[] = [];
284
+ if (leading !== undefined)
285
+ for (const comment of leading) parts.push(this.leadingComment(comment));
286
+ parts.push(body);
287
+ if (trailing !== undefined)
288
+ for (const comment of trailing) parts.push(this.trailingComment(comment));
289
+ return concat(parts);
290
+ }
291
+
292
+ /** Render a leading comment followed by its node separator. */
293
+ private leadingComment(comment: SynthesizedComment): Doc {
294
+ // a `//` comment must terminate the line; a `/* */` honours its own flag
295
+ const newLine: boolean =
296
+ comment.kind === SyntaxKind.SingleLineCommentTrivia ||
297
+ comment.hasTrailingNewLine === true;
298
+ return concat([this.commentBody(comment), newLine ? hardline : " "]);
299
+ }
300
+
301
+ /** Render a trailing comment preceded by its node separator. */
302
+ private trailingComment(comment: SynthesizedComment): Doc {
303
+ const newLine: boolean =
304
+ comment.kind === SyntaxKind.SingleLineCommentTrivia ||
305
+ comment.hasTrailingNewLine === true;
306
+ return concat([
307
+ comment.hasLeadingNewLine === true ? hardline : " ",
308
+ this.commentBody(comment),
309
+ newLine ? hardline : "",
310
+ ]);
311
+ }
312
+
313
+ /** Render the delimited comment body, re-flowing embedded line breaks. */
314
+ private commentBody(comment: SynthesizedComment): Doc {
315
+ if (comment.kind === SyntaxKind.SingleLineCommentTrivia)
316
+ return concat(["//", comment.text]);
317
+ // re-emit embedded newlines as hardlines so each line re-indents in place
318
+ return concat([
319
+ "/*",
320
+ join(hardline, comment.text.replace(/\r\n?/g, "\n").split("\n")),
321
+ "*/",
322
+ ]);
323
+ }
324
+
325
+ private emitNode(node: Node): Doc {
326
+ switch (node.kind) {
327
+ /* names & tokens */
328
+ case "Identifier":
329
+ return node.text;
330
+ case "PrivateIdentifier":
331
+ return node.text;
332
+ case "QualifiedName":
333
+ return concat([this.emit(node.left), ".", this.emit(node.right)]);
334
+ case "Token":
335
+ return node.token;
336
+ case "Decorator":
337
+ return concat(["@", this.emit(node.expression)]);
338
+
339
+ /* literals */
340
+ case "StringLiteral":
341
+ return escapeString(node.text, node.singleQuote);
342
+ case "NumericLiteral":
343
+ return node.text;
344
+ case "BigIntLiteral":
345
+ return node.text;
346
+
347
+ /* expressions */
348
+ case "ArrayLiteralExpression":
349
+ return this.delim(
350
+ "[",
351
+ node.elements.map((e) => this.emit(e)),
352
+ "]",
353
+ { trailingComma: true, forceBreak: node.multiLine === true },
354
+ );
355
+ case "ObjectLiteralExpression":
356
+ return this.delim(
357
+ "{",
358
+ node.properties.map((p) => this.emit(p)),
359
+ "}",
360
+ {
361
+ space: true,
362
+ trailingComma: true,
363
+ forceBreak: node.multiLine === true,
364
+ },
365
+ );
366
+ case "PropertyAssignment":
367
+ return concat([
368
+ this.emit(node.name),
369
+ ": ",
370
+ this.emit(node.initializer),
371
+ ]);
372
+ case "ShorthandPropertyAssignment":
373
+ return concat([
374
+ this.emit(node.name),
375
+ node.objectAssignmentInitializer
376
+ ? concat([" = ", this.emit(node.objectAssignmentInitializer)])
377
+ : "",
378
+ ]);
379
+ case "SpreadAssignment":
380
+ return concat(["...", this.emit(node.expression)]);
381
+ case "PropertyAccessExpression":
382
+ return concat([this.emit(node.expression), ".", this.emit(node.name)]);
383
+ case "ElementAccessExpression":
384
+ return concat([
385
+ this.emit(node.expression),
386
+ "[",
387
+ this.emit(node.argumentExpression),
388
+ "]",
389
+ ]);
390
+ case "CallExpression":
391
+ return concat([
392
+ this.emit(node.expression),
393
+ this.typeArguments(node.typeArguments),
394
+ this.params(node.arguments),
395
+ ]);
396
+ case "NewExpression":
397
+ return concat([
398
+ "new ",
399
+ this.emit(node.expression),
400
+ this.typeArguments(node.typeArguments),
401
+ this.params(node.arguments ?? []),
402
+ ]);
403
+ case "ParenthesizedExpression":
404
+ return concat(["(", this.emit(node.expression), ")"]);
405
+ case "BinaryExpression":
406
+ return group(
407
+ concat([
408
+ this.emit(node.left),
409
+ " ",
410
+ node.operator,
411
+ indent(concat([line, this.emit(node.right)])),
412
+ ]),
413
+ );
414
+ case "PrefixUnaryExpression":
415
+ return concat([node.operator, this.emit(node.operand)]);
416
+ case "PostfixUnaryExpression":
417
+ return concat([this.emit(node.operand), node.operator]);
418
+ case "ConditionalExpression":
419
+ return group(
420
+ concat([
421
+ this.emit(node.condition),
422
+ indent(
423
+ concat([
424
+ line,
425
+ "? ",
426
+ this.emit(node.whenTrue),
427
+ line,
428
+ ": ",
429
+ this.emit(node.whenFalse),
430
+ ]),
431
+ ),
432
+ ]),
433
+ );
434
+ case "ArrowFunction":
435
+ return concat([
436
+ this.modifiers(node.modifiers, false),
437
+ this.typeArguments(node.typeParameters),
438
+ this.params(node.parameters),
439
+ this.optType(node.type),
440
+ " => ",
441
+ this.emit(node.body),
442
+ ]);
443
+ case "FunctionExpression":
444
+ return concat([
445
+ this.modifiers(node.modifiers, false),
446
+ "function",
447
+ node.asteriskToken ? "*" : "",
448
+ node.name ? concat([" ", this.emit(node.name)]) : " ",
449
+ this.typeArguments(node.typeParameters),
450
+ this.params(node.parameters),
451
+ this.optType(node.type),
452
+ " ",
453
+ this.emit(node.body),
454
+ ]);
455
+ case "AsExpression":
456
+ return concat([
457
+ this.emit(node.expression),
458
+ " as ",
459
+ this.emit(node.type),
460
+ ]);
461
+ case "SatisfiesExpression":
462
+ return concat([
463
+ this.emit(node.expression),
464
+ " satisfies ",
465
+ this.emit(node.type),
466
+ ]);
467
+ case "NonNullExpression":
468
+ return concat([this.emit(node.expression), "!"]);
469
+ case "SpreadElement":
470
+ return concat(["...", this.emit(node.expression)]);
471
+ case "AwaitExpression":
472
+ return concat(["await ", this.emit(node.expression)]);
473
+ case "TypeOfExpression":
474
+ return concat(["typeof ", this.emit(node.expression)]);
475
+
476
+ /* types */
477
+ case "KeywordTypeNode":
478
+ return node.keyword;
479
+ case "TypeReferenceNode":
480
+ return concat([
481
+ this.emit(node.typeName),
482
+ this.typeArguments(node.typeArguments),
483
+ ]);
484
+ case "ArrayTypeNode":
485
+ return concat([this.postfixTypeOperand(node.elementType), "[]"]);
486
+ case "UnionTypeNode":
487
+ return this.binaryType(
488
+ "|",
489
+ node.types.map((t) => this.emit(t)),
490
+ );
491
+ case "IntersectionTypeNode":
492
+ return this.binaryType(
493
+ "&",
494
+ node.types.map((t) => this.emit(t)),
495
+ );
496
+ case "LiteralTypeNode":
497
+ return this.emit(node.literal);
498
+ case "TypeLiteralNode":
499
+ return this.memberBlock(node.members, false);
500
+ case "FunctionTypeNode":
501
+ return concat([
502
+ this.typeArguments(node.typeParameters),
503
+ this.params(node.parameters),
504
+ " => ",
505
+ this.emit(node.type),
506
+ ]);
507
+ case "TupleTypeNode":
508
+ return this.delim(
509
+ "[",
510
+ node.elements.map((e) => this.emit(e)),
511
+ "]",
512
+ {
513
+ trailingComma: true,
514
+ },
515
+ );
516
+ case "ParenthesizedTypeNode":
517
+ return concat(["(", this.emit(node.type), ")"]);
518
+ case "TypeOperatorNode":
519
+ return concat([node.operator, " ", this.emit(node.type)]);
520
+ case "IndexedAccessTypeNode":
521
+ return concat([
522
+ this.postfixTypeOperand(node.objectType),
523
+ "[",
524
+ this.emit(node.indexType),
525
+ "]",
526
+ ]);
527
+ case "TypeQueryNode":
528
+ return concat(["typeof ", this.emit(node.exprName)]);
529
+ case "ExpressionWithTypeArguments":
530
+ return concat([
531
+ this.emit(node.expression),
532
+ this.typeArguments(node.typeArguments),
533
+ ]);
534
+ case "PropertySignature":
535
+ return concat([
536
+ this.modifiers(node.modifiers, false),
537
+ this.emit(node.name),
538
+ node.questionToken ? "?" : "",
539
+ this.optType(node.type),
540
+ ]);
541
+ case "IndexSignature":
542
+ return concat([
543
+ this.modifiers(node.modifiers, false),
544
+ "[",
545
+ join(
546
+ ", ",
547
+ node.parameters.map((p) => this.emit(p)),
548
+ ),
549
+ "]: ",
550
+ this.emit(node.type),
551
+ ]);
552
+ case "MethodSignature":
553
+ return concat([
554
+ this.modifiers(node.modifiers, false),
555
+ this.emit(node.name),
556
+ node.questionToken ? "?" : "",
557
+ this.typeArguments(node.typeParameters),
558
+ this.params(node.parameters),
559
+ this.optType(node.type),
560
+ ]);
561
+ case "TypeParameterDeclaration":
562
+ return concat([
563
+ this.modifiers(node.modifiers, false),
564
+ this.emit(node.name),
565
+ node.constraint
566
+ ? concat([" extends ", this.emit(node.constraint)])
567
+ : "",
568
+ node.default ? concat([" = ", this.emit(node.default)]) : "",
569
+ ]);
570
+
571
+ /* support */
572
+ case "ParameterDeclaration":
573
+ return concat([
574
+ this.modifiers(node.modifiers, false),
575
+ node.dotDotDotToken ? "..." : "",
576
+ this.emit(node.name),
577
+ node.questionToken ? "?" : "",
578
+ this.optType(node.type),
579
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
580
+ ]);
581
+ case "HeritageClause":
582
+ return concat([
583
+ node.token,
584
+ " ",
585
+ join(
586
+ ", ",
587
+ node.types.map((t) => this.emit(t)),
588
+ ),
589
+ ]);
590
+
591
+ /* statements */
592
+ case "VariableStatement":
593
+ return concat([
594
+ this.modifiers(node.modifiers, false),
595
+ this.emit(node.declarationList),
596
+ ";",
597
+ ]);
598
+ case "VariableDeclarationList": {
599
+ const keyword: string =
600
+ node.flags === NodeFlags.Const
601
+ ? "const"
602
+ : node.flags === NodeFlags.Let
603
+ ? "let"
604
+ : "var";
605
+ return concat([
606
+ keyword,
607
+ " ",
608
+ join(
609
+ ", ",
610
+ node.declarations.map((d) => this.emit(d)),
611
+ ),
612
+ ]);
613
+ }
614
+ case "VariableDeclaration":
615
+ return concat([
616
+ this.emit(node.name),
617
+ node.exclamationToken ? "!" : "",
618
+ this.optType(node.type),
619
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
620
+ ]);
621
+ case "ExpressionStatement":
622
+ return concat([this.emit(node.expression), ";"]);
623
+ case "ReturnStatement":
624
+ return node.expression
625
+ ? concat(["return ", this.emit(node.expression), ";"])
626
+ : "return;";
627
+ case "ThrowStatement":
628
+ return concat(["throw ", this.emit(node.expression), ";"]);
629
+ case "IfStatement":
630
+ return concat([
631
+ "if (",
632
+ this.emit(node.expression),
633
+ ") ",
634
+ this.emit(node.thenStatement),
635
+ node.elseStatement
636
+ ? concat([" else ", this.emit(node.elseStatement)])
637
+ : "",
638
+ ]);
639
+ case "Block":
640
+ return this.statementBlock(node.statements.map((s) => this.emit(s)));
641
+
642
+ /* declarations */
643
+ case "FunctionDeclaration":
644
+ return concat([
645
+ this.modifiers(node.modifiers, true),
646
+ "function",
647
+ node.asteriskToken ? "*" : "",
648
+ " ",
649
+ node.name ? this.emit(node.name) : "",
650
+ this.typeArguments(node.typeParameters),
651
+ this.params(node.parameters),
652
+ this.optType(node.type),
653
+ this.optBody(node.body),
654
+ ]);
655
+ case "ClassDeclaration":
656
+ return concat([
657
+ this.modifiers(node.modifiers, true),
658
+ "class",
659
+ node.name ? concat([" ", this.emit(node.name)]) : "",
660
+ this.typeArguments(node.typeParameters),
661
+ this.heritage(node.heritageClauses),
662
+ " ",
663
+ this.statementBlock(node.members.map((m) => this.emit(m))),
664
+ ]);
665
+ case "PropertyDeclaration":
666
+ return concat([
667
+ this.modifiers(node.modifiers, true),
668
+ this.emit(node.name),
669
+ node.questionOrExclamationToken
670
+ ? this.emit(node.questionOrExclamationToken)
671
+ : "",
672
+ this.optType(node.type),
673
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
674
+ ";",
675
+ ]);
676
+ case "MethodDeclaration":
677
+ return concat([
678
+ this.modifiers(node.modifiers, true),
679
+ node.asteriskToken ? "*" : "",
680
+ this.emit(node.name),
681
+ node.questionToken ? "?" : "",
682
+ this.typeArguments(node.typeParameters),
683
+ this.params(node.parameters),
684
+ this.optType(node.type),
685
+ this.optBody(node.body),
686
+ ]);
687
+ case "ConstructorDeclaration":
688
+ return concat([
689
+ this.modifiers(node.modifiers, true),
690
+ "constructor",
691
+ this.params(node.parameters),
692
+ this.optBody(node.body),
693
+ ]);
694
+ case "GetAccessorDeclaration":
695
+ return concat([
696
+ this.modifiers(node.modifiers, true),
697
+ "get ",
698
+ this.emit(node.name),
699
+ this.params(node.parameters),
700
+ this.optType(node.type),
701
+ this.optBody(node.body),
702
+ ]);
703
+ case "SetAccessorDeclaration":
704
+ return concat([
705
+ this.modifiers(node.modifiers, true),
706
+ "set ",
707
+ this.emit(node.name),
708
+ this.params(node.parameters),
709
+ this.optBody(node.body),
710
+ ]);
711
+ case "InterfaceDeclaration":
712
+ return concat([
713
+ this.modifiers(node.modifiers, true),
714
+ "interface ",
715
+ this.emit(node.name),
716
+ this.typeArguments(node.typeParameters),
717
+ this.heritage(node.heritageClauses),
718
+ " ",
719
+ this.memberBlock(node.members, true),
720
+ ]);
721
+ case "TypeAliasDeclaration":
722
+ return concat([
723
+ this.modifiers(node.modifiers, true),
724
+ "type ",
725
+ this.emit(node.name),
726
+ this.typeArguments(node.typeParameters),
727
+ " = ",
728
+ this.emit(node.type),
729
+ ";",
730
+ ]);
731
+ case "EnumDeclaration":
732
+ return concat([
733
+ this.modifiers(node.modifiers, true),
734
+ "enum ",
735
+ this.emit(node.name),
736
+ " ",
737
+ node.members.length === 0
738
+ ? "{}"
739
+ : concat([
740
+ "{",
741
+ indent(
742
+ concat([
743
+ hardline,
744
+ join(
745
+ concat([",", hardline]),
746
+ node.members.map((m) => this.emit(m)),
747
+ ),
748
+ ",",
749
+ ]),
750
+ ),
751
+ hardline,
752
+ "}",
753
+ ]),
754
+ ]);
755
+ case "EnumMember":
756
+ return concat([
757
+ this.emit(node.name),
758
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
759
+ ]);
760
+
761
+ /* imports & exports */
762
+ case "ImportDeclaration":
763
+ return concat([
764
+ this.modifiers(node.modifiers, false),
765
+ "import ",
766
+ node.importClause
767
+ ? concat([this.emit(node.importClause), " from "])
768
+ : "",
769
+ this.emit(node.moduleSpecifier),
770
+ ";",
771
+ ]);
772
+ case "ImportClause": {
773
+ const named: Doc[] = [];
774
+ if (node.name) named.push(this.emit(node.name));
775
+ if (node.namedBindings) named.push(this.emit(node.namedBindings));
776
+ return concat([node.isTypeOnly ? "type " : "", join(", ", named)]);
777
+ }
778
+ case "NamedImports":
779
+ return this.delim(
780
+ "{",
781
+ node.elements.map((e) => this.emit(e)),
782
+ "}",
783
+ { space: true, trailingComma: true },
784
+ );
785
+ case "ImportSpecifier":
786
+ return concat([
787
+ node.isTypeOnly ? "type " : "",
788
+ node.propertyName
789
+ ? concat([this.emit(node.propertyName), " as "])
790
+ : "",
791
+ this.emit(node.name),
792
+ ]);
793
+ case "NamespaceImport":
794
+ return concat(["* as ", this.emit(node.name)]);
795
+ case "ExportDeclaration":
796
+ return concat([
797
+ this.modifiers(node.modifiers, false),
798
+ "export ",
799
+ node.isTypeOnly ? "type " : "",
800
+ node.exportClause ? this.emit(node.exportClause) : "*",
801
+ node.moduleSpecifier
802
+ ? concat([" from ", this.emit(node.moduleSpecifier)])
803
+ : "",
804
+ ";",
805
+ ]);
806
+ case "NamedExports":
807
+ return this.delim(
808
+ "{",
809
+ node.elements.map((e) => this.emit(e)),
810
+ "}",
811
+ { space: true, trailingComma: true },
812
+ );
813
+ case "ExportSpecifier":
814
+ return concat([
815
+ node.isTypeOnly ? "type " : "",
816
+ node.propertyName
817
+ ? concat([this.emit(node.propertyName), " as "])
818
+ : "",
819
+ this.emit(node.name),
820
+ ]);
821
+ case "ExportAssignment":
822
+ return concat([
823
+ this.modifiers(node.modifiers, false),
824
+ node.isExportEquals ? "export = " : "export default ",
825
+ this.emit(node.expression),
826
+ ";",
827
+ ]);
828
+
829
+ /* source file */
830
+ case "SourceFile":
831
+ return concat([
832
+ join(
833
+ hardline,
834
+ node.statements.map((s) => this.emit(s)),
835
+ ),
836
+ hardline,
837
+ ]);
838
+
839
+ /* loops & flow */
840
+ case "ForStatement":
841
+ return concat([
842
+ "for (",
843
+ node.initializer ? this.emit(node.initializer) : "",
844
+ "; ",
845
+ node.condition ? this.emit(node.condition) : "",
846
+ "; ",
847
+ node.incrementor ? this.emit(node.incrementor) : "",
848
+ ") ",
849
+ this.emit(node.statement),
850
+ ]);
851
+ case "ForInStatement":
852
+ return concat([
853
+ "for (",
854
+ this.emit(node.initializer),
855
+ " in ",
856
+ this.emit(node.expression),
857
+ ") ",
858
+ this.emit(node.statement),
859
+ ]);
860
+ case "ForOfStatement":
861
+ return concat([
862
+ "for ",
863
+ node.awaitModifier ? "await " : "",
864
+ "(",
865
+ this.emit(node.initializer),
866
+ " of ",
867
+ this.emit(node.expression),
868
+ ") ",
869
+ this.emit(node.statement),
870
+ ]);
871
+ case "WhileStatement":
872
+ return concat([
873
+ "while (",
874
+ this.emit(node.expression),
875
+ ") ",
876
+ this.emit(node.statement),
877
+ ]);
878
+ case "DoStatement":
879
+ return concat([
880
+ "do ",
881
+ this.emit(node.statement),
882
+ " while (",
883
+ this.emit(node.expression),
884
+ ");",
885
+ ]);
886
+ case "SwitchStatement":
887
+ return concat([
888
+ "switch (",
889
+ this.emit(node.expression),
890
+ ") ",
891
+ this.emit(node.caseBlock),
892
+ ]);
893
+ case "CaseBlock":
894
+ return node.clauses.length === 0
895
+ ? "{}"
896
+ : concat([
897
+ "{",
898
+ indent(
899
+ concat([
900
+ hardline,
901
+ join(
902
+ hardline,
903
+ node.clauses.map((c) => this.emit(c)),
904
+ ),
905
+ ]),
906
+ ),
907
+ hardline,
908
+ "}",
909
+ ]);
910
+ case "CaseClause":
911
+ return concat([
912
+ "case ",
913
+ this.emit(node.expression),
914
+ ":",
915
+ node.statements.length
916
+ ? indent(
917
+ concat([
918
+ hardline,
919
+ join(
920
+ hardline,
921
+ node.statements.map((s) => this.emit(s)),
922
+ ),
923
+ ]),
924
+ )
925
+ : "",
926
+ ]);
927
+ case "DefaultClause":
928
+ return concat([
929
+ "default:",
930
+ node.statements.length
931
+ ? indent(
932
+ concat([
933
+ hardline,
934
+ join(
935
+ hardline,
936
+ node.statements.map((s) => this.emit(s)),
937
+ ),
938
+ ]),
939
+ )
940
+ : "",
941
+ ]);
942
+ case "BreakStatement":
943
+ return node.label
944
+ ? concat(["break ", this.emit(node.label), ";"])
945
+ : "break;";
946
+ case "ContinueStatement":
947
+ return node.label
948
+ ? concat(["continue ", this.emit(node.label), ";"])
949
+ : "continue;";
950
+ case "TryStatement":
951
+ return concat([
952
+ "try ",
953
+ this.emit(node.tryBlock),
954
+ node.catchClause ? concat([" ", this.emit(node.catchClause)]) : "",
955
+ node.finallyBlock
956
+ ? concat([" finally ", this.emit(node.finallyBlock)])
957
+ : "",
958
+ ]);
959
+ case "CatchClause":
960
+ return node.variableDeclaration
961
+ ? concat([
962
+ "catch (",
963
+ this.emit(node.variableDeclaration),
964
+ ") ",
965
+ this.emit(node.block),
966
+ ])
967
+ : concat(["catch ", this.emit(node.block)]);
968
+ case "LabeledStatement":
969
+ return concat([this.emit(node.label), ": ", this.emit(node.statement)]);
970
+ case "WithStatement":
971
+ return concat([
972
+ "with (",
973
+ this.emit(node.expression),
974
+ ") ",
975
+ this.emit(node.statement),
976
+ ]);
977
+ case "DebuggerStatement":
978
+ return "debugger;";
979
+ case "EmptyStatement":
980
+ return ";";
981
+
982
+ /* modules & namespaces */
983
+ case "ModuleDeclaration":
984
+ return concat([
985
+ this.modifiers(node.modifiers, true),
986
+ node.name.kind === "StringLiteral" ? "module " : "namespace ",
987
+ this.emit(node.name),
988
+ node.body ? concat([" ", this.emit(node.body)]) : ";",
989
+ ]);
990
+ case "ModuleBlock":
991
+ return this.statementBlock(node.statements.map((s) => this.emit(s)));
992
+ case "ClassStaticBlockDeclaration":
993
+ return concat(["static ", this.emit(node.body)]);
994
+ case "ImportEqualsDeclaration":
995
+ return concat([
996
+ this.modifiers(node.modifiers, false),
997
+ "import ",
998
+ node.isTypeOnly ? "type " : "",
999
+ this.emit(node.name),
1000
+ " = ",
1001
+ this.emit(node.moduleReference),
1002
+ ";",
1003
+ ]);
1004
+ case "ExternalModuleReference":
1005
+ return concat(["require(", this.emit(node.expression), ")"]);
1006
+ case "NamespaceExportDeclaration":
1007
+ return concat(["export as namespace ", this.emit(node.name), ";"]);
1008
+ case "SemicolonClassElement":
1009
+ return ";";
1010
+ case "NamespaceExport":
1011
+ return concat(["* as ", this.emit(node.name)]);
1012
+
1013
+ /* advanced types */
1014
+ case "ThisTypeNode":
1015
+ return "this";
1016
+ case "ConstructorTypeNode":
1017
+ return concat([
1018
+ this.modifiers(node.modifiers, false),
1019
+ "new ",
1020
+ this.typeArguments(node.typeParameters),
1021
+ this.params(node.parameters),
1022
+ " => ",
1023
+ this.emit(node.type),
1024
+ ]);
1025
+ case "TypePredicateNode":
1026
+ return concat([
1027
+ node.assertsModifier ? "asserts " : "",
1028
+ this.emit(node.parameterName),
1029
+ node.type ? concat([" is ", this.emit(node.type)]) : "",
1030
+ ]);
1031
+ case "ConditionalTypeNode":
1032
+ return concat([
1033
+ this.emit(node.checkType),
1034
+ " extends ",
1035
+ this.emit(node.extendsType),
1036
+ " ? ",
1037
+ this.emit(node.trueType),
1038
+ " : ",
1039
+ this.emit(node.falseType),
1040
+ ]);
1041
+ case "InferTypeNode":
1042
+ return concat(["infer ", this.emit(node.typeParameter)]);
1043
+ case "MappedTypeNode": {
1044
+ const ro = node.readonlyToken
1045
+ ? node.readonlyToken.token === "readonly"
1046
+ ? "readonly "
1047
+ : `${node.readonlyToken.token}readonly `
1048
+ : "";
1049
+ const q = node.questionToken
1050
+ ? node.questionToken.token === "?"
1051
+ ? "?"
1052
+ : `${node.questionToken.token}?`
1053
+ : "";
1054
+ return concat([
1055
+ "{ ",
1056
+ ro,
1057
+ "[",
1058
+ this.emit(node.typeParameter.name),
1059
+ " in ",
1060
+ node.typeParameter.constraint
1061
+ ? this.emit(node.typeParameter.constraint)
1062
+ : "",
1063
+ node.nameType ? concat([" as ", this.emit(node.nameType)]) : "",
1064
+ "]",
1065
+ q,
1066
+ node.type ? concat([": ", this.emit(node.type)]) : "",
1067
+ " }",
1068
+ ]);
1069
+ }
1070
+ case "TemplateLiteralType":
1071
+ return concat([
1072
+ this.emit(node.head),
1073
+ concat(node.templateSpans.map((s) => this.emit(s))),
1074
+ ]);
1075
+ case "TemplateLiteralTypeSpan":
1076
+ return concat([this.emit(node.type), this.emit(node.literal)]);
1077
+ case "NamedTupleMember":
1078
+ return concat([
1079
+ node.dotDotDotToken ? "..." : "",
1080
+ this.emit(node.name),
1081
+ node.questionToken ? "?" : "",
1082
+ ": ",
1083
+ this.emit(node.type),
1084
+ ]);
1085
+ case "OptionalTypeNode":
1086
+ return concat([this.emit(node.type), "?"]);
1087
+ case "RestTypeNode":
1088
+ return concat(["...", this.emit(node.type)]);
1089
+ case "ImportTypeNode":
1090
+ return concat([
1091
+ node.isTypeOf ? "typeof " : "",
1092
+ "import(",
1093
+ this.emit(node.argument),
1094
+ ")",
1095
+ node.qualifier ? concat([".", this.emit(node.qualifier)]) : "",
1096
+ this.typeArguments(node.typeArguments),
1097
+ ]);
1098
+ case "CallSignature":
1099
+ return concat([
1100
+ this.typeArguments(node.typeParameters),
1101
+ this.params(node.parameters),
1102
+ this.optType(node.type),
1103
+ ]);
1104
+ case "ConstructSignature":
1105
+ return concat([
1106
+ "new ",
1107
+ this.typeArguments(node.typeParameters),
1108
+ this.params(node.parameters),
1109
+ this.optType(node.type),
1110
+ ]);
1111
+
1112
+ /* template literals */
1113
+ case "TemplateHead":
1114
+ return concat(["`", node.text, "${"]);
1115
+ case "TemplateMiddle":
1116
+ return concat(["}", node.text, "${"]);
1117
+ case "TemplateTail":
1118
+ return concat(["}", node.text, "`"]);
1119
+ case "NoSubstitutionTemplateLiteral":
1120
+ return concat(["`", node.text, "`"]);
1121
+
1122
+ /* template & misc expressions */
1123
+ case "TemplateExpression":
1124
+ return concat([
1125
+ this.emit(node.head),
1126
+ concat(node.templateSpans.map((s) => this.emit(s))),
1127
+ ]);
1128
+ case "TemplateSpan":
1129
+ return concat([this.emit(node.expression), this.emit(node.literal)]);
1130
+ case "TaggedTemplateExpression":
1131
+ return concat([
1132
+ this.emit(node.tag),
1133
+ this.typeArguments(node.typeArguments),
1134
+ this.emit(node.template),
1135
+ ]);
1136
+ case "YieldExpression":
1137
+ return concat([
1138
+ "yield",
1139
+ node.asteriskToken ? "*" : "",
1140
+ node.expression ? concat([" ", this.emit(node.expression)]) : "",
1141
+ ]);
1142
+ case "DeleteExpression":
1143
+ return concat(["delete ", this.emit(node.expression)]);
1144
+ case "VoidExpression":
1145
+ return concat(["void ", this.emit(node.expression)]);
1146
+ case "RegularExpressionLiteral":
1147
+ return node.text;
1148
+ case "ClassExpression":
1149
+ return concat([
1150
+ this.modifiers(node.modifiers, true),
1151
+ "class",
1152
+ node.name ? concat([" ", this.emit(node.name)]) : "",
1153
+ this.typeArguments(node.typeParameters),
1154
+ this.heritage(node.heritageClauses),
1155
+ " ",
1156
+ this.statementBlock(node.members.map((m) => this.emit(m))),
1157
+ ]);
1158
+ case "MetaProperty":
1159
+ return concat([node.keywordToken, ".", this.emit(node.name)]);
1160
+ case "CommaListExpression":
1161
+ return join(
1162
+ ", ",
1163
+ node.elements.map((e) => this.emit(e)),
1164
+ );
1165
+ case "ComputedPropertyName":
1166
+ return concat(["[", this.emit(node.expression), "]"]);
1167
+ case "OmittedExpression":
1168
+ return "";
1169
+ case "BindingElement":
1170
+ return concat([
1171
+ node.dotDotDotToken ? "..." : "",
1172
+ node.propertyName ? concat([this.emit(node.propertyName), ": "]) : "",
1173
+ this.emit(node.name),
1174
+ node.initializer ? concat([" = ", this.emit(node.initializer)]) : "",
1175
+ ]);
1176
+ case "ObjectBindingPattern":
1177
+ return this.delim(
1178
+ "{",
1179
+ node.elements.map((e) => this.emit(e)),
1180
+ "}",
1181
+ { space: true, trailingComma: true },
1182
+ );
1183
+ case "ArrayBindingPattern":
1184
+ return this.delim(
1185
+ "[",
1186
+ node.elements.map((e) => this.emit(e)),
1187
+ "]",
1188
+ { trailingComma: true },
1189
+ );
1190
+ case "TypeAssertion":
1191
+ return concat([
1192
+ "<",
1193
+ this.emit(node.type),
1194
+ ">",
1195
+ this.emit(node.expression),
1196
+ ]);
1197
+ case "PropertyAccessChain":
1198
+ return concat([
1199
+ this.emit(node.expression),
1200
+ node.questionDotToken ? "?." : ".",
1201
+ this.emit(node.name),
1202
+ ]);
1203
+ case "ElementAccessChain":
1204
+ return concat([
1205
+ this.emit(node.expression),
1206
+ node.questionDotToken ? "?." : "",
1207
+ "[",
1208
+ this.emit(node.argumentExpression),
1209
+ "]",
1210
+ ]);
1211
+ case "CallChain":
1212
+ return concat([
1213
+ this.emit(node.expression),
1214
+ node.questionDotToken ? "?." : "",
1215
+ this.typeArguments(node.typeArguments),
1216
+ this.params(node.arguments),
1217
+ ]);
1218
+ case "NonNullChain":
1219
+ return concat([this.emit(node.expression), "!"]);
1220
+
1221
+ /* jsx */
1222
+ case "JsxElement":
1223
+ return group(
1224
+ concat([
1225
+ this.emit(node.openingElement),
1226
+ indent(
1227
+ concat(
1228
+ node.children.map((c) => concat([softline, this.emit(c)])),
1229
+ ),
1230
+ ),
1231
+ softline,
1232
+ this.emit(node.closingElement),
1233
+ ]),
1234
+ );
1235
+ case "JsxSelfClosingElement":
1236
+ return concat([
1237
+ "<",
1238
+ this.emit(node.tagName),
1239
+ this.typeArguments(node.typeArguments),
1240
+ this.emit(node.attributes),
1241
+ " />",
1242
+ ]);
1243
+ case "JsxOpeningElement":
1244
+ return concat([
1245
+ "<",
1246
+ this.emit(node.tagName),
1247
+ this.typeArguments(node.typeArguments),
1248
+ this.emit(node.attributes),
1249
+ ">",
1250
+ ]);
1251
+ case "JsxClosingElement":
1252
+ return concat(["</", this.emit(node.tagName), ">"]);
1253
+ case "JsxFragment":
1254
+ return group(
1255
+ concat([
1256
+ this.emit(node.openingFragment),
1257
+ indent(
1258
+ concat(
1259
+ node.children.map((c) => concat([softline, this.emit(c)])),
1260
+ ),
1261
+ ),
1262
+ softline,
1263
+ this.emit(node.closingFragment),
1264
+ ]),
1265
+ );
1266
+ case "JsxOpeningFragment":
1267
+ return "<>";
1268
+ case "JsxClosingFragment":
1269
+ return "</>";
1270
+ case "JsxText":
1271
+ return node.text;
1272
+ case "JsxAttribute":
1273
+ return node.initializer === undefined
1274
+ ? this.emit(node.name)
1275
+ : concat([this.emit(node.name), "=", this.emit(node.initializer)]);
1276
+ case "JsxAttributes":
1277
+ return node.properties.length === 0
1278
+ ? ""
1279
+ : concat(node.properties.map((p) => concat([" ", this.emit(p)])));
1280
+ case "JsxSpreadAttribute":
1281
+ return concat(["{...", this.emit(node.expression), "}"]);
1282
+ case "JsxExpression":
1283
+ return concat([
1284
+ "{",
1285
+ node.dotDotDotToken ? "..." : "",
1286
+ node.expression ? this.emit(node.expression) : "",
1287
+ "}",
1288
+ ]);
1289
+ case "JsxNamespacedName":
1290
+ return concat([this.emit(node.namespace), ":", this.emit(node.name)]);
1291
+
1292
+ /* synthetic / emit-internal */
1293
+ case "Bundle":
1294
+ return join(
1295
+ hardline,
1296
+ node.sourceFiles.map((s) => this.emit(s)),
1297
+ );
1298
+ case "PartiallyEmittedExpression":
1299
+ return this.emit(node.expression);
1300
+ case "ImportAttribute":
1301
+ return concat([this.emit(node.name), ": ", this.emit(node.value)]);
1302
+ case "ImportAttributes":
1303
+ return node.elements.length === 0
1304
+ ? concat([node.token, " {}"])
1305
+ : concat([
1306
+ node.token,
1307
+ " { ",
1308
+ join(
1309
+ ", ",
1310
+ node.elements.map((e) => this.emit(e)),
1311
+ ),
1312
+ " }",
1313
+ ]);
1314
+ case "NotEmittedStatement":
1315
+ case "NotEmittedTypeElement":
1316
+ return "";
1317
+
1318
+ /* jsdoc — types */
1319
+ case "JSDocAllType":
1320
+ return "*";
1321
+ case "JSDocUnknownType":
1322
+ return "?";
1323
+ case "JSDocNonNullableType":
1324
+ return node.postfix
1325
+ ? concat([this.emit(node.type), "!"])
1326
+ : concat(["!", this.emit(node.type)]);
1327
+ case "JSDocNullableType":
1328
+ return node.postfix
1329
+ ? concat([this.emit(node.type), "?"])
1330
+ : concat(["?", this.emit(node.type)]);
1331
+ case "JSDocOptionalType":
1332
+ return concat([this.emit(node.type), "="]);
1333
+ case "JSDocVariadicType":
1334
+ return concat(["...", this.emit(node.type)]);
1335
+ case "JSDocNamepathType":
1336
+ return this.emit(node.type);
1337
+ case "JSDocFunctionType":
1338
+ return concat([
1339
+ "function(",
1340
+ join(
1341
+ ", ",
1342
+ node.parameters.map((p) => this.emit(p)),
1343
+ ),
1344
+ ")",
1345
+ node.type ? concat([": ", this.emit(node.type)]) : "",
1346
+ ]);
1347
+ case "JSDocTypeExpression":
1348
+ return concat(["{", this.emit(node.type), "}"]);
1349
+ case "JSDocNameReference":
1350
+ return this.emit(node.name);
1351
+ case "JSDocMemberName":
1352
+ return concat([this.emit(node.left), "#", this.emit(node.right)]);
1353
+ case "JSDocLink":
1354
+ return concat([
1355
+ "{@link ",
1356
+ node.name ? this.emit(node.name) : "",
1357
+ node.text,
1358
+ "}",
1359
+ ]);
1360
+ case "JSDocLinkCode":
1361
+ return concat([
1362
+ "{@linkcode ",
1363
+ node.name ? this.emit(node.name) : "",
1364
+ node.text,
1365
+ "}",
1366
+ ]);
1367
+ case "JSDocLinkPlain":
1368
+ return concat([
1369
+ "{@linkplain ",
1370
+ node.name ? this.emit(node.name) : "",
1371
+ node.text,
1372
+ "}",
1373
+ ]);
1374
+ case "JSDocText":
1375
+ return node.text;
1376
+ case "JSDocTypeLiteral":
1377
+ return concat([
1378
+ join(
1379
+ hardline,
1380
+ (node.jsDocPropertyTags ?? []).map((t) => this.emit(t)),
1381
+ ),
1382
+ node.isArrayType ? "[]" : "",
1383
+ ]);
1384
+ case "JSDocSignature":
1385
+ return join(
1386
+ hardline,
1387
+ [
1388
+ ...(node.typeParameters ?? []),
1389
+ ...node.parameters,
1390
+ ...(node.type ? [node.type] : []),
1391
+ ].map((t) => this.emit(t)),
1392
+ );
1393
+ case "JSDoc": {
1394
+ const body: Doc =
1395
+ node.comment === undefined
1396
+ ? ""
1397
+ : typeof node.comment === "string"
1398
+ ? node.comment
1399
+ : concat(node.comment.map((c) => this.emit(c)));
1400
+ const lines: Doc[] = [concat([" * ", body])];
1401
+ for (const tag of node.tags ?? [])
1402
+ lines.push(concat([" * ", this.emit(tag)]));
1403
+ return concat([
1404
+ "/**",
1405
+ hardline,
1406
+ join(hardline, lines),
1407
+ hardline,
1408
+ " */",
1409
+ ]);
1410
+ }
1411
+
1412
+ /* jsdoc — tags */
1413
+ case "JSDocTypeTag":
1414
+ case "JSDocThisTag":
1415
+ case "JSDocEnumTag":
1416
+ case "JSDocSatisfiesTag":
1417
+ return concat([
1418
+ "@",
1419
+ this.emit(node.tagName),
1420
+ " ",
1421
+ this.emit(node.typeExpression),
1422
+ this.jsDocComment(node.comment),
1423
+ ]);
1424
+ case "JSDocReturnTag":
1425
+ case "JSDocThrowsTag":
1426
+ return concat([
1427
+ "@",
1428
+ this.emit(node.tagName),
1429
+ node.typeExpression
1430
+ ? concat([" ", this.emit(node.typeExpression)])
1431
+ : "",
1432
+ this.jsDocComment(node.comment),
1433
+ ]);
1434
+ case "JSDocAuthorTag":
1435
+ case "JSDocClassTag":
1436
+ case "JSDocPublicTag":
1437
+ case "JSDocPrivateTag":
1438
+ case "JSDocProtectedTag":
1439
+ case "JSDocReadonlyTag":
1440
+ case "JSDocOverrideTag":
1441
+ case "JSDocDeprecatedTag":
1442
+ case "JSDocUnknownTag":
1443
+ return concat([
1444
+ "@",
1445
+ this.emit(node.tagName),
1446
+ this.jsDocComment(node.comment),
1447
+ ]);
1448
+ case "JSDocAugmentsTag":
1449
+ case "JSDocImplementsTag":
1450
+ return concat([
1451
+ "@",
1452
+ this.emit(node.tagName),
1453
+ " {",
1454
+ this.emit(node.class),
1455
+ "}",
1456
+ this.jsDocComment(node.comment),
1457
+ ]);
1458
+ case "JSDocParameterTag":
1459
+ case "JSDocPropertyTag": {
1460
+ const name: Doc = node.isBracketed
1461
+ ? concat(["[", this.emit(node.name), "]"])
1462
+ : this.emit(node.name);
1463
+ const type: Doc | undefined = node.typeExpression
1464
+ ? this.emit(node.typeExpression)
1465
+ : undefined;
1466
+ const main: Doc = node.isNameFirst
1467
+ ? concat([name, type ? concat([" ", type]) : ""])
1468
+ : concat([type ? concat([type, " "]) : "", name]);
1469
+ return concat([
1470
+ "@",
1471
+ this.emit(node.tagName),
1472
+ " ",
1473
+ main,
1474
+ this.jsDocComment(node.comment),
1475
+ ]);
1476
+ }
1477
+ case "JSDocSeeTag":
1478
+ return concat([
1479
+ "@",
1480
+ this.emit(node.tagName),
1481
+ node.name ? concat([" ", this.emit(node.name)]) : "",
1482
+ this.jsDocComment(node.comment),
1483
+ ]);
1484
+ case "JSDocOverloadTag":
1485
+ case "JSDocCallbackTag": {
1486
+ const full: Doc =
1487
+ node.kind === "JSDocCallbackTag" && node.fullName
1488
+ ? concat([" ", this.emit(node.fullName)])
1489
+ : "";
1490
+ return concat([
1491
+ "@",
1492
+ this.emit(node.tagName),
1493
+ full,
1494
+ hardline,
1495
+ this.emit(node.typeExpression),
1496
+ this.jsDocComment(node.comment),
1497
+ ]);
1498
+ }
1499
+ case "JSDocImportTag":
1500
+ return concat([
1501
+ "@",
1502
+ this.emit(node.tagName),
1503
+ " ",
1504
+ node.importClause
1505
+ ? concat([this.emit(node.importClause), " from "])
1506
+ : "",
1507
+ this.emit(node.moduleSpecifier),
1508
+ this.jsDocComment(node.comment),
1509
+ ]);
1510
+ case "JSDocTemplateTag":
1511
+ return concat([
1512
+ "@",
1513
+ this.emit(node.tagName),
1514
+ node.constraint ? concat([" ", this.emit(node.constraint)]) : "",
1515
+ " ",
1516
+ join(
1517
+ ", ",
1518
+ node.typeParameters.map((t) => this.emit(t)),
1519
+ ),
1520
+ this.jsDocComment(node.comment),
1521
+ ]);
1522
+ case "JSDocTypedefTag":
1523
+ return concat([
1524
+ "@",
1525
+ this.emit(node.tagName),
1526
+ node.typeExpression
1527
+ ? concat([" ", this.emit(node.typeExpression)])
1528
+ : "",
1529
+ node.fullName ? concat([" ", this.emit(node.fullName)]) : "",
1530
+ this.jsDocComment(node.comment),
1531
+ ]);
1532
+
1533
+ default:
1534
+ return this.unsupported(node);
1535
+ }
1536
+ }
1537
+
1538
+ /**
1539
+ * Emit a type in the operand position of a postfix type (`T[]`, `T[K]`),
1540
+ * parenthesizing the lower-precedence type forms that would otherwise
1541
+ * re-associate — matching the legacy printer's parenthesizer rules.
1542
+ */
1543
+ private postfixTypeOperand(type: Node): Doc {
1544
+ const parenthesize: boolean =
1545
+ type.kind === "UnionTypeNode" ||
1546
+ type.kind === "IntersectionTypeNode" ||
1547
+ type.kind === "FunctionTypeNode" ||
1548
+ type.kind === "ConstructorTypeNode" ||
1549
+ type.kind === "ConditionalTypeNode" ||
1550
+ type.kind === "InferTypeNode" ||
1551
+ type.kind === "TypeOperatorNode";
1552
+ return parenthesize ? concat(["(", this.emit(type), ")"]) : this.emit(type);
1553
+ }
1554
+
1555
+ /** Render a JSDoc tag's trailing comment, prefixed with a space when present. */
1556
+ private jsDocComment(comment: string | readonly Node[] | undefined): Doc {
1557
+ if (comment === undefined) return "";
1558
+ if (typeof comment === "string")
1559
+ return comment.length ? concat([" ", comment]) : "";
1560
+ return comment.length
1561
+ ? concat([" ", concat(comment.map((c) => this.emit(c)))])
1562
+ : "";
1563
+ }
1564
+
1565
+ /** Width-aware `|` / `&` type list with leading-operator breaks. */
1566
+ private binaryType(operator: string, parts: Doc[]): Doc {
1567
+ if (parts.length === 1) return parts[0]!;
1568
+ return group(
1569
+ indent(
1570
+ concat([
1571
+ ifBreak(concat([line, operator, " "])),
1572
+ join(concat([line, operator, " "]), parts),
1573
+ ]),
1574
+ ),
1575
+ );
1576
+ }
1577
+
1578
+ private unsupported(node: never): never {
1579
+ throw new Error(
1580
+ `@ttsc/factory: TsPrinter cannot print node of kind "${
1581
+ (node as Node).kind
1582
+ }".`,
1583
+ );
1584
+ }
1585
+ }