@nestia/factory 12.0.0-dev.20260520.1

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 (657) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +27 -0
  3. package/lib/TypeScriptFactory.d.ts +3 -0
  4. package/lib/TypeScriptFactory.js +39 -0
  5. package/lib/TypeScriptFactory.js.map +1 -0
  6. package/lib/TypeScriptFactory.mjs +6 -0
  7. package/lib/TypeScriptFactory.mjs.map +1 -0
  8. package/lib/constants/NodeFlags.d.ts +9 -0
  9. package/lib/constants/NodeFlags.js +13 -0
  10. package/lib/constants/NodeFlags.js.map +1 -0
  11. package/lib/constants/NodeFlags.mjs +12 -0
  12. package/lib/constants/NodeFlags.mjs.map +1 -0
  13. package/lib/constants/SyntaxKind.d.ts +104 -0
  14. package/lib/constants/SyntaxKind.js +108 -0
  15. package/lib/constants/SyntaxKind.js.map +1 -0
  16. package/lib/constants/SyntaxKind.mjs +107 -0
  17. package/lib/constants/SyntaxKind.mjs.map +1 -0
  18. package/lib/factory/bindings/createArrayBindingPattern.d.ts +2 -0
  19. package/lib/factory/bindings/createArrayBindingPattern.js +12 -0
  20. package/lib/factory/bindings/createArrayBindingPattern.js.map +1 -0
  21. package/lib/factory/bindings/createArrayBindingPattern.mjs +12 -0
  22. package/lib/factory/bindings/createArrayBindingPattern.mjs.map +1 -0
  23. package/lib/factory/bindings/createBindingElement.d.ts +2 -0
  24. package/lib/factory/bindings/createBindingElement.js +15 -0
  25. package/lib/factory/bindings/createBindingElement.js.map +1 -0
  26. package/lib/factory/bindings/createBindingElement.mjs +15 -0
  27. package/lib/factory/bindings/createBindingElement.mjs.map +1 -0
  28. package/lib/factory/declarations/createClassDeclaration.d.ts +2 -0
  29. package/lib/factory/declarations/createClassDeclaration.js +25 -0
  30. package/lib/factory/declarations/createClassDeclaration.js.map +1 -0
  31. package/lib/factory/declarations/createClassDeclaration.mjs +25 -0
  32. package/lib/factory/declarations/createClassDeclaration.mjs.map +1 -0
  33. package/lib/factory/declarations/createFunctionDeclaration.d.ts +2 -0
  34. package/lib/factory/declarations/createFunctionDeclaration.js +27 -0
  35. package/lib/factory/declarations/createFunctionDeclaration.js.map +1 -0
  36. package/lib/factory/declarations/createFunctionDeclaration.mjs +27 -0
  37. package/lib/factory/declarations/createFunctionDeclaration.mjs.map +1 -0
  38. package/lib/factory/declarations/createMethodDeclaration.d.ts +2 -0
  39. package/lib/factory/declarations/createMethodDeclaration.js +28 -0
  40. package/lib/factory/declarations/createMethodDeclaration.js.map +1 -0
  41. package/lib/factory/declarations/createMethodDeclaration.mjs +28 -0
  42. package/lib/factory/declarations/createMethodDeclaration.mjs.map +1 -0
  43. package/lib/factory/declarations/createParameterDeclaration.d.ts +2 -0
  44. package/lib/factory/declarations/createParameterDeclaration.js +19 -0
  45. package/lib/factory/declarations/createParameterDeclaration.js.map +1 -0
  46. package/lib/factory/declarations/createParameterDeclaration.mjs +19 -0
  47. package/lib/factory/declarations/createParameterDeclaration.mjs.map +1 -0
  48. package/lib/factory/declarations/createTypeAliasDeclaration.d.ts +2 -0
  49. package/lib/factory/declarations/createTypeAliasDeclaration.js +21 -0
  50. package/lib/factory/declarations/createTypeAliasDeclaration.js.map +1 -0
  51. package/lib/factory/declarations/createTypeAliasDeclaration.mjs +21 -0
  52. package/lib/factory/declarations/createTypeAliasDeclaration.mjs.map +1 -0
  53. package/lib/factory/declarations/createVariableDeclaration.d.ts +2 -0
  54. package/lib/factory/declarations/createVariableDeclaration.js +15 -0
  55. package/lib/factory/declarations/createVariableDeclaration.js.map +1 -0
  56. package/lib/factory/declarations/createVariableDeclaration.mjs +15 -0
  57. package/lib/factory/declarations/createVariableDeclaration.mjs.map +1 -0
  58. package/lib/factory/declarations/createVariableDeclarationList.d.ts +2 -0
  59. package/lib/factory/declarations/createVariableDeclarationList.js +13 -0
  60. package/lib/factory/declarations/createVariableDeclarationList.js.map +1 -0
  61. package/lib/factory/declarations/createVariableDeclarationList.mjs +13 -0
  62. package/lib/factory/declarations/createVariableDeclarationList.mjs.map +1 -0
  63. package/lib/factory/declarations/createVariableStatement.d.ts +2 -0
  64. package/lib/factory/declarations/createVariableStatement.js +14 -0
  65. package/lib/factory/declarations/createVariableStatement.js.map +1 -0
  66. package/lib/factory/declarations/createVariableStatement.mjs +14 -0
  67. package/lib/factory/declarations/createVariableStatement.mjs.map +1 -0
  68. package/lib/factory/declarations/updateClassDeclaration.d.ts +2 -0
  69. package/lib/factory/declarations/updateClassDeclaration.js +13 -0
  70. package/lib/factory/declarations/updateClassDeclaration.js.map +1 -0
  71. package/lib/factory/declarations/updateClassDeclaration.mjs +20 -0
  72. package/lib/factory/declarations/updateClassDeclaration.mjs.map +1 -0
  73. package/lib/factory/declarations/updateMethodDeclaration.d.ts +2 -0
  74. package/lib/factory/declarations/updateMethodDeclaration.js +12 -0
  75. package/lib/factory/declarations/updateMethodDeclaration.js.map +1 -0
  76. package/lib/factory/declarations/updateMethodDeclaration.mjs +21 -0
  77. package/lib/factory/declarations/updateMethodDeclaration.mjs.map +1 -0
  78. package/lib/factory/expressions/createArrayLiteralExpression.d.ts +2 -0
  79. package/lib/factory/expressions/createArrayLiteralExpression.js +13 -0
  80. package/lib/factory/expressions/createArrayLiteralExpression.js.map +1 -0
  81. package/lib/factory/expressions/createArrayLiteralExpression.mjs +13 -0
  82. package/lib/factory/expressions/createArrayLiteralExpression.mjs.map +1 -0
  83. package/lib/factory/expressions/createArrowFunction.d.ts +2 -0
  84. package/lib/factory/expressions/createArrowFunction.js +26 -0
  85. package/lib/factory/expressions/createArrowFunction.js.map +1 -0
  86. package/lib/factory/expressions/createArrowFunction.mjs +26 -0
  87. package/lib/factory/expressions/createArrowFunction.mjs.map +1 -0
  88. package/lib/factory/expressions/createAsExpression.d.ts +2 -0
  89. package/lib/factory/expressions/createAsExpression.js +13 -0
  90. package/lib/factory/expressions/createAsExpression.js.map +1 -0
  91. package/lib/factory/expressions/createAsExpression.mjs +13 -0
  92. package/lib/factory/expressions/createAsExpression.mjs.map +1 -0
  93. package/lib/factory/expressions/createAwaitExpression.d.ts +2 -0
  94. package/lib/factory/expressions/createAwaitExpression.js +12 -0
  95. package/lib/factory/expressions/createAwaitExpression.js.map +1 -0
  96. package/lib/factory/expressions/createAwaitExpression.mjs +12 -0
  97. package/lib/factory/expressions/createAwaitExpression.mjs.map +1 -0
  98. package/lib/factory/expressions/createBinaryExpression.d.ts +2 -0
  99. package/lib/factory/expressions/createBinaryExpression.js +14 -0
  100. package/lib/factory/expressions/createBinaryExpression.js.map +1 -0
  101. package/lib/factory/expressions/createBinaryExpression.mjs +14 -0
  102. package/lib/factory/expressions/createBinaryExpression.mjs.map +1 -0
  103. package/lib/factory/expressions/createCallChain.d.ts +2 -0
  104. package/lib/factory/expressions/createCallChain.js +11 -0
  105. package/lib/factory/expressions/createCallChain.js.map +1 -0
  106. package/lib/factory/expressions/createCallChain.mjs +16 -0
  107. package/lib/factory/expressions/createCallChain.mjs.map +1 -0
  108. package/lib/factory/expressions/createCallExpression.d.ts +2 -0
  109. package/lib/factory/expressions/createCallExpression.js +15 -0
  110. package/lib/factory/expressions/createCallExpression.js.map +1 -0
  111. package/lib/factory/expressions/createCallExpression.mjs +15 -0
  112. package/lib/factory/expressions/createCallExpression.mjs.map +1 -0
  113. package/lib/factory/expressions/createConditionalExpression.d.ts +2 -0
  114. package/lib/factory/expressions/createConditionalExpression.js +16 -0
  115. package/lib/factory/expressions/createConditionalExpression.js.map +1 -0
  116. package/lib/factory/expressions/createConditionalExpression.mjs +16 -0
  117. package/lib/factory/expressions/createConditionalExpression.mjs.map +1 -0
  118. package/lib/factory/expressions/createElementAccessChain.d.ts +2 -0
  119. package/lib/factory/expressions/createElementAccessChain.js +11 -0
  120. package/lib/factory/expressions/createElementAccessChain.js.map +1 -0
  121. package/lib/factory/expressions/createElementAccessChain.mjs +16 -0
  122. package/lib/factory/expressions/createElementAccessChain.mjs.map +1 -0
  123. package/lib/factory/expressions/createElementAccessExpression.d.ts +2 -0
  124. package/lib/factory/expressions/createElementAccessExpression.js +15 -0
  125. package/lib/factory/expressions/createElementAccessExpression.js.map +1 -0
  126. package/lib/factory/expressions/createElementAccessExpression.mjs +15 -0
  127. package/lib/factory/expressions/createElementAccessExpression.mjs.map +1 -0
  128. package/lib/factory/expressions/createLogicalNot.d.ts +2 -0
  129. package/lib/factory/expressions/createLogicalNot.js +9 -0
  130. package/lib/factory/expressions/createLogicalNot.js.map +1 -0
  131. package/lib/factory/expressions/createLogicalNot.mjs +9 -0
  132. package/lib/factory/expressions/createLogicalNot.mjs.map +1 -0
  133. package/lib/factory/expressions/createNewExpression.d.ts +2 -0
  134. package/lib/factory/expressions/createNewExpression.js +14 -0
  135. package/lib/factory/expressions/createNewExpression.js.map +1 -0
  136. package/lib/factory/expressions/createNewExpression.mjs +14 -0
  137. package/lib/factory/expressions/createNewExpression.mjs.map +1 -0
  138. package/lib/factory/expressions/createObjectLiteralExpression.d.ts +2 -0
  139. package/lib/factory/expressions/createObjectLiteralExpression.js +13 -0
  140. package/lib/factory/expressions/createObjectLiteralExpression.js.map +1 -0
  141. package/lib/factory/expressions/createObjectLiteralExpression.mjs +13 -0
  142. package/lib/factory/expressions/createObjectLiteralExpression.mjs.map +1 -0
  143. package/lib/factory/expressions/createPrefixMinus.d.ts +2 -0
  144. package/lib/factory/expressions/createPrefixMinus.js +9 -0
  145. package/lib/factory/expressions/createPrefixMinus.js.map +1 -0
  146. package/lib/factory/expressions/createPrefixMinus.mjs +9 -0
  147. package/lib/factory/expressions/createPrefixMinus.mjs.map +1 -0
  148. package/lib/factory/expressions/createPrefixUnaryExpression.d.ts +2 -0
  149. package/lib/factory/expressions/createPrefixUnaryExpression.js +9 -0
  150. package/lib/factory/expressions/createPrefixUnaryExpression.js.map +1 -0
  151. package/lib/factory/expressions/createPrefixUnaryExpression.mjs +9 -0
  152. package/lib/factory/expressions/createPrefixUnaryExpression.mjs.map +1 -0
  153. package/lib/factory/expressions/createPropertyAccessChain.d.ts +2 -0
  154. package/lib/factory/expressions/createPropertyAccessChain.js +11 -0
  155. package/lib/factory/expressions/createPropertyAccessChain.js.map +1 -0
  156. package/lib/factory/expressions/createPropertyAccessChain.mjs +16 -0
  157. package/lib/factory/expressions/createPropertyAccessChain.mjs.map +1 -0
  158. package/lib/factory/expressions/createPropertyAccessExpression.d.ts +2 -0
  159. package/lib/factory/expressions/createPropertyAccessExpression.js +16 -0
  160. package/lib/factory/expressions/createPropertyAccessExpression.js.map +1 -0
  161. package/lib/factory/expressions/createPropertyAccessExpression.mjs +16 -0
  162. package/lib/factory/expressions/createPropertyAccessExpression.mjs.map +1 -0
  163. package/lib/factory/expressions/createPropertyAssignment.d.ts +2 -0
  164. package/lib/factory/expressions/createPropertyAssignment.js +13 -0
  165. package/lib/factory/expressions/createPropertyAssignment.js.map +1 -0
  166. package/lib/factory/expressions/createPropertyAssignment.mjs +13 -0
  167. package/lib/factory/expressions/createPropertyAssignment.mjs.map +1 -0
  168. package/lib/factory/expressions/createShorthandPropertyAssignment.d.ts +2 -0
  169. package/lib/factory/expressions/createShorthandPropertyAssignment.js +13 -0
  170. package/lib/factory/expressions/createShorthandPropertyAssignment.js.map +1 -0
  171. package/lib/factory/expressions/createShorthandPropertyAssignment.mjs +13 -0
  172. package/lib/factory/expressions/createShorthandPropertyAssignment.mjs.map +1 -0
  173. package/lib/factory/expressions/createSpreadAssignment.d.ts +2 -0
  174. package/lib/factory/expressions/createSpreadAssignment.js +9 -0
  175. package/lib/factory/expressions/createSpreadAssignment.js.map +1 -0
  176. package/lib/factory/expressions/createSpreadAssignment.mjs +9 -0
  177. package/lib/factory/expressions/createSpreadAssignment.mjs.map +1 -0
  178. package/lib/factory/expressions/createStrictEquality.d.ts +2 -0
  179. package/lib/factory/expressions/createStrictEquality.js +9 -0
  180. package/lib/factory/expressions/createStrictEquality.js.map +1 -0
  181. package/lib/factory/expressions/createStrictEquality.mjs +9 -0
  182. package/lib/factory/expressions/createStrictEquality.mjs.map +1 -0
  183. package/lib/factory/index.d.ts +86 -0
  184. package/lib/factory/index.js +177 -0
  185. package/lib/factory/index.js.map +1 -0
  186. package/lib/factory/index.mjs +87 -0
  187. package/lib/factory/index.mjs.map +1 -0
  188. package/lib/factory/literals/createBigIntLiteral.d.ts +2 -0
  189. package/lib/factory/literals/createBigIntLiteral.js +10 -0
  190. package/lib/factory/literals/createBigIntLiteral.js.map +1 -0
  191. package/lib/factory/literals/createBigIntLiteral.mjs +10 -0
  192. package/lib/factory/literals/createBigIntLiteral.mjs.map +1 -0
  193. package/lib/factory/literals/createFalse.d.ts +2 -0
  194. package/lib/factory/literals/createFalse.js +9 -0
  195. package/lib/factory/literals/createFalse.js.map +1 -0
  196. package/lib/factory/literals/createFalse.mjs +9 -0
  197. package/lib/factory/literals/createFalse.mjs.map +1 -0
  198. package/lib/factory/literals/createIdentifier.d.ts +2 -0
  199. package/lib/factory/literals/createIdentifier.js +14 -0
  200. package/lib/factory/literals/createIdentifier.js.map +1 -0
  201. package/lib/factory/literals/createIdentifier.mjs +14 -0
  202. package/lib/factory/literals/createIdentifier.mjs.map +1 -0
  203. package/lib/factory/literals/createNull.d.ts +2 -0
  204. package/lib/factory/literals/createNull.js +9 -0
  205. package/lib/factory/literals/createNull.js.map +1 -0
  206. package/lib/factory/literals/createNull.mjs +9 -0
  207. package/lib/factory/literals/createNull.mjs.map +1 -0
  208. package/lib/factory/literals/createNumericLiteral.d.ts +2 -0
  209. package/lib/factory/literals/createNumericLiteral.js +12 -0
  210. package/lib/factory/literals/createNumericLiteral.js.map +1 -0
  211. package/lib/factory/literals/createNumericLiteral.mjs +12 -0
  212. package/lib/factory/literals/createNumericLiteral.mjs.map +1 -0
  213. package/lib/factory/literals/createStringLiteral.d.ts +2 -0
  214. package/lib/factory/literals/createStringLiteral.js +13 -0
  215. package/lib/factory/literals/createStringLiteral.js.map +1 -0
  216. package/lib/factory/literals/createStringLiteral.mjs +13 -0
  217. package/lib/factory/literals/createStringLiteral.mjs.map +1 -0
  218. package/lib/factory/literals/createTrue.d.ts +2 -0
  219. package/lib/factory/literals/createTrue.js +9 -0
  220. package/lib/factory/literals/createTrue.js.map +1 -0
  221. package/lib/factory/literals/createTrue.mjs +9 -0
  222. package/lib/factory/literals/createTrue.mjs.map +1 -0
  223. package/lib/factory/modules/createExportDeclaration.d.ts +2 -0
  224. package/lib/factory/modules/createExportDeclaration.js +21 -0
  225. package/lib/factory/modules/createExportDeclaration.js.map +1 -0
  226. package/lib/factory/modules/createExportDeclaration.mjs +21 -0
  227. package/lib/factory/modules/createExportDeclaration.mjs.map +1 -0
  228. package/lib/factory/modules/createImportClause.d.ts +2 -0
  229. package/lib/factory/modules/createImportClause.js +14 -0
  230. package/lib/factory/modules/createImportClause.js.map +1 -0
  231. package/lib/factory/modules/createImportClause.mjs +14 -0
  232. package/lib/factory/modules/createImportClause.mjs.map +1 -0
  233. package/lib/factory/modules/createImportDeclaration.d.ts +2 -0
  234. package/lib/factory/modules/createImportDeclaration.js +18 -0
  235. package/lib/factory/modules/createImportDeclaration.js.map +1 -0
  236. package/lib/factory/modules/createImportDeclaration.mjs +18 -0
  237. package/lib/factory/modules/createImportDeclaration.mjs.map +1 -0
  238. package/lib/factory/modules/createImportSpecifier.d.ts +2 -0
  239. package/lib/factory/modules/createImportSpecifier.js +14 -0
  240. package/lib/factory/modules/createImportSpecifier.js.map +1 -0
  241. package/lib/factory/modules/createImportSpecifier.mjs +14 -0
  242. package/lib/factory/modules/createImportSpecifier.mjs.map +1 -0
  243. package/lib/factory/modules/createModuleBlock.d.ts +2 -0
  244. package/lib/factory/modules/createModuleBlock.js +12 -0
  245. package/lib/factory/modules/createModuleBlock.js.map +1 -0
  246. package/lib/factory/modules/createModuleBlock.mjs +12 -0
  247. package/lib/factory/modules/createModuleBlock.mjs.map +1 -0
  248. package/lib/factory/modules/createModuleDeclaration.d.ts +2 -0
  249. package/lib/factory/modules/createModuleDeclaration.js +20 -0
  250. package/lib/factory/modules/createModuleDeclaration.js.map +1 -0
  251. package/lib/factory/modules/createModuleDeclaration.mjs +20 -0
  252. package/lib/factory/modules/createModuleDeclaration.mjs.map +1 -0
  253. package/lib/factory/modules/createNamedImports.d.ts +2 -0
  254. package/lib/factory/modules/createNamedImports.js +12 -0
  255. package/lib/factory/modules/createNamedImports.js.map +1 -0
  256. package/lib/factory/modules/createNamedImports.mjs +12 -0
  257. package/lib/factory/modules/createNamedImports.mjs.map +1 -0
  258. package/lib/factory/modules/createNamespaceExport.d.ts +2 -0
  259. package/lib/factory/modules/createNamespaceExport.js +10 -0
  260. package/lib/factory/modules/createNamespaceExport.js.map +1 -0
  261. package/lib/factory/modules/createNamespaceExport.mjs +10 -0
  262. package/lib/factory/modules/createNamespaceExport.mjs.map +1 -0
  263. package/lib/factory/modules/createNamespaceImport.d.ts +2 -0
  264. package/lib/factory/modules/createNamespaceImport.js +10 -0
  265. package/lib/factory/modules/createNamespaceImport.js.map +1 -0
  266. package/lib/factory/modules/createNamespaceImport.mjs +10 -0
  267. package/lib/factory/modules/createNamespaceImport.mjs.map +1 -0
  268. package/lib/factory/names/createQualifiedName.d.ts +2 -0
  269. package/lib/factory/names/createQualifiedName.js +13 -0
  270. package/lib/factory/names/createQualifiedName.js.map +1 -0
  271. package/lib/factory/names/createQualifiedName.mjs +13 -0
  272. package/lib/factory/names/createQualifiedName.mjs.map +1 -0
  273. package/lib/factory/source-files/createSourceFile.d.ts +2 -0
  274. package/lib/factory/source-files/createSourceFile.js +50 -0
  275. package/lib/factory/source-files/createSourceFile.js.map +1 -0
  276. package/lib/factory/source-files/createSourceFile.mjs +50 -0
  277. package/lib/factory/source-files/createSourceFile.mjs.map +1 -0
  278. package/lib/factory/source-files/updateSourceFile.d.ts +2 -0
  279. package/lib/factory/source-files/updateSourceFile.js +8 -0
  280. package/lib/factory/source-files/updateSourceFile.js.map +1 -0
  281. package/lib/factory/source-files/updateSourceFile.mjs +8 -0
  282. package/lib/factory/source-files/updateSourceFile.mjs.map +1 -0
  283. package/lib/factory/statements/createBlock.d.ts +2 -0
  284. package/lib/factory/statements/createBlock.js +13 -0
  285. package/lib/factory/statements/createBlock.js.map +1 -0
  286. package/lib/factory/statements/createBlock.mjs +13 -0
  287. package/lib/factory/statements/createBlock.mjs.map +1 -0
  288. package/lib/factory/statements/createCatchClause.d.ts +2 -0
  289. package/lib/factory/statements/createCatchClause.js +15 -0
  290. package/lib/factory/statements/createCatchClause.js.map +1 -0
  291. package/lib/factory/statements/createCatchClause.mjs +15 -0
  292. package/lib/factory/statements/createCatchClause.mjs.map +1 -0
  293. package/lib/factory/statements/createContinueStatement.d.ts +2 -0
  294. package/lib/factory/statements/createContinueStatement.js +12 -0
  295. package/lib/factory/statements/createContinueStatement.js.map +1 -0
  296. package/lib/factory/statements/createContinueStatement.mjs +12 -0
  297. package/lib/factory/statements/createContinueStatement.mjs.map +1 -0
  298. package/lib/factory/statements/createExpressionStatement.d.ts +2 -0
  299. package/lib/factory/statements/createExpressionStatement.js +9 -0
  300. package/lib/factory/statements/createExpressionStatement.js.map +1 -0
  301. package/lib/factory/statements/createExpressionStatement.mjs +9 -0
  302. package/lib/factory/statements/createExpressionStatement.mjs.map +1 -0
  303. package/lib/factory/statements/createForOfStatement.d.ts +2 -0
  304. package/lib/factory/statements/createForOfStatement.js +14 -0
  305. package/lib/factory/statements/createForOfStatement.js.map +1 -0
  306. package/lib/factory/statements/createForOfStatement.mjs +14 -0
  307. package/lib/factory/statements/createForOfStatement.mjs.map +1 -0
  308. package/lib/factory/statements/createIfStatement.d.ts +2 -0
  309. package/lib/factory/statements/createIfStatement.js +13 -0
  310. package/lib/factory/statements/createIfStatement.js.map +1 -0
  311. package/lib/factory/statements/createIfStatement.mjs +13 -0
  312. package/lib/factory/statements/createIfStatement.mjs.map +1 -0
  313. package/lib/factory/statements/createReturnStatement.d.ts +2 -0
  314. package/lib/factory/statements/createReturnStatement.js +9 -0
  315. package/lib/factory/statements/createReturnStatement.js.map +1 -0
  316. package/lib/factory/statements/createReturnStatement.mjs +9 -0
  317. package/lib/factory/statements/createReturnStatement.mjs.map +1 -0
  318. package/lib/factory/statements/createThrowStatement.d.ts +2 -0
  319. package/lib/factory/statements/createThrowStatement.js +9 -0
  320. package/lib/factory/statements/createThrowStatement.js.map +1 -0
  321. package/lib/factory/statements/createThrowStatement.mjs +9 -0
  322. package/lib/factory/statements/createThrowStatement.mjs.map +1 -0
  323. package/lib/factory/statements/createTryStatement.d.ts +2 -0
  324. package/lib/factory/statements/createTryStatement.js +13 -0
  325. package/lib/factory/statements/createTryStatement.js.map +1 -0
  326. package/lib/factory/statements/createTryStatement.mjs +13 -0
  327. package/lib/factory/statements/createTryStatement.mjs.map +1 -0
  328. package/lib/factory/templates/createTemplateExpression.d.ts +2 -0
  329. package/lib/factory/templates/createTemplateExpression.js +13 -0
  330. package/lib/factory/templates/createTemplateExpression.js.map +1 -0
  331. package/lib/factory/templates/createTemplateExpression.mjs +13 -0
  332. package/lib/factory/templates/createTemplateExpression.mjs.map +1 -0
  333. package/lib/factory/templates/createTemplateHead.d.ts +2 -0
  334. package/lib/factory/templates/createTemplateHead.js +9 -0
  335. package/lib/factory/templates/createTemplateHead.js.map +1 -0
  336. package/lib/factory/templates/createTemplateHead.mjs +9 -0
  337. package/lib/factory/templates/createTemplateHead.mjs.map +1 -0
  338. package/lib/factory/templates/createTemplateMiddle.d.ts +2 -0
  339. package/lib/factory/templates/createTemplateMiddle.js +9 -0
  340. package/lib/factory/templates/createTemplateMiddle.js.map +1 -0
  341. package/lib/factory/templates/createTemplateMiddle.mjs +9 -0
  342. package/lib/factory/templates/createTemplateMiddle.mjs.map +1 -0
  343. package/lib/factory/templates/createTemplateSpan.d.ts +2 -0
  344. package/lib/factory/templates/createTemplateSpan.js +9 -0
  345. package/lib/factory/templates/createTemplateSpan.js.map +1 -0
  346. package/lib/factory/templates/createTemplateSpan.mjs +9 -0
  347. package/lib/factory/templates/createTemplateSpan.mjs.map +1 -0
  348. package/lib/factory/templates/createTemplateTail.d.ts +2 -0
  349. package/lib/factory/templates/createTemplateTail.js +9 -0
  350. package/lib/factory/templates/createTemplateTail.js.map +1 -0
  351. package/lib/factory/templates/createTemplateTail.mjs +9 -0
  352. package/lib/factory/templates/createTemplateTail.mjs.map +1 -0
  353. package/lib/factory/tokens/createDecorator.d.ts +2 -0
  354. package/lib/factory/tokens/createDecorator.js +12 -0
  355. package/lib/factory/tokens/createDecorator.js.map +1 -0
  356. package/lib/factory/tokens/createDecorator.mjs +12 -0
  357. package/lib/factory/tokens/createDecorator.mjs.map +1 -0
  358. package/lib/factory/tokens/createModifier.d.ts +2 -0
  359. package/lib/factory/tokens/createModifier.js +8 -0
  360. package/lib/factory/tokens/createModifier.js.map +1 -0
  361. package/lib/factory/tokens/createModifier.mjs +8 -0
  362. package/lib/factory/tokens/createModifier.mjs.map +1 -0
  363. package/lib/factory/tokens/createToken.d.ts +2 -0
  364. package/lib/factory/tokens/createToken.js +8 -0
  365. package/lib/factory/tokens/createToken.js.map +1 -0
  366. package/lib/factory/tokens/createToken.mjs +8 -0
  367. package/lib/factory/tokens/createToken.mjs.map +1 -0
  368. package/lib/factory/types/createArrayTypeNode.d.ts +2 -0
  369. package/lib/factory/types/createArrayTypeNode.js +15 -0
  370. package/lib/factory/types/createArrayTypeNode.js.map +1 -0
  371. package/lib/factory/types/createArrayTypeNode.mjs +15 -0
  372. package/lib/factory/types/createArrayTypeNode.mjs.map +1 -0
  373. package/lib/factory/types/createFunctionTypeNode.d.ts +2 -0
  374. package/lib/factory/types/createFunctionTypeNode.js +16 -0
  375. package/lib/factory/types/createFunctionTypeNode.js.map +1 -0
  376. package/lib/factory/types/createFunctionTypeNode.mjs +16 -0
  377. package/lib/factory/types/createFunctionTypeNode.mjs.map +1 -0
  378. package/lib/factory/types/createIndexSignature.d.ts +2 -0
  379. package/lib/factory/types/createIndexSignature.js +14 -0
  380. package/lib/factory/types/createIndexSignature.js.map +1 -0
  381. package/lib/factory/types/createIndexSignature.mjs +14 -0
  382. package/lib/factory/types/createIndexSignature.mjs.map +1 -0
  383. package/lib/factory/types/createIntersectionTypeNode.d.ts +2 -0
  384. package/lib/factory/types/createIntersectionTypeNode.js +12 -0
  385. package/lib/factory/types/createIntersectionTypeNode.js.map +1 -0
  386. package/lib/factory/types/createIntersectionTypeNode.mjs +12 -0
  387. package/lib/factory/types/createIntersectionTypeNode.mjs.map +1 -0
  388. package/lib/factory/types/createKeywordTypeNode.d.ts +2 -0
  389. package/lib/factory/types/createKeywordTypeNode.js +8 -0
  390. package/lib/factory/types/createKeywordTypeNode.js.map +1 -0
  391. package/lib/factory/types/createKeywordTypeNode.mjs +8 -0
  392. package/lib/factory/types/createKeywordTypeNode.mjs.map +1 -0
  393. package/lib/factory/types/createLiteralTypeNode.d.ts +2 -0
  394. package/lib/factory/types/createLiteralTypeNode.js +9 -0
  395. package/lib/factory/types/createLiteralTypeNode.js.map +1 -0
  396. package/lib/factory/types/createLiteralTypeNode.mjs +9 -0
  397. package/lib/factory/types/createLiteralTypeNode.mjs.map +1 -0
  398. package/lib/factory/types/createOptionalTypeNode.d.ts +2 -0
  399. package/lib/factory/types/createOptionalTypeNode.js +9 -0
  400. package/lib/factory/types/createOptionalTypeNode.js.map +1 -0
  401. package/lib/factory/types/createOptionalTypeNode.mjs +9 -0
  402. package/lib/factory/types/createOptionalTypeNode.mjs.map +1 -0
  403. package/lib/factory/types/createParenthesizedType.d.ts +2 -0
  404. package/lib/factory/types/createParenthesizedType.js +9 -0
  405. package/lib/factory/types/createParenthesizedType.js.map +1 -0
  406. package/lib/factory/types/createParenthesizedType.mjs +9 -0
  407. package/lib/factory/types/createParenthesizedType.mjs.map +1 -0
  408. package/lib/factory/types/createPropertySignature.d.ts +2 -0
  409. package/lib/factory/types/createPropertySignature.js +17 -0
  410. package/lib/factory/types/createPropertySignature.js.map +1 -0
  411. package/lib/factory/types/createPropertySignature.mjs +17 -0
  412. package/lib/factory/types/createPropertySignature.mjs.map +1 -0
  413. package/lib/factory/types/createRestTypeNode.d.ts +2 -0
  414. package/lib/factory/types/createRestTypeNode.js +9 -0
  415. package/lib/factory/types/createRestTypeNode.js.map +1 -0
  416. package/lib/factory/types/createRestTypeNode.mjs +9 -0
  417. package/lib/factory/types/createRestTypeNode.mjs.map +1 -0
  418. package/lib/factory/types/createTemplateLiteralType.d.ts +2 -0
  419. package/lib/factory/types/createTemplateLiteralType.js +13 -0
  420. package/lib/factory/types/createTemplateLiteralType.js.map +1 -0
  421. package/lib/factory/types/createTemplateLiteralType.mjs +13 -0
  422. package/lib/factory/types/createTemplateLiteralType.mjs.map +1 -0
  423. package/lib/factory/types/createTemplateLiteralTypeSpan.d.ts +2 -0
  424. package/lib/factory/types/createTemplateLiteralTypeSpan.js +9 -0
  425. package/lib/factory/types/createTemplateLiteralTypeSpan.js.map +1 -0
  426. package/lib/factory/types/createTemplateLiteralTypeSpan.mjs +9 -0
  427. package/lib/factory/types/createTemplateLiteralTypeSpan.mjs.map +1 -0
  428. package/lib/factory/types/createTupleTypeNode.d.ts +2 -0
  429. package/lib/factory/types/createTupleTypeNode.js +12 -0
  430. package/lib/factory/types/createTupleTypeNode.js.map +1 -0
  431. package/lib/factory/types/createTupleTypeNode.mjs +12 -0
  432. package/lib/factory/types/createTupleTypeNode.mjs.map +1 -0
  433. package/lib/factory/types/createTypeLiteralNode.d.ts +2 -0
  434. package/lib/factory/types/createTypeLiteralNode.js +12 -0
  435. package/lib/factory/types/createTypeLiteralNode.js.map +1 -0
  436. package/lib/factory/types/createTypeLiteralNode.mjs +12 -0
  437. package/lib/factory/types/createTypeLiteralNode.mjs.map +1 -0
  438. package/lib/factory/types/createTypeQueryNode.d.ts +2 -0
  439. package/lib/factory/types/createTypeQueryNode.js +10 -0
  440. package/lib/factory/types/createTypeQueryNode.js.map +1 -0
  441. package/lib/factory/types/createTypeQueryNode.mjs +10 -0
  442. package/lib/factory/types/createTypeQueryNode.mjs.map +1 -0
  443. package/lib/factory/types/createTypeReferenceNode.d.ts +2 -0
  444. package/lib/factory/types/createTypeReferenceNode.js +14 -0
  445. package/lib/factory/types/createTypeReferenceNode.js.map +1 -0
  446. package/lib/factory/types/createTypeReferenceNode.mjs +14 -0
  447. package/lib/factory/types/createTypeReferenceNode.mjs.map +1 -0
  448. package/lib/factory/types/createUnionTypeNode.d.ts +2 -0
  449. package/lib/factory/types/createUnionTypeNode.js +10 -0
  450. package/lib/factory/types/createUnionTypeNode.js.map +1 -0
  451. package/lib/factory/types/createUnionTypeNode.mjs +10 -0
  452. package/lib/factory/types/createUnionTypeNode.mjs.map +1 -0
  453. package/lib/helpers/ExpressionFactory.d.ts +10 -0
  454. package/lib/helpers/ExpressionFactory.js +19 -0
  455. package/lib/helpers/ExpressionFactory.js.map +1 -0
  456. package/lib/helpers/ExpressionFactory.mjs +19 -0
  457. package/lib/helpers/ExpressionFactory.mjs.map +1 -0
  458. package/lib/helpers/FormatCheatSheet.d.ts +25 -0
  459. package/lib/helpers/FormatCheatSheet.js +34 -0
  460. package/lib/helpers/FormatCheatSheet.js.map +1 -0
  461. package/lib/helpers/FormatCheatSheet.mjs +33 -0
  462. package/lib/helpers/FormatCheatSheet.mjs.map +1 -0
  463. package/lib/helpers/IdentifierFactory.d.ts +18 -0
  464. package/lib/helpers/IdentifierFactory.js +71 -0
  465. package/lib/helpers/IdentifierFactory.js.map +1 -0
  466. package/lib/helpers/IdentifierFactory.mjs +70 -0
  467. package/lib/helpers/IdentifierFactory.mjs.map +1 -0
  468. package/lib/helpers/LiteralFactory.d.ts +11 -0
  469. package/lib/helpers/LiteralFactory.js +58 -0
  470. package/lib/helpers/LiteralFactory.js.map +1 -0
  471. package/lib/helpers/LiteralFactory.mjs +58 -0
  472. package/lib/helpers/LiteralFactory.mjs.map +1 -0
  473. package/lib/helpers/StatementFactory.d.ts +17 -0
  474. package/lib/helpers/StatementFactory.js +26 -0
  475. package/lib/helpers/StatementFactory.js.map +1 -0
  476. package/lib/helpers/StatementFactory.mjs +26 -0
  477. package/lib/helpers/StatementFactory.mjs.map +1 -0
  478. package/lib/helpers/TypeFactory.d.ts +25 -0
  479. package/lib/helpers/TypeFactory.js +29 -0
  480. package/lib/helpers/TypeFactory.js.map +1 -0
  481. package/lib/helpers/TypeFactory.mjs +29 -0
  482. package/lib/helpers/TypeFactory.mjs.map +1 -0
  483. package/lib/index.d.ts +15 -0
  484. package/lib/index.js +66 -0
  485. package/lib/index.js.map +1 -0
  486. package/lib/index.mjs +18 -0
  487. package/lib/index.mjs.map +1 -0
  488. package/lib/nts.d.ts +7 -0
  489. package/lib/nts.js +45 -0
  490. package/lib/nts.js.map +1 -0
  491. package/lib/nts.mjs +12 -0
  492. package/lib/nts.mjs.map +1 -0
  493. package/lib/printers/TypeScriptPrinter.d.ts +19 -0
  494. package/lib/printers/TypeScriptPrinter.js +28 -0
  495. package/lib/printers/TypeScriptPrinter.js.map +1 -0
  496. package/lib/printers/TypeScriptPrinter.mjs +28 -0
  497. package/lib/printers/TypeScriptPrinter.mjs.map +1 -0
  498. package/lib/printers/internal/NodePrinter.d.ts +61 -0
  499. package/lib/printers/internal/NodePrinter.js +627 -0
  500. package/lib/printers/internal/NodePrinter.js.map +1 -0
  501. package/lib/printers/internal/NodePrinter.mjs +604 -0
  502. package/lib/printers/internal/NodePrinter.mjs.map +1 -0
  503. package/lib/structures/CommentNode.d.ts +7 -0
  504. package/lib/structures/CommentNode.js +3 -0
  505. package/lib/structures/CommentNode.js.map +1 -0
  506. package/lib/structures/EmitNode.d.ts +5 -0
  507. package/lib/structures/EmitNode.js +3 -0
  508. package/lib/structures/EmitNode.js.map +1 -0
  509. package/lib/structures/Node.d.ts +71 -0
  510. package/lib/structures/Node.js +3 -0
  511. package/lib/structures/Node.js.map +1 -0
  512. package/lib/structures/NodeArray.d.ts +7 -0
  513. package/lib/structures/NodeArray.js +3 -0
  514. package/lib/structures/NodeArray.js.map +1 -0
  515. package/lib/structures/NodeProps.d.ts +2 -0
  516. package/lib/structures/NodeProps.js +3 -0
  517. package/lib/structures/NodeProps.js.map +1 -0
  518. package/lib/structures/index.d.ts +5 -0
  519. package/lib/structures/index.js +3 -0
  520. package/lib/structures/index.js.map +1 -0
  521. package/lib/utils/asModuleSpecifier.d.ts +2 -0
  522. package/lib/utils/asModuleSpecifier.js +7 -0
  523. package/lib/utils/asModuleSpecifier.js.map +1 -0
  524. package/lib/utils/asModuleSpecifier.mjs +6 -0
  525. package/lib/utils/asModuleSpecifier.mjs.map +1 -0
  526. package/lib/utils/asName.d.ts +2 -0
  527. package/lib/utils/asName.js +7 -0
  528. package/lib/utils/asName.js.map +1 -0
  529. package/lib/utils/asName.mjs +6 -0
  530. package/lib/utils/asName.mjs.map +1 -0
  531. package/lib/utils/asToken.d.ts +2 -0
  532. package/lib/utils/asToken.js +7 -0
  533. package/lib/utils/asToken.js.map +1 -0
  534. package/lib/utils/asToken.mjs +6 -0
  535. package/lib/utils/asToken.mjs.map +1 -0
  536. package/lib/utils/createNode.d.ts +3 -0
  537. package/lib/utils/createNode.js +7 -0
  538. package/lib/utils/createNode.js.map +1 -0
  539. package/lib/utils/createNode.mjs +14 -0
  540. package/lib/utils/createNode.mjs.map +1 -0
  541. package/lib/utils/createNodeArray.d.ts +3 -0
  542. package/lib/utils/createNodeArray.js +14 -0
  543. package/lib/utils/createNodeArray.js.map +1 -0
  544. package/lib/utils/createNodeArray.mjs +12 -0
  545. package/lib/utils/createNodeArray.mjs.map +1 -0
  546. package/package.json +52 -0
  547. package/src/TypeScriptFactory.ts +8 -0
  548. package/src/constants/NodeFlags.ts +9 -0
  549. package/src/constants/SyntaxKind.ts +104 -0
  550. package/src/factory/bindings/createArrayBindingPattern.ts +10 -0
  551. package/src/factory/bindings/createBindingElement.ts +18 -0
  552. package/src/factory/declarations/createClassDeclaration.ts +29 -0
  553. package/src/factory/declarations/createFunctionDeclaration.ts +33 -0
  554. package/src/factory/declarations/createMethodDeclaration.ts +35 -0
  555. package/src/factory/declarations/createParameterDeclaration.ts +24 -0
  556. package/src/factory/declarations/createTypeAliasDeclaration.ts +24 -0
  557. package/src/factory/declarations/createVariableDeclaration.ts +18 -0
  558. package/src/factory/declarations/createVariableDeclarationList.ts +14 -0
  559. package/src/factory/declarations/createVariableStatement.ts +15 -0
  560. package/src/factory/declarations/updateClassDeclaration.ts +25 -0
  561. package/src/factory/declarations/updateMethodDeclaration.ts +29 -0
  562. package/src/factory/expressions/createArrayLiteralExpression.ts +14 -0
  563. package/src/factory/expressions/createArrowFunction.ts +32 -0
  564. package/src/factory/expressions/createAsExpression.ts +11 -0
  565. package/src/factory/expressions/createAwaitExpression.ts +10 -0
  566. package/src/factory/expressions/createBinaryExpression.ts +16 -0
  567. package/src/factory/expressions/createCallChain.ts +20 -0
  568. package/src/factory/expressions/createCallExpression.ts +17 -0
  569. package/src/factory/expressions/createConditionalExpression.ts +20 -0
  570. package/src/factory/expressions/createElementAccessChain.ts +19 -0
  571. package/src/factory/expressions/createElementAccessExpression.ts +16 -0
  572. package/src/factory/expressions/createLogicalNot.ts +7 -0
  573. package/src/factory/expressions/createNewExpression.ts +16 -0
  574. package/src/factory/expressions/createObjectLiteralExpression.ts +14 -0
  575. package/src/factory/expressions/createPrefixMinus.ts +7 -0
  576. package/src/factory/expressions/createPrefixUnaryExpression.ts +10 -0
  577. package/src/factory/expressions/createPropertyAccessChain.ts +19 -0
  578. package/src/factory/expressions/createPropertyAccessExpression.ts +17 -0
  579. package/src/factory/expressions/createPropertyAssignment.ts +14 -0
  580. package/src/factory/expressions/createShorthandPropertyAssignment.ts +14 -0
  581. package/src/factory/expressions/createSpreadAssignment.ts +7 -0
  582. package/src/factory/expressions/createStrictEquality.ts +11 -0
  583. package/src/factory/index.ts +86 -0
  584. package/src/factory/literals/createBigIntLiteral.ts +8 -0
  585. package/src/factory/literals/createFalse.ts +7 -0
  586. package/src/factory/literals/createIdentifier.ts +12 -0
  587. package/src/factory/literals/createNull.ts +7 -0
  588. package/src/factory/literals/createNumericLiteral.ts +10 -0
  589. package/src/factory/literals/createStringLiteral.ts +14 -0
  590. package/src/factory/literals/createTrue.ts +7 -0
  591. package/src/factory/modules/createExportDeclaration.ts +26 -0
  592. package/src/factory/modules/createImportClause.ts +16 -0
  593. package/src/factory/modules/createImportDeclaration.ts +21 -0
  594. package/src/factory/modules/createImportSpecifier.ts +16 -0
  595. package/src/factory/modules/createModuleBlock.ts +10 -0
  596. package/src/factory/modules/createModuleDeclaration.ts +23 -0
  597. package/src/factory/modules/createNamedImports.ts +10 -0
  598. package/src/factory/modules/createNamespaceExport.ts +8 -0
  599. package/src/factory/modules/createNamespaceImport.ts +8 -0
  600. package/src/factory/names/createQualifiedName.ts +14 -0
  601. package/src/factory/source-files/createSourceFile.ts +52 -0
  602. package/src/factory/source-files/updateSourceFile.ts +9 -0
  603. package/src/factory/statements/createBlock.ts +14 -0
  604. package/src/factory/statements/createCatchClause.ts +17 -0
  605. package/src/factory/statements/createContinueStatement.ts +10 -0
  606. package/src/factory/statements/createExpressionStatement.ts +7 -0
  607. package/src/factory/statements/createForOfStatement.ts +17 -0
  608. package/src/factory/statements/createIfStatement.ts +15 -0
  609. package/src/factory/statements/createReturnStatement.ts +7 -0
  610. package/src/factory/statements/createThrowStatement.ts +7 -0
  611. package/src/factory/statements/createTryStatement.ts +15 -0
  612. package/src/factory/templates/createTemplateExpression.ts +14 -0
  613. package/src/factory/templates/createTemplateHead.ts +7 -0
  614. package/src/factory/templates/createTemplateMiddle.ts +7 -0
  615. package/src/factory/templates/createTemplateSpan.ts +7 -0
  616. package/src/factory/templates/createTemplateTail.ts +7 -0
  617. package/src/factory/tokens/createDecorator.ts +10 -0
  618. package/src/factory/tokens/createModifier.ts +6 -0
  619. package/src/factory/tokens/createToken.ts +6 -0
  620. package/src/factory/types/createArrayTypeNode.ts +14 -0
  621. package/src/factory/types/createFunctionTypeNode.ts +18 -0
  622. package/src/factory/types/createIndexSignature.ts +16 -0
  623. package/src/factory/types/createIntersectionTypeNode.ts +10 -0
  624. package/src/factory/types/createKeywordTypeNode.ts +6 -0
  625. package/src/factory/types/createLiteralTypeNode.ts +7 -0
  626. package/src/factory/types/createOptionalTypeNode.ts +7 -0
  627. package/src/factory/types/createParenthesizedType.ts +7 -0
  628. package/src/factory/types/createPropertySignature.ts +20 -0
  629. package/src/factory/types/createRestTypeNode.ts +7 -0
  630. package/src/factory/types/createTemplateLiteralType.ts +14 -0
  631. package/src/factory/types/createTemplateLiteralTypeSpan.ts +7 -0
  632. package/src/factory/types/createTupleTypeNode.ts +10 -0
  633. package/src/factory/types/createTypeLiteralNode.ts +10 -0
  634. package/src/factory/types/createTypeQueryNode.ts +8 -0
  635. package/src/factory/types/createTypeReferenceNode.ts +15 -0
  636. package/src/factory/types/createUnionTypeNode.ts +8 -0
  637. package/src/helpers/ExpressionFactory.ts +20 -0
  638. package/src/helpers/FormatCheatSheet.ts +71 -0
  639. package/src/helpers/IdentifierFactory.ts +84 -0
  640. package/src/helpers/LiteralFactory.ts +59 -0
  641. package/src/helpers/StatementFactory.ts +57 -0
  642. package/src/helpers/TypeFactory.ts +30 -0
  643. package/src/index.ts +28 -0
  644. package/src/nts.ts +9 -0
  645. package/src/printers/TypeScriptPrinter.ts +51 -0
  646. package/src/printers/internal/NodePrinter.ts +758 -0
  647. package/src/structures/CommentNode.ts +7 -0
  648. package/src/structures/EmitNode.ts +6 -0
  649. package/src/structures/Node.ts +76 -0
  650. package/src/structures/NodeArray.ts +8 -0
  651. package/src/structures/NodeProps.ts +3 -0
  652. package/src/structures/index.ts +5 -0
  653. package/src/utils/asModuleSpecifier.ts +5 -0
  654. package/src/utils/asName.ts +5 -0
  655. package/src/utils/asToken.ts +5 -0
  656. package/src/utils/createNode.ts +13 -0
  657. package/src/utils/createNodeArray.ts +14 -0
