@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,70 @@
1
+ /**
2
+ * TypeScript internal symbol names.
3
+ *
4
+ * These are internal names used by the TypeScript compiler to represent
5
+ * certain types. They should be treated as implementation details and
6
+ * filtered out when converting TypeScript types to GraphQL types.
7
+ */
8
+ /**
9
+ * Checks if a symbol name represents a TypeScript internal/anonymous type
10
+ * that should not be used directly as a GraphQL type name.
11
+ *
12
+ * @param symbolName - The symbol name from `type.symbol.getName()`
13
+ * @returns true if the symbol name is internal and should be filtered out
14
+ */
15
+ export declare function isInternalTypeSymbol(symbolName: string): boolean;
16
+ /**
17
+ * Property names used internally by gqlkit types for metadata.
18
+ * These start with " $" (space + dollar sign) to avoid conflicts.
19
+ */
20
+ export declare const METADATA_PROPERTIES: {
21
+ /** Field metadata (GqlField) */
22
+ readonly FIELD_META: " $gqlkitFieldMeta";
23
+ /** Type metadata (GqlObject) */
24
+ readonly TYPE_META: " $gqlkitTypeMeta";
25
+ /** Directive name */
26
+ readonly DIRECTIVE_NAME: " $directiveName";
27
+ /** Directive arguments */
28
+ readonly DIRECTIVE_ARGS: " $directiveArgs";
29
+ /** Directive location */
30
+ readonly DIRECTIVE_LOCATION: " $directiveLocation";
31
+ /** Original unwrapped type */
32
+ readonly ORIGINAL_TYPE: " $gqlkitOriginalType";
33
+ /** Scalar metadata */
34
+ readonly SCALAR: " $gqlkitScalar";
35
+ /** Resolver metadata */
36
+ readonly RESOLVER: " $gqlkitResolver";
37
+ /** Abstract resolver metadata (resolveType, isTypeOf) */
38
+ readonly ABSTRACT_RESOLVER: " $gqlkitAbstractResolver";
39
+ /** Interface metadata */
40
+ readonly INTERFACE_META: " $gqlkitInterfaceMeta";
41
+ };
42
+ /**
43
+ * Type names exported from @gqlkit-ts/runtime.
44
+ * These are used for type detection in the CLI.
45
+ */
46
+ export declare const RUNTIME_TYPE_NAMES: {
47
+ /** GraphQL interface type definition */
48
+ readonly GQL_INTERFACE: "GqlInterface";
49
+ /** Custom scalar type definition */
50
+ readonly GQL_SCALAR: "GqlScalar";
51
+ /** Custom directive definition */
52
+ readonly GQL_DIRECTIVE: "GqlDirective";
53
+ /** Type-level metadata (implements, directives) */
54
+ readonly GQL_OBJECT: "GqlObject";
55
+ /** Field-level metadata (defaultValue, directives) */
56
+ readonly GQL_FIELD: "GqlField";
57
+ };
58
+ /**
59
+ * GraphQL built-in scalar type names.
60
+ */
61
+ export declare const BUILT_IN_SCALARS: Set<"ID" | "Int" | "Float" | "String" | "Boolean">;
62
+ /**
63
+ * Checks if a type name is a GraphQL built-in scalar.
64
+ */
65
+ export declare function isBuiltInScalar(typeName: string): boolean;
66
+ /**
67
+ * Maps TypeScript primitive type names to GraphQL scalar names.
68
+ */
69
+ export declare const PRIMITIVE_TYPE_MAP: Record<string, string>;
70
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmCH;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAKhE;AAMD;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,gCAAgC;;IAEhC,gCAAgC;;IAEhC,qBAAqB;;IAErB,0BAA0B;;IAE1B,yBAAyB;;IAEzB,8BAA8B;;IAE9B,sBAAsB;;IAEtB,wBAAwB;;IAExB,yDAAyD;;IAEzD,yBAAyB;;CAEjB,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,kBAAkB;IAC7B,wCAAwC;;IAExC,oCAAoC;;IAEpC,kCAAkC;;IAElC,mDAAmD;;IAEnD,sDAAsD;;CAE9C,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,gBAAgB,oDAMlB,CAAC;AAEZ;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIzD;AAMD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI5C,CAAC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * TypeScript internal symbol names.
3
+ *
4
+ * These are internal names used by the TypeScript compiler to represent
5
+ * certain types. They should be treated as implementation details and
6
+ * filtered out when converting TypeScript types to GraphQL types.
7
+ */
8
+ /**
9
+ * Anonymous object type symbol name.
10
+ *
11
+ * When TypeScript encounters an anonymous object type (e.g., `{ name: string }`
12
+ * without a type alias), it uses `__type` as the internal symbol name.
13
+ *
14
+ * This commonly occurs when:
15
+ * 1. A type is defined inline without a name
16
+ * 2. A type reference is resolved through complex type operations
17
+ * (e.g., extracting from optional properties, intersection types)
18
+ * 3. The original type name is lost during TypeScript's internal type resolution
19
+ *
20
+ * In the context of GqlField<T, Meta>, when we extract T from the
21
+ * `$gqlkitOriginalType` property, TypeScript may return the type with
22
+ * `__type` as its symbol name instead of the original type name (e.g., "NestedConfig").
23
+ * This happens because:
24
+ * - The property is optional (`T | undefined`)
25
+ * - TypeScript's type resolution doesn't always preserve the original type alias
26
+ *
27
+ * When we encounter `__type`, we should fall back to using `checker.typeToString()`
28
+ * which preserves the human-readable type name.
29
+ */
30
+ const TS_ANONYMOUS_TYPE_SYMBOL = "__type";
31
+ /**
32
+ * Array type symbol name.
33
+ *
34
+ * TypeScript uses `Array` as the symbol name for array types.
35
+ * This should be handled separately using `checker.isArrayType()` rather than
36
+ * treating it as a named type reference.
37
+ */
38
+ const TS_ARRAY_TYPE_SYMBOL = "Array";
39
+ /**
40
+ * Checks if a symbol name represents a TypeScript internal/anonymous type
41
+ * that should not be used directly as a GraphQL type name.
42
+ *
43
+ * @param symbolName - The symbol name from `type.symbol.getName()`
44
+ * @returns true if the symbol name is internal and should be filtered out
45
+ */
46
+ export function isInternalTypeSymbol(symbolName) {
47
+ return (symbolName === TS_ANONYMOUS_TYPE_SYMBOL ||
48
+ symbolName === TS_ARRAY_TYPE_SYMBOL);
49
+ }
50
+ // ============================================================
51
+ // gqlkit Metadata Property Names
52
+ // ============================================================
53
+ /**
54
+ * Property names used internally by gqlkit types for metadata.
55
+ * These start with " $" (space + dollar sign) to avoid conflicts.
56
+ */
57
+ export const METADATA_PROPERTIES = {
58
+ /** Field metadata (GqlField) */
59
+ FIELD_META: " $gqlkitFieldMeta",
60
+ /** Type metadata (GqlObject) */
61
+ TYPE_META: " $gqlkitTypeMeta",
62
+ /** Directive name */
63
+ DIRECTIVE_NAME: " $directiveName",
64
+ /** Directive arguments */
65
+ DIRECTIVE_ARGS: " $directiveArgs",
66
+ /** Directive location */
67
+ DIRECTIVE_LOCATION: " $directiveLocation",
68
+ /** Original unwrapped type */
69
+ ORIGINAL_TYPE: " $gqlkitOriginalType",
70
+ /** Scalar metadata */
71
+ SCALAR: " $gqlkitScalar",
72
+ /** Resolver metadata */
73
+ RESOLVER: " $gqlkitResolver",
74
+ /** Abstract resolver metadata (resolveType, isTypeOf) */
75
+ ABSTRACT_RESOLVER: " $gqlkitAbstractResolver",
76
+ /** Interface metadata */
77
+ INTERFACE_META: " $gqlkitInterfaceMeta",
78
+ };
79
+ // ============================================================
80
+ // @gqlkit-ts/runtime Utility Type Names
81
+ // ============================================================
82
+ /**
83
+ * Type names exported from @gqlkit-ts/runtime.
84
+ * These are used for type detection in the CLI.
85
+ */
86
+ export const RUNTIME_TYPE_NAMES = {
87
+ /** GraphQL interface type definition */
88
+ GQL_INTERFACE: "GqlInterface",
89
+ /** Custom scalar type definition */
90
+ GQL_SCALAR: "GqlScalar",
91
+ /** Custom directive definition */
92
+ GQL_DIRECTIVE: "GqlDirective",
93
+ /** Type-level metadata (implements, directives) */
94
+ GQL_OBJECT: "GqlObject",
95
+ /** Field-level metadata (defaultValue, directives) */
96
+ GQL_FIELD: "GqlField",
97
+ };
98
+ // ============================================================
99
+ // GraphQL Built-in Types
100
+ // ============================================================
101
+ /**
102
+ * GraphQL built-in scalar type names.
103
+ */
104
+ export const BUILT_IN_SCALARS = new Set([
105
+ "ID",
106
+ "Int",
107
+ "Float",
108
+ "String",
109
+ "Boolean",
110
+ ]);
111
+ /**
112
+ * Checks if a type name is a GraphQL built-in scalar.
113
+ */
114
+ export function isBuiltInScalar(typeName) {
115
+ return BUILT_IN_SCALARS.has(typeName);
116
+ }
117
+ // ============================================================
118
+ // TypeScript to GraphQL Type Mapping
119
+ // ============================================================
120
+ /**
121
+ * Maps TypeScript primitive type names to GraphQL scalar names.
122
+ */
123
+ export const PRIMITIVE_TYPE_MAP = {
124
+ string: "String",
125
+ number: "Float",
126
+ boolean: "Boolean",
127
+ };
128
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,CACL,UAAU,KAAK,wBAAwB;QACvC,UAAU,KAAK,oBAAoB,CACpC,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gCAAgC;IAChC,UAAU,EAAE,mBAAmB;IAC/B,gCAAgC;IAChC,SAAS,EAAE,kBAAkB;IAC7B,qBAAqB;IACrB,cAAc,EAAE,iBAAiB;IACjC,0BAA0B;IAC1B,cAAc,EAAE,iBAAiB;IACjC,yBAAyB;IACzB,kBAAkB,EAAE,qBAAqB;IACzC,8BAA8B;IAC9B,aAAa,EAAE,sBAAsB;IACrC,sBAAsB;IACtB,MAAM,EAAE,gBAAgB;IACxB,wBAAwB;IACxB,QAAQ,EAAE,kBAAkB;IAC5B,yDAAyD;IACzD,iBAAiB,EAAE,0BAA0B;IAC7C,yBAAyB;IACzB,cAAc,EAAE,uBAAuB;CAC/B,CAAC;AAEX,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,wCAAwC;IACxC,aAAa,EAAE,cAAc;IAC7B,oCAAoC;IACpC,UAAU,EAAE,WAAW;IACvB,kCAAkC;IAClC,aAAa,EAAE,cAAc;IAC7B,mDAAmD;IACnD,UAAU,EAAE,WAAW;IACvB,sDAAsD;IACtD,SAAS,EAAE,UAAU;CACb,CAAC;AAEX,+DAA+D;AAC/D,yBAAyB;AACzB,+DAA+D;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IACtC,IAAI;IACJ,KAAK;IACL,OAAO;IACP,QAAQ;IACR,SAAS;CACD,CAAC,CAAC;AAEZ;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,gBAAgB,CAAC,GAAG,CACzB,QAAoE,CACrE,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,qCAAqC;AACrC,+DAA+D;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,SAAS;CACV,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Default value metadata detector.
3
+ *
4
+ * This module provides functions to detect default value metadata embedded
5
+ * in TypeScript intersection types using the $gqlkitFieldMeta property.
6
+ */
7
+ import ts from "typescript";
8
+ import type { DirectiveArgumentValue } from "./directive-detector.js";
9
+ /**
10
+ * Error codes for default value detection.
11
+ */
12
+ export type DefaultValueDetectionErrorCode = "UNRESOLVABLE_DEFAULT_VALUE";
13
+ /**
14
+ * Error information for default value detection.
15
+ */
16
+ export interface DefaultValueDetectionError {
17
+ readonly code: DefaultValueDetectionErrorCode;
18
+ readonly message: string;
19
+ }
20
+ /**
21
+ * Result of default value detection.
22
+ */
23
+ export interface DefaultValueDetectionResult {
24
+ readonly defaultValue: DirectiveArgumentValue | null;
25
+ readonly errors: ReadonlyArray<DefaultValueDetectionError>;
26
+ }
27
+ /**
28
+ * Detects default value metadata from a TypeScript type.
29
+ *
30
+ * This function analyzes TypeScript types to detect default value metadata:
31
+ * - Intersection types with " $gqlkitFieldMeta" property containing "defaultValue"
32
+ * - Literal types are resolved to their values
33
+ * - Non-literal types result in an error
34
+ *
35
+ * @param type - The TypeScript type to analyze
36
+ * @param checker - The TypeScript type checker
37
+ * @returns Detection result with default value and any errors
38
+ */
39
+ export declare function detectDefaultValueMetadata(type: ts.Type, checker: ts.TypeChecker): DefaultValueDetectionResult;
40
+ //# sourceMappingURL=default-value-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-value-detector.d.ts","sourceRoot":"","sources":["../../src/shared/default-value-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAOtE;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,4BAA4B,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;CAC5D;AA6CD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,2BAA2B,CA4E7B"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Default value metadata detector.
3
+ *
4
+ * This module provides functions to detect default value metadata embedded
5
+ * in TypeScript intersection types using the $gqlkitFieldMeta property.
6
+ */
7
+ import ts from "typescript";
8
+ import { METADATA_PROPERTIES } from "./constants.js";
9
+ import { resolveArgumentValue } from "./directive-detector.js";
10
+ import { getActualMetadataType } from "./metadata-detector.js";
11
+ const FIELD_META_PROPERTY = METADATA_PROPERTIES.FIELD_META;
12
+ const DEFAULT_VALUE_PROPERTY = "defaultValue";
13
+ function createEmptyResult() {
14
+ return {
15
+ defaultValue: null,
16
+ errors: [],
17
+ };
18
+ }
19
+ /**
20
+ * Gets the field meta property from a type, checking various type structures.
21
+ */
22
+ function getFieldMetaProperty(type) {
23
+ const prop = type.getProperty(FIELD_META_PROPERTY);
24
+ if (prop) {
25
+ return prop;
26
+ }
27
+ if (type.isIntersection()) {
28
+ for (const member of type.types) {
29
+ const memberProp = member.getProperty(FIELD_META_PROPERTY);
30
+ if (memberProp) {
31
+ return memberProp;
32
+ }
33
+ }
34
+ }
35
+ if (type.isUnion()) {
36
+ for (const member of type.types) {
37
+ if (member.flags & ts.TypeFlags.Null ||
38
+ member.flags & ts.TypeFlags.Undefined) {
39
+ continue;
40
+ }
41
+ const result = getFieldMetaProperty(member);
42
+ if (result) {
43
+ return result;
44
+ }
45
+ }
46
+ }
47
+ return undefined;
48
+ }
49
+ /**
50
+ * Detects default value metadata from a TypeScript type.
51
+ *
52
+ * This function analyzes TypeScript types to detect default value metadata:
53
+ * - Intersection types with " $gqlkitFieldMeta" property containing "defaultValue"
54
+ * - Literal types are resolved to their values
55
+ * - Non-literal types result in an error
56
+ *
57
+ * @param type - The TypeScript type to analyze
58
+ * @param checker - The TypeScript type checker
59
+ * @returns Detection result with default value and any errors
60
+ */
61
+ export function detectDefaultValueMetadata(type, checker) {
62
+ const metaProp = getFieldMetaProperty(type);
63
+ if (!metaProp) {
64
+ return createEmptyResult();
65
+ }
66
+ const rawMetaType = checker.getTypeOfSymbol(metaProp);
67
+ const metaType = getActualMetadataType(rawMetaType);
68
+ if (!metaType) {
69
+ return createEmptyResult();
70
+ }
71
+ const defaultValueProp = metaType.getProperty(DEFAULT_VALUE_PROPERTY);
72
+ if (!defaultValueProp) {
73
+ return createEmptyResult();
74
+ }
75
+ const rawDefaultValueType = checker.getTypeOfSymbol(defaultValueProp);
76
+ const typeString = checker.typeToString(rawDefaultValueType);
77
+ // If defaultValue is undefined (not specified in Meta), return empty result
78
+ // Check raw type first before unwrapping
79
+ if (rawDefaultValueType.flags & ts.TypeFlags.Undefined) {
80
+ return createEmptyResult();
81
+ }
82
+ // Check if the type is a union that only contains undefined
83
+ // This handles cases where Meta["defaultValue"] resolves to undefined
84
+ if (rawDefaultValueType.isUnion()) {
85
+ const nonUndefinedTypes = rawDefaultValueType.types.filter((t) => !(t.flags & ts.TypeFlags.Undefined));
86
+ if (nonUndefinedTypes.length === 0) {
87
+ return createEmptyResult();
88
+ }
89
+ }
90
+ // If the type string is "undefined", skip (handles edge cases)
91
+ if (typeString === "undefined") {
92
+ return createEmptyResult();
93
+ }
94
+ // If the type is unknown, it means Meta["defaultValue"] was not explicitly specified
95
+ // and TypeScript inferred it from the constraint (defaultValue?: unknown)
96
+ if (rawDefaultValueType.flags & ts.TypeFlags.Unknown) {
97
+ return createEmptyResult();
98
+ }
99
+ const defaultValueType = getActualMetadataType(rawDefaultValueType);
100
+ if (!defaultValueType) {
101
+ return createEmptyResult();
102
+ }
103
+ // Also check the unwrapped type for undefined
104
+ if (defaultValueType.flags & ts.TypeFlags.Undefined) {
105
+ return createEmptyResult();
106
+ }
107
+ const resolved = resolveArgumentValue(defaultValueType, checker);
108
+ if (resolved) {
109
+ return {
110
+ defaultValue: resolved,
111
+ errors: [],
112
+ };
113
+ }
114
+ return {
115
+ defaultValue: null,
116
+ errors: [
117
+ {
118
+ code: "UNRESOLVABLE_DEFAULT_VALUE",
119
+ message: "Default value must be a literal type (string, number, boolean, null, array, object, or enum)",
120
+ },
121
+ ],
122
+ };
123
+ }
124
+ //# sourceMappingURL=default-value-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-value-detector.js","sourceRoot":"","sources":["../../src/shared/default-value-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Diagnostic, Diagnostics } from "../type-extractor/types/index.js";
2
+ export declare function deduplicateDiagnostics(diagnostics: ReadonlyArray<Diagnostic>): Diagnostic[];
3
+ export declare function collectDiagnostics(allDiagnostics: ReadonlyArray<Diagnostic>): Diagnostics;
4
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/shared/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAShF,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,GACrC,UAAU,EAAE,CAad;AAED,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,aAAa,CAAC,UAAU,CAAC,GACxC,WAAW,CAMb"}
@@ -0,0 +1,25 @@
1
+ function getDiagnosticKey(d) {
2
+ const locationKey = d.location
3
+ ? `${d.location.file}:${d.location.line}:${d.location.column}`
4
+ : "";
5
+ return `${d.code}:${d.message}:${d.severity}:${locationKey}`;
6
+ }
7
+ export function deduplicateDiagnostics(diagnostics) {
8
+ const seen = new Set();
9
+ const result = [];
10
+ for (const d of diagnostics) {
11
+ const key = getDiagnosticKey(d);
12
+ if (!seen.has(key)) {
13
+ seen.add(key);
14
+ result.push(d);
15
+ }
16
+ }
17
+ return result;
18
+ }
19
+ export function collectDiagnostics(allDiagnostics) {
20
+ const uniqueDiagnostics = deduplicateDiagnostics(allDiagnostics);
21
+ const errors = uniqueDiagnostics.filter((d) => d.severity === "error");
22
+ const warnings = uniqueDiagnostics.filter((d) => d.severity === "warning");
23
+ return { errors, warnings };
24
+ }
25
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/shared/diagnostics.ts"],"names":[],"mappings":"AAEA,SAAS,gBAAgB,CAAC,CAAa;IACrC,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ;QAC5B,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC9D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAsC;IAEtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,cAAyC;IAEzC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAE3E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Directive definition extractor.
3
+ *
4
+ * This module provides functions to extract directive definitions from
5
+ * TypeScript type aliases that use the Directive<Name, Args, Location> type.
6
+ */
7
+ import ts from "typescript";
8
+ import type { GraphQLFieldType } from "../type-extractor/types/graphql.js";
9
+ /**
10
+ * Represents a directive location.
11
+ */
12
+ export type DirectiveLocation = "SCHEMA" | "SCALAR" | "OBJECT" | "FIELD_DEFINITION" | "ARGUMENT_DEFINITION" | "INTERFACE" | "UNION" | "ENUM" | "ENUM_VALUE" | "INPUT_OBJECT" | "INPUT_FIELD_DEFINITION";
13
+ /**
14
+ * Represents a directive argument definition.
15
+ */
16
+ export interface DirectiveArgumentDefinition {
17
+ readonly name: string;
18
+ readonly type: GraphQLFieldType;
19
+ readonly description: string | null;
20
+ }
21
+ /**
22
+ * Represents a directive definition extracted from a type alias.
23
+ */
24
+ export interface DirectiveDefinitionInfo {
25
+ readonly name: string;
26
+ readonly typeAliasName: string;
27
+ readonly args: ReadonlyArray<DirectiveArgumentDefinition>;
28
+ readonly locations: ReadonlyArray<DirectiveLocation>;
29
+ readonly sourceFile: string;
30
+ readonly line: number;
31
+ readonly description: string | null;
32
+ }
33
+ /**
34
+ * Error codes for directive definition extraction.
35
+ */
36
+ export type DirectiveDefinitionErrorCode = "UNRESOLVABLE_ARG_TYPE" | "INVALID_LOCATION";
37
+ /**
38
+ * Error information for directive definition extraction.
39
+ */
40
+ export interface DirectiveDefinitionError {
41
+ readonly code: DirectiveDefinitionErrorCode;
42
+ readonly message: string;
43
+ readonly sourceFile: string;
44
+ readonly line: number;
45
+ }
46
+ /**
47
+ * Result of directive definition extraction.
48
+ */
49
+ export interface DirectiveDefinitionExtractionResult {
50
+ readonly definitions: ReadonlyArray<DirectiveDefinitionInfo>;
51
+ readonly errors: ReadonlyArray<DirectiveDefinitionError>;
52
+ }
53
+ /**
54
+ * Extracts directive definitions from a TypeScript program.
55
+ *
56
+ * This function analyzes exported type aliases to find those that use
57
+ * the Directive<Name, Args, Location> type and extracts directive definitions.
58
+ *
59
+ * @param program - The TypeScript program
60
+ * @param sourceFiles - The source files to analyze
61
+ * @returns Extraction result with definitions and errors
62
+ */
63
+ export declare function extractDirectiveDefinitions(program: ts.Program, sourceFiles: ReadonlyArray<string>): DirectiveDefinitionExtractionResult;
64
+ //# sourceMappingURL=directive-definition-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-definition-extractor.d.ts","sourceRoot":"","sources":["../../src/shared/directive-definition-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAa3E;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,kBAAkB,GAClB,qBAAqB,GACrB,WAAW,GACX,OAAO,GACP,MAAM,GACN,YAAY,GACZ,cAAc,GACd,wBAAwB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC1D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,4BAA4B,GACpC,uBAAuB,GACvB,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;CAC1D;AA4XD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GACjC,mCAAmC,CAoErC"}