polen 0.10.0-next.11 → 0.10.0-next.12

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 (324) hide show
  1. package/build/api/builder/builder.js +1 -1
  2. package/build/api/builder/builder.js.map +1 -1
  3. package/build/api/config/load.js +1 -1
  4. package/build/api/config/load.js.map +1 -1
  5. package/build/api/vite/plugins/build.js +1 -1
  6. package/build/api/vite/plugins/build.js.map +1 -1
  7. package/build/api/vite/plugins/core.d.ts.map +1 -1
  8. package/build/api/vite/plugins/core.js +0 -2
  9. package/build/api/vite/plugins/core.js.map +1 -1
  10. package/build/api/vite/plugins/pages.js +1 -1
  11. package/build/api/vite/plugins/pages.js.map +1 -1
  12. package/build/exports/components.d.ts +4 -1
  13. package/build/exports/components.d.ts.map +1 -1
  14. package/build/exports/components.js +4 -1
  15. package/build/exports/components.js.map +1 -1
  16. package/build/lib/demos/config-schema.d.ts +6 -6
  17. package/build/lib/github-actions/runner.js +2 -2
  18. package/build/lib/github-actions/runner.js.map +1 -1
  19. package/build/lib/graphql-document/$$.d.ts +5 -0
  20. package/build/lib/graphql-document/$$.d.ts.map +1 -0
  21. package/build/lib/graphql-document/$$.js +5 -0
  22. package/build/lib/graphql-document/$$.js.map +1 -0
  23. package/build/lib/graphql-document/$.d.ts +2 -0
  24. package/build/lib/graphql-document/$.d.ts.map +1 -0
  25. package/build/lib/graphql-document/$.js +2 -0
  26. package/build/lib/graphql-document/$.js.map +1 -0
  27. package/build/lib/graphql-document/analysis.d.ts +44 -0
  28. package/build/lib/graphql-document/analysis.d.ts.map +1 -0
  29. package/build/lib/graphql-document/analysis.js +361 -0
  30. package/build/lib/graphql-document/analysis.js.map +1 -0
  31. package/build/lib/graphql-document/components/GraphQLDocument.d.ts +42 -0
  32. package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +1 -0
  33. package/build/lib/graphql-document/components/GraphQLDocument.js +173 -0
  34. package/build/lib/graphql-document/components/GraphQLDocument.js.map +1 -0
  35. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +7 -0
  36. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +1 -0
  37. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +45 -0
  38. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +1 -0
  39. package/build/lib/graphql-document/components/HoverTooltip.d.ts +35 -0
  40. package/build/lib/graphql-document/components/HoverTooltip.d.ts.map +1 -0
  41. package/build/lib/graphql-document/components/HoverTooltip.js +132 -0
  42. package/build/lib/graphql-document/components/HoverTooltip.js.map +1 -0
  43. package/build/lib/graphql-document/components/IdentifierLink.d.ts +37 -0
  44. package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +1 -0
  45. package/build/lib/graphql-document/components/IdentifierLink.js +141 -0
  46. package/build/lib/graphql-document/components/IdentifierLink.js.map +1 -0
  47. package/build/lib/graphql-document/components/index.d.ts +5 -0
  48. package/build/lib/graphql-document/components/index.d.ts.map +1 -0
  49. package/build/lib/graphql-document/components/index.js +5 -0
  50. package/build/lib/graphql-document/components/index.js.map +1 -0
  51. package/build/lib/graphql-document/example.d.ts +25 -0
  52. package/build/lib/graphql-document/example.d.ts.map +1 -0
  53. package/build/lib/graphql-document/example.js +140 -0
  54. package/build/lib/graphql-document/example.js.map +1 -0
  55. package/build/lib/graphql-document/graphql-document.d.ts +35 -0
  56. package/build/lib/graphql-document/graphql-document.d.ts.map +1 -0
  57. package/build/lib/graphql-document/graphql-document.js +36 -0
  58. package/build/lib/graphql-document/graphql-document.js.map +1 -0
  59. package/build/lib/graphql-document/positioning-simple.d.ts +68 -0
  60. package/build/lib/graphql-document/positioning-simple.d.ts.map +1 -0
  61. package/build/lib/graphql-document/positioning-simple.js +197 -0
  62. package/build/lib/graphql-document/positioning-simple.js.map +1 -0
  63. package/build/lib/graphql-document/schema-context.d.ts +8 -0
  64. package/build/lib/graphql-document/schema-context.d.ts.map +1 -0
  65. package/build/lib/graphql-document/schema-context.js +11 -0
  66. package/build/lib/graphql-document/schema-context.js.map +1 -0
  67. package/build/lib/graphql-document/schema-integration-example.d.ts +27 -0
  68. package/build/lib/graphql-document/schema-integration-example.d.ts.map +1 -0
  69. package/build/lib/graphql-document/schema-integration-example.js +297 -0
  70. package/build/lib/graphql-document/schema-integration-example.js.map +1 -0
  71. package/build/lib/graphql-document/schema-integration.d.ts +135 -0
  72. package/build/lib/graphql-document/schema-integration.d.ts.map +1 -0
  73. package/build/lib/graphql-document/schema-integration.js +328 -0
  74. package/build/lib/graphql-document/schema-integration.js.map +1 -0
  75. package/build/lib/graphql-document/types.d.ts +117 -0
  76. package/build/lib/graphql-document/types.d.ts.map +1 -0
  77. package/build/lib/graphql-document/types.js +2 -0
  78. package/build/lib/graphql-document/types.js.map +1 -0
  79. package/build/template/components/ArgumentAnnotation.js +10 -0
  80. package/build/template/components/ArgumentAnnotation.js.map +1 -0
  81. package/build/template/components/ArgumentList.js +9 -0
  82. package/build/template/components/ArgumentList.js.map +1 -0
  83. package/build/template/components/ArgumentListAnnotation.js +15 -0
  84. package/build/template/components/ArgumentListAnnotation.js.map +1 -0
  85. package/build/template/components/Changelog.js +44 -0
  86. package/build/template/components/Changelog.js.map +1 -0
  87. package/build/template/components/{CodeBlock.jsx → CodeBlock.js} +4 -5
  88. package/build/template/components/{CodeBlock.jsx.map → CodeBlock.js.map} +1 -1
  89. package/build/template/components/{CodeBlockEnhancer.jsx → CodeBlockEnhancer.js} +4 -4
  90. package/build/template/components/CodeBlockEnhancer.js.map +1 -0
  91. package/build/template/components/DeprecationReason.js +9 -0
  92. package/build/template/components/DeprecationReason.js.map +1 -0
  93. package/build/template/components/Description.js +9 -0
  94. package/build/template/components/Description.js.map +1 -0
  95. package/build/template/components/Field.js +14 -0
  96. package/build/template/components/Field.js.map +1 -0
  97. package/build/template/components/{FieldList.jsx → FieldList.js} +4 -5
  98. package/build/template/components/FieldList.js.map +1 -0
  99. package/build/template/components/{FieldListSection.jsx → FieldListSection.js} +4 -6
  100. package/build/template/components/FieldListSection.js.map +1 -0
  101. package/build/template/components/HamburgerMenu.js +30 -0
  102. package/build/template/components/HamburgerMenu.js.map +1 -0
  103. package/build/template/components/Link.d.ts +1 -1
  104. package/build/template/components/{Link.jsx → Link.js} +4 -5
  105. package/build/template/components/Link.js.map +1 -0
  106. package/build/template/components/Logo.js +20 -0
  107. package/build/template/components/Logo.js.map +1 -0
  108. package/build/template/components/MDXComponents.d.ts +11 -0
  109. package/build/template/components/MDXComponents.d.ts.map +1 -0
  110. package/build/template/components/MDXComponents.js +70 -0
  111. package/build/template/components/MDXComponents.js.map +1 -0
  112. package/build/template/components/{Markdown.jsx → Markdown.js} +3 -2
  113. package/build/template/components/Markdown.js.map +1 -0
  114. package/build/template/components/MissingSchema.d.ts +1 -1
  115. package/build/template/components/MissingSchema.d.ts.map +1 -1
  116. package/build/template/components/MissingSchema.js +5 -0
  117. package/build/template/components/MissingSchema.js.map +1 -0
  118. package/build/template/components/NamedType.js +12 -0
  119. package/build/template/components/NamedType.js.map +1 -0
  120. package/build/template/components/NotFound.js +7 -0
  121. package/build/template/components/NotFound.js.map +1 -0
  122. package/build/template/components/{RadixLink.jsx → RadixLink.js} +1 -1
  123. package/build/template/components/RadixLink.js.map +1 -0
  124. package/build/template/components/TestComponent.d.ts +5 -0
  125. package/build/template/components/TestComponent.d.ts.map +1 -0
  126. package/build/template/components/TestComponent.js +7 -0
  127. package/build/template/components/TestComponent.js.map +1 -0
  128. package/build/template/components/Texts/{MinorHeading.jsx → MinorHeading.js} +4 -3
  129. package/build/template/components/Texts/MinorHeading.js.map +1 -0
  130. package/build/template/components/Texts/texts.js +1 -1
  131. package/build/template/components/Texts/texts.js.map +1 -1
  132. package/build/template/components/ThemeToggle.js +9 -0
  133. package/build/template/components/ThemeToggle.js.map +1 -0
  134. package/build/template/components/{TypeAnnotation.jsx → TypeAnnotation.js} +8 -18
  135. package/build/template/components/TypeAnnotation.js.map +1 -0
  136. package/build/template/components/TypeFieldsLinkList.js +9 -0
  137. package/build/template/components/TypeFieldsLinkList.js.map +1 -0
  138. package/build/template/components/TypeIndex.js +17 -0
  139. package/build/template/components/TypeIndex.js.map +1 -0
  140. package/build/template/components/content/$$.d.ts +1 -0
  141. package/build/template/components/content/$$.d.ts.map +1 -1
  142. package/build/template/components/content/$$.js +1 -0
  143. package/build/template/components/content/$$.js.map +1 -1
  144. package/build/template/components/content/GraphQLDocumentWithSchema.d.ts +8 -0
  145. package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +1 -0
  146. package/build/template/components/content/GraphQLDocumentWithSchema.js +16 -0
  147. package/build/template/components/content/GraphQLDocumentWithSchema.js.map +1 -0
  148. package/build/template/components/content/GraphQLDocumentWrapper.d.ts +7 -0
  149. package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +1 -0
  150. package/build/template/components/content/GraphQLDocumentWrapper.js +62 -0
  151. package/build/template/components/content/GraphQLDocumentWrapper.js.map +1 -0
  152. package/build/template/components/graphql/graphql.d.ts +2 -2
  153. package/build/template/components/graphql/graphql.js +3 -0
  154. package/build/template/components/graphql/graphql.js.map +1 -0
  155. package/build/template/components/graphql/index.d.ts +1 -1
  156. package/build/template/components/graphql/index.js +1 -1
  157. package/build/template/components/graphql/index.js.map +1 -1
  158. package/build/template/components/graphql/{type-kind-icon.jsx → type-kind-icon.js} +3 -2
  159. package/build/template/components/graphql/type-kind-icon.js.map +1 -0
  160. package/build/template/components/graphql/type-link.js +11 -0
  161. package/build/template/components/graphql/type-link.js.map +1 -0
  162. package/build/template/components/sidebar/Sidebar.d.ts +1 -1
  163. package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
  164. package/build/template/components/sidebar/Sidebar.js +11 -0
  165. package/build/template/components/sidebar/Sidebar.js.map +1 -0
  166. package/build/template/components/sidebar/{SidebarItem.jsx → SidebarItem.js} +15 -32
  167. package/build/template/components/sidebar/SidebarItem.js.map +1 -0
  168. package/build/template/components/sidebar/ToggleButton.d.ts +1 -1
  169. package/build/template/components/sidebar/ToggleButton.d.ts.map +1 -1
  170. package/build/template/components/sidebar/ToggleButton.js +5 -0
  171. package/build/template/components/sidebar/ToggleButton.js.map +1 -0
  172. package/build/template/contexts/{ThemeContext.jsx → ThemeContext.js} +3 -4
  173. package/build/template/contexts/{ThemeContext.jsx.map → ThemeContext.js.map} +1 -1
  174. package/build/template/entry.client.d.ts +1 -0
  175. package/build/template/entry.client.d.ts.map +1 -1
  176. package/build/template/{entry.client.jsx → entry.client.js} +5 -6
  177. package/build/template/entry.client.js.map +1 -0
  178. package/build/template/routes/changelog.d.ts +1 -1
  179. package/build/template/routes/{changelog.jsx → changelog.js} +5 -4
  180. package/build/template/routes/changelog.js.map +1 -0
  181. package/build/template/routes/{index.jsx → index.js} +3 -2
  182. package/build/template/routes/index.js.map +1 -0
  183. package/build/template/routes/reference.$type.$field.d.ts +1 -1
  184. package/build/template/routes/{reference.$type.$field.jsx → reference.$type.$field.js} +6 -5
  185. package/build/template/routes/reference.$type.$field.js.map +1 -0
  186. package/build/template/routes/reference.$type.d.ts +1 -1
  187. package/build/template/routes/{reference.$type.jsx → reference.$type.js} +6 -5
  188. package/build/template/routes/reference.$type.js.map +1 -0
  189. package/build/template/routes/reference.d.ts +2 -2
  190. package/build/template/routes/{reference.jsx → reference.js} +6 -7
  191. package/build/template/routes/reference.js.map +1 -0
  192. package/build/template/routes/root.d.ts +2 -2
  193. package/build/template/routes/root.d.ts.map +1 -1
  194. package/build/template/routes/{root.jsx → root.js} +46 -88
  195. package/build/template/routes/root.js.map +1 -0
  196. package/build/template/routes.js +5 -0
  197. package/build/template/routes.js.map +1 -0
  198. package/build/template/server/app.js +1 -1
  199. package/build/template/server/app.js.map +1 -1
  200. package/build/template/server/{render-page.jsx → render-page.js} +3 -4
  201. package/build/template/server/render-page.js.map +1 -0
  202. package/build/template/server/ssg/generate.js +1 -1
  203. package/build/template/server/ssg/generate.js.map +1 -1
  204. package/build/template/server/ssg/get-route-paths.js +1 -1
  205. package/build/template/server/ssg/get-route-paths.js.map +1 -1
  206. package/build/template/server/view.js +1 -1
  207. package/build/template/server/view.js.map +1 -1
  208. package/package.json +56 -8
  209. package/src/api/vite/plugins/core.ts +0 -3
  210. package/src/api/vite/plugins/pages.ts +1 -1
  211. package/src/exports/components.ts +4 -1
  212. package/src/lib/graphql-document/$$.ts +4 -0
  213. package/src/lib/graphql-document/$.test.ts +132 -0
  214. package/src/lib/graphql-document/$.ts +1 -0
  215. package/src/lib/graphql-document/README.md +102 -0
  216. package/src/lib/graphql-document/analysis.ts +415 -0
  217. package/src/lib/graphql-document/components/GraphQLDocument.tsx +284 -0
  218. package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +188 -0
  219. package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +70 -0
  220. package/src/lib/graphql-document/components/HoverTooltip.tsx +282 -0
  221. package/src/lib/graphql-document/components/IdentifierLink.tsx +221 -0
  222. package/src/lib/graphql-document/components/index.ts +4 -0
  223. package/src/lib/graphql-document/demo.md +155 -0
  224. package/src/lib/graphql-document/example.ts +163 -0
  225. package/src/lib/graphql-document/graphql-document.ts +37 -0
  226. package/src/lib/graphql-document/positioning-simple.test.ts +252 -0
  227. package/src/lib/graphql-document/positioning-simple.ts +271 -0
  228. package/src/lib/graphql-document/schema-context.tsx +20 -0
  229. package/src/lib/graphql-document/schema-integration-example.ts +341 -0
  230. package/src/lib/graphql-document/schema-integration.test.ts +365 -0
  231. package/src/lib/graphql-document/schema-integration.ts +497 -0
  232. package/src/lib/graphql-document/types.ts +129 -0
  233. package/src/template/components/ArgumentAnnotation.tsx +1 -1
  234. package/src/template/components/ArgumentList.tsx +1 -1
  235. package/src/template/components/ArgumentListAnnotation.tsx +2 -2
  236. package/src/template/components/CodeBlockEnhancer.tsx +21 -21
  237. package/src/template/components/DeprecationReason.tsx +1 -1
  238. package/src/template/components/Description.tsx +1 -1
  239. package/src/template/components/Field.tsx +4 -4
  240. package/src/template/components/FieldList.tsx +1 -1
  241. package/src/template/components/FieldListSection.tsx +1 -1
  242. package/src/template/components/Link.tsx +2 -2
  243. package/src/template/components/MDXComponents.tsx +101 -0
  244. package/src/template/components/NamedType.tsx +2 -2
  245. package/src/template/components/TestComponent.tsx +6 -0
  246. package/src/template/components/TypeAnnotation.tsx +1 -1
  247. package/src/template/components/TypeFieldsLinkList.tsx +1 -1
  248. package/src/template/components/TypeIndex.tsx +1 -1
  249. package/src/template/components/content/$$.ts +1 -0
  250. package/src/template/components/content/GraphQLDocumentWithSchema.tsx +18 -0
  251. package/src/template/components/content/GraphQLDocumentWrapper.tsx +82 -0
  252. package/src/template/components/graphql/graphql.tsx +2 -2
  253. package/src/template/components/graphql/index.ts +1 -1
  254. package/src/template/components/graphql/type-link.tsx +2 -2
  255. package/src/template/entry.client.tsx +2 -2
  256. package/src/template/routes/changelog.tsx +1 -1
  257. package/src/template/routes/reference.$type.$field.tsx +3 -3
  258. package/src/template/routes/reference.$type.tsx +3 -3
  259. package/src/template/routes/reference.tsx +3 -3
  260. package/src/template/routes/root.tsx +36 -25
  261. package/src/template/routes.tsx +1 -1
  262. package/src/template/server/app.ts +1 -1
  263. package/src/template/server/ssg/generate.ts +1 -1
  264. package/src/template/server/ssg/get-route-paths.ts +1 -1
  265. package/src/template/server/view.ts +1 -1
  266. package/src/template/styles/code-block.css +32 -0
  267. package/build/template/components/ArgumentAnnotation.jsx +0 -16
  268. package/build/template/components/ArgumentAnnotation.jsx.map +0 -1
  269. package/build/template/components/ArgumentList.jsx +0 -16
  270. package/build/template/components/ArgumentList.jsx.map +0 -1
  271. package/build/template/components/ArgumentListAnnotation.jsx +0 -23
  272. package/build/template/components/ArgumentListAnnotation.jsx.map +0 -1
  273. package/build/template/components/Changelog.jsx +0 -68
  274. package/build/template/components/Changelog.jsx.map +0 -1
  275. package/build/template/components/CodeBlockEnhancer.jsx.map +0 -1
  276. package/build/template/components/DeprecationReason.jsx +0 -10
  277. package/build/template/components/DeprecationReason.jsx.map +0 -1
  278. package/build/template/components/Description.jsx +0 -10
  279. package/build/template/components/Description.jsx.map +0 -1
  280. package/build/template/components/Field.jsx +0 -22
  281. package/build/template/components/Field.jsx.map +0 -1
  282. package/build/template/components/FieldList.jsx.map +0 -1
  283. package/build/template/components/FieldListSection.jsx.map +0 -1
  284. package/build/template/components/HamburgerMenu.jsx +0 -53
  285. package/build/template/components/HamburgerMenu.jsx.map +0 -1
  286. package/build/template/components/Link.jsx.map +0 -1
  287. package/build/template/components/Logo.jsx +0 -29
  288. package/build/template/components/Logo.jsx.map +0 -1
  289. package/build/template/components/Markdown.jsx.map +0 -1
  290. package/build/template/components/MissingSchema.jsx +0 -4
  291. package/build/template/components/MissingSchema.jsx.map +0 -1
  292. package/build/template/components/NamedType.jsx +0 -17
  293. package/build/template/components/NamedType.jsx.map +0 -1
  294. package/build/template/components/NotFound.jsx +0 -26
  295. package/build/template/components/NotFound.jsx.map +0 -1
  296. package/build/template/components/RadixLink.jsx.map +0 -1
  297. package/build/template/components/Texts/MinorHeading.jsx.map +0 -1
  298. package/build/template/components/ThemeToggle.jsx +0 -10
  299. package/build/template/components/ThemeToggle.jsx.map +0 -1
  300. package/build/template/components/TypeAnnotation.jsx.map +0 -1
  301. package/build/template/components/TypeFieldsLinkList.jsx +0 -17
  302. package/build/template/components/TypeFieldsLinkList.jsx.map +0 -1
  303. package/build/template/components/TypeIndex.jsx +0 -27
  304. package/build/template/components/TypeIndex.jsx.map +0 -1
  305. package/build/template/components/graphql/graphql.jsx +0 -3
  306. package/build/template/components/graphql/graphql.jsx.map +0 -1
  307. package/build/template/components/graphql/type-kind-icon.jsx.map +0 -1
  308. package/build/template/components/graphql/type-link.jsx +0 -16
  309. package/build/template/components/graphql/type-link.jsx.map +0 -1
  310. package/build/template/components/sidebar/Sidebar.jsx +0 -15
  311. package/build/template/components/sidebar/Sidebar.jsx.map +0 -1
  312. package/build/template/components/sidebar/SidebarItem.jsx.map +0 -1
  313. package/build/template/components/sidebar/ToggleButton.jsx +0 -6
  314. package/build/template/components/sidebar/ToggleButton.jsx.map +0 -1
  315. package/build/template/entry.client.jsx.map +0 -1
  316. package/build/template/routes/changelog.jsx.map +0 -1
  317. package/build/template/routes/index.jsx.map +0 -1
  318. package/build/template/routes/reference.$type.$field.jsx.map +0 -1
  319. package/build/template/routes/reference.$type.jsx.map +0 -1
  320. package/build/template/routes/reference.jsx.map +0 -1
  321. package/build/template/routes/root.jsx.map +0 -1
  322. package/build/template/routes.jsx +0 -5
  323. package/build/template/routes.jsx.map +0 -1
  324. package/build/template/server/render-page.jsx.map +0 -1
