polen 0.10.0-next.13 → 0.10.0-next.15

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 (942) hide show
  1. package/README.md +13 -89
  2. package/build/api/api.d.ts +4 -4
  3. package/build/api/api.js +4 -4
  4. package/build/api/builder/builder.js +1 -9
  5. package/build/api/builder/builder.js.map +1 -1
  6. package/build/api/builder/index.d.ts +1 -1
  7. package/build/api/builder/index.js +1 -1
  8. package/build/api/config/config.d.ts +4 -4
  9. package/build/api/config/config.js +4 -4
  10. package/build/api/config/configurator.d.ts +89 -9
  11. package/build/api/config/configurator.d.ts.map +1 -1
  12. package/build/api/config/configurator.js +5 -5
  13. package/build/api/config/configurator.js.map +1 -1
  14. package/build/api/config/define.d.ts +1 -1
  15. package/build/api/config/index.d.ts +1 -1
  16. package/build/api/config/index.js +1 -1
  17. package/build/api/config/load.d.ts +1 -1
  18. package/build/api/config/load.d.ts.map +1 -1
  19. package/build/api/config/load.js +1 -12
  20. package/build/api/config/load.js.map +1 -1
  21. package/build/api/config/merge.d.ts +1 -1
  22. package/build/api/config/merge.d.ts.map +1 -1
  23. package/build/api/config/merge.js +1 -3
  24. package/build/api/config/merge.js.map +1 -1
  25. package/build/api/config-resolver/config-resolver.d.ts +2 -2
  26. package/build/api/config-resolver/config-resolver.js +2 -2
  27. package/build/api/config-resolver/index.d.ts +1 -1
  28. package/build/api/config-resolver/index.js +1 -1
  29. package/build/api/config-resolver/resolve.d.ts +3 -3
  30. package/build/api/config-resolver/resolve.js +4 -4
  31. package/build/api/config-resolver/vite.d.ts +1 -1
  32. package/build/api/content/$$.d.ts +6 -6
  33. package/build/api/content/$$.js +6 -6
  34. package/build/api/content/$.d.ts +1 -1
  35. package/build/api/content/$.js +1 -1
  36. package/build/api/content/navbar.d.ts +1 -1
  37. package/build/api/content/navbar.js +2 -2
  38. package/build/api/content/page.d.ts +1 -1
  39. package/build/api/content/scan.d.ts +1 -1
  40. package/build/api/content/scan.js +7 -7
  41. package/build/api/content/sidebar.d.ts +5 -5
  42. package/build/api/content/sidebar.d.ts.map +1 -1
  43. package/build/api/content/sidebar.js +14 -14
  44. package/build/api/content/sidebar.js.map +1 -1
  45. package/build/api/index.d.ts +1 -1
  46. package/build/api/index.js +1 -1
  47. package/build/api/schema/data-sources/data-sources.d.ts +3 -3
  48. package/build/api/schema/data-sources/data-sources.js +3 -3
  49. package/build/api/schema/data-sources/index.d.ts +1 -1
  50. package/build/api/schema/data-sources/index.js +1 -1
  51. package/build/api/schema/data-sources/memory/memory.d.ts +36 -1
  52. package/build/api/schema/data-sources/memory/memory.d.ts.map +1 -1
  53. package/build/api/schema/data-sources/memory/memory.js.map +1 -1
  54. package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.js +0 -1
  55. package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.js.map +1 -1
  56. package/build/api/schema/data-sources/schema-directory/file-name-expression/index.d.ts +1 -1
  57. package/build/api/schema/data-sources/schema-directory/file-name-expression/index.js +1 -1
  58. package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts +30 -1
  59. package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts.map +1 -1
  60. package/build/api/schema/data-sources/schema-directory/schema-directory.js +1 -1
  61. package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
  62. package/build/api/schema/data-sources/schema-file/schema-file.d.ts +20 -1
  63. package/build/api/schema/data-sources/schema-file/schema-file.d.ts.map +1 -1
  64. package/build/api/schema/data-sources/schema-file/schema-file.js.map +1 -1
  65. package/build/api/schema/index.d.ts +1 -1
  66. package/build/api/schema/index.js +1 -1
  67. package/build/api/schema/read.d.ts +43 -2
  68. package/build/api/schema/read.d.ts.map +1 -1
  69. package/build/api/schema/read.js +1 -1
  70. package/build/api/schema/read.js.map +1 -1
  71. package/build/api/schema/schema.d.ts +2 -2
  72. package/build/api/schema/schema.js +2 -2
  73. package/build/api/schema-augmentation/augmentations/description.d.ts +1 -1
  74. package/build/api/schema-augmentation/augmentations/description.js +1 -1
  75. package/build/api/schema-augmentation/index.d.ts +1 -1
  76. package/build/api/schema-augmentation/index.js +1 -1
  77. package/build/api/schema-augmentation/schema-augmentation.d.ts +1 -1
  78. package/build/api/schema-augmentation/schema-augmentation.d.ts.map +1 -1
  79. package/build/api/schema-augmentation/schema-augmentation.js +1 -2
  80. package/build/api/schema-augmentation/schema-augmentation.js.map +1 -1
  81. package/build/api/server/report-error.js +7 -5
  82. package/build/api/server/report-error.js.map +1 -1
  83. package/build/api/singletons/markdown/index.d.ts +1 -1
  84. package/build/api/singletons/markdown/index.js +1 -1
  85. package/build/api/singletons/markdown/markdown.d.ts.map +1 -1
  86. package/build/api/singletons/markdown/markdown.js +4 -22
  87. package/build/api/singletons/markdown/markdown.js.map +1 -1
  88. package/build/api/static/index.d.ts +1 -1
  89. package/build/api/static/index.js +1 -1
  90. package/build/api/static/manifest.js +3 -3
  91. package/build/api/static/rebase.d.ts +2 -2
  92. package/build/api/static/rebase.js +8 -8
  93. package/build/api/static/rebase.js.map +1 -1
  94. package/build/api/static/static.d.ts +2 -2
  95. package/build/api/static/static.js +2 -2
  96. package/build/api/utils/asset-url/index.d.ts +1 -1
  97. package/build/api/utils/asset-url/index.js +1 -1
  98. package/build/api/vite/logger.js +5 -5
  99. package/build/api/vite/plugins/{branding/index.d.ts → branding.d.ts} +1 -1
  100. package/build/api/vite/plugins/branding.d.ts.map +1 -0
  101. package/build/api/vite/plugins/{branding/index.js → branding.js} +9 -9
  102. package/build/api/vite/plugins/branding.js.map +1 -0
  103. package/build/api/vite/plugins/build.d.ts.map +1 -1
  104. package/build/api/vite/plugins/build.js +22 -24
  105. package/build/api/vite/plugins/build.js.map +1 -1
  106. package/build/api/vite/plugins/core.d.ts +2 -0
  107. package/build/api/vite/plugins/core.d.ts.map +1 -1
  108. package/build/api/vite/plugins/core.js +39 -42
  109. package/build/api/vite/plugins/core.js.map +1 -1
  110. package/build/api/vite/plugins/main.d.ts.map +1 -1
  111. package/build/api/vite/plugins/main.js +25 -23
  112. package/build/api/vite/plugins/main.js.map +1 -1
  113. package/build/api/vite/plugins/pages.d.ts +3 -5
  114. package/build/api/vite/plugins/pages.d.ts.map +1 -1
  115. package/build/api/vite/plugins/pages.js +18 -46
  116. package/build/api/vite/plugins/pages.js.map +1 -1
  117. package/build/api/vite/plugins/serve.d.ts.map +1 -1
  118. package/build/api/vite/plugins/serve.js +59 -10
  119. package/build/api/vite/plugins/serve.js.map +1 -1
  120. package/build/cli/commands/build.js +0 -1
  121. package/build/cli/commands/build.js.map +1 -1
  122. package/build/cli/commands/config/$default.d.ts +2 -0
  123. package/build/cli/commands/config/$default.d.ts.map +1 -0
  124. package/build/cli/commands/config/$default.js +7 -0
  125. package/build/cli/commands/config/$default.js.map +1 -0
  126. package/build/cli/commands/config/create.d.ts +2 -0
  127. package/build/cli/commands/config/create.d.ts.map +1 -0
  128. package/build/cli/commands/config/create.js +21 -0
  129. package/build/cli/commands/config/create.js.map +1 -0
  130. package/build/cli/commands/config.d.ts +3 -0
  131. package/build/cli/commands/config.d.ts.map +1 -0
  132. package/build/cli/commands/config.js +5 -0
  133. package/build/cli/commands/config.js.map +1 -0
  134. package/build/cli/commands/create.js +2 -3
  135. package/build/cli/commands/create.js.map +1 -1
  136. package/build/cli/commands/dev.js +0 -1
  137. package/build/cli/commands/dev.js.map +1 -1
  138. package/build/cli/commands/open.js +0 -1
  139. package/build/cli/commands/open.js.map +1 -1
  140. package/build/cli/commands/static/rebase.js +0 -1
  141. package/build/cli/commands/static/rebase.js.map +1 -1
  142. package/build/cli/commands/static.js +1 -1
  143. package/build/dep/graphql-inspector/index.d.ts +1 -1
  144. package/build/dep/graphql-inspector/index.js +1 -1
  145. package/build/dep/hono/hono.d.ts +1 -1
  146. package/build/dep/hono/hono.js +1 -1
  147. package/build/dep/hono/index.d.ts +1 -1
  148. package/build/dep/hono/index.js +1 -1
  149. package/build/dep/superjson/index.d.ts +1 -1
  150. package/build/dep/superjson/index.js +1 -1
  151. package/build/dep/tiny-globby/index.d.ts +1 -1
  152. package/build/dep/tiny-globby/index.js +1 -1
  153. package/build/dep/vite/index.d.ts +1 -1
  154. package/build/dep/vite/index.js +1 -1
  155. package/build/exports/components.d.ts +3 -3
  156. package/build/exports/components.d.ts.map +1 -1
  157. package/build/exports/components.js +3 -3
  158. package/build/exports/components.js.map +1 -1
  159. package/build/exports/index.d.ts +1 -1
  160. package/build/exports/index.js +1 -1
  161. package/build/lib/apple-touch-icon/index.d.ts +1 -1
  162. package/build/lib/apple-touch-icon/index.js +1 -1
  163. package/build/lib/errors/ContextualAggregateError.d.ts +1 -1
  164. package/build/lib/errors/ContextualAggregateError.js +1 -1
  165. package/build/lib/errors/ContextualError.d.ts +1 -1
  166. package/build/lib/errors/ErrorInternal.d.ts +2 -2
  167. package/build/lib/errors/ErrorInternal.js +1 -1
  168. package/build/lib/errors/errors.d.ts +4 -4
  169. package/build/lib/errors/errors.js +4 -4
  170. package/build/lib/errors/index.d.ts +1 -1
  171. package/build/lib/errors/index.js +1 -1
  172. package/build/lib/errors/types.d.ts +1 -1
  173. package/build/lib/extensible-data/index.d.ts +1 -1
  174. package/build/lib/extensible-data/index.js +1 -1
  175. package/build/lib/favicon/index.d.ts +1 -1
  176. package/build/lib/favicon/index.js +1 -1
  177. package/build/lib/file-router/diagnostic-reporter.d.ts +1 -1
  178. package/build/lib/file-router/diagnostic-reporter.js +9 -9
  179. package/build/lib/file-router/diagnostic-reporter.js.map +1 -1
  180. package/build/lib/file-router/file-router.d.ts +3 -3
  181. package/build/lib/file-router/file-router.js +3 -3
  182. package/build/lib/file-router/index.d.ts +1 -1
  183. package/build/lib/file-router/index.js +1 -1
  184. package/build/lib/file-router/linter.d.ts +5 -5
  185. package/build/lib/file-router/linter.js +7 -7
  186. package/build/lib/file-router/scan.d.ts +2 -2
  187. package/build/lib/file-router/scan.js +3 -3
  188. package/build/lib/grafaid/_Nodes.d.ts +1 -1
  189. package/build/lib/grafaid/_Nodes.js +1 -1
  190. package/build/lib/grafaid/document/OperationTypeNode.d.ts +1 -1
  191. package/build/lib/grafaid/document/OperationTypeNode.js +1 -1
  192. package/build/lib/grafaid/document/kind.d.ts +1 -1
  193. package/build/lib/grafaid/document/kind.js +1 -1
  194. package/build/lib/grafaid/document.d.ts +4 -4
  195. package/build/lib/grafaid/document.js +6 -6
  196. package/build/lib/grafaid/grafaid.d.ts +4 -4
  197. package/build/lib/grafaid/grafaid.js +4 -4
  198. package/build/lib/grafaid/graphql.d.ts +2 -2
  199. package/build/lib/grafaid/graphql.js +2 -2
  200. package/build/lib/grafaid/http/__.d.ts +1 -1
  201. package/build/lib/grafaid/http/__.js +1 -1
  202. package/build/lib/grafaid/http/http.js +1 -1
  203. package/build/lib/grafaid/index.d.ts +1 -1
  204. package/build/lib/grafaid/index.js +1 -1
  205. package/build/lib/grafaid/schema/KindMap/_.d.ts +3 -3
  206. package/build/lib/grafaid/schema/KindMap/_.js +4 -4
  207. package/build/lib/grafaid/schema/KindMap/__.d.ts +2 -2
  208. package/build/lib/grafaid/schema/KindMap/__.js +1 -1
  209. package/build/lib/grafaid/schema/OperationType/__.d.ts +2 -2
  210. package/build/lib/grafaid/schema/OperationType/__.js +1 -1
  211. package/build/lib/grafaid/schema/RootDetails.d.ts +3 -3
  212. package/build/lib/grafaid/schema/RootDetails.js +2 -2
  213. package/build/lib/grafaid/schema/RootTypeMap.d.ts +2 -2
  214. package/build/lib/grafaid/schema/RootTypeMap.js +2 -2
  215. package/build/lib/grafaid/schema/nodes-like.d.ts +1 -1
  216. package/build/lib/grafaid/schema/nodes-like.js +1 -1
  217. package/build/lib/grafaid/schema/schema.d.ts +14 -14
  218. package/build/lib/grafaid/schema/schema.js +15 -15
  219. package/build/lib/grafaid/schema/type-kind-name.d.ts +1 -1
  220. package/build/lib/grafaid/schema/type-kind-name.js +1 -1
  221. package/build/lib/grafaid/schema/type.d.ts +1 -1
  222. package/build/lib/grafaid/schema/typeGuards.js +1 -1
  223. package/build/lib/grafaid-old/grafaid.d.ts +1 -1
  224. package/build/lib/grafaid-old/grafaid.js +1 -1
  225. package/build/lib/grafaid-old/index.d.ts +1 -1
  226. package/build/lib/grafaid-old/index.js +1 -1
  227. package/build/lib/graphql-change/index.d.ts +1 -1
  228. package/build/lib/graphql-change/index.js +1 -1
  229. package/build/lib/graphql-changeset/index.d.ts +1 -1
  230. package/build/lib/graphql-changeset/index.js +1 -1
  231. package/build/lib/graphql-document/$$.d.ts +4 -4
  232. package/build/lib/graphql-document/$$.js +4 -4
  233. package/build/lib/graphql-document/$.d.ts +1 -1
  234. package/build/lib/graphql-document/$.js +1 -1
  235. package/build/lib/graphql-document/analysis.d.ts +1 -1
  236. package/build/lib/graphql-document/analysis.js +46 -46
  237. package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +1 -1
  238. package/build/lib/graphql-document/components/GraphQLDocument.js +46 -27
  239. package/build/lib/graphql-document/components/GraphQLDocument.js.map +1 -1
  240. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +3 -3
  241. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +1 -1
  242. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +14 -30
  243. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +1 -1
  244. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +2 -2
  245. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +1 -1
  246. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +26 -24
  247. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +1 -1
  248. package/build/lib/graphql-document/components/IdentifierLink.d.ts +3 -3
  249. package/build/lib/graphql-document/components/IdentifierLink.js +22 -22
  250. package/build/lib/graphql-document/components/IdentifierLink.js.map +1 -1
  251. package/build/lib/graphql-document/components/graphql-document-styles.d.ts +1 -1
  252. package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +1 -1
  253. package/build/lib/graphql-document/components/graphql-document-styles.js +0 -23
  254. package/build/lib/graphql-document/components/graphql-document-styles.js.map +1 -1
  255. package/build/lib/graphql-document/components/index.d.ts +4 -5
  256. package/build/lib/graphql-document/components/index.d.ts.map +1 -1
  257. package/build/lib/graphql-document/components/index.js +4 -5
  258. package/build/lib/graphql-document/components/index.js.map +1 -1
  259. package/build/lib/graphql-document/example.d.ts +1 -1
  260. package/build/lib/graphql-document/example.js +36 -36
  261. package/build/lib/graphql-document/example.js.map +1 -1
  262. package/build/lib/graphql-document/graphql-document.d.ts +9 -9
  263. package/build/lib/graphql-document/graphql-document.d.ts.map +1 -1
  264. package/build/lib/graphql-document/graphql-document.js +9 -9
  265. package/build/lib/graphql-document/graphql-document.js.map +1 -1
  266. package/build/lib/graphql-document/positioning-simple.d.ts +1 -6
  267. package/build/lib/graphql-document/positioning-simple.d.ts.map +1 -1
  268. package/build/lib/graphql-document/positioning-simple.js +96 -108
  269. package/build/lib/graphql-document/positioning-simple.js.map +1 -1
  270. package/build/lib/graphql-document/schema-integration.d.ts +5 -5
  271. package/build/lib/graphql-document/schema-integration.d.ts.map +1 -1
  272. package/build/lib/graphql-document/schema-integration.js +22 -22
  273. package/build/lib/graphql-document/schema-integration.js.map +1 -1
  274. package/build/lib/graphql-document/types.d.ts +4 -4
  275. package/build/lib/graphql-schema-loader/index.d.ts +1 -1
  276. package/build/lib/graphql-schema-loader/index.js +1 -1
  277. package/build/lib/helpers.js +1 -1
  278. package/build/lib/hono-aid/index.d.ts +1 -1
  279. package/build/lib/hono-aid/index.js +1 -1
  280. package/build/lib/html-utils/html-transformer.d.ts +4 -0
  281. package/build/lib/html-utils/html-transformer.d.ts.map +1 -0
  282. package/build/lib/html-utils/html-transformer.js +3 -0
  283. package/build/lib/html-utils/html-transformer.js.map +1 -0
  284. package/build/lib/html-utils/inject-global-data.d.ts +41 -0
  285. package/build/lib/html-utils/inject-global-data.d.ts.map +1 -0
  286. package/build/lib/html-utils/inject-global-data.js +65 -0
  287. package/build/lib/html-utils/inject-global-data.js.map +1 -0
  288. package/build/lib/kit-temp.d.ts +169 -2
  289. package/build/lib/kit-temp.d.ts.map +1 -1
  290. package/build/lib/kit-temp.js +270 -6
  291. package/build/lib/kit-temp.js.map +1 -1
  292. package/build/lib/kit-temp.test-d.js +16 -16
  293. package/build/lib/kit-temp.test-d.js.map +1 -1
  294. package/build/lib/mask/$$.d.ts +2 -2
  295. package/build/lib/mask/$$.js +2 -2
  296. package/build/lib/mask/$.d.ts +1 -1
  297. package/build/lib/mask/$.js +1 -1
  298. package/build/lib/mask/apply.d.ts +9 -9
  299. package/build/lib/mask/apply.d.ts.map +1 -1
  300. package/build/lib/mask/apply.js +3 -3
  301. package/build/lib/mask/apply.js.map +1 -1
  302. package/build/lib/mask/mask.d.ts +7 -7
  303. package/build/lib/mask/mask.d.ts.map +1 -1
  304. package/build/lib/mask/mask.js +12 -12
  305. package/build/lib/mask/mask.test-d.js +14 -14
  306. package/build/lib/mask/mask.test-d.js.map +1 -1
  307. package/build/lib/mutation-type.js +3 -3
  308. package/build/lib/path-map/$$.d.ts +7 -0
  309. package/build/lib/path-map/$$.d.ts.map +1 -0
  310. package/build/lib/path-map/$$.js +7 -0
  311. package/build/lib/path-map/$$.js.map +1 -0
  312. package/build/lib/path-map/$.d.ts +7 -0
  313. package/build/lib/path-map/$.d.ts.map +1 -0
  314. package/build/lib/path-map/$.js +7 -0
  315. package/build/lib/path-map/$.js.map +1 -0
  316. package/build/lib/path-map/path-map.d.ts +110 -0
  317. package/build/lib/path-map/path-map.d.ts.map +1 -0
  318. package/build/lib/path-map/path-map.js +126 -0
  319. package/build/lib/path-map/path-map.js.map +1 -0
  320. package/build/lib/react-router-aid/index.d.ts +1 -1
  321. package/build/lib/react-router-aid/index.js +1 -1
  322. package/build/lib/react-router-aid/react-router-aid.d.ts +1 -1
  323. package/build/lib/react-router-aid/react-router-aid.js +1 -1
  324. package/build/lib/react-router-loader/react-router-loader.d.ts.map +1 -1
  325. package/build/lib/react-router-loader/react-router-loader.js +1 -4
  326. package/build/lib/react-router-loader/react-router-loader.js.map +1 -1
  327. package/build/lib/stack-processor/index.d.ts +1 -1
  328. package/build/lib/stack-processor/index.js +1 -1
  329. package/build/lib/stack-processor/stack-processor.d.ts.map +1 -1
  330. package/build/lib/stack-processor/stack-processor.js +0 -1
  331. package/build/lib/stack-processor/stack-processor.js.map +1 -1
  332. package/build/lib/superjson-codec/codecs/graphql-schema.d.ts +1 -1
  333. package/build/lib/superjson-codec/codecs/graphql-schema.js +1 -1
  334. package/build/lib/superjson-codec/exports.d.ts +2 -2
  335. package/build/lib/superjson-codec/exports.js +2 -2
  336. package/build/lib/superjson-codec/index.d.ts +1 -1
  337. package/build/lib/superjson-codec/index.js +1 -1
  338. package/build/lib/task/$$.d.ts +2 -2
  339. package/build/lib/task/$$.js +2 -2
  340. package/build/lib/task/$.d.ts +1 -1
  341. package/build/lib/task/$.js +1 -1
  342. package/build/lib/task/report.d.ts +1 -1
  343. package/build/lib/task/task.d.ts +1 -1
  344. package/build/lib/task/task.js +2 -2
  345. package/build/lib/theme/$.d.ts +2 -0
  346. package/build/lib/theme/$.d.ts.map +1 -0
  347. package/build/lib/theme/$.js +3 -0
  348. package/build/lib/theme/$.js.map +1 -0
  349. package/build/lib/theme/theme.d.ts +68 -0
  350. package/build/lib/theme/theme.d.ts.map +1 -0
  351. package/build/lib/theme/theme.js +123 -0
  352. package/build/lib/theme/theme.js.map +1 -0
  353. package/build/lib/vite-plugin-json/index.d.ts +1 -1
  354. package/build/lib/vite-plugin-json/index.js +1 -1
  355. package/build/lib/vite-plugin-json/vite-plugin-json.js +3 -4
  356. package/build/lib/vite-plugin-json/vite-plugin-json.js.map +1 -1
  357. package/build/lib/vite-plugin-mdx/index.d.ts +1 -1
  358. package/build/lib/vite-plugin-mdx/index.js +1 -1
  359. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.d.ts +1 -1
  360. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.d.ts.map +1 -1
  361. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.js +2 -6
  362. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.js.map +1 -1
  363. package/build/lib/vite-plugin-reactive-data/index.d.ts +1 -1
  364. package/build/lib/vite-plugin-reactive-data/index.js +1 -1
  365. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +2 -9
  366. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts.map +1 -1
  367. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js +48 -55
  368. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js.map +1 -1
  369. package/build/lib/vite-plugins/index.d.ts +1 -1
  370. package/build/lib/vite-plugins/index.js +1 -1
  371. package/build/lib/vite-plugins/vite-plugins.d.ts +1 -1
  372. package/build/lib/vite-plugins/vite-plugins.js +1 -1
  373. package/build/lib/vite-virtual/identified-loader.d.ts +2 -2
  374. package/build/lib/vite-virtual/identified-loader.js +2 -2
  375. package/build/lib/vite-virtual/identifier.js +1 -1
  376. package/build/lib/vite-virtual/index.d.ts +1 -1
  377. package/build/lib/vite-virtual/index.js +1 -1
  378. package/build/lib/vite-virtual/vite-virtual.d.ts +3 -3
  379. package/build/lib/vite-virtual/vite-virtual.js +3 -3
  380. package/build/package-paths.d.ts +18 -6
  381. package/build/package-paths.d.ts.map +1 -1
  382. package/build/package-paths.js +19 -6
  383. package/build/package-paths.js.map +1 -1
  384. package/build/project-data.d.ts +3 -1
  385. package/build/project-data.d.ts.map +1 -1
  386. package/build/sandbox.js +9 -9
  387. package/build/template/components/ArgumentList.js +1 -1
  388. package/build/template/components/ArgumentList.js.map +1 -1
  389. package/build/template/components/ArgumentListAnnotation.js +2 -2
  390. package/build/template/components/ArgumentListAnnotation.js.map +1 -1
  391. package/build/template/components/Changelog.d.ts +1 -1
  392. package/build/template/components/Changelog.js +1 -1
  393. package/build/template/components/CodeBlock.d.ts +0 -8
  394. package/build/template/components/CodeBlock.d.ts.map +1 -1
  395. package/build/template/components/CodeBlock.js +3 -38
  396. package/build/template/components/CodeBlock.js.map +1 -1
  397. package/build/template/components/CodeBlockEnhancer.js +41 -41
  398. package/build/template/components/CodeBlockEnhancer.js.map +1 -1
  399. package/build/template/components/DeprecationReason.js +1 -1
  400. package/build/template/components/DeprecationReason.js.map +1 -1
  401. package/build/template/components/Description.js +1 -1
  402. package/build/template/components/Description.js.map +1 -1
  403. package/build/template/components/Field.js +4 -4
  404. package/build/template/components/Field.js.map +1 -1
  405. package/build/template/components/FieldList.js +1 -1
  406. package/build/template/components/FieldList.js.map +1 -1
  407. package/build/template/components/FieldListSection.js +1 -1
  408. package/build/template/components/FieldListSection.js.map +1 -1
  409. package/build/template/components/HamburgerMenu.js +11 -11
  410. package/build/template/components/HamburgerMenu.js.map +1 -1
  411. package/build/template/components/Link.d.ts +3 -3
  412. package/build/template/components/Link.d.ts.map +1 -1
  413. package/build/template/components/Link.js +29 -20
  414. package/build/template/components/Link.js.map +1 -1
  415. package/build/template/components/Logo.js +4 -4
  416. package/build/template/components/MDXComponents.d.ts +0 -1
  417. package/build/template/components/MDXComponents.d.ts.map +1 -1
  418. package/build/template/components/MDXComponents.js +1 -59
  419. package/build/template/components/MDXComponents.js.map +1 -1
  420. package/build/template/components/NamedType.js +2 -2
  421. package/build/template/components/NamedType.js.map +1 -1
  422. package/build/template/components/TestComponent.js +2 -2
  423. package/build/template/components/Texts/MinorHeading.js +4 -4
  424. package/build/template/components/Texts/index.d.ts +1 -1
  425. package/build/template/components/Texts/index.js +1 -1
  426. package/build/template/components/Texts/texts.d.ts +1 -1
  427. package/build/template/components/Texts/texts.d.ts.map +1 -1
  428. package/build/template/components/Texts/texts.js +1 -1
  429. package/build/template/components/Texts/texts.js.map +1 -1
  430. package/build/template/components/ThemeToggle.d.ts.map +1 -1
  431. package/build/template/components/ThemeToggle.js +25 -4
  432. package/build/template/components/ThemeToggle.js.map +1 -1
  433. package/build/template/components/TypeAnnotation.js +1 -1
  434. package/build/template/components/TypeAnnotation.js.map +1 -1
  435. package/build/template/components/TypeFieldsLinkList.js +1 -1
  436. package/build/template/components/TypeFieldsLinkList.js.map +1 -1
  437. package/build/template/components/TypeIndex.js +1 -1
  438. package/build/template/components/TypeIndex.js.map +1 -1
  439. package/build/template/components/content/$$.d.ts +1 -1
  440. package/build/template/components/content/$$.d.ts.map +1 -1
  441. package/build/template/components/content/$$.js +1 -1
  442. package/build/template/components/content/$$.js.map +1 -1
  443. package/build/template/components/content/GraphQLDocumentWithSchema.d.ts +2 -2
  444. package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +1 -1
  445. package/build/template/components/content/GraphQLDocumentWithSchema.js +1 -4
  446. package/build/template/components/content/GraphQLDocumentWithSchema.js.map +1 -1
  447. package/build/template/components/content/GraphQLDocumentWrapper.d.ts +2 -2
  448. package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +1 -1
  449. package/build/template/components/content/GraphQLDocumentWrapper.js +13 -27
  450. package/build/template/components/content/GraphQLDocumentWrapper.js.map +1 -1
  451. package/build/template/components/graphql/graphql.d.ts +2 -2
  452. package/build/template/components/graphql/graphql.d.ts.map +1 -1
  453. package/build/template/components/graphql/graphql.js +2 -2
  454. package/build/template/components/graphql/graphql.js.map +1 -1
  455. package/build/template/components/graphql/index.d.ts +1 -1
  456. package/build/template/components/graphql/index.d.ts.map +1 -1
  457. package/build/template/components/graphql/index.js +1 -1
  458. package/build/template/components/graphql/index.js.map +1 -1
  459. package/build/template/components/graphql/type-kind-icon.d.ts.map +1 -1
  460. package/build/template/components/graphql/type-kind-icon.js +1 -2
  461. package/build/template/components/graphql/type-kind-icon.js.map +1 -1
  462. package/build/template/components/graphql/type-link.js +3 -3
  463. package/build/template/components/graphql/type-link.js.map +1 -1
  464. package/build/template/components/sidebar/Sidebar.js +1 -1
  465. package/build/template/components/sidebar/Sidebar.js.map +1 -1
  466. package/build/template/components/sidebar/SidebarItem.js +6 -6
  467. package/build/template/components/sidebar/SidebarItem.js.map +1 -1
  468. package/build/template/constants.d.ts +17 -0
  469. package/build/template/constants.d.ts.map +1 -0
  470. package/build/template/constants.js +11 -0
  471. package/build/template/constants.js.map +1 -0
  472. package/build/template/contexts/ThemeContext.d.ts +3 -1
  473. package/build/template/contexts/ThemeContext.d.ts.map +1 -1
  474. package/build/template/contexts/ThemeContext.js +50 -22
  475. package/build/template/contexts/ThemeContext.js.map +1 -1
  476. package/build/template/entry.client.d.ts.map +1 -1
  477. package/build/template/entry.client.js +6 -5
  478. package/build/template/entry.client.js.map +1 -1
  479. package/build/template/hooks/useClientOnly.d.ts +9 -0
  480. package/build/template/hooks/useClientOnly.d.ts.map +1 -0
  481. package/build/template/hooks/useClientOnly.js +16 -0
  482. package/build/template/hooks/useClientOnly.js.map +1 -0
  483. package/build/template/routes/changelog.d.ts +1 -1
  484. package/build/template/routes/changelog.js +1 -1
  485. package/build/template/routes/changelog.js.map +1 -1
  486. package/build/template/routes/reference.$type.$field.js +2 -2
  487. package/build/template/routes/reference.$type.$field.js.map +1 -1
  488. package/build/template/routes/reference.$type.js +2 -2
  489. package/build/template/routes/reference.$type.js.map +1 -1
  490. package/build/template/routes/reference.js +2 -2
  491. package/build/template/routes/reference.js.map +1 -1
  492. package/build/template/routes/root.d.ts.map +1 -1
  493. package/build/template/routes/root.js +29 -174
  494. package/build/template/routes/root.js.map +1 -1
  495. package/build/template/routes.js +1 -1
  496. package/build/template/routes.js.map +1 -1
  497. package/build/template/server/app.d.ts +8 -1
  498. package/build/template/server/app.d.ts.map +1 -1
  499. package/build/template/server/app.js +30 -21
  500. package/build/template/server/app.js.map +1 -1
  501. package/build/template/server/create-page-html-response.d.ts +8 -0
  502. package/build/template/server/create-page-html-response.d.ts.map +1 -0
  503. package/build/template/server/{render-page.js → create-page-html-response.js} +42 -18
  504. package/build/template/server/create-page-html-response.js.map +1 -0
  505. package/build/template/server/main.js +4 -3
  506. package/build/template/server/main.js.map +1 -1
  507. package/build/template/server/middleware/page.d.ts +4 -0
  508. package/build/template/server/middleware/page.d.ts.map +1 -0
  509. package/build/template/server/middleware/page.js +15 -0
  510. package/build/template/server/middleware/page.js.map +1 -0
  511. package/build/template/server/middleware/unsupported-assets.d.ts +10 -0
  512. package/build/template/server/middleware/unsupported-assets.d.ts.map +1 -0
  513. package/build/template/server/middleware/unsupported-assets.js +21 -0
  514. package/build/template/server/middleware/unsupported-assets.js.map +1 -0
  515. package/build/template/server/ssg/generate.d.ts.map +1 -1
  516. package/build/template/server/ssg/generate.js +45 -36
  517. package/build/template/server/ssg/generate.js.map +1 -1
  518. package/build/template/server/ssg/get-route-paths.js +1 -1
  519. package/build/template/server/ssg/get-route-paths.js.map +1 -1
  520. package/build/template/server/transformers/inject-polen-data.d.ts +6 -0
  521. package/build/template/server/transformers/inject-polen-data.d.ts.map +1 -0
  522. package/build/template/server/transformers/inject-polen-data.js +28 -0
  523. package/build/template/server/transformers/inject-polen-data.js.map +1 -0
  524. package/build/template/server/transformers/inject-theme-init.d.ts +6 -0
  525. package/build/template/server/transformers/inject-theme-init.d.ts.map +1 -0
  526. package/build/template/server/transformers/inject-theme-init.js +29 -0
  527. package/build/template/server/transformers/inject-theme-init.js.map +1 -0
  528. package/build/template/server/view.js +1 -1
  529. package/build/template/server/view.js.map +1 -1
  530. package/build/template/styles/code-block.css +218 -0
  531. package/package.json +32 -77
  532. package/src/api/api.ts +4 -4
  533. package/src/api/builder/index.ts +1 -1
  534. package/src/api/config/config.ts +4 -4
  535. package/src/api/config/configurator.ts +94 -15
  536. package/src/api/config/define.ts +1 -1
  537. package/src/api/config/index.ts +1 -1
  538. package/src/api/config/load.ts +1 -4
  539. package/src/api/config/merge.ts +1 -2
  540. package/src/api/config-resolver/config-resolver.ts +2 -2
  541. package/src/api/config-resolver/index.ts +1 -1
  542. package/src/api/config-resolver/resolve.ts +4 -4
  543. package/src/api/config-resolver/vite.ts +1 -1
  544. package/src/api/content/$$.ts +6 -6
  545. package/src/api/content/$.test.ts +1 -1
  546. package/src/api/content/$.ts +1 -1
  547. package/src/api/content/navbar.test.ts +2 -2
  548. package/src/api/content/navbar.ts +3 -3
  549. package/src/api/content/page.ts +1 -1
  550. package/src/api/content/scan.ts +8 -8
  551. package/src/api/content/sidebar.test.ts +3 -3
  552. package/src/api/content/sidebar.ts +20 -20
  553. package/src/api/index.ts +1 -1
  554. package/src/api/schema/data-sources/data-sources.ts +3 -3
  555. package/src/api/schema/data-sources/index.ts +1 -1
  556. package/src/api/schema/data-sources/memory/memory.ts +36 -1
  557. package/src/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.ts +0 -1
  558. package/src/api/schema/data-sources/schema-directory/file-name-expression/index.ts +1 -1
  559. package/src/api/schema/data-sources/schema-directory/schema-directory.ts +31 -2
  560. package/src/api/schema/data-sources/schema-file/schema-file.ts +20 -1
  561. package/src/api/schema/index.ts +1 -1
  562. package/src/api/schema/read.ts +43 -2
  563. package/src/api/schema/schema.ts +2 -2
  564. package/src/api/schema-augmentation/augmentations/description.ts +2 -2
  565. package/src/api/schema-augmentation/index.ts +1 -1
  566. package/src/api/schema-augmentation/schema-augmentation.ts +1 -2
  567. package/src/api/server/report-error.ts +7 -5
  568. package/src/api/singletons/markdown/index.ts +1 -1
  569. package/src/api/singletons/markdown/markdown.test.ts +27 -30
  570. package/src/api/singletons/markdown/markdown.ts +4 -23
  571. package/src/api/static/index.ts +1 -1
  572. package/src/api/static/manifest.test.ts +1 -1
  573. package/src/api/static/manifest.ts +3 -3
  574. package/src/api/static/rebase.test.ts +2 -2
  575. package/src/api/static/rebase.ts +11 -11
  576. package/src/api/static/static.ts +2 -2
  577. package/src/api/utils/asset-url/asset-url.test.ts +1 -1
  578. package/src/api/utils/asset-url/index.ts +1 -1
  579. package/src/api/vite/logger.ts +5 -5
  580. package/src/api/vite/plugins/{branding/index.ts → branding.ts} +9 -9
  581. package/src/api/vite/plugins/build.ts +103 -97
  582. package/src/api/vite/plugins/core.ts +45 -43
  583. package/src/api/vite/plugins/main.ts +25 -22
  584. package/src/api/vite/plugins/pages.ts +20 -53
  585. package/src/api/vite/plugins/serve.ts +74 -11
  586. package/src/cli/commands/build.ts +0 -1
  587. package/src/cli/commands/config/$default.ts +7 -0
  588. package/src/cli/commands/config/create.ts +25 -0
  589. package/src/cli/commands/config.ts +6 -0
  590. package/src/cli/commands/create.ts +2 -3
  591. package/src/cli/commands/dev.ts +0 -1
  592. package/src/cli/commands/open.ts +0 -1
  593. package/src/cli/commands/static/rebase.ts +0 -1
  594. package/src/cli/commands/static.ts +1 -1
  595. package/src/dep/graphql-inspector/index.ts +1 -1
  596. package/src/dep/hono/hono.ts +1 -1
  597. package/src/dep/hono/index.ts +1 -1
  598. package/src/dep/superjson/index.ts +1 -1
  599. package/src/dep/tiny-globby/index.ts +1 -1
  600. package/src/dep/vite/index.ts +1 -1
  601. package/src/exports/components.ts +3 -3
  602. package/src/exports/index.ts +1 -1
  603. package/src/lib/apple-touch-icon/index.ts +1 -1
  604. package/src/lib/errors/ContextualAggregateError.ts +1 -1
  605. package/src/lib/errors/ContextualError.ts +1 -1
  606. package/src/lib/errors/ErrorInternal.ts +2 -2
  607. package/src/lib/errors/errors.ts +4 -4
  608. package/src/lib/errors/index.ts +1 -1
  609. package/src/lib/errors/types.ts +1 -1
  610. package/src/lib/extensible-data/index.ts +1 -1
  611. package/src/lib/favicon/index.ts +1 -1
  612. package/src/lib/file-router/diagnostic-reporter.ts +10 -10
  613. package/src/lib/file-router/file-router.ts +3 -3
  614. package/src/lib/file-router/index.test.ts +2 -2
  615. package/src/lib/file-router/index.ts +1 -1
  616. package/src/lib/file-router/linter.test.ts +2 -2
  617. package/src/lib/file-router/linter.ts +11 -11
  618. package/src/lib/file-router/scan.ts +4 -4
  619. package/src/lib/grafaid/_Nodes.ts +1 -1
  620. package/src/lib/grafaid/document/OperationTypeNode.ts +1 -1
  621. package/src/lib/grafaid/document/kind.ts +1 -1
  622. package/src/lib/grafaid/document.ts +6 -6
  623. package/src/lib/grafaid/grafaid.ts +4 -4
  624. package/src/lib/grafaid/graphql.ts +3 -3
  625. package/src/lib/grafaid/http/__.ts +1 -1
  626. package/src/lib/grafaid/http/http.ts +1 -1
  627. package/src/lib/grafaid/index.ts +1 -1
  628. package/src/lib/grafaid/schema/KindMap/_.ts +6 -6
  629. package/src/lib/grafaid/schema/KindMap/__.ts +2 -2
  630. package/src/lib/grafaid/schema/OperationType/__.ts +2 -2
  631. package/src/lib/grafaid/schema/RootDetails.ts +3 -3
  632. package/src/lib/grafaid/schema/RootTypeMap.ts +2 -2
  633. package/src/lib/grafaid/schema/nodes-like.ts +2 -2
  634. package/src/lib/grafaid/schema/schema.ts +15 -15
  635. package/src/lib/grafaid/schema/type-kind-name.ts +1 -1
  636. package/src/lib/grafaid/schema/type.ts +1 -1
  637. package/src/lib/grafaid/schema/typeGuards.ts +1 -1
  638. package/src/lib/grafaid-old/grafaid.ts +1 -1
  639. package/src/lib/grafaid-old/index.ts +1 -1
  640. package/src/lib/graphql-change/index.ts +1 -1
  641. package/src/lib/graphql-changeset/index.ts +1 -1
  642. package/src/lib/graphql-document/$$.ts +4 -4
  643. package/src/lib/graphql-document/$.test.ts +3 -3
  644. package/src/lib/graphql-document/$.ts +1 -1
  645. package/src/lib/graphql-document/analysis.ts +49 -49
  646. package/src/lib/graphql-document/components/GraphQLDocument.tsx +56 -45
  647. package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +4 -4
  648. package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +18 -37
  649. package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +31 -29
  650. package/src/lib/graphql-document/components/IdentifierLink.tsx +25 -25
  651. package/src/lib/graphql-document/components/graphql-document-styles.ts +0 -23
  652. package/src/lib/graphql-document/components/index.ts +4 -5
  653. package/src/lib/graphql-document/example.ts +35 -35
  654. package/src/lib/graphql-document/graphql-document.ts +9 -9
  655. package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +1 -1
  656. package/src/lib/graphql-document/positioning-simple.test.ts +22 -26
  657. package/src/lib/graphql-document/positioning-simple.ts +116 -127
  658. package/src/lib/graphql-document/schema-integration.test.ts +1 -1
  659. package/src/lib/graphql-document/schema-integration.ts +27 -36
  660. package/src/lib/graphql-document/types.ts +4 -4
  661. package/src/lib/graphql-schema-loader/index.ts +1 -1
  662. package/src/lib/helpers.ts +1 -1
  663. package/src/lib/hono-aid/index.ts +1 -1
  664. package/src/lib/html-utils/html-transformer.ts +6 -0
  665. package/src/lib/html-utils/inject-global-data.test.ts +89 -0
  666. package/src/lib/html-utils/inject-global-data.ts +80 -0
  667. package/src/lib/kit-temp.test-d.ts +27 -22
  668. package/src/lib/kit-temp.test.ts +15 -3
  669. package/src/lib/kit-temp.ts +383 -11
  670. package/src/lib/mask/$$.ts +2 -2
  671. package/src/lib/mask/$.test.ts +1 -1
  672. package/src/lib/mask/$.ts +1 -1
  673. package/src/lib/mask/apply.ts +15 -15
  674. package/src/lib/mask/mask.test-d.ts +30 -18
  675. package/src/lib/mask/mask.ts +18 -18
  676. package/src/lib/mutation-type.ts +3 -3
  677. package/src/lib/path-map/$$.ts +7 -0
  678. package/src/lib/path-map/$.test.ts +370 -0
  679. package/src/lib/path-map/$.ts +7 -0
  680. package/src/lib/path-map/path-map.ts +244 -0
  681. package/src/lib/react-router-aid/index.ts +1 -1
  682. package/src/lib/react-router-aid/react-router-aid.ts +1 -1
  683. package/src/lib/react-router-loader/react-router-loader.ts +1 -4
  684. package/src/lib/stack-processor/index.ts +1 -1
  685. package/src/lib/stack-processor/stack-processor.ts +0 -1
  686. package/src/lib/superjson-codec/codecs/graphql-schema.ts +1 -1
  687. package/src/lib/superjson-codec/exports.ts +2 -2
  688. package/src/lib/superjson-codec/index.ts +1 -1
  689. package/src/lib/task/$$.ts +2 -2
  690. package/src/lib/task/$.test.ts +2 -2
  691. package/src/lib/task/$.ts +1 -1
  692. package/src/lib/task/report.ts +1 -1
  693. package/src/lib/task/task.ts +3 -3
  694. package/src/lib/theme/$.ts +2 -0
  695. package/src/lib/theme/theme.test.ts +190 -0
  696. package/src/lib/theme/theme.ts +210 -0
  697. package/src/lib/vite-plugin-json/index.ts +1 -1
  698. package/src/lib/vite-plugin-json/vite-plugin-json.ts +4 -4
  699. package/src/lib/vite-plugin-mdx/index.ts +1 -1
  700. package/src/lib/vite-plugin-mdx/vite-plugin-mdx.ts +1 -5
  701. package/src/lib/vite-plugin-reactive-data/index.ts +1 -1
  702. package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +53 -60
  703. package/src/lib/vite-plugins/index.ts +1 -1
  704. package/src/lib/vite-plugins/vite-plugins.ts +1 -1
  705. package/src/lib/vite-virtual/identified-loader.ts +4 -4
  706. package/src/lib/vite-virtual/identifier.ts +1 -1
  707. package/src/lib/vite-virtual/index.ts +1 -1
  708. package/src/lib/vite-virtual/vite-virtual.ts +3 -3
  709. package/src/package-paths.ts +38 -12
  710. package/src/project-data.ts +3 -1
  711. package/src/sandbox.ts +9 -9
  712. package/src/template/components/ArgumentList.tsx +1 -1
  713. package/src/template/components/ArgumentListAnnotation.tsx +2 -2
  714. package/src/template/components/Changelog.tsx +2 -2
  715. package/src/template/components/CodeBlock.tsx +4 -58
  716. package/src/template/components/CodeBlockEnhancer.tsx +41 -41
  717. package/src/template/components/DeprecationReason.tsx +1 -1
  718. package/src/template/components/Description.tsx +1 -1
  719. package/src/template/components/Field.tsx +4 -4
  720. package/src/template/components/FieldList.tsx +1 -1
  721. package/src/template/components/FieldListSection.tsx +1 -1
  722. package/src/template/components/HamburgerMenu.tsx +11 -11
  723. package/src/template/components/Link.tsx +37 -29
  724. package/src/template/components/Logo.tsx +4 -4
  725. package/src/template/components/MDXComponents.tsx +1 -85
  726. package/src/template/components/NamedType.tsx +2 -2
  727. package/src/template/components/TestComponent.tsx +2 -2
  728. package/src/template/components/Texts/MinorHeading.tsx +4 -4
  729. package/src/template/components/Texts/index.ts +1 -1
  730. package/src/template/components/Texts/texts.ts +1 -1
  731. package/src/template/components/ThemeToggle.tsx +29 -7
  732. package/src/template/components/TypeAnnotation.tsx +1 -1
  733. package/src/template/components/TypeFieldsLinkList.tsx +1 -1
  734. package/src/template/components/TypeIndex.tsx +1 -1
  735. package/src/template/components/content/$$.ts +1 -1
  736. package/src/template/components/content/GraphQLDocumentWithSchema.tsx +3 -8
  737. package/src/template/components/content/GraphQLDocumentWrapper.tsx +20 -30
  738. package/src/template/components/graphql/graphql.tsx +2 -2
  739. package/src/template/components/graphql/index.ts +1 -1
  740. package/src/template/components/graphql/type-kind-icon.tsx +1 -2
  741. package/src/template/components/graphql/type-link.tsx +3 -3
  742. package/src/template/components/sidebar/Sidebar.tsx +1 -1
  743. package/src/template/components/sidebar/SidebarItem.tsx +6 -6
  744. package/src/template/constants.ts +17 -0
  745. package/src/template/contexts/ThemeContext.tsx +55 -24
  746. package/src/template/entry.client.tsx +7 -5
  747. package/src/template/global.d.ts +7 -0
  748. package/src/template/hooks/useClientOnly.ts +21 -0
  749. package/src/template/routes/changelog.tsx +1 -1
  750. package/src/template/routes/reference.$type.$field.tsx +3 -3
  751. package/src/template/routes/reference.$type.tsx +3 -3
  752. package/src/template/routes/reference.tsx +2 -2
  753. package/src/template/routes/root.tsx +46 -209
  754. package/src/template/routes.tsx +1 -1
  755. package/src/template/server/app.ts +40 -23
  756. package/src/template/server/{render-page.tsx → create-page-html-response.ts} +58 -20
  757. package/src/template/server/main.ts +4 -3
  758. package/src/template/server/middleware/page.ts +19 -0
  759. package/src/template/server/middleware/unsupported-assets.ts +25 -0
  760. package/src/template/server/ssg/generate.ts +79 -73
  761. package/src/template/server/ssg/get-route-paths.ts +1 -1
  762. package/src/template/server/transformers/inject-polen-data.ts +32 -0
  763. package/src/template/server/transformers/inject-theme-init.ts +30 -0
  764. package/src/template/server/view.ts +1 -1
  765. package/build/api/vite/data/navbar.d.ts +0 -9
  766. package/build/api/vite/data/navbar.d.ts.map +0 -1
  767. package/build/api/vite/data/navbar.js +0 -6
  768. package/build/api/vite/data/navbar.js.map +0 -1
  769. package/build/api/vite/plugins/branding/index.d.ts.map +0 -1
  770. package/build/api/vite/plugins/branding/index.js.map +0 -1
  771. package/build/lib/demos/builder.d.ts +0 -83
  772. package/build/lib/demos/builder.d.ts.map +0 -1
  773. package/build/lib/demos/builder.js +0 -237
  774. package/build/lib/demos/builder.js.map +0 -1
  775. package/build/lib/demos/config-schema.d.ts +0 -243
  776. package/build/lib/demos/config-schema.d.ts.map +0 -1
  777. package/build/lib/demos/config-schema.js +0 -52
  778. package/build/lib/demos/config-schema.js.map +0 -1
  779. package/build/lib/demos/config.d.ts +0 -40
  780. package/build/lib/demos/config.d.ts.map +0 -1
  781. package/build/lib/demos/config.js +0 -180
  782. package/build/lib/demos/config.js.map +0 -1
  783. package/build/lib/demos/index.d.ts +0 -9
  784. package/build/lib/demos/index.d.ts.map +0 -1
  785. package/build/lib/demos/index.js +0 -8
  786. package/build/lib/demos/index.js.map +0 -1
  787. package/build/lib/demos/ui/components.d.ts +0 -33
  788. package/build/lib/demos/ui/components.d.ts.map +0 -1
  789. package/build/lib/demos/ui/components.js +0 -699
  790. package/build/lib/demos/ui/components.js.map +0 -1
  791. package/build/lib/demos/ui/data-collector.d.ts +0 -88
  792. package/build/lib/demos/ui/data-collector.d.ts.map +0 -1
  793. package/build/lib/demos/ui/data-collector.js +0 -174
  794. package/build/lib/demos/ui/data-collector.js.map +0 -1
  795. package/build/lib/demos/ui/landing-page-cli.d.ts +0 -3
  796. package/build/lib/demos/ui/landing-page-cli.d.ts.map +0 -1
  797. package/build/lib/demos/ui/landing-page-cli.js +0 -21
  798. package/build/lib/demos/ui/landing-page-cli.js.map +0 -1
  799. package/build/lib/demos/ui/landing-page.d.ts +0 -32
  800. package/build/lib/demos/ui/landing-page.d.ts.map +0 -1
  801. package/build/lib/demos/ui/landing-page.js +0 -83
  802. package/build/lib/demos/ui/landing-page.js.map +0 -1
  803. package/build/lib/demos/ui/page-renderer.d.ts +0 -26
  804. package/build/lib/demos/ui/page-renderer.d.ts.map +0 -1
  805. package/build/lib/demos/ui/page-renderer.js +0 -104
  806. package/build/lib/demos/ui/page-renderer.js.map +0 -1
  807. package/build/lib/demos/utils.d.ts +0 -14
  808. package/build/lib/demos/utils.d.ts.map +0 -1
  809. package/build/lib/demos/utils.js +0 -37
  810. package/build/lib/demos/utils.js.map +0 -1
  811. package/build/lib/deployment/$$.d.ts +0 -3
  812. package/build/lib/deployment/$$.d.ts.map +0 -1
  813. package/build/lib/deployment/$$.js +0 -3
  814. package/build/lib/deployment/$$.js.map +0 -1
  815. package/build/lib/deployment/$.d.ts +0 -2
  816. package/build/lib/deployment/$.d.ts.map +0 -1
  817. package/build/lib/deployment/$.js +0 -2
  818. package/build/lib/deployment/$.js.map +0 -1
  819. package/build/lib/deployment/metadata.d.ts +0 -32
  820. package/build/lib/deployment/metadata.d.ts.map +0 -1
  821. package/build/lib/deployment/metadata.js +0 -37
  822. package/build/lib/deployment/metadata.js.map +0 -1
  823. package/build/lib/deployment/path-manager.d.ts +0 -41
  824. package/build/lib/deployment/path-manager.d.ts.map +0 -1
  825. package/build/lib/deployment/path-manager.js +0 -157
  826. package/build/lib/deployment/path-manager.js.map +0 -1
  827. package/build/lib/github-actions/git-controller.d.ts +0 -50
  828. package/build/lib/github-actions/git-controller.d.ts.map +0 -1
  829. package/build/lib/github-actions/git-controller.js +0 -90
  830. package/build/lib/github-actions/git-controller.js.map +0 -1
  831. package/build/lib/github-actions/github-actions.d.ts +0 -7
  832. package/build/lib/github-actions/github-actions.d.ts.map +0 -1
  833. package/build/lib/github-actions/github-actions.js +0 -7
  834. package/build/lib/github-actions/github-actions.js.map +0 -1
  835. package/build/lib/github-actions/index.d.ts +0 -2
  836. package/build/lib/github-actions/index.d.ts.map +0 -1
  837. package/build/lib/github-actions/index.js +0 -2
  838. package/build/lib/github-actions/index.js.map +0 -1
  839. package/build/lib/github-actions/lib/get-pr-deployments.d.ts +0 -12
  840. package/build/lib/github-actions/lib/get-pr-deployments.d.ts.map +0 -1
  841. package/build/lib/github-actions/lib/get-pr-deployments.js +0 -51
  842. package/build/lib/github-actions/lib/get-pr-deployments.js.map +0 -1
  843. package/build/lib/github-actions/pr-controller.d.ts +0 -39
  844. package/build/lib/github-actions/pr-controller.d.ts.map +0 -1
  845. package/build/lib/github-actions/pr-controller.js +0 -122
  846. package/build/lib/github-actions/pr-controller.js.map +0 -1
  847. package/build/lib/github-actions/run-step-cli.d.ts +0 -9
  848. package/build/lib/github-actions/run-step-cli.d.ts.map +0 -1
  849. package/build/lib/github-actions/run-step-cli.js +0 -71
  850. package/build/lib/github-actions/run-step-cli.js.map +0 -1
  851. package/build/lib/github-actions/runner.d.ts +0 -17
  852. package/build/lib/github-actions/runner.d.ts.map +0 -1
  853. package/build/lib/github-actions/runner.js +0 -195
  854. package/build/lib/github-actions/runner.js.map +0 -1
  855. package/build/lib/github-actions/schemas/context.d.ts +0 -933
  856. package/build/lib/github-actions/schemas/context.d.ts.map +0 -1
  857. package/build/lib/github-actions/schemas/context.js +0 -407
  858. package/build/lib/github-actions/schemas/context.js.map +0 -1
  859. package/build/lib/github-actions/schemas/index.d.ts +0 -5
  860. package/build/lib/github-actions/schemas/index.d.ts.map +0 -1
  861. package/build/lib/github-actions/schemas/index.js +0 -5
  862. package/build/lib/github-actions/schemas/index.js.map +0 -1
  863. package/build/lib/github-actions/search-module.d.ts +0 -38
  864. package/build/lib/github-actions/search-module.d.ts.map +0 -1
  865. package/build/lib/github-actions/search-module.js +0 -40
  866. package/build/lib/github-actions/search-module.js.map +0 -1
  867. package/build/lib/github-actions/step.d.ts +0 -163
  868. package/build/lib/github-actions/step.d.ts.map +0 -1
  869. package/build/lib/github-actions/step.js +0 -121
  870. package/build/lib/github-actions/step.js.map +0 -1
  871. package/build/lib/graphql-document/components/CopyButton.d.ts +0 -19
  872. package/build/lib/graphql-document/components/CopyButton.d.ts.map +0 -1
  873. package/build/lib/graphql-document/components/CopyButton.js +0 -43
  874. package/build/lib/graphql-document/components/CopyButton.js.map +0 -1
  875. package/build/lib/graphql-document/schema-integration-example.d.ts +0 -27
  876. package/build/lib/graphql-document/schema-integration-example.d.ts.map +0 -1
  877. package/build/lib/graphql-document/schema-integration-example.js +0 -297
  878. package/build/lib/graphql-document/schema-integration-example.js.map +0 -1
  879. package/build/lib/shiki/index.d.ts +0 -2
  880. package/build/lib/shiki/index.d.ts.map +0 -1
  881. package/build/lib/shiki/index.js +0 -2
  882. package/build/lib/shiki/index.js.map +0 -1
  883. package/build/lib/shiki/shiki.d.ts +0 -26
  884. package/build/lib/shiki/shiki.d.ts.map +0 -1
  885. package/build/lib/shiki/shiki.js +0 -105
  886. package/build/lib/shiki/shiki.js.map +0 -1
  887. package/build/lib/version-history/index.d.ts +0 -3
  888. package/build/lib/version-history/index.d.ts.map +0 -1
  889. package/build/lib/version-history/index.js +0 -2
  890. package/build/lib/version-history/index.js.map +0 -1
  891. package/build/lib/version-history/types.d.ts +0 -64
  892. package/build/lib/version-history/types.d.ts.map +0 -1
  893. package/build/lib/version-history/types.js +0 -5
  894. package/build/lib/version-history/types.js.map +0 -1
  895. package/build/lib/version-history/version-history.d.ts +0 -85
  896. package/build/lib/version-history/version-history.d.ts.map +0 -1
  897. package/build/lib/version-history/version-history.js +0 -248
  898. package/build/lib/version-history/version-history.js.map +0 -1
  899. package/build/template/server/render-page.d.ts +0 -3
  900. package/build/template/server/render-page.d.ts.map +0 -1
  901. package/build/template/server/render-page.js.map +0 -1
  902. package/src/api/vite/data/navbar.ts +0 -15
  903. package/src/lib/demos/builder.ts +0 -298
  904. package/src/lib/demos/config-schema.ts +0 -56
  905. package/src/lib/demos/config.test.ts +0 -193
  906. package/src/lib/demos/config.ts +0 -205
  907. package/src/lib/demos/index.ts +0 -9
  908. package/src/lib/demos/ui/components.ts +0 -739
  909. package/src/lib/demos/ui/data-collector.ts +0 -246
  910. package/src/lib/demos/ui/landing-page-cli.ts +0 -23
  911. package/src/lib/demos/ui/landing-page.ts +0 -126
  912. package/src/lib/demos/ui/page-renderer.ts +0 -124
  913. package/src/lib/demos/utils.ts +0 -43
  914. package/src/lib/deployment/$$.ts +0 -2
  915. package/src/lib/deployment/$.test.ts +0 -53
  916. package/src/lib/deployment/$.ts +0 -1
  917. package/src/lib/deployment/metadata.ts +0 -40
  918. package/src/lib/deployment/path-manager.ts +0 -186
  919. package/src/lib/github-actions/git-controller.ts +0 -151
  920. package/src/lib/github-actions/github-actions.ts +0 -6
  921. package/src/lib/github-actions/index.ts +0 -1
  922. package/src/lib/github-actions/lib/get-pr-deployments.ts +0 -76
  923. package/src/lib/github-actions/pr-controller.test.ts +0 -172
  924. package/src/lib/github-actions/pr-controller.ts +0 -183
  925. package/src/lib/github-actions/run-step-cli.ts +0 -84
  926. package/src/lib/github-actions/runner.test.ts +0 -192
  927. package/src/lib/github-actions/runner.ts +0 -226
  928. package/src/lib/github-actions/schemas/context.ts +0 -424
  929. package/src/lib/github-actions/schemas/index.ts +0 -5
  930. package/src/lib/github-actions/search-module.test.ts +0 -110
  931. package/src/lib/github-actions/search-module.ts +0 -76
  932. package/src/lib/github-actions/step.test.ts +0 -149
  933. package/src/lib/github-actions/step.ts +0 -232
  934. package/src/lib/graphql-document/components/CopyButton.tsx +0 -76
  935. package/src/lib/graphql-document/schema-integration-example.ts +0 -341
  936. package/src/lib/shiki/index.ts +0 -1
  937. package/src/lib/shiki/shiki.test.ts +0 -107
  938. package/src/lib/shiki/shiki.ts +0 -161
  939. package/src/lib/version-history/index.test.ts +0 -196
  940. package/src/lib/version-history/index.ts +0 -4
  941. package/src/lib/version-history/types.ts +0 -68
  942. package/src/lib/version-history/version-history.ts +0 -293
