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,38 @@
1
+ import { type RuntimeOptions } from "../runtime/project.js";
2
+ interface UpgradeFlags {
3
+ check: boolean;
4
+ force: boolean;
5
+ report: string | null;
6
+ rewriteImports: boolean;
7
+ }
8
+ export interface UpgradeIssue {
9
+ code: string;
10
+ file: string;
11
+ severity: "info" | "warn";
12
+ message: string;
13
+ fix: string;
14
+ }
15
+ export interface UpgradeReport {
16
+ schemaVersion: 1;
17
+ generatedAt: string;
18
+ currentVersion: string | null;
19
+ latestVersion: string | null;
20
+ upgradeAvailable: boolean;
21
+ issues: UpgradeIssue[];
22
+ }
23
+ export declare function parseUpgradeFlags(args: string[]): UpgradeFlags;
24
+ /** Compare semver strings: -1 (a < b), 0 (equal), 1 (a > b) */
25
+ export declare function compareVersions(a: string, b: string): number;
26
+ export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org/gorsee/latest";
27
+ export declare function collectUpgradeIssues(cwd: string): Promise<UpgradeIssue[]>;
28
+ export declare function collectUpgradeReport(cwd: string, versions: {
29
+ currentVersion: string | null;
30
+ latestVersion: string | null;
31
+ }): Promise<UpgradeReport>;
32
+ export declare function writeUpgradeReport(cwd: string, reportPath: string, report: UpgradeReport): Promise<void>;
33
+ export interface UpgradeCommandOptions extends RuntimeOptions {
34
+ }
35
+ export declare function upgradeFramework(args: string[], options?: UpgradeCommandOptions): Promise<void>;
36
+ /** @deprecated Use upgradeFramework() for programmatic access. */
37
+ export declare function runUpgrade(args: string[], options?: UpgradeCommandOptions): Promise<void>;
38
+ export {};
@@ -0,0 +1,232 @@
1
+ import { mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
2
+ import { dirname, join, relative } from "node:path";
3
+ import { createProjectContext } from "../runtime/project.js";
4
+ import { analyzeModuleSource } from "../compiler/module-analysis.js";
5
+ import { collectCanonicalImportDrift } from "./canonical-imports.js";
6
+ import { rewriteCanonicalImportsInProject, rewriteLegacyLoadersInProject } from "./canonical-import-rewrite.js";
7
+ export function parseUpgradeFlags(args) {
8
+ const flags = { check: !1, force: !1, report: null, rewriteImports: !1 };
9
+ for (let index = 0;index < args.length; index += 1) {
10
+ const arg = args[index];
11
+ if (arg === "--check")
12
+ flags.check = !0;
13
+ else if (arg === "--force")
14
+ flags.force = !0;
15
+ else if (arg === "--rewrite-imports")
16
+ flags.rewriteImports = !0;
17
+ else if (arg === "--report" && args[index + 1])
18
+ flags.report = args[++index];
19
+ }
20
+ return flags;
21
+ }
22
+ export function compareVersions(a, b) {
23
+ const pa = a.replace(/^v/, "").split(".").map(Number), pb = b.replace(/^v/, "").split(".").map(Number);
24
+ for (let i = 0;i < 3; i++) {
25
+ const va = pa[i] ?? 0, vb = pb[i] ?? 0;
26
+ if (va < vb)
27
+ return -1;
28
+ if (va > vb)
29
+ return 1;
30
+ }
31
+ return 0;
32
+ }
33
+ async function getCurrentVersion(cwd) {
34
+ try {
35
+ const pkg = await readFile(join(cwd, "node_modules/gorsee/package.json"), "utf-8");
36
+ return JSON.parse(pkg).version ?? null;
37
+ } catch {
38
+ return null;
39
+ }
40
+ }
41
+ export const NPM_REGISTRY_URL = "https://registry.npmjs.org/gorsee/latest";
42
+ async function fetchLatestVersion() {
43
+ try {
44
+ const res = await fetch(NPM_REGISTRY_URL);
45
+ if (!res.ok)
46
+ return null;
47
+ return (await res.json()).version ?? null;
48
+ } catch {
49
+ return null;
50
+ }
51
+ }
52
+ async function tryReadFile(path) {
53
+ try {
54
+ return await readFile(path, "utf-8");
55
+ } catch {
56
+ return null;
57
+ }
58
+ }
59
+ async function getAllSourceFiles(cwd, dir) {
60
+ const path = join(cwd, dir);
61
+ try {
62
+ const entries = await readdir(path), files = [];
63
+ for (const entry of entries) {
64
+ if (entry === "node_modules" || entry === "dist" || entry === ".git")
65
+ continue;
66
+ const fullPath = join(path, entry);
67
+ if ((await stat(fullPath)).isDirectory())
68
+ files.push(...await getAllSourceFiles(cwd, relative(cwd, fullPath)));
69
+ else if (entry.endsWith(".ts") || entry.endsWith(".tsx"))
70
+ files.push(fullPath);
71
+ }
72
+ return files;
73
+ } catch {
74
+ return [];
75
+ }
76
+ }
77
+ function issue(code, file, message, fix, severity = "warn") {
78
+ return { code, file, severity, message, fix };
79
+ }
80
+ export async function collectUpgradeIssues(cwd) {
81
+ const issues = [], tsconfigSource = await tryReadFile(join(cwd, "tsconfig.json"));
82
+ if (tsconfigSource)
83
+ try {
84
+ const tsconfig = JSON.parse(tsconfigSource);
85
+ if (tsconfig.compilerOptions?.jsx !== "preserve")
86
+ issues.push(issue("UG001", "tsconfig.json", "Canonical Gorsee JSX mode is no longer configured", 'Set compilerOptions.jsx to "preserve"'));
87
+ if (tsconfig.compilerOptions?.jsxImportSource !== "gorsee")
88
+ issues.push(issue("UG002", "tsconfig.json", "Canonical jsxImportSource is missing", 'Set compilerOptions.jsxImportSource to "gorsee"'));
89
+ } catch {
90
+ issues.push(issue("UG003", "tsconfig.json", "Could not parse tsconfig.json for migration checks", "Fix tsconfig.json so upgrade checks can validate the canonical compiler contract"));
91
+ }
92
+ if ((await tryReadFile(join(cwd, "app.config.ts")))?.includes("ssr:"))
93
+ issues.push(issue("UG004", "app.config.ts", "Deprecated app.config.ts key 'ssr' is still present", "Replace 'ssr' with the canonical 'rendering' configuration surface"));
94
+ const packageJsonSource = await tryReadFile(join(cwd, "package.json"));
95
+ if (packageJsonSource)
96
+ try {
97
+ const pkg = JSON.parse(packageJsonSource);
98
+ if (!pkg.packageManager || !/^bun@\d+\.\d+\.\d+$/.test(pkg.packageManager))
99
+ issues.push(issue("UG005", "package.json", "packageManager should pin the exact Bun version used by the project", 'Set packageManager to an exact version such as "bun@1.3.9"'));
100
+ } catch {
101
+ issues.push(issue("UG006", "package.json", "Could not parse package.json for upgrade checks", "Fix package.json so upgrade checks can validate package-manager and dependency contracts"));
102
+ }
103
+ for (const deployFile of ["app.config.ts", "wrangler.toml", "netlify.toml", "fly.toml", "vercel.json"]) {
104
+ const source = await tryReadFile(join(cwd, deployFile));
105
+ if (!source)
106
+ continue;
107
+ if (/REPLACE_WITH_APP_ORIGIN|https:\/\/example\.com/.test(source))
108
+ issues.push(issue("UG007", deployFile, "Placeholder origin values are still present", "Replace placeholder origins with the canonical application origin before shipping the upgrade"));
109
+ }
110
+ const sourceFiles = [
111
+ ...await getAllSourceFiles(cwd, "routes"),
112
+ ...await getAllSourceFiles(cwd, "shared"),
113
+ ...await getAllSourceFiles(cwd, "middleware")
114
+ ];
115
+ for (const file of sourceFiles) {
116
+ const source = await tryReadFile(file);
117
+ if (!source)
118
+ continue;
119
+ const facts = analyzeModuleSource(file, source);
120
+ if (facts.imports.some((entry) => entry.specifier === "gorsee"))
121
+ issues.push(issue("UG008", relative(cwd, file), 'Compatibility-only root "gorsee" import is still used in application code', 'Move browser-safe imports to "gorsee/client", server code to "gorsee/server", or explicit compatibility bridges to "gorsee/compat"'));
122
+ for (const drift of collectCanonicalImportDrift(facts.imports)) {
123
+ const entries = [...drift.replacements.entries()].map(([name, target]) => `${name} -> ${target}`).join(", "), targets = [...new Set(drift.replacements.values())].join(", ");
124
+ issues.push(issue(drift.source === "gorsee/server" ? "UG009" : "UG010", relative(cwd, file), `Domain APIs still come from "${drift.source}" instead of scoped stable subpaths: ${entries}`, drift.source === "gorsee/server" ? `Keep runtime primitives on "gorsee/server" and move domain imports to ${targets}` : `Keep browser runtime primitives on "gorsee/client" and move domain imports to ${targets}`, "info"));
125
+ }
126
+ if (facts.exportedNames.has("loader"))
127
+ issues.push(issue("UG011", relative(cwd, file), 'Route module still exports "loader" instead of canonical "load"', 'Rename exported "loader" to "load", or run `gorsee upgrade --rewrite-imports` to rewrite obvious cases automatically', "info"));
128
+ }
129
+ return issues;
130
+ }
131
+ export async function collectUpgradeReport(cwd, versions) {
132
+ const issues = await collectUpgradeIssues(cwd), { currentVersion, latestVersion } = versions, upgradeAvailable = currentVersion !== null && latestVersion !== null && compareVersions(currentVersion, latestVersion) < 0;
133
+ return {
134
+ schemaVersion: 1,
135
+ generatedAt: new Date().toISOString(),
136
+ currentVersion,
137
+ latestVersion,
138
+ upgradeAvailable,
139
+ issues
140
+ };
141
+ }
142
+ export async function writeUpgradeReport(cwd, reportPath, report) {
143
+ const outputPath = join(cwd, reportPath);
144
+ await mkdir(dirname(outputPath), { recursive: !0 });
145
+ await writeFile(outputPath, JSON.stringify(report, null, 2) + `
146
+ `, "utf-8");
147
+ }
148
+ export async function upgradeFramework(args, options = {}) {
149
+ const { cwd } = createProjectContext(options), flags = parseUpgradeFlags(args);
150
+ if (flags.rewriteImports) {
151
+ const importRewrite = await rewriteCanonicalImportsInProject(cwd), loaderRewrite = await rewriteLegacyLoadersInProject(cwd), changedFiles = [...new Set([...importRewrite.changedFiles, ...loaderRewrite.changedFiles])].sort();
152
+ if (changedFiles.length > 0) {
153
+ console.log(`
154
+ Rewrote canonical imports and loader aliases:`);
155
+ for (const file of changedFiles)
156
+ console.log(` - ${file}`);
157
+ } else
158
+ console.log(`
159
+ Canonical import and loader rewrite found no changes.`);
160
+ }
161
+ const current = await getCurrentVersion(cwd);
162
+ if (!current) {
163
+ console.log(`
164
+ Gorsee.js not found in node_modules. Run: bun add gorsee
165
+ `);
166
+ return;
167
+ }
168
+ console.log(`
169
+ Current version: v${current}`);
170
+ const latest = await fetchLatestVersion();
171
+ if (!latest) {
172
+ console.log(` Could not fetch latest version from npm registry.
173
+ `);
174
+ return;
175
+ }
176
+ const report = await collectUpgradeReport(cwd, {
177
+ currentVersion: current,
178
+ latestVersion: latest
179
+ });
180
+ if (flags.report) {
181
+ await writeUpgradeReport(cwd, flags.report, report);
182
+ console.log(` Upgrade report: ${flags.report}`);
183
+ }
184
+ if (compareVersions(current, latest) >= 0) {
185
+ console.log(` Already up to date (v${current})`);
186
+ if (report.issues.length > 0) {
187
+ console.log(`
188
+ Migration audit:`);
189
+ for (const entry of report.issues)
190
+ console.log(` - [${entry.code}] ${entry.file}: ${entry.message}`);
191
+ }
192
+ console.log();
193
+ return;
194
+ }
195
+ console.log(` Latest version: v${latest}`);
196
+ console.log(` Upgrade: v${current} -> v${latest}`);
197
+ if (report.issues.length > 0) {
198
+ console.log(`
199
+ Migration audit:`);
200
+ for (const entry of report.issues)
201
+ console.log(` - [${entry.code}] ${entry.file}: ${entry.message}`);
202
+ }
203
+ if (flags.check) {
204
+ console.log();
205
+ return;
206
+ }
207
+ if (!flags.force) {
208
+ console.log(`
209
+ Run with --force to install after reviewing the migration audit.
210
+ `);
211
+ return;
212
+ }
213
+ console.log(`
214
+ Installing gorsee@latest...`);
215
+ const exitCode = await Bun.spawn(["bun", "add", "gorsee@latest"], {
216
+ cwd,
217
+ stdout: "inherit",
218
+ stderr: "inherit"
219
+ }).exited;
220
+ if (exitCode !== 0) {
221
+ console.log(`
222
+ Install failed (exit code ${exitCode})
223
+ `);
224
+ process.exit(exitCode);
225
+ }
226
+ console.log(`
227
+ Upgraded successfully to v${latest}
228
+ `);
229
+ }
230
+ export async function runUpgrade(args, options = {}) {
231
+ return upgradeFramework(args, options);
232
+ }
@@ -0,0 +1,4 @@
1
+ /** @deprecated Import shared project context from "../runtime/project" in new code. */
2
+ export { createProjectContext as createCommandContext, resolveProjectPaths, } from "../runtime/project.js";
3
+ /** @deprecated Import shared runtime types from "../runtime/project" in new code. */
4
+ export type { RuntimeOptions as CommandRuntimeOptions, ProjectContext as CommandContext, ProjectPaths, } from "../runtime/project.js";
@@ -0,0 +1,4 @@
1
+ export {
2
+ createProjectContext as createCommandContext,
3
+ resolveProjectPaths
4
+ } from "../runtime/project.js";
@@ -0,0 +1 @@
1
+ export declare function generateFrameworkMD(projectName: string): string;
@@ -0,0 +1,391 @@
1
+ export function generateFrameworkMD(projectName) {
2
+ return `# ${projectName} -- Gorsee.js Framework Reference
3
+
4
+ > This file is auto-generated. It provides complete context for AI assistants.
5
+ > Include this file in your AI context window for best results.
6
+
7
+ ## Product Identity
8
+
9
+ Gorsee is an AI-first reactive full-stack framework designed for deterministic collaboration between humans and coding agents.
10
+
11
+ Treat it as a mature product framework:
12
+
13
+ - not a pet project
14
+ - not a toy runtime
15
+ - not a loose collection of optional recipes
16
+
17
+ The framework prefers one clear path, strict contracts, and product-grade discipline over flexibility for its own sake.
18
+
19
+ ## Quick Reference
20
+
21
+ \`\`\`
22
+ Runtime: Bun | Language: TypeScript + JSX | Reactivity: Signals (no VDOM)
23
+ \`\`\`
24
+
25
+ ## Project Structure
26
+
27
+ \`\`\`
28
+ routes/ Page and API routes (file-based routing)
29
+ index.ts / (home page)
30
+ about.tsx /about
31
+ users/
32
+ index.tsx /users
33
+ [id].tsx /users/:id (dynamic)
34
+ api/
35
+ health.ts API endpoint (no UI)
36
+ _layout.tsx Layout wrapper for folder
37
+ _middleware.ts Middleware for folder
38
+ shared/ Shared types and utilities
39
+ middleware/ Global middleware
40
+ migrations/ Database migrations (SQL)
41
+ public/ Static files
42
+ app.config.ts Configuration
43
+ \`\`\`
44
+
45
+ ## Imports
46
+
47
+ \`\`\`typescript
48
+ // Browser-safe route code
49
+ import { createSignal, createComputed, createEffect, createResource, createStore } from "gorsee/client"
50
+
51
+ // Server runtime contracts
52
+ import { server, middleware, type Context } from "gorsee/server"
53
+
54
+ // Domain-focused server surfaces
55
+ import { createDB } from "gorsee/db"
56
+ import { createAuth } from "gorsee/auth"
57
+ import { cors } from "gorsee/security"
58
+ import { log } from "gorsee/log"
59
+ \`\`\`
60
+
61
+ ## Import Boundaries
62
+
63
+ - \`gorsee/client\` for route components, islands, navigation, forms, and reactive primitives
64
+ - \`gorsee/server\` for middleware, \`load\`, \`action\`, RPC, cache, and route execution
65
+ - prefer scoped subpaths such as \`gorsee/auth\`, \`gorsee/db\`, \`gorsee/security\`, \`gorsee/env\`, and \`gorsee/log\` when the concern is already domain-specific
66
+ - Root \`gorsee\` is compatibility-only and should not be used in new code
67
+ - \`gorsee/compat\` is available as an explicit legacy migration entrypoint
68
+
69
+ ## Engineering Doctrine
70
+
71
+ - Prefer deterministic architecture over multiple equivalent patterns.
72
+ - Prefer built-in framework guarantees over handwritten recipes.
73
+ - Preserve fine-grained reactivity and avoid VDOM-style architectural drift.
74
+ - Treat security, deploy assumptions, and AI diagnostics as part of the framework contract.
75
+ - If a pattern must exist, it should be easy for both humans and agents to infer from structure and docs.
76
+
77
+ ## Adapter Recipes
78
+
79
+ \`\`\`typescript
80
+ import { createClient } from "redis"
81
+ import {
82
+ createRedisSessionStore,
83
+ createRedisCacheStore,
84
+ createNodeRedisLikeClient,
85
+ routeCache,
86
+ } from "gorsee/server"
87
+ import { createAuth } from "gorsee/auth"
88
+ import { createCSRFMiddleware } from "gorsee/security"
89
+
90
+ const redis = createClient({ url: process.env.REDIS_URL })
91
+ await redis.connect()
92
+ const redisClient = createNodeRedisLikeClient(redis)
93
+
94
+ const auth = createAuth({
95
+ secret: process.env.SESSION_SECRET!,
96
+ store: createRedisSessionStore(redisClient, { prefix: "app:sessions" }),
97
+ })
98
+
99
+ export const cache = routeCache({
100
+ maxAge: 60,
101
+ staleWhileRevalidate: 300,
102
+ mode: "public", // default mode is private/auth-aware
103
+ store: createRedisCacheStore(redisClient, {
104
+ prefix: "app:cache",
105
+ maxEntryAgeMs: 360_000,
106
+ }),
107
+ })
108
+ \`\`\`
109
+
110
+ - SQLite adapters are the default persistent single-node path
111
+ - Redis adapters are the default multi-instance path
112
+ - \`createNodeRedisLikeClient()\` and \`createIORedisLikeClient()\` normalize real Redis SDK clients to the framework adapter contract
113
+ - \`routeCache()\` defaults to \`mode: "private"\` and varies by \`Cookie\`, \`Authorization\`, \`Accept\`, and \`X-Gorsee-Navigate\`
114
+ - Use \`mode: "public"\` or \`mode: "shared"\` only for intentionally non-personalized cache entries
115
+ - RPC handlers remain process-local by design; do not try to distribute closures through Redis
116
+
117
+ ## RPC Security
118
+
119
+ \`\`\`typescript
120
+ import { handleRPCRequestWithPolicy } from "gorsee/server"
121
+ import { createAuth } from "gorsee/auth"
122
+ import { createCSRFMiddleware } from "gorsee/security"
123
+
124
+ const auth = createAuth({ secret: process.env.SESSION_SECRET! })
125
+
126
+ const rpcResponse = await handleRPCRequestWithPolicy(request, {
127
+ middlewares: [
128
+ auth.protect(),
129
+ createCSRFMiddleware(process.env.SESSION_SECRET!),
130
+ ],
131
+ })
132
+ \`\`\`
133
+
134
+ - RPC is \`POST\`-only
135
+ - RPC uses a versioned envelope over \`application/vnd.gorsee-rpc+json\`
136
+ - Route \`_middleware.ts\` does not automatically protect \`/api/_rpc/*\`
137
+ - Apply auth/CSRF policy explicitly at the RPC boundary
138
+
139
+ ## AI Observability
140
+
141
+ \`\`\`typescript
142
+ export default {
143
+ ai: {
144
+ enabled: true,
145
+ jsonlPath: ".gorsee/ai-events.jsonl",
146
+ diagnosticsPath: ".gorsee/ai-diagnostics.json",
147
+ sessionPack: {
148
+ enabled: true,
149
+ outDir: ".gorsee/agent",
150
+ triggerKinds: ["diagnostic.issue", "request.error", "build.summary", "check.summary"],
151
+ },
152
+ bridge: {
153
+ url: "http://127.0.0.1:4318/gorsee/ai-events",
154
+ timeoutMs: 250,
155
+ events: ["diagnostic.issue", "check.summary", "build.summary", "request.error"],
156
+ },
157
+ },
158
+ }
159
+ \`\`\`
160
+
161
+ - AI observability is opt-in and must not change app behavior when disabled
162
+ - \`.gorsee/ai-events.jsonl\` is the canonical machine-readable event stream for agents and IDE tooling
163
+ - \`.gorsee/ai-diagnostics.json\` keeps the latest error/warning snapshot for fast IDE polling
164
+ - \`.gorsee/ide/diagnostics.json\`, \`.gorsee/ide/events.json\`, and \`.gorsee/ide/context.md\` are editor-facing projections produced by \`gorsee ai ide-sync\`
165
+ - \`.gorsee/ide/events.json\` now includes \`artifactRegressions\` plus event-level \`artifact\` / \`version\` metadata for release/deploy/build drift
166
+ - \`.gorsee/agent/latest.json\` and \`.gorsee/agent/latest.md\` are session packs for agents; they can be generated manually with \`gorsee ai pack\` or automatically after error/build/check triggers
167
+ - \`gorsee ai doctor\` clusters repeated failures by trace/request/file/route so agents can spot systemic regressions quickly
168
+ - \`gorsee ai doctor\` and \`gorsee ai export\` also surface artifact regressions, so agents can reason about broken tarballs, VSIX files, build outputs, and deploy configs without separate tooling
169
+ - Bridge delivery is best-effort only; a dead IDE bridge must never fail the request/build/check path
170
+ - Event schema carries \`requestId\`, \`traceId\`, \`spanId\`, \`route\`, \`code\`, \`file\`, \`line\`, and \`durationMs\`
171
+ - Prefer AI events over scraped console logs when automating analysis
172
+ - Use \`gorsee ai export --bundle\` when an agent needs a compact context packet plus root-cause-ranked code snippets
173
+ - Use \`gorsee ai pack\` when you want the latest context bundle written to disk for another tool to pick up
174
+ - Use \`bun run ai:package:vscode\` to stage and package the VS Code/Cursor extension consumer from \`integrations/vscode-gorsee-ai\`
175
+ - Use \`bun run release:extension\` to build a version-locked VSIX release artifact
176
+ - In the VS Code/Cursor extension, use \`Gorsee AI: Show Context\` for the full context packet and \`Gorsee AI: Show Artifact Regressions\` for release/deploy/build drift
177
+
178
+ ## Failure References
179
+
180
+ - Use \`docs/RUNTIME_FAILURES.md\` for common production/runtime failures
181
+ - Use \`docs/RUNTIME_TRIAGE.md\` for operator triage flow
182
+ - Use \`docs/CACHE_INVALIDATION.md\` before widening cache scope
183
+ - Use \`docs/STREAMING_HYDRATION_FAILURES.md\` when streaming or hydration behavior drifts
184
+ - Use \`docs/STARTER_FAILURES.md\` for common scaffold/setup mistakes
185
+
186
+ ## AI Workflow References
187
+
188
+ - Use \`docs/AI_WORKFLOWS.md\` for the overall human + agent operating model
189
+ - Use \`docs/AI_IDE_SYNC_WORKFLOW.md\` for editor projections
190
+ - Use \`docs/AI_MCP_WORKFLOW.md\` for MCP consumers
191
+ - Use \`docs/AI_BRIDGE_WORKFLOW.md\` for local bridge ingestion
192
+ - Use \`docs/AI_TOOL_BUILDERS.md\` when building external consumers
193
+ - Use \`docs/AI_SURFACE_STABILITY.md\` before changing AI-facing contracts
194
+ - Use \`docs/AI_SESSION_PACKS.md\` for cross-session handoff
195
+ - Use \`docs/AI_DEBUGGING_WORKFLOWS.md\` for diagnostics-first debugging
196
+
197
+ ## Product DX References
198
+
199
+ - Use \`docs/STARTER_ONBOARDING.md\` to choose the right app class
200
+ - Use \`docs/MIGRATION_GUIDE.md\` when cleaning up compatibility imports
201
+ - Use \`docs/UPGRADE_PLAYBOOK.md\` before release-channel or contract upgrades
202
+ - Use \`docs/DEPLOY_TARGET_GUIDE.md\` before committing to a deploy target
203
+ - Use \`docs/FIRST_PRODUCTION_ROLLOUT.md\` for the first real launch
204
+ - Use \`docs/AUTH_CACHE_DATA_PATHS.md\` to choose auth/cache/data defaults by app class
205
+ - Use \`docs/RECIPE_BOUNDARIES.md\` when a recipe looks stretched beyond its intended shape
206
+ - Use \`docs/WORKSPACE_ADOPTION.md\` for monorepo/workspace layouts
207
+ - Use \`docs/TEAM_FAILURES.md\` for common team-level adoption mistakes
208
+
209
+ ## Patterns
210
+
211
+ ### Page Route
212
+
213
+ \`\`\`typescript
214
+ // routes/users/index.tsx
215
+ import { ssrJsx as h } from "gorsee/runtime"
216
+ import { SafeSQL } from "gorsee/types"
217
+ import { createDB } from "gorsee/db"
218
+
219
+ const db = createDB()
220
+
221
+ export default function UsersPage() {
222
+ const users = db.all<User>(SafeSQL\`SELECT * FROM users\`)
223
+ return h("ul", {
224
+ children: users.map(u => h("li", { children: u.name }))
225
+ })
226
+ }
227
+ \`\`\`
228
+
229
+ ### Dynamic Route
230
+
231
+ \`\`\`typescript
232
+ // routes/users/[id].tsx
233
+ export default function UserPage(props: { params: { id: string } }) {
234
+ const user = db.get<User>(SafeSQL\`SELECT * FROM users WHERE id = \${Number(props.params.id)}\`)
235
+ if (!user) return h("div", { children: "Not found" })
236
+ return h("h1", { children: user.name })
237
+ }
238
+ \`\`\`
239
+
240
+ ### API Route
241
+
242
+ \`\`\`typescript
243
+ // routes/api/users.ts
244
+ import type { Context } from "gorsee/server"
245
+
246
+ export function GET(ctx: Context): Response {
247
+ return Response.json({ users: [] })
248
+ }
249
+
250
+ export function POST(ctx: Context): Response {
251
+ return Response.json({ created: true }, { status: 201 })
252
+ }
253
+ \`\`\`
254
+
255
+ ### Route Action
256
+
257
+ \`\`\`typescript
258
+ // routes/users/new.tsx
259
+ import { defineForm, defineFormAction } from "gorsee/forms"
260
+
261
+ const userForm = defineForm<{ name: string }>([
262
+ { name: "name", rules: { required: true }, label: "Name" },
263
+ ])
264
+
265
+ export const action = defineFormAction(userForm, async ({ data }) => {
266
+ await db.run(SafeSQL\`INSERT INTO users (name) VALUES (\${data.name})\`)
267
+ return { ok: true, data: { created: true } }
268
+ })
269
+ \`\`\`
270
+
271
+ ### Middleware
272
+
273
+ \`\`\`typescript
274
+ // routes/_middleware.ts
275
+ import { middleware } from "gorsee/server"
276
+
277
+ export default middleware(async (ctx, next) => {
278
+ const session = ctx.cookies.get("session")
279
+ if (!session) return ctx.redirect("/login")
280
+ ctx.locals.user = await getUser(session)
281
+ return next()
282
+ })
283
+ \`\`\`
284
+
285
+ ### Signals
286
+
287
+ \`\`\`typescript
288
+ const [count, setCount] = createSignal(0) // reactive value
289
+ const doubled = createComputed(() => count() * 2) // derived
290
+ createEffect(() => console.log(count())) // side effect
291
+ const [data] = createResource(fetchData) // async resource
292
+ const [store, setStore] = createStore({ a: 1 }) // reactive object
293
+ \`\`\`
294
+
295
+ ### SafeSQL (prevents SQL injection at compile time)
296
+
297
+ \`\`\`typescript
298
+ // OK:
299
+ db.get(SafeSQL\`SELECT * FROM users WHERE id = \${id}\`)
300
+
301
+ // COMPILE ERROR -- string not assignable to SafeSQL:
302
+ db.get(\`SELECT * FROM users WHERE id = \${id}\`)
303
+ db.get("SELECT * FROM users WHERE id = " + id)
304
+ \`\`\`
305
+
306
+ ## Configuration (app.config.ts)
307
+
308
+ \`\`\`typescript
309
+ export default {
310
+ port: 3000,
311
+ db: { driver: "sqlite", url: "./data.sqlite" },
312
+ log: "info", // off | error | info | verbose | debug
313
+ security: {
314
+ origin: process.env.APP_ORIGIN ?? "https://app.example.com",
315
+ proxy: {
316
+ preset: "none",
317
+ trustForwardedHeaders: false,
318
+ trustedForwardedHops: 1,
319
+ },
320
+ csp: true,
321
+ hsts: true,
322
+ csrf: true,
323
+ rateLimit: { requests: 100, window: "1m" },
324
+ },
325
+ // RPC is a separate boundary from route _middleware.ts
326
+ // security: { rpc: { middlewares: [auth.protect(), createCSRFMiddleware(process.env.SESSION_SECRET!)] } },
327
+ deploy: { target: "bun" }, // bun | cloudflare | deno | node
328
+ }
329
+ \`\`\`
330
+
331
+ - Replace placeholder origins in deploy configs and \`security.origin\` before production rollout.
332
+ - \`gorsee check --strict\` escalates floating runtime dependency versions and placeholder origin values to errors.
333
+
334
+ ## Security Docs
335
+
336
+ - \`SECURITY.md\` defines disclosure policy, reporting path, and the rule that security bugs are treated as broken framework invariants.
337
+ - \`docs/PRODUCT_VISION.md\` defines the product position and market thesis.
338
+ - \`docs/FRAMEWORK_DOCTRINE.md\` defines non-negotiable engineering principles.
339
+ - \`docs/TOP_TIER_ROADMAP.md\` defines the maturity roadmap to top-tier framework quality.
340
+ - \`docs/CANONICAL_RECIPES.md\` defines the recommended production paths for secure SaaS apps, content sites, internal tools, and workspace-based apps.
341
+ - \`docs/API_STABILITY.md\` defines stable, compatibility, experimental, and internal API tiers.
342
+ - \`docs/AI_ARTIFACT_CONTRACT.md\` defines versioned AI packet, IDE projection, and session-pack artifact expectations.
343
+ - \`docs/SUPPORT_MATRIX.md\` defines what the product currently supports and validates.
344
+ - \`docs/DEPRECATION_POLICY.md\` defines how public behavior is deprecated and migrated.
345
+ - \`docs/SECURITY_MODEL.md\` defines framework guarantees around request ordering, canonical origin, internal/public boundaries, cache expectations, RPC, and adapter assumptions.
346
+ - \`docs/SECURE_PATTERNS.md\` lists preferred and unsafe usage patterns for auth, redirects, cache, RPC, origins, proxy headers, provider presets, dev server exposure, and file serving.
347
+ - \`docs/ADAPTER_SECURITY.md\` documents provider-specific deploy assumptions for Vercel, Cloudflare, Netlify, Fly.io, and Docker.
348
+ - \`docs/RELEASE_POLICY.md\` defines stable/canary/rc channel rules and the intended release train for security-sensitive changes.
349
+ - \`docs/RELEASE_CHECKLIST.md\` defines the operator-facing stable/canary/rc checklist and the invariants that must hold before publishing.
350
+ - \`docs/CI_POLICY.md\` defines the required CI gates, change-sensitive rules, release-train validation, and the exact Bun contract used in automation.
351
+
352
+ ## CLI
353
+
354
+ \`\`\`
355
+ gorsee dev Start dev server
356
+ gorsee build Production build
357
+ gorsee check Type + safety + structure check
358
+ gorsee check --rewrite-imports --rewrite-loaders
359
+ Normalize canonical imports and loader aliases before auditing
360
+ gorsee ai doctor Summarize AI diagnostics and incidents
361
+ gorsee ai replay Reconstruct recent correlated AI event timeline
362
+ gorsee ai export Export a compact agent-ready context packet
363
+ gorsee ai ide-sync Write IDE-friendly diagnostics/events/context files
364
+ gorsee ai mcp Expose local AI state as a stdio MCP server
365
+ gorsee routes List all routes
366
+ gorsee migrate Run database migrations
367
+ gorsee generate X Generate CRUD for entity X
368
+ \`\`\`
369
+
370
+ - For migration cleanup, prefer \`gorsee upgrade --rewrite-imports --check --report docs/upgrade-report.json\`.
371
+
372
+ ## Error Codes
373
+
374
+ | Code | Category | Description |
375
+ |------|----------|-------------|
376
+ | E001 | SafeSQL | Raw string in SQL query |
377
+ | E002 | SafeHTML | Unsanitized HTML |
378
+ | E003 | Server | Closure captures client variable |
379
+ | E004 | URL | Invalid URL |
380
+ | E005 | URL | Disallowed protocol |
381
+
382
+ ## Security (enabled by default)
383
+
384
+ - CSP with nonce (no inline scripts except framework)
385
+ - HSTS (production)
386
+ - CSRF tokens (auto for POST)
387
+ - Rate limiting (100 req/min default)
388
+ - X-Frame-Options: DENY
389
+ - X-Content-Type-Options: nosniff
390
+ `;
391
+ }
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bun
2
+ declare const args: string[];
3
+ declare const command: string | undefined;
4
+ declare const COMMANDS: Record<string, string>;
5
+ declare function main(): Promise<void>;
6
+ declare function printHelp(): void;