polen 0.10.0 → 0.11.0-next.10

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 (357) hide show
  1. package/build/api/api.d.ts +1 -0
  2. package/build/api/api.d.ts.map +1 -1
  3. package/build/api/api.js +1 -0
  4. package/build/api/api.js.map +1 -1
  5. package/build/api/config/configurator.d.ts +55 -26
  6. package/build/api/config/configurator.d.ts.map +1 -1
  7. package/build/api/config/configurator.js +27 -9
  8. package/build/api/config/configurator.js.map +1 -1
  9. package/build/api/config/merge.d.ts.map +1 -1
  10. package/build/api/config/merge.js +0 -11
  11. package/build/api/config/merge.js.map +1 -1
  12. package/build/api/content/metadata.d.ts +8 -2
  13. package/build/api/content/metadata.d.ts.map +1 -1
  14. package/build/api/content/metadata.js +1 -1
  15. package/build/api/content/metadata.js.map +1 -1
  16. package/build/api/schema/data-sources/data-sources.d.ts +1 -0
  17. package/build/api/schema/data-sources/data-sources.d.ts.map +1 -1
  18. package/build/api/schema/data-sources/data-sources.js +1 -0
  19. package/build/api/schema/data-sources/data-sources.js.map +1 -1
  20. package/build/api/schema/data-sources/introspection/introspection.d.ts +83 -0
  21. package/build/api/schema/data-sources/introspection/introspection.d.ts.map +1 -0
  22. package/build/api/schema/data-sources/introspection/introspection.js +110 -0
  23. package/build/api/schema/data-sources/introspection/introspection.js.map +1 -0
  24. package/build/api/schema/data-sources/memory/memory.d.ts +2 -2
  25. package/build/api/schema/data-sources/memory/memory.d.ts.map +1 -1
  26. package/build/api/schema/data-sources/memory/memory.js +1 -3
  27. package/build/api/schema/data-sources/memory/memory.js.map +1 -1
  28. package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.d.ts +7 -3
  29. package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.d.ts.map +1 -1
  30. package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.js +15 -11
  31. package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.js.map +1 -1
  32. package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts +16 -7
  33. package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts.map +1 -1
  34. package/build/api/schema/data-sources/schema-directory/schema-directory.js +26 -7
  35. package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
  36. package/build/api/schema/data-sources/schema-file/schema-file.d.ts +7 -2
  37. package/build/api/schema/data-sources/schema-file/schema-file.d.ts.map +1 -1
  38. package/build/api/schema/data-sources/schema-file/schema-file.js +13 -5
  39. package/build/api/schema/data-sources/schema-file/schema-file.js.map +1 -1
  40. package/build/api/schema/metadata.d.ts +16 -0
  41. package/build/api/schema/metadata.d.ts.map +1 -0
  42. package/build/api/schema/metadata.js +19 -0
  43. package/build/api/schema/metadata.js.map +1 -0
  44. package/build/api/schema/read.d.ts +85 -11
  45. package/build/api/schema/read.d.ts.map +1 -1
  46. package/build/api/schema/read.js +15 -6
  47. package/build/api/schema/read.js.map +1 -1
  48. package/build/api/schema/schema.d.ts +33 -2
  49. package/build/api/schema/schema.d.ts.map +1 -1
  50. package/build/api/schema/schema.js +42 -0
  51. package/build/api/schema/schema.js.map +1 -1
  52. package/build/api/schema-source/index.d.ts +2 -0
  53. package/build/api/schema-source/index.d.ts.map +1 -0
  54. package/build/api/schema-source/index.js +2 -0
  55. package/build/api/schema-source/index.js.map +1 -0
  56. package/build/api/schema-source/schema-source.d.ts +33 -0
  57. package/build/api/schema-source/schema-source.d.ts.map +1 -0
  58. package/build/api/schema-source/schema-source.js +137 -0
  59. package/build/api/schema-source/schema-source.js.map +1 -0
  60. package/build/api/static/manifest.d.ts +1 -2
  61. package/build/api/static/manifest.d.ts.map +1 -1
  62. package/build/api/static/manifest.js +1 -1
  63. package/build/api/static/manifest.js.map +1 -1
  64. package/build/api/vite/plugins/build.d.ts.map +1 -1
  65. package/build/api/vite/plugins/build.js +3 -0
  66. package/build/api/vite/plugins/build.js.map +1 -1
  67. package/build/api/vite/plugins/core.d.ts +1 -0
  68. package/build/api/vite/plugins/core.d.ts.map +1 -1
  69. package/build/api/vite/plugins/core.js +25 -22
  70. package/build/api/vite/plugins/core.js.map +1 -1
  71. package/build/api/vite/plugins/main.d.ts.map +1 -1
  72. package/build/api/vite/plugins/main.js +1 -8
  73. package/build/api/vite/plugins/main.js.map +1 -1
  74. package/build/api/vite/plugins/schema-assets.d.ts +22 -0
  75. package/build/api/vite/plugins/schema-assets.d.ts.map +1 -0
  76. package/build/api/vite/plugins/schema-assets.js +310 -0
  77. package/build/api/vite/plugins/schema-assets.js.map +1 -0
  78. package/build/api/vite/plugins/serve.d.ts.map +1 -1
  79. package/build/api/vite/plugins/serve.js +11 -0
  80. package/build/api/vite/plugins/serve.js.map +1 -1
  81. package/build/cli/commands/open.js +1 -1
  82. package/build/cli/commands/open.js.map +1 -1
  83. package/build/lib/grafaid/schema/schema.d.ts +1 -1
  84. package/build/lib/grafaid/schema/schema.d.ts.map +1 -1
  85. package/build/lib/grafaid/schema/schema.js +1 -1
  86. package/build/lib/grafaid/schema/schema.js.map +1 -1
  87. package/build/lib/graphql-change/change-groups.d.ts +2 -0
  88. package/build/lib/graphql-change/change-groups.d.ts.map +1 -1
  89. package/build/lib/graphql-change/change-groups.js +54 -0
  90. package/build/lib/graphql-change/change-groups.js.map +1 -1
  91. package/build/lib/kit-temp.d.ts +9 -0
  92. package/build/lib/kit-temp.d.ts.map +1 -1
  93. package/build/lib/kit-temp.js +14 -2
  94. package/build/lib/kit-temp.js.map +1 -1
  95. package/build/lib/path-map/path-map.d.ts.map +1 -1
  96. package/build/lib/path-map/path-map.js +3 -1
  97. package/build/lib/path-map/path-map.js.map +1 -1
  98. package/build/lib/react-router-aid/react-router-aid.d.ts +5 -3
  99. package/build/lib/react-router-aid/react-router-aid.d.ts.map +1 -1
  100. package/build/lib/react-router-aid/react-router-aid.js +7 -4
  101. package/build/lib/react-router-aid/react-router-aid.js.map +1 -1
  102. package/build/project-data.d.ts +3 -11
  103. package/build/project-data.d.ts.map +1 -1
  104. package/build/template/components/Changelog.d.ts +3 -3
  105. package/build/template/components/Changelog.d.ts.map +1 -1
  106. package/build/template/components/Changelog.js +8 -84
  107. package/build/template/components/Changelog.js.map +1 -1
  108. package/build/template/components/CodeBlock.d.ts +2 -0
  109. package/build/template/components/CodeBlock.d.ts.map +1 -1
  110. package/build/template/components/CodeBlock.js +1 -4
  111. package/build/template/components/CodeBlock.js.map +1 -1
  112. package/build/template/components/ComponentDispatch.d.ts +34 -0
  113. package/build/template/components/ComponentDispatch.d.ts.map +1 -0
  114. package/build/template/components/ComponentDispatch.js +33 -0
  115. package/build/template/components/ComponentDispatch.js.map +1 -0
  116. package/build/template/components/ReferenceLink.d.ts +19 -0
  117. package/build/template/components/ReferenceLink.d.ts.map +1 -0
  118. package/build/template/components/ReferenceLink.js +19 -0
  119. package/build/template/components/ReferenceLink.js.map +1 -0
  120. package/build/template/components/TypeAnnotation.d.ts.map +1 -1
  121. package/build/template/components/TypeAnnotation.js +3 -3
  122. package/build/template/components/TypeAnnotation.js.map +1 -1
  123. package/build/template/components/TypeFieldsLinkList.d.ts.map +1 -1
  124. package/build/template/components/TypeFieldsLinkList.js +4 -4
  125. package/build/template/components/TypeFieldsLinkList.js.map +1 -1
  126. package/build/template/components/TypeIndex.js +2 -2
  127. package/build/template/components/TypeIndex.js.map +1 -1
  128. package/build/template/components/VersionSelector.d.ts +7 -0
  129. package/build/template/components/VersionSelector.d.ts.map +1 -0
  130. package/build/template/components/VersionSelector.js +30 -0
  131. package/build/template/components/VersionSelector.js.map +1 -0
  132. package/build/template/components/graphql/type-link.d.ts.map +1 -1
  133. package/build/template/components/graphql/type-link.js +2 -2
  134. package/build/template/components/graphql/type-link.js.map +1 -1
  135. package/build/template/hooks/useVersionPath.d.ts +6 -0
  136. package/build/template/hooks/useVersionPath.d.ts.map +1 -0
  137. package/build/template/hooks/useVersionPath.js +10 -0
  138. package/build/template/hooks/useVersionPath.js.map +1 -0
  139. package/build/template/layouts/ChangelogLayout.d.ts.map +1 -0
  140. package/build/template/{components → layouts}/ChangelogLayout.js +1 -1
  141. package/build/template/layouts/ChangelogLayout.js.map +1 -0
  142. package/build/template/layouts/index.d.ts +1 -0
  143. package/build/template/layouts/index.d.ts.map +1 -1
  144. package/build/template/layouts/index.js +1 -0
  145. package/build/template/layouts/index.js.map +1 -1
  146. package/build/template/lib/fetch-text.d.ts +8 -0
  147. package/build/template/lib/fetch-text.d.ts.map +1 -0
  148. package/build/template/lib/fetch-text.js +14 -0
  149. package/build/template/lib/fetch-text.js.map +1 -0
  150. package/build/template/lib/polen-url.d.ts +14 -0
  151. package/build/template/lib/polen-url.d.ts.map +1 -1
  152. package/build/template/lib/polen-url.js +16 -0
  153. package/build/template/lib/polen-url.js.map +1 -1
  154. package/build/template/lib/schema-utils/constants.d.ts +5 -0
  155. package/build/template/lib/schema-utils/constants.d.ts.map +1 -0
  156. package/build/template/lib/schema-utils/constants.js +5 -0
  157. package/build/template/lib/schema-utils/constants.js.map +1 -0
  158. package/build/template/lib/schema-utils/schema-utils.d.ts +15 -0
  159. package/build/template/lib/schema-utils/schema-utils.d.ts.map +1 -0
  160. package/build/template/lib/schema-utils/schema-utils.js +37 -0
  161. package/build/template/lib/schema-utils/schema-utils.js.map +1 -0
  162. package/build/template/routes/changelog.d.ts +4 -3
  163. package/build/template/routes/changelog.d.ts.map +1 -1
  164. package/build/template/routes/changelog.js +15 -9
  165. package/build/template/routes/changelog.js.map +1 -1
  166. package/build/template/routes/index.js +2 -2
  167. package/build/template/routes/index.js.map +1 -1
  168. package/build/template/routes/pages.d.ts +10 -0
  169. package/build/template/routes/pages.d.ts.map +1 -0
  170. package/build/template/routes/pages.js +76 -0
  171. package/build/template/routes/pages.js.map +1 -0
  172. package/build/template/routes/reference.d.ts +35 -6
  173. package/build/template/routes/reference.d.ts.map +1 -1
  174. package/build/template/routes/reference.js +97 -14
  175. package/build/template/routes/reference.js.map +1 -1
  176. package/build/template/routes/root.d.ts.map +1 -1
  177. package/build/template/routes/root.js +11 -75
  178. package/build/template/routes/root.js.map +1 -1
  179. package/build/template/server/app.d.ts +22 -1
  180. package/build/template/server/app.d.ts.map +1 -1
  181. package/build/template/server/app.js +19 -9
  182. package/build/template/server/app.js.map +1 -1
  183. package/build/template/server/main.js +9 -1
  184. package/build/template/server/main.js.map +1 -1
  185. package/build/template/server/ssg/generate.js +2 -2
  186. package/build/template/server/ssg/generate.js.map +1 -1
  187. package/build/template/server/ssg/get-route-paths.d.ts +1 -1
  188. package/build/template/server/ssg/get-route-paths.d.ts.map +1 -1
  189. package/build/template/server/ssg/get-route-paths.js +90 -27
  190. package/build/template/server/ssg/get-route-paths.js.map +1 -1
  191. package/build/template/sources/schema-source.d.ts +15 -0
  192. package/build/template/sources/schema-source.d.ts.map +1 -0
  193. package/build/template/sources/schema-source.js +64 -0
  194. package/build/template/sources/schema-source.js.map +1 -0
  195. package/package.json +16 -17
  196. package/src/api/api.ts +1 -0
  197. package/src/api/config/configurator.ts +86 -36
  198. package/src/api/config/merge.ts +0 -16
  199. package/src/api/content/metadata.ts +1 -1
  200. package/src/api/schema/data-sources/data-sources.ts +1 -0
  201. package/src/api/schema/data-sources/introspection/introspection.ts +213 -0
  202. package/src/api/schema/data-sources/memory/memory.ts +3 -5
  203. package/src/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.ts +29 -13
  204. package/src/api/schema/data-sources/schema-directory/schema-directory.ts +56 -16
  205. package/src/api/schema/data-sources/schema-file/schema-file.ts +16 -7
  206. package/src/api/schema/metadata.ts +23 -0
  207. package/src/api/schema/read.ts +109 -18
  208. package/src/api/schema/schema.ts +62 -2
  209. package/src/api/schema-source/index.ts +1 -0
  210. package/src/api/schema-source/schema-source.ts +189 -0
  211. package/src/api/static/manifest.ts +1 -1
  212. package/src/api/vite/plugins/build.ts +3 -0
  213. package/src/api/vite/plugins/core.ts +27 -22
  214. package/src/api/vite/plugins/main.ts +1 -9
  215. package/src/api/vite/plugins/schema-assets.ts +364 -0
  216. package/src/api/vite/plugins/serve.ts +15 -8
  217. package/src/cli/commands/open.ts +1 -1
  218. package/src/lib/grafaid/schema/schema.ts +1 -0
  219. package/src/lib/graphql-change/change-groups.ts +57 -0
  220. package/src/lib/kit-temp.ts +15 -2
  221. package/src/lib/mask/$.test.ts +3 -3
  222. package/src/lib/path-map/$.test.ts +22 -19
  223. package/src/lib/path-map/path-map.ts +3 -1
  224. package/src/lib/react-router-aid/react-router-aid.ts +12 -6
  225. package/src/project-data.ts +3 -11
  226. package/src/template/components/Changelog.tsx +16 -67
  227. package/src/template/components/CodeBlock.tsx +3 -5
  228. package/src/template/components/ComponentDispatch.tsx +42 -0
  229. package/src/template/components/ReferenceLink.tsx +34 -0
  230. package/src/template/components/TypeAnnotation.tsx +5 -7
  231. package/src/template/components/TypeFieldsLinkList.tsx +20 -23
  232. package/src/template/components/TypeIndex.tsx +10 -12
  233. package/src/template/components/VersionSelector.tsx +50 -0
  234. package/src/template/components/graphql/type-link.tsx +4 -3
  235. package/src/template/hooks/useVersionPath.ts +10 -0
  236. package/src/template/{components → layouts}/ChangelogLayout.tsx +1 -1
  237. package/src/template/layouts/index.ts +1 -0
  238. package/src/template/lib/fetch-text.ts +13 -0
  239. package/src/template/lib/polen-url.ts +20 -0
  240. package/src/template/lib/schema-utils/constants.ts +4 -0
  241. package/src/template/lib/schema-utils/schema-utils.ts +42 -0
  242. package/src/template/routes/changelog.tsx +19 -10
  243. package/src/template/routes/index.tsx +2 -2
  244. package/src/template/routes/pages.tsx +109 -0
  245. package/src/template/routes/reference.tsx +112 -12
  246. package/src/template/routes/root.tsx +11 -112
  247. package/src/template/server/app.ts +47 -14
  248. package/src/template/server/main.ts +9 -1
  249. package/src/template/server/ssg/generate.ts +2 -2
  250. package/src/template/server/ssg/get-route-paths.test.ts +132 -0
  251. package/src/template/server/ssg/get-route-paths.ts +91 -27
  252. package/src/template/sources/schema-source.ts +69 -0
  253. package/build/lib/graphql-document/$$.d.ts +0 -5
  254. package/build/lib/graphql-document/$$.d.ts.map +0 -1
  255. package/build/lib/graphql-document/$$.js +0 -5
  256. package/build/lib/graphql-document/$$.js.map +0 -1
  257. package/build/lib/graphql-document/$.d.ts +0 -2
  258. package/build/lib/graphql-document/$.d.ts.map +0 -1
  259. package/build/lib/graphql-document/$.js +0 -2
  260. package/build/lib/graphql-document/$.js.map +0 -1
  261. package/build/lib/graphql-document/analysis.d.ts +0 -44
  262. package/build/lib/graphql-document/analysis.d.ts.map +0 -1
  263. package/build/lib/graphql-document/analysis.js +0 -361
  264. package/build/lib/graphql-document/analysis.js.map +0 -1
  265. package/build/lib/graphql-document/components/GraphQLDocument.d.ts +0 -38
  266. package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +0 -1
  267. package/build/lib/graphql-document/components/GraphQLDocument.js +0 -151
  268. package/build/lib/graphql-document/components/GraphQLDocument.js.map +0 -1
  269. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +0 -7
  270. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +0 -1
  271. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +0 -27
  272. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +0 -1
  273. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +0 -33
  274. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +0 -1
  275. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +0 -50
  276. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +0 -1
  277. package/build/lib/graphql-document/components/IdentifierLink.d.ts +0 -39
  278. package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +0 -1
  279. package/build/lib/graphql-document/components/IdentifierLink.js +0 -75
  280. package/build/lib/graphql-document/components/IdentifierLink.js.map +0 -1
  281. package/build/lib/graphql-document/components/graphql-document-styles.d.ts +0 -5
  282. package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +0 -1
  283. package/build/lib/graphql-document/components/graphql-document-styles.js +0 -144
  284. package/build/lib/graphql-document/components/graphql-document-styles.js.map +0 -1
  285. package/build/lib/graphql-document/components/index.d.ts +0 -5
  286. package/build/lib/graphql-document/components/index.d.ts.map +0 -1
  287. package/build/lib/graphql-document/components/index.js +0 -5
  288. package/build/lib/graphql-document/components/index.js.map +0 -1
  289. package/build/lib/graphql-document/example.d.ts +0 -25
  290. package/build/lib/graphql-document/example.d.ts.map +0 -1
  291. package/build/lib/graphql-document/example.js +0 -140
  292. package/build/lib/graphql-document/example.js.map +0 -1
  293. package/build/lib/graphql-document/graphql-document.d.ts +0 -35
  294. package/build/lib/graphql-document/graphql-document.d.ts.map +0 -1
  295. package/build/lib/graphql-document/graphql-document.js +0 -36
  296. package/build/lib/graphql-document/graphql-document.js.map +0 -1
  297. package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts +0 -43
  298. package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts.map +0 -1
  299. package/build/lib/graphql-document/hooks/use-tooltip-state.js +0 -132
  300. package/build/lib/graphql-document/hooks/use-tooltip-state.js.map +0 -1
  301. package/build/lib/graphql-document/positioning-simple.d.ts +0 -63
  302. package/build/lib/graphql-document/positioning-simple.d.ts.map +0 -1
  303. package/build/lib/graphql-document/positioning-simple.js +0 -185
  304. package/build/lib/graphql-document/positioning-simple.js.map +0 -1
  305. package/build/lib/graphql-document/schema-context.d.ts +0 -8
  306. package/build/lib/graphql-document/schema-context.d.ts.map +0 -1
  307. package/build/lib/graphql-document/schema-context.js +0 -11
  308. package/build/lib/graphql-document/schema-context.js.map +0 -1
  309. package/build/lib/graphql-document/schema-integration.d.ts +0 -135
  310. package/build/lib/graphql-document/schema-integration.d.ts.map +0 -1
  311. package/build/lib/graphql-document/schema-integration.js +0 -328
  312. package/build/lib/graphql-document/schema-integration.js.map +0 -1
  313. package/build/lib/graphql-document/types.d.ts +0 -117
  314. package/build/lib/graphql-document/types.d.ts.map +0 -1
  315. package/build/lib/graphql-document/types.js +0 -2
  316. package/build/lib/graphql-document/types.js.map +0 -1
  317. package/build/template/components/ChangelogLayout.d.ts.map +0 -1
  318. package/build/template/components/ChangelogLayout.js.map +0 -1
  319. package/build/template/components/CodeHikePre.d.ts +0 -16
  320. package/build/template/components/CodeHikePre.d.ts.map +0 -1
  321. package/build/template/components/CodeHikePre.js +0 -37
  322. package/build/template/components/CodeHikePre.js.map +0 -1
  323. package/build/template/routes/reference.$type.$field.d.ts +0 -5
  324. package/build/template/routes/reference.$type.$field.d.ts.map +0 -1
  325. package/build/template/routes/reference.$type.$field.js +0 -31
  326. package/build/template/routes/reference.$type.$field.js.map +0 -1
  327. package/build/template/routes/reference.$type.d.ts +0 -5
  328. package/build/template/routes/reference.$type.d.ts.map +0 -1
  329. package/build/template/routes/reference.$type.js +0 -23
  330. package/build/template/routes/reference.$type.js.map +0 -1
  331. package/src/lib/graphql-document/$$.ts +0 -4
  332. package/src/lib/graphql-document/$.test.ts +0 -132
  333. package/src/lib/graphql-document/$.ts +0 -1
  334. package/src/lib/graphql-document/README.md +0 -102
  335. package/src/lib/graphql-document/analysis.ts +0 -415
  336. package/src/lib/graphql-document/components/GraphQLDocument.tsx +0 -265
  337. package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +0 -188
  338. package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +0 -46
  339. package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +0 -199
  340. package/src/lib/graphql-document/components/IdentifierLink.tsx +0 -160
  341. package/src/lib/graphql-document/components/graphql-document-styles.ts +0 -144
  342. package/src/lib/graphql-document/components/index.ts +0 -4
  343. package/src/lib/graphql-document/demo.md +0 -155
  344. package/src/lib/graphql-document/example.ts +0 -163
  345. package/src/lib/graphql-document/graphql-document.ts +0 -37
  346. package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +0 -76
  347. package/src/lib/graphql-document/hooks/use-tooltip-state.ts +0 -191
  348. package/src/lib/graphql-document/positioning-simple.test.ts +0 -248
  349. package/src/lib/graphql-document/positioning-simple.ts +0 -260
  350. package/src/lib/graphql-document/schema-context.tsx +0 -20
  351. package/src/lib/graphql-document/schema-integration.test.ts +0 -365
  352. package/src/lib/graphql-document/schema-integration.ts +0 -488
  353. package/src/lib/graphql-document/types.ts +0 -129
  354. package/src/template/components/CodeHikePre.tsx +0 -51
  355. package/src/template/routes/reference.$type.$field.tsx +0 -34
  356. package/src/template/routes/reference.$type.tsx +0 -27
  357. /package/build/template/{components → layouts}/ChangelogLayout.d.ts +0 -0
