@gqlkit-ts/cli 0.0.1 → 0.2.0

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 (362) hide show
  1. package/LICENSE +21 -0
  2. package/dist/auto-type-generator/auto-type-generator.d.ts +62 -0
  3. package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -0
  4. package/dist/auto-type-generator/auto-type-generator.js +540 -0
  5. package/dist/auto-type-generator/auto-type-generator.js.map +1 -0
  6. package/dist/auto-type-generator/index.d.ts +4 -0
  7. package/dist/auto-type-generator/index.d.ts.map +1 -0
  8. package/dist/auto-type-generator/index.js +3 -0
  9. package/dist/auto-type-generator/index.js.map +1 -0
  10. package/dist/auto-type-generator/inline-enum-collector.d.ts +31 -0
  11. package/dist/auto-type-generator/inline-enum-collector.d.ts.map +1 -0
  12. package/dist/auto-type-generator/inline-enum-collector.js +157 -0
  13. package/dist/auto-type-generator/inline-enum-collector.js.map +1 -0
  14. package/dist/auto-type-generator/name-collision-validator.d.ts +17 -0
  15. package/dist/auto-type-generator/name-collision-validator.d.ts.map +1 -0
  16. package/dist/auto-type-generator/name-collision-validator.js +68 -0
  17. package/dist/auto-type-generator/name-collision-validator.js.map +1 -0
  18. package/dist/auto-type-generator/naming-convention.d.ts +44 -0
  19. package/dist/auto-type-generator/naming-convention.d.ts.map +1 -0
  20. package/dist/auto-type-generator/naming-convention.js +67 -0
  21. package/dist/auto-type-generator/naming-convention.js.map +1 -0
  22. package/dist/cli.d.ts +2 -0
  23. package/dist/cli.d.ts.map +1 -0
  24. package/dist/cli.js +11 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/commands/gen.d.ts +32 -0
  27. package/dist/commands/gen.d.ts.map +1 -0
  28. package/dist/commands/gen.js +101 -0
  29. package/dist/commands/gen.js.map +1 -0
  30. package/dist/commands/main.d.ts +12 -0
  31. package/dist/commands/main.d.ts.map +1 -0
  32. package/dist/commands/main.js +5 -0
  33. package/dist/commands/main.js.map +1 -0
  34. package/dist/config/define-config.d.ts +26 -0
  35. package/dist/config/define-config.d.ts.map +1 -0
  36. package/dist/config/define-config.js +27 -0
  37. package/dist/config/define-config.js.map +1 -0
  38. package/dist/config/index.d.ts +3 -0
  39. package/dist/config/index.d.ts.map +1 -0
  40. package/dist/config/index.js +2 -0
  41. package/dist/config/index.js.map +1 -0
  42. package/dist/config/types.d.ts +131 -0
  43. package/dist/config/types.d.ts.map +1 -0
  44. package/dist/config/types.js +2 -0
  45. package/dist/config/types.js.map +1 -0
  46. package/dist/config-loader/index.d.ts +3 -0
  47. package/dist/config-loader/index.d.ts.map +1 -0
  48. package/dist/config-loader/index.js +2 -0
  49. package/dist/config-loader/index.js.map +1 -0
  50. package/dist/config-loader/loader.d.ts +50 -0
  51. package/dist/config-loader/loader.d.ts.map +1 -0
  52. package/dist/config-loader/loader.js +78 -0
  53. package/dist/config-loader/loader.js.map +1 -0
  54. package/dist/config-loader/validator.d.ts +13 -0
  55. package/dist/config-loader/validator.d.ts.map +1 -0
  56. package/dist/config-loader/validator.js +497 -0
  57. package/dist/config-loader/validator.js.map +1 -0
  58. package/dist/gen-orchestrator/hook-executor/hook-executor.d.ts +25 -0
  59. package/dist/gen-orchestrator/hook-executor/hook-executor.d.ts.map +1 -0
  60. package/dist/gen-orchestrator/hook-executor/hook-executor.js +68 -0
  61. package/dist/gen-orchestrator/hook-executor/hook-executor.js.map +1 -0
  62. package/dist/gen-orchestrator/orchestrator.d.ts +30 -0
  63. package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -0
  64. package/dist/gen-orchestrator/orchestrator.js +505 -0
  65. package/dist/gen-orchestrator/orchestrator.js.map +1 -0
  66. package/dist/gen-orchestrator/reporter/diagnostic-reporter.d.ts +9 -0
  67. package/dist/gen-orchestrator/reporter/diagnostic-reporter.d.ts.map +1 -0
  68. package/dist/gen-orchestrator/reporter/diagnostic-reporter.js +32 -0
  69. package/dist/gen-orchestrator/reporter/diagnostic-reporter.js.map +1 -0
  70. package/dist/gen-orchestrator/reporter/progress-reporter.d.ts +19 -0
  71. package/dist/gen-orchestrator/reporter/progress-reporter.d.ts.map +1 -0
  72. package/dist/gen-orchestrator/reporter/progress-reporter.js +38 -0
  73. package/dist/gen-orchestrator/reporter/progress-reporter.js.map +1 -0
  74. package/dist/gen-orchestrator/writer/file-writer.d.ts +13 -0
  75. package/dist/gen-orchestrator/writer/file-writer.d.ts.map +1 -0
  76. package/dist/gen-orchestrator/writer/file-writer.js +22 -0
  77. package/dist/gen-orchestrator/writer/file-writer.js.map +1 -0
  78. package/dist/index.d.ts +3 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +2 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/resolver-extractor/extract-resolvers.d.ts +49 -0
  83. package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -0
  84. package/dist/resolver-extractor/extract-resolvers.js +2 -0
  85. package/dist/resolver-extractor/extract-resolvers.js.map +1 -0
  86. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +60 -0
  87. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -0
  88. package/dist/resolver-extractor/extractor/define-api-extractor.js +509 -0
  89. package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -0
  90. package/dist/resolver-extractor/index.d.ts +5 -0
  91. package/dist/resolver-extractor/index.d.ts.map +1 -0
  92. package/dist/resolver-extractor/index.js +2 -0
  93. package/dist/resolver-extractor/index.js.map +1 -0
  94. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +25 -0
  95. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -0
  96. package/dist/resolver-extractor/validator/abstract-resolver-validator.js +172 -0
  97. package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -0
  98. package/dist/resolver-extractor/validator/only-validator.d.ts +61 -0
  99. package/dist/resolver-extractor/validator/only-validator.d.ts.map +1 -0
  100. package/dist/resolver-extractor/validator/only-validator.js +76 -0
  101. package/dist/resolver-extractor/validator/only-validator.js.map +1 -0
  102. package/dist/schema-generator/builder/ast-builder.d.ts +7 -0
  103. package/dist/schema-generator/builder/ast-builder.d.ts.map +1 -0
  104. package/dist/schema-generator/builder/ast-builder.js +417 -0
  105. package/dist/schema-generator/builder/ast-builder.js.map +1 -0
  106. package/dist/schema-generator/emitter/code-emitter.d.ts +15 -0
  107. package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -0
  108. package/dist/schema-generator/emitter/code-emitter.js +216 -0
  109. package/dist/schema-generator/emitter/code-emitter.js.map +1 -0
  110. package/dist/schema-generator/emitter/sdl-emitter.d.ts +7 -0
  111. package/dist/schema-generator/emitter/sdl-emitter.d.ts.map +1 -0
  112. package/dist/schema-generator/emitter/sdl-emitter.js +11 -0
  113. package/dist/schema-generator/emitter/sdl-emitter.js.map +1 -0
  114. package/dist/schema-generator/generate-schema.d.ts +26 -0
  115. package/dist/schema-generator/generate-schema.d.ts.map +1 -0
  116. package/dist/schema-generator/generate-schema.js +93 -0
  117. package/dist/schema-generator/generate-schema.js.map +1 -0
  118. package/dist/schema-generator/index.d.ts +4 -0
  119. package/dist/schema-generator/index.d.ts.map +1 -0
  120. package/dist/schema-generator/index.js +2 -0
  121. package/dist/schema-generator/index.js.map +1 -0
  122. package/dist/schema-generator/integrator/result-integrator.d.ts +113 -0
  123. package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -0
  124. package/dist/schema-generator/integrator/result-integrator.js +438 -0
  125. package/dist/schema-generator/integrator/result-integrator.js.map +1 -0
  126. package/dist/schema-generator/pruner/schema-pruner.d.ts +16 -0
  127. package/dist/schema-generator/pruner/schema-pruner.d.ts.map +1 -0
  128. package/dist/schema-generator/pruner/schema-pruner.js +66 -0
  129. package/dist/schema-generator/pruner/schema-pruner.js.map +1 -0
  130. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +24 -0
  131. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -0
  132. package/dist/schema-generator/resolver-collector/resolver-collector.js +61 -0
  133. package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -0
  134. package/dist/shared/constants.d.ts +54 -0
  135. package/dist/shared/constants.d.ts.map +1 -0
  136. package/dist/shared/constants.js +109 -0
  137. package/dist/shared/constants.js.map +1 -0
  138. package/dist/shared/default-value-detector.d.ts +40 -0
  139. package/dist/shared/default-value-detector.d.ts.map +1 -0
  140. package/dist/shared/default-value-detector.js +124 -0
  141. package/dist/shared/default-value-detector.js.map +1 -0
  142. package/dist/shared/diagnostics.d.ts +4 -0
  143. package/dist/shared/diagnostics.d.ts.map +1 -0
  144. package/dist/shared/diagnostics.js +25 -0
  145. package/dist/shared/diagnostics.js.map +1 -0
  146. package/dist/shared/directive-definition-extractor.d.ts +64 -0
  147. package/dist/shared/directive-definition-extractor.d.ts.map +1 -0
  148. package/dist/shared/directive-definition-extractor.js +399 -0
  149. package/dist/shared/directive-definition-extractor.js.map +1 -0
  150. package/dist/shared/directive-detector.d.ts +102 -0
  151. package/dist/shared/directive-detector.d.ts.map +1 -0
  152. package/dist/shared/directive-detector.js +415 -0
  153. package/dist/shared/directive-detector.js.map +1 -0
  154. package/dist/shared/file-scanner.d.ts +25 -0
  155. package/dist/shared/file-scanner.d.ts.map +1 -0
  156. package/dist/shared/file-scanner.js +101 -0
  157. package/dist/shared/file-scanner.js.map +1 -0
  158. package/dist/shared/index.d.ts +10 -0
  159. package/dist/shared/index.d.ts.map +1 -0
  160. package/dist/shared/index.js +6 -0
  161. package/dist/shared/index.js.map +1 -0
  162. package/dist/shared/inline-object-extractor.d.ts +13 -0
  163. package/dist/shared/inline-object-extractor.d.ts.map +1 -0
  164. package/dist/shared/inline-object-extractor.js +65 -0
  165. package/dist/shared/inline-object-extractor.js.map +1 -0
  166. package/dist/shared/inline-object-utils.d.ts +7 -0
  167. package/dist/shared/inline-object-utils.d.ts.map +1 -0
  168. package/dist/shared/inline-object-utils.js +23 -0
  169. package/dist/shared/inline-object-utils.js.map +1 -0
  170. package/dist/shared/interface-detector.d.ts +23 -0
  171. package/dist/shared/interface-detector.d.ts.map +1 -0
  172. package/dist/shared/interface-detector.js +133 -0
  173. package/dist/shared/interface-detector.js.map +1 -0
  174. package/dist/shared/interface-validator.d.ts +9 -0
  175. package/dist/shared/interface-validator.d.ts.map +1 -0
  176. package/dist/shared/interface-validator.js +152 -0
  177. package/dist/shared/interface-validator.js.map +1 -0
  178. package/dist/shared/metadata-detector.d.ts +65 -0
  179. package/dist/shared/metadata-detector.d.ts.map +1 -0
  180. package/dist/shared/metadata-detector.js +333 -0
  181. package/dist/shared/metadata-detector.js.map +1 -0
  182. package/dist/shared/path-utils.d.ts +2 -0
  183. package/dist/shared/path-utils.d.ts.map +1 -0
  184. package/dist/shared/path-utils.js +4 -0
  185. package/dist/shared/path-utils.js.map +1 -0
  186. package/dist/shared/program-factory.d.ts +14 -0
  187. package/dist/shared/program-factory.d.ts.map +1 -0
  188. package/dist/shared/program-factory.js +29 -0
  189. package/dist/shared/program-factory.js.map +1 -0
  190. package/dist/shared/source-location.d.ts +11 -0
  191. package/dist/shared/source-location.d.ts.map +1 -0
  192. package/dist/shared/source-location.js +15 -0
  193. package/dist/shared/source-location.js.map +1 -0
  194. package/dist/shared/tsconfig-loader.d.ts +13 -0
  195. package/dist/shared/tsconfig-loader.d.ts.map +1 -0
  196. package/dist/shared/tsconfig-loader.js +90 -0
  197. package/dist/shared/tsconfig-loader.js.map +1 -0
  198. package/dist/shared/tsdoc-parser.d.ts +12 -0
  199. package/dist/shared/tsdoc-parser.d.ts.map +1 -0
  200. package/dist/shared/tsdoc-parser.js +101 -0
  201. package/dist/shared/tsdoc-parser.js.map +1 -0
  202. package/dist/shared/type-converter.d.ts +3 -0
  203. package/dist/shared/type-converter.d.ts.map +1 -0
  204. package/dist/shared/type-converter.js +83 -0
  205. package/dist/shared/type-converter.js.map +1 -0
  206. package/dist/shared/typescript-utils.d.ts +82 -0
  207. package/dist/shared/typescript-utils.d.ts.map +1 -0
  208. package/dist/shared/typescript-utils.js +197 -0
  209. package/dist/shared/typescript-utils.js.map +1 -0
  210. package/dist/type-extractor/collector/result-collector.d.ts +7 -0
  211. package/dist/type-extractor/collector/result-collector.d.ts.map +1 -0
  212. package/dist/type-extractor/collector/result-collector.js +35 -0
  213. package/dist/type-extractor/collector/result-collector.js.map +1 -0
  214. package/dist/type-extractor/collector/scalar-collector.d.ts +108 -0
  215. package/dist/type-extractor/collector/scalar-collector.d.ts.map +1 -0
  216. package/dist/type-extractor/collector/scalar-collector.js +123 -0
  217. package/dist/type-extractor/collector/scalar-collector.js.map +1 -0
  218. package/dist/type-extractor/converter/field-eligibility.d.ts +34 -0
  219. package/dist/type-extractor/converter/field-eligibility.d.ts.map +1 -0
  220. package/dist/type-extractor/converter/field-eligibility.js +89 -0
  221. package/dist/type-extractor/converter/field-eligibility.js.map +1 -0
  222. package/dist/type-extractor/converter/graphql-converter.d.ts +7 -0
  223. package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -0
  224. package/dist/type-extractor/converter/graphql-converter.js +338 -0
  225. package/dist/type-extractor/converter/graphql-converter.js.map +1 -0
  226. package/dist/type-extractor/extract-types.d.ts +2 -0
  227. package/dist/type-extractor/extract-types.d.ts.map +1 -0
  228. package/dist/type-extractor/extract-types.js +2 -0
  229. package/dist/type-extractor/extract-types.js.map +1 -0
  230. package/dist/type-extractor/extractor/field-type-resolver.d.ts +28 -0
  231. package/dist/type-extractor/extractor/field-type-resolver.d.ts.map +1 -0
  232. package/dist/type-extractor/extractor/field-type-resolver.js +394 -0
  233. package/dist/type-extractor/extractor/field-type-resolver.js.map +1 -0
  234. package/dist/type-extractor/extractor/type-extractor.d.ts +36 -0
  235. package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -0
  236. package/dist/type-extractor/extractor/type-extractor.js +1082 -0
  237. package/dist/type-extractor/extractor/type-extractor.js.map +1 -0
  238. package/dist/type-extractor/extractor/type-name-collector.d.ts +24 -0
  239. package/dist/type-extractor/extractor/type-name-collector.d.ts.map +1 -0
  240. package/dist/type-extractor/extractor/type-name-collector.js +102 -0
  241. package/dist/type-extractor/extractor/type-name-collector.js.map +1 -0
  242. package/dist/type-extractor/index.d.ts +4 -0
  243. package/dist/type-extractor/index.d.ts.map +1 -0
  244. package/dist/type-extractor/index.js +2 -0
  245. package/dist/type-extractor/index.js.map +1 -0
  246. package/dist/type-extractor/mapper/scalar-base-type-mapper.d.ts +89 -0
  247. package/dist/type-extractor/mapper/scalar-base-type-mapper.d.ts.map +1 -0
  248. package/dist/type-extractor/mapper/scalar-base-type-mapper.js +158 -0
  249. package/dist/type-extractor/mapper/scalar-base-type-mapper.js.map +1 -0
  250. package/dist/type-extractor/types/diagnostics.d.ts +17 -0
  251. package/dist/type-extractor/types/diagnostics.d.ts.map +1 -0
  252. package/dist/type-extractor/types/diagnostics.js +2 -0
  253. package/dist/type-extractor/types/diagnostics.js.map +1 -0
  254. package/dist/type-extractor/types/graphql.d.ts +42 -0
  255. package/dist/type-extractor/types/graphql.d.ts.map +1 -0
  256. package/dist/type-extractor/types/graphql.js +2 -0
  257. package/dist/type-extractor/types/graphql.js.map +1 -0
  258. package/dist/type-extractor/types/index.d.ts +6 -0
  259. package/dist/type-extractor/types/index.d.ts.map +1 -0
  260. package/dist/type-extractor/types/index.js +2 -0
  261. package/dist/type-extractor/types/index.js.map +1 -0
  262. package/dist/type-extractor/types/ts-type-reference-factory.d.ts +39 -0
  263. package/dist/type-extractor/types/ts-type-reference-factory.d.ts.map +1 -0
  264. package/dist/type-extractor/types/ts-type-reference-factory.js +69 -0
  265. package/dist/type-extractor/types/ts-type-reference-factory.js.map +1 -0
  266. package/dist/type-extractor/types/typescript.d.ts +106 -0
  267. package/dist/type-extractor/types/typescript.d.ts.map +1 -0
  268. package/dist/type-extractor/types/typescript.js +2 -0
  269. package/dist/type-extractor/types/typescript.js.map +1 -0
  270. package/dist/type-extractor/validator/type-validator.d.ts +11 -0
  271. package/dist/type-extractor/validator/type-validator.d.ts.map +1 -0
  272. package/dist/type-extractor/validator/type-validator.js +53 -0
  273. package/dist/type-extractor/validator/type-validator.js.map +1 -0
  274. package/docs/configuration.md +163 -0
  275. package/docs/getting-started.md +117 -0
  276. package/docs/index.md +33 -0
  277. package/docs/integration/apollo.md +109 -0
  278. package/docs/integration/drizzle.md +191 -0
  279. package/docs/integration/yoga.md +108 -0
  280. package/docs/schema/abstract-resolvers.md +146 -0
  281. package/docs/schema/directives.md +196 -0
  282. package/docs/schema/documentation.md +176 -0
  283. package/docs/schema/enums.md +370 -0
  284. package/docs/schema/fields.md +186 -0
  285. package/docs/schema/index.md +38 -0
  286. package/docs/schema/inputs.md +279 -0
  287. package/docs/schema/interfaces.md +178 -0
  288. package/docs/schema/objects.md +188 -0
  289. package/docs/schema/queries-mutations.md +207 -0
  290. package/docs/schema/scalars.md +194 -0
  291. package/docs/schema/unions.md +90 -0
  292. package/docs/what-is-gqlkit.md +22 -0
  293. package/package.json +66 -7
  294. package/src/auto-type-generator/auto-type-generator.ts +925 -0
  295. package/src/auto-type-generator/index.ts +21 -0
  296. package/src/auto-type-generator/inline-enum-collector.ts +290 -0
  297. package/src/auto-type-generator/name-collision-validator.ts +119 -0
  298. package/src/auto-type-generator/naming-convention.ts +126 -0
  299. package/src/cli.ts +11 -0
  300. package/src/commands/gen.ts +141 -0
  301. package/src/commands/main.ts +5 -0
  302. package/src/config/define-config.ts +28 -0
  303. package/src/config/index.ts +7 -0
  304. package/src/config/types.ts +144 -0
  305. package/src/config-loader/index.ts +14 -0
  306. package/src/config-loader/loader.ts +143 -0
  307. package/src/config-loader/validator.ts +672 -0
  308. package/src/gen-orchestrator/hook-executor/hook-executor.ts +117 -0
  309. package/src/gen-orchestrator/orchestrator.ts +784 -0
  310. package/src/gen-orchestrator/reporter/diagnostic-reporter.ts +44 -0
  311. package/src/gen-orchestrator/reporter/progress-reporter.ts +61 -0
  312. package/src/gen-orchestrator/writer/file-writer.ts +38 -0
  313. package/src/index.ts +2 -0
  314. package/src/resolver-extractor/extract-resolvers.ts +63 -0
  315. package/src/resolver-extractor/extractor/define-api-extractor.ts +806 -0
  316. package/src/resolver-extractor/index.ts +19 -0
  317. package/src/resolver-extractor/validator/abstract-resolver-validator.ts +251 -0
  318. package/src/resolver-extractor/validator/only-validator.ts +158 -0
  319. package/src/schema-generator/builder/ast-builder.ts +706 -0
  320. package/src/schema-generator/emitter/code-emitter.ts +351 -0
  321. package/src/schema-generator/emitter/sdl-emitter.ts +13 -0
  322. package/src/schema-generator/generate-schema.ts +170 -0
  323. package/src/schema-generator/index.ts +19 -0
  324. package/src/schema-generator/integrator/result-integrator.ts +690 -0
  325. package/src/schema-generator/pruner/schema-pruner.ts +112 -0
  326. package/src/schema-generator/resolver-collector/resolver-collector.ts +123 -0
  327. package/src/shared/constants.ts +122 -0
  328. package/src/shared/default-value-detector.ts +172 -0
  329. package/src/shared/diagnostics.ts +35 -0
  330. package/src/shared/directive-definition-extractor.ts +564 -0
  331. package/src/shared/directive-detector.ts +556 -0
  332. package/src/shared/file-scanner.ts +170 -0
  333. package/src/shared/index.ts +32 -0
  334. package/src/shared/inline-object-extractor.ts +102 -0
  335. package/src/shared/inline-object-utils.ts +23 -0
  336. package/src/shared/interface-detector.ts +176 -0
  337. package/src/shared/interface-validator.ts +211 -0
  338. package/src/shared/metadata-detector.ts +443 -0
  339. package/src/shared/path-utils.ts +3 -0
  340. package/src/shared/program-factory.ts +51 -0
  341. package/src/shared/source-location.ts +27 -0
  342. package/src/shared/tsconfig-loader.ts +126 -0
  343. package/src/shared/tsdoc-parser.ts +155 -0
  344. package/src/shared/type-converter.ts +99 -0
  345. package/src/shared/typescript-utils.ts +246 -0
  346. package/src/type-extractor/collector/result-collector.ts +57 -0
  347. package/src/type-extractor/collector/scalar-collector.ts +254 -0
  348. package/src/type-extractor/converter/field-eligibility.ts +112 -0
  349. package/src/type-extractor/converter/graphql-converter.ts +459 -0
  350. package/src/type-extractor/extract-types.ts +1 -0
  351. package/src/type-extractor/extractor/field-type-resolver.ts +569 -0
  352. package/src/type-extractor/extractor/type-extractor.ts +1567 -0
  353. package/src/type-extractor/extractor/type-name-collector.ts +130 -0
  354. package/src/type-extractor/index.ts +20 -0
  355. package/src/type-extractor/mapper/scalar-base-type-mapper.ts +265 -0
  356. package/src/type-extractor/types/diagnostics.ts +99 -0
  357. package/src/type-extractor/types/graphql.ts +55 -0
  358. package/src/type-extractor/types/index.ts +37 -0
  359. package/src/type-extractor/types/ts-type-reference-factory.ts +137 -0
  360. package/src/type-extractor/types/typescript.ts +133 -0
  361. package/src/type-extractor/validator/type-validator.ts +77 -0
  362. package/README.md +0 -45
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Scalar metadata detector.
3
+ *
4
+ * This module provides functions to detect scalar metadata embedded
5
+ * in TypeScript intersection types using the $gqlkitScalar property.
6
+ */
7
+ import ts from "typescript";
8
+ import { METADATA_PROPERTIES } from "./constants.js";
9
+ import { isNullOrUndefined } from "./typescript-utils.js";
10
+ const SCALAR_METADATA_PROPERTY = METADATA_PROPERTIES.SCALAR;
11
+ function createDefaultResult() {
12
+ return {
13
+ scalarName: null,
14
+ only: null,
15
+ nullable: false,
16
+ isList: false,
17
+ listItemNullable: false,
18
+ isPrimitive: false,
19
+ isObjectType: false,
20
+ error: undefined,
21
+ };
22
+ }
23
+ /**
24
+ * Extracts the actual type from an optional property type (T | undefined).
25
+ * Used by both scalar and resolver metadata detection.
26
+ *
27
+ * For simple cases like `T | undefined`, returns T.
28
+ * For union cases like `T | null | undefined`, returns the original union type
29
+ * so the caller can analyze it (e.g., check for null members).
30
+ * For boolean types (true | false | undefined), reconstructs the boolean type.
31
+ *
32
+ * @param metadataType - The type of the metadata property (may be union with undefined)
33
+ * @returns The actual type excluding undefined, or null if extraction fails
34
+ */
35
+ export function getActualMetadataType(metadataType) {
36
+ if (metadataType.isUnion()) {
37
+ const nonUndefinedTypes = metadataType.types.filter((t) => !(t.flags & ts.TypeFlags.Undefined));
38
+ if (nonUndefinedTypes.length === 1) {
39
+ return nonUndefinedTypes[0];
40
+ }
41
+ // Special case: boolean (true | false) optionally with undefined
42
+ // TypeScript represents boolean | undefined as true | false | undefined
43
+ if (nonUndefinedTypes.length === 2 &&
44
+ nonUndefinedTypes.every((t) => t.flags & ts.TypeFlags.BooleanLiteral)) {
45
+ // This is effectively "boolean" - return the first member to preserve
46
+ // the boolean literal nature, or we could return the union
47
+ return metadataType;
48
+ }
49
+ // If there are multiple non-undefined types (e.g., string | null),
50
+ // return the original metadataType. The caller should analyze this
51
+ // union type and handle null members appropriately.
52
+ if (nonUndefinedTypes.length > 1) {
53
+ // Return the original type - caller will need to filter out undefined
54
+ // when checking for nullability
55
+ return metadataType;
56
+ }
57
+ return null;
58
+ }
59
+ return metadataType;
60
+ }
61
+ function extractMetadataFromType(type, checker) {
62
+ const metadataProp = type.getProperty(SCALAR_METADATA_PROPERTY);
63
+ if (!metadataProp) {
64
+ return null;
65
+ }
66
+ const rawMetadataType = checker.getTypeOfSymbol(metadataProp);
67
+ const metadataType = getActualMetadataType(rawMetadataType);
68
+ if (!metadataType) {
69
+ return null;
70
+ }
71
+ const nameProp = metadataType.getProperty("name");
72
+ if (!nameProp) {
73
+ return null;
74
+ }
75
+ const nameType = checker.getTypeOfSymbol(nameProp);
76
+ if (!(nameType.flags & ts.TypeFlags.StringLiteral)) {
77
+ return null;
78
+ }
79
+ const scalarName = nameType.value;
80
+ const onlyProp = metadataType.getProperty("only");
81
+ let only = null;
82
+ if (onlyProp) {
83
+ const onlyType = checker.getTypeOfSymbol(onlyProp);
84
+ if (onlyType.flags & ts.TypeFlags.StringLiteral) {
85
+ const onlyValue = onlyType.value;
86
+ if (onlyValue === "input" || onlyValue === "output") {
87
+ only = onlyValue;
88
+ }
89
+ }
90
+ }
91
+ return {
92
+ scalarName,
93
+ only,
94
+ isPrimitive: false,
95
+ isObjectType: false,
96
+ };
97
+ }
98
+ function detectScalarMetadataFromIntersection(type, checker) {
99
+ if (!type.isIntersection()) {
100
+ return null;
101
+ }
102
+ for (const member of type.types) {
103
+ const metadata = extractMetadataFromType(member, checker);
104
+ if (metadata) {
105
+ return metadata;
106
+ }
107
+ }
108
+ return null;
109
+ }
110
+ function detectPrimitiveScalar(type) {
111
+ if (type.flags & ts.TypeFlags.String) {
112
+ return {
113
+ scalarName: "String",
114
+ only: null,
115
+ isPrimitive: true,
116
+ isObjectType: false,
117
+ };
118
+ }
119
+ if (type.flags & ts.TypeFlags.Number) {
120
+ return {
121
+ scalarName: "Float",
122
+ only: null,
123
+ isPrimitive: true,
124
+ isObjectType: false,
125
+ };
126
+ }
127
+ if (type.flags & ts.TypeFlags.Boolean ||
128
+ type.flags & ts.TypeFlags.BooleanLiteral) {
129
+ return {
130
+ scalarName: "Boolean",
131
+ only: null,
132
+ isPrimitive: true,
133
+ isObjectType: false,
134
+ };
135
+ }
136
+ return null;
137
+ }
138
+ function isBooleanLiteralUnion(types) {
139
+ const nonNullTypes = types.filter((t) => !isNullOrUndefined(t));
140
+ return (nonNullTypes.length === 2 &&
141
+ nonNullTypes.every((t) => t.flags & ts.TypeFlags.BooleanLiteral));
142
+ }
143
+ function detectScalarMetadataCore(type, checker) {
144
+ const primitiveResult = detectPrimitiveScalar(type);
145
+ if (primitiveResult) {
146
+ return primitiveResult;
147
+ }
148
+ const intersectionResult = detectScalarMetadataFromIntersection(type, checker);
149
+ if (intersectionResult) {
150
+ return intersectionResult;
151
+ }
152
+ const directMetadata = extractMetadataFromType(type, checker);
153
+ if (directMetadata) {
154
+ return directMetadata;
155
+ }
156
+ if (type.aliasSymbol) {
157
+ const aliasedType = checker.getDeclaredTypeOfSymbol(type.aliasSymbol);
158
+ if (aliasedType !== type) {
159
+ const aliasResult = detectScalarMetadataCore(aliasedType, checker);
160
+ if (aliasResult) {
161
+ return aliasResult;
162
+ }
163
+ }
164
+ }
165
+ const symbol = type.getSymbol();
166
+ if (symbol) {
167
+ const declarations = symbol.getDeclarations();
168
+ if (declarations && declarations.length > 0) {
169
+ for (const decl of declarations) {
170
+ if (ts.isTypeAliasDeclaration(decl)) {
171
+ const declSymbol = checker.getSymbolAtLocation(decl.name);
172
+ if (declSymbol) {
173
+ const declType = checker.getDeclaredTypeOfSymbol(declSymbol);
174
+ if (declType !== type && declType.isIntersection()) {
175
+ const result = detectScalarMetadataFromIntersection(declType, checker);
176
+ if (result) {
177
+ return result;
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ }
185
+ return null;
186
+ }
187
+ function isObjectLikeType(type) {
188
+ if (type.flags & ts.TypeFlags.Object) {
189
+ const objectType = type;
190
+ if (objectType.objectFlags & ts.ObjectFlags.Anonymous ||
191
+ objectType.objectFlags & ts.ObjectFlags.Interface ||
192
+ objectType.objectFlags & ts.ObjectFlags.Reference) {
193
+ const properties = type.getProperties();
194
+ const hasOnlyMetadataProperty = properties.length === 1 &&
195
+ properties[0]?.getName() === SCALAR_METADATA_PROPERTY;
196
+ if (!hasOnlyMetadataProperty && properties.length > 0) {
197
+ const metadataProp = type.getProperty(SCALAR_METADATA_PROPERTY);
198
+ if (!metadataProp) {
199
+ return true;
200
+ }
201
+ }
202
+ }
203
+ }
204
+ return false;
205
+ }
206
+ /**
207
+ * Detects scalar metadata from a TypeScript type.
208
+ *
209
+ * This function analyzes TypeScript types to detect scalar metadata:
210
+ * - TypeScript primitives (string, boolean, number) map to GraphQL scalars
211
+ * - Intersection types with " $gqlkitScalar" property indicate custom scalars
212
+ * - Type aliases are followed to find the underlying scalar metadata
213
+ * - Unions with null indicate nullable types
214
+ * - Array types indicate list types
215
+ *
216
+ * @param type - The TypeScript type to analyze
217
+ * @param checker - The TypeScript type checker
218
+ * @returns Detection result with scalar information
219
+ */
220
+ export function detectScalarMetadata(type, checker) {
221
+ const result = createDefaultResult();
222
+ if (checker.isArrayType(type)) {
223
+ const typeRef = type;
224
+ const elementType = typeRef.typeArguments?.[0];
225
+ if (!elementType) {
226
+ return {
227
+ ...result,
228
+ isList: true,
229
+ scalarName: "String",
230
+ };
231
+ }
232
+ const elementResult = detectScalarMetadata(elementType, checker);
233
+ return {
234
+ ...result,
235
+ scalarName: elementResult.scalarName,
236
+ only: elementResult.only,
237
+ isList: true,
238
+ listItemNullable: elementResult.nullable,
239
+ isPrimitive: elementResult.isPrimitive,
240
+ error: elementResult.error,
241
+ };
242
+ }
243
+ if (type.isUnion()) {
244
+ const nonNullTypes = type.types.filter((t) => !isNullOrUndefined(t));
245
+ const hasNull = type.types.some((t) => isNullOrUndefined(t));
246
+ if (isBooleanLiteralUnion(type.types)) {
247
+ return {
248
+ ...result,
249
+ scalarName: "Boolean",
250
+ isPrimitive: true,
251
+ nullable: hasNull,
252
+ };
253
+ }
254
+ if (nonNullTypes.length === 0) {
255
+ return result;
256
+ }
257
+ if (nonNullTypes.length === 1) {
258
+ const innerType = nonNullTypes[0];
259
+ if (checker.isArrayType(innerType)) {
260
+ const innerResult = detectScalarMetadata(innerType, checker);
261
+ return {
262
+ ...innerResult,
263
+ nullable: hasNull,
264
+ };
265
+ }
266
+ const innerResult = detectScalarMetadata(innerType, checker);
267
+ return {
268
+ ...innerResult,
269
+ nullable: hasNull || innerResult.nullable,
270
+ };
271
+ }
272
+ const scalarNames = new Set();
273
+ const detectedResults = [];
274
+ for (const unionMember of nonNullTypes) {
275
+ const memberResult = detectScalarMetadataCore(unionMember, checker);
276
+ if (memberResult?.scalarName) {
277
+ scalarNames.add(memberResult.scalarName);
278
+ detectedResults.push(memberResult);
279
+ }
280
+ }
281
+ if (scalarNames.size > 1) {
282
+ const scalarNameArray = Array.from(scalarNames).sort();
283
+ return {
284
+ ...result,
285
+ nullable: hasNull,
286
+ error: {
287
+ code: "MIXED_SCALAR_UNION",
288
+ message: `Cannot use union of different scalar types: ${scalarNameArray.join(", ")}`,
289
+ scalarNames: scalarNameArray,
290
+ },
291
+ };
292
+ }
293
+ if (scalarNames.size === 1 && detectedResults.length > 0) {
294
+ const firstResult = detectedResults[0];
295
+ return {
296
+ ...result,
297
+ scalarName: firstResult.scalarName,
298
+ only: firstResult.only,
299
+ nullable: hasNull,
300
+ isPrimitive: firstResult.isPrimitive,
301
+ };
302
+ }
303
+ if (nonNullTypes.every((t) => isObjectLikeType(t))) {
304
+ return {
305
+ ...result,
306
+ isObjectType: true,
307
+ nullable: hasNull,
308
+ };
309
+ }
310
+ return {
311
+ ...result,
312
+ nullable: hasNull,
313
+ };
314
+ }
315
+ const coreResult = detectScalarMetadataCore(type, checker);
316
+ if (coreResult) {
317
+ return {
318
+ ...result,
319
+ scalarName: coreResult.scalarName,
320
+ only: coreResult.only,
321
+ isPrimitive: coreResult.isPrimitive,
322
+ isObjectType: coreResult.isObjectType,
323
+ };
324
+ }
325
+ if (isObjectLikeType(type)) {
326
+ return {
327
+ ...result,
328
+ isObjectType: true,
329
+ };
330
+ }
331
+ return result;
332
+ }
333
+ //# sourceMappingURL=metadata-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-detector.js","sourceRoot":"","sources":["../../src/shared/metadata-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function toPosixPath(filePath: string): string;
2
+ //# sourceMappingURL=path-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../src/shared/path-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,4 @@
1
+ export function toPosixPath(filePath) {
2
+ return filePath.replace(/\\/g, "/");
3
+ }
4
+ //# sourceMappingURL=path-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../src/shared/path-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import ts from "typescript";
2
+ import type { Diagnostic } from "../type-extractor/types/index.js";
3
+ export interface CreateSharedProgramOptions {
4
+ readonly cwd: string;
5
+ readonly tsconfigPath: string | null;
6
+ readonly typeFiles: ReadonlyArray<string>;
7
+ readonly resolverFiles: ReadonlyArray<string>;
8
+ }
9
+ export interface CreateSharedProgramResult {
10
+ readonly program: ts.Program | null;
11
+ readonly diagnostics: ReadonlyArray<Diagnostic>;
12
+ }
13
+ export declare function createSharedProgram(options: CreateSharedProgramOptions): CreateSharedProgramResult;
14
+ //# sourceMappingURL=program-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-factory.d.ts","sourceRoot":"","sources":["../../src/shared/program-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAanE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACjD;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,yBAAyB,CAsB3B"}
@@ -0,0 +1,29 @@
1
+ import ts from "typescript";
2
+ import { loadTsconfig } from "./tsconfig-loader.js";
3
+ const DEFAULT_COMPILER_OPTIONS = {
4
+ target: ts.ScriptTarget.ES2022,
5
+ module: ts.ModuleKind.NodeNext,
6
+ moduleResolution: ts.ModuleResolutionKind.Node16,
7
+ strict: true,
8
+ esModuleInterop: true,
9
+ skipLibCheck: true,
10
+ noEmit: true,
11
+ };
12
+ export function createSharedProgram(options) {
13
+ const { cwd, tsconfigPath, typeFiles, resolverFiles } = options;
14
+ const tsconfigResult = loadTsconfig({ cwd, tsconfigPath });
15
+ if (tsconfigResult.diagnostics.length > 0) {
16
+ return {
17
+ program: null,
18
+ diagnostics: tsconfigResult.diagnostics,
19
+ };
20
+ }
21
+ const compilerOptions = tsconfigResult.compilerOptions ?? DEFAULT_COMPILER_OPTIONS;
22
+ const allFiles = [...typeFiles, ...resolverFiles];
23
+ const program = ts.createProgram(allFiles, compilerOptions);
24
+ return {
25
+ program,
26
+ diagnostics: [],
27
+ };
28
+ }
29
+ //# sourceMappingURL=program-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-factory.js","sourceRoot":"","sources":["../../src/shared/program-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,wBAAwB,GAAuB;IACnD,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;IAC9B,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ;IAC9B,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM;IAChD,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,IAAI;CACb,CAAC;AAcF,MAAM,UAAU,mBAAmB,CACjC,OAAmC;IAEnC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEhE,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;IAE3D,IAAI,cAAc,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,cAAc,CAAC,WAAW;SACxC,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GACnB,cAAc,CAAC,eAAe,IAAI,wBAAwB,CAAC;IAE7D,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,aAAa,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAE5D,OAAO;QACL,OAAO;QACP,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type ts from "typescript";
2
+ export interface SourceLocation {
3
+ readonly file: string;
4
+ readonly line: number;
5
+ readonly column: number;
6
+ }
7
+ /**
8
+ * Extracts source location from a TypeScript AST node.
9
+ */
10
+ export declare function getSourceLocationFromNode(node: ts.Node | undefined): SourceLocation | null;
11
+ //# sourceMappingURL=source-location.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-location.d.ts","sourceRoot":"","sources":["../../src/shared/source-location.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,GACxB,cAAc,GAAG,IAAI,CAavB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Extracts source location from a TypeScript AST node.
3
+ */
4
+ export function getSourceLocationFromNode(node) {
5
+ if (!node)
6
+ return null;
7
+ const sourceFile = node.getSourceFile();
8
+ const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
9
+ return {
10
+ file: sourceFile.fileName,
11
+ line: line + 1,
12
+ column: character + 1,
13
+ };
14
+ }
15
+ //# sourceMappingURL=source-location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-location.js","sourceRoot":"","sources":["../../src/shared/source-location.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAyB;IAEzB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACxC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,6BAA6B,CAClE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC1B,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,IAAI,EAAE,IAAI,GAAG,CAAC;QACd,MAAM,EAAE,SAAS,GAAG,CAAC;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import ts from "typescript";
2
+ import type { Diagnostic } from "../type-extractor/types/index.js";
3
+ export interface LoadTsconfigOptions {
4
+ readonly cwd: string;
5
+ readonly tsconfigPath: string | null;
6
+ }
7
+ export interface LoadTsconfigResult {
8
+ readonly compilerOptions: ts.CompilerOptions | null;
9
+ readonly configFilePath: string | null;
10
+ readonly diagnostics: ReadonlyArray<Diagnostic>;
11
+ }
12
+ export declare function loadTsconfig(options: LoadTsconfigOptions): LoadTsconfigResult;
13
+ //# sourceMappingURL=tsconfig-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsconfig-loader.d.ts","sourceRoot":"","sources":["../../src/shared/tsconfig-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACjD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAQ7E"}
@@ -0,0 +1,90 @@
1
+ import { existsSync } from "node:fs";
2
+ import path from "node:path";
3
+ import ts from "typescript";
4
+ export function loadTsconfig(options) {
5
+ const { cwd, tsconfigPath } = options;
6
+ if (tsconfigPath !== null) {
7
+ return loadFromSpecifiedPath(cwd, tsconfigPath);
8
+ }
9
+ return autoDetectTsconfig(cwd);
10
+ }
11
+ function loadFromSpecifiedPath(cwd, tsconfigPath) {
12
+ const absolutePath = path.isAbsolute(tsconfigPath)
13
+ ? tsconfigPath
14
+ : path.resolve(cwd, tsconfigPath);
15
+ if (!existsSync(absolutePath)) {
16
+ return {
17
+ compilerOptions: null,
18
+ configFilePath: null,
19
+ diagnostics: [
20
+ {
21
+ code: "TSCONFIG_NOT_FOUND",
22
+ message: `tsconfig.json not found at: ${absolutePath}`,
23
+ severity: "error",
24
+ location: null,
25
+ },
26
+ ],
27
+ };
28
+ }
29
+ return parseConfigFile(absolutePath);
30
+ }
31
+ function autoDetectTsconfig(cwd) {
32
+ const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, "tsconfig.json");
33
+ if (!configPath) {
34
+ return {
35
+ compilerOptions: null,
36
+ configFilePath: null,
37
+ diagnostics: [],
38
+ };
39
+ }
40
+ return parseConfigFile(configPath);
41
+ }
42
+ function parseConfigFile(configFilePath) {
43
+ const diagnostics = [];
44
+ const readResult = ts.readConfigFile(configFilePath, ts.sys.readFile);
45
+ if (readResult.error) {
46
+ diagnostics.push({
47
+ code: "TSCONFIG_PARSE_ERROR",
48
+ message: `Failed to parse tsconfig.json: ${ts.flattenDiagnosticMessageText(readResult.error.messageText, "\n")}`,
49
+ severity: "error",
50
+ location: {
51
+ file: configFilePath,
52
+ line: 1,
53
+ column: 1,
54
+ },
55
+ });
56
+ return {
57
+ compilerOptions: null,
58
+ configFilePath: null,
59
+ diagnostics,
60
+ };
61
+ }
62
+ const configDir = path.dirname(configFilePath);
63
+ const parseResult = ts.parseJsonConfigFileContent(readResult.config, ts.sys, configDir);
64
+ const significantErrors = parseResult.errors.filter((error) => error.code !== 18003);
65
+ if (significantErrors.length > 0) {
66
+ for (const error of significantErrors) {
67
+ diagnostics.push({
68
+ code: "TSCONFIG_INVALID",
69
+ message: `Invalid compiler options: ${ts.flattenDiagnosticMessageText(error.messageText, "\n")}`,
70
+ severity: "error",
71
+ location: {
72
+ file: configFilePath,
73
+ line: 1,
74
+ column: 1,
75
+ },
76
+ });
77
+ }
78
+ return {
79
+ compilerOptions: null,
80
+ configFilePath,
81
+ diagnostics,
82
+ };
83
+ }
84
+ return {
85
+ compilerOptions: parseResult.options,
86
+ configFilePath,
87
+ diagnostics: [],
88
+ };
89
+ }
90
+ //# sourceMappingURL=tsconfig-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsconfig-loader.js","sourceRoot":"","sources":["../../src/shared/tsconfig-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import ts from "typescript";
2
+ export interface DeprecationInfo {
3
+ readonly isDeprecated: true;
4
+ readonly reason: string | null;
5
+ }
6
+ export interface TSDocInfo {
7
+ readonly description: string | null;
8
+ readonly deprecated: DeprecationInfo | null;
9
+ }
10
+ export declare function extractTsDocInfo(node: ts.Node, checker: ts.TypeChecker): TSDocInfo;
11
+ export declare function extractTsDocFromSymbol(symbol: ts.Symbol, checker: ts.TypeChecker): TSDocInfo;
12
+ //# sourceMappingURL=tsdoc-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsdoc-parser.d.ts","sourceRoot":"","sources":["../../src/shared/tsdoc-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;CAC7C;AA8GD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,SAAS,CAgBX;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,EAAE,CAAC,MAAM,EACjB,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,SAAS,CAUX"}