@@ -0,0 +1,16 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+ import { createNodeArray } from "../../utils/createNodeArray";
5
+
6
+ export function createIndexSignature(
7
+ modifiers: readonly Node[] | undefined,
8
+ parameters: readonly Node[],
9
+ type: Node,
10
+ ): Node {
11
+ return createNode(SyntaxKind.IndexSignature, {
12
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
13
+ parameters: createNodeArray(parameters),
14
+ type,
15
+ });
16
+ }
@@ -0,0 +1,10 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+ import { createNodeArray } from "../../utils/createNodeArray";
5
+
6
+ export function createIntersectionTypeNode(types: readonly Node[] = []): Node {
7
+ return createNode(SyntaxKind.IntersectionType, {
8
+ types: createNodeArray(types),
9
+ });
10
+ }
@@ -0,0 +1,6 @@
1
+ import type { Node } from "../../structures/Node";
2
+ import { createNode } from "../../utils/createNode";
3
+
4
+ export function createKeywordTypeNode(kind: number): Node {
5
+ return createNode(kind);
6
+ }
@@ -0,0 +1,7 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+
5
+ export function createLiteralTypeNode(literal: Node): Node {
6
+ return createNode(SyntaxKind.LiteralType, { literal });
7
+ }
@@ -0,0 +1,7 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+
5
+ export function createOptionalTypeNode(type: Node): Node {
6
+ return createNode(SyntaxKind.OptionalType, { type });
7
+ }
@@ -0,0 +1,7 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+
5
+ export function createParenthesizedType(type: Node): Node {
6
+ return createNode(SyntaxKind.ParenthesizedType, { type });
7
+ }
@@ -0,0 +1,20 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { asName } from "../../utils/asName";
4
+ import { createNode } from "../../utils/createNode";
5
+ import { createNodeArray } from "../../utils/createNodeArray";
6
+
7
+ export function createPropertySignature(
8
+ modifiers: readonly Node[] | undefined,
9
+ name: string | Node,
10
+ questionToken: Node | undefined,
11
+ type: Node | undefined,
12
+ ): Node {
13
+ return createNode(SyntaxKind.PropertySignature, {
14
+ modifiers: modifiers ? createNodeArray(modifiers) : undefined,
15
+ name: asName(name),
16
+ questionToken,
17
+ type,
18
+ jsDoc: undefined,
19
+ });
20
+ }
@@ -0,0 +1,7 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+
5
+ export function createRestTypeNode(type: Node): Node {
6
+ return createNode(SyntaxKind.RestType, { type });
7
+ }
@@ -0,0 +1,14 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+ import { createNodeArray } from "../../utils/createNodeArray";
5
+
6
+ export function createTemplateLiteralType(
7
+ head: Node,
8
+ templateSpans: readonly Node[],
9
+ ): Node {
10
+ return createNode(SyntaxKind.TemplateLiteralType, {
11
+ head,
12
+ templateSpans: createNodeArray(templateSpans),
13
+ });
14
+ }
@@ -0,0 +1,7 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+
5
+ export function createTemplateLiteralTypeSpan(type: Node, literal: Node): Node {
6
+ return createNode(SyntaxKind.TemplateLiteralTypeSpan, { type, literal });
7
+ }
@@ -0,0 +1,10 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+ import { createNodeArray } from "../../utils/createNodeArray";
5
+
6
+ export function createTupleTypeNode(elements: readonly Node[] = []): Node {
7
+ return createNode(SyntaxKind.TupleType, {
8
+ elements: createNodeArray(elements),
9
+ });
10
+ }
@@ -0,0 +1,10 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+ import { createNodeArray } from "../../utils/createNodeArray";
5
+
6
+ export function createTypeLiteralNode(members: readonly Node[] = []): Node {
7
+ return createNode(SyntaxKind.TypeLiteral, {
8
+ members: createNodeArray(members),
9
+ });
10
+ }
@@ -0,0 +1,8 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { asName } from "../../utils/asName";
4
+ import { createNode } from "../../utils/createNode";
5
+
6
+ export function createTypeQueryNode(exprName: string | Node): Node {
7
+ return createNode(SyntaxKind.TypeQuery, { exprName: asName(exprName) });
8
+ }
@@ -0,0 +1,15 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { asName } from "../../utils/asName";
4
+ import { createNode } from "../../utils/createNode";
5
+ import { createNodeArray } from "../../utils/createNodeArray";
6
+
7
+ export function createTypeReferenceNode(
8
+ typeName: string | Node,
9
+ typeArguments?: readonly Node[],
10
+ ): Node {
11
+ return createNode(SyntaxKind.TypeReference, {
12
+ typeName: asName(typeName),
13
+ typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
14
+ });
15
+ }
@@ -0,0 +1,8 @@
1
+ import { SyntaxKind } from "../../constants/SyntaxKind";
2
+ import type { Node } from "../../structures/Node";
3
+ import { createNode } from "../../utils/createNode";
4
+ import { createNodeArray } from "../../utils/createNodeArray";
5
+
6
+ export function createUnionTypeNode(types: readonly Node[] = []): Node {
7
+ return createNode(SyntaxKind.UnionType, { types: createNodeArray(types) });
8
+ }
@@ -0,0 +1,20 @@
1
+ import { SyntaxKind } from "../constants/SyntaxKind";
2
+ import { createNumericLiteral } from "../factory/literals/createNumericLiteral";
3
+ import { createPrefixUnaryExpression } from "../factory/expressions/createPrefixUnaryExpression";
4
+ import type { Node } from "../structures/Node";
5
+
6
+ /**
7
+ * Numeric-literal helper that handles negative values via a leading
8
+ * `MinusToken` prefix unary, matching how the TypeScript factory itself
9
+ * emits negative numeric literals. Replaces the legacy `@typia/core`
10
+ * `ExpressionFactory.number` nestia previously imported.
11
+ */
12
+ export namespace ExpressionFactory {
13
+ export const number = (value: number): Node =>
14
+ value < 0
15
+ ? createPrefixUnaryExpression(
16
+ SyntaxKind.MinusToken,
17
+ createNumericLiteral(Math.abs(value)),
18
+ )
19
+ : createNumericLiteral(value);
20
+ }
@@ -0,0 +1,71 @@
1
+ const RegexCall = <Text extends string>(text: Text) =>
2
+ `${text}.test($input)` as const;
3
+
4
+ /** @reference https://github.dev/ajv-validator/ajv-formats/blob/master/src/formats.ts */
5
+ export const FormatCheatSheet = {
6
+ // SPECIAL CHARACTERS
7
+ byte: RegexCall(
8
+ `/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm`,
9
+ ),
10
+ password: `true`,
11
+ regex: `(() => { try { new RegExp($input); return true; } catch { return false; } })()`,
12
+ uuid: RegexCall(
13
+ `/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i`,
14
+ ),
15
+
16
+ // ADDRESSES
17
+ email: RegexCall(
18
+ `/^[a-z0-9!#$%&'*+/=?^_\`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i`,
19
+ ),
20
+ hostname: RegexCall(
21
+ `/^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i`,
22
+ ),
23
+ "idn-email": RegexCall(
24
+ `/^(([^<>()[\\]\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\"]+)*)|(\\".+\\"))@(([^<>()[\\]\\.,;:\\s@\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\"]{2,})$/i`,
25
+ ),
26
+ "idn-hostname": RegexCall(
27
+ `/^([a-z0-9\\u00a1-\\uffff0-9]+(-[a-z0-9\\u00a1-\\uffff0-9]+)*\\.)+[a-z\\u00a1-\\uffff]{2,}$/i`,
28
+ ),
29
+ iri: RegexCall(
30
+ `/^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020"<>\\\\^\`{|}]*$/u`,
31
+ ),
32
+ "iri-reference": RegexCall(
33
+ `/^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020"<>\\\\^\`{|}]*$/u`,
34
+ ),
35
+ ipv4: RegexCall(
36
+ `/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/`,
37
+ ),
38
+ ipv6: RegexCall(
39
+ `/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i`,
40
+ ),
41
+ uri: `${RegexCall(`/\\/|:/`)} && ${RegexCall(
42
+ `/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`,
43
+ )}`,
44
+ "uri-reference": RegexCall(
45
+ `/^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`,
46
+ ),
47
+ "uri-template": RegexCall(
48
+ `/^(?:(?:[^\\x00-\\x20"'<>%\\\\^\`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i`,
49
+ ),
50
+ url: RegexCall(
51
+ `/^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu`,
52
+ ),
53
+
54
+ // TIMESTAMPS
55
+ "date-time": RegexCall(
56
+ `/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T|\\s)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i`,
57
+ ),
58
+ date: RegexCall(`/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/`),
59
+ time: RegexCall(
60
+ `/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i`,
61
+ ),
62
+ duration: RegexCall(
63
+ `/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/`,
64
+ ),
65
+
66
+ // POINTERS
67
+ "json-pointer": RegexCall(`/^(?:\\/(?:[^~/]|~0|~1)*)*$/`),
68
+ "relative-json-pointer": RegexCall(
69
+ `/^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/`,
70
+ ),
71
+ } as const;
@@ -0,0 +1,84 @@
1
+ import { SyntaxKind } from "../constants/SyntaxKind";
2
+ import { createIdentifier } from "../factory/literals/createIdentifier";
3
+ import { createStringLiteral } from "../factory/literals/createStringLiteral";
4
+ import { createElementAccessChain } from "../factory/expressions/createElementAccessChain";
5
+ import { createElementAccessExpression } from "../factory/expressions/createElementAccessExpression";
6
+ import { createPropertyAccessChain } from "../factory/expressions/createPropertyAccessChain";
7
+ import { createPropertyAccessExpression } from "../factory/expressions/createPropertyAccessExpression";
8
+ import { createParameterDeclaration } from "../factory/declarations/createParameterDeclaration";
9
+ import { createToken } from "../factory/tokens/createToken";
10
+ import type { Node } from "../structures/Node";
11
+
12
+ import { TypeFactory } from "./TypeFactory";
13
+
14
+ // Conservative "is this string a syntactically valid JavaScript variable
15
+ // name?" test, inlined to avoid pulling in @typia/utils' full namespace from
16
+ // an ESM bundle that only exposes a `default` export.
17
+ const VARIABLE_REGEX = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
18
+ const isVariableName = (str: string): boolean => VARIABLE_REGEX.test(str);
19
+
20
+ /**
21
+ * Identifier and member-access helpers. Replaces the legacy `@typia/core`
22
+ * `IdentifierFactory` nestia previously depended on; the surface kept here is
23
+ * the subset nestia generators actually call (`access`, `parameter`).
24
+ */
25
+ export namespace IdentifierFactory {
26
+ /** Build an identifier or string literal depending on whether `name` is a
27
+ * valid JavaScript identifier. */
28
+ export const identifier = (name: string): Node =>
29
+ isVariableName(name) ? createIdentifier(name) : createStringLiteral(name);
30
+
31
+ /** Member access on `input` by `key`. Falls back to element access when
32
+ * the key is not a valid identifier. */
33
+ export const access = (input: Node, key: string, chain?: boolean): Node => {
34
+ const postfix = identifier(key);
35
+ const isElement = postfix.kind === SyntaxKind.StringLiteral;
36
+ if (chain === true) {
37
+ const dot = createToken(SyntaxKind.QuestionDotToken);
38
+ return isElement
39
+ ? createElementAccessChain(input, dot, postfix)
40
+ : createPropertyAccessChain(input, dot, postfix);
41
+ }
42
+ return isElement
43
+ ? createElementAccessExpression(input, postfix)
44
+ : createPropertyAccessExpression(input, postfix);
45
+ };
46
+
47
+ /** Recover the dotted name of a property/element-access chain. */
48
+ export const getName = (input: Node): string => {
49
+ if (input.kind === SyntaxKind.Identifier) {
50
+ const escaped = (input as { escapedText?: string }).escapedText;
51
+ if (typeof escaped === "string") return escaped;
52
+ return (input as { text?: string }).text ?? "";
53
+ }
54
+ if (input.kind === SyntaxKind.PropertyAccessExpression) {
55
+ const expr = (input as { expression?: Node }).expression;
56
+ const name = (input as { name?: Node }).name;
57
+ return name ? `${expr ? getName(expr) : ""}.${getName(name)}` : "";
58
+ }
59
+ if (input.kind === SyntaxKind.ElementAccessExpression) {
60
+ const expr = (input as { expression?: Node }).expression;
61
+ const arg = (input as { argumentExpression?: Node }).argumentExpression;
62
+ return arg ? `${expr ? getName(expr) : ""}[${getName(arg)}]` : "";
63
+ }
64
+ return "unknown";
65
+ };
66
+
67
+ /** Parameter declaration with default `any` type when the caller omits one. */
68
+ export const parameter = (
69
+ name: string | Node,
70
+ type?: Node,
71
+ init?: Node,
72
+ ): Node => {
73
+ const isQuestionToken =
74
+ (init as { kind?: number } | undefined)?.kind === SyntaxKind.QuestionToken;
75
+ return createParameterDeclaration(
76
+ undefined,
77
+ undefined,
78
+ name,
79
+ isQuestionToken ? createToken(SyntaxKind.QuestionToken) : undefined,
80
+ type ?? TypeFactory.keyword("any"),
81
+ isQuestionToken ? undefined : init,
82
+ );
83
+ };
84
+ }
@@ -0,0 +1,59 @@
1
+ import { SyntaxKind } from "../constants/SyntaxKind";
2
+ import { createArrayLiteralExpression } from "../factory/expressions/createArrayLiteralExpression";
3
+ import { createObjectLiteralExpression } from "../factory/expressions/createObjectLiteralExpression";
4
+ import { createPropertyAssignment } from "../factory/expressions/createPropertyAssignment";
5
+ import { createFalse } from "../factory/literals/createFalse";
6
+ import { createIdentifier } from "../factory/literals/createIdentifier";
7
+ import { createNull } from "../factory/literals/createNull";
8
+ import { createStringLiteral } from "../factory/literals/createStringLiteral";
9
+ import { createTrue } from "../factory/literals/createTrue";
10
+ import type { Node } from "../structures/Node";
11
+
12
+ import { ExpressionFactory } from "./ExpressionFactory";
13
+ import { IdentifierFactory } from "./IdentifierFactory";
14
+
15
+ const PASSTHROUGH_KINDS = new Set<number>([
16
+ SyntaxKind.ArrowFunction,
17
+ SyntaxKind.CallExpression,
18
+ SyntaxKind.Identifier,
19
+ ]);
20
+
21
+ const isNode = (value: unknown): value is Node =>
22
+ typeof value === "object" &&
23
+ value !== null &&
24
+ typeof (value as { kind?: unknown }).kind === "number";
25
+
26
+ /**
27
+ * Recursive value-to-AST-literal builder. Hands back already-AST inputs
28
+ * unchanged (so callers can mix factory output with raw JS values inside the
29
+ * same object/array), and emits the appropriate literal node otherwise.
30
+ * Replaces the legacy `@typia/core` `LiteralFactory.write` nestia generators
31
+ * previously imported.
32
+ */
33
+ export namespace LiteralFactory {
34
+ export const write = (input: any): Node => {
35
+ if (input === null) return createNull();
36
+ if (isNode(input) && PASSTHROUGH_KINDS.has(input.kind)) return input;
37
+ if (Array.isArray(input)) return writeArray(input);
38
+ if (typeof input === "object") return writeObject(input as object);
39
+ if (typeof input === "boolean") return input ? createTrue() : createFalse();
40
+ if (typeof input === "number") return ExpressionFactory.number(input);
41
+ if (typeof input === "string") return createStringLiteral(input);
42
+ if (typeof input === "bigint") return createStringLiteral(input.toString());
43
+ if (typeof input === "function") return createIdentifier("undefined");
44
+ throw new TypeError("LiteralFactory.write: unsupported input type.");
45
+ };
46
+
47
+ const writeObject = (obj: object): Node =>
48
+ createObjectLiteralExpression(
49
+ Object.entries(obj)
50
+ .filter(([, value]) => value !== undefined)
51
+ .map(([key, value]) =>
52
+ createPropertyAssignment(IdentifierFactory.identifier(key), write(value)),
53
+ ),
54
+ true,
55
+ );
56
+
57
+ const writeArray = (array: readonly any[]): Node =>
58
+ createArrayLiteralExpression(array.map(write), true);
59
+ }
@@ -0,0 +1,57 @@
1
+ import { NodeFlags } from "../constants/NodeFlags";
2
+ import { createVariableDeclaration } from "../factory/declarations/createVariableDeclaration";
3
+ import { createVariableDeclarationList } from "../factory/declarations/createVariableDeclarationList";
4
+ import { createVariableStatement } from "../factory/declarations/createVariableStatement";
5
+ import type { Node } from "../structures/Node";
6
+
7
+ import { TypeFactory } from "./TypeFactory";
8
+
9
+ /**
10
+ * Variable-statement helpers. `constant` emits `const`, `mut` emits `let`.
11
+ * Mirrors the legacy `@typia/core` `StatementFactory` nestia generators call.
12
+ */
13
+ export namespace StatementFactory {
14
+ export const mut = (props: {
15
+ name: string;
16
+ type?: Node | undefined;
17
+ initializer?: Node | undefined;
18
+ }): Node =>
19
+ createVariableStatement(
20
+ undefined,
21
+ createVariableDeclarationList(
22
+ [
23
+ createVariableDeclaration(
24
+ props.name,
25
+ undefined,
26
+ props.type !== undefined
27
+ ? props.type
28
+ : props.initializer === undefined
29
+ ? TypeFactory.keyword("any")
30
+ : undefined,
31
+ props.initializer,
32
+ ),
33
+ ],
34
+ NodeFlags.Let,
35
+ ),
36
+ );
37
+
38
+ export const constant = (props: {
39
+ name: string;
40
+ type?: Node | undefined;
41
+ value?: Node | undefined;
42
+ }): Node =>
43
+ createVariableStatement(
44
+ undefined,
45
+ createVariableDeclarationList(
46
+ [
47
+ createVariableDeclaration(
48
+ props.name,
49
+ undefined,
50
+ props.type,
51
+ props.value,
52
+ ),
53
+ ],
54
+ NodeFlags.Const,
55
+ ),
56
+ );
57
+ }
@@ -0,0 +1,30 @@
1
+ import { SyntaxKind } from "../constants/SyntaxKind";
2
+ import { createKeywordTypeNode } from "../factory/types/createKeywordTypeNode";
3
+ import type { Node } from "../structures/Node";
4
+
5
+ /**
6
+ * Higher-level type-keyword factory.
7
+ *
8
+ * Wraps {@link createKeywordTypeNode} with a name-based interface so generator
9
+ * code reads as `TypeFactory.keyword("any")` instead of selecting the
10
+ * `SyntaxKind.AnyKeyword` token by hand. Mirrors the legacy `@typia/core`
11
+ * `TypeFactory` namespace nestia previously depended on.
12
+ */
13
+ export namespace TypeFactory {
14
+ const KEYWORDS = {
15
+ void: SyntaxKind.VoidKeyword,
16
+ any: SyntaxKind.AnyKeyword,
17
+ unknown: SyntaxKind.UnknownKeyword,
18
+ boolean: SyntaxKind.BooleanKeyword,
19
+ number: SyntaxKind.NumberKeyword,
20
+ bigint: SyntaxKind.BigIntKeyword,
21
+ string: SyntaxKind.StringKeyword,
22
+ never: SyntaxKind.NeverKeyword,
23
+ undefined: SyntaxKind.UndefinedKeyword,
24
+ } as const;
25
+
26
+ export type Keyword = keyof typeof KEYWORDS;
27
+
28
+ export const keyword = (type: Keyword): Node =>
29
+ createKeywordTypeNode(KEYWORDS[type]);
30
+ }
package/src/index.ts ADDED
@@ -0,0 +1,28 @@
1
+ import { nts } from "./nts";
2
+
3
+ export { nts } from "./nts";
4
+ export { NodeFlags } from "./constants/NodeFlags";
5
+ export { SyntaxKind } from "./constants/SyntaxKind";
6
+ export * as factory from "./factory/index";
7
+ export { TypeScriptFactory } from "./TypeScriptFactory";
8
+ export { TypeScriptPrinter } from "./printers/TypeScriptPrinter";
9
+ export type {
10
+ CommentNode,
11
+ EmitNode,
12
+ Node,
13
+ NodeArray,
14
+ NodeProps,
15
+ } from "./structures";
16
+
17
+ // High-level helpers that wrap the factory primitives. These replace the
18
+ // legacy `@typia/core` helpers (IdentifierFactory, LiteralFactory, etc.)
19
+ // nestia generators previously imported, so nothing in nestia source needs
20
+ // to reach into `@typia/core` for AST construction anymore.
21
+ export { ExpressionFactory } from "./helpers/ExpressionFactory";
22
+ export { FormatCheatSheet } from "./helpers/FormatCheatSheet";
23
+ export { IdentifierFactory } from "./helpers/IdentifierFactory";
24
+ export { LiteralFactory } from "./helpers/LiteralFactory";
25
+ export { StatementFactory } from "./helpers/StatementFactory";
26
+ export { TypeFactory } from "./helpers/TypeFactory";
27
+
28
+ export default nts;
package/src/nts.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { TypeScriptFactory } from "./TypeScriptFactory";
2
+ import * as factory from "./factory/index";
3
+ import { TypeScriptPrinter } from "./printers/TypeScriptPrinter";
4
+
5
+ export const nts = {
6
+ factory,
7
+ TypeScriptFactory,
8
+ TypeScriptPrinter,
9
+ } as const;
@@ -0,0 +1,51 @@
1
+ import { TypeScriptFactory } from "../TypeScriptFactory";
2
+ import { NodeFlags } from "../constants/NodeFlags";
3
+ import { SyntaxKind } from "../constants/SyntaxKind";
4
+ import type { Node } from "../structures/Node";
5
+ import { NodePrinter } from "./internal/NodePrinter";
6
+
7
+ export class TypeScriptPrinter {
8
+ private readonly printer: NodePrinter;
9
+
10
+ public constructor() {
11
+ this.printer = new NodePrinter();
12
+ }
13
+
14
+ public printFile(file: Node): string {
15
+ return this.printer.printFile(file);
16
+ }
17
+
18
+ public printStatements(
19
+ statements: readonly Node[],
20
+ props: TypeScriptPrinter.IPrintStatementsProps = {},
21
+ ): string {
22
+ const file = TypeScriptFactory.createSourceFile(
23
+ statements,
24
+ props.endOfFileToken ??
25
+ TypeScriptFactory.createToken(SyntaxKind.EndOfFileToken),
26
+ props.flags ?? NodeFlags.None,
27
+ );
28
+
29
+ return (props.top ?? "") + this.printFile(file);
30
+ }
31
+
32
+ public printNode(_hint: unknown, node: Node, _sourceFile?: Node): string {
33
+ return this.printer.printNode(node);
34
+ }
35
+
36
+ public static write(props: TypeScriptPrinter.IWriteProps): string {
37
+ return new TypeScriptPrinter().printStatements(props.statements, props);
38
+ }
39
+ }
40
+
41
+ export namespace TypeScriptPrinter {
42
+ export interface IPrintStatementsProps {
43
+ endOfFileToken?: Node;
44
+ flags?: number;
45
+ top?: string;
46
+ }
47
+
48
+ export interface IWriteProps extends IPrintStatementsProps {
49
+ statements: readonly Node[];
50
+ }
51
+ }