@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,150 @@
1
+ import type ts from "typescript";
2
+ import type { DeprecationInfo } from "../../shared/tsdoc-parser.js";
3
+ import type {
4
+ InlineEnumMemberInfo,
5
+ InlineObjectPropertyDef,
6
+ ScalarTypeInfo,
7
+ TSTypeReference,
8
+ } from "./typescript.js";
9
+
10
+ interface CreateTSTypeReferenceParams {
11
+ readonly kind: TSTypeReference["kind"];
12
+ readonly overrides: Partial<TSTypeReference>;
13
+ }
14
+
15
+ function createTSTypeReference(
16
+ params: CreateTSTypeReferenceParams,
17
+ ): TSTypeReference {
18
+ return {
19
+ kind: params.kind,
20
+ name: null,
21
+ elementType: null,
22
+ members: null,
23
+ nullable: false,
24
+ scalarInfo: null,
25
+ inlineObjectProperties: null,
26
+ inlineObjectDescription: null,
27
+ inlineObjectDeprecated: null,
28
+ inlineEnumMembers: null,
29
+ externalEnumSymbol: null,
30
+ externalEnumDescription: null,
31
+ externalEnumDeprecated: null,
32
+ ...params.overrides,
33
+ };
34
+ }
35
+
36
+ interface CreateReferenceTypeParams {
37
+ readonly name: string;
38
+ readonly nullable: boolean;
39
+ }
40
+
41
+ export function createReferenceType(
42
+ params: CreateReferenceTypeParams,
43
+ ): TSTypeReference {
44
+ return createTSTypeReference({
45
+ kind: "reference",
46
+ overrides: { name: params.name, nullable: params.nullable },
47
+ });
48
+ }
49
+
50
+ interface CreatePrimitiveTypeParams {
51
+ readonly name: string;
52
+ readonly nullable: boolean;
53
+ }
54
+
55
+ export function createPrimitiveType(
56
+ params: CreatePrimitiveTypeParams,
57
+ ): TSTypeReference {
58
+ return createTSTypeReference({
59
+ kind: "primitive",
60
+ overrides: { name: params.name, nullable: params.nullable },
61
+ });
62
+ }
63
+
64
+ export function createArrayType(elementType: TSTypeReference): TSTypeReference {
65
+ return createTSTypeReference({ kind: "array", overrides: { elementType } });
66
+ }
67
+
68
+ interface CreateUnionTypeParams {
69
+ readonly members: ReadonlyArray<TSTypeReference>;
70
+ readonly nullable: boolean;
71
+ }
72
+
73
+ export function createUnionType(
74
+ params: CreateUnionTypeParams,
75
+ ): TSTypeReference {
76
+ return createTSTypeReference({
77
+ kind: "union",
78
+ overrides: { members: params.members, nullable: params.nullable },
79
+ });
80
+ }
81
+
82
+ interface CreateInlineObjectTypeParams {
83
+ readonly properties: ReadonlyArray<InlineObjectPropertyDef>;
84
+ /** TSDoc description from the type alias (null for true inline objects) */
85
+ readonly description: string | null;
86
+ /** @deprecated tag from the type alias (null for true inline objects) */
87
+ readonly deprecated: DeprecationInfo | null;
88
+ }
89
+
90
+ export function createInlineObjectType(
91
+ params: CreateInlineObjectTypeParams,
92
+ ): TSTypeReference {
93
+ return createTSTypeReference({
94
+ kind: "inlineObject",
95
+ overrides: {
96
+ inlineObjectProperties: params.properties,
97
+ inlineObjectDescription: params.description,
98
+ inlineObjectDeprecated: params.deprecated,
99
+ },
100
+ });
101
+ }
102
+
103
+ interface CreateScalarTypeParams {
104
+ readonly name: string;
105
+ readonly scalarInfo: ScalarTypeInfo;
106
+ readonly nullable: boolean;
107
+ }
108
+
109
+ export function createScalarType(
110
+ params: CreateScalarTypeParams,
111
+ ): TSTypeReference {
112
+ return createTSTypeReference({
113
+ kind: "scalar",
114
+ overrides: {
115
+ name: params.name,
116
+ scalarInfo: params.scalarInfo,
117
+ nullable: params.nullable,
118
+ },
119
+ });
120
+ }
121
+
122
+ export function createLiteralType(name: string): TSTypeReference {
123
+ return createTSTypeReference({ kind: "literal", overrides: { name } });
124
+ }
125
+
126
+ interface CreateInlineEnumTypeParams {
127
+ readonly members: ReadonlyArray<InlineEnumMemberInfo>;
128
+ readonly nullable: boolean;
129
+ /** External TypeScript enum symbol for deduplication (null for string literal unions) */
130
+ readonly externalEnumSymbol: ts.Symbol | null;
131
+ /** TSDoc description from the external enum type itself (null for string literal unions) */
132
+ readonly externalEnumDescription: string | null;
133
+ /** @deprecated tag from the external enum type itself (null for string literal unions) */
134
+ readonly externalEnumDeprecated: DeprecationInfo | null;
135
+ }
136
+
137
+ export function createInlineEnumType(
138
+ params: CreateInlineEnumTypeParams,
139
+ ): TSTypeReference {
140
+ return createTSTypeReference({
141
+ kind: "inlineEnum",
142
+ overrides: {
143
+ inlineEnumMembers: params.members,
144
+ nullable: params.nullable,
145
+ externalEnumSymbol: params.externalEnumSymbol,
146
+ externalEnumDescription: params.externalEnumDescription,
147
+ externalEnumDeprecated: params.externalEnumDeprecated,
148
+ },
149
+ });
150
+ }
@@ -0,0 +1,137 @@
1
+ import type ts from "typescript";
2
+ import type {
3
+ DirectiveArgumentValue,
4
+ DirectiveInfo,
5
+ } from "../../shared/directive-detector.js";
6
+ import type { DeprecationInfo } from "../../shared/tsdoc-parser.js";
7
+ import type { SourceLocation } from "./diagnostics.js";
8
+
9
+ export type TypeKind =
10
+ | "object"
11
+ | "interface"
12
+ | "union"
13
+ | "enum"
14
+ | "graphqlInterface";
15
+
16
+ /**
17
+ * Information about a detected scalar type.
18
+ */
19
+ export interface ScalarTypeInfo {
20
+ /** The GraphQL scalar type name (ID, Int, Float, String, Boolean, or custom scalar name) */
21
+ readonly scalarName: string;
22
+ /** The TypeScript type name (e.g., "IDString", "Int", "DateTime") */
23
+ readonly typeName: string;
24
+ /** The underlying TypeScript primitive type (undefined for custom scalars) */
25
+ readonly baseType: "string" | "number" | undefined;
26
+ /** Whether this is a custom scalar */
27
+ readonly isCustom: boolean;
28
+ /** Usage constraint: "input" for input-only, "output" for output-only, null for both */
29
+ readonly only: "input" | "output" | null;
30
+ }
31
+
32
+ export interface TypeMetadata {
33
+ readonly name: string;
34
+ readonly kind: TypeKind;
35
+ readonly sourceFile: string;
36
+ readonly sourceLocation: SourceLocation;
37
+ readonly exportKind: "named" | "default";
38
+ readonly description: string | null;
39
+ readonly deprecated: DeprecationInfo | null;
40
+ readonly directives: ReadonlyArray<DirectiveInfo> | null;
41
+ }
42
+
43
+ export type TSTypeReferenceKind =
44
+ | "primitive"
45
+ | "reference"
46
+ | "array"
47
+ | "union"
48
+ | "literal"
49
+ | "scalar"
50
+ | "inlineObject"
51
+ | "inlineEnum";
52
+
53
+ /**
54
+ * Information about an inline enum member (string literal union value).
55
+ */
56
+ export interface InlineEnumMemberInfo {
57
+ /** Original value from TypeScript (e.g., "pendingReview") */
58
+ readonly value: string;
59
+ /** Description from TSDoc (if available) */
60
+ readonly description: string | null;
61
+ /** Deprecation info from @deprecated tag */
62
+ readonly deprecated: DeprecationInfo | null;
63
+ }
64
+
65
+ export interface TSTypeReference {
66
+ readonly kind: TSTypeReferenceKind;
67
+ readonly name: string | null;
68
+ readonly elementType: TSTypeReference | null;
69
+ readonly members: ReadonlyArray<TSTypeReference> | null;
70
+ readonly nullable: boolean;
71
+ readonly scalarInfo: ScalarTypeInfo | null;
72
+ readonly inlineObjectProperties: ReadonlyArray<InlineObjectPropertyDef> | null;
73
+ /** TSDoc description from the inline object type alias (Requirement 7.2) */
74
+ readonly inlineObjectDescription: string | null;
75
+ /** @deprecated tag from the inline object type alias (Requirement 7.3) */
76
+ readonly inlineObjectDeprecated: DeprecationInfo | null;
77
+ /** Inline enum members when kind is "inlineEnum" */
78
+ readonly inlineEnumMembers: ReadonlyArray<InlineEnumMemberInfo> | null;
79
+ /** External TypeScript enum symbol for deduplication (Requirement 5.2) */
80
+ readonly externalEnumSymbol: ts.Symbol | null;
81
+ /** TSDoc description from the external enum type itself (Requirement 6.1) */
82
+ readonly externalEnumDescription: string | null;
83
+ /** @deprecated tag from the external enum type itself (Requirement 6.3) */
84
+ readonly externalEnumDeprecated: DeprecationInfo | null;
85
+ }
86
+
87
+ export interface InlineObjectPropertyDef {
88
+ readonly name: string;
89
+ readonly tsType: TSTypeReference;
90
+ readonly optional: boolean;
91
+ readonly description: string | null;
92
+ readonly deprecated: DeprecationInfo | null;
93
+ readonly directives: ReadonlyArray<DirectiveInfo> | null;
94
+ readonly defaultValue: DirectiveArgumentValue | null;
95
+ readonly sourceLocation: SourceLocation | null;
96
+ }
97
+
98
+ export interface FieldDefinition {
99
+ readonly name: string;
100
+ readonly tsType: TSTypeReference;
101
+ readonly optional: boolean;
102
+ readonly description: string | null;
103
+ readonly deprecated: DeprecationInfo | null;
104
+ readonly directives: ReadonlyArray<DirectiveInfo> | null;
105
+ readonly defaultValue: DirectiveArgumentValue | null;
106
+ readonly sourceLocation: SourceLocation | null;
107
+ }
108
+
109
+ export interface EnumMemberInfo {
110
+ readonly name: string;
111
+ readonly value: string;
112
+ /** Numeric value for numeric enums, null for string enums */
113
+ readonly numericValue: number | null;
114
+ readonly description: string | null;
115
+ readonly deprecated: DeprecationInfo | null;
116
+ readonly sourceLocation: SourceLocation | null;
117
+ }
118
+
119
+ export interface InlineObjectProperty {
120
+ readonly propertyName: string;
121
+ readonly propertyType: TSTypeReference;
122
+ readonly description: string | null;
123
+ readonly deprecated: DeprecationInfo | null;
124
+ }
125
+
126
+ export interface InlineObjectMember {
127
+ readonly properties: ReadonlyArray<InlineObjectProperty>;
128
+ }
129
+
130
+ export interface ExtractedTypeInfo {
131
+ readonly metadata: TypeMetadata;
132
+ readonly fields: ReadonlyArray<FieldDefinition>;
133
+ readonly unionMembers: ReadonlyArray<string> | null;
134
+ readonly inlineObjectMembers: ReadonlyArray<InlineObjectMember> | null;
135
+ readonly enumMembers: ReadonlyArray<EnumMemberInfo> | null;
136
+ readonly implementedInterfaces: ReadonlyArray<string> | null;
137
+ }
@@ -0,0 +1,77 @@
1
+ import { BUILT_IN_SCALARS } from "../../shared/constants.js";
2
+ import type { Diagnostic, GraphQLTypeInfo } from "../types/index.js";
3
+
4
+ export interface ValidationResult {
5
+ readonly valid: boolean;
6
+ readonly diagnostics: ReadonlyArray<Diagnostic>;
7
+ }
8
+
9
+ export interface ValidateTypesOptions {
10
+ readonly types: ReadonlyArray<GraphQLTypeInfo>;
11
+ readonly customScalarNames: ReadonlyArray<string> | null;
12
+ }
13
+ const PLACEHOLDER_TYPES = new Set(["__INLINE_OBJECT__", "__INLINE_ENUM__"]);
14
+
15
+ function isOptionsObject(
16
+ arg: ReadonlyArray<GraphQLTypeInfo> | ValidateTypesOptions,
17
+ ): arg is ValidateTypesOptions {
18
+ return !Array.isArray(arg) && "types" in arg;
19
+ }
20
+
21
+ export function validateTypes(
22
+ typesOrOptions: ReadonlyArray<GraphQLTypeInfo> | ValidateTypesOptions,
23
+ ): ValidationResult {
24
+ const types = isOptionsObject(typesOrOptions)
25
+ ? typesOrOptions.types
26
+ : typesOrOptions;
27
+ const customScalarNames = isOptionsObject(typesOrOptions)
28
+ ? typesOrOptions.customScalarNames
29
+ : undefined;
30
+
31
+ const diagnostics: Diagnostic[] = [];
32
+
33
+ const typeNames = new Set(types.map((t) => t.name));
34
+ const knownScalars = new Set([
35
+ ...BUILT_IN_SCALARS,
36
+ ...(customScalarNames ?? []),
37
+ ]);
38
+
39
+ for (const type of types) {
40
+ if (type.kind === "Object" && type.fields) {
41
+ for (const field of type.fields) {
42
+ const typeName = field.type.typeName;
43
+
44
+ if (
45
+ !typeNames.has(typeName) &&
46
+ !knownScalars.has(typeName) &&
47
+ !PLACEHOLDER_TYPES.has(typeName)
48
+ ) {
49
+ diagnostics.push({
50
+ code: "UNRESOLVED_REFERENCE",
51
+ message: `Field '${field.name}' references unresolved type '${typeName}'`,
52
+ severity: "error",
53
+ location: { file: type.sourceFile, line: 1, column: 1 },
54
+ });
55
+ }
56
+ }
57
+ }
58
+
59
+ if (type.kind === "Union" && type.unionMembers) {
60
+ for (const member of type.unionMembers) {
61
+ if (!typeNames.has(member) && !knownScalars.has(member)) {
62
+ diagnostics.push({
63
+ code: "UNRESOLVED_REFERENCE",
64
+ message: `Union '${type.name}' references unresolved type '${member}'`,
65
+ severity: "error",
66
+ location: { file: type.sourceFile, line: 1, column: 1 },
67
+ });
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ return {
74
+ valid: diagnostics.length === 0,
75
+ diagnostics,
76
+ };
77
+ }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=auto-type-generator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-type-generator.test.d.ts","sourceRoot":"","sources":["../../src/auto-type-generator/auto-type-generator.test.ts"],"names":[],"mappings":""}