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,328 @@
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 { getNamedType, isEnumType, isInputObjectType, isInterfaceType, isListType, isNonNullType, isObjectType, isScalarType, isUnionType, } from 'graphql';
9
+ import { analyze } from "./analysis.js";
10
+ /**
11
+ * Polen's implementation of SchemaResolver
12
+ */
13
+ export class PolenSchemaResolver {
14
+ schema;
15
+ routeConfig;
16
+ constructor(schema, routeConfig = {}) {
17
+ this.schema = schema;
18
+ this.routeConfig = routeConfig;
19
+ }
20
+ /**
21
+ * Resolve an identifier against the schema
22
+ */
23
+ resolveIdentifier(identifier) {
24
+ const basePath = this.routeConfig.basePath || '/reference';
25
+ switch (identifier.kind) {
26
+ case 'Type':
27
+ return this.resolveType(identifier, basePath);
28
+ case 'Field':
29
+ return this.resolveField(identifier, basePath);
30
+ case 'Argument':
31
+ return this.resolveArgument(identifier, basePath);
32
+ case 'Variable':
33
+ // Variables don't have schema resolution
34
+ return {
35
+ exists: true,
36
+ referenceUrl: `${basePath}#variables`,
37
+ documentation: {
38
+ typeInfo: 'Variable',
39
+ description: `Query variable: $${identifier.name}`,
40
+ },
41
+ };
42
+ case 'Directive':
43
+ return this.resolveDirective(identifier, basePath);
44
+ case 'Fragment':
45
+ // Fragments don't have schema resolution
46
+ return {
47
+ exists: true,
48
+ referenceUrl: `${basePath}#fragments`,
49
+ documentation: {
50
+ typeInfo: 'Fragment',
51
+ description: `Fragment: ${identifier.name}`,
52
+ },
53
+ };
54
+ default:
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Get documentation for a schema path
60
+ */
61
+ getDocumentation(schemaPath) {
62
+ if (schemaPath.length === 0)
63
+ return null;
64
+ const [typeName, fieldName, argName] = schemaPath;
65
+ if (!typeName)
66
+ return null;
67
+ const type = this.schema.getType(typeName);
68
+ if (!type)
69
+ return null;
70
+ // Type-level documentation
71
+ if (schemaPath.length === 1) {
72
+ return {
73
+ typeInfo: this.getTypeSignature(type),
74
+ description: type.description || undefined,
75
+ deprecated: 'deprecationReason' in type
76
+ ? {
77
+ reason: type.deprecationReason,
78
+ }
79
+ : undefined,
80
+ };
81
+ }
82
+ // Field-level documentation
83
+ if (fieldName && schemaPath.length === 2) {
84
+ const field = this.getFieldFromType(type, fieldName);
85
+ if (!field)
86
+ return null;
87
+ return {
88
+ typeInfo: this.getTypeSignature(field.type),
89
+ description: field.description || undefined,
90
+ deprecated: field.deprecationReason
91
+ ? {
92
+ reason: field.deprecationReason,
93
+ }
94
+ : undefined,
95
+ };
96
+ }
97
+ // Argument-level documentation
98
+ if (fieldName && argName && schemaPath.length === 3) {
99
+ const field = this.getFieldFromType(type, fieldName);
100
+ if (!field || !('args' in field))
101
+ return null;
102
+ const arg = field.args.find((a) => a.name === argName);
103
+ if (!arg)
104
+ return null;
105
+ return {
106
+ typeInfo: this.getTypeSignature(arg.type),
107
+ description: arg.description || undefined,
108
+ defaultValue: arg.defaultValue !== undefined
109
+ ? String(arg.defaultValue)
110
+ : undefined,
111
+ };
112
+ }
113
+ return null;
114
+ }
115
+ /**
116
+ * Generate a reference URL for a schema path
117
+ */
118
+ generateReferenceLink(schemaPath) {
119
+ const basePath = this.routeConfig.basePath || '/reference';
120
+ const includeFragments = this.routeConfig.includeFragments !== false;
121
+ if (schemaPath.length === 0)
122
+ return basePath;
123
+ const [typeName, fieldName, argName] = schemaPath;
124
+ // Type reference
125
+ if (schemaPath.length === 1) {
126
+ return `${basePath}/${typeName}`;
127
+ }
128
+ // Field reference
129
+ if (fieldName && schemaPath.length === 2) {
130
+ const fragment = includeFragments ? `#${fieldName}` : '';
131
+ return `${basePath}/${typeName}${fragment}`;
132
+ }
133
+ // Argument reference
134
+ if (fieldName && argName && schemaPath.length === 3) {
135
+ const fragment = includeFragments ? `#${fieldName}-${argName}` : '';
136
+ return `${basePath}/${typeName}${fragment}`;
137
+ }
138
+ return `${basePath}/${typeName}`;
139
+ }
140
+ /**
141
+ * Check if a type exists in the schema
142
+ */
143
+ typeExists(typeName) {
144
+ return !!this.schema.getType(typeName);
145
+ }
146
+ /**
147
+ * Get all available types for validation
148
+ */
149
+ getAllTypes() {
150
+ return Object.keys(this.schema.getTypeMap())
151
+ .filter(name => !name.startsWith('__')); // Filter out introspection types
152
+ }
153
+ // Private helper methods
154
+ resolveType(identifier, basePath) {
155
+ const type = this.schema.getType(identifier.name);
156
+ return {
157
+ exists: !!type,
158
+ graphqlType: type || undefined,
159
+ referenceUrl: `${basePath}/${identifier.name}`,
160
+ documentation: type
161
+ ? {
162
+ typeInfo: this.getTypeSignature(type),
163
+ description: type.description || undefined,
164
+ }
165
+ : undefined,
166
+ };
167
+ }
168
+ resolveField(identifier, basePath) {
169
+ if (!identifier.parentType) {
170
+ return {
171
+ exists: false,
172
+ referenceUrl: `${basePath}#${identifier.name}`,
173
+ };
174
+ }
175
+ const parentType = this.schema.getType(identifier.parentType);
176
+ if (!parentType) {
177
+ return {
178
+ exists: false,
179
+ referenceUrl: `${basePath}/${identifier.parentType}#${identifier.name}`,
180
+ };
181
+ }
182
+ const field = this.getFieldFromType(parentType, identifier.name);
183
+ return {
184
+ exists: !!field,
185
+ referenceUrl: `${basePath}/${identifier.parentType}#${identifier.name}`,
186
+ documentation: field
187
+ ? {
188
+ typeInfo: this.getTypeSignature(field.type),
189
+ description: field.description || undefined,
190
+ deprecated: field.deprecationReason
191
+ ? {
192
+ reason: field.deprecationReason,
193
+ }
194
+ : undefined,
195
+ }
196
+ : undefined,
197
+ deprecated: field?.deprecationReason
198
+ ? {
199
+ reason: field.deprecationReason,
200
+ }
201
+ : undefined,
202
+ };
203
+ }
204
+ resolveArgument(identifier, basePath) {
205
+ const schemaPath = identifier.schemaPath;
206
+ if (schemaPath.length < 3) {
207
+ return {
208
+ exists: false,
209
+ referenceUrl: `${basePath}#${identifier.name}`,
210
+ };
211
+ }
212
+ const [typeName, fieldName] = schemaPath;
213
+ if (!typeName || !fieldName) {
214
+ return {
215
+ exists: false,
216
+ referenceUrl: `${basePath}#${identifier.name}`,
217
+ };
218
+ }
219
+ const parentType = this.schema.getType(typeName);
220
+ if (!parentType) {
221
+ return {
222
+ exists: false,
223
+ referenceUrl: `${basePath}/${typeName}#${fieldName}-${identifier.name}`,
224
+ };
225
+ }
226
+ const field = this.getFieldFromType(parentType, fieldName);
227
+ if (!field || !('args' in field)) {
228
+ return {
229
+ exists: false,
230
+ referenceUrl: `${basePath}/${typeName}#${fieldName}-${identifier.name}`,
231
+ };
232
+ }
233
+ const arg = field.args.find((a) => a.name === identifier.name);
234
+ return {
235
+ exists: !!arg,
236
+ referenceUrl: `${basePath}/${typeName}#${fieldName}-${identifier.name}`,
237
+ documentation: arg
238
+ ? {
239
+ typeInfo: this.getTypeSignature(arg.type),
240
+ description: arg.description || undefined,
241
+ defaultValue: arg.defaultValue !== undefined
242
+ ? String(arg.defaultValue)
243
+ : undefined,
244
+ }
245
+ : undefined,
246
+ };
247
+ }
248
+ resolveDirective(identifier, basePath) {
249
+ const directive = this.schema.getDirective(identifier.name);
250
+ return {
251
+ exists: !!directive,
252
+ referenceUrl: `${basePath}/directives#${identifier.name}`,
253
+ documentation: directive
254
+ ? {
255
+ typeInfo: 'Directive',
256
+ description: directive.description || undefined,
257
+ }
258
+ : undefined,
259
+ };
260
+ }
261
+ getFieldFromType(type, fieldName) {
262
+ if (isObjectType(type) || isInterfaceType(type)) {
263
+ return type.getFields()[fieldName] || null;
264
+ }
265
+ if (isInputObjectType(type)) {
266
+ return type.getFields()[fieldName] || null;
267
+ }
268
+ return null;
269
+ }
270
+ getTypeSignature(type) {
271
+ if (isNonNullType(type)) {
272
+ return `${this.getTypeSignature(type.ofType)}!`;
273
+ }
274
+ if (isListType(type)) {
275
+ return `[${this.getTypeSignature(type.ofType)}]`;
276
+ }
277
+ return getNamedType(type).name;
278
+ }
279
+ }
280
+ /**
281
+ * Create a schema resolver for Polen
282
+ */
283
+ export const createPolenSchemaResolver = (schema, routeConfig) => {
284
+ return new PolenSchemaResolver(schema, routeConfig);
285
+ };
286
+ /**
287
+ * Perform schema-aware analysis of a GraphQL document
288
+ */
289
+ export const analyzeWithSchema = (source, schema, routeConfig) => {
290
+ const analysis = analyze(source, {
291
+ schema,
292
+ validateAgainstSchema: true,
293
+ includePositions: true,
294
+ });
295
+ const resolver = createPolenSchemaResolver(schema, routeConfig);
296
+ const resolutions = new Map();
297
+ const schemaErrors = [];
298
+ // Resolve all identifiers against schema
299
+ for (const identifier of analysis.identifiers.all) {
300
+ const key = `${identifier.position.start}-${identifier.name}-${identifier.kind}`;
301
+ const resolution = resolver.resolveIdentifier(identifier);
302
+ if (resolution) {
303
+ resolutions.set(key, resolution);
304
+ // Add validation errors for non-existent identifiers
305
+ if (!resolution.exists && (identifier.kind === 'Type' || identifier.kind === 'Field')) {
306
+ schemaErrors.push({
307
+ identifier,
308
+ message: `${identifier.kind} "${identifier.name}" does not exist in schema`,
309
+ severity: 'error',
310
+ });
311
+ }
312
+ // Add deprecation warnings
313
+ if (resolution.deprecated) {
314
+ schemaErrors.push({
315
+ identifier,
316
+ message: `${identifier.kind} "${identifier.name}" is deprecated: ${resolution.deprecated.reason}`,
317
+ severity: 'warning',
318
+ });
319
+ }
320
+ }
321
+ }
322
+ return {
323
+ analysis,
324
+ resolutions,
325
+ schemaErrors,
326
+ };
327
+ };
328
+ //# sourceMappingURL=schema-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-integration.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import type { DocumentNode, GraphQLError, GraphQLSchema } from 'graphql';
2
+ /**
3
+ * Represents a GraphQL identifier found in a document
4
+ */
5
+ export interface Identifier {
6
+ /** The name of the identifier (e.g., 'User', 'name', 'id') */
7
+ name: string;
8
+ /** The kind of GraphQL construct this identifier represents */
9
+ kind: 'Type' | 'Field' | 'Argument' | 'Directive' | 'Variable' | 'Fragment';
10
+ /** Position information in the source document */
11
+ position: {
12
+ /** Character offset from start of document */
13
+ start: number;
14
+ /** Character offset for end of identifier */
15
+ end: number;
16
+ /** Line number (1-based) */
17
+ line: number;
18
+ /** Column number (1-based) */
19
+ column: number;
20
+ };
21
+ /** The parent type name if this is a field or argument */
22
+ parentType?: string;
23
+ /** Path through the schema to this identifier (e.g., ['User', 'posts', 'title']) */
24
+ schemaPath: string[];
25
+ /** Context about where this identifier appears */
26
+ context: IdentifierContext;
27
+ }
28
+ /**
29
+ * Additional context about where an identifier appears in the document
30
+ */
31
+ export interface IdentifierContext {
32
+ /** The operation type if this identifier is within an operation */
33
+ operationType?: 'query' | 'mutation' | 'subscription';
34
+ /** The operation name if this identifier is within a named operation */
35
+ operationName?: string;
36
+ /** Whether this identifier is in a fragment definition */
37
+ inFragment?: string;
38
+ /** The selection path leading to this identifier */
39
+ selectionPath: string[];
40
+ }
41
+ /**
42
+ * Map of all identifiers found in a GraphQL document
43
+ */
44
+ export interface IdentifierMap {
45
+ /** Quick lookup by character position */
46
+ byPosition: Map<number, Identifier>;
47
+ /** Grouped by identifier kind for easy filtering */
48
+ byKind: Map<Identifier['kind'], Identifier[]>;
49
+ /** Any validation errors found during analysis */
50
+ errors: AnalysisError[];
51
+ /** All identifiers as a flat array */
52
+ all: Identifier[];
53
+ }
54
+ /**
55
+ * Analysis error with context about the identifier that caused it
56
+ */
57
+ export interface AnalysisError {
58
+ /** The identifier that caused the error (if applicable) */
59
+ identifier?: Identifier;
60
+ /** Human-readable error message */
61
+ message: string;
62
+ /** Error severity level */
63
+ severity: 'error' | 'warning' | 'info';
64
+ /** Position in the document where the error occurred */
65
+ position?: {
66
+ line: number;
67
+ column: number;
68
+ };
69
+ }
70
+ /**
71
+ * Result of analyzing a GraphQL document
72
+ */
73
+ export interface AnalysisResult {
74
+ /** The parsed AST */
75
+ ast: DocumentNode;
76
+ /** Map of all identifiers found */
77
+ identifiers: IdentifierMap;
78
+ /** Whether the document parsed successfully */
79
+ isValid: boolean;
80
+ /** Any parse or validation errors */
81
+ errors: GraphQLError[];
82
+ }
83
+ /**
84
+ * Configuration for GraphQL document analysis
85
+ */
86
+ export interface AnalysisConfig {
87
+ /** Whether to include position information for identifiers */
88
+ includePositions?: boolean;
89
+ /** Whether to validate against a schema (if provided) */
90
+ validateAgainstSchema?: boolean;
91
+ /** Schema to validate against */
92
+ schema?: GraphQLSchema;
93
+ /** Whether to extract fragment information */
94
+ includeFragments?: boolean;
95
+ }
96
+ /**
97
+ * Interface for the main GraphQL analyzer
98
+ */
99
+ export interface GraphQLAnalyzer {
100
+ /**
101
+ * Parse a GraphQL document string into an AST
102
+ */
103
+ parse(source: string): DocumentNode;
104
+ /**
105
+ * Extract all identifiers from a GraphQL AST
106
+ */
107
+ extractIdentifiers(ast: DocumentNode, config?: AnalysisConfig): IdentifierMap;
108
+ /**
109
+ * Validate a GraphQL document against a schema
110
+ */
111
+ validateAgainstSchema(ast: DocumentNode, schema: GraphQLSchema): GraphQLError[];
112
+ /**
113
+ * Perform complete analysis of a GraphQL document
114
+ */
115
+ analyze(source: string, config?: AnalysisConfig): AnalysisResult;
116
+ }
117
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/graphql-document/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex, Text } from '@radix-ui/themes';
3
+ import { TypeAnnotation } from './TypeAnnotation.js';
4
+ /**
5
+ * Renders a single GraphQL argument in SDL syntax
6
+ */
7
+ export const ArgumentAnnotation = ({ data }) => {
8
+ return (_jsx(Box, { as: 'div', children: _jsxs(Flex, { children: [_jsx(Text, { children: data.name }), _jsx(Text, { children: ":\u00A0" }), _jsx(TypeAnnotation, { type: data.type })] }) }));
9
+ };
10
+ //# sourceMappingURL=ArgumentAnnotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgumentAnnotation.js","sourceRoot":"","sources":["../../../src/template/components/ArgumentAnnotation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAMpD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAc,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACxD,OAAO,CACL,KAAC,GAAG,IAAC,EAAE,EAAC,KAAK,YACX,MAAC,IAAI,eACH,KAAC,IAAI,cAAE,IAAI,CAAC,IAAI,GAAQ,EACxB,KAAC,IAAI,0BAAe,EAEpB,KAAC,cAAc,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,IAC9B,GACH,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex, Heading, Text } from '@radix-ui/themes';
3
+ import { TypeAnnotation } from "./TypeAnnotation.js";
4
+ export const ArgumentsList = ({ args }) => {
5
+ if (args.length === 0)
6
+ return null;
7
+ return (_jsxs(Flex, { direction: 'column', children: [_jsx(Heading, { size: '1', weight: 'bold', children: "Arguments" }), args.map(arg => (_jsxs(Box, { children: [_jsx(Text, { children: arg.name }), _jsx(Text, { children: ":" }), _jsx(TypeAnnotation, { type: arg.type }), arg.description && _jsx(Text, { as: 'p', size: '2', color: 'gray', children: arg.description })] }, arg.name)))] }));
8
+ };
9
+ //# sourceMappingURL=ArgumentList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgumentList.js","sourceRoot":"","sources":["../../../src/template/components/ArgumentList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAG3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;AAMrD,MAAM,CAAC,MAAM,aAAa,GAAc,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAElC,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,aACtB,KAAC,OAAO,IAAC,IAAI,EAAC,GAAG,EAAC,MAAM,EAAC,MAAM,0BAAoB,EAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACf,MAAC,GAAG,eACF,KAAC,IAAI,cAAE,GAAG,CAAC,IAAI,GAAQ,EACvB,KAAC,IAAI,oBAAS,EACd,KAAC,cAAc,IAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAI,EACjC,GAAG,CAAC,WAAW,IAAI,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,YAAE,GAAG,CAAC,WAAW,GAAQ,KAJvE,GAAG,CAAC,IAAI,CAKZ,CACP,CAAC,IACG,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { GrafaidOld } from '#lib/grafaid-old/index';
3
+ import { Box, Text } from '@radix-ui/themes';
4
+ import { ArgumentAnnotation } from "./ArgumentAnnotation.js";
5
+ import { FieldList } from "./FieldList.js";
6
+ export const ArgumentListAnnotation = ({ field }) => {
7
+ if (field.args.length === 0)
8
+ return null;
9
+ const inputObject = GrafaidOld.getIAP(field);
10
+ const inputObjectFields = inputObject
11
+ ? (_jsx(Box, { pl: '3', style: { borderLeft: `1px solid var(--gray-6)` }, children: _jsx(FieldList, { data: inputObject }) }))
12
+ : null;
13
+ return (_jsxs(_Fragment, { children: [_jsx(Text, { children: "(" }), _jsxs(Box, { ml: '2', children: [field.args.map(arg => _jsx(ArgumentAnnotation, { data: arg }, arg.name)), inputObjectFields] }), _jsx(Text, { children: ")" })] }));
14
+ };
15
+ //# sourceMappingURL=ArgumentListAnnotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgumentListAnnotation.js","sourceRoot":"","sources":["../../../src/template/components/ArgumentListAnnotation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAA0B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAA;AAM3C,MAAM,CAAC,MAAM,sBAAsB,GAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAExC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,iBAAiB,GAAG,WAAW;QACnC,CAAC,CAAC,CACA,KAAC,GAAG,IAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,yBAAyB,EAAE,YAC1D,KAAC,SAAS,IAAC,IAAI,EAAE,WAAW,GAAI,GAC5B,CACP;QACD,CAAC,CAAC,IAAI,CAAA;IAER,OAAO,CACL,8BACE,KAAC,IAAI,oBAAS,EACd,MAAC,GAAG,IAAC,EAAE,EAAC,GAAG,aACR,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAC,kBAAkB,IAAgB,IAAI,EAAE,GAAG,IAAnB,GAAG,CAAC,IAAI,CAAe,CAAC,EACvE,iBAAiB,IACd,EACN,KAAC,IAAI,oBAAS,IACb,CACJ,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Grafaid } from '#lib/grafaid/index';
3
+ import { Box, Code } from '@radix-ui/themes';
4
+ import { Graphql } from "./graphql/index.js";
5
+ export const renderDate = (date) => {
6
+ return date.toLocaleString(`default`, {
7
+ month: `long`,
8
+ year: `numeric`,
9
+ day: `numeric`,
10
+ timeZone: `utc`,
11
+ });
12
+ };
13
+ export const Changelog = ({ schema }) => {
14
+ return (_jsx(Box, { children: schema.versions.map(changeset => _jsx(Changeset, { changeset: changeset }, changeset.date.getDate())) }));
15
+ };
16
+ const Changeset = ({ changeset }) => {
17
+ return (_jsxs(Box, { children: [_jsx("h1", { title: changeset.date.toISOString(), children: renderDate(changeset.date) }), _jsx("ul", { children: changeset.changes.map(change => _jsx(Change, { change: change, schema: changeset.after }, change.message)) })] }));
18
+ };
19
+ const Change = ({ change, schema }) => {
20
+ const getTypeOrThrow = (name) => {
21
+ const type = schema.getType(name);
22
+ if (!type)
23
+ throw new Error(`Type ${name} not found`);
24
+ return type;
25
+ };
26
+ switch (change.type) {
27
+ case `TYPE_ADDED`: {
28
+ const type = getTypeOrThrow(change.meta.addedTypeName);
29
+ return (_jsxs("li", { children: ["Added type ", _jsx(Graphql.TypeLink, { type: type })] }));
30
+ }
31
+ case `FIELD_ADDED`: {
32
+ const rootTypeMap = Grafaid.Schema.getRootTypeMap(schema);
33
+ const rootDetails = rootTypeMap.list.find(_ => _.name.canonical === change.meta.typeName);
34
+ const type = getTypeOrThrow(change.meta.typeName);
35
+ if (rootDetails) {
36
+ return (_jsxs("li", { children: ["Added ", rootDetails.operationType, ` `, _jsx(Code, { color: 'jade', variant: 'ghost', style: { borderBottom: `1px dotted var(--jade-6)`, borderRadius: `0` }, children: change.meta.addedFieldName })] }));
37
+ }
38
+ return (_jsxs("li", { children: ["Added field", ` `, _jsx(Code, { color: 'gray', variant: 'ghost', style: { borderBottom: `1px dotted var(--gray-6)`, borderRadius: `0` }, children: change.meta.addedFieldName }), ` `, "to type", ` `, _jsx(Graphql.TypeLink, { type: type }), "."] }));
39
+ }
40
+ default:
41
+ return _jsxs("li", { children: ["TODO: ", change.type] });
42
+ }
43
+ };
44
+ //# sourceMappingURL=Changelog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Changelog.js","sourceRoot":"","sources":["../../../src/template/components/Changelog.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAG5C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE;IACvC,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;QACpC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAA+C,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAClF,OAAO,CACL,KAAC,GAAG,cACD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAC,SAAS,IAAgC,SAAS,EAAE,SAAS,IAA9C,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAA0B,CAAC,GACjG,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAwD,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;IACvF,OAAO,CACL,MAAC,GAAG,eACF,aAAI,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,YACpC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GACxB,EACL,uBACG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAC,MAAM,IAAsB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,IAAvD,MAAM,CAAC,OAAO,CAA6C,CAAC,GACvG,IACD,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAiF,CAC3F,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,EAAE;IACF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAA;QACpD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACtD,OAAO,CACL,wCACa,KAAC,OAAO,CAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI,IACxC,CACN,CAAA;QACH,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACzD,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACzF,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACjD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CACL,mCACS,WAAW,CAAC,aAAa,EAC/B,GAAG,EACJ,KAAC,IAAI,IACH,KAAK,EAAC,MAAM,EACZ,OAAO,EAAC,OAAO,EACf,KAAK,EAAE,EAAE,YAAY,EAAE,0BAA0B,EAAE,YAAY,EAAE,GAAG,EAAE,YAErE,MAAM,CAAC,IAAI,CAAC,cAAc,GACtB,IACJ,CACN,CAAA;YACH,CAAC;YAED,OAAO,CACL,wCACc,GAAG,EACf,KAAC,IAAI,IACH,KAAK,EAAC,MAAM,EACZ,OAAO,EAAC,OAAO,EACf,KAAK,EAAE,EAAE,YAAY,EAAE,0BAA0B,EAAE,YAAY,EAAE,GAAG,EAAE,YAErE,MAAM,CAAC,IAAI,CAAC,cAAc,GACtB,EACN,GAAG,aACI,GAAG,EACX,KAAC,OAAO,CAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI,SAC7B,CACN,CAAA;QACH,CAAC;QACD;YACE,OAAO,mCAAW,MAAM,CAAC,IAAI,IAAM,CAAA;IACvC,CAAC;AACH,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import { highlightCode } from '#lib/shiki/index';
2
3
  import React, { useEffect, useState } from 'react';
3
4
  export const CodeBlock = ({ children, language = `text`, className = ``, showLineNumbers = false, highlightLines = [], diffLines, focusLines = [], showInvisibles = false, }) => {
@@ -33,10 +34,8 @@ export const CodeBlock = ({ children, language = `text`, className = ``, showLin
33
34
  renderCode();
34
35
  }, [children, language, showLineNumbers, highlightLines, diffLines, focusLines, showInvisibles]);
35
36
  if (isLoading) {
36
- return (<pre className={className}>
37
- <code>{children}</code>
38
- </pre>);
37
+ return (_jsx("pre", { className: className, children: _jsx("code", { children: children }) }));
39
38
  }
40
- return (<div className={`code-block ${className}`} dangerouslySetInnerHTML={{ __html: html }}/>);
39
+ return (_jsx("div", { className: `code-block ${className}`, dangerouslySetInnerHTML: { __html: html } }));
41
40
  };
42
- //# sourceMappingURL=CodeBlock.jsx.map
41
+ //# sourceMappingURL=CodeBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.jsx","sourceRoot":"","sources":["../../../src/template/components/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAalD,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAClD,QAAQ,EACR,QAAQ,GAAG,MAAM,EACjB,SAAS,GAAG,EAAE,EACd,eAAe,GAAG,KAAK,EACvB,cAAc,GAAG,EAAE,EACnB,SAAS,EACT,UAAU,GAAG,EAAE,EACf,cAAc,GAAG,KAAK,GACvB,EAAE,EAAE;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEhD,yCAAyC;IACzC,uDAAuD;IACvD,MAAM,KAAK,GAAG,OAAO,CAAA,CAAC,yBAAyB;IAE/C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;oBACjC,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,KAAK;oBACL,eAAe;oBACf,cAAc;oBACd,SAAS;oBACT,UAAU;oBACV,cAAc;iBACf,CAAC,CAAA;gBAEF,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;gBACjD,yBAAyB;gBACzB,OAAO,CAAC,cAAc,QAAQ,eAAe,CAAC,CAAA;YAChD,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAA;QAED,UAAU,EAAE,CAAA;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAA;IAEhG,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CACxB;QAAA,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CACxB;MAAA,EAAE,GAAG,CAAC,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,CAAC,GAAG,CACF,SAAS,CAAC,CAAC,cAAc,SAAS,EAAE,CAAC,CACrC,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAC1C,CACH,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../../src/template/components/CodeBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAalD,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAClD,QAAQ,EACR,QAAQ,GAAG,MAAM,EACjB,SAAS,GAAG,EAAE,EACd,eAAe,GAAG,KAAK,EACvB,cAAc,GAAG,EAAE,EACnB,SAAS,EACT,UAAU,GAAG,EAAE,EACf,cAAc,GAAG,KAAK,GACvB,EAAE,EAAE;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEhD,yCAAyC;IACzC,uDAAuD;IACvD,MAAM,KAAK,GAAG,OAAO,CAAA,CAAC,yBAAyB;IAE/C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;oBACjC,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,KAAK;oBACL,eAAe;oBACf,cAAc;oBACd,SAAS;oBACT,UAAU;oBACV,cAAc;iBACf,CAAC,CAAA;gBAEF,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;gBACjD,yBAAyB;gBACzB,OAAO,CAAC,cAAc,QAAQ,eAAe,CAAC,CAAA;YAChD,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAA;QAED,UAAU,EAAE,CAAA;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAA;IAEhG,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,YACvB,yBAAO,QAAQ,GAAQ,GACnB,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,cACE,SAAS,EAAE,cAAc,SAAS,EAAE,EACpC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GACzC,CACH,CAAA;AACH,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { useEffect } from 'react';
2
2
  import { useLocation } from 'react-router';
3
- import { useTheme } from "../contexts/ThemeContext.jsx";
3
+ import { useTheme } from "../contexts/ThemeContext.js";
4
4
  export const CodeBlockEnhancer = () => {
5
5
  const { appearance } = useTheme();
6
6
  const location = useLocation();
@@ -164,12 +164,12 @@ export const CodeBlockEnhancer = () => {
164
164
  const firstLine = block.querySelector('span.line');
165
165
  if (firstLine && firstLine.style.display === 'none') {
166
166
  firstLine.style.display = '';
167
- }
168
- // Reset margin
167
+ } // Reset margin
168
+ ;
169
169
  block.style.marginTop = '';
170
170
  });
171
171
  };
172
172
  }, [location.pathname]); // Re-run when route changes
173
173
  return null;
174
174
  };
175
- //# sourceMappingURL=CodeBlockEnhancer.jsx.map
175
+ //# sourceMappingURL=CodeBlockEnhancer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlockEnhancer.js","sourceRoot":"","sources":["../../../src/template/components/CodeBlockEnhancer.tsx"],"names":[],"mappings":"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"}