@textjs/app 0.0.0-stage → 1.0.2

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 (335) hide show
  1. package/README.md +34 -2
  2. package/bin/text.js +29 -0
  3. package/bin/text.ts +13 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/cli/build.d.ts +39 -0
  6. package/dist/cli/build.d.ts.map +1 -0
  7. package/dist/cli/build.js +157 -0
  8. package/dist/cli/build.js.map +1 -0
  9. package/dist/cli/config.d.ts +22 -0
  10. package/dist/cli/config.d.ts.map +1 -0
  11. package/dist/cli/config.js +73 -0
  12. package/dist/cli/config.js.map +1 -0
  13. package/dist/cli/dev.d.ts +12 -0
  14. package/dist/cli/dev.d.ts.map +1 -0
  15. package/dist/cli/dev.js +49 -0
  16. package/dist/cli/dev.js.map +1 -0
  17. package/dist/cli/index.d.ts +26 -0
  18. package/dist/cli/index.d.ts.map +1 -0
  19. package/dist/cli/index.js +192 -0
  20. package/dist/cli/index.js.map +1 -0
  21. package/dist/cli/run.d.ts +31 -0
  22. package/dist/cli/run.d.ts.map +1 -0
  23. package/dist/cli/run.js +111 -0
  24. package/dist/cli/run.js.map +1 -0
  25. package/dist/cli/start.d.ts +14 -0
  26. package/dist/cli/start.d.ts.map +1 -0
  27. package/dist/cli/start.js +183 -0
  28. package/dist/cli/start.js.map +1 -0
  29. package/dist/cli/ui.d.ts +35 -0
  30. package/dist/cli/ui.d.ts.map +1 -0
  31. package/dist/cli/ui.js +73 -0
  32. package/dist/cli/ui.js.map +1 -0
  33. package/dist/client.d.ts +34 -0
  34. package/dist/client.d.ts.map +1 -0
  35. package/dist/client.js +93 -0
  36. package/dist/client.js.map +1 -0
  37. package/dist/config.d.ts +143 -0
  38. package/dist/config.d.ts.map +1 -0
  39. package/dist/config.js +28 -0
  40. package/dist/config.js.map +1 -0
  41. package/dist/context.d.ts +44 -0
  42. package/dist/context.d.ts.map +1 -0
  43. package/dist/context.js +26 -0
  44. package/dist/context.js.map +1 -0
  45. package/dist/dev-errors.d.ts +68 -0
  46. package/dist/dev-errors.d.ts.map +1 -0
  47. package/dist/dev-errors.js +121 -0
  48. package/dist/dev-errors.js.map +1 -0
  49. package/dist/devtools.d.ts +64 -0
  50. package/dist/devtools.d.ts.map +1 -0
  51. package/dist/devtools.js +186 -0
  52. package/dist/devtools.js.map +1 -0
  53. package/dist/frame-mirror.d.ts +19 -0
  54. package/dist/frame-mirror.d.ts.map +1 -0
  55. package/dist/frame-mirror.js +141 -0
  56. package/dist/frame-mirror.js.map +1 -0
  57. package/dist/frame-protocol.d.ts +175 -0
  58. package/dist/frame-protocol.d.ts.map +1 -0
  59. package/dist/frame-protocol.js +369 -0
  60. package/dist/frame-protocol.js.map +1 -0
  61. package/dist/history.d.ts +54 -0
  62. package/dist/history.d.ts.map +1 -0
  63. package/dist/history.js +152 -0
  64. package/dist/history.js.map +1 -0
  65. package/dist/index.d.ts +9 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +8 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/link.d.ts +32 -0
  70. package/dist/link.d.ts.map +1 -0
  71. package/dist/link.js +54 -0
  72. package/dist/link.js.map +1 -0
  73. package/dist/live-player.d.ts +83 -0
  74. package/dist/live-player.d.ts.map +1 -0
  75. package/dist/live-player.js +413 -0
  76. package/dist/live-player.js.map +1 -0
  77. package/dist/live-protocol.d.ts +132 -0
  78. package/dist/live-protocol.d.ts.map +1 -0
  79. package/dist/live-protocol.js +278 -0
  80. package/dist/live-protocol.js.map +1 -0
  81. package/dist/live-stub.d.ts +10 -0
  82. package/dist/live-stub.d.ts.map +1 -0
  83. package/dist/live-stub.js +32 -0
  84. package/dist/live-stub.js.map +1 -0
  85. package/dist/mcp/cli.d.ts +22 -0
  86. package/dist/mcp/cli.d.ts.map +1 -0
  87. package/dist/mcp/cli.js +177 -0
  88. package/dist/mcp/cli.js.map +1 -0
  89. package/dist/mcp/frame.d.ts +58 -0
  90. package/dist/mcp/frame.d.ts.map +1 -0
  91. package/dist/mcp/frame.js +169 -0
  92. package/dist/mcp/frame.js.map +1 -0
  93. package/dist/mcp/index.d.ts +15 -0
  94. package/dist/mcp/index.d.ts.map +1 -0
  95. package/dist/mcp/index.js +15 -0
  96. package/dist/mcp/index.js.map +1 -0
  97. package/dist/mcp/inspect.d.ts +95 -0
  98. package/dist/mcp/inspect.d.ts.map +1 -0
  99. package/dist/mcp/inspect.js +386 -0
  100. package/dist/mcp/inspect.js.map +1 -0
  101. package/dist/mcp/keys.d.ts +20 -0
  102. package/dist/mcp/keys.d.ts.map +1 -0
  103. package/dist/mcp/keys.js +87 -0
  104. package/dist/mcp/keys.js.map +1 -0
  105. package/dist/mcp/logs.d.ts +63 -0
  106. package/dist/mcp/logs.d.ts.map +1 -0
  107. package/dist/mcp/logs.js +217 -0
  108. package/dist/mcp/logs.js.map +1 -0
  109. package/dist/mcp/server.d.ts +64 -0
  110. package/dist/mcp/server.d.ts.map +1 -0
  111. package/dist/mcp/server.js +485 -0
  112. package/dist/mcp/server.js.map +1 -0
  113. package/dist/mcp/session.d.ts +230 -0
  114. package/dist/mcp/session.d.ts.map +1 -0
  115. package/dist/mcp/session.js +742 -0
  116. package/dist/mcp/session.js.map +1 -0
  117. package/dist/navigation-errors.d.ts +28 -0
  118. package/dist/navigation-errors.d.ts.map +1 -0
  119. package/dist/navigation-errors.js +43 -0
  120. package/dist/navigation-errors.js.map +1 -0
  121. package/dist/navigation.d.ts +21 -0
  122. package/dist/navigation.d.ts.map +1 -0
  123. package/dist/navigation.js +33 -0
  124. package/dist/navigation.js.map +1 -0
  125. package/dist/router.d.ts +76 -0
  126. package/dist/router.d.ts.map +1 -0
  127. package/dist/router.js +296 -0
  128. package/dist/router.js.map +1 -0
  129. package/dist/routing.d.ts +101 -0
  130. package/dist/routing.d.ts.map +1 -0
  131. package/dist/routing.js +286 -0
  132. package/dist/routing.js.map +1 -0
  133. package/dist/server/adapters/build-step.d.ts +34 -0
  134. package/dist/server/adapters/build-step.d.ts.map +1 -0
  135. package/dist/server/adapters/build-step.js +112 -0
  136. package/dist/server/adapters/build-step.js.map +1 -0
  137. package/dist/server/adapters/bun.d.ts +8 -0
  138. package/dist/server/adapters/bun.d.ts.map +1 -0
  139. package/dist/server/adapters/bun.js +89 -0
  140. package/dist/server/adapters/bun.js.map +1 -0
  141. package/dist/server/adapters/bundle.d.ts +21 -0
  142. package/dist/server/adapters/bundle.d.ts.map +1 -0
  143. package/dist/server/adapters/bundle.js +86 -0
  144. package/dist/server/adapters/bundle.js.map +1 -0
  145. package/dist/server/adapters/cloudflare.d.ts +29 -0
  146. package/dist/server/adapters/cloudflare.d.ts.map +1 -0
  147. package/dist/server/adapters/cloudflare.js +105 -0
  148. package/dist/server/adapters/cloudflare.js.map +1 -0
  149. package/dist/server/adapters/index.d.ts +10 -0
  150. package/dist/server/adapters/index.d.ts.map +1 -0
  151. package/dist/server/adapters/index.js +24 -0
  152. package/dist/server/adapters/index.js.map +1 -0
  153. package/dist/server/adapters/runtime-node.d.ts +16 -0
  154. package/dist/server/adapters/runtime-node.d.ts.map +1 -0
  155. package/dist/server/adapters/runtime-node.js +29 -0
  156. package/dist/server/adapters/runtime-node.js.map +1 -0
  157. package/dist/server/adapters/runtime.d.ts +42 -0
  158. package/dist/server/adapters/runtime.d.ts.map +1 -0
  159. package/dist/server/adapters/runtime.js +115 -0
  160. package/dist/server/adapters/runtime.js.map +1 -0
  161. package/dist/server/adapters/shared.d.ts +66 -0
  162. package/dist/server/adapters/shared.d.ts.map +1 -0
  163. package/dist/server/adapters/shared.js +124 -0
  164. package/dist/server/adapters/shared.js.map +1 -0
  165. package/dist/server/adapters/static.d.ts +9 -0
  166. package/dist/server/adapters/static.d.ts.map +1 -0
  167. package/dist/server/adapters/static.js +70 -0
  168. package/dist/server/adapters/static.js.map +1 -0
  169. package/dist/server/adapters/vercel.d.ts +43 -0
  170. package/dist/server/adapters/vercel.d.ts.map +1 -0
  171. package/dist/server/adapters/vercel.js +119 -0
  172. package/dist/server/adapters/vercel.js.map +1 -0
  173. package/dist/server/bun-jsx.d.ts +18 -0
  174. package/dist/server/bun-jsx.d.ts.map +1 -0
  175. package/dist/server/bun-jsx.js +56 -0
  176. package/dist/server/bun-jsx.js.map +1 -0
  177. package/dist/server/cache-route.d.ts +38 -0
  178. package/dist/server/cache-route.d.ts.map +1 -0
  179. package/dist/server/cache-route.js +109 -0
  180. package/dist/server/cache-route.js.map +1 -0
  181. package/dist/server/cache.d.ts +131 -0
  182. package/dist/server/cache.d.ts.map +1 -0
  183. package/dist/server/cache.js +409 -0
  184. package/dist/server/cache.js.map +1 -0
  185. package/dist/server/frames.d.ts +45 -0
  186. package/dist/server/frames.d.ts.map +1 -0
  187. package/dist/server/frames.js +294 -0
  188. package/dist/server/frames.js.map +1 -0
  189. package/dist/server/http.d.ts +80 -0
  190. package/dist/server/http.d.ts.map +1 -0
  191. package/dist/server/http.js +453 -0
  192. package/dist/server/http.js.map +1 -0
  193. package/dist/server/jsx-dev-runtime.d.ts +5 -0
  194. package/dist/server/jsx-dev-runtime.d.ts.map +1 -0
  195. package/dist/server/jsx-dev-runtime.js +6 -0
  196. package/dist/server/jsx-dev-runtime.js.map +1 -0
  197. package/dist/server/jsx-runtime.d.ts +10 -0
  198. package/dist/server/jsx-runtime.d.ts.map +1 -0
  199. package/dist/server/jsx-runtime.js +11 -0
  200. package/dist/server/jsx-runtime.js.map +1 -0
  201. package/dist/server/live-app.d.ts +87 -0
  202. package/dist/server/live-app.d.ts.map +1 -0
  203. package/dist/server/live-app.js +307 -0
  204. package/dist/server/live-app.js.map +1 -0
  205. package/dist/server/live-build.d.ts +70 -0
  206. package/dist/server/live-build.d.ts.map +1 -0
  207. package/dist/server/live-build.js +222 -0
  208. package/dist/server/live-build.js.map +1 -0
  209. package/dist/server/live-dev.d.ts +62 -0
  210. package/dist/server/live-dev.d.ts.map +1 -0
  211. package/dist/server/live-dev.js +313 -0
  212. package/dist/server/live-dev.js.map +1 -0
  213. package/dist/server/live-manifest.d.ts +23 -0
  214. package/dist/server/live-manifest.d.ts.map +1 -0
  215. package/dist/server/live-manifest.js +7 -0
  216. package/dist/server/live-manifest.js.map +1 -0
  217. package/dist/server/live-prod.d.ts +30 -0
  218. package/dist/server/live-prod.d.ts.map +1 -0
  219. package/dist/server/live-prod.js +97 -0
  220. package/dist/server/live-prod.js.map +1 -0
  221. package/dist/server/live-routes.d.ts +72 -0
  222. package/dist/server/live-routes.d.ts.map +1 -0
  223. package/dist/server/live-routes.js +274 -0
  224. package/dist/server/live-routes.js.map +1 -0
  225. package/dist/server/live-web.d.ts +16 -0
  226. package/dist/server/live-web.d.ts.map +1 -0
  227. package/dist/server/live-web.js +159 -0
  228. package/dist/server/live-web.js.map +1 -0
  229. package/dist/server/live.d.ts +138 -0
  230. package/dist/server/live.d.ts.map +1 -0
  231. package/dist/server/live.js +542 -0
  232. package/dist/server/live.js.map +1 -0
  233. package/dist/server/middleware-node.d.ts +48 -0
  234. package/dist/server/middleware-node.d.ts.map +1 -0
  235. package/dist/server/middleware-node.js +167 -0
  236. package/dist/server/middleware-node.js.map +1 -0
  237. package/dist/server/middleware-runtime.d.ts +97 -0
  238. package/dist/server/middleware-runtime.d.ts.map +1 -0
  239. package/dist/server/middleware-runtime.js +447 -0
  240. package/dist/server/middleware-runtime.js.map +1 -0
  241. package/dist/server/middleware.d.ts +145 -0
  242. package/dist/server/middleware.d.ts.map +1 -0
  243. package/dist/server/middleware.js +365 -0
  244. package/dist/server/middleware.js.map +1 -0
  245. package/dist/server/ppr.d.ts +22 -0
  246. package/dist/server/ppr.d.ts.map +1 -0
  247. package/dist/server/ppr.js +58 -0
  248. package/dist/server/ppr.js.map +1 -0
  249. package/dist/server/scan.d.ts +48 -0
  250. package/dist/server/scan.d.ts.map +1 -0
  251. package/dist/server/scan.js +161 -0
  252. package/dist/server/scan.js.map +1 -0
  253. package/dist/server/server-components.d.ts +65 -0
  254. package/dist/server/server-components.d.ts.map +1 -0
  255. package/dist/server/server-components.js +215 -0
  256. package/dist/server/server-components.js.map +1 -0
  257. package/dist/terminal.d.ts +5 -0
  258. package/dist/terminal.d.ts.map +1 -0
  259. package/dist/terminal.js +5 -0
  260. package/dist/terminal.js.map +1 -0
  261. package/dist/testing.d.ts +5 -0
  262. package/dist/testing.d.ts.map +1 -0
  263. package/dist/testing.js +5 -0
  264. package/dist/testing.js.map +1 -0
  265. package/dist/vite-plugin.d.ts +51 -0
  266. package/dist/vite-plugin.d.ts.map +1 -0
  267. package/dist/vite-plugin.js +403 -0
  268. package/dist/vite-plugin.js.map +1 -0
  269. package/package.json +130 -4
  270. package/src/cli/build.ts +182 -0
  271. package/src/cli/config.ts +72 -0
  272. package/src/cli/dev.ts +54 -0
  273. package/src/cli/index.ts +185 -0
  274. package/src/cli/run.ts +124 -0
  275. package/src/cli/start.ts +194 -0
  276. package/src/cli/ui.ts +93 -0
  277. package/src/client.tsx +122 -0
  278. package/src/config.ts +155 -0
  279. package/src/context.ts +69 -0
  280. package/src/dev-errors.ts +167 -0
  281. package/src/devtools.tsx +419 -0
  282. package/src/frame-mirror.ts +145 -0
  283. package/src/frame-protocol.ts +435 -0
  284. package/src/history.ts +201 -0
  285. package/src/index.ts +9 -0
  286. package/src/link.tsx +108 -0
  287. package/src/live-player.ts +449 -0
  288. package/src/live-protocol.ts +317 -0
  289. package/src/live-stub.tsx +32 -0
  290. package/src/mcp/cli.ts +188 -0
  291. package/src/mcp/frame.ts +224 -0
  292. package/src/mcp/index.ts +15 -0
  293. package/src/mcp/inspect.ts +445 -0
  294. package/src/mcp/keys.ts +86 -0
  295. package/src/mcp/logs.ts +225 -0
  296. package/src/mcp/server.ts +595 -0
  297. package/src/mcp/session.ts +821 -0
  298. package/src/navigation-errors.ts +60 -0
  299. package/src/navigation.ts +44 -0
  300. package/src/router.tsx +497 -0
  301. package/src/routing.ts +344 -0
  302. package/src/server/adapters/build-step.ts +135 -0
  303. package/src/server/adapters/bun.ts +92 -0
  304. package/src/server/adapters/bundle.ts +97 -0
  305. package/src/server/adapters/cloudflare.ts +111 -0
  306. package/src/server/adapters/index.ts +29 -0
  307. package/src/server/adapters/runtime-node.ts +34 -0
  308. package/src/server/adapters/runtime.ts +145 -0
  309. package/src/server/adapters/shared.ts +159 -0
  310. package/src/server/adapters/static.ts +68 -0
  311. package/src/server/adapters/vercel.ts +149 -0
  312. package/src/server/bun-jsx.ts +65 -0
  313. package/src/server/cache-route.ts +139 -0
  314. package/src/server/cache.ts +498 -0
  315. package/src/server/frames.ts +326 -0
  316. package/src/server/http.ts +467 -0
  317. package/src/server/jsx-dev-runtime.ts +9 -0
  318. package/src/server/jsx-runtime.ts +13 -0
  319. package/src/server/live-app.tsx +374 -0
  320. package/src/server/live-build.ts +258 -0
  321. package/src/server/live-dev.ts +357 -0
  322. package/src/server/live-manifest.ts +25 -0
  323. package/src/server/live-prod.ts +120 -0
  324. package/src/server/live-routes.ts +298 -0
  325. package/src/server/live-web.ts +170 -0
  326. package/src/server/live.ts +551 -0
  327. package/src/server/middleware-node.ts +168 -0
  328. package/src/server/middleware-runtime.ts +478 -0
  329. package/src/server/middleware.ts +451 -0
  330. package/src/server/ppr.ts +62 -0
  331. package/src/server/scan.ts +190 -0
  332. package/src/server/server-components.ts +224 -0
  333. package/src/terminal.ts +5 -0
  334. package/src/testing.ts +5 -0
  335. package/src/vite-plugin.ts +413 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { TextConfig } from "../config.js";
