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,381 @@
1
+ import { writeFile, access, mkdir, readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { createProjectContext } from "../runtime/project.js";
4
+ import { runArtifactLifecycleStep, writeArtifactFailurePack } from "../ai/index.js";
5
+ import { assertDeployArtifactConformance } from "../deploy/conformance.js";
6
+ import { isProcessDeployRuntime } from "../deploy/runtime.js";
7
+ const TARGETS = ["vercel", "fly", "cloudflare", "netlify", "docker"], DETECT_FILES = {
8
+ "vercel.json": "vercel",
9
+ "fly.toml": "fly",
10
+ "wrangler.toml": "cloudflare",
11
+ "netlify.toml": "netlify",
12
+ Dockerfile: "docker"
13
+ };
14
+ async function fileExists(path) {
15
+ try {
16
+ await access(path);
17
+ return !0;
18
+ } catch {
19
+ return !1;
20
+ }
21
+ }
22
+ async function detectTarget(cwd) {
23
+ for (const [file, target] of Object.entries(DETECT_FILES))
24
+ if (await fileExists(join(cwd, file)))
25
+ return target;
26
+ return null;
27
+ }
28
+ async function writeAndLog(filePath, content) {
29
+ await writeFile(filePath, content, "utf-8");
30
+ console.log(` created ${filePath}`);
31
+ }
32
+ function parseDeployFlags(args) {
33
+ const flags = {};
34
+ for (let index = 0;index < args.length; index++)
35
+ if (args[index] === "--runtime" && isProcessDeployRuntime(args[index + 1]))
36
+ flags.runtime = args[++index];
37
+ return flags;
38
+ }
39
+ function parseDeployTargetArg(args) {
40
+ for (let index = 0;index < args.length; index++) {
41
+ const arg = args[index];
42
+ if (!arg)
43
+ continue;
44
+ if (arg === "--runtime") {
45
+ index += 1;
46
+ continue;
47
+ }
48
+ if (!arg.startsWith("-"))
49
+ return arg;
50
+ }
51
+ return;
52
+ }
53
+ function resolveDeployRuntime(target, requestedRuntime) {
54
+ if (target === "vercel") {
55
+ if (requestedRuntime && requestedRuntime !== "node")
56
+ throw Error("Vercel deploy generation requires the Node runtime profile.");
57
+ return "node";
58
+ }
59
+ if (target === "docker" || target === "fly")
60
+ return requestedRuntime ?? "bun";
61
+ if (requestedRuntime && requestedRuntime !== "bun")
62
+ throw Error(`${target} deploy generation does not support a Node process runtime profile.`);
63
+ return "bun";
64
+ }
65
+ async function validateGeneratedDeployConfig(cwd, target, runtime) {
66
+ const expectations = [];
67
+ switch (target) {
68
+ case "vercel":
69
+ assertDeployArtifactConformance({
70
+ name: "vercel.json",
71
+ format: "json",
72
+ content: await readFile(join(cwd, "vercel.json"), "utf-8"),
73
+ requiredTokens: ["/_gorsee/(.*)", "Cache-Control"],
74
+ requiredPaths: ["routes"],
75
+ requiredValues: [
76
+ { path: "version", value: 2 },
77
+ { path: "buildCommand", value: "bun run build" },
78
+ { path: "outputDirectory", value: ".vercel/output" }
79
+ ]
80
+ });
81
+ expectations.push({
82
+ file: "vercel.json",
83
+ pattern: /"\/_gorsee\/\(\.\*\)"/,
84
+ message: "Vercel config must route immutable client assets through /_gorsee/*"
85
+ });
86
+ expectations.push({
87
+ file: "vercel.json",
88
+ pattern: /"Cache-Control":\s*"public, max-age=31536000, immutable"/,
89
+ message: "Vercel config must keep immutable caching for /_gorsee/*"
90
+ });
91
+ expectations.push({
92
+ file: "api/index.ts",
93
+ pattern: /APP_ORIGIN/,
94
+ message: "Vercel handler must reference APP_ORIGIN"
95
+ });
96
+ expectations.push({
97
+ file: "api/index.ts",
98
+ pattern: /\.\.\/dist\/server-handler-node\.js/,
99
+ message: "Vercel handler must reference the Node-compatible built server handler"
100
+ });
101
+ expectations.push({
102
+ file: "api/index.ts",
103
+ pattern: /handleRequest\(request, \{ vercel: true \}, \{ rpcPolicy \}\)/,
104
+ message: "Vercel handler must forward the explicit RPC policy to the built server handler"
105
+ });
106
+ break;
107
+ case "fly":
108
+ assertDeployArtifactConformance({
109
+ name: "fly.toml",
110
+ format: "toml",
111
+ content: await readFile(join(cwd, "fly.toml"), "utf-8"),
112
+ requiredTokens: ["/api/health"],
113
+ requiredValues: [
114
+ { path: "primary_region", value: "iad" },
115
+ { path: "env.APP_ORIGIN", value: "REPLACE_WITH_APP_ORIGIN" }
116
+ ]
117
+ });
118
+ expectations.push({
119
+ file: "fly.toml",
120
+ pattern: /path = "\/api\/health"/,
121
+ message: "Fly config must expose the /api/health readiness check"
122
+ });
123
+ expectations.push({
124
+ file: "fly.toml",
125
+ pattern: /APP_ORIGIN\s*=\s*"REPLACE_WITH_APP_ORIGIN"/,
126
+ message: "Fly config must contain APP_ORIGIN placeholder"
127
+ });
128
+ expectations.push({
129
+ file: "Dockerfile",
130
+ pattern: /ENV APP_ORIGIN=REPLACE_WITH_APP_ORIGIN/,
131
+ message: "Fly Dockerfile must export APP_ORIGIN placeholder"
132
+ });
133
+ expectations.push({
134
+ file: "Dockerfile",
135
+ pattern: /bun install --frozen-lockfile/,
136
+ message: "Fly Dockerfile must install with a frozen Bun lockfile"
137
+ });
138
+ expectations.push({
139
+ file: "Dockerfile",
140
+ pattern: runtime === "node" ? /FROM node:20-bookworm-slim/ : /FROM oven\/bun:1-slim/,
141
+ message: `Fly Dockerfile must use the ${runtime} runtime image`
142
+ });
143
+ expectations.push({
144
+ file: "Dockerfile",
145
+ pattern: runtime === "node" ? /CMD \["node", "dist\/prod-node\.js"\]/ : /CMD \["bun", "run", "start"\]/,
146
+ message: `Fly Dockerfile must start through the ${runtime} production runtime entrypoint`
147
+ });
148
+ break;
149
+ case "cloudflare":
150
+ assertDeployArtifactConformance({
151
+ name: "wrangler.toml",
152
+ format: "toml",
153
+ content: await readFile(join(cwd, "wrangler.toml"), "utf-8"),
154
+ requiredTokens: ['compatibility_flags = ["nodejs_compat"]'],
155
+ requiredValues: [
156
+ { path: "main", value: "dist/worker.js" },
157
+ { path: "build.command", value: "bun run build" },
158
+ { path: "vars.APP_ORIGIN", value: "REPLACE_WITH_APP_ORIGIN" }
159
+ ]
160
+ });
161
+ expectations.push({
162
+ file: "wrangler.toml",
163
+ pattern: /main = "dist\/worker\.js"/,
164
+ message: "Cloudflare config must target dist/worker.js as the worker entry"
165
+ });
166
+ expectations.push({
167
+ file: "wrangler.toml",
168
+ pattern: /bucket = "\.\/dist\/client"/,
169
+ message: "Cloudflare config must publish dist/client as the static bucket"
170
+ });
171
+ expectations.push({
172
+ file: "wrangler.toml",
173
+ pattern: /APP_ORIGIN\s*=\s*"REPLACE_WITH_APP_ORIGIN"/,
174
+ message: "Cloudflare config must contain APP_ORIGIN placeholder"
175
+ });
176
+ expectations.push({
177
+ file: "wrangler.toml",
178
+ pattern: /compatibility_flags\s*=\s*\["nodejs_compat"\]/,
179
+ message: "Cloudflare config must enable nodejs_compat"
180
+ });
181
+ expectations.push({
182
+ file: "worker.ts",
183
+ pattern: /handleRequest\(request, env, \{ rpcPolicy \}\)/,
184
+ message: "Cloudflare worker must forward explicit RPC policy to the server handler"
185
+ });
186
+ expectations.push({
187
+ file: "_routes.json",
188
+ pattern: /_gorsee\/\*/,
189
+ message: "Cloudflare routes config must exclude /_gorsee/* from edge routing"
190
+ });
191
+ break;
192
+ case "netlify":
193
+ assertDeployArtifactConformance({
194
+ name: "netlify.toml",
195
+ format: "toml",
196
+ content: await readFile(join(cwd, "netlify.toml"), "utf-8"),
197
+ requiredTokens: ["excludedPath = true", 'Cache-Control = "public, max-age=31536000, immutable"'],
198
+ requiredValues: [
199
+ { path: "build.command", value: "bun run build" },
200
+ { path: "build.publish", value: "dist/client" },
201
+ { path: "build.environment.APP_ORIGIN", value: "REPLACE_WITH_APP_ORIGIN" }
202
+ ]
203
+ });
204
+ expectations.push({
205
+ file: "netlify.toml",
206
+ pattern: /publish = "dist\/client"/,
207
+ message: "Netlify config must publish dist/client"
208
+ });
209
+ expectations.push({
210
+ file: "netlify.toml",
211
+ pattern: /excludedPath = true/,
212
+ message: "Netlify config must bypass edge handling for /_gorsee/*"
213
+ });
214
+ expectations.push({
215
+ file: "netlify.toml",
216
+ pattern: /APP_ORIGIN\s*=\s*"REPLACE_WITH_APP_ORIGIN"/,
217
+ message: "Netlify config must contain APP_ORIGIN placeholder"
218
+ });
219
+ expectations.push({
220
+ file: "netlify.toml",
221
+ pattern: /Cache-Control = "public, max-age=31536000, immutable"/,
222
+ message: "Netlify config must keep immutable caching for /_gorsee/*"
223
+ });
224
+ expectations.push({
225
+ file: "netlify/edge-functions/gorsee-handler.ts",
226
+ pattern: /handleRequest\(request, \{ netlifyContext: context \}, \{ rpcPolicy \}\)/,
227
+ message: "Netlify edge function must forward explicit RPC policy to the server handler"
228
+ });
229
+ break;
230
+ case "docker":
231
+ expectations.push({
232
+ file: "Dockerfile",
233
+ pattern: runtime === "node" ? /CMD \["node", "dist\/prod-node\.js"\]/ : /CMD \["bun", "run", "start"\]/,
234
+ message: `Dockerfile must start through the ${runtime} production entrypoint`
235
+ });
236
+ expectations.push({
237
+ file: "Dockerfile",
238
+ pattern: /ENV APP_ORIGIN=REPLACE_WITH_APP_ORIGIN/,
239
+ message: "Dockerfile must export APP_ORIGIN placeholder"
240
+ });
241
+ expectations.push({
242
+ file: "Dockerfile",
243
+ pattern: /bun install --frozen-lockfile/,
244
+ message: "Dockerfile must install with a frozen Bun lockfile"
245
+ });
246
+ expectations.push({
247
+ file: "Dockerfile",
248
+ pattern: runtime === "node" ? /FROM node:20-bookworm-slim/ : /FROM oven\/bun:1-slim/,
249
+ message: `Dockerfile must use the ${runtime} runtime image`
250
+ });
251
+ break;
252
+ }
253
+ for (const expectation of expectations) {
254
+ const content = await readFile(join(cwd, expectation.file), "utf-8");
255
+ if (!expectation.pattern.test(content))
256
+ throw Error(expectation.message);
257
+ }
258
+ }
259
+ async function deployVercel(cwd) {
260
+ const { generateVercelConfig, generateVercelServerlessEntry } = await import("../deploy/vercel.js");
261
+ await writeAndLog(join(cwd, "vercel.json"), JSON.stringify(generateVercelConfig(), null, 2));
262
+ await mkdir(join(cwd, "api"), { recursive: !0 });
263
+ await writeAndLog(join(cwd, "api/index.ts"), generateVercelServerlessEntry());
264
+ console.log(`
265
+ Next steps:`);
266
+ console.log(" 1. Install Vercel CLI: npm i -g vercel");
267
+ console.log(" 2. Run: vercel");
268
+ console.log(" 3. Follow prompts to link your project");
269
+ }
270
+ async function deployFly(cwd, appName, runtime) {
271
+ const { generateFlyConfig, generateFlyDockerfile } = await import("../deploy/fly.js");
272
+ await writeAndLog(join(cwd, "fly.toml"), generateFlyConfig(appName));
273
+ await writeAndLog(join(cwd, "Dockerfile"), generateFlyDockerfile(runtime));
274
+ console.log(`
275
+ Next steps:`);
276
+ console.log(" 1. Install Fly CLI: curl -L https://fly.io/install.sh | sh");
277
+ console.log(` 2. Run: fly launch --name ${appName}`);
278
+ console.log(" 3. Deploy: fly deploy");
279
+ }
280
+ async function deployCloudflare(cwd, name) {
281
+ const { generateWranglerConfig, generateCloudflareEntry, generateCloudflareStaticAssets } = await import("../deploy/cloudflare.js");
282
+ await writeAndLog(join(cwd, "wrangler.toml"), generateWranglerConfig(name));
283
+ await writeAndLog(join(cwd, "worker.ts"), generateCloudflareEntry());
284
+ await writeAndLog(join(cwd, "_routes.json"), JSON.stringify(generateCloudflareStaticAssets(), null, 2));
285
+ console.log(`
286
+ Next steps:`);
287
+ console.log(" 1. Install Wrangler: npm i -g wrangler");
288
+ console.log(" 2. Authenticate: wrangler login");
289
+ console.log(" 3. Deploy: wrangler deploy");
290
+ }
291
+ async function deployNetlify(cwd) {
292
+ const { generateNetlifyConfig, generateNetlifyFunction } = await import("../deploy/netlify.js");
293
+ await writeAndLog(join(cwd, "netlify.toml"), generateNetlifyConfig());
294
+ const edgeFnDir = join(cwd, "netlify/edge-functions");
295
+ await mkdir(edgeFnDir, { recursive: !0 });
296
+ await writeAndLog(join(edgeFnDir, "gorsee-handler.ts"), generateNetlifyFunction());
297
+ console.log(`
298
+ Next steps:`);
299
+ console.log(" 1. Install Netlify CLI: npm i -g netlify-cli");
300
+ console.log(" 2. Run: netlify init");
301
+ console.log(" 3. Deploy: netlify deploy --prod");
302
+ }
303
+ async function deployDocker(cwd, runtime) {
304
+ const { generateDockerfile, generateDockerignore } = await import("../deploy/dockerfile.js");
305
+ await writeAndLog(join(cwd, "Dockerfile"), generateDockerfile(runtime));
306
+ await writeAndLog(join(cwd, ".dockerignore"), generateDockerignore());
307
+ console.log(`
308
+ Next steps:`);
309
+ console.log(" 1. Build image: docker build -t gorsee-app .");
310
+ console.log(" 2. Run: docker run -p 3000:3000 gorsee-app");
311
+ }
312
+ export async function generateDeployConfig(args, options = {}) {
313
+ const { cwd } = createProjectContext(options), initOnly = args.includes("--init"), flags = parseDeployFlags(args);
314
+ let target = parseDeployTargetArg(args) ?? null;
315
+ if (!target) {
316
+ target = await detectTarget(cwd);
317
+ if (!target) {
318
+ await writeDeployFailurePack(cwd, "DEPLOY_TARGET", "No deploy target specified and none detected.");
319
+ console.error(" No deploy target specified and none detected.");
320
+ console.error(` Usage: gorsee deploy <${TARGETS.join("|")}> [--init]`);
321
+ process.exit(1);
322
+ }
323
+ console.log(` Auto-detected target: ${target}`);
324
+ }
325
+ if (!TARGETS.includes(target)) {
326
+ await writeDeployFailurePack(cwd, "DEPLOY_TARGET", `Unknown target: ${target}`);
327
+ console.error(` Unknown target: ${target}`);
328
+ console.error(` Available: ${TARGETS.join(", ")}`);
329
+ process.exit(1);
330
+ }
331
+ const projectName = cwd.split("/").pop() ?? "gorsee-app", runtime = resolveDeployRuntime(target, flags.runtime);
332
+ console.log(`
333
+ Generating ${target} deploy config...
334
+ `);
335
+ await runArtifactLifecycleStep({
336
+ cwd,
337
+ source: "deploy",
338
+ phase: "deploy",
339
+ step: "deploy",
340
+ code: "DEPLOY_GENERATE",
341
+ startMessage: `generating deploy config for ${target}`,
342
+ finishMessage: `deploy config generated for ${target}`,
343
+ data: {
344
+ target,
345
+ runtime,
346
+ initOnly,
347
+ projectName,
348
+ artifact: target === "docker" ? "Dockerfile" : target === "vercel" ? "vercel.json" : target === "cloudflare" ? "wrangler.toml" : target === "netlify" ? "netlify.toml" : "fly.toml"
349
+ },
350
+ run: async () => {
351
+ switch (target) {
352
+ case "vercel":
353
+ await deployVercel(cwd);
354
+ break;
355
+ case "fly":
356
+ await deployFly(cwd, projectName, runtime);
357
+ break;
358
+ case "cloudflare":
359
+ await deployCloudflare(cwd, projectName);
360
+ break;
361
+ case "netlify":
362
+ await deployNetlify(cwd);
363
+ break;
364
+ case "docker":
365
+ await deployDocker(cwd, runtime);
366
+ break;
367
+ }
368
+ await validateGeneratedDeployConfig(cwd, target, runtime);
369
+ }
370
+ });
371
+ if (initOnly)
372
+ console.log(`
373
+ Config generated (--init mode). Deploy manually when ready.`);
374
+ console.log();
375
+ }
376
+ export async function runDeploy(args, options = {}) {
377
+ return generateDeployConfig(args, options);
378
+ }
379
+ async function writeDeployFailurePack(cwd, code, message) {
380
+ await writeArtifactFailurePack(cwd, "deploy", "deploy.failure", code, message);
381
+ }
@@ -0,0 +1,5 @@
1
+ import { type RuntimeOptions } from "../runtime/project.js";
2
+ export interface DevCommandOptions extends RuntimeOptions {
3
+ port?: number;
4
+ }
5
+ export declare function runDev(_args: string[], options?: DevCommandOptions): Promise<void>;
@@ -0,0 +1,5 @@
1
+ import { createProjectContext } from "../runtime/project.js";
2
+ export async function runDev(_args, options = {}) {
3
+ const { cwd } = createProjectContext(options), { startDevServer } = await import("../dev.js");
4
+ await startDevServer({ cwd, port: options.port });
5
+ }
@@ -0,0 +1,50 @@
1
+ import { type Route } from "../router/scanner.js";
2
+ import { type RuntimeOptions } from "../runtime/project.js";
3
+ import { type RouteCompilerFacts } from "../compiler/route-facts.js";
4
+ interface DocFlags {
5
+ output: string;
6
+ format: "md" | "json" | "html";
7
+ routesOnly: boolean;
8
+ contracts: boolean;
9
+ }
10
+ interface RouteDoc {
11
+ path: string;
12
+ methods: string[];
13
+ hasLoader: boolean;
14
+ isApi: boolean;
15
+ hasMiddleware: boolean;
16
+ title: string;
17
+ meta: Record<string, unknown> | null;
18
+ }
19
+ export declare const DOCS_ARTIFACT_SCHEMA_VERSION: 1;
20
+ export interface DocsArtifactSummary {
21
+ totalRoutes: number;
22
+ pageRoutes: number;
23
+ apiRoutes: number;
24
+ loaderRoutes: number;
25
+ middlewareRoutes: number;
26
+ prerenderedRoutes: number;
27
+ }
28
+ export interface DocsArtifact {
29
+ schemaVersion: typeof DOCS_ARTIFACT_SCHEMA_VERSION;
30
+ generatedAt: string;
31
+ summary: DocsArtifactSummary;
32
+ routes: RouteCompilerFacts[];
33
+ docs: RouteDoc[];
34
+ }
35
+ export declare function parseDocsFlags(args: string[]): DocFlags;
36
+ declare function extractRouteInfo(route: Route): Promise<RouteDoc>;
37
+ declare function extractRouteInfoFromFacts(routeFacts: RouteCompilerFacts): RouteDoc;
38
+ declare function generateMarkdown(docs: RouteDoc[]): string;
39
+ declare function generateJson(docs: RouteDoc[]): string;
40
+ export declare function summarizeRouteFacts(routeFacts: RouteCompilerFacts[]): DocsArtifactSummary;
41
+ export declare function createDocsArtifact(routeFacts: RouteCompilerFacts[]): DocsArtifact;
42
+ export declare function generateJsonArtifact(artifact: DocsArtifact): string;
43
+ declare function generateHtml(docs: RouteDoc[]): string;
44
+ export interface DocsCommandOptions extends RuntimeOptions {
45
+ }
46
+ export declare function generateDocs(args: string[], options?: DocsCommandOptions): Promise<void>;
47
+ /** @deprecated Use generateDocs() for programmatic access. */
48
+ export declare function runDocs(args: string[], options?: DocsCommandOptions): Promise<void>;
49
+ export { extractRouteInfo, extractRouteInfoFromFacts, generateMarkdown, generateJson, generateHtml };
50
+ export type { RouteDoc, DocFlags };
@@ -0,0 +1,122 @@
1
+ import { dirname, join } from "node:path";
2
+ import { mkdir, writeFile } from "node:fs/promises";
3
+ import { createRouter } from "../router/scanner.js";
4
+ import { createProjectContext } from "../runtime/project.js";
5
+ import { initializeCompilerBackends } from "../compiler/init.js";
6
+ import {
7
+ createRouteFactsArtifact,
8
+ inspectRouteFacts,
9
+ toRouteDocSurface
10
+ } from "../compiler/route-facts.js";
11
+ export const DOCS_ARTIFACT_SCHEMA_VERSION = 1;
12
+ export function parseDocsFlags(args) {
13
+ const flags = { output: "docs/api.md", format: "md", routesOnly: !1, contracts: !1 };
14
+ for (let i = 0;i < args.length; i++) {
15
+ const arg = args[i];
16
+ if (arg === "--output" && args[i + 1])
17
+ flags.output = args[++i];
18
+ else if (arg === "--format" && args[i + 1]) {
19
+ const fmt = args[++i];
20
+ if (fmt === "md" || fmt === "json" || fmt === "html")
21
+ flags.format = fmt;
22
+ } else if (arg === "--routes-only")
23
+ flags.routesOnly = !0;
24
+ else if (arg === "--contracts")
25
+ flags.contracts = !0;
26
+ }
27
+ return flags;
28
+ }
29
+ async function extractRouteInfo(route) {
30
+ const routeFacts = await inspectRouteFacts(route);
31
+ return extractRouteInfoFromFacts(routeFacts);
32
+ }
33
+ function extractRouteInfoFromFacts(routeFacts) {
34
+ return toRouteDocSurface(routeFacts);
35
+ }
36
+ function generateMarkdown(docs) {
37
+ const lines = ["# API Documentation", "", "| Path | Methods | Type | Loader | Middleware |", "| --- | --- | --- | --- | --- |"];
38
+ for (const doc of docs) {
39
+ const type = doc.isApi ? "API" : "Page", mw = doc.hasMiddleware ? "Yes" : "-";
40
+ lines.push(`| ${doc.path} | ${doc.methods.join(", ")} | ${type} | ${doc.hasLoader ? "Yes" : "-"} | ${mw} |`);
41
+ }
42
+ return lines.join(`
43
+ `) + `
44
+ `;
45
+ }
46
+ function generateJson(docs) {
47
+ return JSON.stringify(docs, null, 2) + `
48
+ `;
49
+ }
50
+ export function summarizeRouteFacts(routeFacts) {
51
+ return {
52
+ totalRoutes: routeFacts.length,
53
+ pageRoutes: routeFacts.filter((route) => !route.isApi).length,
54
+ apiRoutes: routeFacts.filter((route) => route.isApi).length,
55
+ loaderRoutes: routeFacts.filter((route) => route.hasLoader).length,
56
+ middlewareRoutes: routeFacts.filter((route) => route.hasMiddleware).length,
57
+ prerenderedRoutes: routeFacts.filter((route) => route.declaresPrerender).length
58
+ };
59
+ }
60
+ export function createDocsArtifact(routeFacts) {
61
+ return {
62
+ schemaVersion: DOCS_ARTIFACT_SCHEMA_VERSION,
63
+ generatedAt: new Date().toISOString(),
64
+ summary: summarizeRouteFacts(routeFacts),
65
+ routes: routeFacts,
66
+ docs: routeFacts.map(extractRouteInfoFromFacts)
67
+ };
68
+ }
69
+ export function generateJsonArtifact(artifact) {
70
+ return JSON.stringify(artifact, null, 2) + `
71
+ `;
72
+ }
73
+ function generateHtml(docs) {
74
+ return `<!DOCTYPE html>
75
+ <html><head><meta charset="utf-8"><title>API Docs</title>
76
+ <style>body{font-family:sans-serif;margin:2rem}table{border-collapse:collapse;width:100%}
77
+ th,td{border:1px solid #ddd;padding:8px;text-align:left}th{background:#f5f5f5}</style>
78
+ </head><body><h1>API Documentation</h1>
79
+ <table><thead><tr><th>Path</th><th>Methods</th><th>Type</th><th>Loader</th><th>Middleware</th></tr></thead>
80
+ <tbody>${docs.map((d) => {
81
+ const type = d.isApi ? "API" : "Page", mw = d.hasMiddleware ? "Yes" : "-";
82
+ return `<tr><td>${d.path}</td><td>${d.methods.join(", ")}</td><td>${type}</td><td>${d.hasLoader ? "Yes" : "-"}</td><td>${mw}</td></tr>`;
83
+ }).join(`
84
+ `)}</tbody></table></body></html>
85
+ `;
86
+ }
87
+ const GENERATORS = {
88
+ md: generateMarkdown,
89
+ json: generateJson,
90
+ html: generateHtml
91
+ };
92
+ export async function generateDocs(args, options = {}) {
93
+ const { cwd, paths } = createProjectContext(options);
94
+ initializeCompilerBackends(options.env ?? process.env);
95
+ const flags = parseDocsFlags(args), routes = await createRouter(paths.routesDir);
96
+ if (routes.length === 0) {
97
+ console.log(`
98
+ No routes found in routes/
99
+ `);
100
+ return;
101
+ }
102
+ const routeFacts = await createRouteFactsArtifact(routes), docs = [];
103
+ for (const info of routeFacts.routes.map(extractRouteInfoFromFacts)) {
104
+ if (flags.routesOnly && info.isApi)
105
+ continue;
106
+ docs.push(info);
107
+ }
108
+ const generate = GENERATORS[flags.format], filteredRouteFacts = routeFacts.routes.filter((route) => {
109
+ const info = extractRouteInfoFromFacts(route);
110
+ return !(flags.routesOnly && info.isApi);
111
+ }), content = flags.format === "json" && flags.contracts ? generateJsonArtifact(createDocsArtifact(filteredRouteFacts)) : generate(docs), outputPath = join(cwd, flags.output);
112
+ await mkdir(dirname(outputPath), { recursive: !0 });
113
+ await writeFile(outputPath, content, "utf-8");
114
+ console.log(`
115
+ Generated docs for ${docs.length} routes -> ${flags.output}
116
+ `);
117
+ }
118
+ export async function runDocs(args, options = {}) {
119
+ return generateDocs(args, options);
120
+ }
121
+
122
+ export { extractRouteInfo, extractRouteInfoFromFacts, generateMarkdown, generateJson, generateHtml };
@@ -0,0 +1,12 @@
1
+ import { type RuntimeOptions } from "../runtime/project.js";
2
+ export type GenerateDataMode = "memory" | "sqlite" | "postgres";
3
+ export interface GenerateFlags {
4
+ entity: string | null;
5
+ data: GenerateDataMode | null;
6
+ }
7
+ export declare function parseGenerateFlags(args: string[]): GenerateFlags;
8
+ export interface GenerateCommandOptions extends RuntimeOptions {
9
+ }
10
+ export declare function generateCrudScaffold(args: string[], options?: GenerateCommandOptions): Promise<void>;
11
+ /** @deprecated Use generateCrudScaffold() for programmatic access. */
12
+ export declare function runGenerate(args: string[], options?: GenerateCommandOptions): Promise<void>;