gorsee 0.2.3 → 0.2.5

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 (532) hide show
  1. package/README.md +261 -213
  2. package/dist-pkg/ai/artifact-lifecycle.d.ts +25 -0
  3. package/dist-pkg/ai/artifact-lifecycle.js +98 -0
  4. package/dist-pkg/ai/bridge.d.ts +26 -0
  5. package/dist-pkg/ai/bridge.js +82 -0
  6. package/dist-pkg/ai/bundle.d.ts +46 -0
  7. package/dist-pkg/ai/bundle.js +247 -0
  8. package/dist-pkg/ai/contracts.d.ts +1 -0
  9. package/dist-pkg/ai/contracts.js +1 -0
  10. package/dist-pkg/ai/ide.d.ts +37 -0
  11. package/dist-pkg/ai/ide.js +56 -0
  12. package/dist-pkg/ai/index.d.ts +85 -0
  13. package/dist-pkg/ai/index.js +267 -0
  14. package/dist-pkg/ai/json.d.ts +6 -0
  15. package/dist-pkg/ai/json.js +14 -0
  16. package/dist-pkg/ai/mcp.d.ts +28 -0
  17. package/dist-pkg/ai/mcp.js +152 -0
  18. package/dist-pkg/ai/session-pack.d.ts +28 -0
  19. package/dist-pkg/ai/session-pack.js +57 -0
  20. package/dist-pkg/ai/store.d.ts +67 -0
  21. package/dist-pkg/ai/store.js +174 -0
  22. package/dist-pkg/ai/summary.d.ts +57 -0
  23. package/dist-pkg/ai/summary.js +148 -0
  24. package/dist-pkg/ai/watch.d.ts +15 -0
  25. package/dist-pkg/ai/watch.js +66 -0
  26. package/dist-pkg/auth/action-tokens.d.ts +50 -0
  27. package/dist-pkg/auth/action-tokens.js +79 -0
  28. package/dist-pkg/auth/index.d.ts +70 -0
  29. package/dist-pkg/auth/index.js +199 -0
  30. package/dist-pkg/auth/redis-session-store.d.ts +7 -0
  31. package/dist-pkg/auth/redis-session-store.js +42 -0
  32. package/dist-pkg/auth/signing.d.ts +4 -0
  33. package/dist-pkg/auth/signing.js +33 -0
  34. package/dist-pkg/auth/sqlite-session-store.d.ts +12 -0
  35. package/dist-pkg/auth/sqlite-session-store.js +83 -0
  36. package/dist-pkg/auth/store-utils.d.ts +2 -0
  37. package/dist-pkg/auth/store-utils.js +20 -0
  38. package/dist-pkg/bin/gorsee.js +2 -0
  39. package/dist-pkg/build/backends/experimental-rolldown.d.ts +6 -0
  40. package/dist-pkg/build/backends/experimental-rolldown.js +9 -0
  41. package/dist-pkg/build/backends/register.d.ts +7 -0
  42. package/dist-pkg/build/backends/register.js +24 -0
  43. package/dist-pkg/build/backends/rolldown.d.ts +16 -0
  44. package/dist-pkg/build/backends/rolldown.js +176 -0
  45. package/dist-pkg/build/client-backend.d.ts +31 -0
  46. package/dist-pkg/build/client-backend.js +97 -0
  47. package/dist-pkg/build/client.d.ts +12 -0
  48. package/dist-pkg/build/client.js +93 -0
  49. package/dist-pkg/build/css-modules.d.ts +10 -0
  50. package/dist-pkg/build/css-modules.js +51 -0
  51. package/dist-pkg/build/devalue-parse.d.ts +1 -0
  52. package/dist-pkg/build/devalue-parse.js +1 -0
  53. package/dist-pkg/build/diagnostics.d.ts +20 -0
  54. package/dist-pkg/build/diagnostics.js +35 -0
  55. package/dist-pkg/build/fixtures.d.ts +7 -0
  56. package/dist-pkg/build/fixtures.js +60 -0
  57. package/dist-pkg/build/framework-imports.d.ts +4 -0
  58. package/dist-pkg/build/framework-imports.js +58 -0
  59. package/dist-pkg/build/init.d.ts +1 -0
  60. package/dist-pkg/build/init.js +6 -0
  61. package/dist-pkg/build/manifest.d.ts +3 -0
  62. package/dist-pkg/build/manifest.js +23 -0
  63. package/dist-pkg/build/parity.d.ts +32 -0
  64. package/dist-pkg/build/parity.js +71 -0
  65. package/dist-pkg/build/plugin.d.ts +11 -0
  66. package/dist-pkg/build/plugin.js +8 -0
  67. package/dist-pkg/build/readiness.d.ts +11 -0
  68. package/dist-pkg/build/readiness.js +18 -0
  69. package/dist-pkg/build/route-client-transform.d.ts +17 -0
  70. package/dist-pkg/build/route-client-transform.js +48 -0
  71. package/dist-pkg/build/route-metadata.d.ts +6 -0
  72. package/dist-pkg/build/route-metadata.js +8 -0
  73. package/dist-pkg/build/rpc-transform.d.ts +1 -0
  74. package/dist-pkg/build/rpc-transform.js +44 -0
  75. package/dist-pkg/build/server-bundle.d.ts +4 -0
  76. package/dist-pkg/build/server-bundle.js +261 -0
  77. package/dist-pkg/build/server-strip.d.ts +2 -0
  78. package/dist-pkg/build/server-strip.js +32 -0
  79. package/dist-pkg/build/ssg.d.ts +12 -0
  80. package/dist-pkg/build/ssg.js +36 -0
  81. package/dist-pkg/cli/bun-plugin.d.ts +2 -0
  82. package/dist-pkg/cli/bun-plugin.js +14 -0
  83. package/dist-pkg/cli/canonical-import-rewrite.d.ts +18 -0
  84. package/dist-pkg/cli/canonical-import-rewrite.js +94 -0
  85. package/dist-pkg/cli/canonical-imports.d.ts +8 -0
  86. package/dist-pkg/cli/canonical-imports.js +131 -0
  87. package/dist-pkg/cli/check-ast.d.ts +20 -0
  88. package/dist-pkg/cli/check-ast.js +126 -0
  89. package/dist-pkg/cli/cmd-ai.d.ts +4 -0
  90. package/dist-pkg/cli/cmd-ai.js +290 -0
  91. package/dist-pkg/cli/cmd-build.d.ts +12 -0
  92. package/dist-pkg/cli/cmd-build.js +198 -0
  93. package/dist-pkg/cli/cmd-check.d.ts +25 -0
  94. package/dist-pkg/cli/cmd-check.js +573 -0
  95. package/dist-pkg/cli/cmd-create.d.ts +6 -0
  96. package/dist-pkg/cli/cmd-create.js +600 -0
  97. package/dist-pkg/cli/cmd-deploy.d.ts +6 -0
  98. package/dist-pkg/cli/cmd-deploy.js +381 -0
  99. package/dist-pkg/cli/cmd-dev.d.ts +5 -0
  100. package/dist-pkg/cli/cmd-dev.js +5 -0
  101. package/dist-pkg/cli/cmd-docs.d.ts +50 -0
  102. package/dist-pkg/cli/cmd-docs.js +122 -0
  103. package/dist-pkg/cli/cmd-generate.d.ts +12 -0
  104. package/dist-pkg/cli/cmd-generate.js +320 -0
  105. package/dist-pkg/cli/cmd-migrate.d.ts +7 -0
  106. package/dist-pkg/cli/cmd-migrate.js +42 -0
  107. package/dist-pkg/cli/cmd-routes.d.ts +6 -0
  108. package/dist-pkg/cli/cmd-routes.js +24 -0
  109. package/dist-pkg/cli/cmd-start.d.ts +13 -0
  110. package/dist-pkg/cli/cmd-start.js +32 -0
  111. package/dist-pkg/cli/cmd-test.d.ts +20 -0
  112. package/dist-pkg/cli/cmd-test.js +103 -0
  113. package/dist-pkg/cli/cmd-typegen.d.ts +7 -0
  114. package/dist-pkg/cli/cmd-typegen.js +66 -0
  115. package/dist-pkg/cli/cmd-upgrade.d.ts +38 -0
  116. package/dist-pkg/cli/cmd-upgrade.js +232 -0
  117. package/dist-pkg/cli/context.d.ts +4 -0
  118. package/dist-pkg/cli/context.js +4 -0
  119. package/dist-pkg/cli/framework-md.d.ts +1 -0
  120. package/dist-pkg/cli/framework-md.js +391 -0
  121. package/dist-pkg/cli/index.d.ts +6 -0
  122. package/dist-pkg/cli/index.js +106 -0
  123. package/dist-pkg/cli/release-version.d.ts +2 -0
  124. package/dist-pkg/cli/release-version.js +33 -0
  125. package/dist-pkg/client.d.ts +16 -0
  126. package/dist-pkg/client.js +71 -0
  127. package/dist-pkg/compat.d.ts +1 -0
  128. package/dist-pkg/compat.js +1 -0
  129. package/dist-pkg/compiler/analysis-backend.d.ts +20 -0
  130. package/dist-pkg/compiler/analysis-backend.js +164 -0
  131. package/dist-pkg/compiler/backends/experimental-oxc.d.ts +6 -0
  132. package/dist-pkg/compiler/backends/experimental-oxc.js +9 -0
  133. package/dist-pkg/compiler/backends/oxc.d.ts +16 -0
  134. package/dist-pkg/compiler/backends/oxc.js +198 -0
  135. package/dist-pkg/compiler/backends/register.d.ts +7 -0
  136. package/dist-pkg/compiler/backends/register.js +22 -0
  137. package/dist-pkg/compiler/fixtures.d.ts +2 -0
  138. package/dist-pkg/compiler/fixtures.js +118 -0
  139. package/dist-pkg/compiler/init.d.ts +1 -0
  140. package/dist-pkg/compiler/init.js +6 -0
  141. package/dist-pkg/compiler/module-analysis.d.ts +13 -0
  142. package/dist-pkg/compiler/module-analysis.js +50 -0
  143. package/dist-pkg/compiler/parity.d.ts +35 -0
  144. package/dist-pkg/compiler/parity.js +89 -0
  145. package/dist-pkg/compiler/readiness.d.ts +11 -0
  146. package/dist-pkg/compiler/readiness.js +18 -0
  147. package/dist-pkg/compiler/route-facts.d.ts +34 -0
  148. package/dist-pkg/compiler/route-facts.js +75 -0
  149. package/dist-pkg/content/index.d.ts +27 -0
  150. package/dist-pkg/content/index.js +287 -0
  151. package/dist-pkg/db/index.d.ts +3 -0
  152. package/dist-pkg/db/index.js +6 -0
  153. package/dist-pkg/db/migrate.d.ts +7 -0
  154. package/dist-pkg/db/migrate.js +53 -0
  155. package/dist-pkg/db/postgres.d.ts +29 -0
  156. package/dist-pkg/db/postgres.js +59 -0
  157. package/dist-pkg/db/sqlite.d.ts +10 -0
  158. package/dist-pkg/db/sqlite.js +22 -0
  159. package/dist-pkg/deploy/cloudflare.d.ts +8 -0
  160. package/{src/deploy/cloudflare.ts → dist-pkg/deploy/cloudflare.js} +24 -26
  161. package/dist-pkg/deploy/conformance.d.ts +21 -0
  162. package/dist-pkg/deploy/conformance.js +98 -0
  163. package/dist-pkg/deploy/dockerfile.d.ts +3 -0
  164. package/{src/deploy/dockerfile.ts → dist-pkg/deploy/dockerfile.js} +8 -10
  165. package/dist-pkg/deploy/fly.d.ts +3 -0
  166. package/{src/deploy/fly.ts → dist-pkg/deploy/fly.js} +11 -12
  167. package/dist-pkg/deploy/index.d.ts +6 -0
  168. package/dist-pkg/deploy/index.js +26 -0
  169. package/dist-pkg/deploy/netlify.d.ts +2 -0
  170. package/{src/deploy/netlify.ts → dist-pkg/deploy/netlify.js} +17 -11
  171. package/dist-pkg/deploy/runtime.d.ts +2 -0
  172. package/dist-pkg/deploy/runtime.js +3 -0
  173. package/dist-pkg/deploy/vercel.d.ts +22 -0
  174. package/dist-pkg/deploy/vercel.js +53 -0
  175. package/dist-pkg/dev/error-overlay.d.ts +1 -0
  176. package/{src/dev/error-overlay.ts → dist-pkg/dev/error-overlay.js} +13 -23
  177. package/dist-pkg/dev/hmr.d.ts +30 -0
  178. package/dist-pkg/dev/hmr.js +86 -0
  179. package/dist-pkg/dev/partial-handler.d.ts +9 -0
  180. package/dist-pkg/dev/partial-handler.js +24 -0
  181. package/dist-pkg/dev/request-handler.d.ts +30 -0
  182. package/dist-pkg/dev/request-handler.js +67 -0
  183. package/dist-pkg/dev/watcher.d.ts +6 -0
  184. package/dist-pkg/dev/watcher.js +34 -0
  185. package/dist-pkg/dev.d.ts +11 -0
  186. package/dist-pkg/dev.js +268 -0
  187. package/dist-pkg/env/index.d.ts +3 -0
  188. package/dist-pkg/env/index.js +57 -0
  189. package/dist-pkg/errors/catalog.d.ts +9 -0
  190. package/{src/errors/catalog.ts → dist-pkg/errors/catalog.js} +8 -24
  191. package/dist-pkg/errors/formatter.d.ts +22 -0
  192. package/dist-pkg/errors/formatter.js +43 -0
  193. package/dist-pkg/errors/index.d.ts +2 -0
  194. package/dist-pkg/errors/index.js +2 -0
  195. package/dist-pkg/forms/action.d.ts +15 -0
  196. package/dist-pkg/forms/action.js +20 -0
  197. package/dist-pkg/forms/index.d.ts +4 -0
  198. package/dist-pkg/forms/index.js +12 -0
  199. package/dist-pkg/i18n/index.d.ts +61 -0
  200. package/dist-pkg/i18n/index.js +147 -0
  201. package/dist-pkg/index-client.d.ts +1 -0
  202. package/dist-pkg/index-client.js +1 -0
  203. package/dist-pkg/index.d.ts +32 -0
  204. package/dist-pkg/index.js +79 -0
  205. package/dist-pkg/jsx-runtime-client.d.ts +8 -0
  206. package/dist-pkg/jsx-runtime-client.js +1 -0
  207. package/dist-pkg/jsx-runtime.d.ts +13 -0
  208. package/dist-pkg/jsx-runtime.js +5 -0
  209. package/dist-pkg/jsx-types-html.d.ts +221 -0
  210. package/dist-pkg/jsx-types-html.js +0 -0
  211. package/dist-pkg/log/index.d.ts +8 -0
  212. package/dist-pkg/log/index.js +55 -0
  213. package/dist-pkg/plugins/drizzle.d.ts +16 -0
  214. package/dist-pkg/plugins/drizzle.js +50 -0
  215. package/dist-pkg/plugins/index.d.ts +62 -0
  216. package/dist-pkg/plugins/index.js +147 -0
  217. package/dist-pkg/plugins/lucia.d.ts +26 -0
  218. package/dist-pkg/plugins/lucia.js +63 -0
  219. package/dist-pkg/plugins/prisma.d.ts +14 -0
  220. package/dist-pkg/plugins/prisma.js +57 -0
  221. package/dist-pkg/plugins/resend.d.ts +21 -0
  222. package/dist-pkg/plugins/resend.js +45 -0
  223. package/dist-pkg/plugins/s3.d.ts +18 -0
  224. package/dist-pkg/plugins/s3.js +63 -0
  225. package/dist-pkg/plugins/stripe.d.ts +32 -0
  226. package/dist-pkg/plugins/stripe.js +69 -0
  227. package/dist-pkg/plugins/tailwind.d.ts +15 -0
  228. package/dist-pkg/plugins/tailwind.js +58 -0
  229. package/dist-pkg/prod.d.ts +21 -0
  230. package/dist-pkg/prod.js +347 -0
  231. package/dist-pkg/reactive/computed.d.ts +3 -0
  232. package/dist-pkg/reactive/computed.js +15 -0
  233. package/dist-pkg/reactive/data.d.ts +25 -0
  234. package/dist-pkg/reactive/data.js +56 -0
  235. package/dist-pkg/reactive/diagnostics.d.ts +100 -0
  236. package/dist-pkg/reactive/diagnostics.js +363 -0
  237. package/dist-pkg/reactive/effect.d.ts +3 -0
  238. package/dist-pkg/reactive/effect.js +6 -0
  239. package/dist-pkg/reactive/index.d.ts +9 -0
  240. package/dist-pkg/reactive/index.js +18 -0
  241. package/dist-pkg/reactive/live.d.ts +15 -0
  242. package/dist-pkg/reactive/live.js +58 -0
  243. package/dist-pkg/reactive/optimistic.d.ts +20 -0
  244. package/dist-pkg/reactive/optimistic.js +54 -0
  245. package/dist-pkg/reactive/resource.d.ts +25 -0
  246. package/dist-pkg/reactive/resource.js +97 -0
  247. package/dist-pkg/reactive/signal.d.ts +4 -0
  248. package/dist-pkg/reactive/signal.js +17 -0
  249. package/dist-pkg/reactive/store.d.ts +6 -0
  250. package/dist-pkg/reactive/store.js +19 -0
  251. package/dist-pkg/router/index.d.ts +2 -0
  252. package/dist-pkg/router/index.js +2 -0
  253. package/dist-pkg/router/matcher.d.ts +7 -0
  254. package/dist-pkg/router/matcher.js +40 -0
  255. package/dist-pkg/router/scanner.d.ts +14 -0
  256. package/dist-pkg/router/scanner.js +141 -0
  257. package/dist-pkg/routes/index.d.ts +1 -0
  258. package/dist-pkg/routes/index.js +10 -0
  259. package/dist-pkg/runtime/app-config.d.ts +26 -0
  260. package/dist-pkg/runtime/app-config.js +69 -0
  261. package/dist-pkg/runtime/client.d.ts +3 -0
  262. package/dist-pkg/runtime/client.js +31 -0
  263. package/dist-pkg/runtime/devtools.d.ts +64 -0
  264. package/dist-pkg/runtime/devtools.js +132 -0
  265. package/dist-pkg/runtime/error-boundary.d.ts +6 -0
  266. package/dist-pkg/runtime/error-boundary.js +17 -0
  267. package/dist-pkg/runtime/event-replay.d.ts +3 -0
  268. package/{src/runtime/event-replay.ts → dist-pkg/runtime/event-replay.js} +7 -22
  269. package/dist-pkg/runtime/event-source.d.ts +7 -0
  270. package/dist-pkg/runtime/event-source.js +24 -0
  271. package/dist-pkg/runtime/form.d.ts +24 -0
  272. package/dist-pkg/runtime/form.js +59 -0
  273. package/dist-pkg/runtime/head.d.ts +7 -0
  274. package/dist-pkg/runtime/head.js +90 -0
  275. package/dist-pkg/runtime/html-escape.d.ts +7 -0
  276. package/dist-pkg/runtime/html-escape.js +39 -0
  277. package/dist-pkg/runtime/hydration.d.ts +15 -0
  278. package/dist-pkg/runtime/hydration.js +103 -0
  279. package/dist-pkg/runtime/image.d.ts +49 -0
  280. package/dist-pkg/runtime/image.js +144 -0
  281. package/dist-pkg/runtime/index.d.ts +17 -0
  282. package/dist-pkg/runtime/index.js +59 -0
  283. package/dist-pkg/runtime/island-hydrator.d.ts +12 -0
  284. package/dist-pkg/runtime/island-hydrator.js +49 -0
  285. package/dist-pkg/runtime/island.d.ts +19 -0
  286. package/dist-pkg/runtime/island.js +36 -0
  287. package/dist-pkg/runtime/jsx-runtime.d.ts +12 -0
  288. package/dist-pkg/runtime/jsx-runtime.js +173 -0
  289. package/dist-pkg/runtime/link.d.ts +16 -0
  290. package/dist-pkg/runtime/link.js +47 -0
  291. package/dist-pkg/runtime/project.d.ts +37 -0
  292. package/dist-pkg/runtime/project.js +36 -0
  293. package/dist-pkg/runtime/renderable.d.ts +6 -0
  294. package/dist-pkg/runtime/renderable.js +0 -0
  295. package/dist-pkg/runtime/router.d.ts +47 -0
  296. package/dist-pkg/runtime/router.js +476 -0
  297. package/dist-pkg/runtime/server.d.ts +8 -0
  298. package/dist-pkg/runtime/server.js +71 -0
  299. package/dist-pkg/runtime/stream.d.ts +29 -0
  300. package/dist-pkg/runtime/stream.js +106 -0
  301. package/dist-pkg/runtime/suspense.d.ts +6 -0
  302. package/dist-pkg/runtime/suspense.js +16 -0
  303. package/dist-pkg/runtime/typed-routes.d.ts +24 -0
  304. package/dist-pkg/runtime/typed-routes.js +77 -0
  305. package/dist-pkg/runtime/validated-form.d.ts +40 -0
  306. package/dist-pkg/runtime/validated-form.js +120 -0
  307. package/dist-pkg/security/cors.d.ts +10 -0
  308. package/dist-pkg/security/cors.js +56 -0
  309. package/dist-pkg/security/csrf.d.ts +9 -0
  310. package/dist-pkg/security/csrf.js +53 -0
  311. package/dist-pkg/security/headers.d.ts +11 -0
  312. package/dist-pkg/security/headers.js +31 -0
  313. package/dist-pkg/security/index.d.ts +5 -0
  314. package/dist-pkg/security/index.js +5 -0
  315. package/dist-pkg/security/rate-limit.d.ts +10 -0
  316. package/dist-pkg/security/rate-limit.js +49 -0
  317. package/dist-pkg/security/redis-rate-limit.d.ts +14 -0
  318. package/dist-pkg/security/redis-rate-limit.js +23 -0
  319. package/dist-pkg/server/action.d.ts +21 -0
  320. package/dist-pkg/server/action.js +64 -0
  321. package/dist-pkg/server/cache-utils.d.ts +2 -0
  322. package/dist-pkg/server/cache-utils.js +26 -0
  323. package/dist-pkg/server/cache.d.ts +33 -0
  324. package/dist-pkg/server/cache.js +236 -0
  325. package/dist-pkg/server/compress.d.ts +2 -0
  326. package/dist-pkg/server/compress.js +49 -0
  327. package/dist-pkg/server/endpoint-execution.d.ts +28 -0
  328. package/dist-pkg/server/endpoint-execution.js +37 -0
  329. package/dist-pkg/server/etag.d.ts +3 -0
  330. package/dist-pkg/server/etag.js +18 -0
  331. package/dist-pkg/server/guard.d.ts +16 -0
  332. package/dist-pkg/server/guard.js +45 -0
  333. package/dist-pkg/server/html-shell.d.ts +12 -0
  334. package/dist-pkg/server/html-shell.js +52 -0
  335. package/dist-pkg/server/index.d.ts +36 -0
  336. package/dist-pkg/server/index.js +170 -0
  337. package/dist-pkg/server/jobs.d.ts +41 -0
  338. package/dist-pkg/server/jobs.js +81 -0
  339. package/dist-pkg/server/manifest.d.ts +19 -0
  340. package/dist-pkg/server/manifest.js +36 -0
  341. package/dist-pkg/server/middleware.d.ts +39 -0
  342. package/dist-pkg/server/middleware.js +122 -0
  343. package/dist-pkg/server/mime.d.ts +1 -0
  344. package/{src/server/mime.ts → dist-pkg/server/mime.js} +6 -17
  345. package/dist-pkg/server/not-found.d.ts +6 -0
  346. package/dist-pkg/server/not-found.js +24 -0
  347. package/dist-pkg/server/page-render.d.ts +29 -0
  348. package/dist-pkg/server/page-render.js +67 -0
  349. package/dist-pkg/server/partial-navigation.d.ts +4 -0
  350. package/dist-pkg/server/partial-navigation.js +16 -0
  351. package/dist-pkg/server/pipe.d.ts +9 -0
  352. package/dist-pkg/server/pipe.js +32 -0
  353. package/dist-pkg/server/redis-cache-store.d.ts +10 -0
  354. package/dist-pkg/server/redis-cache-store.js +73 -0
  355. package/dist-pkg/server/redis-client.d.ts +37 -0
  356. package/dist-pkg/server/redis-client.js +37 -0
  357. package/dist-pkg/server/request-policy.d.ts +55 -0
  358. package/dist-pkg/server/request-policy.js +216 -0
  359. package/dist-pkg/server/request-preflight.d.ts +23 -0
  360. package/dist-pkg/server/request-preflight.js +45 -0
  361. package/dist-pkg/server/request-security-policy.d.ts +17 -0
  362. package/dist-pkg/server/request-security-policy.js +34 -0
  363. package/dist-pkg/server/request-surface.d.ts +8 -0
  364. package/dist-pkg/server/request-surface.js +19 -0
  365. package/dist-pkg/server/route-request.d.ts +31 -0
  366. package/dist-pkg/server/route-request.js +112 -0
  367. package/dist-pkg/server/route-response.d.ts +22 -0
  368. package/dist-pkg/server/route-response.js +58 -0
  369. package/dist-pkg/server/rpc-hash.d.ts +2 -0
  370. package/dist-pkg/server/rpc-hash.js +7 -0
  371. package/dist-pkg/server/rpc-protocol.d.ts +22 -0
  372. package/dist-pkg/server/rpc-protocol.js +28 -0
  373. package/dist-pkg/server/rpc-utils.d.ts +2 -0
  374. package/dist-pkg/server/rpc-utils.js +26 -0
  375. package/dist-pkg/server/rpc.d.ts +20 -0
  376. package/dist-pkg/server/rpc.js +147 -0
  377. package/dist-pkg/server/runtime-dispatch.d.ts +19 -0
  378. package/dist-pkg/server/runtime-dispatch.js +67 -0
  379. package/dist-pkg/server/server-execution.d.ts +22 -0
  380. package/dist-pkg/server/server-execution.js +53 -0
  381. package/dist-pkg/server/sqlite-cache-store.d.ts +13 -0
  382. package/dist-pkg/server/sqlite-cache-store.js +88 -0
  383. package/dist-pkg/server/sse.d.ts +9 -0
  384. package/dist-pkg/server/sse.js +34 -0
  385. package/dist-pkg/server/static-file.d.ts +9 -0
  386. package/dist-pkg/server/static-file.js +43 -0
  387. package/dist-pkg/server/ws.d.ts +18 -0
  388. package/dist-pkg/server/ws.js +40 -0
  389. package/dist-pkg/server-entry.d.ts +19 -0
  390. package/dist-pkg/server-entry.js +93 -0
  391. package/dist-pkg/testing/index.d.ts +98 -0
  392. package/dist-pkg/testing/index.js +254 -0
  393. package/dist-pkg/types/index.d.ts +4 -0
  394. package/dist-pkg/types/index.js +4 -0
  395. package/dist-pkg/types/safe-html.d.ts +7 -0
  396. package/dist-pkg/types/safe-html.js +19 -0
  397. package/dist-pkg/types/safe-sql.d.ts +8 -0
  398. package/dist-pkg/types/safe-sql.js +14 -0
  399. package/dist-pkg/types/safe-url.d.ts +7 -0
  400. package/dist-pkg/types/safe-url.js +20 -0
  401. package/dist-pkg/types/user-input.d.ts +9 -0
  402. package/dist-pkg/types/user-input.js +3 -0
  403. package/dist-pkg/unsafe/index.d.ts +12 -0
  404. package/dist-pkg/unsafe/index.js +6 -0
  405. package/package.json +102 -44
  406. package/bin/gorsee.js +0 -14
  407. package/src/auth/index.ts +0 -178
  408. package/src/auth/redis-session-store.ts +0 -46
  409. package/src/auth/sqlite-session-store.ts +0 -98
  410. package/src/auth/store-utils.ts +0 -21
  411. package/src/build/client.ts +0 -139
  412. package/src/build/css-modules.ts +0 -69
  413. package/src/build/devalue-parse.ts +0 -2
  414. package/src/build/manifest.ts +0 -34
  415. package/src/build/route-metadata.ts +0 -12
  416. package/src/build/rpc-transform.ts +0 -62
  417. package/src/build/server-strip.ts +0 -87
  418. package/src/build/ssg.ts +0 -70
  419. package/src/cli/bun-plugin.ts +0 -58
  420. package/src/cli/cmd-build.ts +0 -153
  421. package/src/cli/cmd-check.ts +0 -239
  422. package/src/cli/cmd-create.ts +0 -328
  423. package/src/cli/cmd-deploy.ts +0 -149
  424. package/src/cli/cmd-dev.ts +0 -13
  425. package/src/cli/cmd-docs.ts +0 -152
  426. package/src/cli/cmd-generate.ts +0 -155
  427. package/src/cli/cmd-migrate.ts +0 -53
  428. package/src/cli/cmd-routes.ts +0 -36
  429. package/src/cli/cmd-start.ts +0 -30
  430. package/src/cli/cmd-test.ts +0 -129
  431. package/src/cli/cmd-typegen.ts +0 -93
  432. package/src/cli/cmd-upgrade.ts +0 -143
  433. package/src/cli/context.ts +0 -12
  434. package/src/cli/framework-md.ts +0 -223
  435. package/src/cli/index.ts +0 -107
  436. package/src/client.ts +0 -26
  437. package/src/db/index.ts +0 -2
  438. package/src/db/migrate.ts +0 -89
  439. package/src/db/sqlite.ts +0 -40
  440. package/src/deploy/index.ts +0 -31
  441. package/src/deploy/vercel.ts +0 -94
  442. package/src/dev/hmr.ts +0 -31
  443. package/src/dev/partial-handler.ts +0 -52
  444. package/src/dev/request-handler.ts +0 -127
  445. package/src/dev/watcher.ts +0 -48
  446. package/src/dev.ts +0 -208
  447. package/src/env/index.ts +0 -74
  448. package/src/errors/formatter.ts +0 -63
  449. package/src/errors/index.ts +0 -2
  450. package/src/i18n/index.ts +0 -72
  451. package/src/index-client.ts +0 -4
  452. package/src/index.ts +0 -43
  453. package/src/jsx-runtime-client.ts +0 -13
  454. package/src/jsx-runtime.ts +0 -20
  455. package/src/jsx-types-html.ts +0 -242
  456. package/src/log/index.ts +0 -44
  457. package/src/plugins/drizzle.ts +0 -84
  458. package/src/plugins/index.ts +0 -86
  459. package/src/plugins/lucia.ts +0 -111
  460. package/src/plugins/prisma.ts +0 -85
  461. package/src/plugins/resend.ts +0 -78
  462. package/src/plugins/s3.ts +0 -102
  463. package/src/plugins/stripe.ts +0 -133
  464. package/src/plugins/tailwind.ts +0 -92
  465. package/src/prod.ts +0 -252
  466. package/src/reactive/computed.ts +0 -7
  467. package/src/reactive/effect.ts +0 -7
  468. package/src/reactive/index.ts +0 -7
  469. package/src/reactive/live.ts +0 -97
  470. package/src/reactive/optimistic.ts +0 -83
  471. package/src/reactive/resource.ts +0 -138
  472. package/src/reactive/signal.ts +0 -20
  473. package/src/reactive/store.ts +0 -36
  474. package/src/router/index.ts +0 -2
  475. package/src/router/matcher.ts +0 -53
  476. package/src/router/scanner.ts +0 -206
  477. package/src/runtime/client.ts +0 -28
  478. package/src/runtime/error-boundary.ts +0 -35
  479. package/src/runtime/form.ts +0 -49
  480. package/src/runtime/head.ts +0 -113
  481. package/src/runtime/html-escape.ts +0 -30
  482. package/src/runtime/hydration.ts +0 -95
  483. package/src/runtime/image.ts +0 -48
  484. package/src/runtime/index.ts +0 -12
  485. package/src/runtime/island-hydrator.ts +0 -84
  486. package/src/runtime/island.ts +0 -88
  487. package/src/runtime/jsx-runtime.ts +0 -167
  488. package/src/runtime/link.ts +0 -45
  489. package/src/runtime/project.ts +0 -73
  490. package/src/runtime/router.ts +0 -224
  491. package/src/runtime/server.ts +0 -102
  492. package/src/runtime/stream.ts +0 -182
  493. package/src/runtime/suspense.ts +0 -37
  494. package/src/runtime/typed-routes.ts +0 -26
  495. package/src/runtime/validated-form.ts +0 -106
  496. package/src/security/cors.ts +0 -80
  497. package/src/security/csrf.ts +0 -85
  498. package/src/security/headers.ts +0 -50
  499. package/src/security/index.ts +0 -4
  500. package/src/security/rate-limit.ts +0 -80
  501. package/src/server/action.ts +0 -48
  502. package/src/server/cache-utils.ts +0 -23
  503. package/src/server/cache.ts +0 -125
  504. package/src/server/compress.ts +0 -60
  505. package/src/server/etag.ts +0 -23
  506. package/src/server/guard.ts +0 -69
  507. package/src/server/html-shell.ts +0 -69
  508. package/src/server/index.ts +0 -57
  509. package/src/server/manifest.ts +0 -36
  510. package/src/server/middleware.ts +0 -159
  511. package/src/server/not-found.ts +0 -35
  512. package/src/server/page-render.ts +0 -123
  513. package/src/server/pipe.ts +0 -46
  514. package/src/server/redis-cache-store.ts +0 -87
  515. package/src/server/redis-client.ts +0 -71
  516. package/src/server/request-preflight.ts +0 -45
  517. package/src/server/route-request.ts +0 -72
  518. package/src/server/rpc-hash.ts +0 -17
  519. package/src/server/rpc-utils.ts +0 -27
  520. package/src/server/rpc.ts +0 -177
  521. package/src/server/sqlite-cache-store.ts +0 -109
  522. package/src/server/sse.ts +0 -96
  523. package/src/server/static-file.ts +0 -63
  524. package/src/server/ws.ts +0 -56
  525. package/src/server-entry.ts +0 -36
  526. package/src/testing/index.ts +0 -74
  527. package/src/types/index.ts +0 -4
  528. package/src/types/safe-html.ts +0 -32
  529. package/src/types/safe-sql.ts +0 -28
  530. package/src/types/safe-url.ts +0 -40
  531. package/src/types/user-input.ts +0 -12
  532. package/src/unsafe/index.ts +0 -18
