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
@@ -1,242 +0,0 @@
1
- // HTML intrinsic element types for JSX autocomplete
2
-
3
- type EventHandler = (event: Event) => void
4
- interface HTMLAttributes {
5
- // Core
6
- id?: string
7
- class?: string
8
- className?: string
9
- style?: string | Record<string, string | number | (() => string | number)>
10
- title?: string
11
- tabIndex?: number
12
- hidden?: boolean
13
- children?: unknown
14
-
15
- // Accessibility
16
- role?: string
17
-
18
- // Events (on:event pattern)
19
- "on:click"?: EventHandler
20
- "on:dblclick"?: EventHandler
21
- "on:mousedown"?: EventHandler
22
- "on:mouseup"?: EventHandler
23
- "on:mouseover"?: EventHandler
24
- "on:mouseout"?: EventHandler
25
- "on:mousemove"?: EventHandler
26
- "on:keydown"?: (event: KeyboardEvent) => void
27
- "on:keyup"?: (event: KeyboardEvent) => void
28
- "on:keypress"?: (event: KeyboardEvent) => void
29
- "on:focus"?: (event: FocusEvent) => void
30
- "on:blur"?: (event: FocusEvent) => void
31
- "on:input"?: (event: InputEvent) => void
32
- "on:change"?: EventHandler
33
- "on:submit"?: (event: SubmitEvent) => void
34
- "on:scroll"?: EventHandler
35
- "on:touchstart"?: EventHandler
36
- "on:touchend"?: EventHandler
37
- "on:touchmove"?: EventHandler
38
-
39
- // Data attributes
40
- [key: `data-${string}`]: string | number | boolean | undefined
41
- // Aria attributes
42
- [key: `aria-${string}`]: string | number | boolean | undefined
43
- }
44
-
45
- interface AnchorAttributes extends HTMLAttributes {
46
- href?: string
47
- target?: string
48
- rel?: string
49
- download?: string | boolean
50
- }
51
-
52
- interface ImgAttributes extends HTMLAttributes {
53
- src?: string
54
- alt?: string
55
- width?: number | string
56
- height?: number | string
57
- loading?: "lazy" | "eager"
58
- decoding?: "async" | "auto" | "sync"
59
- }
60
-
61
- interface InputAttributes extends HTMLAttributes {
62
- type?: string
63
- name?: string
64
- value?: string | number
65
- checked?: boolean
66
- disabled?: boolean
67
- placeholder?: string
68
- required?: boolean
69
- readonly?: boolean
70
- min?: number | string
71
- max?: number | string
72
- step?: number | string
73
- pattern?: string
74
- autocomplete?: string
75
- }
76
-
77
- interface FormAttributes extends HTMLAttributes {
78
- action?: string
79
- method?: string
80
- enctype?: string
81
- novalidate?: boolean
82
- }
83
-
84
- interface ButtonAttributes extends HTMLAttributes {
85
- type?: "button" | "submit" | "reset"
86
- disabled?: boolean
87
- name?: string
88
- value?: string
89
- }
90
-
91
- interface SelectAttributes extends HTMLAttributes {
92
- name?: string
93
- value?: string
94
- disabled?: boolean
95
- multiple?: boolean
96
- required?: boolean
97
- }
98
-
99
- interface TextareaAttributes extends HTMLAttributes {
100
- name?: string
101
- value?: string
102
- placeholder?: string
103
- rows?: number
104
- cols?: number
105
- disabled?: boolean
106
- required?: boolean
107
- readonly?: boolean
108
- }
109
-
110
- interface OptionAttributes extends HTMLAttributes {
111
- value?: string
112
- selected?: boolean
113
- disabled?: boolean
114
- }
115
-
116
- interface LabelAttributes extends HTMLAttributes {
117
- for?: string
118
- htmlFor?: string
119
- }
120
-
121
- interface MetaAttributes extends HTMLAttributes {
122
- name?: string
123
- content?: string
124
- charset?: string
125
- "http-equiv"?: string
126
- }
127
-
128
- interface LinkAttributes extends HTMLAttributes {
129
- href?: string
130
- rel?: string
131
- type?: string
132
- media?: string
133
- }
134
-
135
- interface ScriptAttributes extends HTMLAttributes {
136
- src?: string
137
- type?: string
138
- async?: boolean
139
- defer?: boolean
140
- nonce?: string
141
- }
142
-
143
- interface IframeAttributes extends HTMLAttributes {
144
- src?: string
145
- srcdoc?: string
146
- width?: number | string
147
- height?: number | string
148
- sandbox?: string
149
- allow?: string
150
- }
151
-
152
- interface TableCellAttributes extends HTMLAttributes {
153
- colspan?: number
154
- rowspan?: number
155
- }
156
-
157
- export interface GorseeIntrinsicElements {
158
- // Structural
159
- div: HTMLAttributes
160
- span: HTMLAttributes
161
- p: HTMLAttributes
162
- main: HTMLAttributes
163
- section: HTMLAttributes
164
- article: HTMLAttributes
165
- aside: HTMLAttributes
166
- header: HTMLAttributes
167
- footer: HTMLAttributes
168
- nav: HTMLAttributes
169
-
170
- // Headings
171
- h1: HTMLAttributes
172
- h2: HTMLAttributes
173
- h3: HTMLAttributes
174
- h4: HTMLAttributes
175
- h5: HTMLAttributes
176
- h6: HTMLAttributes
177
-
178
- // Text
179
- a: AnchorAttributes
180
- strong: HTMLAttributes
181
- em: HTMLAttributes
182
- b: HTMLAttributes
183
- i: HTMLAttributes
184
- small: HTMLAttributes
185
- code: HTMLAttributes
186
- pre: HTMLAttributes
187
- blockquote: HTMLAttributes
188
- br: HTMLAttributes
189
- hr: HTMLAttributes
190
-
191
- // Lists
192
- ul: HTMLAttributes
193
- ol: HTMLAttributes
194
- li: HTMLAttributes
195
- dl: HTMLAttributes
196
- dt: HTMLAttributes
197
- dd: HTMLAttributes
198
-
199
- // Forms
200
- form: FormAttributes
201
- input: InputAttributes
202
- button: ButtonAttributes
203
- select: SelectAttributes
204
- textarea: TextareaAttributes
205
- option: OptionAttributes
206
- label: LabelAttributes
207
- fieldset: HTMLAttributes
208
- legend: HTMLAttributes
209
-
210
- // Media
211
- img: ImgAttributes
212
- video: HTMLAttributes & { src?: string; controls?: boolean; autoplay?: boolean }
213
- audio: HTMLAttributes & { src?: string; controls?: boolean }
214
- source: HTMLAttributes & { src?: string; type?: string }
215
- canvas: HTMLAttributes & { width?: number; height?: number }
216
- svg: HTMLAttributes & { viewBox?: string; xmlns?: string; width?: number | string; height?: number | string }
217
-
218
- // Table
219
- table: HTMLAttributes
220
- thead: HTMLAttributes
221
- tbody: HTMLAttributes
222
- tfoot: HTMLAttributes
223
- tr: HTMLAttributes
224
- th: TableCellAttributes
225
- td: TableCellAttributes
226
-
227
- // Other
228
- iframe: IframeAttributes
229
- details: HTMLAttributes
230
- summary: HTMLAttributes
231
- dialog: HTMLAttributes & { open?: boolean }
232
- template: HTMLAttributes
233
- slot: HTMLAttributes
234
- meta: MetaAttributes
235
- link: LinkAttributes
236
- script: ScriptAttributes
237
- style: HTMLAttributes
238
- title: HTMLAttributes
239
-
240
- // Fallback for any element
241
- [elemName: string]: HTMLAttributes
242
- }
package/src/log/index.ts DELETED
@@ -1,44 +0,0 @@
1
- export type LogLevel = "off" | "error" | "info" | "verbose" | "debug"
2
-
3
- const LEVELS: Record<LogLevel, number> = {
4
- off: 0,
5
- error: 1,
6
- info: 2,
7
- verbose: 3,
8
- debug: 4,
9
- }
10
-
11
- let currentLevel: LogLevel = "info"
12
-
13
- export function setLogLevel(level: LogLevel): void {
14
- currentLevel = level
15
- }
16
-
17
- function shouldLog(level: LogLevel): boolean {
18
- return LEVELS[level] <= LEVELS[currentLevel]
19
- }
20
-
21
- function formatEntry(level: string, message: string, data?: Record<string, unknown>): string {
22
- const entry = {
23
- level,
24
- message,
25
- timestamp: new Date().toISOString(),
26
- ...data,
27
- }
28
- return JSON.stringify(entry)
29
- }
30
-
31
- export const log = {
32
- error(message: string, data?: Record<string, unknown>): void {
33
- if (shouldLog("error")) console.error(formatEntry("error", message, data))
34
- },
35
- info(message: string, data?: Record<string, unknown>): void {
36
- if (shouldLog("info")) console.log(formatEntry("info", message, data))
37
- },
38
- verbose(message: string, data?: Record<string, unknown>): void {
39
- if (shouldLog("verbose")) console.log(formatEntry("verbose", message, data))
40
- },
41
- debug(message: string, data?: Record<string, unknown>): void {
42
- if (shouldLog("debug")) console.log(formatEntry("debug", message, data))
43
- },
44
- }
@@ -1,84 +0,0 @@
1
- // Drizzle ORM integration plugin -- zero external dependencies
2
-
3
- import type { MiddlewareFn, Context } from "../server/middleware.ts"
4
- import type { GorseePlugin } from "./index.ts"
5
- import { definePlugin } from "./index.ts"
6
-
7
- export interface DrizzlePluginConfig {
8
- schema: string
9
- out: string
10
- dialect: "sqlite" | "postgres" | "mysql"
11
- connectionUrl?: string
12
- }
13
-
14
- let drizzleInstance: unknown = null
15
-
16
- /** Returns the current drizzle instance (available after setup) */
17
- export function getDrizzle<T = unknown>(): T {
18
- if (!drizzleInstance) {
19
- throw new Error("Drizzle not initialized. Did you register drizzlePlugin?")
20
- }
21
- return drizzleInstance as T
22
- }
23
-
24
- /** Middleware that attaches drizzle instance to ctx.locals.db */
25
- export function drizzleMiddleware(instance: unknown): MiddlewareFn {
26
- return async (ctx: Context, next) => {
27
- ctx.locals.db = instance
28
- return next()
29
- }
30
- }
31
-
32
- /** Generates drizzle.config.ts content string */
33
- export function generateDrizzleConfig(config: DrizzlePluginConfig): string {
34
- const dbCredentials =
35
- config.dialect === "sqlite"
36
- ? `{ url: "${config.connectionUrl ?? "./data.db"}" }`
37
- : `{ connectionString: "${config.connectionUrl ?? ""}" }`
38
-
39
- return `import { defineConfig } from "drizzle-kit"
40
-
41
- export default defineConfig({
42
- schema: "${config.schema}",
43
- out: "${config.out}",
44
- dialect: "${config.dialect}",
45
- dbCredentials: ${dbCredentials},
46
- })
47
- `
48
- }
49
-
50
- /** Creates a Drizzle ORM integration plugin */
51
- export function drizzlePlugin(config: DrizzlePluginConfig): GorseePlugin {
52
- return definePlugin({
53
- name: "gorsee-drizzle",
54
-
55
- async setup(app) {
56
- if (config.dialect === "sqlite") {
57
- const { Database } = await import("bun:sqlite" as string)
58
- const db = new Database(config.connectionUrl ?? "./data.db")
59
- db.exec("PRAGMA journal_mode=WAL")
60
-
61
- // Dynamic import for drizzle-orm/bun-sqlite
62
- try {
63
- const { drizzle } = await import("drizzle-orm/bun-sqlite" as string)
64
- drizzleInstance = drizzle(db)
65
- } catch {
66
- // If drizzle-orm not installed, store raw db
67
- drizzleInstance = db
68
- }
69
- } else {
70
- // For postgres/mysql, store connection URL for user to configure
71
- drizzleInstance = { dialect: config.dialect, url: config.connectionUrl }
72
- }
73
-
74
- app.addMiddleware(drizzleMiddleware(drizzleInstance))
75
- },
76
-
77
- async teardown() {
78
- if (drizzleInstance && typeof (drizzleInstance as any).close === "function") {
79
- ;(drizzleInstance as any).close()
80
- }
81
- drizzleInstance = null
82
- },
83
- })
84
- }
@@ -1,86 +0,0 @@
1
- // Gorsee plugin system -- lifecycle management for framework extensions
2
-
3
- import type { MiddlewareFn, Context } from "../server/middleware.ts"
4
-
5
- export interface GorseePlugin {
6
- name: string
7
- /** Hook into server startup */
8
- setup?: (app: PluginContext) => void | Promise<void>
9
- /** Add middleware to every request */
10
- middleware?: MiddlewareFn
11
- /** Hook into build pipeline */
12
- buildPlugins?: () => import("bun").BunPlugin[]
13
- /** Cleanup on shutdown */
14
- teardown?: () => void | Promise<void>
15
- }
16
-
17
- export interface PluginContext {
18
- /** Register a middleware */
19
- addMiddleware(mw: MiddlewareFn): void
20
- /** Register a route programmatically */
21
- addRoute(path: string, handler: (ctx: Context) => Promise<Response>): void
22
- /** Access app config */
23
- config: Record<string, unknown>
24
- }
25
-
26
- /** Identity helper for type inference */
27
- export function definePlugin(plugin: GorseePlugin): GorseePlugin {
28
- return plugin
29
- }
30
-
31
- export interface PluginRunner {
32
- register(plugin: GorseePlugin): void
33
- setupAll(): Promise<void>
34
- teardownAll(): Promise<void>
35
- getMiddlewares(): MiddlewareFn[]
36
- getBuildPlugins(): import("bun").BunPlugin[]
37
- getRoutes(): Map<string, (ctx: Context) => Promise<Response>>
38
- }
39
-
40
- /** Creates a plugin runner that manages the full plugin lifecycle */
41
- export function createPluginRunner(
42
- config: Record<string, unknown> = {},
43
- ): PluginRunner {
44
- const plugins: GorseePlugin[] = []
45
- const middlewares: MiddlewareFn[] = []
46
- const routes = new Map<string, (ctx: Context) => Promise<Response>>()
47
-
48
- const pluginCtx: PluginContext = {
49
- addMiddleware: (mw) => middlewares.push(mw),
50
- addRoute: (path, handler) => routes.set(path, handler),
51
- config,
52
- }
53
-
54
- return {
55
- register(plugin: GorseePlugin) {
56
- plugins.push(plugin)
57
- if (plugin.middleware) {
58
- middlewares.push(plugin.middleware)
59
- }
60
- },
61
-
62
- async setupAll() {
63
- for (const plugin of plugins) {
64
- if (plugin.setup) await plugin.setup(pluginCtx)
65
- }
66
- },
67
-
68
- async teardownAll() {
69
- for (const plugin of [...plugins].reverse()) {
70
- if (plugin.teardown) await plugin.teardown()
71
- }
72
- },
73
-
74
- getMiddlewares: () => [...middlewares],
75
-
76
- getBuildPlugins() {
77
- const result: import("bun").BunPlugin[] = []
78
- for (const plugin of plugins) {
79
- if (plugin.buildPlugins) result.push(...plugin.buildPlugins())
80
- }
81
- return result
82
- },
83
-
84
- getRoutes: () => new Map(routes),
85
- }
86
- }
@@ -1,111 +0,0 @@
1
- // Lucia auth adapter plugin -- session management integration
2
-
3
- import type { MiddlewareFn, Context } from "../server/middleware.ts"
4
- import type { GorseePlugin } from "./index.ts"
5
- import { definePlugin } from "./index.ts"
6
-
7
- export interface LuciaPluginConfig {
8
- adapter: "sqlite" | "prisma" | "drizzle"
9
- sessionTable?: string
10
- userTable?: string
11
- }
12
-
13
- interface LuciaInstance {
14
- validateSession(sessionId: string): Promise<{ session: unknown; user: unknown } | null>
15
- createSession(userId: string, attributes?: Record<string, unknown>): Promise<{ id: string }>
16
- invalidateSession(sessionId: string): Promise<void>
17
- }
18
-
19
- let luciaInstance: LuciaInstance | null = null
20
-
21
- /** Returns the Lucia instance (available after setup) */
22
- export function getLucia(): LuciaInstance {
23
- if (!luciaInstance) {
24
- throw new Error("Lucia not initialized. Did you register luciaPlugin?")
25
- }
26
- return luciaInstance
27
- }
28
-
29
- /** Extracts current session from context (set by middleware) */
30
- export function getSession(ctx: Context): unknown | null {
31
- return ctx.locals.session ?? null
32
- }
33
-
34
- /** Extracts current user from context (set by middleware) */
35
- export function getUser(ctx: Context): unknown | null {
36
- return ctx.locals.user ?? null
37
- }
38
-
39
- /** Creates the session validation middleware */
40
- function createSessionMiddleware(): MiddlewareFn {
41
- return async (ctx: Context, next) => {
42
- ctx.locals.session = null
43
- ctx.locals.user = null
44
-
45
- const sessionId =
46
- ctx.cookies.get("auth_session") ??
47
- ctx.request.headers.get("Authorization")?.replace("Bearer ", "") ??
48
- null
49
-
50
- if (sessionId && luciaInstance) {
51
- try {
52
- const result = await luciaInstance.validateSession(sessionId)
53
- if (result) {
54
- ctx.locals.session = result.session
55
- ctx.locals.user = result.user
56
- }
57
- } catch {
58
- // Invalid session -- continue without auth
59
- }
60
- }
61
-
62
- return next()
63
- }
64
- }
65
-
66
- /** Creates a Lucia auth integration plugin */
67
- export function luciaPlugin(config: LuciaPluginConfig): GorseePlugin {
68
- return definePlugin({
69
- name: "gorsee-lucia",
70
-
71
- async setup() {
72
- try {
73
- const { Lucia } = await import("lucia" as string)
74
- let adapter: unknown
75
-
76
- if (config.adapter === "sqlite") {
77
- const { BunSQLiteAdapter } = await import("@lucia-auth/adapter-sqlite" as string)
78
- const { Database } = await import("bun:sqlite" as string)
79
- const db = new Database("./data.db")
80
- adapter = new BunSQLiteAdapter(db, {
81
- session: config.sessionTable ?? "session",
82
- user: config.userTable ?? "user",
83
- })
84
- } else if (config.adapter === "prisma") {
85
- const { PrismaAdapter } = await import("@lucia-auth/adapter-prisma" as string)
86
- const { PrismaClient } = await import("@prisma/client" as string)
87
- adapter = new PrismaAdapter(new PrismaClient(), {
88
- session: config.sessionTable ?? "session",
89
- user: config.userTable ?? "user",
90
- })
91
- } else {
92
- // Drizzle adapter -- user must configure separately
93
- adapter = null
94
- }
95
-
96
- if (adapter) {
97
- luciaInstance = new Lucia(adapter) as unknown as LuciaInstance
98
- }
99
- } catch {
100
- // Lucia not installed -- instance stays null
101
- luciaInstance = null
102
- }
103
- },
104
-
105
- middleware: createSessionMiddleware(),
106
-
107
- async teardown() {
108
- luciaInstance = null
109
- },
110
- })
111
- }
@@ -1,85 +0,0 @@
1
- // Prisma integration plugin -- zero external dependencies
2
-
3
- import type { MiddlewareFn, Context } from "../server/middleware.ts"
4
- import type { GorseePlugin } from "./index.ts"
5
- import { definePlugin } from "./index.ts"
6
-
7
- export interface PrismaPluginConfig {
8
- schemaPath?: string
9
- datasourceUrl?: string
10
- }
11
-
12
- let prismaClient: unknown = null
13
-
14
- /** Returns the current Prisma client (available after setup) */
15
- export function getPrisma<T = unknown>(): T {
16
- if (!prismaClient) {
17
- throw new Error("Prisma not initialized. Did you register prismaPlugin?")
18
- }
19
- return prismaClient as T
20
- }
21
-
22
- /** Middleware that attaches prisma to ctx.locals.prisma */
23
- export function prismaMiddleware(client: unknown): MiddlewareFn {
24
- return async (ctx: Context, next) => {
25
- ctx.locals.prisma = client
26
- return next()
27
- }
28
- }
29
-
30
- /** Generates a basic schema.prisma content string */
31
- export function generatePrismaSchema(config: PrismaPluginConfig): string {
32
- const url = config.datasourceUrl ?? "file:./dev.db"
33
- const provider = url.startsWith("file:") ? "sqlite"
34
- : url.startsWith("postgres") ? "postgresql"
35
- : "mysql"
36
-
37
- return `generator client {
38
- provider = "prisma-client-js"
39
- }
40
-
41
- datasource db {
42
- provider = "${provider}"
43
- url = "${url}"
44
- }
45
-
46
- // Add your models below
47
- // model User {
48
- // id Int @id @default(autoincrement())
49
- // email String @unique
50
- // name String?
51
- // }
52
- `
53
- }
54
-
55
- /** Creates a Prisma integration plugin */
56
- export function prismaPlugin(config: PrismaPluginConfig = {}): GorseePlugin {
57
- return definePlugin({
58
- name: "gorsee-prisma",
59
-
60
- async setup(app) {
61
- try {
62
- // Dynamic import -- PrismaClient must be generated by user
63
- const { PrismaClient } = await import("@prisma/client" as string)
64
- prismaClient = new PrismaClient({
65
- datasourceUrl: config.datasourceUrl,
66
- })
67
- } catch {
68
- // If @prisma/client not available, create a placeholder
69
- prismaClient = {
70
- _placeholder: true,
71
- _message: "Run `bunx prisma generate` to create the client",
72
- }
73
- }
74
-
75
- app.addMiddleware(prismaMiddleware(prismaClient))
76
- },
77
-
78
- async teardown() {
79
- if (prismaClient && typeof (prismaClient as any).$disconnect === "function") {
80
- await (prismaClient as any).$disconnect()
81
- }
82
- prismaClient = null
83
- },
84
- })
85
- }