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,106 @@
1
+ const args = process.argv.slice(2), command = args[0], COMMANDS = {
2
+ create: "Create a new Gorsee.js project",
3
+ dev: "Start development server with HMR",
4
+ build: "Production build (client + server)",
5
+ start: "Start production server",
6
+ check: "Check project: types, safety, structure, optional canonical autofix",
7
+ routes: "List all routes with render modes",
8
+ migrate: "Run database migrations",
9
+ generate: "Generate CRUD scaffold for entity",
10
+ typegen: "Generate typed route definitions",
11
+ deploy: "Generate deploy config (vercel/fly/cloudflare/netlify/docker)",
12
+ test: "Run tests (unit/integration/e2e)",
13
+ docs: "Generate API documentation from routes",
14
+ ai: "AI-first tooling: tail, doctor, bridge, mcp",
15
+ upgrade: "Upgrade Gorsee.js with migration audit and canonical rewrites",
16
+ help: "Show this help message"
17
+ };
18
+ async function main() {
19
+ switch (command) {
20
+ case "create":
21
+ const { runCreate } = await import("./cmd-create.js");
22
+ await runCreate(args.slice(1));
23
+ break;
24
+ case "dev":
25
+ const { runDev } = await import("./cmd-dev.js");
26
+ await runDev(args.slice(1));
27
+ break;
28
+ case "build":
29
+ const { runBuild } = await import("./cmd-build.js");
30
+ await runBuild(args.slice(1));
31
+ break;
32
+ case "start":
33
+ const { runStart } = await import("./cmd-start.js");
34
+ await runStart(args.slice(1));
35
+ break;
36
+ case "check":
37
+ const { runCheck } = await import("./cmd-check.js");
38
+ await runCheck(args.slice(1));
39
+ break;
40
+ case "routes":
41
+ const { runRoutes } = await import("./cmd-routes.js");
42
+ await runRoutes(args.slice(1));
43
+ break;
44
+ case "migrate":
45
+ const { runMigrate } = await import("./cmd-migrate.js");
46
+ await runMigrate(args.slice(1));
47
+ break;
48
+ case "generate":
49
+ const { runGenerate } = await import("./cmd-generate.js");
50
+ await runGenerate(args.slice(1));
51
+ break;
52
+ case "typegen":
53
+ const { runTypegen } = await import("./cmd-typegen.js");
54
+ await runTypegen(args.slice(1));
55
+ break;
56
+ case "deploy":
57
+ const { runDeploy } = await import("./cmd-deploy.js");
58
+ await runDeploy(args.slice(1));
59
+ break;
60
+ case "test": {
61
+ const { runTest } = await import("./cmd-test.js");
62
+ await runTest(args.slice(1));
63
+ break;
64
+ }
65
+ case "docs": {
66
+ const { runDocs } = await import("./cmd-docs.js");
67
+ await runDocs(args.slice(1));
68
+ break;
69
+ }
70
+ case "ai": {
71
+ const { runAI } = await import("./cmd-ai.js");
72
+ await runAI(args.slice(1));
73
+ break;
74
+ }
75
+ case "upgrade": {
76
+ const { runUpgrade } = await import("./cmd-upgrade.js");
77
+ await runUpgrade(args.slice(1));
78
+ break;
79
+ }
80
+ case "help":
81
+ case void 0:
82
+ case "--help":
83
+ case "-h":
84
+ printHelp();
85
+ break;
86
+ default:
87
+ console.error(`Unknown command: ${command}`);
88
+ printHelp();
89
+ process.exit(1);
90
+ }
91
+ }
92
+ function printHelp() {
93
+ console.log(`
94
+ gorsee - Full-stack TypeScript framework
95
+ `);
96
+ console.log(` Usage: gorsee <command> [options]
97
+ `);
98
+ console.log(" Commands:");
99
+ for (const [cmd, desc] of Object.entries(COMMANDS))
100
+ console.log(` ${cmd.padEnd(12)} ${desc}`);
101
+ console.log();
102
+ }
103
+ main().catch((err) => {
104
+ console.error(err);
105
+ process.exit(1);
106
+ });
@@ -0,0 +1,2 @@
1
+ export type ReleaseChannel = "stable" | "canary" | "rc";
2
+ export declare function planReleaseVersion(input: string, channel: ReleaseChannel): string;
@@ -0,0 +1,33 @@
1
+ export function planReleaseVersion(input, channel) {
2
+ const parsed = parseVersion(input);
3
+ switch (channel) {
4
+ case "stable":
5
+ return `${parsed.major}.${parsed.minor}.${parsed.patch}`;
6
+ case "canary":
7
+ if (parsed.pre?.tag === "canary")
8
+ return `${parsed.major}.${parsed.minor}.${parsed.patch}-canary.${parsed.pre.number + 1}`;
9
+ if (parsed.pre)
10
+ return `${parsed.major}.${parsed.minor}.${parsed.patch}-canary.0`;
11
+ return `${parsed.major}.${parsed.minor}.${parsed.patch + 1}-canary.0`;
12
+ case "rc":
13
+ if (parsed.pre?.tag === "rc")
14
+ return `${parsed.major}.${parsed.minor}.${parsed.patch}-rc.${parsed.pre.number + 1}`;
15
+ if (parsed.pre)
16
+ return `${parsed.major}.${parsed.minor}.${parsed.patch}-rc.0`;
17
+ return `${parsed.major}.${parsed.minor}.${parsed.patch + 1}-rc.0`;
18
+ }
19
+ }
20
+ function parseVersion(input) {
21
+ const match = input.match(/^(\d+)\.(\d+)\.(\d+)(?:-(canary|rc)\.(\d+))?$/);
22
+ if (!match)
23
+ throw Error(`unsupported version format: ${input}`);
24
+ return {
25
+ major: Number(match[1]),
26
+ minor: Number(match[2]),
27
+ patch: Number(match[3]),
28
+ pre: match[4] ? {
29
+ tag: match[4],
30
+ number: Number(match[5])
31
+ } : void 0
32
+ };
33
+ }
@@ -0,0 +1,16 @@
1
+ export { createSignal, createComputed, createEffect, createResource, createDataQuery, createDataMutation, createStore, createLive, invalidateResource, invalidateAll, createMutation, } from "./reactive/index.js";
2
+ export { Suspense } from "./runtime/suspense.js";
3
+ export { Link } from "./runtime/link.js";
4
+ export { Head } from "./runtime/head.js";
5
+ export { navigate, onNavigate, beforeNavigate, getCurrentPath } from "./runtime/router.js";
6
+ export { RUNTIME_DEVTOOLS_SCHEMA_VERSION, createRuntimeDevtoolsSnapshot, renderRuntimeDevtoolsHTML, renderRuntimeDevtoolsOverlay, type RuntimeDevtoolsOptions, type RuntimeDevtoolsRouteEntry, type RuntimeDevtoolsRouteSummary, type RuntimeDevtoolsSnapshot, type RuntimeDevtoolsSummary, type RuntimeDevtoolsTopNode, } from "./runtime/devtools.js";
7
+ export { useFormAction, type FormActionResult, type FormState, type FormSubmitOptions } from "./runtime/form.js";
8
+ export { Image, getImageProps, buildImageSrcSet, getImageCandidateWidths, isAllowedRemoteImage, defaultImageLoader, type ImageProps, type ImageLoader, type ImageLoaderParams, type ImageRuntimeConfig, type ImageRemotePattern, type ImageFormat, } from "./runtime/image.js";
9
+ export { ErrorBoundary } from "./runtime/error-boundary.js";
10
+ export { island } from "./runtime/island.js";
11
+ export { createEventSource, type EventSourceSignal } from "./runtime/event-source.js";
12
+ /** @deprecated Import from "gorsee/routes" when route contracts are the primary concern. */
13
+ export { typedLink, typedNavigate, typedPrefetch, resolveTypedRouteTarget, buildSearchParams, buildTypedPath, createTypedRoute, extractRouteParamKeys, type TypedRouteDefinition, type TypedRouteTarget, } from "./runtime/typed-routes.js";
14
+ /** @deprecated Import from "gorsee/forms" when form contracts are the primary concern. */
15
+ export { defineForm, validateForm, validateAction, toFieldErrors, fieldAttrs, type FormField, type FormSchema, type ValidationResult, type ActionValidationResult, type ValidationError, } from "./runtime/validated-form.js";
16
+ export { setupI18n, loadLocale, getLocale, getLocales, getDefaultLocale, getFallbackLocales, setLocale, t, plural, negotiateLocale, resolveLocaleFromPath, stripLocalePrefix, withLocalePath, buildHreflangLinks, formatNumber, formatDate, formatRelativeTime, type I18nConfig, type LocaleNegotiationInput, type LocaleNegotiationResult, } from "./i18n/index.js";
@@ -0,0 +1,71 @@
1
+ export {
2
+ createSignal,
3
+ createComputed,
4
+ createEffect,
5
+ createResource,
6
+ createDataQuery,
7
+ createDataMutation,
8
+ createStore,
9
+ createLive,
10
+ invalidateResource,
11
+ invalidateAll,
12
+ createMutation
13
+ } from "./reactive/index.js";
14
+ export { Suspense } from "./runtime/suspense.js";
15
+ export { Link } from "./runtime/link.js";
16
+ export { Head } from "./runtime/head.js";
17
+ export { navigate, onNavigate, beforeNavigate, getCurrentPath } from "./runtime/router.js";
18
+ export {
19
+ RUNTIME_DEVTOOLS_SCHEMA_VERSION,
20
+ createRuntimeDevtoolsSnapshot,
21
+ renderRuntimeDevtoolsHTML,
22
+ renderRuntimeDevtoolsOverlay
23
+ } from "./runtime/devtools.js";
24
+ export { useFormAction } from "./runtime/form.js";
25
+ export {
26
+ Image,
27
+ getImageProps,
28
+ buildImageSrcSet,
29
+ getImageCandidateWidths,
30
+ isAllowedRemoteImage,
31
+ defaultImageLoader
32
+ } from "./runtime/image.js";
33
+ export { ErrorBoundary } from "./runtime/error-boundary.js";
34
+ export { island } from "./runtime/island.js";
35
+ export { createEventSource } from "./runtime/event-source.js";
36
+ export {
37
+ typedLink,
38
+ typedNavigate,
39
+ typedPrefetch,
40
+ resolveTypedRouteTarget,
41
+ buildSearchParams,
42
+ buildTypedPath,
43
+ createTypedRoute,
44
+ extractRouteParamKeys
45
+ } from "./runtime/typed-routes.js";
46
+ export {
47
+ defineForm,
48
+ validateForm,
49
+ validateAction,
50
+ toFieldErrors,
51
+ fieldAttrs
52
+ } from "./runtime/validated-form.js";
53
+ export {
54
+ setupI18n,
55
+ loadLocale,
56
+ getLocale,
57
+ getLocales,
58
+ getDefaultLocale,
59
+ getFallbackLocales,
60
+ setLocale,
61
+ t,
62
+ plural,
63
+ negotiateLocale,
64
+ resolveLocaleFromPath,
65
+ stripLocalePrefix,
66
+ withLocalePath,
67
+ buildHreflangLinks,
68
+ formatNumber,
69
+ formatDate,
70
+ formatRelativeTime
71
+ } from "./i18n/index.js";
@@ -0,0 +1 @@
1
+ export * from "./index.js";
@@ -0,0 +1 @@
1
+ export * from "./index.js";
@@ -0,0 +1,20 @@
1
+ export interface ModuleImportFact {
2
+ specifier: string;
3
+ names: string[];
4
+ namespace?: string;
5
+ hasDefaultImport: boolean;
6
+ }
7
+ export interface ModuleAnalysisFacts {
8
+ exportedNames: Set<string>;
9
+ hasDefaultExport: boolean;
10
+ title: string;
11
+ meta: Record<string, unknown> | null;
12
+ exportedLiterals: Record<string, unknown>;
13
+ imports: ModuleImportFact[];
14
+ sourceFile: unknown;
15
+ }
16
+ export interface ModuleAnalysisBackend {
17
+ name: string;
18
+ analyzeModuleSource(filePath: string, content: string): ModuleAnalysisFacts;
19
+ }
20
+ export declare function createTypeScriptModuleAnalysisBackend(): ModuleAnalysisBackend;
@@ -0,0 +1,164 @@
1
+ import ts from "typescript";
2
+ const NON_LITERAL = Symbol("non-literal");
3
+ export function createTypeScriptModuleAnalysisBackend() {
4
+ return {
5
+ name: "typescript",
6
+ analyzeModuleSource(filePath, content) {
7
+ const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, !0, ts.ScriptKind.TSX);
8
+ return {
9
+ exportedNames: collectExportedNames(sourceFile),
10
+ hasDefaultExport: hasDefaultExport(sourceFile),
11
+ title: extractTitle(sourceFile, content),
12
+ meta: extractMeta(sourceFile),
13
+ exportedLiterals: collectExportedLiterals(sourceFile),
14
+ imports: collectImports(sourceFile),
15
+ sourceFile
16
+ };
17
+ }
18
+ };
19
+ }
20
+ function collectExportedNames(sourceFile) {
21
+ const names = new Set;
22
+ for (const statement of sourceFile.statements) {
23
+ if (ts.isFunctionDeclaration(statement) && hasExportModifier(statement) && statement.name) {
24
+ names.add(statement.name.text);
25
+ continue;
26
+ }
27
+ if (ts.isVariableStatement(statement) && hasExportModifier(statement)) {
28
+ for (const declaration of statement.declarationList.declarations)
29
+ if (ts.isIdentifier(declaration.name))
30
+ names.add(declaration.name.text);
31
+ }
32
+ }
33
+ return names;
34
+ }
35
+ function hasDefaultExport(sourceFile) {
36
+ for (const statement of sourceFile.statements) {
37
+ if (ts.isExportAssignment(statement) && !statement.isExportEquals)
38
+ return !0;
39
+ if (hasDefaultModifier(statement))
40
+ return !0;
41
+ }
42
+ return !1;
43
+ }
44
+ function collectImports(sourceFile) {
45
+ const imports = [];
46
+ for (const statement of sourceFile.statements) {
47
+ if (!ts.isImportDeclaration(statement) || !ts.isStringLiteral(statement.moduleSpecifier))
48
+ continue;
49
+ const names = [];
50
+ let namespace, hasDefaultImport = !1;
51
+ const clause = statement.importClause;
52
+ if (clause?.name)
53
+ hasDefaultImport = !0;
54
+ if (clause?.namedBindings)
55
+ if (ts.isNamespaceImport(clause.namedBindings))
56
+ namespace = clause.namedBindings.name.text;
57
+ else
58
+ for (const element of clause.namedBindings.elements)
59
+ names.push(element.name.text);
60
+ imports.push({
61
+ specifier: statement.moduleSpecifier.text,
62
+ names,
63
+ namespace,
64
+ hasDefaultImport
65
+ });
66
+ }
67
+ return imports;
68
+ }
69
+ function hasExportModifier(node) {
70
+ if (!ts.canHaveModifiers(node))
71
+ return !1;
72
+ return ts.getModifiers(node)?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword) ?? !1;
73
+ }
74
+ function hasDefaultModifier(node) {
75
+ if (!ts.canHaveModifiers(node))
76
+ return !1;
77
+ return ts.getModifiers(node)?.some((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword) ?? !1;
78
+ }
79
+ function extractTitle(sourceFile, content) {
80
+ for (const statement of sourceFile.statements) {
81
+ const comment = getLeadingJSDocText(statement, content);
82
+ if (comment)
83
+ return comment;
84
+ }
85
+ return "";
86
+ }
87
+ function getLeadingJSDocText(node, content) {
88
+ const ranges = ts.getLeadingCommentRanges(content, node.getFullStart()) ?? [];
89
+ for (const range of ranges) {
90
+ const text = content.slice(range.pos, range.end);
91
+ if (!text.startsWith("/**"))
92
+ continue;
93
+ const normalized = text.replace(/^\/\*\*/, "").replace(/\*\/$/, "").split(`
94
+ `).map((line) => line.replace(/^\s*\*\s?/, "").trim()).filter(Boolean);
95
+ if (normalized.length > 0)
96
+ return normalized[0];
97
+ }
98
+ return "";
99
+ }
100
+ function extractMeta(sourceFile) {
101
+ const meta = collectExportedLiterals(sourceFile).meta;
102
+ return isPlainRecord(meta) ? meta : null;
103
+ }
104
+ function collectExportedLiterals(sourceFile) {
105
+ const result = {};
106
+ for (const statement of sourceFile.statements) {
107
+ if (!ts.isVariableStatement(statement) || !hasExportModifier(statement))
108
+ continue;
109
+ for (const declaration of statement.declarationList.declarations) {
110
+ if (!ts.isIdentifier(declaration.name) || !declaration.initializer)
111
+ continue;
112
+ const value = literalFromExpression(declaration.initializer);
113
+ if (value !== NON_LITERAL)
114
+ result[declaration.name.text] = value;
115
+ }
116
+ }
117
+ return result;
118
+ }
119
+ function literalFromExpression(expression) {
120
+ if (ts.isStringLiteral(expression) || ts.isNoSubstitutionTemplateLiteral(expression))
121
+ return expression.text;
122
+ if (ts.isNumericLiteral(expression))
123
+ return Number(expression.text);
124
+ if (expression.kind === ts.SyntaxKind.TrueKeyword)
125
+ return !0;
126
+ if (expression.kind === ts.SyntaxKind.FalseKeyword)
127
+ return !1;
128
+ if (expression.kind === ts.SyntaxKind.NullKeyword)
129
+ return null;
130
+ if (ts.isObjectLiteralExpression(expression)) {
131
+ const result = {};
132
+ for (const property of expression.properties) {
133
+ if (!ts.isPropertyAssignment(property))
134
+ return NON_LITERAL;
135
+ const key = propertyNameText(property.name);
136
+ if (!key)
137
+ return NON_LITERAL;
138
+ const value = literalFromExpression(property.initializer);
139
+ if (value === NON_LITERAL)
140
+ return NON_LITERAL;
141
+ result[key] = value;
142
+ }
143
+ return result;
144
+ }
145
+ if (ts.isArrayLiteralExpression(expression)) {
146
+ const values = [];
147
+ for (const element of expression.elements) {
148
+ const value = literalFromExpression(element);
149
+ if (value === NON_LITERAL)
150
+ return NON_LITERAL;
151
+ values.push(value);
152
+ }
153
+ return values;
154
+ }
155
+ return NON_LITERAL;
156
+ }
157
+ function propertyNameText(name) {
158
+ if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name))
159
+ return name.text;
160
+ return null;
161
+ }
162
+ function isPlainRecord(value) {
163
+ return typeof value === "object" && value !== null && !Array.isArray(value);
164
+ }
@@ -0,0 +1,6 @@
1
+ import type { ModuleAnalysisBackend } from "../analysis-backend.js";
2
+ export declare const EXPERIMENTAL_OXC_BACKEND_NAME = "experimental-oxc";
3
+ export interface ExperimentalOxcBackendOptions {
4
+ fallback: ModuleAnalysisBackend;
5
+ }
6
+ export declare function createExperimentalOxcModuleAnalysisBackend(options: ExperimentalOxcBackendOptions): ModuleAnalysisBackend;
@@ -0,0 +1,9 @@
1
+ export const EXPERIMENTAL_OXC_BACKEND_NAME = "experimental-oxc";
2
+ export function createExperimentalOxcModuleAnalysisBackend(options) {
3
+ return {
4
+ name: EXPERIMENTAL_OXC_BACKEND_NAME,
5
+ analyzeModuleSource(filePath, content) {
6
+ return options.fallback.analyzeModuleSource(filePath, content);
7
+ }
8
+ };
9
+ }
@@ -0,0 +1,16 @@
1
+ import type { ModuleAnalysisBackend } from "../analysis-backend.js";
2
+ export declare const OXC_BACKEND_NAME = "oxc";
3
+ export declare const OXC_PACKAGE = "oxc-parser";
4
+ export interface OxcBackendState {
5
+ backend: typeof OXC_BACKEND_NAME;
6
+ packageName: typeof OXC_PACKAGE;
7
+ implementation: "oxc-parser";
8
+ available: true;
9
+ fallbackBackend: string;
10
+ reason: string | null;
11
+ }
12
+ export interface OxcBackendOptions {
13
+ fallback: ModuleAnalysisBackend;
14
+ }
15
+ export declare function createOxcModuleAnalysisBackend(options: OxcBackendOptions): ModuleAnalysisBackend;
16
+ export declare function getOxcBackendState(options: OxcBackendOptions): OxcBackendState;
@@ -0,0 +1,198 @@
1
+ import { parseSync } from "oxc-parser";
2
+ export const OXC_BACKEND_NAME = "oxc", OXC_PACKAGE = "oxc-parser";
3
+ export function createOxcModuleAnalysisBackend(options) {
4
+ return {
5
+ name: OXC_BACKEND_NAME,
6
+ analyzeModuleSource(filePath, content) {
7
+ const result = parseSync(filePath, content, {
8
+ lang: detectParserLang(filePath),
9
+ sourceType: "module",
10
+ astType: "ts"
11
+ });
12
+ if (result.errors.length > 0)
13
+ return options.fallback.analyzeModuleSource(filePath, content);
14
+ const program = result.program;
15
+ return {
16
+ exportedNames: collectExportedNames(program),
17
+ hasDefaultExport: hasDefaultExport(program),
18
+ title: extractTitle(program, result.comments, content),
19
+ meta: extractMeta(program),
20
+ exportedLiterals: collectExportedLiterals(program),
21
+ imports: collectImports(result.module.staticImports),
22
+ sourceFile: program
23
+ };
24
+ }
25
+ };
26
+ }
27
+ export function getOxcBackendState(options) {
28
+ return {
29
+ backend: OXC_BACKEND_NAME,
30
+ packageName: OXC_PACKAGE,
31
+ implementation: "oxc-parser",
32
+ available: !0,
33
+ fallbackBackend: options.fallback.name,
34
+ reason: null
35
+ };
36
+ }
37
+ function detectParserLang(filePath) {
38
+ if (filePath.endsWith(".tsx"))
39
+ return "tsx";
40
+ if (filePath.endsWith(".ts"))
41
+ return "ts";
42
+ if (filePath.endsWith(".jsx"))
43
+ return "jsx";
44
+ return "js";
45
+ }
46
+ function collectImports(staticImports) {
47
+ return staticImports.map((entry) => {
48
+ const names = [];
49
+ let namespace, hasDefaultImport = !1;
50
+ for (const specifier of entry.entries) {
51
+ if (specifier.importName.kind === "Default") {
52
+ hasDefaultImport = !0;
53
+ continue;
54
+ }
55
+ if (specifier.importName.kind === "NamespaceObject") {
56
+ namespace = specifier.localName.value;
57
+ continue;
58
+ }
59
+ names.push(specifier.localName.value);
60
+ }
61
+ return {
62
+ specifier: entry.moduleRequest.value,
63
+ names,
64
+ namespace,
65
+ hasDefaultImport
66
+ };
67
+ });
68
+ }
69
+ function collectExportedNames(program) {
70
+ const names = new Set;
71
+ for (const statement of program.body) {
72
+ if (statement.type === "ExportNamedDeclaration") {
73
+ const declaration = asNode(statement.declaration), declarationId = asNode(declaration?.id);
74
+ if (declaration?.type === "FunctionDeclaration" && identifierName(declarationId))
75
+ names.add(identifierName(declarationId));
76
+ if (declaration?.type === "VariableDeclaration")
77
+ for (const declarator of asArray(declaration.declarations)) {
78
+ const name = identifierName(asNode(declarator.id));
79
+ if (name)
80
+ names.add(name);
81
+ }
82
+ }
83
+ if (statement.type === "ExportDefaultDeclaration") {
84
+ const declaration = asNode(statement.declaration), declarationId = asNode(declaration?.id);
85
+ if (declaration?.type === "FunctionDeclaration" && identifierName(declarationId))
86
+ names.add(identifierName(declarationId));
87
+ }
88
+ }
89
+ return names;
90
+ }
91
+ function hasDefaultExport(program) {
92
+ return program.body.some((statement) => statement.type === "ExportDefaultDeclaration");
93
+ }
94
+ function extractTitle(program, comments, content) {
95
+ const firstStatementStart = typeof program.body[0]?.start === "number" ? program.body[0].start : content.length, jsDoc = comments.filter((comment) => comment.type === "Block" && comment.end <= firstStatementStart).map((comment) => content.slice(comment.start, comment.end)).find((comment) => comment.startsWith("/**"));
96
+ if (!jsDoc)
97
+ return "";
98
+ return jsDoc.replace(/^\/\*\*/, "").replace(/\*\/$/, "").split(`
99
+ `).map((line) => line.replace(/^\s*\*\s?/, "").trim()).filter(Boolean)[0] ?? "";
100
+ }
101
+ function extractMeta(program) {
102
+ const literals = collectExportedLiterals(program);
103
+ return isPlainRecord(literals.meta) ? literals.meta : null;
104
+ }
105
+ function collectExportedLiterals(program) {
106
+ const result = {};
107
+ for (const statement of program.body) {
108
+ if (statement.type !== "ExportNamedDeclaration")
109
+ continue;
110
+ const declaration = asNode(statement.declaration);
111
+ if (declaration?.type !== "VariableDeclaration")
112
+ continue;
113
+ for (const declarator of asArray(declaration.declarations)) {
114
+ const name = identifierName(asNode(declarator.id));
115
+ if (!name)
116
+ continue;
117
+ const value = literalFromExpression(asNode(declarator.init));
118
+ if (value !== NON_LITERAL)
119
+ result[name] = value;
120
+ }
121
+ }
122
+ return result;
123
+ }
124
+ const NON_LITERAL = Symbol("non-literal");
125
+ function literalFromExpression(node) {
126
+ if (!node)
127
+ return NON_LITERAL;
128
+ switch (node.type) {
129
+ case "Literal":
130
+ return node.value ?? null;
131
+ case "TemplateLiteral":
132
+ if (asArray(node.expressions).length > 0)
133
+ return NON_LITERAL;
134
+ return templateElementCooked(asNode(asArray(node.quasis)[0])) ?? "";
135
+ case "ObjectExpression": {
136
+ const result = {};
137
+ for (const property of asArray(node.properties)) {
138
+ if (property.type !== "Property")
139
+ return NON_LITERAL;
140
+ const key = propertyKeyName(asNode(property.key));
141
+ if (!key)
142
+ return NON_LITERAL;
143
+ const value = literalFromExpression(asNode(property.value));
144
+ if (value === NON_LITERAL)
145
+ return NON_LITERAL;
146
+ result[key] = value;
147
+ }
148
+ return result;
149
+ }
150
+ case "ArrayExpression": {
151
+ const result = [];
152
+ for (const element of asArray(node.elements)) {
153
+ const value = literalFromExpression(asNode(element));
154
+ if (value === NON_LITERAL)
155
+ return NON_LITERAL;
156
+ result.push(value);
157
+ }
158
+ return result;
159
+ }
160
+ default:
161
+ return NON_LITERAL;
162
+ }
163
+ }
164
+ function propertyKeyName(node) {
165
+ if (!node)
166
+ return null;
167
+ if (node.type === "Identifier")
168
+ return stringOrNull(node.name);
169
+ if (node.type === "Literal") {
170
+ if (typeof node.value === "string" || typeof node.value === "number")
171
+ return String(node.value);
172
+ }
173
+ return null;
174
+ }
175
+ function identifierName(node) {
176
+ if (!node || node.type !== "Identifier")
177
+ return null;
178
+ return stringOrNull(node.name);
179
+ }
180
+ function asNode(value) {
181
+ return value && typeof value === "object" ? value : null;
182
+ }
183
+ function asArray(value) {
184
+ return Array.isArray(value) ? value : [];
185
+ }
186
+ function stringOrNull(value) {
187
+ return typeof value === "string" ? value : null;
188
+ }
189
+ function templateElementCooked(node) {
190
+ const value = node?.value;
191
+ if (!value || typeof value !== "object")
192
+ return null;
193
+ const cooked = value.cooked;
194
+ return typeof cooked === "string" ? cooked : null;
195
+ }
196
+ function isPlainRecord(value) {
197
+ return typeof value === "object" && value !== null && !Array.isArray(value);
198
+ }
@@ -0,0 +1,7 @@
1
+ import { type ModuleAnalysisBackend } from "../analysis-backend.js";
2
+ export interface RegisterBuiltInCompilerBackendsOptions {
3
+ includeExperimentalOxc?: boolean;
4
+ includeOxc?: boolean;
5
+ fallbackBackend?: ModuleAnalysisBackend;
6
+ }
7
+ export declare function registerBuiltInCompilerBackends(options?: RegisterBuiltInCompilerBackendsOptions): string[];