@gqlkit-ts/cli 0.1.0 → 0.3.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 (339) hide show
  1. package/dist/auto-type-generator/auto-type-generator.d.ts +26 -4
  2. package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -1
  3. package/dist/auto-type-generator/auto-type-generator.js +846 -152
  4. package/dist/auto-type-generator/auto-type-generator.js.map +1 -1
  5. package/dist/auto-type-generator/index.d.ts +9 -2
  6. package/dist/auto-type-generator/index.d.ts.map +1 -1
  7. package/dist/auto-type-generator/index.js +3 -0
  8. package/dist/auto-type-generator/index.js.map +1 -1
  9. package/dist/auto-type-generator/inline-enum-collector.d.ts +39 -0
  10. package/dist/auto-type-generator/inline-enum-collector.d.ts.map +1 -0
  11. package/dist/auto-type-generator/inline-enum-collector.js +193 -0
  12. package/dist/auto-type-generator/inline-enum-collector.js.map +1 -0
  13. package/dist/auto-type-generator/inline-object-traverser.d.ts +20 -0
  14. package/dist/auto-type-generator/inline-object-traverser.d.ts.map +1 -0
  15. package/dist/auto-type-generator/inline-object-traverser.js +22 -0
  16. package/dist/auto-type-generator/inline-object-traverser.js.map +1 -0
  17. package/dist/auto-type-generator/inline-union-collector.d.ts +29 -0
  18. package/dist/auto-type-generator/inline-union-collector.d.ts.map +1 -0
  19. package/dist/auto-type-generator/inline-union-collector.js +216 -0
  20. package/dist/auto-type-generator/inline-union-collector.js.map +1 -0
  21. package/dist/auto-type-generator/inline-union-types.d.ts +29 -0
  22. package/dist/auto-type-generator/inline-union-types.d.ts.map +1 -0
  23. package/dist/auto-type-generator/inline-union-types.js +2 -0
  24. package/dist/auto-type-generator/inline-union-types.js.map +1 -0
  25. package/dist/auto-type-generator/inline-union-validator.d.ts +76 -0
  26. package/dist/auto-type-generator/inline-union-validator.d.ts.map +1 -0
  27. package/dist/auto-type-generator/inline-union-validator.js +329 -0
  28. package/dist/auto-type-generator/inline-union-validator.js.map +1 -0
  29. package/dist/auto-type-generator/naming-convention.d.ts +22 -1
  30. package/dist/auto-type-generator/naming-convention.d.ts.map +1 -1
  31. package/dist/auto-type-generator/naming-convention.js +24 -0
  32. package/dist/auto-type-generator/naming-convention.js.map +1 -1
  33. package/dist/auto-type-generator/resolve-type-generator.d.ts +20 -0
  34. package/dist/auto-type-generator/resolve-type-generator.d.ts.map +1 -0
  35. package/dist/auto-type-generator/resolve-type-generator.js +2 -0
  36. package/dist/auto-type-generator/resolve-type-generator.js.map +1 -0
  37. package/dist/auto-type-generator/resolver-field-iterator.d.ts +13 -0
  38. package/dist/auto-type-generator/resolver-field-iterator.d.ts.map +1 -0
  39. package/dist/auto-type-generator/resolver-field-iterator.js +22 -0
  40. package/dist/auto-type-generator/resolver-field-iterator.js.map +1 -0
  41. package/dist/auto-type-generator/typename-extractor.d.ts +26 -0
  42. package/dist/auto-type-generator/typename-extractor.d.ts.map +1 -0
  43. package/dist/auto-type-generator/typename-extractor.js +142 -0
  44. package/dist/auto-type-generator/typename-extractor.js.map +1 -0
  45. package/dist/auto-type-generator/typename-resolve-type-generator.d.ts +35 -0
  46. package/dist/auto-type-generator/typename-resolve-type-generator.d.ts.map +1 -0
  47. package/dist/auto-type-generator/typename-resolve-type-generator.js +177 -0
  48. package/dist/auto-type-generator/typename-resolve-type-generator.js.map +1 -0
  49. package/dist/auto-type-generator/typename-types.d.ts +43 -0
  50. package/dist/auto-type-generator/typename-types.d.ts.map +1 -0
  51. package/dist/auto-type-generator/typename-types.js +37 -0
  52. package/dist/auto-type-generator/typename-types.js.map +1 -0
  53. package/dist/auto-type-generator/typename-validator.d.ts +37 -0
  54. package/dist/auto-type-generator/typename-validator.d.ts.map +1 -0
  55. package/dist/auto-type-generator/typename-validator.js +206 -0
  56. package/dist/auto-type-generator/typename-validator.js.map +1 -0
  57. package/dist/cli.js +2 -0
  58. package/dist/cli.js.map +1 -1
  59. package/dist/commands/docs.d.ts +51 -0
  60. package/dist/commands/docs.d.ts.map +1 -0
  61. package/dist/commands/docs.js +154 -0
  62. package/dist/commands/docs.js.map +1 -0
  63. package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -1
  64. package/dist/gen-orchestrator/orchestrator.js +119 -14
  65. package/dist/gen-orchestrator/orchestrator.js.map +1 -1
  66. package/dist/resolver-extractor/extract-resolvers.d.ts +28 -1
  67. package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -1
  68. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +16 -1
  69. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -1
  70. package/dist/resolver-extractor/extractor/define-api-extractor.js +86 -309
  71. package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -1
  72. package/dist/resolver-extractor/index.d.ts +0 -1
  73. package/dist/resolver-extractor/index.d.ts.map +1 -1
  74. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +1 -0
  75. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -1
  76. package/dist/resolver-extractor/validator/abstract-resolver-validator.js +9 -5
  77. package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -1
  78. package/dist/schema-generator/emitter/code-emitter.d.ts +10 -2
  79. package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -1
  80. package/dist/schema-generator/emitter/code-emitter.js +39 -4
  81. package/dist/schema-generator/emitter/code-emitter.js.map +1 -1
  82. package/dist/schema-generator/generate-schema.d.ts +1 -0
  83. package/dist/schema-generator/generate-schema.d.ts.map +1 -1
  84. package/dist/schema-generator/generate-schema.js +90 -4
  85. package/dist/schema-generator/generate-schema.js.map +1 -1
  86. package/dist/schema-generator/integrator/result-integrator.d.ts +34 -2
  87. package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -1
  88. package/dist/schema-generator/integrator/result-integrator.js +96 -1
  89. package/dist/schema-generator/integrator/result-integrator.js.map +1 -1
  90. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +2 -0
  91. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -1
  92. package/dist/schema-generator/resolver-collector/resolver-collector.js +22 -0
  93. package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -1
  94. package/dist/shared/constants.d.ts +0 -16
  95. package/dist/shared/constants.d.ts.map +1 -1
  96. package/dist/shared/constants.js +0 -19
  97. package/dist/shared/constants.js.map +1 -1
  98. package/dist/shared/directive-detector.d.ts.map +1 -1
  99. package/dist/shared/directive-detector.js +8 -15
  100. package/dist/shared/directive-detector.js.map +1 -1
  101. package/dist/shared/enum-prefix-detector.d.ts +63 -0
  102. package/dist/shared/enum-prefix-detector.d.ts.map +1 -0
  103. package/dist/shared/enum-prefix-detector.js +80 -0
  104. package/dist/shared/enum-prefix-detector.js.map +1 -0
  105. package/dist/shared/file-scanner.d.ts.map +1 -1
  106. package/dist/shared/file-scanner.js +5 -3
  107. package/dist/shared/file-scanner.js.map +1 -1
  108. package/dist/shared/ignore-fields-detector.d.ts +26 -0
  109. package/dist/shared/ignore-fields-detector.d.ts.map +1 -0
  110. package/dist/shared/ignore-fields-detector.js +83 -0
  111. package/dist/shared/ignore-fields-detector.js.map +1 -0
  112. package/dist/shared/ignore-fields-validator.d.ts +29 -0
  113. package/dist/shared/ignore-fields-validator.d.ts.map +1 -0
  114. package/dist/shared/ignore-fields-validator.js +43 -0
  115. package/dist/shared/ignore-fields-validator.js.map +1 -0
  116. package/dist/shared/index.d.ts +3 -1
  117. package/dist/shared/index.d.ts.map +1 -1
  118. package/dist/shared/index.js +1 -3
  119. package/dist/shared/index.js.map +1 -1
  120. package/dist/shared/interface-detector.d.ts +3 -2
  121. package/dist/shared/interface-detector.d.ts.map +1 -1
  122. package/dist/shared/interface-detector.js +54 -11
  123. package/dist/shared/interface-detector.js.map +1 -1
  124. package/dist/shared/path-utils.d.ts +2 -0
  125. package/dist/shared/path-utils.d.ts.map +1 -0
  126. package/dist/shared/path-utils.js +4 -0
  127. package/dist/shared/path-utils.js.map +1 -0
  128. package/dist/shared/source-location.d.ts +5 -0
  129. package/dist/shared/source-location.d.ts.map +1 -1
  130. package/dist/shared/source-location.js +7 -0
  131. package/dist/shared/source-location.js.map +1 -1
  132. package/dist/shared/type-converter.d.ts.map +1 -1
  133. package/dist/shared/type-converter.js +11 -0
  134. package/dist/shared/type-converter.js.map +1 -1
  135. package/dist/shared/typescript-utils.d.ts +34 -7
  136. package/dist/shared/typescript-utils.d.ts.map +1 -1
  137. package/dist/shared/typescript-utils.js +72 -24
  138. package/dist/shared/typescript-utils.js.map +1 -1
  139. package/dist/type-extractor/collector/scalar-collector.d.ts.map +1 -1
  140. package/dist/type-extractor/collector/scalar-collector.js +4 -14
  141. package/dist/type-extractor/collector/scalar-collector.js.map +1 -1
  142. package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -1
  143. package/dist/type-extractor/converter/graphql-converter.js +57 -4
  144. package/dist/type-extractor/converter/graphql-converter.js.map +1 -1
  145. package/dist/type-extractor/extractor/field-type-resolver.d.ts +28 -0
  146. package/dist/type-extractor/extractor/field-type-resolver.d.ts.map +1 -0
  147. package/dist/type-extractor/extractor/field-type-resolver.js +433 -0
  148. package/dist/type-extractor/extractor/field-type-resolver.js.map +1 -0
  149. package/dist/type-extractor/extractor/type-extractor.d.ts +12 -3
  150. package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -1
  151. package/dist/type-extractor/extractor/type-extractor.js +260 -229
  152. package/dist/type-extractor/extractor/type-extractor.js.map +1 -1
  153. package/dist/type-extractor/extractor/type-name-collector.d.ts +24 -0
  154. package/dist/type-extractor/extractor/type-name-collector.d.ts.map +1 -0
  155. package/dist/type-extractor/extractor/type-name-collector.js +102 -0
  156. package/dist/type-extractor/extractor/type-name-collector.js.map +1 -0
  157. package/dist/type-extractor/mapper/scalar-base-type-mapper.d.ts +89 -0
  158. package/dist/type-extractor/mapper/scalar-base-type-mapper.d.ts.map +1 -0
  159. package/dist/type-extractor/mapper/scalar-base-type-mapper.js +158 -0
  160. package/dist/type-extractor/mapper/scalar-base-type-mapper.js.map +1 -0
  161. package/dist/type-extractor/types/diagnostics.d.ts +1 -1
  162. package/dist/type-extractor/types/diagnostics.d.ts.map +1 -1
  163. package/dist/type-extractor/types/graphql.d.ts +2 -0
  164. package/dist/type-extractor/types/graphql.d.ts.map +1 -1
  165. package/dist/type-extractor/types/index.d.ts +2 -1
  166. package/dist/type-extractor/types/index.d.ts.map +1 -1
  167. package/dist/type-extractor/types/index.js +1 -1
  168. package/dist/type-extractor/types/index.js.map +1 -1
  169. package/dist/type-extractor/types/ts-type-reference-factory.d.ts +47 -0
  170. package/dist/type-extractor/types/ts-type-reference-factory.d.ts.map +1 -0
  171. package/dist/type-extractor/types/ts-type-reference-factory.js +75 -0
  172. package/dist/type-extractor/types/ts-type-reference-factory.js.map +1 -0
  173. package/dist/type-extractor/types/typescript.d.ts +25 -1
  174. package/dist/type-extractor/types/typescript.d.ts.map +1 -1
  175. package/dist/type-extractor/validator/type-validator.js +1 -1
  176. package/dist/type-extractor/validator/type-validator.js.map +1 -1
  177. package/docs/coding-agents.md +64 -0
  178. package/docs/configuration.md +6 -20
  179. package/docs/getting-started.md +15 -12
  180. package/docs/index.md +36 -21
  181. package/docs/integration/apollo.md +8 -40
  182. package/docs/integration/drizzle.md +187 -0
  183. package/docs/integration/prisma.md +196 -0
  184. package/docs/integration/yoga.md +8 -40
  185. package/docs/schema/abstract-resolvers.md +117 -0
  186. package/docs/schema/directives.md +5 -0
  187. package/docs/schema/documentation.md +5 -0
  188. package/docs/schema/enums.md +307 -0
  189. package/docs/schema/fields.md +66 -0
  190. package/docs/schema/index.md +21 -0
  191. package/docs/schema/inputs.md +117 -15
  192. package/docs/schema/interfaces.md +31 -1
  193. package/docs/schema/objects.md +42 -0
  194. package/docs/schema/queries-mutations.md +138 -22
  195. package/docs/schema/scalars.md +5 -0
  196. package/docs/schema/unions.md +208 -1
  197. package/docs/what-is-gqlkit.md +13 -8
  198. package/package.json +14 -5
  199. package/src/auto-type-generator/auto-type-generator.ts +1670 -0
  200. package/src/auto-type-generator/index.ts +63 -0
  201. package/src/auto-type-generator/inline-enum-collector.ts +338 -0
  202. package/src/auto-type-generator/inline-object-traverser.ts +49 -0
  203. package/src/auto-type-generator/inline-union-collector.ts +402 -0
  204. package/src/auto-type-generator/inline-union-types.ts +33 -0
  205. package/src/auto-type-generator/inline-union-validator.ts +482 -0
  206. package/src/auto-type-generator/name-collision-validator.ts +119 -0
  207. package/src/auto-type-generator/naming-convention.ts +163 -0
  208. package/src/auto-type-generator/resolve-type-generator.ts +21 -0
  209. package/src/auto-type-generator/resolver-field-iterator.ts +39 -0
  210. package/src/auto-type-generator/typename-extractor.ts +230 -0
  211. package/src/auto-type-generator/typename-resolve-type-generator.ts +281 -0
  212. package/src/auto-type-generator/typename-types.ts +66 -0
  213. package/src/auto-type-generator/typename-validator.ts +326 -0
  214. package/src/cli.ts +13 -0
  215. package/src/commands/docs.ts +211 -0
  216. package/src/commands/gen.ts +141 -0
  217. package/src/commands/main.ts +5 -0
  218. package/src/config/define-config.ts +28 -0
  219. package/src/config/index.ts +7 -0
  220. package/src/config/types.ts +144 -0
  221. package/src/config-loader/index.ts +14 -0
  222. package/src/config-loader/loader.ts +143 -0
  223. package/src/config-loader/validator.ts +672 -0
  224. package/src/gen-orchestrator/hook-executor/hook-executor.ts +117 -0
  225. package/src/gen-orchestrator/orchestrator.ts +798 -0
  226. package/src/gen-orchestrator/reporter/diagnostic-reporter.ts +44 -0
  227. package/src/gen-orchestrator/reporter/progress-reporter.ts +61 -0
  228. package/src/gen-orchestrator/writer/file-writer.ts +38 -0
  229. package/src/index.ts +2 -0
  230. package/src/resolver-extractor/extract-resolvers.ts +82 -0
  231. package/src/resolver-extractor/extractor/define-api-extractor.ts +740 -0
  232. package/src/resolver-extractor/index.ts +13 -0
  233. package/src/resolver-extractor/validator/abstract-resolver-validator.ts +259 -0
  234. package/src/schema-generator/builder/ast-builder.ts +706 -0
  235. package/src/schema-generator/emitter/code-emitter.ts +385 -0
  236. package/src/schema-generator/emitter/sdl-emitter.ts +13 -0
  237. package/src/schema-generator/generate-schema.ts +267 -0
  238. package/src/schema-generator/index.ts +19 -0
  239. package/src/schema-generator/integrator/result-integrator.ts +759 -0
  240. package/src/schema-generator/pruner/schema-pruner.ts +112 -0
  241. package/src/schema-generator/resolver-collector/resolver-collector.ts +157 -0
  242. package/src/shared/constants.ts +122 -0
  243. package/src/shared/default-value-detector.ts +172 -0
  244. package/src/shared/diagnostics.ts +35 -0
  245. package/src/shared/directive-definition-extractor.ts +564 -0
  246. package/src/shared/directive-detector.ts +556 -0
  247. package/src/shared/enum-prefix-detector.ts +99 -0
  248. package/src/shared/file-scanner.ts +170 -0
  249. package/src/shared/ignore-fields-detector.ts +109 -0
  250. package/src/shared/ignore-fields-validator.ts +66 -0
  251. package/src/shared/index.ts +34 -0
  252. package/src/shared/inline-object-extractor.ts +102 -0
  253. package/src/shared/inline-object-utils.ts +23 -0
  254. package/src/shared/interface-detector.ts +176 -0
  255. package/src/shared/interface-validator.ts +211 -0
  256. package/src/shared/metadata-detector.ts +443 -0
  257. package/src/shared/path-utils.ts +3 -0
  258. package/src/shared/program-factory.ts +51 -0
  259. package/src/shared/source-location.ts +38 -0
  260. package/src/shared/tsconfig-loader.ts +126 -0
  261. package/src/shared/tsdoc-parser.ts +155 -0
  262. package/src/shared/type-converter.ts +99 -0
  263. package/src/shared/typescript-utils.ts +246 -0
  264. package/src/type-extractor/collector/result-collector.ts +57 -0
  265. package/src/type-extractor/collector/scalar-collector.ts +254 -0
  266. package/src/type-extractor/converter/field-eligibility.ts +112 -0
  267. package/src/type-extractor/converter/graphql-converter.ts +483 -0
  268. package/src/type-extractor/extract-types.ts +1 -0
  269. package/src/type-extractor/extractor/field-type-resolver.ts +614 -0
  270. package/src/type-extractor/extractor/type-extractor.ts +1644 -0
  271. package/src/type-extractor/extractor/type-name-collector.ts +130 -0
  272. package/src/type-extractor/index.ts +20 -0
  273. package/src/type-extractor/mapper/scalar-base-type-mapper.ts +265 -0
  274. package/src/type-extractor/types/diagnostics.ts +109 -0
  275. package/src/type-extractor/types/graphql.ts +55 -0
  276. package/src/type-extractor/types/index.ts +37 -0
  277. package/src/type-extractor/types/ts-type-reference-factory.ts +150 -0
  278. package/src/type-extractor/types/typescript.ts +137 -0
  279. package/src/type-extractor/validator/type-validator.ts +77 -0
  280. package/dist/auto-type-generator/auto-type-generator.test.d.ts +0 -2
  281. package/dist/auto-type-generator/auto-type-generator.test.d.ts.map +0 -1
  282. package/dist/auto-type-generator/auto-type-generator.test.js +0 -613
  283. package/dist/auto-type-generator/auto-type-generator.test.js.map +0 -1
  284. package/dist/auto-type-generator/name-collision-validator.test.d.ts +0 -2
  285. package/dist/auto-type-generator/name-collision-validator.test.d.ts.map +0 -1
  286. package/dist/auto-type-generator/name-collision-validator.test.js +0 -358
  287. package/dist/auto-type-generator/name-collision-validator.test.js.map +0 -1
  288. package/dist/auto-type-generator/naming-convention.test.d.ts +0 -2
  289. package/dist/auto-type-generator/naming-convention.test.d.ts.map +0 -1
  290. package/dist/auto-type-generator/naming-convention.test.js +0 -132
  291. package/dist/auto-type-generator/naming-convention.test.js.map +0 -1
  292. package/dist/commands/gen.test.d.ts +0 -2
  293. package/dist/commands/gen.test.d.ts.map +0 -1
  294. package/dist/commands/gen.test.js +0 -226
  295. package/dist/commands/gen.test.js.map +0 -1
  296. package/dist/config-loader/loader.test.d.ts +0 -2
  297. package/dist/config-loader/loader.test.d.ts.map +0 -1
  298. package/dist/config-loader/loader.test.js +0 -123
  299. package/dist/config-loader/loader.test.js.map +0 -1
  300. package/dist/config-loader/validator.test.d.ts +0 -2
  301. package/dist/config-loader/validator.test.d.ts.map +0 -1
  302. package/dist/config-loader/validator.test.js +0 -846
  303. package/dist/config-loader/validator.test.js.map +0 -1
  304. package/dist/gen-orchestrator/golden.test.d.ts +0 -2
  305. package/dist/gen-orchestrator/golden.test.d.ts.map +0 -1
  306. package/dist/gen-orchestrator/golden.test.js +0 -102
  307. package/dist/gen-orchestrator/golden.test.js.map +0 -1
  308. package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts +0 -2
  309. package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts.map +0 -1
  310. package/dist/gen-orchestrator/hook-executor/hook-executor.test.js +0 -167
  311. package/dist/gen-orchestrator/hook-executor/hook-executor.test.js.map +0 -1
  312. package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts +0 -2
  313. package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts.map +0 -1
  314. package/dist/gen-orchestrator/reporter/progress-reporter.test.js +0 -74
  315. package/dist/gen-orchestrator/reporter/progress-reporter.test.js.map +0 -1
  316. package/dist/resolver-extractor/validator/only-validator.d.ts +0 -61
  317. package/dist/resolver-extractor/validator/only-validator.d.ts.map +0 -1
  318. package/dist/resolver-extractor/validator/only-validator.js +0 -76
  319. package/dist/resolver-extractor/validator/only-validator.js.map +0 -1
  320. package/dist/resolver-extractor/validator/only-validator.test.d.ts +0 -8
  321. package/dist/resolver-extractor/validator/only-validator.test.d.ts.map +0 -1
  322. package/dist/resolver-extractor/validator/only-validator.test.js +0 -352
  323. package/dist/resolver-extractor/validator/only-validator.test.js.map +0 -1
  324. package/dist/schema-generator/builder/ast-builder.test.d.ts +0 -2
  325. package/dist/schema-generator/builder/ast-builder.test.d.ts.map +0 -1
  326. package/dist/schema-generator/builder/ast-builder.test.js +0 -469
  327. package/dist/schema-generator/builder/ast-builder.test.js.map +0 -1
  328. package/dist/shared/file-scanner.test.d.ts +0 -2
  329. package/dist/shared/file-scanner.test.d.ts.map +0 -1
  330. package/dist/shared/file-scanner.test.js +0 -138
  331. package/dist/shared/file-scanner.test.js.map +0 -1
  332. package/dist/shared/interface-validator.test.d.ts +0 -2
  333. package/dist/shared/interface-validator.test.d.ts.map +0 -1
  334. package/dist/shared/interface-validator.test.js +0 -145
  335. package/dist/shared/interface-validator.test.js.map +0 -1
  336. package/dist/type-extractor/types/typescript.test.d.ts +0 -2
  337. package/dist/type-extractor/types/typescript.test.d.ts.map +0 -1
  338. package/dist/type-extractor/types/typescript.test.js +0 -287
  339. package/dist/type-extractor/types/typescript.test.js.map +0 -1