@@ -12,10 +12,8 @@
12
12
  //
13
13
  //
14
14
 
15
- import { Arr, Err, Fs, Http, Path, type Ts, Undefined } from '@wollybeard/kit'
16
- import { never } from '@wollybeard/kit/language'
15
+ import { Arr, Err, Fs, Http, Path, Undefined } from '@wollybeard/kit'
17
16
  import type { ResolveHookContext } from 'node:module'
18
- import type { IsNever } from 'type-fest'
19
17
 
20
18
  export const arrayEquals = (a: any[], b: any[]) => {
21
19
  if (a.length !== b.length) return false
@@ -66,8 +64,8 @@ export interface ImportEvent {
66
64
  export type ObjPolicyFilter<
67
65
  $Object extends object,
68
66
  $Key extends Keyof<$Object>,
69
- Mode extends 'allow' | 'deny',
70
- > = Mode extends 'allow'
67
+ Mode extends `allow` | `deny`,
68
+ > = Mode extends `allow`
71
69
  ? Pick<$Object, Extract<$Key, keyof $Object>>
72
70
  : Omit<$Object, Extract<$Key, keyof $Object>>
73
71
 
@@ -98,18 +96,18 @@ type Keyof<$Object extends object> = object extends $Object ? PropertyKey : (key
98
96
  export const objPolicyFilter = <
99
97
  obj extends object,
100
98
  keyUnion extends Keyof<obj>,
101
- mode extends 'allow' | 'deny',
99
+ mode extends `allow` | `deny`,
102
100
  >(
103
101
  mode: mode,
104
102
  obj: obj,
105
103
  keys: readonly keyUnion[],
106
104
  ): ObjPolicyFilter<obj, keyUnion, mode> => {
107
- const result: any = mode === 'deny' ? { ...obj } : {}
105
+ const result: any = mode === `deny` ? { ...obj } : {}
108
106
 
109
- if (mode === 'allow') {
107
+ if (mode === `allow`) {
110
108
  // For allow mode, only add specified keys
111
109
  for (const key of keys) {
112
- if (key in obj) {
110
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
113
111
  // @ts-expect-error
114
112
  result[key] = obj[key]
115
113
  }
@@ -154,11 +152,11 @@ export const objFilter = <T extends object>(
154
152
  }
155
153
 
156
154
  export const ObjPick = <T extends object, K extends keyof T>(obj: T, keys: readonly K[]): Pick<T, K> => {
157
- return objPolicyFilter('allow', obj, keys) as any
155
+ return objPolicyFilter(`allow`, obj, keys) as any
158
156
  }
159
157
 
160
158
  export const ObjOmit = <T extends object, K extends keyof T>(obj: T, keys: readonly K[]): Omit<T, K> => {
161
- return objPolicyFilter('deny', obj, keys) as any
159
+ return objPolicyFilter(`deny`, obj, keys) as any
162
160
  }
163
161
 
164
162
  export const ObjPartition = <T extends object, K extends keyof T>(
@@ -220,3 +218,377 @@ export type ExtendsExact<$Input, $Constraint> =
220
218
  ? $Input
221
219
  : never
222
220
  : never
221
+
222
+ /**
223
+ * Split an array into chunks of specified size
224
+ *
225
+ * @param array - The array to chunk
226
+ * @param size - The size of each chunk
227
+ * @returns Array of chunks
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
232
+ * chunk(['a', 'b', 'c'], 3) // [['a', 'b', 'c']]
233
+ * ```
234
+ */
235
+ export const chunk = <T>(array: readonly T[], size: number): T[][] => {
236
+ if (size <= 0) throw new Error(`Chunk size must be greater than 0`)
237
+ if (array.length === 0) return []
238
+
239
+ const chunks: T[][] = []
240
+ for (let i = 0; i < array.length; i += size) {
241
+ chunks.push(array.slice(i, i + size))
242
+ }
243
+ return chunks
244
+ }
245
+
246
+ export interface AsyncParallelOptions {
247
+ /**
248
+ * Maximum number of items to process concurrently
249
+ * @default 10
250
+ */
251
+ concurrency?: number
252
+
253
+ /**
254
+ * If true, stops processing on first error
255
+ * If false, continues processing all items even if some fail
256
+ * @default false
257
+ */
258
+ failFast?: boolean
259
+
260
+ /**
261
+ * Size of batches to process items in
262
+ * If not specified, all items are processed with the specified concurrency
263
+ */
264
+ batchSize?: number
265
+ }
266
+
267
+ export interface AsyncParallelResult<T, R> {
268
+ /** Successfully processed results */
269
+ results: R[]
270
+ /** Errors that occurred during processing */
271
+ errors: (Error & { item: T })[]
272
+ /** Whether all items were processed successfully */
273
+ success: boolean
274
+ }
275
+
276
+ /**
277
+ * Process items in parallel with configurable options
278
+ *
279
+ * @param items - Items to process
280
+ * @param operation - Async function to apply to each item (with optional index)
281
+ * @param options - Configuration options
282
+ * @returns Results and errors from processing
283
+ *
284
+ * @example
285
+ * ```ts
286
+ * const items = [1, 2, 3, 4, 5]
287
+ * const result = await asyncParallel(items, async (n, index) => n * 2, {
288
+ * concurrency: 2,
289
+ * batchSize: 3,
290
+ * failFast: false
291
+ * })
292
+ * // result.results: [2, 4, 6, 8, 10]
293
+ * // result.errors: []
294
+ * // result.success: true
295
+ * ```
296
+ */
297
+ export const asyncParallel = async <T, R>(
298
+ items: readonly T[],
299
+ operation: (item: T, index: number) => Promise<R>,
300
+ options: AsyncParallelOptions = {},
301
+ ): Promise<AsyncParallelResult<T, R>> => {
302
+ const { concurrency = 10, failFast = false, batchSize } = options
303
+
304
+ if (items.length === 0) {
305
+ return { results: [], errors: [], success: true }
306
+ }
307
+
308
+ const allResults: R[] = []
309
+ const allErrors: (Error & { item: T })[] = []
310
+
311
+ // If batchSize is specified, process in batches
312
+ if (batchSize !== undefined) {
313
+ const batches = chunk(items, batchSize)
314
+ let globalIndex = 0
315
+
316
+ for (const batch of batches) {
317
+ const batchResult = await processBatch(batch, operation, concurrency, failFast, globalIndex)
318
+ allResults.push(...batchResult.results)
319
+ allErrors.push(...batchResult.errors)
320
+ globalIndex += batch.length
321
+
322
+ if (failFast && batchResult.errors.length > 0) {
323
+ break
324
+ }
325
+ }
326
+ } else {
327
+ // Process all items with specified concurrency
328
+ const result = await processBatch(items, operation, concurrency, failFast, 0)
329
+ allResults.push(...result.results)
330
+ allErrors.push(...result.errors)
331
+ }
332
+
333
+ return {
334
+ results: allResults,
335
+ errors: allErrors,
336
+ success: allErrors.length === 0,
337
+ }
338
+ }
339
+
340
+ /**
341
+ * Process a batch of items with limited concurrency
342
+ */
343
+ const processBatch = async <T, R>(
344
+ items: readonly T[],
345
+ operation: (item: T, index: number) => Promise<R>,
346
+ concurrency: number,
347
+ failFast: boolean,
348
+ startIndex = 0,
349
+ ): Promise<AsyncParallelResult<T, R>> => {
350
+ const results: R[] = []
351
+ const errors: (Error & { item: T })[] = []
352
+
353
+ // Process items in chunks based on concurrency limit
354
+ const chunks = chunk(items, concurrency)
355
+ let currentIndex = startIndex
356
+
357
+ for (const chunkItems of chunks) {
358
+ const promises = chunkItems.map(async (item, chunkIndex) => {
359
+ const globalIndex = currentIndex + chunkIndex
360
+ try {
361
+ const result = await operation(item, globalIndex)
362
+ return { success: true, result, item }
363
+ } catch (error) {
364
+ const enhancedError = error instanceof Error ? error : new Error(String(error))
365
+ Object.assign(enhancedError, { item })
366
+ return { success: false, error: enhancedError as Error & { item: T }, item }
367
+ }
368
+ })
369
+
370
+ currentIndex += chunkItems.length
371
+
372
+ const chunkResults = await Promise.allSettled(promises)
373
+
374
+ for (const promiseResult of chunkResults) {
375
+ if (promiseResult.status === `fulfilled`) {
376
+ const { success, result, error, item } = promiseResult.value
377
+ if (success) {
378
+ results.push(result!)
379
+ } else {
380
+ errors.push(error!)
381
+ if (failFast) {
382
+ return { results, errors, success: false }
383
+ }
384
+ }
385
+ } else {
386
+ // This shouldn't happen since we're catching errors above
387
+ // But handle it just in case
388
+ const error = new Error(`Unexpected promise rejection`) as Error & { item: any }
389
+ errors.push(error)
390
+ if (failFast) {
391
+ return { results, errors, success: false }
392
+ }
393
+ }
394
+ }
395
+ }
396
+
397
+ return { results, errors, success: errors.length === 0 }
398
+ }
399
+
400
+ // /**
401
+ // * Reduce an array asynchronously, processing each item in sequence
402
+ // *
403
+ // * @param items - Array of items to process
404
+ // * @param reducer - Async function that takes accumulator and current item
405
+ // * @param initial - Initial value for the accumulator
406
+ // * @returns Final accumulated value
407
+ // *
408
+ // * @example
409
+ // * ```ts
410
+ // * const numbers = [1, 2, 3, 4]
411
+ // * const sum = await asyncReduce(numbers, async (acc, n) => acc + n, 0)
412
+ // * // sum: 10
413
+ // *
414
+ // * const transforms = [addHeader, addFooter, minify]
415
+ // * const html = await asyncReduce(transforms, async (html, transform) => transform(html), initialHtml)
416
+ // * ```
417
+ // */
418
+ // export const asyncReduce = async <T, R>(
419
+ // items: readonly T[],
420
+ // reducer: (accumulator: R, current: T, index: number) => Promise<R> | R,
421
+ // initial: R,
422
+ // ): Promise<R> => {
423
+ // let result = initial
424
+ // for (let i = 0; i < items.length; i++) {
425
+ // const item = items[i]!
426
+ // result = await reducer(result, item, i)
427
+ // }
428
+ // return result
429
+ // }
430
+
431
+ // /**
432
+ // * Curried version of asyncReduce for functions that transform a value
433
+ // *
434
+ // * @param transformers - Array of transformer functions
435
+ // * @returns A function that takes an initial value and applies all transformers
436
+ // *
437
+ // * @example
438
+ // * ```ts
439
+ // * const transformers = [addHeader, addFooter, minify]
440
+ // * const applyTransforms = asyncReduceWith(transformers)
441
+ // * const finalHtml = await applyTransforms(initialHtml)
442
+ // *
443
+ // * // For simple pipelines where each function transforms the same type
444
+ // * const htmlPipeline = asyncReduceWith([
445
+ // * (html) => html.replace('foo', 'bar'),
446
+ // * async (html) => await prettify(html),
447
+ // * (html) => html.trim()
448
+ // * ])
449
+ // * ```
450
+ // */
451
+ // export const asyncReduceWith = <T>(
452
+ // transformers: readonly ((value: T) => Promise<T> | T)[],
453
+ // ) => {
454
+ // return async (initial: T): Promise<T> => {
455
+ // return asyncReduce(transformers, (value, transform) => transform(value), initial)
456
+ // }
457
+ // }
458
+
459
+ /**
460
+ * Reduce an array asynchronously with context, processing each item in sequence
461
+ *
462
+ * @param items - Array of items to process
463
+ * @param reducer - Async function that takes accumulator, current item, and context
464
+ * @param initial - Initial value for the accumulator
465
+ * @param context - Context object passed to each reducer call
466
+ * @returns Final accumulated value
467
+ *
468
+ * @example
469
+ * ```ts
470
+ * const transformers = [transformer1, transformer2]
471
+ * const ctx = { request: req, response: res }
472
+ * const result = await asyncReduceWithContext(
473
+ * transformers,
474
+ * async (html, transformer) => transformer(html, ctx),
475
+ * initialHtml,
476
+ * ctx
477
+ * )
478
+ * ```
479
+ */
480
+ export const asyncReduce = async <T, R, C>(
481
+ items: readonly T[],
482
+ reducer: (accumulator: R, current: T, context: C, index: number) => Promise<R> | R,
483
+ initial: R,
484
+ context: C,
485
+ ): Promise<R> => {
486
+ let result = initial
487
+ for (let i = 0; i < items.length; i++) {
488
+ const item = items[i]!
489
+ result = await reducer(result, item, context, i)
490
+ }
491
+ return result
492
+ }
493
+
494
+ /**
495
+ * Curried version of asyncReduceWithContext for functions that transform a value with context
496
+ *
497
+ * @param transformers - Array of transformer functions that take value and context
498
+ * @returns A function that takes an initial value and context, and applies all transformers
499
+ *
500
+ * @example
501
+ * ```ts
502
+ * const transformers = [
503
+ * (html, ctx) => html.replace('{{url}}', ctx.req.url),
504
+ * async (html, ctx) => await ctx.minify(html),
505
+ * ]
506
+ * const applyTransforms = asyncReduceWithContextWith(transformers)
507
+ * const finalHtml = await applyTransforms(initialHtml, ctx)
508
+ * ```
509
+ */
510
+ export const asyncReduceWith = <T, C>(
511
+ transformers: readonly ((value: T, context: C) => Promise<T> | T)[],
512
+ context: C,
513
+ ) => {
514
+ return async (initial: T): Promise<T> => {
515
+ return asyncReduce(
516
+ transformers,
517
+ (value, transform, ctx) => transform(value, ctx),
518
+ initial,
519
+ context,
520
+ )
521
+ }
522
+ }
523
+
524
+ /**
525
+ * Create a branded type that provides nominal typing in TypeScript.
526
+ *
527
+ * Branded types allow you to create distinct types from primitives or other types,
528
+ * preventing accidental mixing of values that are structurally identical but
529
+ * semantically different.
530
+ *
531
+ * @template $BaseType - The underlying type to brand (e.g., string, number)
532
+ * @template $BrandName - A unique string literal to distinguish this brand
533
+ *
534
+ * @example
535
+ * ```ts
536
+ * // Create distinct ID types that can't be mixed
537
+ * type UserId = Brand<string, 'UserId'>
538
+ * type PostId = Brand<string, 'PostId'>
539
+ *
540
+ * function getUser(id: UserId) { ... }
541
+ *
542
+ * const userId = 'u123' as UserId
543
+ * const postId = 'p456' as PostId
544
+ *
545
+ * getUser(userId) // ✓ OK
546
+ * getUser(postId) // ✗ Type error - can't use PostId where UserId expected
547
+ * ```
548
+ *
549
+ * @example
550
+ * ```ts
551
+ * // Brand primitive types for domain modeling
552
+ * type Email = Brand<string, 'Email'>
553
+ * type Url = Brand<string, 'Url'>
554
+ * type PositiveNumber = Brand<number, 'PositiveNumber'>
555
+ * ```
556
+ */
557
+ export type Brand<$BaseType, $BrandName extends string> =
558
+ & $BaseType
559
+ & {
560
+ readonly __brand: $BrandName
561
+ }
562
+
563
+ /**
564
+ * Helper function to create a branded value.
565
+ *
566
+ * This is a simple type assertion helper. For runtime validation,
567
+ * combine with validation functions or schemas.
568
+ *
569
+ * @template $BaseType - The underlying type to brand
570
+ * @template $BrandName - The brand name to apply
571
+ * @param value - The value to brand
572
+ * @returns The value with the brand type applied
573
+ *
574
+ * @example
575
+ * ```ts
576
+ * type UserId = Brand<string, 'UserId'>
577
+ *
578
+ * // Simple branding (no runtime validation)
579
+ * const id = brand<string, 'UserId'>('u123')
580
+ *
581
+ * // With validation (recommended)
582
+ * function createUserId(value: string): UserId {
583
+ * if (!value.startsWith('u')) {
584
+ * throw new Error('User IDs must start with "u"')
585
+ * }
586
+ * return brand<string, 'UserId'>(value)
587
+ * }
588
+ * ```
589
+ */
590
+ export const brand = <$BaseType, $BrandName extends string>(
591
+ value: $BaseType,
592
+ ): Brand<$BaseType, $BrandName> => {
593
+ return value as Brand<$BaseType, $BrandName>
594
+ }
@@ -1,2 +1,2 @@
1
- export * from './apply.ts'
2
- export * from './mask.ts'
1
+ export * from './apply.js'
2
+ export * from './mask.js'
@@ -1,6 +1,6 @@
1
1
  import * as fc from 'fast-check'
2
2
  import { describe, expect, test } from 'vitest'
3
- import { Mask } from './$.ts'
3
+ import { Mask } from './$.js'
4
4
 
5
5
  describe('Mask.create', () => {
6
6
  test('boolean options create binary masks', () => {
package/src/lib/mask/$.ts CHANGED
@@ -1 +1 @@
1
- export * as Mask from './$$.ts'
1
+ export * as Mask from './$$.js'
@@ -1,7 +1,7 @@
1
1
  import { type ExtendsExact, objPolicyFilter } from '#lib/kit-temp'
2
2
  import { Obj } from '@wollybeard/kit'
3
3
  import { never } from '@wollybeard/kit/language'
4
- import type { GetDataType, Mask } from './mask.ts'
4
+ import type { GetDataType, Mask } from './mask.js'
5
5
 
6
6
  /**
7
7
  * Type-level function that applies a mask to data.
@@ -19,16 +19,16 @@ import type { GetDataType, Mask } from './mask.ts'
19
19
  * - Non-objects throw an error at runtime
20
20
  */
21
21
  // dprint-ignore
22
- export type Apply<Data, M extends Mask<any>> =
23
- M extends { type: 'binary', show: boolean }
24
- ? M['show'] extends true
22
+ export type Apply<Data, M extends Mask> =
23
+ M extends { type: `binary`, show: boolean }
24
+ ? M[`show`] extends true
25
25
  ? Data
26
26
  : undefined
27
- : M extends { type: 'properties', mode: string, properties: any[] }
27
+ : M extends { type: `properties`, mode: string, properties: any[] }
28
28
  ? Data extends object
29
- ? M['mode'] extends 'allow'
30
- ? Pick<Data, Extract<M['properties'][number], keyof Data>>
31
- : Omit<Data, Extract<M['properties'][number], keyof Data>>
29
+ ? M[`mode`] extends `allow`
30
+ ? Pick<Data, Extract<M[`properties`][number], keyof Data>>
31
+ : Omit<Data, Extract<M[`properties`][number], keyof Data>>
32
32
  : never // Non-objects not allowed with property masks
33
33
  : never
34
34
 
@@ -50,7 +50,7 @@ export type Apply<Data, M extends Mask<any>> =
50
50
  */
51
51
  export const apply = <
52
52
  data extends GetDataType<mask>,
53
- mask extends Mask<any>,
53
+ mask extends Mask,
54
54
  >(data: data, mask: mask): Apply<data, mask> => {
55
55
  return applyInternal(data, mask) as Apply<data, mask>
56
56
  }
@@ -74,7 +74,7 @@ export const apply = <
74
74
  */
75
75
  export const applyPartial = <
76
76
  data extends Partial<GetDataType<mask>>,
77
- mask extends Mask<any>,
77
+ mask extends Mask,
78
78
  >(data: data, mask: mask): Apply<data, mask> => {
79
79
  return applyInternal(data, mask) as Apply<data, mask>
80
80
  }
@@ -105,7 +105,7 @@ export const applyPartial = <
105
105
  */
106
106
  export const applyExact = <
107
107
  data,
108
- mask extends Mask<any>,
108
+ mask extends Mask,
109
109
  >(
110
110
  data: ExtendsExact<data, GetDataType<mask>>,
111
111
  mask: mask,
@@ -114,17 +114,17 @@ export const applyExact = <
114
114
  }
115
115
 
116
116
  // Internal implementation
117
- const applyInternal = (data: any, mask: Mask<any>): any => {
117
+ const applyInternal = (data: any, mask: Mask): any => {
118
118
  // ━ Handle binary mask
119
- if (mask.type === 'binary') {
119
+ if (mask.type === `binary`) {
120
120
  return mask.show ? data : undefined
121
121
  }
122
122
 
123
123
  // ━ Handle properties mask
124
- if (mask.type === 'properties') {
124
+ if (mask.type === `properties`) {
125
125
  // Properties mask requires object data
126
126
  if (!Obj.is(data)) {
127
- throw new Error('Cannot apply properties mask to non-object data')
127
+ throw new Error(`Cannot apply properties mask to non-object data`)
128
128
  }
129
129
 
130
130
  return objPolicyFilter(mask.mode, data, mask.properties)
@@ -1,6 +1,6 @@
1
1
  import { Ts } from '@wollybeard/kit'
2
- import { Mask } from './$.ts'
3
- import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.ts'
2
+ import { Mask } from './$.js'
3
+ import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.js'
4
4
 
5
5
  // Test 1: InferOptions with unknown should accept all option types
6
6
  {
@@ -12,7 +12,7 @@ import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.ts'
12
12
  // All of these should be valid options
13
13
  const option1: Options = true
14
14
  const option2: Options = false
15
- const option3: Options = ['name', 'age']
15
+ const option3: Options = [`name`, `age`]
16
16
  const option4: Options = []
17
17
  const option5: Options = { name: true, age: false }
18
18
  const option6: Options = {}
@@ -28,9 +28,9 @@ import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.ts'
28
28
  Ts.assertEqual<MaskType<unknown>>()(mask2)
29
29
 
30
30
  // Array options (no type parameter needed)
31
- const mask3 = Mask.create(['name', 'age'])
31
+ const mask3 = Mask.create([`name`, `age`])
32
32
  const mask4 = Mask.create([])
33
- const mask5 = Mask.create(['a', 'b', 'c'])
33
+ const mask5 = Mask.create([`a`, `b`, `c`])
34
34
  // Returns union type with inferred properties
35
35
  Ts.assertEqual<MaskType<{ name: any; age: any }>>()(mask3)
36
36
  Ts.assertEqual<MaskType<unknown>>()(mask4)
@@ -48,11 +48,15 @@ import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.ts'
48
48
 
49
49
  // Test 3: With specific data type, options are constrained
50
50
  {
51
- type User = { name: string; age: number; email: string }
51
+ interface User {
52
+ name: string
53
+ age: number
54
+ email: string
55
+ }
52
56
 
53
57
  // Valid options
54
58
  const mask1 = Mask.create<User>(true)
55
- const mask2 = Mask.create<User>(['name', 'age'])
59
+ const mask2 = Mask.create<User>([`name`, `age`])
56
60
  const mask3 = Mask.create<User>({ name: true, age: false, email: true })
57
61
 
58
62
  // With explicit type parameter, still returns union type
@@ -81,18 +85,18 @@ import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.ts'
81
85
  // Test 5: Test inference in practical scenarios
82
86
  {
83
87
  // Should infer PropertiesMask with object data type
84
- const userMask = Mask.create(['name', 'email', 'password'])
88
+ const userMask = Mask.create([`name`, `email`, `password`])
85
89
  Ts.assertEqual<MaskType<{ name: any; email: any; password: any }>>()(userMask)
86
90
 
87
91
  // When mask is a union type, apply returns a union of possible results
88
- const user1 = { name: 'John', email: 'john@example.com', password: 'secret', extra: 'data' }
92
+ const user1 = { name: `John`, email: `john@example.com`, password: `secret`, extra: `data` }
89
93
  const maskedUser1 = Mask.apply(user1, userMask)
90
94
  // Result is a union type that includes the properties mask result
91
95
  type MaskedUser1 = typeof maskedUser1
92
96
  // Can't use assertSub with union types
93
97
 
94
98
  // For partial data, use applyPartial
95
- const user2 = { name: 'Jane', email: 'jane@example.com' }
99
+ const user2 = { name: `Jane`, email: `jane@example.com` }
96
100
  const maskedUser2 = Mask.applyPartial(user2, userMask)
97
101
  // Result is a union type
98
102
  type MaskedUser2 = typeof maskedUser2
@@ -100,16 +104,20 @@ import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.ts'
100
104
 
101
105
  // Test 6: Pick and omit helpers
102
106
  {
103
- const pick1 = Mask.pick(['name', 'email'])
104
- const omit1 = Mask.omit(['password', 'secret'])
107
+ const pick1 = Mask.pick([`name`, `email`])
108
+ const omit1 = Mask.omit([`password`, `secret`])
105
109
 
106
110
  // Infers specific property types
107
111
  Ts.assertEqual<PropertiesMask<{ name: any; email: any }>>()(pick1)
108
112
  Ts.assertEqual<PropertiesMask<{ password: any; secret: any }>>()(omit1)
109
113
 
110
- type User = { name: string; email: string; password: string }
111
- const pick2 = Mask.pick<User>(['name', 'email'])
112
- const omit2 = Mask.omit<User>(['password'])
114
+ interface User {
115
+ name: string
116
+ email: string
117
+ password: string
118
+ }
119
+ const pick2 = Mask.pick<User>([`name`, `email`])
120
+ const omit2 = Mask.omit<User>([`password`])
113
121
 
114
122
  Ts.assertEqual<PropertiesMask<User>>()(pick2)
115
123
  Ts.assertEqual<PropertiesMask<User>>()(omit2)
@@ -117,8 +125,12 @@ import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.ts'
117
125
 
118
126
  // Test 7: Apply type transformations
119
127
  {
120
- type User = { name: string; email: string; password: string }
121
- const user: User = { name: 'John', email: 'john@example.com', password: 'secret' }
128
+ interface User {
129
+ name: string
130
+ email: string
131
+ password: string
132
+ }
133
+ const user: User = { name: `John`, email: `john@example.com`, password: `secret` }
122
134
 
123
135
  // Binary mask
124
136
  const showMask = Mask.create<User>(true)
@@ -131,7 +143,7 @@ import type { InferOptions, Mask as MaskType, PropertiesMask } from './mask.ts'
131
143
  type HiddenType = typeof hidden // Omit<User, keyof User> | undefined
132
144
 
133
145
  // Properties mask - allow mode
134
- const allowMask = Mask.create<User>(['name', 'email'])
146
+ const allowMask = Mask.create<User>([`name`, `email`])
135
147
  const allowed = Mask.apply(user, allowMask)
136
148
  // Result is a union due to mask being a union type
137
149
  type AllowedType = typeof allowed