@rangojs/router 0.5.1 → 0.5.2

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 (448) hide show
  1. package/README.md +5 -1
  2. package/dist/types/browser/event-controller.d.ts +6 -0
  3. package/dist/types/cache/cf/cf-cache-constants.d.ts +8 -1
  4. package/dist/types/cache/cf/cf-cache-store.d.ts +15 -1
  5. package/dist/types/cache/cf/cf-cache-types.d.ts +1 -1
  6. package/dist/types/cache/cf/cf-kv-utils.d.ts +21 -0
  7. package/dist/types/handles/is-thenable.d.ts +2 -4
  8. package/dist/types/rsc/helpers.d.ts +3 -0
  9. package/dist/types/rsc/render-pipeline.d.ts +9 -0
  10. package/dist/types/rsc/routine-plan.d.ts +124 -0
  11. package/dist/types/rsc/shell-capture-constants.d.ts +17 -0
  12. package/dist/types/server/request-context.d.ts +4 -1
  13. package/dist/types/vite/encryption-key.d.ts +2 -0
  14. package/dist/types/vite/plugins/expose-internal-ids.d.ts +10 -0
  15. package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
  16. package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
  17. package/dist/types/vite/utils/shared-utils.d.ts +12 -0
  18. package/dist/vite/index.js +154 -57
  19. package/package.json +3 -3
  20. package/skills/caching/SKILL.md +1 -1
  21. package/skills/mime-routes/SKILL.md +3 -1
  22. package/skills/response-routes/SKILL.md +4 -2
  23. package/skills/typesafety/generated-files-and-cli.md +16 -9
  24. package/skills/typesafety/route-types.md +5 -1
  25. package/skills/use-cache/SKILL.md +47 -0
  26. package/src/browser/event-controller.ts +40 -15
  27. package/src/browser/partial-update.ts +26 -11
  28. package/src/browser/react/NavigationProvider.tsx +7 -0
  29. package/src/cache/cache-runtime.ts +89 -15
  30. package/src/cache/cf/cf-cache-constants.ts +8 -1
  31. package/src/cache/cf/cf-cache-store.ts +41 -64
  32. package/src/cache/cf/cf-cache-types.ts +1 -1
  33. package/src/cache/cf/cf-kv-utils.ts +38 -0
  34. package/src/cache/segment-codec.ts +21 -5
  35. package/src/handles/is-thenable.ts +2 -4
  36. package/src/router/match-middleware/cache-lookup.ts +24 -15
  37. package/src/rsc/handler.ts +26 -5
  38. package/src/rsc/helpers.ts +13 -0
  39. package/src/rsc/progressive-enhancement.ts +247 -70
  40. package/src/rsc/render-pipeline.ts +68 -24
  41. package/src/rsc/routine-plan.ts +359 -0
  42. package/src/rsc/rsc-rendering.ts +555 -302
  43. package/src/rsc/server-action.ts +180 -71
  44. package/src/rsc/shell-capture-constants.ts +18 -0
  45. package/src/rsc/shell-capture.ts +92 -21
  46. package/src/server/request-context.ts +6 -0
  47. package/src/ssr/ssr-root.tsx +1 -0
  48. package/src/vite/encryption-key.ts +29 -0
  49. package/src/vite/plugins/expose-action-id.ts +2 -2
  50. package/src/vite/plugins/expose-internal-ids.ts +46 -0
  51. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  52. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  53. package/src/vite/rango.ts +9 -0
  54. package/src/vite/router-discovery.ts +21 -2
  55. package/src/vite/utils/shared-utils.ts +12 -7
  56. package/dist/types.backup/__internal.d.ts +0 -127
  57. package/dist/types.backup/bin/rango.d.ts +0 -1
  58. package/dist/types.backup/browser/action-coordinator.d.ts +0 -57
  59. package/dist/types.backup/browser/action-fence.d.ts +0 -33
  60. package/dist/types.backup/browser/app-shell.d.ts +0 -34
  61. package/dist/types.backup/browser/app-version.d.ts +0 -6
  62. package/dist/types.backup/browser/connection-warmup.d.ts +0 -31
  63. package/dist/types.backup/browser/cookie-name.d.ts +0 -66
  64. package/dist/types.backup/browser/event-controller.d.ts +0 -221
  65. package/dist/types.backup/browser/history-state.d.ts +0 -26
  66. package/dist/types.backup/browser/index.d.ts +0 -1
  67. package/dist/types.backup/browser/intercept-utils.d.ts +0 -30
  68. package/dist/types.backup/browser/invalidate-client-cache.d.ts +0 -17
  69. package/dist/types.backup/browser/link-interceptor.d.ts +0 -43
  70. package/dist/types.backup/browser/logging.d.ts +0 -33
  71. package/dist/types.backup/browser/merge-segment-loaders.d.ts +0 -38
  72. package/dist/types.backup/browser/navigation-bridge.d.ts +0 -27
  73. package/dist/types.backup/browser/navigation-client.d.ts +0 -17
  74. package/dist/types.backup/browser/navigation-store-handle.d.ts +0 -25
  75. package/dist/types.backup/browser/navigation-store.d.ts +0 -95
  76. package/dist/types.backup/browser/navigation-transaction.d.ts +0 -75
  77. package/dist/types.backup/browser/network-error-handler.d.ts +0 -35
  78. package/dist/types.backup/browser/partial-update.d.ts +0 -61
  79. package/dist/types.backup/browser/prefetch/cache.d.ts +0 -183
  80. package/dist/types.backup/browser/prefetch/fetch.d.ts +0 -52
  81. package/dist/types.backup/browser/prefetch/observer.d.ts +0 -27
  82. package/dist/types.backup/browser/prefetch/policy.d.ts +0 -13
  83. package/dist/types.backup/browser/prefetch/queue.d.ts +0 -48
  84. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +0 -28
  85. package/dist/types.backup/browser/rango-state.d.ts +0 -52
  86. package/dist/types.backup/browser/react/Link.d.ts +0 -140
  87. package/dist/types.backup/browser/react/NavigationProvider.d.ts +0 -88
  88. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +0 -78
  89. package/dist/types.backup/browser/react/context.d.ts +0 -54
  90. package/dist/types.backup/browser/react/filter-segment-order.d.ts +0 -35
  91. package/dist/types.backup/browser/react/index.d.ts +0 -1
  92. package/dist/types.backup/browser/react/location-state-shared.d.ts +0 -162
  93. package/dist/types.backup/browser/react/location-state.d.ts +0 -29
  94. package/dist/types.backup/browser/react/mount-context.d.ts +0 -23
  95. package/dist/types.backup/browser/react/nonce-context.d.ts +0 -14
  96. package/dist/types.backup/browser/react/shallow-equal.d.ts +0 -5
  97. package/dist/types.backup/browser/react/use-action.d.ts +0 -61
  98. package/dist/types.backup/browser/react/use-handle.d.ts +0 -21
  99. package/dist/types.backup/browser/react/use-href.d.ts +0 -32
  100. package/dist/types.backup/browser/react/use-link-status.d.ts +0 -36
  101. package/dist/types.backup/browser/react/use-mount.d.ts +0 -24
  102. package/dist/types.backup/browser/react/use-navigation.d.ts +0 -15
  103. package/dist/types.backup/browser/react/use-params.d.ts +0 -21
  104. package/dist/types.backup/browser/react/use-pathname.d.ts +0 -13
  105. package/dist/types.backup/browser/react/use-reverse.d.ts +0 -40
  106. package/dist/types.backup/browser/react/use-router.d.ts +0 -23
  107. package/dist/types.backup/browser/react/use-search-params.d.ts +0 -19
  108. package/dist/types.backup/browser/react/use-segments.d.ts +0 -29
  109. package/dist/types.backup/browser/response-adapter.d.ts +0 -58
  110. package/dist/types.backup/browser/rsc-router.d.ts +0 -141
  111. package/dist/types.backup/browser/scroll-restoration.d.ts +0 -103
  112. package/dist/types.backup/browser/segment-reconciler.d.ts +0 -74
  113. package/dist/types.backup/browser/segment-structure-assert.d.ts +0 -16
  114. package/dist/types.backup/browser/server-action-bridge.d.ts +0 -29
  115. package/dist/types.backup/browser/types.d.ts +0 -530
  116. package/dist/types.backup/browser/validate-redirect-origin.d.ts +0 -28
  117. package/dist/types.backup/build/collect-fallback-refs.d.ts +0 -5
  118. package/dist/types.backup/build/generate-manifest.d.ts +0 -100
  119. package/dist/types.backup/build/generate-route-types.d.ts +0 -8
  120. package/dist/types.backup/build/index.d.ts +0 -21
  121. package/dist/types.backup/build/prefix-tree-utils.d.ts +0 -56
  122. package/dist/types.backup/build/route-trie.d.ts +0 -89
  123. package/dist/types.backup/build/route-types/ast-helpers.d.ts +0 -3
  124. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +0 -13
  125. package/dist/types.backup/build/route-types/codegen.d.ts +0 -16
  126. package/dist/types.backup/build/route-types/include-resolution.d.ts +0 -74
  127. package/dist/types.backup/build/route-types/param-extraction.d.ts +0 -13
  128. package/dist/types.backup/build/route-types/per-module-writer.d.ts +0 -18
  129. package/dist/types.backup/build/route-types/router-processing.d.ts +0 -82
  130. package/dist/types.backup/build/route-types/scan-filter.d.ts +0 -17
  131. package/dist/types.backup/build/route-types/source-scan.d.ts +0 -13
  132. package/dist/types.backup/build/runtime-discovery.d.ts +0 -24
  133. package/dist/types.backup/cache/background-task.d.ts +0 -21
  134. package/dist/types.backup/cache/cache-error.d.ts +0 -71
  135. package/dist/types.backup/cache/cache-key-utils.d.ts +0 -35
  136. package/dist/types.backup/cache/cache-policy.d.ts +0 -59
  137. package/dist/types.backup/cache/cache-runtime.d.ts +0 -51
  138. package/dist/types.backup/cache/cache-scope.d.ts +0 -134
  139. package/dist/types.backup/cache/cache-tag.d.ts +0 -79
  140. package/dist/types.backup/cache/cf/cf-base64.d.ts +0 -4
  141. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +0 -105
  142. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +0 -481
  143. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +0 -300
  144. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +0 -22
  145. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +0 -15
  146. package/dist/types.backup/cache/cf/index.d.ts +0 -3
  147. package/dist/types.backup/cache/document-cache.d.ts +0 -69
  148. package/dist/types.backup/cache/handle-capture.d.ts +0 -23
  149. package/dist/types.backup/cache/handle-snapshot.d.ts +0 -39
  150. package/dist/types.backup/cache/index.d.ts +0 -7
  151. package/dist/types.backup/cache/memory-segment-store.d.ts +0 -163
  152. package/dist/types.backup/cache/profile-registry.d.ts +0 -40
  153. package/dist/types.backup/cache/read-through-swr.d.ts +0 -60
  154. package/dist/types.backup/cache/segment-codec.d.ts +0 -78
  155. package/dist/types.backup/cache/shell-snapshot.d.ts +0 -162
  156. package/dist/types.backup/cache/tag-invalidation.d.ts +0 -74
  157. package/dist/types.backup/cache/taint.d.ts +0 -71
  158. package/dist/types.backup/cache/types.d.ts +0 -407
  159. package/dist/types.backup/cache/vercel/index.d.ts +0 -1
  160. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +0 -267
  161. package/dist/types.backup/client.d.ts +0 -184
  162. package/dist/types.backup/client.rsc.d.ts +0 -39
  163. package/dist/types.backup/cloudflare/index.d.ts +0 -7
  164. package/dist/types.backup/cloudflare/tracing.d.ts +0 -53
  165. package/dist/types.backup/component-utils.d.ts +0 -46
  166. package/dist/types.backup/components/DefaultDocument.d.ts +0 -13
  167. package/dist/types.backup/context-var.d.ts +0 -84
  168. package/dist/types.backup/debug.d.ts +0 -57
  169. package/dist/types.backup/decode-loader-results.d.ts +0 -5
  170. package/dist/types.backup/default-error-boundary.d.ts +0 -10
  171. package/dist/types.backup/defer.d.ts +0 -89
  172. package/dist/types.backup/deps/browser.d.ts +0 -1
  173. package/dist/types.backup/deps/html-stream-client.d.ts +0 -1
  174. package/dist/types.backup/deps/html-stream-server.d.ts +0 -1
  175. package/dist/types.backup/deps/rsc.d.ts +0 -1
  176. package/dist/types.backup/deps/ssr.d.ts +0 -1
  177. package/dist/types.backup/encode-kv.d.ts +0 -35
  178. package/dist/types.backup/errors.d.ts +0 -226
  179. package/dist/types.backup/escape-script.d.ts +0 -44
  180. package/dist/types.backup/handle.d.ts +0 -93
  181. package/dist/types.backup/handles/MetaTags.d.ts +0 -17
  182. package/dist/types.backup/handles/Scripts.d.ts +0 -38
  183. package/dist/types.backup/handles/breadcrumbs.d.ts +0 -43
  184. package/dist/types.backup/handles/deferred-resolution.d.ts +0 -53
  185. package/dist/types.backup/handles/is-thenable.d.ts +0 -12
  186. package/dist/types.backup/handles/meta.d.ts +0 -43
  187. package/dist/types.backup/handles/script.d.ts +0 -139
  188. package/dist/types.backup/host/cookie-handler.d.ts +0 -8
  189. package/dist/types.backup/host/errors.d.ts +0 -40
  190. package/dist/types.backup/host/index.d.ts +0 -33
  191. package/dist/types.backup/host/pattern-matcher.d.ts +0 -30
  192. package/dist/types.backup/host/router.d.ts +0 -12
  193. package/dist/types.backup/host/testing.d.ts +0 -41
  194. package/dist/types.backup/host/types.d.ts +0 -148
  195. package/dist/types.backup/host/utils.d.ts +0 -20
  196. package/dist/types.backup/href-client.d.ts +0 -214
  197. package/dist/types.backup/index.d.ts +0 -112
  198. package/dist/types.backup/index.rsc.d.ts +0 -51
  199. package/dist/types.backup/internal-debug.d.ts +0 -1
  200. package/dist/types.backup/loader-store.d.ts +0 -193
  201. package/dist/types.backup/loader.d.ts +0 -18
  202. package/dist/types.backup/loader.rsc.d.ts +0 -18
  203. package/dist/types.backup/missing-id-error.d.ts +0 -1
  204. package/dist/types.backup/outlet-context.d.ts +0 -12
  205. package/dist/types.backup/outlet-provider.d.ts +0 -12
  206. package/dist/types.backup/prerender/build-shell-capture.d.ts +0 -104
  207. package/dist/types.backup/prerender/param-hash.d.ts +0 -6
  208. package/dist/types.backup/prerender/shell-manifest-key.d.ts +0 -18
  209. package/dist/types.backup/prerender/store.d.ts +0 -62
  210. package/dist/types.backup/prerender.d.ts +0 -292
  211. package/dist/types.backup/redirect-origin.d.ts +0 -55
  212. package/dist/types.backup/regex-escape.d.ts +0 -6
  213. package/dist/types.backup/render-error-thrower.d.ts +0 -13
  214. package/dist/types.backup/response-utils.d.ts +0 -35
  215. package/dist/types.backup/reverse.d.ts +0 -206
  216. package/dist/types.backup/root-error-boundary.d.ts +0 -32
  217. package/dist/types.backup/route-content-wrapper.d.ts +0 -40
  218. package/dist/types.backup/route-definition/dsl-helpers.d.ts +0 -130
  219. package/dist/types.backup/route-definition/helper-factories.d.ts +0 -22
  220. package/dist/types.backup/route-definition/helpers-types.d.ts +0 -392
  221. package/dist/types.backup/route-definition/index.d.ts +0 -7
  222. package/dist/types.backup/route-definition/redirect.d.ts +0 -48
  223. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +0 -19
  224. package/dist/types.backup/route-definition/use-item-types.d.ts +0 -1
  225. package/dist/types.backup/route-definition.d.ts +0 -1
  226. package/dist/types.backup/route-map-builder.d.ts +0 -127
  227. package/dist/types.backup/route-name.d.ts +0 -27
  228. package/dist/types.backup/route-types.d.ts +0 -172
  229. package/dist/types.backup/router/basename.d.ts +0 -10
  230. package/dist/types.backup/router/content-negotiation.d.ts +0 -91
  231. package/dist/types.backup/router/debug-manifest.d.ts +0 -7
  232. package/dist/types.backup/router/error-handling.d.ts +0 -76
  233. package/dist/types.backup/router/find-match.d.ts +0 -19
  234. package/dist/types.backup/router/handler-context.d.ts +0 -41
  235. package/dist/types.backup/router/instrument.d.ts +0 -161
  236. package/dist/types.backup/router/intercept-resolution.d.ts +0 -79
  237. package/dist/types.backup/router/lazy-includes.d.ts +0 -26
  238. package/dist/types.backup/router/loader-resolution.d.ts +0 -63
  239. package/dist/types.backup/router/logging.d.ts +0 -41
  240. package/dist/types.backup/router/manifest.d.ts +0 -8
  241. package/dist/types.backup/router/match-api.d.ts +0 -19
  242. package/dist/types.backup/router/match-context.d.ts +0 -184
  243. package/dist/types.backup/router/match-handlers.d.ts +0 -49
  244. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +0 -113
  245. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +0 -113
  246. package/dist/types.backup/router/match-middleware/cache-store.d.ts +0 -112
  247. package/dist/types.backup/router/match-middleware/index.d.ts +0 -80
  248. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +0 -116
  249. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +0 -94
  250. package/dist/types.backup/router/match-pipelines.d.ts +0 -103
  251. package/dist/types.backup/router/match-result.d.ts +0 -114
  252. package/dist/types.backup/router/metrics.d.ts +0 -6
  253. package/dist/types.backup/router/middleware-types.d.ts +0 -74
  254. package/dist/types.backup/router/middleware.d.ts +0 -116
  255. package/dist/types.backup/router/navigation-snapshot.d.ts +0 -22
  256. package/dist/types.backup/router/params-util.d.ts +0 -8
  257. package/dist/types.backup/router/parse-pattern.d.ts +0 -38
  258. package/dist/types.backup/router/pattern-matching.d.ts +0 -169
  259. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +0 -27
  260. package/dist/types.backup/router/prefetch-limits.d.ts +0 -20
  261. package/dist/types.backup/router/prerender-match.d.ts +0 -50
  262. package/dist/types.backup/router/preview-match.d.ts +0 -22
  263. package/dist/types.backup/router/request-classification.d.ts +0 -104
  264. package/dist/types.backup/router/revalidation.d.ts +0 -57
  265. package/dist/types.backup/router/route-snapshot.d.ts +0 -112
  266. package/dist/types.backup/router/router-context.d.ts +0 -137
  267. package/dist/types.backup/router/router-interfaces.d.ts +0 -432
  268. package/dist/types.backup/router/router-options.d.ts +0 -738
  269. package/dist/types.backup/router/router-registry.d.ts +0 -15
  270. package/dist/types.backup/router/segment-resolution/fresh.d.ts +0 -55
  271. package/dist/types.backup/router/segment-resolution/helpers.d.ts +0 -93
  272. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +0 -33
  273. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +0 -44
  274. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +0 -90
  275. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +0 -53
  276. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +0 -85
  277. package/dist/types.backup/router/segment-resolution/static-store.d.ts +0 -17
  278. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +0 -16
  279. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +0 -28
  280. package/dist/types.backup/router/segment-resolution.d.ts +0 -3
  281. package/dist/types.backup/router/segment-wrappers.d.ts +0 -53
  282. package/dist/types.backup/router/state-cookie-name.d.ts +0 -1
  283. package/dist/types.backup/router/substitute-pattern-params.d.ts +0 -23
  284. package/dist/types.backup/router/telemetry-otel.d.ts +0 -113
  285. package/dist/types.backup/router/telemetry.d.ts +0 -215
  286. package/dist/types.backup/router/timeout.d.ts +0 -68
  287. package/dist/types.backup/router/tracing.d.ts +0 -125
  288. package/dist/types.backup/router/trie-matching.d.ts +0 -32
  289. package/dist/types.backup/router/types.d.ts +0 -98
  290. package/dist/types.backup/router/url-params.d.ts +0 -26
  291. package/dist/types.backup/router.d.ts +0 -7
  292. package/dist/types.backup/rsc/capture-queue.d.ts +0 -6
  293. package/dist/types.backup/rsc/full-payload.d.ts +0 -22
  294. package/dist/types.backup/rsc/handler-context.d.ts +0 -31
  295. package/dist/types.backup/rsc/handler.d.ts +0 -9
  296. package/dist/types.backup/rsc/helpers.d.ts +0 -213
  297. package/dist/types.backup/rsc/index.d.ts +0 -17
  298. package/dist/types.backup/rsc/json-route-result.d.ts +0 -20
  299. package/dist/types.backup/rsc/loader-fetch.d.ts +0 -14
  300. package/dist/types.backup/rsc/manifest-init.d.ts +0 -18
  301. package/dist/types.backup/rsc/nonce.d.ts +0 -28
  302. package/dist/types.backup/rsc/origin-guard.d.ts +0 -50
  303. package/dist/types.backup/rsc/progressive-enhancement.d.ts +0 -19
  304. package/dist/types.backup/rsc/redirect-guard.d.ts +0 -35
  305. package/dist/types.backup/rsc/response-cache-serve.d.ts +0 -46
  306. package/dist/types.backup/rsc/response-error.d.ts +0 -19
  307. package/dist/types.backup/rsc/response-route-handler.d.ts +0 -29
  308. package/dist/types.backup/rsc/rsc-rendering.d.ts +0 -23
  309. package/dist/types.backup/rsc/runtime-warnings.d.ts +0 -22
  310. package/dist/types.backup/rsc/server-action.d.ts +0 -68
  311. package/dist/types.backup/rsc/shell-build-manifest.d.ts +0 -84
  312. package/dist/types.backup/rsc/shell-capture-constants.d.ts +0 -27
  313. package/dist/types.backup/rsc/shell-capture.d.ts +0 -374
  314. package/dist/types.backup/rsc/shell-serve.d.ts +0 -136
  315. package/dist/types.backup/rsc/ssr-setup.d.ts +0 -48
  316. package/dist/types.backup/rsc/transition-gate.d.ts +0 -27
  317. package/dist/types.backup/rsc/types.d.ts +0 -290
  318. package/dist/types.backup/runtime-env.d.ts +0 -1
  319. package/dist/types.backup/search-params.d.ts +0 -125
  320. package/dist/types.backup/segment-content-promise.d.ts +0 -13
  321. package/dist/types.backup/segment-fragments.d.ts +0 -56
  322. package/dist/types.backup/segment-loader-promise.d.ts +0 -22
  323. package/dist/types.backup/segment-system.d.ts +0 -84
  324. package/dist/types.backup/serialize.d.ts +0 -164
  325. package/dist/types.backup/server/context.d.ts +0 -494
  326. package/dist/types.backup/server/cookie-parse.d.ts +0 -10
  327. package/dist/types.backup/server/cookie-store.d.ts +0 -107
  328. package/dist/types.backup/server/fetchable-loader-store.d.ts +0 -20
  329. package/dist/types.backup/server/handle-store.d.ts +0 -100
  330. package/dist/types.backup/server/loader-registry.d.ts +0 -32
  331. package/dist/types.backup/server/request-context.d.ts +0 -596
  332. package/dist/types.backup/server/root-layout.d.ts +0 -3
  333. package/dist/types.backup/server.d.ts +0 -15
  334. package/dist/types.backup/ssr/index.d.ts +0 -233
  335. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +0 -3
  336. package/dist/types.backup/ssr/preinit-client-references.d.ts +0 -71
  337. package/dist/types.backup/ssr/ssr-root.d.ts +0 -69
  338. package/dist/types.backup/static-handler.d.ts +0 -57
  339. package/dist/types.backup/testing/cache-status.d.ts +0 -63
  340. package/dist/types.backup/testing/collect-handle.d.ts +0 -20
  341. package/dist/types.backup/testing/dispatch.d.ts +0 -123
  342. package/dist/types.backup/testing/dom.entry.d.ts +0 -15
  343. package/dist/types.backup/testing/e2e/fixture.d.ts +0 -37
  344. package/dist/types.backup/testing/e2e/index.d.ts +0 -30
  345. package/dist/types.backup/testing/e2e/matchers.d.ts +0 -17
  346. package/dist/types.backup/testing/e2e/page-helpers.d.ts +0 -62
  347. package/dist/types.backup/testing/e2e/parity.d.ts +0 -111
  348. package/dist/types.backup/testing/e2e/server.d.ts +0 -35
  349. package/dist/types.backup/testing/flight-matchers.d.ts +0 -55
  350. package/dist/types.backup/testing/flight-normalize.d.ts +0 -1
  351. package/dist/types.backup/testing/flight-tree.d.ts +0 -192
  352. package/dist/types.backup/testing/flight.d.ts +0 -115
  353. package/dist/types.backup/testing/flight.entry.d.ts +0 -27
  354. package/dist/types.backup/testing/generated-routes.d.ts +0 -66
  355. package/dist/types.backup/testing/index.d.ts +0 -52
  356. package/dist/types.backup/testing/internal/context.d.ts +0 -225
  357. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +0 -1
  358. package/dist/types.backup/testing/internal/seed-vars.d.ts +0 -30
  359. package/dist/types.backup/testing/render-handler.d.ts +0 -160
  360. package/dist/types.backup/testing/render-route.d.ts +0 -246
  361. package/dist/types.backup/testing/run-loader.d.ts +0 -186
  362. package/dist/types.backup/testing/run-middleware.d.ts +0 -132
  363. package/dist/types.backup/testing/run-transition-when.d.ts +0 -77
  364. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +0 -6
  365. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +0 -13
  366. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +0 -7
  367. package/dist/types.backup/testing/vitest-stubs/version.d.ts +0 -1
  368. package/dist/types.backup/testing/vitest.d.ts +0 -205
  369. package/dist/types.backup/theme/ThemeProvider.d.ts +0 -13
  370. package/dist/types.backup/theme/ThemeScript.d.ts +0 -45
  371. package/dist/types.backup/theme/constants.d.ts +0 -39
  372. package/dist/types.backup/theme/index.d.ts +0 -29
  373. package/dist/types.backup/theme/theme-context.d.ts +0 -21
  374. package/dist/types.backup/theme/theme-script.d.ts +0 -26
  375. package/dist/types.backup/theme/types.d.ts +0 -162
  376. package/dist/types.backup/theme/use-theme.d.ts +0 -8
  377. package/dist/types.backup/types/boundaries.d.ts +0 -93
  378. package/dist/types.backup/types/cache-types.d.ts +0 -191
  379. package/dist/types.backup/types/error-types.d.ts +0 -114
  380. package/dist/types.backup/types/global-namespace.d.ts +0 -90
  381. package/dist/types.backup/types/handler-context.d.ts +0 -658
  382. package/dist/types.backup/types/index.d.ts +0 -11
  383. package/dist/types.backup/types/loader-types.d.ts +0 -182
  384. package/dist/types.backup/types/request-scope.d.ts +0 -93
  385. package/dist/types.backup/types/route-config.d.ts +0 -105
  386. package/dist/types.backup/types/route-entry.d.ts +0 -95
  387. package/dist/types.backup/types/segments.d.ts +0 -234
  388. package/dist/types.backup/types.d.ts +0 -1
  389. package/dist/types.backup/urls/include-helper.d.ts +0 -17
  390. package/dist/types.backup/urls/include-provider.d.ts +0 -27
  391. package/dist/types.backup/urls/index.d.ts +0 -6
  392. package/dist/types.backup/urls/path-helper-types.d.ts +0 -197
  393. package/dist/types.backup/urls/path-helper.d.ts +0 -12
  394. package/dist/types.backup/urls/pattern-types.d.ts +0 -166
  395. package/dist/types.backup/urls/response-types.d.ts +0 -67
  396. package/dist/types.backup/urls/type-extraction.d.ts +0 -157
  397. package/dist/types.backup/urls/urls-function.d.ts +0 -24
  398. package/dist/types.backup/urls.d.ts +0 -1
  399. package/dist/types.backup/use-loader.d.ts +0 -150
  400. package/dist/types.backup/vercel/index.d.ts +0 -10
  401. package/dist/types.backup/vercel/tracing.d.ts +0 -70
  402. package/dist/types.backup/vite/debug.d.ts +0 -80
  403. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +0 -12
  404. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +0 -65
  405. package/dist/types.backup/vite/discovery/discover-routers.d.ts +0 -17
  406. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +0 -113
  407. package/dist/types.backup/vite/discovery/gate-state.d.ts +0 -79
  408. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +0 -24
  409. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +0 -32
  410. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +0 -22
  411. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +0 -40
  412. package/dist/types.backup/vite/discovery/state.d.ts +0 -162
  413. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +0 -15
  414. package/dist/types.backup/vite/index.d.ts +0 -11
  415. package/dist/types.backup/vite/inject-client-debug.d.ts +0 -56
  416. package/dist/types.backup/vite/plugin-types.d.ts +0 -298
  417. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +0 -6
  418. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +0 -40
  419. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +0 -35
  420. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +0 -64
  421. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +0 -18
  422. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +0 -37
  423. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +0 -19
  424. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +0 -10
  425. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +0 -8
  426. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +0 -13
  427. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +0 -29
  428. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +0 -6
  429. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +0 -25
  430. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +0 -20
  431. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +0 -20
  432. package/dist/types.backup/vite/plugins/vercel-output.d.ts +0 -85
  433. package/dist/types.backup/vite/plugins/version-injector.d.ts +0 -21
  434. package/dist/types.backup/vite/plugins/version-plugin.d.ts +0 -19
  435. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +0 -36
  436. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +0 -7
  437. package/dist/types.backup/vite/rango.d.ts +0 -29
  438. package/dist/types.backup/vite/router-discovery.d.ts +0 -23
  439. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +0 -64
  440. package/dist/types.backup/vite/utils/banner.d.ts +0 -2
  441. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +0 -28
  442. package/dist/types.backup/vite/utils/client-chunks.d.ts +0 -55
  443. package/dist/types.backup/vite/utils/directive-prologue.d.ts +0 -16
  444. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +0 -37
  445. package/dist/types.backup/vite/utils/manifest-utils.d.ts +0 -7
  446. package/dist/types.backup/vite/utils/package-resolution.d.ts +0 -6
  447. package/dist/types.backup/vite/utils/prerender-utils.d.ts +0 -32
  448. package/dist/types.backup/vite/utils/shared-utils.d.ts +0 -55