@@ -0,0 +1,63 @@
1
+ export {
2
+ type AutoGeneratedEnumValue,
3
+ type AutoGeneratedField,
4
+ type AutoGeneratedType,
5
+ type AutoTypeGeneratorInput,
6
+ type AutoTypeGeneratorResult,
7
+ type GeneratedFromInfo,
8
+ generateAutoTypes,
9
+ } from "./auto-type-generator.js";
10
+ export type {
11
+ InlineUnionMemberInfo,
12
+ InlineUnionWithContext,
13
+ } from "./inline-union-types.js";
14
+ export type {
15
+ ValidateOneOfMembersParams,
16
+ ValidateUnionMembersParams,
17
+ ValidateUnionResult,
18
+ } from "./inline-union-validator.js";
19
+ export {
20
+ type NameCollisionValidatorInput,
21
+ type NameCollisionValidatorResult,
22
+ type UserDefinedTypeInfo,
23
+ validateNameCollisions,
24
+ } from "./name-collision-validator.js";
25
+ export type {
26
+ AutoTypeNameContext,
27
+ InputFieldContext,
28
+ ObjectFieldContext,
29
+ ResolverArgContext,
30
+ ResolverPayloadContext,
31
+ } from "./naming-convention.js";
32
+ export type {
33
+ AutoGeneratedResolveType,
34
+ ResolveTypeFieldPattern,
35
+ } from "./resolve-type-generator.js";
36
+ export {
37
+ type CollectTypenameExtractionsParams,
38
+ collectTypenameExtractions,
39
+ type ExtractTypenamesParams,
40
+ type MemberTypenameInfo,
41
+ type TypenameExtractionResult,
42
+ } from "./typename-extractor.js";
43
+ export {
44
+ type CollectTypenameResolveTypesParams,
45
+ type CollectTypenameResolveTypesResult,
46
+ collectTypenameResolveTypes,
47
+ type GeneratedInlineObjectType,
48
+ type ResolveTypePattern,
49
+ type TypenameAutoResolveTypeInfo,
50
+ } from "./typename-resolve-type-generator.js";
51
+ export type {
52
+ TypenameFieldInfo,
53
+ TypenameFieldName,
54
+ TypenameFieldNameSet,
55
+ } from "./typename-types.js";
56
+ export {
57
+ type ValidateSchemaTypenamesParams,
58
+ type ValidateSchemaTypenamesResult,
59
+ type ValidateTypenamesParams,
60
+ type ValidateTypenamesResult,
61
+ validateSchemaTypenames,
62
+ validateTypenames,
63
+ } from "./typename-validator.js";
@@ -0,0 +1,338 @@
1
+ import type ts from "typescript";
2
+ import type { ExtractResolversResult } from "../resolver-extractor/index.js";
3
+ import { getSourceLocationOrDefault } from "../shared/source-location.js";
4
+ import type { DeprecationInfo } from "../shared/tsdoc-parser.js";
5
+ import type {
6
+ ExtractedTypeInfo,
7
+ FieldDefinition,
8
+ InlineEnumMemberInfo,
9
+ InlineObjectPropertyDef,
10
+ SourceLocation,
11
+ } from "../type-extractor/types/index.js";
12
+ import { traverseInlineObjectProperties } from "./inline-object-traverser.js";
13
+ import {
14
+ type AutoTypeNameContext,
15
+ buildFieldContext,
16
+ isInputTypeName,
17
+ } from "./naming-convention.js";
18
+ import {
19
+ forEachResolverField,
20
+ type ResolverFieldInfo,
21
+ type ResolverType,
22
+ } from "./resolver-field-iterator.js";
23
+
24
+ /**
25
+ * Inline enum with context information for naming and generation.
26
+ */
27
+ export interface InlineEnumWithContext {
28
+ readonly members: ReadonlyArray<InlineEnumMemberInfo>;
29
+ readonly context: AutoTypeNameContext;
30
+ readonly sourceLocation: SourceLocation;
31
+ readonly nullable: boolean;
32
+ /** External TypeScript enum symbol for deduplication (null for string literal unions) */
33
+ readonly externalEnumSymbol: ts.Symbol | null;
34
+ /** TSDoc description from the external enum type itself (null for string literal unions) */
35
+ readonly externalEnumDescription: string | null;
36
+ /** @deprecated tag from the external enum type itself (null for string literal unions) */
37
+ readonly externalEnumDeprecated: DeprecationInfo | null;
38
+ }
39
+
40
+ /**
41
+ * Collect inline enums from ExtractedTypeInfo by traversing type fields.
42
+ */
43
+ export function collectInlineEnumsFromTypes(
44
+ extractedTypes: ReadonlyArray<ExtractedTypeInfo>,
45
+ ): InlineEnumWithContext[] {
46
+ const results: InlineEnumWithContext[] = [];
47
+
48
+ for (const typeInfo of extractedTypes) {
49
+ const isInput = isInputTypeName(typeInfo.metadata.name);
50
+
51
+ for (const field of typeInfo.fields) {
52
+ collectInlineEnumsFromField(
53
+ field,
54
+ typeInfo.metadata.name,
55
+ [],
56
+ isInput,
57
+ typeInfo.metadata.sourceFile,
58
+ results,
59
+ );
60
+ }
61
+ }
62
+
63
+ return results;
64
+ }
65
+
66
+ function collectInlineEnumsFromField(
67
+ field: FieldDefinition,
68
+ parentTypeName: string,
69
+ parentPath: ReadonlyArray<string>,
70
+ isInput: boolean,
71
+ sourceFile: string,
72
+ results: InlineEnumWithContext[],
73
+ ): void {
74
+ const tsType = field.tsType;
75
+ const fieldPath = [...parentPath, field.name];
76
+
77
+ if (tsType.kind === "inlineEnum" && tsType.inlineEnumMembers) {
78
+ results.push({
79
+ members: tsType.inlineEnumMembers,
80
+ context: buildFieldContext(parentTypeName, fieldPath, isInput),
81
+ sourceLocation: getSourceLocationOrDefault(
82
+ field.sourceLocation,
83
+ sourceFile,
84
+ ),
85
+ nullable: tsType.nullable,
86
+ externalEnumSymbol: tsType.externalEnumSymbol,
87
+ externalEnumDescription: tsType.externalEnumDescription,
88
+ externalEnumDeprecated: tsType.externalEnumDeprecated,
89
+ });
90
+ }
91
+
92
+ if (
93
+ tsType.kind === "array" &&
94
+ tsType.elementType?.kind === "inlineEnum" &&
95
+ tsType.elementType.inlineEnumMembers
96
+ ) {
97
+ results.push({
98
+ members: tsType.elementType.inlineEnumMembers,
99
+ context: buildFieldContext(parentTypeName, fieldPath, isInput),
100
+ sourceLocation: getSourceLocationOrDefault(
101
+ field.sourceLocation,
102
+ sourceFile,
103
+ ),
104
+ nullable: tsType.elementType.nullable,
105
+ externalEnumSymbol: tsType.elementType.externalEnumSymbol,
106
+ externalEnumDescription: tsType.elementType.externalEnumDescription,
107
+ externalEnumDeprecated: tsType.elementType.externalEnumDeprecated,
108
+ });
109
+ }
110
+
111
+ if (tsType.kind === "inlineObject" && tsType.inlineObjectProperties) {
112
+ traverseInlineObjectProperties(
113
+ { properties: tsType.inlineObjectProperties, parentPath: fieldPath },
114
+ (prop, propPath) => {
115
+ const propTsType = prop.tsType;
116
+ if (propTsType.kind === "inlineEnum" && propTsType.inlineEnumMembers) {
117
+ results.push({
118
+ members: propTsType.inlineEnumMembers,
119
+ context: buildFieldContext(parentTypeName, propPath, isInput),
120
+ sourceLocation: getSourceLocationOrDefault(
121
+ prop.sourceLocation,
122
+ sourceFile,
123
+ ),
124
+ nullable: propTsType.nullable,
125
+ externalEnumSymbol: propTsType.externalEnumSymbol,
126
+ externalEnumDescription: propTsType.externalEnumDescription,
127
+ externalEnumDeprecated: propTsType.externalEnumDeprecated,
128
+ });
129
+ }
130
+ },
131
+ );
132
+ }
133
+ }
134
+
135
+ export interface CollectInlineEnumsFromResolversParams {
136
+ readonly resolversResult: ExtractResolversResult;
137
+ }
138
+
139
+ /**
140
+ * Collect inline enums from ExtractResolversResult by traversing resolver args.
141
+ */
142
+ export function collectInlineEnumsFromResolvers(
143
+ params: CollectInlineEnumsFromResolversParams,
144
+ ): InlineEnumWithContext[] {
145
+ const { resolversResult } = params;
146
+ const results: InlineEnumWithContext[] = [];
147
+
148
+ forEachResolverField(resolversResult, (info) => {
149
+ collectInlineEnumsFromResolverArgs(info, results);
150
+ });
151
+
152
+ return results;
153
+ }
154
+
155
+ function collectInlineEnumsFromResolverArgs(
156
+ info: ResolverFieldInfo,
157
+ results: InlineEnumWithContext[],
158
+ ): void {
159
+ const { field, resolverType, parentTypeName } = info;
160
+ if (!field.args) return;
161
+
162
+ for (const arg of field.args) {
163
+ if (arg.inlineEnumMembers) {
164
+ const context: AutoTypeNameContext = {
165
+ kind: "resolverArg",
166
+ resolverType,
167
+ fieldName: field.name,
168
+ argName: arg.name,
169
+ parentTypeName,
170
+ fieldPath: [],
171
+ };
172
+
173
+ results.push({
174
+ members: arg.inlineEnumMembers,
175
+ context,
176
+ sourceLocation: field.sourceLocation,
177
+ nullable: arg.type.nullable,
178
+ externalEnumSymbol: arg.externalEnumSymbol,
179
+ externalEnumDescription: arg.externalEnumDescription,
180
+ externalEnumDeprecated: arg.externalEnumDeprecated,
181
+ });
182
+ }
183
+
184
+ if (arg.inlineObjectProperties) {
185
+ collectInlineEnumsFromResolverProperties({
186
+ properties: arg.inlineObjectProperties,
187
+ resolverType,
188
+ fieldName: field.name,
189
+ parentTypeName,
190
+ parentPath: [],
191
+ sourceLocation: field.sourceLocation,
192
+ contextKind: "resolverArg",
193
+ argName: arg.name,
194
+ results,
195
+ });
196
+ }
197
+ }
198
+ }
199
+
200
+ interface CollectInlineEnumsFromResolverPropertiesBaseParams {
201
+ readonly properties: ReadonlyArray<InlineObjectPropertyDef>;
202
+ readonly resolverType: ResolverType;
203
+ readonly fieldName: string;
204
+ readonly parentTypeName: string | null;
205
+ readonly parentPath: ReadonlyArray<string>;
206
+ readonly sourceLocation: SourceLocation;
207
+ readonly results: InlineEnumWithContext[];
208
+ }
209
+
210
+ interface CollectInlineEnumsFromResolverArgPropertiesParams
211
+ extends CollectInlineEnumsFromResolverPropertiesBaseParams {
212
+ readonly contextKind: "resolverArg";
213
+ readonly argName: string;
214
+ }
215
+
216
+ interface CollectInlineEnumsFromResolverPayloadPropertiesParams
217
+ extends CollectInlineEnumsFromResolverPropertiesBaseParams {
218
+ readonly contextKind: "resolverPayload";
219
+ }
220
+
221
+ type CollectInlineEnumsFromResolverPropertiesParams =
222
+ | CollectInlineEnumsFromResolverArgPropertiesParams
223
+ | CollectInlineEnumsFromResolverPayloadPropertiesParams;
224
+
225
+ /**
226
+ * Unified function for collecting inline enums from nested object properties
227
+ * in both resolver args and payload return types.
228
+ */
229
+ function collectInlineEnumsFromResolverProperties(
230
+ params: CollectInlineEnumsFromResolverPropertiesParams,
231
+ ): void {
232
+ const {
233
+ properties,
234
+ resolverType,
235
+ fieldName,
236
+ parentTypeName,
237
+ parentPath,
238
+ sourceLocation,
239
+ results,
240
+ } = params;
241
+
242
+ traverseInlineObjectProperties(
243
+ { properties, parentPath },
244
+ (prop, propPath) => {
245
+ const tsType = prop.tsType;
246
+
247
+ if (tsType.kind === "inlineEnum" && tsType.inlineEnumMembers) {
248
+ const context: AutoTypeNameContext =
249
+ params.contextKind === "resolverArg"
250
+ ? {
251
+ kind: "resolverArg",
252
+ resolverType,
253
+ fieldName,
254
+ argName: params.argName,
255
+ parentTypeName,
256
+ fieldPath: propPath,
257
+ }
258
+ : {
259
+ kind: "resolverPayload",
260
+ resolverType,
261
+ fieldName,
262
+ parentTypeName,
263
+ fieldPath: propPath,
264
+ };
265
+
266
+ results.push({
267
+ members: tsType.inlineEnumMembers,
268
+ context,
269
+ sourceLocation: prop.sourceLocation ?? sourceLocation,
270
+ nullable: tsType.nullable,
271
+ externalEnumSymbol: tsType.externalEnumSymbol,
272
+ externalEnumDescription: tsType.externalEnumDescription,
273
+ externalEnumDeprecated: tsType.externalEnumDeprecated,
274
+ });
275
+ }
276
+ },
277
+ );
278
+ }
279
+
280
+ export interface CollectInlineEnumsFromPayloadsParams {
281
+ readonly resolversResult: ExtractResolversResult;
282
+ }
283
+
284
+ /**
285
+ * Collect inline enums from resolver return types (Payload types).
286
+ */
287
+ export function collectInlineEnumsFromPayloads(
288
+ params: CollectInlineEnumsFromPayloadsParams,
289
+ ): InlineEnumWithContext[] {
290
+ const { resolversResult } = params;
291
+ const results: InlineEnumWithContext[] = [];
292
+
293
+ forEachResolverField(resolversResult, (info) => {
294
+ collectInlineEnumsFromPayloadReturnType(info, results);
295
+ });
296
+
297
+ return results;
298
+ }
299
+
300
+ function collectInlineEnumsFromPayloadReturnType(
301
+ info: ResolverFieldInfo,
302
+ results: InlineEnumWithContext[],
303
+ ): void {
304
+ const { field, resolverType, parentTypeName } = info;
305
+
306
+ if (field.returnTypeInlineEnumMembers) {
307
+ const context: AutoTypeNameContext = {
308
+ kind: "resolverPayload",
309
+ resolverType,
310
+ fieldName: field.name,
311
+ parentTypeName,
312
+ fieldPath: [],
313
+ };
314
+
315
+ results.push({
316
+ members: field.returnTypeInlineEnumMembers,
317
+ context,
318
+ sourceLocation: field.sourceLocation,
319
+ nullable: field.type.nullable,
320
+ externalEnumSymbol: field.returnTypeExternalEnumSymbol,
321
+ externalEnumDescription: field.returnTypeExternalEnumDescription,
322
+ externalEnumDeprecated: field.returnTypeExternalEnumDeprecated,
323
+ });
324
+ }
325
+
326
+ if (field.returnTypeInlineObjectProperties) {
327
+ collectInlineEnumsFromResolverProperties({
328
+ properties: field.returnTypeInlineObjectProperties,
329
+ resolverType,
330
+ fieldName: field.name,
331
+ parentTypeName,
332
+ parentPath: [],
333
+ sourceLocation: field.sourceLocation,
334
+ contextKind: "resolverPayload",
335
+ results,
336
+ });
337
+ }
338
+ }
@@ -0,0 +1,49 @@
1
+ import type { InlineObjectPropertyDef } from "../type-extractor/types/index.js";
2
+
3
+ /**
4
+ * Visitor callback for each property in an inline object hierarchy.
5
+ * @param prop The property being visited
6
+ * @param propPath Full path from the root to this property (including the property name)
7
+ */
8
+ export type PropertyVisitor = (
9
+ prop: InlineObjectPropertyDef,
10
+ propPath: ReadonlyArray<string>,
11
+ ) => void;
12
+
13
+ export interface TraverseInlineObjectPropertiesParams {
14
+ readonly properties: ReadonlyArray<InlineObjectPropertyDef>;
15
+ readonly parentPath: ReadonlyArray<string>;
16
+ }
17
+
18
+ /**
19
+ * Traverses inline object properties recursively, calling the visitor for each property.
20
+ * Handles nested inlineObject properties automatically.
21
+ *
22
+ * This utility eliminates the duplicated traversal logic in inline-enum-collector
23
+ * and inline-union-collector.
24
+ */
25
+ export function traverseInlineObjectProperties(
26
+ params: TraverseInlineObjectPropertiesParams,
27
+ visitor: PropertyVisitor,
28
+ ): void {
29
+ const { properties, parentPath } = params;
30
+
31
+ for (const prop of properties) {
32
+ const propPath = [...parentPath, prop.name];
33
+
34
+ visitor(prop, propPath);
35
+
36
+ if (
37
+ prop.tsType.kind === "inlineObject" &&
38
+ prop.tsType.inlineObjectProperties
39
+ ) {
40
+ traverseInlineObjectProperties(
41
+ {
42
+ properties: prop.tsType.inlineObjectProperties,
43
+ parentPath: propPath,
44
+ },
45
+ visitor,
46
+ );
47
+ }
48
+ }
49
+ }