@@ -0,0 +1,109 @@
1
+ import { route } from '#lib/react-router-aid/react-router-aid'
2
+ import { createLoader, useLoaderData } from '#lib/react-router-loader/react-router-loader'
3
+ import { SidebarLayout } from '#template/layouts/index'
4
+ import { MDXProvider } from '@mdx-js/react'
5
+ import {
6
+ Badge,
7
+ Box,
8
+ Button,
9
+ Callout,
10
+ Card,
11
+ Code,
12
+ DataList,
13
+ Em,
14
+ Heading,
15
+ Link,
16
+ Quote,
17
+ Separator,
18
+ Strong,
19
+ Table,
20
+ Tabs,
21
+ Text,
22
+ Tooltip,
23
+ } from '@radix-ui/themes'
24
+ import { Outlet, useLocation } from 'react-router'
25
+ import PROJECT_DATA_PAGES_CATALOG from 'virtual:polen/project/data/pages-catalog.jsonsuper'
26
+ import { routes } from 'virtual:polen/project/routes.jsx'
27
+ import { CodeBlock } from '../components/CodeBlock.js'
28
+ import { schemaSource } from '../sources/schema-source.js'
29
+
30
+ const loader = createLoader(async () => {
31
+ // Check if schema exists first
32
+ if (schemaSource.isEmpty) {
33
+ return { schema: null }
34
+ }
35
+
36
+ // Fetch the latest schema for MDX pages
37
+ const schema = await schemaSource.get('latest')
38
+ return { schema }
39
+ })
40
+
41
+ const Component = () => {
42
+ const { schema } = useLoaderData<typeof loader>()
43
+ const location = useLocation()
44
+
45
+ // Build sidebar from pages catalog
46
+ // Get the top-level path segment (e.g., '/guide/foo' -> '/guide')
47
+ const pathSegments = location.pathname.split('/').filter(Boolean)
48
+ const topLevelPath = pathSegments[0] ? `/${pathSegments[0]}` : '/'
49
+
50
+ // Get the sidebar for this section
51
+ const sidebar = PROJECT_DATA_PAGES_CATALOG.sidebarIndex[topLevelPath]?.items || []
52
+
53
+ return (
54
+ <MDXProvider
55
+ components={{
56
+ // Map markdown elements to Radix with spacing
57
+ p: (props) => <Text as='p' mb='4' {...props} />,
58
+ h1: (props) => <Heading size='8' mt='6' mb='4' {...props} />,
59
+ h2: (props) => <Heading size='7' mt='6' mb='3' {...props} />,
60
+ h3: (props) => <Heading size='6' mt='5' mb='3' {...props} />,
61
+ h4: (props) => <Heading size='5' mt='5' mb='2' {...props} />,
62
+ h5: (props) => <Heading size='4' mt='4' mb='2' {...props} />,
63
+ h6: (props) => <Heading size='3' mt='4' mb='2' {...props} />,
64
+ strong: Strong,
65
+ em: Em,
66
+ code: Code,
67
+ blockquote: (props) => <Quote my='4' {...props} />,
68
+ a: Link,
69
+ hr: (props) => <Separator my='6' {...props} />,
70
+ table: Table.Root,
71
+ thead: Table.Header,
72
+ tbody: Table.Body,
73
+ tr: Table.Row,
74
+ th: Table.ColumnHeaderCell,
75
+ td: Table.Cell,
76
+ // Lists need spacing too
77
+ ul: (props) => <Box as='ul' mb='4' style={{ paddingLeft: '1.5rem' }} {...props} />,
78
+ ol: (props) => <Box as='ol' mb='4' style={{ paddingLeft: '1.5rem' }} {...props} />,
79
+ li: (props) => <Box as='li' mb='2' {...props} />,
80
+
81
+ // Direct Radix components for MDX
82
+ Badge,
83
+ Button,
84
+ // @ts-expect-error
85
+ Callout,
86
+ Card,
87
+ // @ts-expect-error
88
+ DataList,
89
+ // @ts-expect-error
90
+ Tabs,
91
+ Tooltip,
92
+
93
+ // Code Hike component with schema injected
94
+ CodeBlock: (props: any) => <CodeBlock {...props} schema={schema} />,
95
+ }}
96
+ >
97
+ <SidebarLayout sidebar={sidebar}>
98
+ <Outlet />
99
+ </SidebarLayout>
100
+ </MDXProvider>
101
+ )
102
+ }
103
+
104
+ export const pages = route({
105
+ // Pathless layout route - doesn't affect URL paths
106
+ loader,
107
+ Component,
108
+ children: [...routes], // All MDX page routes go here
109
+ })
@@ -1,21 +1,35 @@
1
1
  import type { Content } from '#api/content/$'