2
+ /** Warn (once each) about keys Text.js does not read. */
3
+ export declare function warnUnknownConfigKeys(config: object, file: string): void;
4
+ export declare const CONFIG_FILES: readonly ["text.config.ts", "text.config.mts", "text.config.js", "text.config.mjs"];
5
+ export declare function findConfigFile(root: string): string | null;
6
+ /**
7
+ * Run `fn` and put `process.env.NODE_ENV` back afterwards. Vite's module
8
+ * runner (the Node config loader) sets an unset `NODE_ENV` to
9
+ * `"development"`, which would make the following `vite build` bundle
10
+ * React's development builds.
11
+ */
12
+ export declare function preservingNodeEnv<T>(fn: () => Promise<T>): Promise<T>;
13
+ /**
14
+ * Load `text.config.ts`. Bun runs TypeScript dependencies natively, so the
15
+ * config is bundled with esbuild; on Node, Vite's module runner transforms
16
+ * TypeScript workspace packages (`@textjs/app` sources) imported by the config.
17
+ */
18
+ export declare function loadTextConfig(root: string, command: "serve" | "build", mode?: string): Promise<{
19
+ config: TextConfig;
20
+ file: string | null;
21
+ }>;
22
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAuB5C,yDAAyD;AACzD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAExE;AAED,eAAO,MAAM,YAAY,qFAAsF,CAAC;AAEhH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ3E;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,IAAI,SAAqD,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAQ9L"}
@@ -0,0 +1,73 @@
1
+ import { existsSync } from "node:fs";
2
+ import { basename, join } from "node:path";
3
+ import { loadConfigFromFile } from "vite";
4
+ import { txWarn } from "@textjs/core";
5
+ /** Every `TextConfig` key; the `Record` type fails typecheck when a new option is not listed. */
6
+ const CONFIG_KEYS = {
7
+ viewport: true,
8
+ devIndicators: true,
9
+ showMirrorDefault: true,
10
+ outDir: true,
11
+ appDir: true,
12
+ basePath: true,
13
+ title: true,
14
+ hints: true,
15
+ action: true,
16
+ proxy: true,
17
+ rewrites: true,
18
+ configureServer: true,
19
+ vite: true,
20
+ cacheHandler: true,
21
+ ppr: true,
22
+ live: true,
23
+ server: true,
24
+ };
25
+ /** Warn (once each) about keys Text.js does not read. */
26
+ export function warnUnknownConfigKeys(config, file) {
27
+ for (const key of Object.keys(config))
28
+ if (!(key in CONFIG_KEYS))
29
+ txWarn("TX029", JSON.stringify(key), basename(file));
30
+ }
31
+ export const CONFIG_FILES = ["text.config.ts", "text.config.mts", "text.config.js", "text.config.mjs"];
32
+ export function findConfigFile(root) {
33
+ for (const name of CONFIG_FILES) {
34
+ const p = join(root, name);
35
+ if (existsSync(p))
36
+ return p;
37
+ }
38
+ return null;
39
+ }
40
+ /**
41
+ * Run `fn` and put `process.env.NODE_ENV` back afterwards. Vite's module
42
+ * runner (the Node config loader) sets an unset `NODE_ENV` to
43
+ * `"development"`, which would make the following `vite build` bundle
44
+ * React's development builds.
45
+ */
46
+ export async function preservingNodeEnv(fn) {
47
+ const before = process.env.NODE_ENV;
48
+ try {
49
+ return await fn();
50
+ }
51
+ finally {
52
+ if (before === undefined)
53
+ delete process.env.NODE_ENV;
54
+ else
55
+ process.env.NODE_ENV = before;
56
+ }
57
+ }
58
+ /**
59
+ * Load `text.config.ts`. Bun runs TypeScript dependencies natively, so the
60
+ * config is bundled with esbuild; on Node, Vite's module runner transforms
61
+ * TypeScript workspace packages (`@textjs/app` sources) imported by the config.
62
+ */
63
+ export async function loadTextConfig(root, command, mode = command === "build" ? "production" : "development") {
64
+ const file = findConfigFile(root);
65
+ if (!file)
66
+ return { config: {}, file: null };
67
+ const loader = typeof process.versions.bun === "string" ? "bundle" : "runner";
68
+ const loaded = await preservingNodeEnv(() => loadConfigFromFile({ command, mode }, file, root, "silent", undefined, loader));
69
+ const config = (loaded?.config ?? {});
70
+ warnUnknownConfigKeys(config, file);
71
+ return { config, file };
72
+ }
73
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type ViteDevServer } from "vite";
2
+ import { type TextLogger } from "../vite-plugin.js";
3
+ export interface DevOptions {
4
+ root: string;
5
+ port?: number;
6
+ host?: string | boolean;
7
+ /** Print logs (default `true`). */
8
+ log?: boolean;
9
+ }
10
+ export declare function cliLogger(enabled?: boolean): TextLogger;
11
+ export declare function startDevServer(opts: DevOptions): Promise<ViteDevServer>;
12
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AACA,OAAO,EAAgD,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AACxF,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAInE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,mCAAmC;IACnC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,OAAO,UAAO,GAAG,UAAU,CASpD;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CA4B7E"}
@@ -0,0 +1,49 @@
1
+ import { relative } from "node:path";
2
+ import { createServer, mergeConfig } from "vite";
3
+ import { textjsVitePlugin } from "../vite-plugin.js";
4
+ import { loadTextConfig } from "./config.js";
5
+ import { banner, color, devtoolsHint, ok } from "./ui.js";
6
+ export function cliLogger(enabled = true) {
7
+ return {
8
+ info: (m) => {
9
+ if (enabled)
10
+ console.log(color.gray(m));
11
+ },
12
+ error: (m) => {
13
+ if (enabled)
14
+ console.error(color.red(m));
15
+ },
16
+ };
17
+ }
18
+ export async function startDevServer(opts) {
19
+ const started = performance.now();
20
+ const { config, file } = await loadTextConfig(opts.root, "serve");
21
+ const log = opts.log ?? true;
22
+ const inline = {
23
+ configFile: false,
24
+ root: opts.root,
25
+ mode: "development",
26
+ logLevel: log ? "warn" : "silent",
27
+ clearScreen: false,
28
+ server: { port: opts.port ?? 3000, host: opts.host, strictPort: false },
29
+ plugins: [textjsVitePlugin({ ...config, root: opts.root, logger: cliLogger(log) })],
30
+ };
31
+ const server = await createServer(config.vite ? mergeConfig(inline, config.vite) : inline);
32
+ await server.listen();
33
+ if (log) {
34
+ const urls = server.resolvedUrls;
35
+ const lines = [["Local", color.cyan(urls?.local[0] ?? `http://localhost:${opts.port ?? 3000}`)]];
36
+ if (urls?.network[0])
37
+ lines.push(["Network", color.cyan(urls.network[0])]);
38
+ if (file)
39
+ lines.push(["Config", relative(opts.root, file)]);
40
+ console.log(`\n${banner(lines)}\n`);
41
+ console.log(ok("Starting..."));
42
+ console.log(ok(`Ready in ${Math.round(performance.now() - started)}ms`));
43
+ console.log("");
44
+ console.log(devtoolsHint());
45
+ console.log("");
46
+ }
47
+ return server;
48
+ }
49
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface ParsedArgs {
2
+ command: string;
3
+ dir: string;
4
+ port?: number;
5
+ host?: string | boolean;
6
+ /** `text proxy --target <url>`. */
7
+ target?: string;
8
+ /** `text proxy --allow-origin <origin>` (repeatable). */
9
+ allowOrigins: string[];
10
+ /** `text build --adapter <static|bun|vercel|cloudflare>`. */
11
+ adapter?: string;
12
+ /** `text run --path <pathname>`. */
13
+ path?: string;
14
+ help: boolean;
15
+ version: boolean;
16
+ }
17
+ export declare function parseArgs(argv: readonly string[]): ParsedArgs;
18
+ export declare const HELP = "Usage: text <command> [options] [dir]\n\nCommands:\n dev Start the development server (Vite + React Fast Refresh)\n build Create an optimized console production build\n start Serve the production build\n run Render the app in this terminal (Bun)\n proxy Bridge textjs.org/opencode to your local OpenCode server\n (same as bunx @textjs/opencode proxy)\n mcp Serve the app to coding agents over MCP (stdio, Bun)\n\nOptions:\n -p, --port <port> Port (default 3000; proxy 4096)\n --path <pathname> run: initial route (default /)\n --adapter <name> build: static | bun | vercel | cloudflare\n --target <url> proxy: OpenCode server URL (default: discover)\n --allow-origin <o> proxy: allow another browser origin\n -H, --host [host] Expose on the network (optionally bind a host)\n -v, --version Print the Text.js version\n -h, --help Show this help\n";
19
+ /**
20
+ * Re-run this CLI under Bun (same script and arguments, inherited stdio,
21
+ * forwarded signals). Resolves with the child's exit code, or `null` when
22
+ * Bun is not installed.
23
+ */
24
+ export declare function reexecUnderBun(argv: readonly string[], script?: string | undefined): Promise<number | null>;
25
+ export declare function main(argv: readonly string[]): Promise<number>;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAgC7D;AAED,eAAO,MAAM,IAAI,g6BAoBhB,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,qBAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxG;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+EnE"}
@@ -0,0 +1,192 @@
1
+ // Command modules (Vite, the dev server, the MCP server) load lazily: `text mcp`
2
+ // must own stdout before any third-party module runs.
3
+ import { spawn } from "node:child_process";
4
+ import { resolve } from "node:path";
5
+ import { txError, txMessage, VERSION } from "@textjs/core";
6
+ import { brand, color, fail } from "./ui.js";
7
+ export function parseArgs(argv) {
8
+ const out = { command: "", dir: ".", allowOrigins: [], help: false, version: false };
9
+ const positional = [];
10
+ for (let i = 0; i < argv.length; i++) {
11
+ const a = argv[i];
12
+ if (a === "-h" || a === "--help")
13
+ out.help = true;
14
+ else if (a === "-v" || a === "--version")
15
+ out.version = true;
16
+ else if (a === "-p" || a === "--port")
17
+ out.port = Number(argv[++i]);
18
+ else if (a.startsWith("--port="))
19
+ out.port = Number(a.slice(7));
20
+ else if (a === "--path")
21
+ out.path = argv[++i];
22
+ else if (a.startsWith("--path="))
23
+ out.path = a.slice(7);
24
+ else if (a === "--adapter")
25
+ out.adapter = argv[++i];
26
+ else if (a.startsWith("--adapter="))
27
+ out.adapter = a.slice(10);
28
+ else if (a === "--target")
29
+ out.target = argv[++i];
30
+ else if (a.startsWith("--target="))
31
+ out.target = a.slice(9);
32
+ else if (a === "--allow-origin") {
33
+ const v = argv[++i];
34
+ if (v)
35
+ out.allowOrigins.push(v);
36
+ }
37
+ else if (a.startsWith("--allow-origin="))
38
+ out.allowOrigins.push(a.slice(15));
39
+ else if (a === "-H" || a === "--host" || a === "--hostname") {
40
+ const next = argv[i + 1];
41
+ if (next !== undefined && !next.startsWith("-") && /[.:]|localhost/.test(next)) {
42
+ out.host = next;
43
+ i++;
44
+ }
45
+ else
46
+ out.host = true;
47
+ }
48
+ else if (a.startsWith("--host="))
49
+ out.host = a.slice(7);
50
+ else
51
+ positional.push(a);
52
+ }
53
+ out.command = positional[0] ?? "";
54
+ if (positional[1])
55
+ out.dir = positional[1];
56
+ if (out.port !== undefined && !Number.isFinite(out.port))
57
+ out.port = undefined;
58
+ return out;
59
+ }
60
+ export const HELP = `Usage: text <command> [options] [dir]
61
+
62
+ Commands:
63
+ dev Start the development server (Vite + React Fast Refresh)
64
+ build Create an optimized console production build
65
+ start Serve the production build
66
+ run Render the app in this terminal (Bun)
67
+ proxy Bridge textjs.org/opencode to your local OpenCode server
68
+ (same as bunx @textjs/opencode proxy)
69
+ mcp Serve the app to coding agents over MCP (stdio, Bun)
70
+
71
+ Options:
72
+ -p, --port <port> Port (default 3000; proxy 4096)
73
+ --path <pathname> run: initial route (default /)
74
+ --adapter <name> build: static | bun | vercel | cloudflare
75
+ --target <url> proxy: OpenCode server URL (default: discover)
76
+ --allow-origin <o> proxy: allow another browser origin
77
+ -H, --host [host] Expose on the network (optionally bind a host)
78
+ -v, --version Print the Text.js version
79
+ -h, --help Show this help
80
+ `;
81
+ /** Commands that import route files as TypeScript and so need Bun. */
82
+ const BUN_COMMANDS = new Set(["run", "mcp"]);
83
+ const REEXEC_ENV = "TEXTJS_REEXEC_BUN";
84
+ /**
85
+ * Re-run this CLI under Bun (same script and arguments, inherited stdio,
86
+ * forwarded signals). Resolves with the child's exit code, or `null` when
87
+ * Bun is not installed.
88
+ */
89
+ export function reexecUnderBun(argv, script = process.argv[1]) {
90
+ if (!script || process.env[REEXEC_ENV])
91
+ return Promise.resolve(null);
92
+ return new Promise((done) => {
93
+ const child = spawn("bun", [script, ...argv], { stdio: "inherit", env: { ...process.env, [REEXEC_ENV]: "1" } });
94
+ const signals = ["SIGINT", "SIGTERM", "SIGHUP"];
95
+ const forward = (signal) => void child.kill(signal);
96
+ for (const s of signals)
97
+ process.on(s, forward);
98
+ const finish = (code) => {
99
+ for (const s of signals)
100
+ process.off(s, forward);
101
+ done(code);
102
+ };
103
+ child.once("error", () => finish(null));
104
+ child.once("exit", (code, signal) => finish(code ?? (signal ? 1 : 0)));
105
+ });
106
+ }
107
+ export async function main(argv) {
108
+ const args = parseArgs(argv);
109
+ if (args.version) {
110
+ console.log(`Text.js v${VERSION}`);
111
+ return 0;
112
+ }
113
+ if (BUN_COMMANDS.has(args.command) && !args.help && typeof process.versions.bun !== "string") {
114
+ const code = await reexecUnderBun(argv);
115
+ if (code !== null)
116
+ return code;
117
+ // No Bun: `text mcp` reports TX019 on stderr (stdout is reserved for JSON-RPC).
118
+ if (args.command === "mcp") {
119
+ process.stderr.write(`${txMessage("TX019", "mcp", "mcp")}\n`);
120
+ return 1;
121
+ }
122
+ }
123
+ if (args.command === "mcp") {
124
+ // Owns stdout (JSON-RPC) and its own flags; see `text mcp --help`.
125
+ const { runMcpCli } = await import("../mcp/cli.js");
126
+ return runMcpCli(argv);
127
+ }
128
+ if (args.help || args.command === "" || args.command === "help") {
129
+ console.log(`\n ${brand()}\n The Console Framework for the Web\n`);
130
+ console.log(HELP);
131
+ return args.command === "" && !args.help ? 1 : 0;
132
+ }
133
+ const root = resolve(args.dir);
134
+ try {
135
+ switch (args.command) {
136
+ case "dev": {
137
+ const { startDevServer } = await import("./dev.js");
138
+ const server = await startDevServer({ root, port: args.port, host: args.host });
139
+ const stop = async () => {
140
+ await server.close();
141
+ process.exit(0);
142
+ };
143
+ process.once("SIGINT", stop);
144
+ process.once("SIGTERM", stop);
145
+ await new Promise(() => undefined);
146
+ return 0;
147
+ }
148
+ case "build": {
149
+ const { buildApp } = await import("./build.js");
150
+ await buildApp({ root, adapter: args.adapter });
151
+ return 0;
152
+ }
153
+ case "start": {
154
+ const { startProductionServer } = await import("./start.js");
155
+ const s = await startProductionServer({ root, port: args.port, host: typeof args.host === "string" ? args.host : args.host ? "0.0.0.0" : undefined });
156
+ const stop = async () => {
157
+ await s.close();
158
+ process.exit(0);
159
+ };
160
+ process.once("SIGINT", stop);
161
+ process.once("SIGTERM", stop);
162
+ await new Promise(() => undefined);
163
+ return 0;
164
+ }
165
+ case "run": {
166
+ if (typeof process.versions.bun !== "string")
167
+ throw txError("TX019", "run", "run");
168
+ const { runInTerminal } = await import("./run.js");
169
+ const app = await runInTerminal({ root, path: args.path });
170
+ await app.waitUntilExit();
171
+ return 0;
172
+ }
173
+ case "proxy": {
174
+ // One implementation: the bridge lives in @textjs/opencode (`bunx @textjs/opencode proxy`).
175
+ const { runProxy } = await import("@textjs/opencode");
176
+ return await runProxy({ port: args.port, target: args.target, allowOrigins: args.allowOrigins });
177
+ }
178
+ default:
179
+ console.error(fail(txMessage("TX020", color.bold(args.command))));
180
+ if (args.command === "deploy")
181
+ console.error(color.gray(" To deploy, run text build --adapter <static|bun|vercel|cloudflare>."));
182
+ console.log(HELP);
183
+ return 1;
184
+ }
185
+ }
186
+ catch (error) {
187
+ if (args.command !== "build")
188
+ console.error(fail(error instanceof Error ? error.message : String(error)));
189
+ return 1;
190
+ }
191
+ }
192
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `text run` — render the `app/` directory in the terminal: same routes,
3
+ * layouts, components and route handlers, drawn with truecolor ANSI instead
4
+ * of `console.log`. Runs on Bun (route files are imported as TypeScript).
5
+ */
6
+ import { type TerminalInput, type TerminalOutput, type TerminalRoot } from "@textjs/react/terminal";
7
+ import type { ThemeName } from "@textjs/react";
8
+ import { type RouteManifest } from "../routing.js";
9
+ import { type AppScan } from "../server/scan.js";
10
+ export interface RunOptions {
11
+ root: string;
12
+ /** Initial pathname (default `/`). */
13
+ path?: string;
14
+ theme?: ThemeName;
15
+ stdin?: TerminalInput;
16
+ stdout?: TerminalOutput;
17
+ /** Skip `text.config.ts` (tests). */
18
+ skipConfig?: boolean;
19
+ }
20
+ /** A route manifest whose modules are imported on demand from disk. */
21
+ export declare function toRuntimeManifest(scan: AppScan): RouteManifest;
22
+ /** Import every route module up front (no Suspense flashes on the first frame). */
23
+ export declare function loadRuntimeManifest(scan: AppScan): Promise<RouteManifest>;
24
+ /**
25
+ * Wrap `fetch` so same-origin paths (`fetch("/api/health")`) run the app's
26
+ * route handlers in-process, exactly as `text dev` would serve them.
27
+ */
28
+ export declare function createLocalFetch(scan: AppScan, base?: typeof fetch, origin?: string): typeof fetch;
29
+ /** Render the app in the terminal. Resolves once it is mounted. */
30
+ export declare function runInTerminal(opts: RunOptions): Promise<TerminalRoot>;
31
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAoB,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAoB,KAAK,aAAa,EAA2C,MAAM,YAAY,CAAC;AAC3G,OAAO,EAAkD,KAAK,OAAO,EAAuB,MAAM,gBAAgB,CAAC;AAOnH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAID,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CAiB9D;AAED,mFAAmF;AACnF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAa/E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,OAAO,KAAa,EAAE,MAAM,SAA0B,GAAG,OAAO,KAAK,CAa1H;AAED,mEAAmE;AACnE,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CA+B3E"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * `text run` — render the `app/` directory in the terminal: same routes,
3
+ * layouts, components and route handlers, drawn with truecolor ANSI instead
4
+ * of `console.log`. Runs on Bun (route files are imported as TypeScript).
5
+ */
6
+ import { existsSync } from "node:fs";
7
+ import { relative } from "node:path";
8
+ import { pathToFileURL } from "node:url";
9
+ import { createElement } from "react";
10
+ import { txError } from "@textjs/core";
11
+ import { renderToTerminal } from "@textjs/react/terminal";
12
+ import { createMemoryHistory } from "../history.js";
13
+ import { AppRouter } from "../router.js";
14
+ import { ROUTE_FILE_KINDS } from "../routing.js";
15
+ import { matchApiRoute, scanApp, toApiManifest, toPosix } from "../server/scan.js";
16
+ import { runRouteHandler } from "../server/http.js";
17
+ import { installServerJsxRuntime } from "../server/bun-jsx.js";
18
+ import { prepareServerManifest } from "../server/live-app.js";
19
+ import { ServerComponentCache, ServerComponentsProvider } from "../server/server-components.js";
20
+ import { loadTextConfig } from "./config.js";
21
+ const importFile = (file) => import(pathToFileURL(file).href);
22
+ /** A route manifest whose modules are imported on demand from disk. */
23
+ export function toRuntimeManifest(scan) {
24
+ const convert = (s) => {
25
+ const node = { segment: s.segment, files: {} };
26
+ let has = false;
27
+ for (const kind of ROUTE_FILE_KINDS) {
28
+ const f = s.files[kind];
29
+ if (!f)
30
+ continue;
31
+ has = true;
32
+ const key = kind === "not-found" ? "notFound" : kind;
33
+ node[key] = () => importFile(f);
34
+ node.files[kind] = toPosix(relative(scan.root, f));
35
+ }
36
+ const children = s.children.map(convert).filter((c) => c !== null);
37
+ if (children.length > 0)
38
+ node.children = children;
39
+ return has || children.length > 0 || s.segment === "" ? node : null;
40
+ };
41
+ return convert(scan.tree);
42
+ }
43
+ /** Import every route module up front (no Suspense flashes on the first frame). */
44
+ export async function loadRuntimeManifest(scan) {
45
+ const manifest = toRuntimeManifest(scan);
46
+ const tasks = [];
47
+ const walk = (node) => {
48
+ for (const key of ["layout", "page", "loading", "error", "notFound"]) {
49
+ const ref = node[key];
50
+ if (typeof ref === "function")
51
+ tasks.push(ref().then((m) => void (node[key] = m)));
52
+ }
53
+ node.children?.forEach(walk);
54
+ };
55
+ walk(manifest);
56
+ await Promise.all(tasks);
57
+ return manifest;
58
+ }
59
+ /**
60
+ * Wrap `fetch` so same-origin paths (`fetch("/api/health")`) run the app's
61
+ * route handlers in-process, exactly as `text dev` would serve them.
62
+ */
63
+ export function createLocalFetch(scan, base = fetch, origin = "http://localhost:3000") {
64
+ const api = toApiManifest(scan);
65
+ const local = async (input, init) => {
66
+ const raw = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
67
+ if (!raw.startsWith("/") || raw.startsWith("//"))
68
+ return base(input, init);
69
+ const url = new URL(raw, origin);
70
+ const hit = matchApiRoute(api, url.pathname);
71
+ if (!hit)
72
+ return new Response("Not Found", { status: 404 });
73
+ const mod = (await import(pathToFileURL(hit.file).href));
74
+ const request = input instanceof Request ? new Request(url, input) : new Request(url, init);
75
+ return runRouteHandler(mod, request, hit.params);
76
+ };
77
+ return Object.assign(local, { preconnect: () => undefined });
78
+ }
79
+ /** Render the app in the terminal. Resolves once it is mounted. */
80
+ export async function runInTerminal(opts) {
81
+ const scan = scanApp(opts.root);
82
+ if (!existsSync(scan.appDir))
83
+ throw txError("TX018", opts.root);
84
+ let theme = opts.theme;
85
+ if (!opts.skipConfig && theme === undefined) {
86
+ const { config } = await loadTextConfig(opts.root, "serve");
87
+ const t = config.viewport?.theme;
88
+ if (typeof t === "string")
89
+ theme = t;
90
+ }
91
+ const g = globalThis;
92
+ const originalFetch = g.fetch;
93
+ g.fetch = createLocalFetch(scan, originalFetch);
94
+ const history = createMemoryHistory(opts.path ?? "/");
95
+ // `async function` components (e.g. `runtime = "server"` pages) render like in `text dev`.
96
+ installServerJsxRuntime(opts.root);
97
+ const routes = prepareServerManifest(await loadRuntimeManifest(scan));
98
+ const app = await renderToTerminal(createElement(ServerComponentsProvider, { cache: new ServerComponentCache() }, createElement(AppRouter, { routes, history, theme, documentTitle: false, errorStore: null })), {
99
+ stdin: opts.stdin,
100
+ stdout: opts.stdout,
101
+ theme,
102
+ onExit: () => {
103
+ g.fetch = originalFetch;
104
+ },
105
+ });
106
+ void app.waitUntilExit().then(() => {
107
+ g.fetch = originalFetch;
108
+ });
109
+ return app;
110
+ }
111
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type Server } from "node:http";
2
+ export interface StartOptions {
3
+ root: string;
4
+ port?: number;
5
+ host?: string;
6
+ log?: boolean;
7
+ }
8
+ export interface StartedServer {
9
+ server: Server;
10
+ url: string;
11
+ close(): Promise<void>;
12
+ }
13
+ export declare function startProductionServer(opts: StartOptions): Promise<StartedServer>;
14
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAiC3E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAkJtF"}