@@ -1,7 +0,0 @@
1
- export declare const createFromReadableStream: () => never;
2
- export declare const renderToReadableStream: () => never;
3
- export declare const loadServerAction: () => undefined;
4
- export declare const decodeReply: () => undefined;
5
- export declare const decodeAction: () => undefined;
6
- export declare const decodeFormState: () => undefined;
7
- export declare const createTemporaryReferenceSet: () => Record<string, never>;
@@ -1 +0,0 @@
1
- export declare const VERSION = "";
@@ -1,205 +0,0 @@
1
- /**
2
- * @rangojs/router/testing/vitest
3
- *
4
- * Vitest setup helper for the UNIT + INTEGRATION + DOM test project of a
5
- * @rangojs/router consumer app. It returns the `resolve.alias` entries that make
6
- * a real app's router / loaders / middleware importable in a bare Vitest process.
7
- *
8
- * Why this is needed (the documented "vi.mock(plugin-rsc) + import router"
9
- * recipe is not sufficient for a real app):
10
- *
11
- * - `@rangojs/router` resolves to SERVER-ONLY STUBS outside the `react-server`
12
- * condition — `urls()`, `createRouter()`, `cookies()`, `getRequestContext()`
13
- * throw "only available in a react-server environment". Importing the app's own
14
- * router/loaders/middleware then fails immediately. Vitest does NOT apply the
15
- * `react-server` condition to bare-package exports resolution, and enabling it
16
- * globally flips React to its server build (no `createContext`), crashing the
17
- * router's client-boundary imports. The surgical fix is to alias ONLY the bare
18
- * `@rangojs/router` specifier to its react-server entry (real impls) while
19
- * leaving React as the client build — which is exactly what this helper does.
20
- * - The build-only `@rangojs/router:version` virtual and `@vitejs/plugin-rsc/rsc`
21
- * (whose real body imports unresolvable Vite virtuals) are stubbed.
22
- * - Cloudflare apps additionally import the `cloudflare:workers` /
23
- * `cloudflare:email` runtime virtuals; pass `{ preset: "cloudflare" }` to stub them.
24
- *
25
- * Usage (recommended one-call form — see {@link rangoTestConfig}):
26
- *
27
- * ```ts
28
- * // vitest.config.ts
29
- * import { defineConfig } from "vitest/config";
30
- * import { rangoTestConfig } from "@rangojs/router/testing/vitest";
31
- *
32
- * export default defineConfig({
33
- * test: {
34
- * globals: true,
35
- * include: ["test/**\/*.test.{ts,tsx}"],
36
- * environment: "node",
37
- * ...rangoTestConfig({ preset: "cloudflare" }),
38
- * },
39
- * });
40
- * ```
41
- *
42
- * `rangoTestConfig` bundles the resolve aliases ({@link rangoTestAliases}) with
43
- * the `server.deps.inline` contract ({@link rangoInlineDeps}) an installed
44
- * consumer needs — @rangojs/router ships as TS source, and without `deps.inline`
45
- * Vitest hands those `.ts` files to Node, which on Node >= 23 throws
46
- * `ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING`. Use the lower-level
47
- * `rangoTestAliases` directly only if you wire `deps.inline` yourself.
48
- *
49
- * Notes:
50
- * - The Flight project (real RSC rendering via `@rangojs/router/testing/flight`)
51
- * uses the `react-server` condition AND needs this same alias whenever a
52
- * rendered handler/component imports a server API (`getRequestContext`,
53
- * `cookies`) from the bare `@rangojs/router` — without it that import resolves
54
- * to the throwing out-of-react-server stub (`resolve.conditions` alone is not
55
- * reliably applied to bare-package export resolution). The alias points at
56
- * `index.rsc.ts` (the real react-server build) and leaves React itself
57
- * untouched, so it does NOT crash the server React build. The router's OWN
58
- * Flight tests omit it only because they import via RELATIVE paths, not the
59
- * bare specifier; a consumer importing the bare specifier must include it. See
60
- * the testing skill (`skills/testing/setup.md`, shipped in the package) for
61
- * the complete Flight config.
62
- * - `renderRoute` (`@rangojs/router/testing/dom`) tests run in this same project
63
- * under a DOM environment (`happy-dom`/`jsdom`); the alias does not affect them.
64
- * - A router using `Prerender()` / `createLoader()` / `Static()` now CONSTRUCTS in
65
- * a bare test: each assigns a process-stable runtime fallback `$$id` ONLY under
66
- * a test runner (`process.env.VITEST`), so `createRouter().routes(...)` builds
67
- * without the "missing `$$id`" throw (for `dispatch` / `assertGeneratedRoutesMatch`).
68
- * Outside a test runner (a real build) a missing id still THROWS — so an
69
- * unsupported handler shape the plugin skipped (e.g. `export let`) fails loud
70
- * rather than getting a silent synthetic id. (The plugin always injects for
71
- * supported `export const` shapes, and the static manifest keys on that id.)
72
- * - Importing your app's whole router *file* can still fail for app-specific
73
- * reasons (page modules pulling their own deps, or plugin `virtual:` modules
74
- * that need the rango plugin) — build whole-router `dispatch`/drift checks from
75
- * a focused include, or use e2e.
76
- */
77
- /** A single Vite/Vitest resolve alias entry. Structurally a Vite `Alias`. */
78
- export interface TestAlias {
79
- find: string | RegExp;
80
- replacement: string;
81
- }
82
- /** Options for {@link rangoTestAliases}. */
83
- export interface RangoTestAliasOptions {
84
- /**
85
- * Deployment preset, matching `rango({ preset })` in the Vite plugin. With
86
- * `"cloudflare"` the helper additionally stubs the Cloudflare Workers runtime
87
- * virtuals (`cloudflare:workers` / `cloudflare:email`) a CF app's route tree
88
- * imports. A string (not a boolean) so more presets can be added without an
89
- * API change. Default: `"node"`.
90
- */
91
- preset?: "node" | "cloudflare";
92
- }
93
- /**
94
- * Build the `resolve.alias` entries a consumer's node/DOM Vitest project needs to
95
- * import a real @rangojs/router app's router/loaders/middleware. Spread into a
96
- * Vitest config: `resolve: { alias: rangoTestAliases(...) }` (concat your own
97
- * aliases as needed).
98
- */
99
- export declare function rangoTestAliases(opts?: RangoTestAliasOptions): TestAlias[];
100
- /**
101
- * Vitest `server.deps.inline` patterns that force Vite (not Node) to transpile
102
- * @rangojs/router's TypeScript source under test.
103
- *
104
- * REQUIRED for an installed (node_modules) consumer: @rangojs/router ships as TS
105
- * source, and Vitest externalizes node_modules by default — so without this Node
106
- * loads the `.ts` files directly and, on Node >= 23, throws
107
- * `ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING`. In this monorepo it is a no-op
108
- * (the workspace symlink resolves to a realpath outside node_modules, which Vite
109
- * already transpiles), which is precisely why an in-repo dogfood never surfaces
110
- * the need and the contract has to be shipped explicitly.
111
- */
112
- export declare const rangoInlineDeps: RegExp[];
113
- /** The Vitest `test`-block fragment {@link rangoTestConfig} returns. */
114
- export interface RangoTestConfig {
115
- alias: TestAlias[];
116
- server: {
117
- deps: {
118
- inline: RegExp[];
119
- };
120
- };
121
- }
122
- /**
123
- * The complete Vitest `test`-block fragment a consumer needs: the resolve
124
- * aliases ({@link rangoTestAliases}) AND the `server.deps.inline` contract
125
- * ({@link rangoInlineDeps}). Spread it into your `test` block so both land in
126
- * one place and a consumer cannot forget the `deps.inline` half (omitting it
127
- * loads rango's TS source through Node and breaks on Node >= 23):
128
- *
129
- * ```ts
130
- * // vitest.config.ts
131
- * import { defineConfig } from "vitest/config";
132
- * import { rangoTestConfig } from "@rangojs/router/testing/vitest";
133
- *
134
- * export default defineConfig({
135
- * test: {
136
- * globals: true,
137
- * include: ["test/**\/*.test.{ts,tsx}"],
138
- * environment: "node",
139
- * ...rangoTestConfig({ preset: "cloudflare" }),
140
- * },
141
- * });
142
- * ```
143
- */
144
- export declare function rangoTestConfig(opts?: RangoTestAliasOptions): RangoTestConfig;
145
- /** A minimal Vite plugin shape (avoids a hard dependency on Vite's types). */
146
- interface FlightTransformPlugin {
147
- name: string;
148
- transform(code: string, id: string): Promise<{
149
- code: string;
150
- map: unknown;
151
- } | undefined>;
152
- }
153
- /**
154
- * A Vite plugin for the FLIGHT (react-server) Vitest project that applies the
155
- * `"use client"` transform to a consumer's client modules — the same transform a
156
- * real build applies. With it, `renderServerTree` (`@rangojs/router/testing/flight`)
157
- * resolves client islands AUTOMATICALLY from the server tree's own imports: no
158
- * `clientComponents` to pass, no filename convention. Without it, a `"use client"`
159
- * module is imported as a plain (unmarked) function and would render server-side,
160
- * so you must list islands via `renderServerTree(..., { clientComponents })`.
161
- *
162
- * Add it to your react-server Vitest project. This is the COMPLETE config — the
163
- * alias, `server.deps.inline`, and `NODE_ENV` are load-bearing, not optional (see
164
- * the inline notes). The testing skill (`skills/testing/setup.md`, shipped in the
165
- * package) has the annotated walkthrough.
166
- *
167
- * ```ts
168
- * // vitest.rsc.config.ts
169
- * import { defineConfig } from "vitest/config";
170
- * import {
171
- * rangoUseClientTransform,
172
- * rangoTestAliases,
173
- * rangoInlineDeps,
174
- * } from "@rangojs/router/testing/vitest";
175
- *
176
- * // Flight serialization needs React's production build; the dev build's jsxDEV
177
- * // crashes / yields unstable snapshots.
178
- * process.env.NODE_ENV = "production";
179
- *
180
- * export default defineConfig({
181
- * plugins: [rangoUseClientTransform()],
182
- * resolve: {
183
- * conditions: ["react-server"],
184
- * // Bare `@rangojs/router` -> its react-server build, so a handler/component
185
- * // reading getRequestContext()/cookies() resolves the real impl, not the
186
- * // throwing stub. Pass { preset: "cloudflare" } for a CF app.
187
- * alias: rangoTestAliases(),
188
- * },
189
- * test: {
190
- * include: ["test/**\/*.rsc-test.{ts,tsx}"],
191
- * pool: "forks",
192
- * execArgv: ["--conditions=react-server"],
193
- * // Required for an INSTALLED consumer on Node >= 23 (rango ships TS source).
194
- * server: { deps: { inline: rangoInlineDeps } },
195
- * },
196
- * });
197
- * ```
198
- *
199
- * Each `"use client"` module's exports are replaced with client references keyed
200
- * by the module's absolute path (the boundary id), the export name becoming the
201
- * boundary name. Modules without the directive (server components) are untouched,
202
- * so `renderToFlightString` of pure leaf trees is unaffected.
203
- */
204
- export declare function rangoUseClientTransform(): FlightTransformPlugin;
205
- export {};
@@ -1,13 +0,0 @@
1
- /**
2
- * ThemeProvider - Client component that provides theme state and management.
3
- *
4
- * Features:
5
- * - Syncs theme to cookie/localStorage
6
- * - Detects system preference changes
7
- * - Cross-tab synchronization via storage events
8
- * - Updates HTML element attribute when theme changes
9
- * - Handles SSR hydration by deferring system theme detection
10
- */
11
- import React from "react";
12
- import type { ThemeProviderProps } from "./types.js";
13
- export declare function ThemeProvider({ config, initialTheme, children, }: ThemeProviderProps): React.ReactNode;
@@ -1,45 +0,0 @@
1
- /**
2
- * ThemeScript - Server component that renders an inline script for FOUC prevention.
3
- *
4
- * This component renders a blocking inline script that:
5
- * 1. Reads theme from cookie/localStorage before paint
6
- * 2. Applies the theme to the HTML element immediately
7
- * 3. Prevents flash of unstyled content (FOUC)
8
- *
9
- * Must be placed in the <head> element of your document, before any stylesheets.
10
- *
11
- * Note: when theme is enabled in the router config, `<MetaTags />` ALREADY
12
- * renders this FOUC script. Use `<ThemeScript />` only if you do NOT render
13
- * `<MetaTags />`. Rendering both is safe — the inline script guards the
14
- * matchMedia listener registration against double-running — but it is redundant.
15
- *
16
- * @example
17
- * ```tsx
18
- * // In your document component. Use ThemeScript only when you do not render MetaTags.
19
- * import { ThemeScript } from "@rangojs/router/theme";
20
- *
21
- * export function Document({ children }) {
22
- * return (
23
- * <html lang="en" suppressHydrationWarning>
24
- * <head>
25
- * <ThemeScript config={config} />
26
- * </head>
27
- * <body>{children}</body>
28
- * </html>
29
- * );
30
- * }
31
- * ```
32
- */
33
- import React from "react";
34
- import type { ResolvedThemeConfig } from "./types.js";
35
- export interface ThemeScriptProps {
36
- /**
37
- * Theme configuration - passed from router.themeConfig
38
- */
39
- config: ResolvedThemeConfig;
40
- /**
41
- * Optional nonce for CSP
42
- */
43
- nonce?: string;
44
- }
45
- export declare function ThemeScript({ config, nonce, }: ThemeScriptProps): React.ReactNode;
@@ -1,39 +0,0 @@
1
- /**
2
- * Default values for theme configuration
3
- */
4
- import type { ResolvedThemeConfig, ThemeConfig } from "./types.js";
5
- export declare const THEME_DEFAULTS: {
6
- readonly defaultTheme: "system";
7
- readonly themes: readonly ["light", "dark"];
8
- readonly attribute: "class";
9
- readonly storageKey: "theme";
10
- readonly enableSystem: true;
11
- readonly enableColorScheme: true;
12
- };
13
- export declare const THEME_COOKIE: {
14
- readonly maxAge: number;
15
- readonly path: string;
16
- readonly sameSite: "lax";
17
- };
18
- /**
19
- * Single owner of the setTheme validity rule, shared by the client
20
- * (ThemeProvider) and server (ctx.setTheme) guards so they cannot drift.
21
- *
22
- * A theme is valid when it is one of the configured concrete themes, OR
23
- * "system" but only while system detection is enabled. Rejecting "system" when
24
- * `enableSystem` is false is load-bearing: applyThemeToDocument would otherwise
25
- * leave "system" unresolved and write a bogus class="system" / colorScheme
26
- * ="system" on <html> (the same bogus value resolveThemeConfig coerces away for
27
- * the default).
28
- */
29
- export declare function isValidTheme(theme: string, config: Pick<ResolvedThemeConfig, "themes" | "enableSystem">): boolean;
30
- /**
31
- * Emit the shared "[Theme] Invalid theme value" warning. One owner of the
32
- * message string so the client and server guards stay byte-identical.
33
- *
34
- * The valid-values list mirrors isValidTheme: "system" is only listed when
35
- * enableSystem is true, otherwise the message would advertise a value the guard
36
- * itself rejects.
37
- */
38
- export declare function warnInvalidTheme(theme: string, config: Pick<ResolvedThemeConfig, "themes" | "enableSystem">): void;
39
- export declare function resolveThemeConfig(config: ThemeConfig | true): ResolvedThemeConfig;
@@ -1,29 +0,0 @@
1
- /**
2
- * Theme module exports for @rangojs/router/theme
3
- *
4
- * This module provides the public theme API:
5
- * - useTheme: Hook for accessing theme state in client components
6
- * - ThemeProvider: Component for manual theme provider setup (typically not needed)
7
- * - ThemeScript: FOUC-prevention script component for document/head usage
8
- * - Types for theme configuration
9
- *
10
- * @example
11
- * ```tsx
12
- * // In a client component
13
- * import { useTheme } from "@rangojs/router/theme";
14
- *
15
- * function ThemeToggle() {
16
- * const { theme, setTheme, themes } = useTheme();
17
- * return (
18
- * <select value={theme} onChange={e => setTheme(e.target.value)}>
19
- * {themes.map(t => <option key={t}>{t}</option>)}
20
- * </select>
21
- * );
22
- * }
23
- * ```
24
- */
25
- export { useTheme } from "./use-theme.js";
26
- export { ThemeProvider } from "./ThemeProvider.js";
27
- export { ThemeScript, type ThemeScriptProps } from "./ThemeScript.js";
28
- export type { Theme, ResolvedTheme, ThemeAttribute, ThemeConfig, ResolvedThemeConfig, UseThemeReturn, ThemeProviderProps, ThemeContextValue, } from "./types.js";
29
- export { THEME_DEFAULTS, THEME_COOKIE } from "./constants.js";
@@ -1,21 +0,0 @@
1
- /**
2
- * Theme context for sharing theme state and configuration.
3
- *
4
- * Used by:
5
- * - ThemeProvider to provide theme state
6
- * - useTheme hook to access theme state
7
- * - MetaTags to check if theme is enabled and render script
8
- */
9
- import { type Context } from "react";
10
- import type { ThemeContextValue } from "./types.js";
11
- /**
12
- * React context for theme state
13
- * null when theme is not enabled in router config
14
- */
15
- export declare const ThemeContext: Context<ThemeContextValue | null>;
16
- export declare function useThemeContext(): ThemeContextValue | null;
17
- /**
18
- * Get theme context, throwing if not available
19
- * Used by useTheme hook
20
- */
21
- export declare function requireThemeContext(): ThemeContextValue;
@@ -1,26 +0,0 @@
1
- /**
2
- * Generates an inline script for FOUC prevention.
3
- *
4
- * This script runs synchronously before page paint to:
5
- * 1. Read theme from cookie or localStorage
6
- * 2. Detect system preference if theme is "system"
7
- * 3. Apply theme to HTML element via class or data attribute
8
- * 4. Optionally set color-scheme CSS property
9
- *
10
- * The script is minified and inlined in <head> before any other content.
11
- */
12
- import type { ResolvedThemeConfig } from "./types.js";
13
- /**
14
- * Generate the inline script for theme initialization
15
- *
16
- * The script is designed to:
17
- * - Run synchronously before paint (blocking)
18
- * - Be as small as possible to minimize blocking time
19
- * - Work without any external dependencies
20
- * - Handle all edge cases (no localStorage, no cookie, etc.)
21
- */
22
- export declare function generateThemeScript(config: ResolvedThemeConfig): string;
23
- /**
24
- * Generate nonce attribute string if nonce is provided
25
- */
26
- export declare function getNonceAttribute(nonce?: string): string;
@@ -1,162 +0,0 @@
1
- /**
2
- * Theme type definitions for rsc-router theme system.
3
- *
4
- * The theme system provides:
5
- * - Opt-in via router config
6
- * - FOUC prevention via inline script
7
- * - Server-side theme access via ctx.theme/ctx.setTheme
8
- * - Client-side theme access via useTheme hook
9
- */
10
- /**
11
- * Theme value - stored in cookies/localStorage
12
- */
13
- export type Theme = "light" | "dark" | "system";
14
- /**
15
- * Resolved theme - actual visual appearance (system preference resolved)
16
- */
17
- export type ResolvedTheme = "light" | "dark";
18
- /**
19
- * Attribute used to apply theme to HTML element
20
- * - "class": Adds theme value as CSS class (e.g., <html class="dark">)
21
- * - "data-*": Sets data attribute (e.g., <html data-theme="dark">)
22
- */
23
- export type ThemeAttribute = "class" | `data-${string}`;
24
- /**
25
- * Theme configuration for router
26
- *
27
- * @example
28
- * ```typescript
29
- * const router = createRouter<Env>({
30
- * theme: {
31
- * defaultTheme: "system",
32
- * themes: ["light", "dark"],
33
- * attribute: "class",
34
- * storageKey: "theme",
35
- * }
36
- * });
37
- * ```
38
- */
39
- export interface ThemeConfig {
40
- /**
41
- * Default theme when no preference is stored
42
- * @default "system"
43
- */
44
- defaultTheme?: Theme;
45
- /**
46
- * Available theme options
47
- * @default ["light", "dark"]
48
- */
49
- themes?: string[];
50
- /**
51
- * Attribute to apply to HTML element
52
- * @default "class"
53
- */
54
- attribute?: ThemeAttribute;
55
- /**
56
- * Key for cookie and localStorage
57
- * @default "theme"
58
- */
59
- storageKey?: string;
60
- /**
61
- * Enable system preference detection
62
- * When true, "system" theme will resolve based on prefers-color-scheme
63
- * @default true
64
- */
65
- enableSystem?: boolean;
66
- /**
67
- * Set CSS color-scheme property on HTML element
68
- * This enables native dark mode for form controls, scrollbars, etc.
69
- * @default true
70
- */
71
- enableColorScheme?: boolean;
72
- /**
73
- * Custom mapping of theme names to attribute values
74
- * Useful when theme names don't match desired attribute values
75
- *
76
- * @example
77
- * ```typescript
78
- * value: {
79
- * light: "light-mode",
80
- * dark: "dark-mode",
81
- * }
82
- * ```
83
- */
84
- value?: Record<string, string>;
85
- }
86
- /**
87
- * Resolved theme configuration with defaults applied
88
- */
89
- export interface ResolvedThemeConfig {
90
- defaultTheme: Theme;
91
- themes: string[];
92
- attribute: ThemeAttribute;
93
- storageKey: string;
94
- enableSystem: boolean;
95
- enableColorScheme: boolean;
96
- value: Record<string, string>;
97
- }
98
- /**
99
- * Return type from useTheme hook
100
- *
101
- * @example
102
- * ```tsx
103
- * function ThemeToggle() {
104
- * const { theme, setTheme, resolvedTheme, themes } = useTheme();
105
- *
106
- * return (
107
- * <select value={theme} onChange={e => setTheme(e.target.value as Theme)}>
108
- * {themes.map(t => <option key={t}>{t}</option>)}
109
- * </select>
110
- * );
111
- * }
112
- * ```
113
- */
114
- export interface UseThemeReturn {
115
- /**
116
- * Current theme setting ("light" | "dark" | "system")
117
- */
118
- theme: Theme;
119
- /**
120
- * Set the theme
121
- */
122
- setTheme: (theme: Theme) => void;
123
- /**
124
- * Resolved theme based on system preference
125
- * When theme is "system", this reflects the actual appearance
126
- */
127
- resolvedTheme: ResolvedTheme;
128
- /**
129
- * Current system preference ("light" | "dark")
130
- */
131
- systemTheme: ResolvedTheme;
132
- /**
133
- * Available theme options (includes "system" if enableSystem is true)
134
- */
135
- themes: string[];
136
- }
137
- /**
138
- * Props for ThemeProvider component
139
- */
140
- export interface ThemeProviderProps {
141
- /**
142
- * Theme configuration
143
- */
144
- config: ResolvedThemeConfig;
145
- /**
146
- * Initial theme from server (from cookie)
147
- */
148
- initialTheme?: Theme;
149
- /**
150
- * Children to render
151
- */
152
- children: React.ReactNode;
153
- }
154
- /**
155
- * Context value for ThemeContext
156
- */
157
- export interface ThemeContextValue extends UseThemeReturn {
158
- /**
159
- * Full theme configuration
160
- */
161
- config: ResolvedThemeConfig;
162
- }
@@ -1,8 +0,0 @@
1
- import type { UseThemeReturn } from "./types.js";
2
- /**
3
- * Hook to access theme state and methods.
4
- *
5
- * Must be used within a ThemeProvider (which is automatically included
6
- * in NavigationProvider when theme is enabled in router config).
7
- */
8
- export declare function useTheme(): UseThemeReturn;
@@ -1,93 +0,0 @@
1
- import type { ReactNode } from "react";
2
- export interface ErrorInfo {
3
- message: string;
4
- name: string;
5
- code?: string;
6
- stack?: string;
7
- cause?: unknown;
8
- segmentId: string;
9
- segmentType: "layout" | "route" | "parallel" | "loader" | "middleware" | "cache";
10
- }
11
- /**
12
- * Props passed to server-side error boundary fallback components
13
- *
14
- * Server error boundaries don't have a reset function since the error
15
- * occurred during server rendering. Users can navigate away or refresh.
16
- *
17
- * @example
18
- * ```typescript
19
- * function ProductErrorFallback({ error }: ErrorBoundaryFallbackProps) {
20
- * return (
21
- * <div>
22
- * <h2>Something went wrong loading the product</h2>
23
- * <p>{error.message}</p>
24
- * <a href="/">Go home</a>
25
- * </div>
26
- * );
27
- * }
28
- * ```
29
- */
30
- export interface ErrorBoundaryFallbackProps {
31
- error: ErrorInfo;
32
- }
33
- export type ErrorBoundaryHandler = (props: ErrorBoundaryFallbackProps) => ReactNode;
34
- /**
35
- * Props passed to client-side error boundary fallback components
36
- *
37
- * Client error boundaries have a reset function that clears the error state
38
- * and re-renders the children.
39
- *
40
- * @example
41
- * ```typescript
42
- * function ClientErrorFallback({ error, reset }: ClientErrorBoundaryFallbackProps) {
43
- * return (
44
- * <div>
45
- * <h2>Something went wrong</h2>
46
- * <p>{error.message}</p>
47
- * <button onClick={reset}>Try again</button>
48
- * </div>
49
- * );
50
- * }
51
- * ```
52
- */
53
- export interface ClientErrorBoundaryFallbackProps {
54
- error: ErrorInfo;
55
- reset: () => void;
56
- }
57
- export type LoaderDataResult<T = unknown> = {
58
- __loaderResult: true;
59
- ok: true;
60
- data: T;
61
- } | {
62
- __loaderResult: true;
63
- ok: false;
64
- error: ErrorInfo;
65
- fallback: ReactNode | null;
66
- };
67
- export declare function isLoaderDataResult(value: unknown): value is LoaderDataResult;
68
- export interface NotFoundInfo {
69
- message: string;
70
- segmentId: string;
71
- segmentType: "layout" | "route" | "parallel" | "loader" | "middleware" | "cache";
72
- pathname?: string;
73
- }
74
- /**
75
- * Props passed to notFound boundary fallback components
76
- *
77
- * @example
78
- * ```typescript
79
- * function ProductNotFound({ notFound }: NotFoundBoundaryFallbackProps) {
80
- * return (
81
- * <div>
82
- * <h2>Product Not Found</h2>
83
- * <p>{notFound.message}</p>
84
- * <a href="/products">Browse all products</a>
85
- * </div>
86
- * );
87
- * }
88
- * ```
89
- */
90
- export interface NotFoundBoundaryFallbackProps {
91
- notFound: NotFoundInfo;
92
- }
93
- export type NotFoundBoundaryHandler = (props: NotFoundBoundaryFallbackProps) => ReactNode;