@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,137 @@
1
+ import type ts from "typescript";
2
+ import type {
3
+ InlineEnumMemberInfo,
4
+ InlineObjectPropertyDef,
5
+ ScalarTypeInfo,
6
+ TSTypeReference,
7
+ } from "./typescript.js";
8
+
9
+ interface CreateTSTypeReferenceParams {
10
+ readonly kind: TSTypeReference["kind"];
11
+ readonly overrides: Partial<TSTypeReference>;
12
+ }
13
+
14
+ function createTSTypeReference(
15
+ params: CreateTSTypeReferenceParams,
16
+ ): TSTypeReference {
17
+ return {
18
+ kind: params.kind,
19
+ name: null,
20
+ elementType: null,
21
+ members: null,
22
+ nullable: false,
23
+ scalarInfo: null,
24
+ inlineObjectProperties: null,
25
+ inlineEnumMembers: null,
26
+ externalEnumSymbol: null,
27
+ externalEnumDescription: null,
28
+ externalEnumDeprecated: null,
29
+ ...params.overrides,
30
+ };
31
+ }
32
+
33
+ interface CreateReferenceTypeParams {
34
+ readonly name: string;
35
+ readonly nullable: boolean;
36
+ }
37
+
38
+ export function createReferenceType(
39
+ params: CreateReferenceTypeParams,
40
+ ): TSTypeReference {
41
+ return createTSTypeReference({
42
+ kind: "reference",
43
+ overrides: { name: params.name, nullable: params.nullable },
44
+ });
45
+ }
46
+
47
+ interface CreatePrimitiveTypeParams {
48
+ readonly name: string;
49
+ readonly nullable: boolean;
50
+ }
51
+
52
+ export function createPrimitiveType(
53
+ params: CreatePrimitiveTypeParams,
54
+ ): TSTypeReference {
55
+ return createTSTypeReference({
56
+ kind: "primitive",
57
+ overrides: { name: params.name, nullable: params.nullable },
58
+ });
59
+ }
60
+
61
+ export function createArrayType(elementType: TSTypeReference): TSTypeReference {
62
+ return createTSTypeReference({ kind: "array", overrides: { elementType } });
63
+ }
64
+
65
+ interface CreateUnionTypeParams {
66
+ readonly members: ReadonlyArray<TSTypeReference>;
67
+ readonly nullable: boolean;
68
+ }
69
+
70
+ export function createUnionType(
71
+ params: CreateUnionTypeParams,
72
+ ): TSTypeReference {
73
+ return createTSTypeReference({
74
+ kind: "union",
75
+ overrides: { members: params.members, nullable: params.nullable },
76
+ });
77
+ }
78
+
79
+ export function createInlineObjectType(
80
+ properties: ReadonlyArray<InlineObjectPropertyDef>,
81
+ ): TSTypeReference {
82
+ return createTSTypeReference({
83
+ kind: "inlineObject",
84
+ overrides: { inlineObjectProperties: properties },
85
+ });
86
+ }
87
+
88
+ interface CreateScalarTypeParams {
89
+ readonly name: string;
90
+ readonly scalarInfo: ScalarTypeInfo;
91
+ readonly nullable: boolean;
92
+ }
93
+
94
+ export function createScalarType(
95
+ params: CreateScalarTypeParams,
96
+ ): TSTypeReference {
97
+ return createTSTypeReference({
98
+ kind: "scalar",
99
+ overrides: {
100
+ name: params.name,
101
+ scalarInfo: params.scalarInfo,
102
+ nullable: params.nullable,
103
+ },
104
+ });
105
+ }
106
+
107
+ export function createLiteralType(name: string): TSTypeReference {
108
+ return createTSTypeReference({ kind: "literal", overrides: { name } });
109
+ }
110
+
111
+ interface CreateInlineEnumTypeParams {
112
+ readonly members: ReadonlyArray<InlineEnumMemberInfo>;
113
+ readonly nullable: boolean;
114
+ /** External TypeScript enum symbol for deduplication (null for string literal unions) */
115
+ readonly externalEnumSymbol: ts.Symbol | null;
116
+ /** TSDoc description from the external enum type itself (null for string literal unions) */
117
+ readonly externalEnumDescription: string | null;
118
+ /** @deprecated tag from the external enum type itself (null for string literal unions) */
119
+ readonly externalEnumDeprecated:
120
+ | import("../../shared/tsdoc-parser.js").DeprecationInfo
121
+ | null;
122
+ }
123
+
124
+ export function createInlineEnumType(
125
+ params: CreateInlineEnumTypeParams,
126
+ ): TSTypeReference {
127
+ return createTSTypeReference({
128
+ kind: "inlineEnum",
129
+ overrides: {
130
+ inlineEnumMembers: params.members,
131
+ nullable: params.nullable,
132
+ externalEnumSymbol: params.externalEnumSymbol,
133
+ externalEnumDescription: params.externalEnumDescription,
134
+ externalEnumDeprecated: params.externalEnumDeprecated,
135
+ },
136
+ });
137
+ }
@@ -0,0 +1,133 @@
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
+ /** Inline enum members when kind is "inlineEnum" */
74
+ readonly inlineEnumMembers: ReadonlyArray<InlineEnumMemberInfo> | null;
75
+ /** External TypeScript enum symbol for deduplication (Requirement 5.2) */
76
+ readonly externalEnumSymbol: ts.Symbol | null;
77
+ /** TSDoc description from the external enum type itself (Requirement 6.1) */
78
+ readonly externalEnumDescription: string | null;
79
+ /** @deprecated tag from the external enum type itself (Requirement 6.3) */
80
+ readonly externalEnumDeprecated: DeprecationInfo | null;
81
+ }
82
+
83
+ export interface InlineObjectPropertyDef {
84
+ readonly name: string;
85
+ readonly tsType: TSTypeReference;
86
+ readonly optional: boolean;
87
+ readonly description: string | null;
88
+ readonly deprecated: DeprecationInfo | null;
89
+ readonly directives: ReadonlyArray<DirectiveInfo> | null;
90
+ readonly defaultValue: DirectiveArgumentValue | null;
91
+ readonly sourceLocation: SourceLocation | null;
92
+ }
93
+
94
+ export interface FieldDefinition {
95
+ readonly name: string;
96
+ readonly tsType: TSTypeReference;
97
+ readonly optional: boolean;
98
+ readonly description: string | null;
99
+ readonly deprecated: DeprecationInfo | null;
100
+ readonly directives: ReadonlyArray<DirectiveInfo> | null;
101
+ readonly defaultValue: DirectiveArgumentValue | null;
102
+ readonly sourceLocation: SourceLocation | null;
103
+ }
104
+
105
+ export interface EnumMemberInfo {
106
+ readonly name: string;
107
+ readonly value: string;
108
+ /** Numeric value for numeric enums, null for string enums */
109
+ readonly numericValue: number | null;
110
+ readonly description: string | null;
111
+ readonly deprecated: DeprecationInfo | null;
112
+ readonly sourceLocation: SourceLocation | null;
113
+ }
114
+
115
+ export interface InlineObjectProperty {
116
+ readonly propertyName: string;
117
+ readonly propertyType: TSTypeReference;
118
+ readonly description: string | null;
119
+ readonly deprecated: DeprecationInfo | null;
120
+ }
121
+
122
+ export interface InlineObjectMember {
123
+ readonly properties: ReadonlyArray<InlineObjectProperty>;
124
+ }
125
+
126
+ export interface ExtractedTypeInfo {
127
+ readonly metadata: TypeMetadata;
128
+ readonly fields: ReadonlyArray<FieldDefinition>;
129
+ readonly unionMembers: ReadonlyArray<string> | null;
130
+ readonly inlineObjectMembers: ReadonlyArray<InlineObjectMember> | null;
131
+ readonly enumMembers: ReadonlyArray<EnumMemberInfo> | null;
132
+ readonly implementedInterfaces: ReadonlyArray<string> | null;
133
+ }
@@ -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
+ }
package/README.md DELETED
@@ -1,45 +0,0 @@
1
- # @gqlkit-ts/cli
2
-
3
- ## ⚠️ IMPORTANT NOTICE ⚠️
4
-
5
- **This package is created solely for the purpose of setting up OIDC (OpenID Connect) trusted publishing with npm.**
6
-
7
- This is **NOT** a functional package and contains **NO** code or functionality beyond the OIDC setup configuration.
8
-
9
- ## Purpose
10
-
11
- This package exists to:
12
- 1. Configure OIDC trusted publishing for the package name `@gqlkit-ts/cli`
13
- 2. Enable secure, token-less publishing from CI/CD workflows
14
- 3. Establish provenance for packages published under this name
15
-
16
- ## What is OIDC Trusted Publishing?
17
-
18
- OIDC trusted publishing allows package maintainers to publish packages directly from their CI/CD workflows without needing to manage npm access tokens. Instead, it uses OpenID Connect to establish trust between the CI/CD provider (like GitHub Actions) and npm.
19
-
20
- ## Setup Instructions
21
-
22
- To properly configure OIDC trusted publishing for this package:
23
-
24
- 1. Go to [npmjs.com](https://www.npmjs.com/) and navigate to your package settings
25
- 2. Configure the trusted publisher (e.g., GitHub Actions)
26
- 3. Specify the repository and workflow that should be allowed to publish
27
- 4. Use the configured workflow to publish your actual package
28
-
29
- ## DO NOT USE THIS PACKAGE
30
-
31
- This package is a placeholder for OIDC configuration only. It:
32
- - Contains no executable code
33
- - Provides no functionality
34
- - Should not be installed as a dependency
35
- - Exists only for administrative purposes
36
-
37
- ## More Information
38
-
39
- For more details about npm's trusted publishing feature, see:
40
- - [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
41
- - [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
42
-
43
- ---
44
-
45
- **Maintained for OIDC setup purposes only**