2
2
  import { GrafaidOld } from '#lib/grafaid-old/index'
3
- import { createRoute } from '#lib/react-router-aid/react-router-aid'
3
+ import { Grafaid } from '#lib/grafaid/index'
4
+ import { route, routeIndex } from '#lib/react-router-aid/react-router-aid'
4
5
  import { createLoader, useLoaderData } from '#lib/react-router-loader/react-router-loader'
5
- import { Outlet } from 'react-router'
6
- import PROJECT_DATA from 'virtual:polen/project/data.jsonsuper'
6
+ import { Box } from '@radix-ui/themes'
7
+ import { Outlet, useParams } from 'react-router'
8
+ import { Field } from '../components/Field.js'
7
9
  import { MissingSchema } from '../components/MissingSchema.js'
10
+ import { NamedType } from '../components/NamedType.js'
11
+ import { VersionSelector } from '../components/VersionSelector.js'
8
12
  import { SidebarLayout } from '../layouts/index.js'
9
- import { reference$type } from './reference.$type.js'
13
+ import { VERSION_LATEST } from '../lib/schema-utils/constants.js'
14
+ import { schemaSource } from '../sources/schema-source.js'
15
+
16
+ export const loader = createLoader(async ({ params }) => {
17
+ // Handle both versioned and unversioned routes:
18
+ // - Versioned: /reference/version/:version/:type → params.version exists
19
+ // - Unversioned: /reference/:type → params.version is undefined, defaults to latest
20
+ const currentVersion = params.version ?? VERSION_LATEST
21
+
22
+ const schema = await schemaSource.get(currentVersion)
23
+ const availableVersions = schemaSource.versions
10
24
 
11
- const loader = createLoader(() => {
12
- const latestSchemaVersion = PROJECT_DATA.schema?.versions[0].after ?? null
13
25
  return {
14
- schema: latestSchemaVersion,
26
+ schema,
27
+ currentVersion,
28
+ availableVersions,
15
29
  }
16
30
  })
17
31
 
18
- const Component = () => {
32
+ const RouteReferenceComponent = () => {
19
33
  const data = useLoaderData<typeof loader>()
20
34
 
21
35
  if (!data.schema) {
@@ -28,6 +42,12 @@ const Component = () => {
28
42
  const sidebarItems: Content.Item[] = []
29
43
  const kindEntries = Object.entries(kindMap.list).filter(([_, types]) => types.length > 0)
30
44
 
45
+ // Build path prefix based on current version from loader data
46
+ // This ensures sidebar links always match the current version being viewed
47
+ const versionPath = data.currentVersion === VERSION_LATEST
48
+ ? ``
49
+ : `version/${data.currentVersion}/`
50
+
31
51
  for (const [title, types] of kindEntries) {
32
52
  sidebarItems.push({
33
53
  type: `ItemSection` as const,
@@ -37,21 +57,101 @@ const Component = () => {
37
57
  links: types.map(type => ({
38
58
  type: `ItemLink` as const,
39
59
  title: type.name,
40
- pathExp: `reference/${type.name}`,
60
+ pathExp: `reference/${versionPath}${type.name}`,
41
61
  })),
42
62
  })
43
63
  }
44
64
 
45
65
  return (
46
66
  <SidebarLayout sidebar={sidebarItems}>
67
+ <Box mb={`4`}>
68
+ <VersionSelector
69
+ availableVersions={data.availableVersions}
70
+ currentVersion={data.currentVersion}
71
+ />
72
+ </Box>
47
73
  <Outlet />
48
74
  </SidebarLayout>
49
75
  )
50
76
  }
51
77
 
52
- export const reference = createRoute({
78
+ // Shared hooks for schema data validation and retrieval
79
+ const useReferenceSchema = () => {
80
+ const data = useLoaderData<typeof loader>('reference')
81
+ if (!data?.schema) {
82
+ throw new Error('Schema not found')
83
+ }
84
+ return data
85
+ }
86
+
87
+ const useSchemaType = (typeName: string) => {
88
+ const { schema } = useReferenceSchema()
89
+ const type = schema.getType(typeName)
90
+ if (!type) {
91
+ throw new Error(`Could not find type ${typeName}`)
92
+ }
93
+ return type
94
+ }
95
+
96
+ const useSchemaField = (typeName: string, fieldName: string) => {
97
+ const type = useSchemaType(typeName)
98
+ if (!Grafaid.Schema.TypesLike.isFielded(type)) {
99
+ throw new Error(`Type ${typeName} does not have fields`)
100
+ }
101
+
102
+ const fields = type.getFields()
103
+ const field = fields[fieldName]
104
+ if (!field) {
105
+ throw new Error(`Could not find field ${fieldName} on type ${typeName}`)
106
+ }
107
+ return field
108
+ }
109
+
110
+ const RouteComponentIndex = () => {
111
+ return <div>Select a type from the sidebar to view its documentation.</div>
112
+ }
113
+
114
+ const RouteComponentType = () => {
115
+ const params = useParams() as { type: string }
116
+ const type = useSchemaType(params.type)
117
+ return <NamedType data={type} />
118
+ }
119
+
120
+ const RouteComponentTypeField = () => {
121
+ const params = useParams() as { type: string; field: string }
122
+ const field = useSchemaField(params.type, params.field)
123
+ return <Field data={field} />
124
+ }
125
+
126
+ const typeAndFieldRoutes = [
127
+ routeIndex(RouteComponentIndex),
128
+ route({
129
+ path: `:type`,
130
+ Component: RouteComponentType,
131
+ errorElement: <MissingSchema />,
132
+ children: [
133
+ route({
134
+ path: `:field`,
135
+ Component: RouteComponentTypeField,
136
+ errorElement: <MissingSchema />,
137
+ }),
138
+ ],
139
+ }),
140
+ ]
141
+
142
+ /**
143
+ * Reference documentation with proper nested structure - all routes in one file
144
+ */
145
+ export const reference = route({
146
+ id: 'reference',
53
147
  path: `reference`,
54
148
  loader,
55
- Component,
56
- children: [reference$type],
149
+ Component: RouteReferenceComponent,
150
+ children: [
151
+ ...typeAndFieldRoutes,
152
+ route({
153
+ path: `version/:version`,
154
+ children: typeAndFieldRoutes,
155
+ }),
156
+ ],
57
157
  })
@@ -1,38 +1,12 @@
1
1
  import type { ReactRouter } from '#dep/react-router/index'
2
- import { createRoute } from '#lib/react-router-aid/react-router-aid'
3
- import { SidebarLayout } from '#template/layouts/index'
4
- import { MDXProvider } from '@mdx-js/react'
5
- import {
6
- Badge,
7
- Box,
8
- Button,
9
- Callout,
10
- Card,
11
- Code,
12
- DataList,
13
- Em,
14
- Flex,
15
- Heading,
16
- Link,
17
- Quote,
18
- Separator,
19
- Strong,
20
- Table,
21
- Tabs,
22
- Text,
23
- Theme,
24
- Tooltip,
25
- } from '@radix-ui/themes'
26
- import { Link as LinkReactRouter, useLocation } from 'react-router'
2
+ import { route } from '#lib/react-router-aid/react-router-aid'
3
+ import { Box, Flex, Theme } from '@radix-ui/themes'
4
+ import { Link as LinkReactRouter } from 'react-router'
27
5
  import { Outlet, ScrollRestoration } from 'react-router'
28
6
  import logoSrc from 'virtual:polen/project/assets/logo.svg'
29
7
  import PROJECT_DATA from 'virtual:polen/project/data.jsonsuper'
30
- import PROJECT_DATA_PAGES_CATALOG from 'virtual:polen/project/data/pages-catalog.jsonsuper'
31
- import { routes } from 'virtual:polen/project/routes.jsx'
8
+ import PROJECT_SCHEMA from 'virtual:polen/project/schema.jsonsuper'
32
9
  import { templateVariables } from 'virtual:polen/template/variables'
33
- import { GraphQLSchemaProvider } from '../../lib/graphql-document/schema-context.js'
34
- import { CodeBlock } from '../components/CodeBlock.js'
35
- import { Pre } from '../components/CodeHikePre.js'
36
10
  import { Link as PolenLink } from '../components/Link.js'
37
11
  import { Logo } from '../components/Logo.js'
38
12
  import { NotFound } from '../components/NotFound.js'
@@ -40,22 +14,14 @@ import { ThemeToggle } from '../components/ThemeToggle.js'
40
14
  import { ThemeProvider, useTheme } from '../contexts/ThemeContext.js'
41
15
  import { changelog } from './changelog.js'
42
16
  import { index } from './index.js'
17
+ import { pages } from './pages.js'
43
18
  import { reference } from './reference.js'
44
19
 
45
20
  export const Component = () => {
46
- const schema = PROJECT_DATA.schema?.versions[0]?.after || null
47
-
48
- // Make schema available globally for MDX components
49
- if (typeof window !== `undefined` && schema) {
50
- ;(window as any).__POLEN_GRAPHQL_SCHEMA__ = schema
51
- }
52
-
53
21
  return (
54
22
  <>
55
23
  <ThemeProvider>
56
- <GraphQLSchemaProvider schema={schema}>
57
- <Layout />
58
- </GraphQLSchemaProvider>
24
+ <Layout />
59
25
  </ThemeProvider>
60
26
  <ScrollRestoration />
61
27
  </>
@@ -105,82 +71,15 @@ const Layout = () => {
105
71
  py={{ initial: `4`, sm: `4`, md: `0` }}
106
72
  >
107
73
  {header}
108
- <MDXProvider
109
- components={{
110
- // Map markdown elements to Radix with spacing
111
- p: (props) => <Text as='p' mb='4' {...props} />,
112
- h1: (props) => <Heading size='8' mt='6' mb='4' {...props} />,
113
- h2: (props) => <Heading size='7' mt='6' mb='3' {...props} />,
114
- h3: (props) => <Heading size='6' mt='5' mb='3' {...props} />,
115
- h4: (props) => <Heading size='5' mt='5' mb='2' {...props} />,
116
- h5: (props) => <Heading size='4' mt='4' mb='2' {...props} />,
117
- h6: (props) => <Heading size='3' mt='4' mb='2' {...props} />,
118
- strong: Strong,
119
- em: Em,
120
- code: Code,
121
- blockquote: (props) => <Quote my='4' {...props} />,
122
- a: Link,
123
- hr: (props) => <Separator my='6' {...props} />,
124
- pre: Pre,
125
- table: Table.Root,
126
- thead: Table.Header,
127
- tbody: Table.Body,
128
- tr: Table.Row,
129
- th: Table.ColumnHeaderCell,
130
- td: Table.Cell,
131
- // Lists need spacing too
132
- ul: (props) => <Box as='ul' mb='4' style={{ paddingLeft: '1.5rem' }} {...props} />,
133
- ol: (props) => <Box as='ol' mb='4' style={{ paddingLeft: '1.5rem' }} {...props} />,
134
- li: (props) => <Box as='li' mb='2' {...props} />,
135
-
136
- // Direct Radix components for MDX
137
- Badge,
138
- Button,
139
- // @ts-expect-error
140
- Callout,
141
- Card,
142
- // @ts-expect-error
143
- DataList,
144
- // @ts-expect-error
145
- Tabs,
146
- Tooltip,
147
-
148
- // Code Hike component
149
- CodeBlock,
150
- }}
151
- >
152
- <Outlet />
153
- </MDXProvider>
74
+ <Outlet />
154
75
  </Box>
155
76
  </Theme>
156
77
  )
157
78
  }
158
79
 
159
- const PagesLayout = () => {
160
- const location = useLocation() // Add this line
161
-
162
- // Build sidebar from pages catalog
163
- // Get the top-level path segment (e.g., '/guide/foo' -> '/guide')
164
- const pathSegments = location.pathname.split('/').filter(Boolean)
165
- const topLevelPath = pathSegments[0] ? `/${pathSegments[0]}` : '/'
166
-
167
- // Get the sidebar for this section
168
- const sidebar = PROJECT_DATA_PAGES_CATALOG.sidebarIndex[topLevelPath]?.items || []
169
-
170
- return (
171
- <SidebarLayout sidebar={sidebar}>
172
- <Outlet />
173
- </SidebarLayout>
174
- )
175
- }
176
-
177
80
  const children: ReactRouter.RouteObject[] = [
178
81
  index,
179
- {
180
- // Pathless layout route - doesn't affect URL paths
181
- Component: PagesLayout,
182
- children: [...routes], // All MDX page routes go here
183
- },
82
+ pages,
184
83
  ]
185
84
 
186
85
  //
@@ -192,7 +91,7 @@ const children: ReactRouter.RouteObject[] = [
192
91
  //
193
92
  //
194
93
 
195
- if (PROJECT_DATA.schema) {
94
+ if (PROJECT_SCHEMA) {
196
95
  children.push(changelog)
197
96
  children.push(reference)
198
97
  }
@@ -206,7 +105,7 @@ if (PROJECT_DATA.schema) {
206
105
  //
207
106
  //
208
107
 
209
- const notFoundRoute = createRoute({
108
+ const notFoundRoute = route({
210
109
  id: `*_not_found`,
211
110
  path: `*`,
212
111
  Component: NotFound,
@@ -223,7 +122,7 @@ children.push(notFoundRoute)
223
122
  //
224
123
  //
225
124
 
226
- export const root = createRoute({
125
+ export const root = route({
227
126
  path: `/`,
228
127
  Component,
229
128
  children,
@@ -1,7 +1,6 @@
1
1
  import { Hono } from '#dep/hono/index'
2
2
  import { createHtmlTransformer, type HtmlTransformer } from '#lib/html-utils/html-transformer'
3
3
  import { serveStatic } from '@hono/node-server/serve-static'
4
- import PROJECT_DATA from 'virtual:polen/project/data.jsonsuper'
5
4
  import viteClientAssetManifest from 'virtual:polen/vite/client/manifest'
6
5
  import { injectManifestIntoHtml } from './manifest.js'
7
6
  import { PageMiddleware } from './middleware/page.js'
@@ -9,16 +8,60 @@ import { UnsupportedAssetsMiddleware } from './middleware/unsupported-assets.js'
9
8
  import { createPolenDataInjector } from './transformers/inject-polen-data.js'
10
9
  import { createThemeInitInjector } from './transformers/inject-theme-init.js'
11
10
 
11
+ export type App = Hono.Hono
12
+
12
13
  export interface AppHooks {
13
14
  transformHtml?: HtmlTransformer[]
14
15
  }
15
16
 
16
17
  export interface AppOptions {
17
18
  hooks?: AppHooks
19
+ paths: {
20
+ base: string
21
+ assets: {
22
+ /**
23
+ * Directory path for serving static assets.
24
+ * MUST be a relative path from process.cwd() due to @hono/node-server constraints.
25
+ * Absolute paths are NOT supported by the serveStatic middleware.
26
+ *
27
+ * @example './node_modules/.vite/polen-assets'
28
+ * @example '../../../polen/node_modules/.vite/polen-assets'
29
+ * @example './dist/assets'
30
+ */
31
+ directory: string
32
+ /**
33
+ * URL route prefix for serving assets
34
+ * @example '/assets'
35
+ */
36
+ route: string
37
+ }
38
+ }
18
39
  }
19
40
 
20
- export const createApp = (options: AppOptions = {}) => {
21
- const app = new Hono.Hono()
41
+ export const createApp = (options: AppOptions) => {
42
+ const app = new Hono.Hono().basePath(options.paths.base)
43
+
44
+ // Static file serving
45
+ app.use(`*`, UnsupportedAssetsMiddleware())
46
+
47
+ const assetsRoutePattern = `${options.paths.assets.route}/*`
48
+
49
+ app.use(
50
+ assetsRoutePattern,
51
+ serveStatic({
52
+ root: options.paths.assets.directory,
53
+ rewriteRequestPath: (path) => {
54
+ // When basePath is set, the full path including base is passed here
55
+ // We need to strip both the base path and the assets route
56
+ const basePath = options.paths.base === '/' ? '' : options.paths.base
57
+ const fullPrefix = `${basePath}${options.paths.assets.route}`
58
+ return path.replace(new RegExp(`^${fullPrefix}`), '')
59
+ },
60
+ onNotFound(path) {
61
+ console.log('not found', path)
62
+ },
63
+ }),
64
+ )
22
65
 
23
66
  // Collect all HTML transformers
24
67
  const htmlTransformers: HtmlTransformer[] = [
@@ -29,21 +72,11 @@ export const createApp = (options: AppOptions = {}) => {
29
72
  ...(options.hooks?.transformHtml || []),
30
73
  ]
31
74
 
32
- // Core middleware
33
- app.use(`*`, UnsupportedAssetsMiddleware())
34
-
35
- // Production-specific setup
36
75
  if (__BUILDING__) {
37
76
  // Add manifest transformer
38
77
  htmlTransformers.push(createHtmlTransformer((html, ___ctx) => {
39
- return injectManifestIntoHtml(html, viteClientAssetManifest, PROJECT_DATA.basePath)
78
+ return injectManifestIntoHtml(html, viteClientAssetManifest, options.paths.base)
40
79
  }))
41
-
42
- // Static file serving
43
- app.use(
44
- PROJECT_DATA.server.static.route,
45
- serveStatic({ root: PROJECT_DATA.server.static.directory }),
46
- )
47
80
  }
48
81
 
49
82
  app.all(`*`, PageMiddleware(htmlTransformers))
@@ -12,7 +12,15 @@ if (__BUILDING__) {
12
12
  break
13
13
  case `ssr`:
14
14
  const port = process.env[`PORT`] ? parseInt(process.env[`PORT`]) : PROJECT_DATA.server.port
15
- const app = createApp()
15
+ const app = createApp({
16
+ paths: {
17
+ assets: {
18
+ directory: PROJECT_DATA.paths.project.relative.build.relative.assets.root,
19
+ route: PROJECT_DATA.server.routes.assets,
20
+ },
21
+ base: PROJECT_DATA.basePath,
22
+ },
23
+ })
16
24
  serve({ fetch: app.fetch, port })
17
25
  break
18
26
  case `spa`:
@@ -14,7 +14,7 @@ import { getRoutesPaths } from './get-route-paths.js'
14
14
  export const generate = async (view: ReactRouter.StaticHandler) => {
15
15
  const debug = debugPolen.sub(`ssg`)
16
16
 
17
- const routePaths = getRoutesPaths()
17
+ const routePaths = await getRoutesPaths()
18
18
  const totalPaths = routePaths.length
19
19
  debug(`start`, { totalPaths })
20
20
 
@@ -76,7 +76,7 @@ export const generate = async (view: ReactRouter.StaticHandler) => {
76
76
 
77
77
  const ssgResult = await Hono.SSG.toSSG(batchApp, NodeFs, {
78
78
  concurrency: 5, // Reduced concurrency for memory efficiency
79
- dir: PROJECT_DATA.paths.relative.build.root,
79
+ dir: PROJECT_DATA.paths.project.relative.build.root,
80
80
  })
81
81
 
82
82
  if (!ssgResult.success) {