@@ -0,0 +1,297 @@
1
+ /**
2
+ * Example usage of Schema Integration (Layer 2)
3
+ *
4
+ * Demonstrates how the schema integration layer resolves GraphQL identifiers
5
+ * against actual schemas, extracts documentation, and generates reference URLs.
6
+ */
7
+ import { buildSchema } from 'graphql';
8
+ import { analyzeWithSchema, createPolenSchemaResolver } from "./schema-integration.js";
9
+ // Example schema - typical GraphQL API
10
+ const pokemonSchema = buildSchema(`
11
+ """
12
+ A Pokémon character
13
+ """
14
+ type Pokemon {
15
+ """
16
+ The Pokémon's unique identifier
17
+ """
18
+ id: ID!
19
+
20
+ """
21
+ The Pokémon's name
22
+ """
23
+ name: String!
24
+
25
+ """
26
+ The Pokémon's type (e.g., Electric, Fire, Water)
27
+ """
28
+ type: String!
29
+
30
+ """
31
+ The Pokémon's abilities
32
+ """
33
+ abilities(
34
+ """
35
+ Maximum number of abilities to return
36
+ """
37
+ first: Int = 5
38
+ ): [Ability!]!
39
+
40
+ """
41
+ @deprecated Use evolutionChain instead
42
+ """
43
+ evolutions: [Pokemon!] @deprecated(reason: "Use evolutionChain instead")
44
+ }
45
+
46
+ """
47
+ A special ability that Pokémon can have
48
+ """
49
+ type Ability {
50
+ id: ID!
51
+ name: String!
52
+ description: String
53
+ isHidden: Boolean!
54
+ }
55
+
56
+ type Query {
57
+ """
58
+ Get a Pokémon by ID
59
+ """
60
+ pokemon(id: ID!): Pokemon
61
+
62
+ """
63
+ Search for Pokémon by name
64
+ """
65
+ searchPokemon(query: String!): [Pokemon!]!
66
+ }
67
+ `);
68
+ // Example GraphQL query with various constructs
69
+ const exampleQuery = `
70
+ query GetPokemonDetails($pokemonId: ID!, $abilityLimit: Int = 3) {
71
+ pokemon(id: $pokemonId) {
72
+ id
73
+ name
74
+ type
75
+ abilities(first: $abilityLimit) {
76
+ name
77
+ description
78
+ isHidden
79
+ }
80
+ evolutions # This field is deprecated
81
+ invalidField # This field doesn't exist
82
+ }
83
+ }
84
+ `;
85
+ /**
86
+ * Demonstrate basic schema resolution
87
+ */
88
+ export const demonstrateSchemaResolution = () => {
89
+ console.log('🔗 Schema Integration Demo\n');
90
+ const resolver = createPolenSchemaResolver(pokemonSchema);
91
+ // Example identifiers (normally extracted from AST)
92
+ const testIdentifiers = [
93
+ {
94
+ name: 'Pokemon',
95
+ kind: 'Type',
96
+ position: { start: 50, end: 57, line: 3, column: 5 },
97
+ schemaPath: ['Pokemon'],
98
+ context: { selectionPath: [] },
99
+ },
100
+ {
101
+ name: 'name',
102
+ kind: 'Field',
103
+ position: { start: 75, end: 79, line: 4, column: 7 },
104
+ parentType: 'Pokemon',
105
+ schemaPath: ['Pokemon', 'name'],
106
+ context: { selectionPath: ['pokemon', 'name'] },
107
+ },
108
+ {
109
+ name: 'evolutions',
110
+ kind: 'Field',
111
+ position: { start: 150, end: 160, line: 9, column: 7 },
112
+ parentType: 'Pokemon',
113
+ schemaPath: ['Pokemon', 'evolutions'],
114
+ context: { selectionPath: ['pokemon', 'evolutions'] },
115
+ },
116
+ {
117
+ name: 'first',
118
+ kind: 'Argument',
119
+ position: { start: 120, end: 125, line: 6, column: 20 },
120
+ parentType: 'Pokemon',
121
+ schemaPath: ['Pokemon', 'abilities', 'first'],
122
+ context: { selectionPath: ['pokemon', 'abilities'] },
123
+ },
124
+ ];
125
+ console.log('📋 Identifier Resolutions:\n');
126
+ for (const identifier of testIdentifiers) {
127
+ const resolution = resolver.resolveIdentifier(identifier);
128
+ if (!resolution)
129
+ continue;
130
+ console.log(`🏷️ ${identifier.kind}: ${identifier.name}`);
131
+ console.log(` ✅ Exists: ${resolution.exists}`);
132
+ console.log(` 🔗 URL: ${resolution.referenceUrl}`);
133
+ if (resolution.documentation) {
134
+ console.log(` 📝 Type: ${resolution.documentation.typeInfo}`);
135
+ if (resolution.documentation.description) {
136
+ console.log(` 💬 Description: ${resolution.documentation.description}`);
137
+ }
138
+ if (resolution.documentation.defaultValue) {
139
+ console.log(` 🎯 Default: ${resolution.documentation.defaultValue}`);
140
+ }
141
+ }
142
+ if (resolution.deprecated) {
143
+ console.log(` ⚠️ DEPRECATED: ${resolution.deprecated.reason}`);
144
+ }
145
+ console.log();
146
+ }
147
+ };
148
+ /**
149
+ * Demonstrate full schema-aware analysis
150
+ */
151
+ export const demonstrateSchemaAwareAnalysis = () => {
152
+ console.log('🔍 Schema-Aware Analysis\n');
153
+ const result = analyzeWithSchema(exampleQuery, pokemonSchema);
154
+ console.log(`📊 Analysis Summary:`);
155
+ console.log(` • Valid GraphQL: ${result.analysis.isValid}`);
156
+ console.log(` • Total identifiers: ${result.analysis.identifiers.all.length}`);
157
+ console.log(` • Schema resolutions: ${result.resolutions.size}`);
158
+ console.log(` • Schema errors: ${result.schemaErrors.length}\n`);
159
+ // Show validation errors
160
+ if (result.schemaErrors.length > 0) {
161
+ console.log('🚨 Schema Validation Issues:\n');
162
+ for (const error of result.schemaErrors) {
163
+ const emoji = error.severity === 'error' ? '❌' : '⚠️';
164
+ const pos = `${error.identifier.position.line}:${error.identifier.position.column}`;
165
+ console.log(` ${emoji} ${error.message} @ ${pos}`);
166
+ }
167
+ console.log();
168
+ }
169
+ // Show successful resolutions with hyperlink potential
170
+ console.log('🔗 Generated Hyperlinks:\n');
171
+ let linkCount = 0;
172
+ for (const [key, resolution] of result.resolutions) {
173
+ if (resolution.exists && linkCount < 8) { // Show first 8 successful resolutions
174
+ const identifier = result.analysis.identifiers.all.find(id => key.startsWith(`${id.position.start}-${id.name}-${id.kind}`));
175
+ if (identifier) {
176
+ const pos = `${identifier.position.line}:${identifier.position.column}`;
177
+ console.log(` 📍 ${identifier.name} (${identifier.kind}) → ${resolution.referenceUrl}`);
178
+ if (resolution.documentation?.description) {
179
+ const shortDesc = resolution.documentation.description.length > 50
180
+ ? resolution.documentation.description.substring(0, 50) + '...'
181
+ : resolution.documentation.description;
182
+ console.log(` 💬 "${shortDesc}"`);
183
+ }
184
+ linkCount++;
185
+ }
186
+ }
187
+ }
188
+ };
189
+ /**
190
+ * Demonstrate tooltip data extraction
191
+ */
192
+ export const demonstrateTooltipData = () => {
193
+ console.log('\n💬 Tooltip Data Extraction\n');
194
+ const resolver = createPolenSchemaResolver(pokemonSchema);
195
+ // Simulate tooltip hover scenarios
196
+ const tooltipExamples = [
197
+ ['Pokemon'],
198
+ ['Pokemon', 'name'],
199
+ ['Pokemon', 'abilities'],
200
+ ['Pokemon', 'abilities', 'first'],
201
+ ['Ability', 'isHidden'],
202
+ ];
203
+ for (const schemaPath of tooltipExamples) {
204
+ const docs = resolver.getDocumentation(schemaPath);
205
+ if (docs) {
206
+ const pathStr = schemaPath.join(' → ');
207
+ console.log(`🏷️ ${pathStr}`);
208
+ console.log(` 📋 Type: ${docs.typeInfo}`);
209
+ if (docs.description) {
210
+ console.log(` 💬 Description: ${docs.description}`);
211
+ }
212
+ if (docs.defaultValue) {
213
+ console.log(` 🎯 Default: ${docs.defaultValue}`);
214
+ }
215
+ if (docs.deprecated) {
216
+ console.log(` ⚠️ DEPRECATED: ${docs.deprecated.reason}`);
217
+ }
218
+ console.log();
219
+ }
220
+ }
221
+ };
222
+ /**
223
+ * Demonstrate URL generation customization
224
+ */
225
+ export const demonstrateCustomURLGeneration = () => {
226
+ console.log('🛠️ Custom URL Generation\n');
227
+ // Different resolver configurations
228
+ const configurations = [
229
+ { name: 'Default', config: {} },
230
+ { name: 'Custom Base Path', config: { basePath: '/docs/api' } },
231
+ { name: 'No Fragments', config: { includeFragments: false } },
232
+ { name: 'Custom + No Fragments', config: { basePath: '/schema', includeFragments: false } },
233
+ ];
234
+ const testPaths = [
235
+ ['Pokemon'],
236
+ ['Pokemon', 'name'],
237
+ ['Pokemon', 'abilities', 'first'],
238
+ ];
239
+ for (const { name, config } of configurations) {
240
+ console.log(`📋 ${name}:`);
241
+ const resolver = createPolenSchemaResolver(pokemonSchema, config);
242
+ for (const path of testPaths) {
243
+ const url = resolver.generateReferenceLink(path);
244
+ console.log(` ${path.join(' → ')} → ${url}`);
245
+ }
246
+ console.log();
247
+ }
248
+ };
249
+ /**
250
+ * Show integration with Polen's reference system
251
+ */
252
+ export const demonstratePolenIntegration = () => {
253
+ console.log('🏗️ Polen Integration Preview\n');
254
+ // This demonstrates how the schema integration connects with Polen's existing systems
255
+ const result = analyzeWithSchema(exampleQuery, pokemonSchema, {
256
+ basePath: '/reference', // Polen's reference page base
257
+ includeFragments: true, // Enable field anchors
258
+ });
259
+ console.log('🔄 How this integrates with Polen:\n');
260
+ console.log('1. 📋 Schema Loading:');
261
+ console.log(" • Uses PROJECT_DATA.schema from Polen's build system");
262
+ console.log(' • Leverages existing schema processing pipeline');
263
+ console.log();
264
+ console.log('2. 🔗 Reference Links:');
265
+ console.log(" • Generates URLs matching Polen's /reference/* structure");
266
+ console.log(' • Works with existing TypeIndex and sidebar system');
267
+ console.log();
268
+ console.log('3. 💬 Documentation:');
269
+ console.log(' • Extracts descriptions for hover tooltips');
270
+ console.log(' • Provides type signatures for context');
271
+ console.log(' • Detects deprecation warnings');
272
+ console.log();
273
+ console.log('4. ✅ Validation:');
274
+ console.log(' • Build-time validation against actual schema');
275
+ console.log(' • Catches typos and invalid references');
276
+ console.log(' • Reports deprecation usage');
277
+ console.log();
278
+ // Show some example integrations
279
+ const validFields = Array.from(result.resolutions.values())
280
+ .filter(r => r.exists)
281
+ .slice(0, 3);
282
+ if (validFields.length > 0) {
283
+ console.log('📋 Example Reference Links:');
284
+ for (const resolution of validFields) {
285
+ console.log(` • ${resolution.referenceUrl}`);
286
+ }
287
+ }
288
+ };
289
+ // Run examples if executed directly
290
+ if (import.meta.url === `file://${process.argv[1]}`) {
291
+ demonstrateSchemaResolution();
292
+ demonstrateSchemaAwareAnalysis();
293
+ demonstrateTooltipData();
294
+ demonstrateCustomURLGeneration();
295
+ demonstratePolenIntegration();
296
+ }
297
+ //# sourceMappingURL=schema-integration-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-integration-example.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-integration-example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Layer 2: Schema Integration
3
+ *
4
+ * Bridge between GraphQL analysis and Polen's schema system.
5
+ * Resolves identifiers against the actual schema, extracts documentation,
6
+ * and generates reference URLs for navigation.
7
+ */
8
+ import { type GraphQLSchema, type GraphQLType } from 'graphql';
9
+ import type { Identifier } from './types.ts';
10
+ /**
11
+ * Documentation extracted from GraphQL schema
12
+ */
13
+ export interface Documentation {
14
+ /** Description from schema SDL or introspection */
15
+ description?: string;
16
+ /** Type signature (e.g., "String!", "[User!]!") */
17
+ typeInfo: string;
18
+ /** Whether this field/type is deprecated */
19
+ deprecated?: {
20
+ reason: string;
21
+ replacement?: string;
22
+ };
23
+ /** Default value for arguments */
24
+ defaultValue?: string;
25
+ }
26
+ /**
27
+ * Result of resolving an identifier against the schema
28
+ */
29
+ export interface SchemaResolution {
30
+ /** Whether the identifier exists in the schema */
31
+ exists: boolean;
32
+ /** Documentation extracted from schema */
33
+ documentation?: Documentation;
34
+ /** URL to the reference page for this identifier */
35
+ referenceUrl: string;
36
+ /** Whether this identifier is deprecated */
37
+ deprecated?: {
38
+ reason: string;
39
+ replacement?: string;
40
+ };
41
+ /** The GraphQL type if this is a type identifier */
42
+ graphqlType?: GraphQLType;
43
+ }
44
+ /**
45
+ * Interface for resolving GraphQL identifiers against a schema
46
+ */
47
+ export interface SchemaResolver {
48
+ /**
49
+ * Resolve an identifier against the schema
50
+ */
51
+ resolveIdentifier(identifier: Identifier): SchemaResolution | null;
52
+ /**
53
+ * Get documentation for a schema path
54
+ */
55
+ getDocumentation(schemaPath: string[]): Documentation | null;
56
+ /**
57
+ * Generate a reference URL for a schema path
58
+ */
59
+ generateReferenceLink(schemaPath: string[]): string;
60
+ /**
61
+ * Check if a type exists in the schema
62
+ */
63
+ typeExists(typeName: string): boolean;
64
+ /**
65
+ * Get all available types for validation
66
+ */
67
+ getAllTypes(): string[];
68
+ }
69
+ /**
70
+ * Configuration for URL generation
71
+ */
72
+ export interface RouteConfig {
73
+ /** Base path for reference pages (default: "/reference") */
74
+ basePath?: string;
75
+ /** Whether to include fragments in URLs (default: true) */
76
+ includeFragments?: boolean;
77
+ }
78
+ /**
79
+ * Polen's implementation of SchemaResolver
80
+ */
81
+ export declare class PolenSchemaResolver implements SchemaResolver {
82
+ private schema;
83
+ private routeConfig;
84
+ constructor(schema: GraphQLSchema, routeConfig?: RouteConfig);
85
+ /**
86
+ * Resolve an identifier against the schema
87
+ */
88
+ resolveIdentifier(identifier: Identifier): SchemaResolution | null;
89
+ /**
90
+ * Get documentation for a schema path
91
+ */
92
+ getDocumentation(schemaPath: string[]): Documentation | null;
93
+ /**
94
+ * Generate a reference URL for a schema path
95
+ */
96
+ generateReferenceLink(schemaPath: string[]): string;
97
+ /**
98
+ * Check if a type exists in the schema
99
+ */
100
+ typeExists(typeName: string): boolean;
101
+ /**
102
+ * Get all available types for validation
103
+ */
104
+ getAllTypes(): string[];
105
+ private resolveType;
106
+ private resolveField;
107
+ private resolveArgument;
108
+ private resolveDirective;
109
+ private getFieldFromType;
110
+ private getTypeSignature;
111
+ }
112
+ /**
113
+ * Create a schema resolver for Polen
114
+ */
115
+ export declare const createPolenSchemaResolver: (schema: GraphQLSchema, routeConfig?: RouteConfig) => SchemaResolver;
116
+ /**
117
+ * Enhanced analysis result with schema resolution
118
+ */
119
+ export interface SchemaAwareAnalysisResult {
120
+ /** Original analysis result */
121
+ analysis: import('./types.ts').AnalysisResult;
122
+ /** Schema resolutions for all identifiers */
123
+ resolutions: Map<string, SchemaResolution>;
124
+ /** Validation errors from schema checking */
125
+ schemaErrors: Array<{
126
+ identifier: Identifier;
127
+ message: string;
128
+ severity: 'error' | 'warning';
129
+ }>;
130
+ }
131
+ /**
132
+ * Perform schema-aware analysis of a GraphQL document
133
+ */
134
+ export declare const analyzeWithSchema: (source: string, schema: GraphQLSchema, routeConfig?: RouteConfig) => SchemaAwareAnalysisResult;
135
+ //# sourceMappingURL=schema-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-integration.d.ts","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-integration.ts"],"names":[],"mappings":"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"}