@@ -0,0 +1,22 @@
1
+ import { createTypeScriptModuleAnalysisBackend } from "../analysis-backend.js";
2
+ import { registerModuleAnalysisBackend } from "../module-analysis.js";
3
+ import {
4
+ createExperimentalOxcModuleAnalysisBackend,
5
+ EXPERIMENTAL_OXC_BACKEND_NAME
6
+ } from "./experimental-oxc.js";
7
+ import {
8
+ createOxcModuleAnalysisBackend,
9
+ OXC_BACKEND_NAME
10
+ } from "./oxc.js";
11
+ export function registerBuiltInCompilerBackends(options = {}) {
12
+ const registered = [], fallbackBackend = options.fallbackBackend ?? createTypeScriptModuleAnalysisBackend();
13
+ if (options.includeExperimentalOxc) {
14
+ registerModuleAnalysisBackend(createExperimentalOxcModuleAnalysisBackend({ fallback: fallbackBackend }));
15
+ registered.push(EXPERIMENTAL_OXC_BACKEND_NAME);
16
+ }
17
+ if (options.includeOxc) {
18
+ registerModuleAnalysisBackend(createOxcModuleAnalysisBackend({ fallback: fallbackBackend }));
19
+ registered.push(OXC_BACKEND_NAME);
20
+ }
21
+ return registered;
22
+ }
@@ -0,0 +1,2 @@
1
+ import type { ModuleAnalysisParityFixture } from "./parity.js";
2
+ export declare const MODULE_ANALYSIS_FIXTURES: ModuleAnalysisParityFixture[];
@@ -0,0 +1,118 @@
1
+ export const MODULE_ANALYSIS_FIXTURES = [
2
+ {
3
+ filePath: "routes/index.tsx",
4
+ content: `
5
+ /** Home */
6
+ import { Head } from "gorsee/client"
7
+ export const meta = { title: "Home", secure: true }
8
+ export const prerender = true
9
+ export async function loader() { return { ok: true } }
10
+ export default function Page() { return <main>{String(!!Head)}</main> }
11
+ `
12
+ },
13
+ {
14
+ filePath: "routes/api/users.ts",
15
+ content: `
16
+ import type { Context } from "gorsee/server"
17
+ export async function GET(_ctx: Context) { return new Response("ok") }
18
+ `
19
+ },
20
+ {
21
+ filePath: "routes/dashboard.tsx",
22
+ content: `
23
+ /** Dashboard */
24
+ import { createSignal } from "gorsee/client"
25
+ export const meta = { area: "ops", tags: ["team"] }
26
+ export default function Dashboard() {
27
+ const [count] = createSignal(1)
28
+ return <main>{count()}</main>
29
+ }
30
+ `
31
+ },
32
+ {
33
+ filePath: "routes/admin.tsx",
34
+ content: `
35
+ /** Admin */
36
+ import Layout from "../shared/layout"
37
+ import * as auth from "gorsee/server"
38
+ import { Head, Link } from "gorsee/client"
39
+
40
+ export const meta = {
41
+ area: "admin",
42
+ secure: true,
43
+ tags: ["ops", "internal"],
44
+ nested: { feature: "audit" },
45
+ }
46
+
47
+ export default class AdminPage {
48
+ render() {
49
+ return <main>{String(!!Layout && !!auth && !!Head && !!Link)}</main>
50
+ }
51
+ }
52
+ `
53
+ },
54
+ {
55
+ filePath: "routes/settings.tsx",
56
+ content: `
57
+ /** Settings */
58
+ import type { Context } from "gorsee/server"
59
+ import { createSignal } from "gorsee/client"
60
+
61
+ export const meta = {
62
+ title: "Settings",
63
+ sections: ["profile", "security"],
64
+ flags: { beta: false, public: null },
65
+ }
66
+
67
+ export async function loader(_ctx: Context) {
68
+ return { section: "profile" }
69
+ }
70
+
71
+ export default function SettingsPage() {
72
+ const [tab] = createSignal("profile")
73
+ return <main>{tab()}</main>
74
+ }
75
+ `
76
+ },
77
+ {
78
+ filePath: "routes/docs/[...parts].tsx",
79
+ content: `
80
+ /** Docs */
81
+ import type { Context } from "gorsee/server"
82
+
83
+ export const meta = {
84
+ title: "Docs",
85
+ sections: ["intro", "advanced"],
86
+ flags: { public: true, beta: false, note: null },
87
+ }
88
+
89
+ export async function loader(_ctx: Context) {
90
+ return { parts: ["intro"] }
91
+ }
92
+
93
+ export default function DocsPage() {
94
+ return <main>docs</main>
95
+ }
96
+ `
97
+ },
98
+ {
99
+ filePath: "routes/reports.tsx",
100
+ content: `
101
+ /** Reports */
102
+ import { Head } from "gorsee/client"
103
+ import * as serverApi from "gorsee/server"
104
+
105
+ export const meta = {
106
+ title: "Reports",
107
+ filters: ["daily", "weekly"],
108
+ nested: { view: "table", badges: [1, 2] },
109
+ }
110
+
111
+ export const prerender = false
112
+
113
+ export default function ReportsPage() {
114
+ return <main>{String(!!Head && !!serverApi)}</main>
115
+ }
116
+ `
117
+ }
118
+ ];
@@ -0,0 +1 @@
1
+ export declare function initializeCompilerBackends(env?: NodeJS.ProcessEnv): import("./analysis-backend.js").ModuleAnalysisBackend;
@@ -0,0 +1,6 @@
1
+ import { registerBuiltInCompilerBackends } from "./backends/register.js";
2
+ import { configureModuleAnalysisBackend } from "./module-analysis.js";
3
+ export function initializeCompilerBackends(env = process.env) {
4
+ registerBuiltInCompilerBackends({ includeExperimentalOxc: !0, includeOxc: !0 });
5
+ return configureModuleAnalysisBackend(env);
6
+ }
@@ -0,0 +1,13 @@
1
+ import { type ModuleAnalysisBackend, type ModuleAnalysisFacts, type ModuleImportFact } from "./analysis-backend.js";
2
+ export declare const GORSEE_COMPILER_BACKEND_ENV = "GORSEE_COMPILER_BACKEND";
3
+ export declare function analyzeModuleSource(filePath: string, content: string): ModuleAnalysisFacts;
4
+ export declare function getModuleAnalysisBackend(): ModuleAnalysisBackend;
5
+ export declare function setModuleAnalysisBackend(backend: ModuleAnalysisBackend): void;
6
+ export declare function resetModuleAnalysisBackend(): void;
7
+ export declare function registerModuleAnalysisBackend(backend: ModuleAnalysisBackend): void;
8
+ export declare function unregisterModuleAnalysisBackend(name: string): void;
9
+ export declare function listModuleAnalysisBackends(): string[];
10
+ export declare function selectModuleAnalysisBackend(name: string): ModuleAnalysisBackend;
11
+ export declare function resolveModuleAnalysisBackendName(env?: NodeJS.ProcessEnv): string;
12
+ export declare function configureModuleAnalysisBackend(env?: NodeJS.ProcessEnv): ModuleAnalysisBackend;
13
+ export type { ModuleAnalysisBackend, ModuleAnalysisFacts, ModuleImportFact };
@@ -0,0 +1,50 @@
1
+ import {
2
+ createTypeScriptModuleAnalysisBackend
3
+ } from "./analysis-backend.js";
4
+ import { createOxcModuleAnalysisBackend } from "./backends/oxc.js";
5
+ export const GORSEE_COMPILER_BACKEND_ENV = "GORSEE_COMPILER_BACKEND";
6
+ const internalTypeScriptFallback = createTypeScriptModuleAnalysisBackend(), stableOxcBackend = createOxcModuleAnalysisBackend({ fallback: internalTypeScriptFallback }), moduleAnalysisBackends = new Map([
7
+ [stableOxcBackend.name, stableOxcBackend]
8
+ ]);
9
+ let defaultModuleAnalysisBackend = stableOxcBackend;
10
+ export function analyzeModuleSource(filePath, content) {
11
+ return defaultModuleAnalysisBackend.analyzeModuleSource(filePath, content);
12
+ }
13
+ export function getModuleAnalysisBackend() {
14
+ return defaultModuleAnalysisBackend;
15
+ }
16
+ export function setModuleAnalysisBackend(backend) {
17
+ moduleAnalysisBackends.set(backend.name, backend);
18
+ defaultModuleAnalysisBackend = backend;
19
+ }
20
+ export function resetModuleAnalysisBackend() {
21
+ moduleAnalysisBackends.clear();
22
+ moduleAnalysisBackends.set(stableOxcBackend.name, stableOxcBackend);
23
+ defaultModuleAnalysisBackend = stableOxcBackend;
24
+ }
25
+ export function registerModuleAnalysisBackend(backend) {
26
+ moduleAnalysisBackends.set(backend.name, backend);
27
+ }
28
+ export function unregisterModuleAnalysisBackend(name) {
29
+ if (name === stableOxcBackend.name)
30
+ return;
31
+ moduleAnalysisBackends.delete(name);
32
+ if (defaultModuleAnalysisBackend.name === name)
33
+ defaultModuleAnalysisBackend = stableOxcBackend;
34
+ }
35
+ export function listModuleAnalysisBackends() {
36
+ return [...moduleAnalysisBackends.keys()].sort();
37
+ }
38
+ export function selectModuleAnalysisBackend(name) {
39
+ const backend = moduleAnalysisBackends.get(name);
40
+ if (!backend)
41
+ throw Error(`Unknown module analysis backend "${name}". Registered backends: ${listModuleAnalysisBackends().join(", ")}`);
42
+ defaultModuleAnalysisBackend = backend;
43
+ return backend;
44
+ }
45
+ export function resolveModuleAnalysisBackendName(env = process.env) {
46
+ return env[GORSEE_COMPILER_BACKEND_ENV]?.trim() || stableOxcBackend.name;
47
+ }
48
+ export function configureModuleAnalysisBackend(env = process.env) {
49
+ return selectModuleAnalysisBackend(resolveModuleAnalysisBackendName(env));
50
+ }
@@ -0,0 +1,35 @@
1
+ import type { ModuleAnalysisBackend } from "./analysis-backend.js";
2
+ export interface ModuleAnalysisParityFixture {
3
+ filePath: string;
4
+ content: string;
5
+ }
6
+ export interface ModuleAnalysisParityDifference {
7
+ filePath: string;
8
+ field: "exportedNames" | "hasDefaultExport" | "title" | "meta" | "exportedLiterals" | "imports";
9
+ left: unknown;
10
+ right: unknown;
11
+ }
12
+ export interface ModuleAnalysisParityReport {
13
+ leftBackend: string;
14
+ rightBackend: string;
15
+ checkedFiles: number;
16
+ matches: boolean;
17
+ leftSurface: ModuleAnalysisParitySurface[];
18
+ rightSurface: ModuleAnalysisParitySurface[];
19
+ differences: ModuleAnalysisParityDifference[];
20
+ }
21
+ export interface ModuleAnalysisParitySurface {
22
+ filePath: string;
23
+ exportedNames: string[];
24
+ hasDefaultExport: boolean;
25
+ title: string;
26
+ meta: Record<string, unknown> | null;
27
+ exportedLiterals: Record<string, unknown>;
28
+ imports: Array<{
29
+ specifier: string;
30
+ names: string[];
31
+ namespace?: string;
32
+ hasDefaultImport: boolean;
33
+ }>;
34
+ }
35
+ export declare function compareModuleAnalysisBackends(leftBackend: ModuleAnalysisBackend, rightBackend: ModuleAnalysisBackend, fixtures: ModuleAnalysisParityFixture[]): ModuleAnalysisParityReport;
@@ -0,0 +1,89 @@
1
+ export function compareModuleAnalysisBackends(leftBackend, rightBackend, fixtures) {
2
+ const differences = [], leftSurface = [], rightSurface = [];
3
+ for (const fixture of fixtures) {
4
+ const left = leftBackend.analyzeModuleSource(fixture.filePath, fixture.content), right = rightBackend.analyzeModuleSource(fixture.filePath, fixture.content);
5
+ leftSurface.push(normalizeModuleAnalysisFacts(fixture.filePath, left));
6
+ rightSurface.push(normalizeModuleAnalysisFacts(fixture.filePath, right));
7
+ collectDifferences(differences, fixture.filePath, left, right);
8
+ }
9
+ return {
10
+ leftBackend: leftBackend.name,
11
+ rightBackend: rightBackend.name,
12
+ checkedFiles: fixtures.length,
13
+ matches: differences.length === 0,
14
+ leftSurface,
15
+ rightSurface,
16
+ differences
17
+ };
18
+ }
19
+ function collectDifferences(differences, filePath, left, right) {
20
+ if (!sameStringSets(left.exportedNames, right.exportedNames))
21
+ differences.push({
22
+ filePath,
23
+ field: "exportedNames",
24
+ left: [...left.exportedNames].sort(),
25
+ right: [...right.exportedNames].sort()
26
+ });
27
+ if (left.hasDefaultExport !== right.hasDefaultExport)
28
+ differences.push({
29
+ filePath,
30
+ field: "hasDefaultExport",
31
+ left: left.hasDefaultExport,
32
+ right: right.hasDefaultExport
33
+ });
34
+ if (left.title !== right.title)
35
+ differences.push({
36
+ filePath,
37
+ field: "title",
38
+ left: left.title,
39
+ right: right.title
40
+ });
41
+ if (!sameJsonLike(left.meta, right.meta))
42
+ differences.push({
43
+ filePath,
44
+ field: "meta",
45
+ left: left.meta,
46
+ right: right.meta
47
+ });
48
+ if (!sameJsonLike(left.exportedLiterals, right.exportedLiterals))
49
+ differences.push({
50
+ filePath,
51
+ field: "exportedLiterals",
52
+ left: left.exportedLiterals,
53
+ right: right.exportedLiterals
54
+ });
55
+ if (!sameJsonLike(left.imports, right.imports))
56
+ differences.push({
57
+ filePath,
58
+ field: "imports",
59
+ left: left.imports,
60
+ right: right.imports
61
+ });
62
+ }
63
+ function sameStringSets(left, right) {
64
+ if (left.size !== right.size)
65
+ return !1;
66
+ for (const value of left)
67
+ if (!right.has(value))
68
+ return !1;
69
+ return !0;
70
+ }
71
+ function sameJsonLike(left, right) {
72
+ return JSON.stringify(left) === JSON.stringify(right);
73
+ }
74
+ function normalizeModuleAnalysisFacts(filePath, facts) {
75
+ return {
76
+ filePath,
77
+ exportedNames: [...facts.exportedNames].sort(),
78
+ hasDefaultExport: facts.hasDefaultExport,
79
+ title: facts.title,
80
+ meta: facts.meta,
81
+ exportedLiterals: facts.exportedLiterals,
82
+ imports: facts.imports.map((entry) => ({
83
+ specifier: entry.specifier,
84
+ names: [...entry.names],
85
+ namespace: entry.namespace,
86
+ hasDefaultImport: entry.hasDefaultImport
87
+ }))
88
+ };
89
+ }
@@ -0,0 +1,11 @@
1
+ import { GORSEE_COMPILER_BACKEND_ENV } from "./module-analysis.js";
2
+ export interface CompilerBackendReadiness {
3
+ envVar: typeof GORSEE_COMPILER_BACKEND_ENV;
4
+ stableDefault: "oxc";
5
+ preferredCanary: "experimental-oxc";
6
+ selected: string;
7
+ resolvedFromEnv: string;
8
+ registered: string[];
9
+ experimental: string[];
10
+ }
11
+ export declare function getCompilerBackendReadiness(env?: NodeJS.ProcessEnv): CompilerBackendReadiness;
@@ -0,0 +1,18 @@
1
+ import {
2
+ GORSEE_COMPILER_BACKEND_ENV,
3
+ getModuleAnalysisBackend,
4
+ listModuleAnalysisBackends,
5
+ resolveModuleAnalysisBackendName
6
+ } from "./module-analysis.js";
7
+ export function getCompilerBackendReadiness(env = process.env) {
8
+ const registered = listModuleAnalysisBackends();
9
+ return {
10
+ envVar: GORSEE_COMPILER_BACKEND_ENV,
11
+ stableDefault: "oxc",
12
+ preferredCanary: "experimental-oxc",
13
+ selected: getModuleAnalysisBackend().name,
14
+ resolvedFromEnv: resolveModuleAnalysisBackendName(env),
15
+ registered,
16
+ experimental: registered.filter((name) => name.startsWith("experimental-"))
17
+ };
18
+ }
@@ -0,0 +1,34 @@
1
+ import type { Route } from "../router/scanner.js";
2
+ export declare const ROUTE_FACTS_SCHEMA_VERSION: 2;
3
+ export interface RouteCompilerFacts {
4
+ schemaVersion: typeof ROUTE_FACTS_SCHEMA_VERSION;
5
+ path: string;
6
+ params: string[];
7
+ methods: string[];
8
+ hasDefaultExport: boolean;
9
+ hasLoader: boolean;
10
+ isApi: boolean;
11
+ hasMiddleware: boolean;
12
+ title: string;
13
+ meta: Record<string, unknown> | null;
14
+ declaresPrerender: boolean;
15
+ }
16
+ export interface RouteDocSurface {
17
+ path: string;
18
+ methods: string[];
19
+ hasLoader: boolean;
20
+ isApi: boolean;
21
+ hasMiddleware: boolean;
22
+ title: string;
23
+ meta: Record<string, unknown> | null;
24
+ }
25
+ export interface RouteFactsArtifact {
26
+ schemaVersion: typeof ROUTE_FACTS_SCHEMA_VERSION;
27
+ routes: RouteCompilerFacts[];
28
+ }
29
+ export declare function getRouteFactMethods(routeFacts: RouteCompilerFacts): string[];
30
+ export declare function toRouteDocSurface(routeFacts: RouteCompilerFacts): RouteDocSurface;
31
+ export declare function getRouteParamsRecord(routeFacts: RouteCompilerFacts): Record<string, "string">;
32
+ export declare function inspectRouteFacts(route: Route): Promise<RouteCompilerFacts>;
33
+ export declare function createRouteFactsArtifact(routes: Route[]): Promise<RouteFactsArtifact>;
34
+ export declare function parseRouteFactsArtifact(raw: string): RouteFactsArtifact;
@@ -0,0 +1,75 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { analyzeModuleSource } from "./module-analysis.js";
3
+ export const ROUTE_FACTS_SCHEMA_VERSION = 2;
4
+ const HTTP_METHODS = ["GET", "POST", "PUT", "DELETE", "PATCH"];
5
+ export function getRouteFactMethods(routeFacts) {
6
+ const methods = [...routeFacts.methods];
7
+ if (methods.length === 0 && routeFacts.hasDefaultExport)
8
+ methods.push("GET");
9
+ if (methods.length === 0 && routeFacts.hasLoader)
10
+ methods.push("GET");
11
+ return methods;
12
+ }
13
+ export function toRouteDocSurface(routeFacts) {
14
+ return {
15
+ path: routeFacts.path,
16
+ methods: getRouteFactMethods(routeFacts),
17
+ hasLoader: routeFacts.hasLoader,
18
+ isApi: routeFacts.isApi,
19
+ hasMiddleware: routeFacts.hasMiddleware,
20
+ title: routeFacts.title,
21
+ meta: routeFacts.meta
22
+ };
23
+ }
24
+ export function getRouteParamsRecord(routeFacts) {
25
+ const params = {};
26
+ for (const param of routeFacts.params)
27
+ params[param] = "string";
28
+ return params;
29
+ }
30
+ export async function inspectRouteFacts(route) {
31
+ const content = await readFile(route.filePath, "utf-8"), facts = analyzeModuleSource(route.filePath, content), methods = HTTP_METHODS.filter((method) => facts.exportedNames.has(method)), hasLoader = facts.exportedNames.has("load") || facts.exportedNames.has("loader"), isApi = !facts.hasDefaultExport || methods.length > 0;
32
+ return {
33
+ schemaVersion: ROUTE_FACTS_SCHEMA_VERSION,
34
+ path: route.path,
35
+ params: [...route.params],
36
+ methods: [...methods],
37
+ hasDefaultExport: facts.hasDefaultExport,
38
+ hasLoader,
39
+ isApi,
40
+ hasMiddleware: route.middlewarePaths.length > 0,
41
+ title: facts.title,
42
+ meta: facts.meta,
43
+ declaresPrerender: facts.exportedLiterals.prerender === !0
44
+ };
45
+ }
46
+ export async function createRouteFactsArtifact(routes) {
47
+ const facts = await Promise.all(routes.map((route) => inspectRouteFacts(route)));
48
+ return {
49
+ schemaVersion: ROUTE_FACTS_SCHEMA_VERSION,
50
+ routes: facts
51
+ };
52
+ }
53
+ export function parseRouteFactsArtifact(raw) {
54
+ const artifact = JSON.parse(raw);
55
+ validateRouteFactsArtifact(artifact);
56
+ return artifact;
57
+ }
58
+ function validateRouteFactsArtifact(artifact) {
59
+ if (artifact.schemaVersion !== ROUTE_FACTS_SCHEMA_VERSION)
60
+ throw Error(`Unsupported route facts schema version: expected ${ROUTE_FACTS_SCHEMA_VERSION}, received ${String(artifact.schemaVersion)}`);
61
+ if (!Array.isArray(artifact.routes))
62
+ throw Error("Invalid route facts artifact: routes must be an array");
63
+ for (const route of artifact.routes) {
64
+ if (!route || typeof route !== "object")
65
+ throw Error("Invalid route facts artifact: route entry must be an object");
66
+ if (route.schemaVersion !== ROUTE_FACTS_SCHEMA_VERSION)
67
+ throw Error("Invalid route facts artifact: route schemaVersion drift detected");
68
+ if (typeof route.path !== "string" || route.path.length === 0)
69
+ throw Error("Invalid route facts artifact: route path must be a non-empty string");
70
+ if (!Array.isArray(route.params))
71
+ throw Error("Invalid route facts artifact: params must be an array");
72
+ if (!Array.isArray(route.methods))
73
+ throw Error("Invalid route facts artifact: methods must be an array");
74
+ }
75
+ }
@@ -0,0 +1,27 @@
1
+ export interface ContentEntry<TFrontmatter extends Record<string, unknown> = Record<string, unknown>> {
2
+ id: string;
3
+ slug: string;
4
+ locale: string | null;
5
+ body: string;
6
+ excerpt: string;
7
+ frontmatter: TFrontmatter;
8
+ sourcePath: string;
9
+ }
10
+ export interface ContentCollectionOptions<TFrontmatter extends Record<string, unknown>> {
11
+ dir: string;
12
+ includeExtensions?: string[];
13
+ defaultLocale?: string;
14
+ validate?: (frontmatter: Record<string, unknown>, entry: Omit<ContentEntry<TFrontmatter>, "frontmatter">) => TFrontmatter;
15
+ }
16
+ export interface ContentQueryOptions {
17
+ locale?: string;
18
+ sortBy?: "date-desc" | "date-asc" | "title-asc" | "title-desc";
19
+ }
20
+ export declare function parseFrontmatter(source: string): {
21
+ frontmatter: Record<string, unknown>;
22
+ body: string;
23
+ };
24
+ export declare function extractExcerpt(body: string, maxLength?: number): string;
25
+ export declare function loadContentCollection<TFrontmatter extends Record<string, unknown> = Record<string, unknown>>(options: ContentCollectionOptions<TFrontmatter>): Promise<Array<ContentEntry<TFrontmatter>>>;
26
+ export declare function queryContent<TFrontmatter extends Record<string, unknown>>(entries: Array<ContentEntry<TFrontmatter>>, options?: ContentQueryOptions): Array<ContentEntry<TFrontmatter>>;
27
+ export declare function getContentEntryBySlug<TFrontmatter extends Record<string, unknown>>(entries: Array<ContentEntry<TFrontmatter>>, slug: string, locale?: string): ContentEntry<TFrontmatter> | null;