@gqlkit-ts/cli 0.0.1 → 0.1.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 (325) hide show
  1. package/LICENSE +21 -0
  2. package/dist/auto-type-generator/auto-type-generator.d.ts +46 -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 +353 -0
  5. package/dist/auto-type-generator/auto-type-generator.js.map +1 -0
  6. package/dist/auto-type-generator/auto-type-generator.test.d.ts +2 -0
  7. package/dist/auto-type-generator/auto-type-generator.test.d.ts.map +1 -0
  8. package/dist/auto-type-generator/auto-type-generator.test.js +613 -0
  9. package/dist/auto-type-generator/auto-type-generator.test.js.map +1 -0
  10. package/dist/auto-type-generator/index.d.ts +4 -0
  11. package/dist/auto-type-generator/index.d.ts.map +1 -0
  12. package/dist/auto-type-generator/index.js +3 -0
  13. package/dist/auto-type-generator/index.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/name-collision-validator.test.d.ts +2 -0
  19. package/dist/auto-type-generator/name-collision-validator.test.d.ts.map +1 -0
  20. package/dist/auto-type-generator/name-collision-validator.test.js +358 -0
  21. package/dist/auto-type-generator/name-collision-validator.test.js.map +1 -0
  22. package/dist/auto-type-generator/naming-convention.d.ts +40 -0
  23. package/dist/auto-type-generator/naming-convention.d.ts.map +1 -0
  24. package/dist/auto-type-generator/naming-convention.js +59 -0
  25. package/dist/auto-type-generator/naming-convention.js.map +1 -0
  26. package/dist/auto-type-generator/naming-convention.test.d.ts +2 -0
  27. package/dist/auto-type-generator/naming-convention.test.d.ts.map +1 -0
  28. package/dist/auto-type-generator/naming-convention.test.js +132 -0
  29. package/dist/auto-type-generator/naming-convention.test.js.map +1 -0
  30. package/dist/cli.d.ts +2 -0
  31. package/dist/cli.d.ts.map +1 -0
  32. package/dist/cli.js +11 -0
  33. package/dist/cli.js.map +1 -0
  34. package/dist/commands/gen.d.ts +32 -0
  35. package/dist/commands/gen.d.ts.map +1 -0
  36. package/dist/commands/gen.js +101 -0
  37. package/dist/commands/gen.js.map +1 -0
  38. package/dist/commands/gen.test.d.ts +2 -0
  39. package/dist/commands/gen.test.d.ts.map +1 -0
  40. package/dist/commands/gen.test.js +226 -0
  41. package/dist/commands/gen.test.js.map +1 -0
  42. package/dist/commands/main.d.ts +12 -0
  43. package/dist/commands/main.d.ts.map +1 -0
  44. package/dist/commands/main.js +5 -0
  45. package/dist/commands/main.js.map +1 -0
  46. package/dist/config/define-config.d.ts +26 -0
  47. package/dist/config/define-config.d.ts.map +1 -0
  48. package/dist/config/define-config.js +27 -0
  49. package/dist/config/define-config.js.map +1 -0
  50. package/dist/config/index.d.ts +3 -0
  51. package/dist/config/index.d.ts.map +1 -0
  52. package/dist/config/index.js +2 -0
  53. package/dist/config/index.js.map +1 -0
  54. package/dist/config/types.d.ts +131 -0
  55. package/dist/config/types.d.ts.map +1 -0
  56. package/dist/config/types.js +2 -0
  57. package/dist/config/types.js.map +1 -0
  58. package/dist/config-loader/index.d.ts +3 -0
  59. package/dist/config-loader/index.d.ts.map +1 -0
  60. package/dist/config-loader/index.js +2 -0
  61. package/dist/config-loader/index.js.map +1 -0
  62. package/dist/config-loader/loader.d.ts +50 -0
  63. package/dist/config-loader/loader.d.ts.map +1 -0
  64. package/dist/config-loader/loader.js +78 -0
  65. package/dist/config-loader/loader.js.map +1 -0
  66. package/dist/config-loader/loader.test.d.ts +2 -0
  67. package/dist/config-loader/loader.test.d.ts.map +1 -0
  68. package/dist/config-loader/loader.test.js +123 -0
  69. package/dist/config-loader/loader.test.js.map +1 -0
  70. package/dist/config-loader/validator.d.ts +13 -0
  71. package/dist/config-loader/validator.d.ts.map +1 -0
  72. package/dist/config-loader/validator.js +497 -0
  73. package/dist/config-loader/validator.js.map +1 -0
  74. package/dist/config-loader/validator.test.d.ts +2 -0
  75. package/dist/config-loader/validator.test.d.ts.map +1 -0
  76. package/dist/config-loader/validator.test.js +846 -0
  77. package/dist/config-loader/validator.test.js.map +1 -0
  78. package/dist/gen-orchestrator/golden.test.d.ts +2 -0
  79. package/dist/gen-orchestrator/golden.test.d.ts.map +1 -0
  80. package/dist/gen-orchestrator/golden.test.js +102 -0
  81. package/dist/gen-orchestrator/golden.test.js.map +1 -0
  82. package/dist/gen-orchestrator/hook-executor/hook-executor.d.ts +25 -0
  83. package/dist/gen-orchestrator/hook-executor/hook-executor.d.ts.map +1 -0
  84. package/dist/gen-orchestrator/hook-executor/hook-executor.js +68 -0
  85. package/dist/gen-orchestrator/hook-executor/hook-executor.js.map +1 -0
  86. package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts +2 -0
  87. package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts.map +1 -0
  88. package/dist/gen-orchestrator/hook-executor/hook-executor.test.js +167 -0
  89. package/dist/gen-orchestrator/hook-executor/hook-executor.test.js.map +1 -0
  90. package/dist/gen-orchestrator/orchestrator.d.ts +30 -0
  91. package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -0
  92. package/dist/gen-orchestrator/orchestrator.js +407 -0
  93. package/dist/gen-orchestrator/orchestrator.js.map +1 -0
  94. package/dist/gen-orchestrator/reporter/diagnostic-reporter.d.ts +9 -0
  95. package/dist/gen-orchestrator/reporter/diagnostic-reporter.d.ts.map +1 -0
  96. package/dist/gen-orchestrator/reporter/diagnostic-reporter.js +32 -0
  97. package/dist/gen-orchestrator/reporter/diagnostic-reporter.js.map +1 -0
  98. package/dist/gen-orchestrator/reporter/progress-reporter.d.ts +19 -0
  99. package/dist/gen-orchestrator/reporter/progress-reporter.d.ts.map +1 -0
  100. package/dist/gen-orchestrator/reporter/progress-reporter.js +38 -0
  101. package/dist/gen-orchestrator/reporter/progress-reporter.js.map +1 -0
  102. package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts +2 -0
  103. package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts.map +1 -0
  104. package/dist/gen-orchestrator/reporter/progress-reporter.test.js +74 -0
  105. package/dist/gen-orchestrator/reporter/progress-reporter.test.js.map +1 -0
  106. package/dist/gen-orchestrator/writer/file-writer.d.ts +13 -0
  107. package/dist/gen-orchestrator/writer/file-writer.d.ts.map +1 -0
  108. package/dist/gen-orchestrator/writer/file-writer.js +22 -0
  109. package/dist/gen-orchestrator/writer/file-writer.js.map +1 -0
  110. package/dist/index.d.ts +3 -0
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +2 -0
  113. package/dist/index.js.map +1 -0
  114. package/dist/resolver-extractor/extract-resolvers.d.ts +40 -0
  115. package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -0
  116. package/dist/resolver-extractor/extract-resolvers.js +2 -0
  117. package/dist/resolver-extractor/extract-resolvers.js.map +1 -0
  118. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +50 -0
  119. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -0
  120. package/dist/resolver-extractor/extractor/define-api-extractor.js +685 -0
  121. package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -0
  122. package/dist/resolver-extractor/index.d.ts +5 -0
  123. package/dist/resolver-extractor/index.d.ts.map +1 -0
  124. package/dist/resolver-extractor/index.js +2 -0
  125. package/dist/resolver-extractor/index.js.map +1 -0
  126. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +25 -0
  127. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -0
  128. package/dist/resolver-extractor/validator/abstract-resolver-validator.js +172 -0
  129. package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -0
  130. package/dist/resolver-extractor/validator/only-validator.d.ts +61 -0
  131. package/dist/resolver-extractor/validator/only-validator.d.ts.map +1 -0
  132. package/dist/resolver-extractor/validator/only-validator.js +76 -0
  133. package/dist/resolver-extractor/validator/only-validator.js.map +1 -0
  134. package/dist/resolver-extractor/validator/only-validator.test.d.ts +8 -0
  135. package/dist/resolver-extractor/validator/only-validator.test.d.ts.map +1 -0
  136. package/dist/resolver-extractor/validator/only-validator.test.js +352 -0
  137. package/dist/resolver-extractor/validator/only-validator.test.js.map +1 -0
  138. package/dist/schema-generator/builder/ast-builder.d.ts +7 -0
  139. package/dist/schema-generator/builder/ast-builder.d.ts.map +1 -0
  140. package/dist/schema-generator/builder/ast-builder.js +417 -0
  141. package/dist/schema-generator/builder/ast-builder.js.map +1 -0
  142. package/dist/schema-generator/builder/ast-builder.test.d.ts +2 -0
  143. package/dist/schema-generator/builder/ast-builder.test.d.ts.map +1 -0
  144. package/dist/schema-generator/builder/ast-builder.test.js +469 -0
  145. package/dist/schema-generator/builder/ast-builder.test.js.map +1 -0
  146. package/dist/schema-generator/emitter/code-emitter.d.ts +7 -0
  147. package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -0
  148. package/dist/schema-generator/emitter/code-emitter.js +201 -0
  149. package/dist/schema-generator/emitter/code-emitter.js.map +1 -0
  150. package/dist/schema-generator/emitter/sdl-emitter.d.ts +7 -0
  151. package/dist/schema-generator/emitter/sdl-emitter.d.ts.map +1 -0
  152. package/dist/schema-generator/emitter/sdl-emitter.js +11 -0
  153. package/dist/schema-generator/emitter/sdl-emitter.js.map +1 -0
  154. package/dist/schema-generator/generate-schema.d.ts +26 -0
  155. package/dist/schema-generator/generate-schema.d.ts.map +1 -0
  156. package/dist/schema-generator/generate-schema.js +76 -0
  157. package/dist/schema-generator/generate-schema.js.map +1 -0
  158. package/dist/schema-generator/index.d.ts +4 -0
  159. package/dist/schema-generator/index.d.ts.map +1 -0
  160. package/dist/schema-generator/index.js +2 -0
  161. package/dist/schema-generator/index.js.map +1 -0
  162. package/dist/schema-generator/integrator/result-integrator.d.ts +93 -0
  163. package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -0
  164. package/dist/schema-generator/integrator/result-integrator.js +396 -0
  165. package/dist/schema-generator/integrator/result-integrator.js.map +1 -0
  166. package/dist/schema-generator/pruner/schema-pruner.d.ts +16 -0
  167. package/dist/schema-generator/pruner/schema-pruner.d.ts.map +1 -0
  168. package/dist/schema-generator/pruner/schema-pruner.js +66 -0
  169. package/dist/schema-generator/pruner/schema-pruner.js.map +1 -0
  170. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +24 -0
  171. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -0
  172. package/dist/schema-generator/resolver-collector/resolver-collector.js +61 -0
  173. package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -0
  174. package/dist/shared/constants.d.ts +70 -0
  175. package/dist/shared/constants.d.ts.map +1 -0
  176. package/dist/shared/constants.js +128 -0
  177. package/dist/shared/constants.js.map +1 -0
  178. package/dist/shared/default-value-detector.d.ts +40 -0
  179. package/dist/shared/default-value-detector.d.ts.map +1 -0
  180. package/dist/shared/default-value-detector.js +124 -0
  181. package/dist/shared/default-value-detector.js.map +1 -0
  182. package/dist/shared/diagnostics.d.ts +4 -0
  183. package/dist/shared/diagnostics.d.ts.map +1 -0
  184. package/dist/shared/diagnostics.js +25 -0
  185. package/dist/shared/diagnostics.js.map +1 -0
  186. package/dist/shared/directive-definition-extractor.d.ts +64 -0
  187. package/dist/shared/directive-definition-extractor.d.ts.map +1 -0
  188. package/dist/shared/directive-definition-extractor.js +399 -0
  189. package/dist/shared/directive-definition-extractor.js.map +1 -0
  190. package/dist/shared/directive-detector.d.ts +102 -0
  191. package/dist/shared/directive-detector.d.ts.map +1 -0
  192. package/dist/shared/directive-detector.js +422 -0
  193. package/dist/shared/directive-detector.js.map +1 -0
  194. package/dist/shared/file-scanner.d.ts +25 -0
  195. package/dist/shared/file-scanner.d.ts.map +1 -0
  196. package/dist/shared/file-scanner.js +99 -0
  197. package/dist/shared/file-scanner.js.map +1 -0
  198. package/dist/shared/file-scanner.test.d.ts +2 -0
  199. package/dist/shared/file-scanner.test.d.ts.map +1 -0
  200. package/dist/shared/file-scanner.test.js +138 -0
  201. package/dist/shared/file-scanner.test.js.map +1 -0
  202. package/dist/shared/index.d.ts +10 -0
  203. package/dist/shared/index.d.ts.map +1 -0
  204. package/dist/shared/index.js +8 -0
  205. package/dist/shared/index.js.map +1 -0
  206. package/dist/shared/inline-object-extractor.d.ts +13 -0
  207. package/dist/shared/inline-object-extractor.d.ts.map +1 -0
  208. package/dist/shared/inline-object-extractor.js +65 -0
  209. package/dist/shared/inline-object-extractor.js.map +1 -0
  210. package/dist/shared/inline-object-utils.d.ts +7 -0
  211. package/dist/shared/inline-object-utils.d.ts.map +1 -0
  212. package/dist/shared/inline-object-utils.js +23 -0
  213. package/dist/shared/inline-object-utils.js.map +1 -0
  214. package/dist/shared/interface-detector.d.ts +22 -0
  215. package/dist/shared/interface-detector.d.ts.map +1 -0
  216. package/dist/shared/interface-detector.js +90 -0
  217. package/dist/shared/interface-detector.js.map +1 -0
  218. package/dist/shared/interface-validator.d.ts +9 -0
  219. package/dist/shared/interface-validator.d.ts.map +1 -0
  220. package/dist/shared/interface-validator.js +152 -0
  221. package/dist/shared/interface-validator.js.map +1 -0
  222. package/dist/shared/interface-validator.test.d.ts +2 -0
  223. package/dist/shared/interface-validator.test.d.ts.map +1 -0
  224. package/dist/shared/interface-validator.test.js +145 -0
  225. package/dist/shared/interface-validator.test.js.map +1 -0
  226. package/dist/shared/metadata-detector.d.ts +65 -0
  227. package/dist/shared/metadata-detector.d.ts.map +1 -0
  228. package/dist/shared/metadata-detector.js +333 -0
  229. package/dist/shared/metadata-detector.js.map +1 -0
  230. package/dist/shared/program-factory.d.ts +14 -0
  231. package/dist/shared/program-factory.d.ts.map +1 -0
  232. package/dist/shared/program-factory.js +29 -0
  233. package/dist/shared/program-factory.js.map +1 -0
  234. package/dist/shared/source-location.d.ts +11 -0
  235. package/dist/shared/source-location.d.ts.map +1 -0
  236. package/dist/shared/source-location.js +15 -0
  237. package/dist/shared/source-location.js.map +1 -0
  238. package/dist/shared/tsconfig-loader.d.ts +13 -0
  239. package/dist/shared/tsconfig-loader.d.ts.map +1 -0
  240. package/dist/shared/tsconfig-loader.js +90 -0
  241. package/dist/shared/tsconfig-loader.js.map +1 -0
  242. package/dist/shared/tsdoc-parser.d.ts +12 -0
  243. package/dist/shared/tsdoc-parser.d.ts.map +1 -0
  244. package/dist/shared/tsdoc-parser.js +101 -0
  245. package/dist/shared/tsdoc-parser.js.map +1 -0
  246. package/dist/shared/type-converter.d.ts +3 -0
  247. package/dist/shared/type-converter.d.ts.map +1 -0
  248. package/dist/shared/type-converter.js +72 -0
  249. package/dist/shared/type-converter.js.map +1 -0
  250. package/dist/shared/typescript-utils.d.ts +55 -0
  251. package/dist/shared/typescript-utils.d.ts.map +1 -0
  252. package/dist/shared/typescript-utils.js +149 -0
  253. package/dist/shared/typescript-utils.js.map +1 -0
  254. package/dist/type-extractor/collector/result-collector.d.ts +7 -0
  255. package/dist/type-extractor/collector/result-collector.d.ts.map +1 -0
  256. package/dist/type-extractor/collector/result-collector.js +35 -0
  257. package/dist/type-extractor/collector/result-collector.js.map +1 -0
  258. package/dist/type-extractor/collector/scalar-collector.d.ts +108 -0
  259. package/dist/type-extractor/collector/scalar-collector.d.ts.map +1 -0
  260. package/dist/type-extractor/collector/scalar-collector.js +133 -0
  261. package/dist/type-extractor/collector/scalar-collector.js.map +1 -0
  262. package/dist/type-extractor/converter/field-eligibility.d.ts +34 -0
  263. package/dist/type-extractor/converter/field-eligibility.d.ts.map +1 -0
  264. package/dist/type-extractor/converter/field-eligibility.js +89 -0
  265. package/dist/type-extractor/converter/field-eligibility.js.map +1 -0
  266. package/dist/type-extractor/converter/graphql-converter.d.ts +7 -0
  267. package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -0
  268. package/dist/type-extractor/converter/graphql-converter.js +299 -0
  269. package/dist/type-extractor/converter/graphql-converter.js.map +1 -0
  270. package/dist/type-extractor/extract-types.d.ts +2 -0
  271. package/dist/type-extractor/extract-types.d.ts.map +1 -0
  272. package/dist/type-extractor/extract-types.js +2 -0
  273. package/dist/type-extractor/extract-types.js.map +1 -0
  274. package/dist/type-extractor/extractor/type-extractor.d.ts +27 -0
  275. package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -0
  276. package/dist/type-extractor/extractor/type-extractor.js +1116 -0
  277. package/dist/type-extractor/extractor/type-extractor.js.map +1 -0
  278. package/dist/type-extractor/index.d.ts +4 -0
  279. package/dist/type-extractor/index.d.ts.map +1 -0
  280. package/dist/type-extractor/index.js +2 -0
  281. package/dist/type-extractor/index.js.map +1 -0
  282. package/dist/type-extractor/types/diagnostics.d.ts +17 -0
  283. package/dist/type-extractor/types/diagnostics.d.ts.map +1 -0
  284. package/dist/type-extractor/types/diagnostics.js +2 -0
  285. package/dist/type-extractor/types/diagnostics.js.map +1 -0
  286. package/dist/type-extractor/types/graphql.d.ts +40 -0
  287. package/dist/type-extractor/types/graphql.d.ts.map +1 -0
  288. package/dist/type-extractor/types/graphql.js +2 -0
  289. package/dist/type-extractor/types/graphql.js.map +1 -0
  290. package/dist/type-extractor/types/index.d.ts +5 -0
  291. package/dist/type-extractor/types/index.d.ts.map +1 -0
  292. package/dist/type-extractor/types/index.js +2 -0
  293. package/dist/type-extractor/types/index.js.map +1 -0
  294. package/dist/type-extractor/types/typescript.d.ts +86 -0
  295. package/dist/type-extractor/types/typescript.d.ts.map +1 -0
  296. package/dist/type-extractor/types/typescript.js +2 -0
  297. package/dist/type-extractor/types/typescript.js.map +1 -0
  298. package/dist/type-extractor/types/typescript.test.d.ts +2 -0
  299. package/dist/type-extractor/types/typescript.test.d.ts.map +1 -0
  300. package/dist/type-extractor/types/typescript.test.js +287 -0
  301. package/dist/type-extractor/types/typescript.test.js.map +1 -0
  302. package/dist/type-extractor/validator/type-validator.d.ts +11 -0
  303. package/dist/type-extractor/validator/type-validator.d.ts.map +1 -0
  304. package/dist/type-extractor/validator/type-validator.js +53 -0
  305. package/dist/type-extractor/validator/type-validator.js.map +1 -0
  306. package/docs/configuration.md +163 -0
  307. package/docs/getting-started.md +117 -0
  308. package/docs/index.md +32 -0
  309. package/docs/integration/apollo.md +109 -0
  310. package/docs/integration/yoga.md +108 -0
  311. package/docs/schema/abstract-resolvers.md +146 -0
  312. package/docs/schema/directives.md +196 -0
  313. package/docs/schema/documentation.md +176 -0
  314. package/docs/schema/enums.md +162 -0
  315. package/docs/schema/fields.md +184 -0
  316. package/docs/schema/index.md +38 -0
  317. package/docs/schema/inputs.md +277 -0
  318. package/docs/schema/interfaces.md +178 -0
  319. package/docs/schema/objects.md +186 -0
  320. package/docs/schema/queries-mutations.md +205 -0
  321. package/docs/schema/scalars.md +194 -0
  322. package/docs/schema/unions.md +90 -0
  323. package/docs/what-is-gqlkit.md +22 -0
  324. package/package.json +59 -7
  325. package/README.md +0 -45
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Information about a detected scalar type from metadata detection.
3
+ */
4
+ export interface ScalarMetadataInfo {
5
+ /** The GraphQL scalar name */
6
+ readonly scalarName: string;
7
+ /** The TypeScript type name */
8
+ readonly typeName: string;
9
+ /** Usage constraint: "input", "output", or null for both */
10
+ readonly only: "input" | "output" | null;
11
+ /** Source file path */
12
+ readonly sourceFile: string;
13
+ /** Line number in source file */
14
+ readonly line: number;
15
+ /** TSDoc description if available */
16
+ readonly description: string | null;
17
+ }
18
+ /**
19
+ * Configuration scalar mapping information.
20
+ */
21
+ export interface ConfigScalarMapping extends ScalarMetadataInfo {
22
+ /** Whether this mapping comes from config file */
23
+ readonly fromConfig: boolean;
24
+ }
25
+ /**
26
+ * Reference to a scalar type.
27
+ */
28
+ export interface ScalarTypeRef {
29
+ /** TypeScript type name */
30
+ readonly typeName: string;
31
+ /** Source file path */
32
+ readonly sourceFile: string;
33
+ /** Line number in source file */
34
+ readonly line: number;
35
+ }
36
+ /**
37
+ * Description source information.
38
+ */
39
+ export interface DescriptionSource {
40
+ /** Description text */
41
+ readonly text: string;
42
+ /** Source file path */
43
+ readonly sourceFile: string;
44
+ /** Line number in source file */
45
+ readonly line: number;
46
+ /** Whether this description comes from config */
47
+ readonly fromConfig: boolean;
48
+ }
49
+ /**
50
+ * Collected scalar type with input/output type information.
51
+ */
52
+ export interface CollectedScalarType {
53
+ /** GraphQL scalar name */
54
+ readonly scalarName: string;
55
+ /** Input type reference (exactly one required) */
56
+ readonly inputType: ScalarTypeRef | null;
57
+ /** Output type references (one or more required, union built from these) */
58
+ readonly outputTypes: ReadonlyArray<ScalarTypeRef>;
59
+ /** Description sources */
60
+ readonly descriptions: ReadonlyArray<DescriptionSource>;
61
+ /** Whether this is a custom scalar (not built-in) */
62
+ readonly isCustom: boolean;
63
+ }
64
+ /**
65
+ * Diagnostic error information.
66
+ */
67
+ export interface ScalarCollectorDiagnostic {
68
+ readonly code: "MULTIPLE_INPUT_TYPES" | "MISSING_INPUT_TYPE" | "MISSING_OUTPUT_TYPE";
69
+ readonly message: string;
70
+ readonly severity: "error";
71
+ }
72
+ /**
73
+ * Result type for scalar collection.
74
+ */
75
+ export type CollectScalarsResult = {
76
+ success: true;
77
+ data: ReadonlyArray<CollectedScalarType>;
78
+ } | {
79
+ success: false;
80
+ errors: ReadonlyArray<ScalarCollectorDiagnostic>;
81
+ };
82
+ /**
83
+ * Merges multiple descriptions into a single string with blank line separators.
84
+ * Descriptions are expected to be pre-sorted by file path alphabetically
85
+ * and by line number within the same file.
86
+ *
87
+ * @param descriptions - Array of description sources to merge
88
+ * @returns Merged description string, or null if no descriptions available
89
+ */
90
+ export declare function mergeDescriptions(descriptions: ReadonlyArray<DescriptionSource>): string | null;
91
+ /**
92
+ * Options for scalar collection.
93
+ */
94
+ export interface CollectScalarsOptions {
95
+ /** Root path for normalizing source file paths in error messages */
96
+ readonly sourceRoot?: string | null;
97
+ }
98
+ /**
99
+ * Collects scalar definitions from types and config,
100
+ * validates constraints, and builds type parameters.
101
+ *
102
+ * @param scalarInfos - Scalar metadata from source files
103
+ * @param configScalars - Scalar mappings from config file
104
+ * @param options - Collection options
105
+ * @returns Result with collected scalars or diagnostics
106
+ */
107
+ export declare function collectScalars(scalarInfos: ReadonlyArray<ScalarMetadataInfo>, configScalars: ReadonlyArray<ConfigScalarMapping>, options?: CollectScalarsOptions): CollectScalarsResult;
108
+ //# sourceMappingURL=scalar-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalar-collector.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/collector/scalar-collector.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IACzC,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IACzC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACnD,0BAA0B;IAC1B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACxD,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EACT,sBAAsB,GACtB,oBAAoB,GACpB,qBAAqB,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;CAAE,GAC3D;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAA;CAAE,CAAC;AAuCzE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAC7C,MAAM,GAAG,IAAI,CAKf;AAaD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,EACjD,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAqFtB"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * ScalarCollector collects scalar definitions from types and config,
3
+ * validates input/output type constraints, and builds type parameters.
4
+ */
5
+ import { isBuiltInScalar } from "../../shared/constants.js";
6
+ function createTypeRef(info) {
7
+ return {
8
+ typeName: info.typeName,
9
+ sourceFile: info.sourceFile,
10
+ line: info.line,
11
+ };
12
+ }
13
+ function createDescriptionSource(info, fromConfig) {
14
+ if (!info.description)
15
+ return null;
16
+ return {
17
+ text: info.description,
18
+ sourceFile: info.sourceFile,
19
+ line: info.line,
20
+ fromConfig,
21
+ };
22
+ }
23
+ function sortDescriptions(descriptions) {
24
+ return [...descriptions].sort((a, b) => {
25
+ const fileCompare = a.sourceFile.localeCompare(b.sourceFile);
26
+ if (fileCompare !== 0)
27
+ return fileCompare;
28
+ return a.line - b.line;
29
+ });
30
+ }
31
+ /**
32
+ * Merges multiple descriptions into a single string with blank line separators.
33
+ * Descriptions are expected to be pre-sorted by file path alphabetically
34
+ * and by line number within the same file.
35
+ *
36
+ * @param descriptions - Array of description sources to merge
37
+ * @returns Merged description string, or null if no descriptions available
38
+ */
39
+ export function mergeDescriptions(descriptions) {
40
+ if (descriptions.length === 0) {
41
+ return null;
42
+ }
43
+ return descriptions.map((d) => d.text).join("\n\n");
44
+ }
45
+ function formatTypeLocation(ref, sourceRoot) {
46
+ const filePath = sourceRoot !== null
47
+ ? ref.sourceFile.replace(sourceRoot, "").replace(/^[/\\]/, "")
48
+ : ref.sourceFile;
49
+ return `${filePath.replace(/\\/g, "/")}:${ref.line}`;
50
+ }
51
+ /**
52
+ * Collects scalar definitions from types and config,
53
+ * validates constraints, and builds type parameters.
54
+ *
55
+ * @param scalarInfos - Scalar metadata from source files
56
+ * @param configScalars - Scalar mappings from config file
57
+ * @param options - Collection options
58
+ * @returns Result with collected scalars or diagnostics
59
+ */
60
+ export function collectScalars(scalarInfos, configScalars, options = {}) {
61
+ const sourceRoot = options.sourceRoot ?? null;
62
+ const scalarGroups = new Map();
63
+ const processInfo = (info, fromConfig) => {
64
+ if (isBuiltInScalar(info.scalarName)) {
65
+ return;
66
+ }
67
+ let group = scalarGroups.get(info.scalarName);
68
+ if (!group) {
69
+ group = { inputTypes: [], outputTypes: [], descriptions: [] };
70
+ scalarGroups.set(info.scalarName, group);
71
+ }
72
+ const typeRef = createTypeRef(info);
73
+ if (info.only === null || info.only === "input") {
74
+ group.inputTypes.push(typeRef);
75
+ }
76
+ if (info.only === null || info.only === "output") {
77
+ group.outputTypes.push(typeRef);
78
+ }
79
+ const descSource = createDescriptionSource(info, fromConfig);
80
+ if (descSource) {
81
+ group.descriptions.push(descSource);
82
+ }
83
+ };
84
+ for (const info of scalarInfos) {
85
+ processInfo(info, false);
86
+ }
87
+ for (const info of configScalars) {
88
+ processInfo(info, info.fromConfig);
89
+ }
90
+ const diagnostics = [];
91
+ const collectedScalars = [];
92
+ for (const [scalarName, group] of scalarGroups) {
93
+ if (group.inputTypes.length > 1) {
94
+ const typeLocations = group.inputTypes
95
+ .map((t) => `'${t.typeName}' at ${formatTypeLocation(t, sourceRoot)}`)
96
+ .join(", ");
97
+ diagnostics.push({
98
+ code: "MULTIPLE_INPUT_TYPES",
99
+ message: `Custom scalar '${scalarName}' has multiple input types: ${typeLocations}. Only one input type is allowed per scalar.`,
100
+ severity: "error",
101
+ });
102
+ continue;
103
+ }
104
+ if (group.inputTypes.length === 0) {
105
+ diagnostics.push({
106
+ code: "MISSING_INPUT_TYPE",
107
+ message: `Custom scalar '${scalarName}' has no input type. Add a type without 'only' constraint or with 'only: "input"'.`,
108
+ severity: "error",
109
+ });
110
+ continue;
111
+ }
112
+ if (group.outputTypes.length === 0) {
113
+ diagnostics.push({
114
+ code: "MISSING_OUTPUT_TYPE",
115
+ message: `Custom scalar '${scalarName}' has no output type. Add a type without 'only' constraint or with 'only: "output"'.`,
116
+ severity: "error",
117
+ });
118
+ continue;
119
+ }
120
+ collectedScalars.push({
121
+ scalarName,
122
+ inputType: group.inputTypes[0] ?? null,
123
+ outputTypes: group.outputTypes,
124
+ descriptions: sortDescriptions(group.descriptions),
125
+ isCustom: true,
126
+ });
127
+ }
128
+ if (diagnostics.length > 0) {
129
+ return { success: false, errors: diagnostics };
130
+ }
131
+ return { success: true, data: collectedScalars };
132
+ }
133
+ //# sourceMappingURL=scalar-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalar-collector.js","sourceRoot":"","sources":["../../../src/type-extractor/collector/scalar-collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Field and enum value eligibility checks for GraphQL schema generation.
3
+ *
4
+ * These functions determine whether a field or enum value can be included
5
+ * in the generated GraphQL schema based on naming conventions and other rules.
6
+ */
7
+ export type SkipReason = {
8
+ readonly code: "INVALID_NAME";
9
+ readonly message: string;
10
+ } | {
11
+ readonly code: "RESERVED_NAME";
12
+ readonly message: string;
13
+ };
14
+ export type EligibilityResult = {
15
+ readonly eligible: true;
16
+ readonly skipReason: null;
17
+ } | {
18
+ readonly eligible: false;
19
+ readonly skipReason: SkipReason;
20
+ };
21
+ /**
22
+ * Check if a field name is eligible to be included as a GraphQL object field.
23
+ */
24
+ export declare function isEligibleAsObjectField(fieldName: string): EligibilityResult;
25
+ /**
26
+ * Check if a field name is eligible to be included as a GraphQL input object field.
27
+ */
28
+ export declare function isEligibleAsInputObjectField(fieldName: string): EligibilityResult;
29
+ /**
30
+ * Check if an enum value name is eligible to be included as a GraphQL enum value.
31
+ * Note: The name should be the converted (SCREAMING_SNAKE_CASE) name, not the original.
32
+ */
33
+ export declare function isEligibleAsEnumValue(convertedName: string, originalName: string): EligibilityResult;
34
+ //# sourceMappingURL=field-eligibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-eligibility.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/converter/field-eligibility.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAWlE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAsB5E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAChB,iBAAiB,CAsBnB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,GACnB,iBAAiB,CAsBnB"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Field and enum value eligibility checks for GraphQL schema generation.
3
+ *
4
+ * These functions determine whether a field or enum value can be included
5
+ * in the generated GraphQL schema based on naming conventions and other rules.
6
+ */
7
+ const GRAPHQL_NAME_PATTERN = /^[_A-Za-z][_0-9A-Za-z]*$/;
8
+ function isValidGraphQLName(name) {
9
+ if (name.length === 0)
10
+ return false;
11
+ return GRAPHQL_NAME_PATTERN.test(name);
12
+ }
13
+ function isReservedName(name) {
14
+ return name.startsWith("__");
15
+ }
16
+ /**
17
+ * Check if a field name is eligible to be included as a GraphQL object field.
18
+ */
19
+ export function isEligibleAsObjectField(fieldName) {
20
+ if (isReservedName(fieldName)) {
21
+ return {
22
+ eligible: false,
23
+ skipReason: {
24
+ code: "RESERVED_NAME",
25
+ message: `Field '${fieldName}' starts with '__' which is reserved for GraphQL introspection`,
26
+ },
27
+ };
28
+ }
29
+ if (!isValidGraphQLName(fieldName)) {
30
+ return {
31
+ eligible: false,
32
+ skipReason: {
33
+ code: "INVALID_NAME",
34
+ message: `Field '${fieldName}' is not a valid GraphQL identifier (must match /^[_A-Za-z][_0-9A-Za-z]*$/)`,
35
+ },
36
+ };
37
+ }
38
+ return { eligible: true, skipReason: null };
39
+ }
40
+ /**
41
+ * Check if a field name is eligible to be included as a GraphQL input object field.
42
+ */
43
+ export function isEligibleAsInputObjectField(fieldName) {
44
+ if (isReservedName(fieldName)) {
45
+ return {
46
+ eligible: false,
47
+ skipReason: {
48
+ code: "RESERVED_NAME",
49
+ message: `Input field '${fieldName}' starts with '__' which is reserved for GraphQL introspection`,
50
+ },
51
+ };
52
+ }
53
+ if (!isValidGraphQLName(fieldName)) {
54
+ return {
55
+ eligible: false,
56
+ skipReason: {
57
+ code: "INVALID_NAME",
58
+ message: `Input field '${fieldName}' is not a valid GraphQL identifier (must match /^[_A-Za-z][_0-9A-Za-z]*$/)`,
59
+ },
60
+ };
61
+ }
62
+ return { eligible: true, skipReason: null };
63
+ }
64
+ /**
65
+ * Check if an enum value name is eligible to be included as a GraphQL enum value.
66
+ * Note: The name should be the converted (SCREAMING_SNAKE_CASE) name, not the original.
67
+ */
68
+ export function isEligibleAsEnumValue(convertedName, originalName) {
69
+ if (isReservedName(convertedName)) {
70
+ return {
71
+ eligible: false,
72
+ skipReason: {
73
+ code: "RESERVED_NAME",
74
+ message: `Enum member '${originalName}' converts to '${convertedName}' which starts with '__' (reserved for GraphQL introspection)`,
75
+ },
76
+ };
77
+ }
78
+ if (!isValidGraphQLName(convertedName)) {
79
+ return {
80
+ eligible: false,
81
+ skipReason: {
82
+ code: "INVALID_NAME",
83
+ message: `Enum member '${originalName}' converts to '${convertedName}' which is not a valid GraphQL identifier`,
84
+ },
85
+ };
86
+ }
87
+ return { eligible: true, skipReason: null };
88
+ }
89
+ //# sourceMappingURL=field-eligibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-eligibility.js","sourceRoot":"","sources":["../../../src/type-extractor/converter/field-eligibility.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAUxD,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACvD,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,UAAU,SAAS,gEAAgE;aAC7F;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,UAAU,SAAS,6EAA6E;aAC1G;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAAiB;IAEjB,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,gBAAgB,SAAS,gEAAgE;aACnG;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,gBAAgB,SAAS,6EAA6E;aAChH;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAqB,EACrB,YAAoB;IAEpB,IAAI,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,gBAAgB,YAAY,kBAAkB,aAAa,+DAA+D;aACpI;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,gBAAgB,YAAY,kBAAkB,aAAa,2CAA2C;aAChH;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Diagnostic, ExtractedTypeInfo, GraphQLTypeInfo } from "../types/index.js";
2
+ export interface ConversionResult {
3
+ readonly types: ReadonlyArray<GraphQLTypeInfo>;
4
+ readonly diagnostics: ReadonlyArray<Diagnostic>;
5
+ }
6
+ export declare function convertToGraphQL(extractedTypes: ReadonlyArray<ExtractedTypeInfo>): ConversionResult;
7
+ //# sourceMappingURL=graphql-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-converter.d.ts","sourceRoot":"","sources":["../../../src/type-extractor/converter/graphql-converter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EAGV,iBAAiB,EAEjB,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACjD;AAgOD,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAC/C,gBAAgB,CAsJlB"}