one 1.4.10 → 1.4.11

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 (262) hide show
  1. package/dist/cjs/cli/daemon.cjs +172 -0
  2. package/dist/cjs/cli/daemon.js +138 -0
  3. package/dist/cjs/cli/daemon.js.map +6 -0
  4. package/dist/cjs/cli/daemon.native.js +213 -0
  5. package/dist/cjs/cli/daemon.native.js.map +1 -0
  6. package/dist/cjs/cli/dev.cjs +51 -6
  7. package/dist/cjs/cli/dev.js +42 -6
  8. package/dist/cjs/cli/dev.js.map +2 -2
  9. package/dist/cjs/cli/dev.native.js +52 -7
  10. package/dist/cjs/cli/dev.native.js.map +1 -1
  11. package/dist/cjs/cli.cjs +50 -3
  12. package/dist/cjs/cli.js +44 -2
  13. package/dist/cjs/cli.js.map +1 -1
  14. package/dist/cjs/cli.native.js +51 -3
  15. package/dist/cjs/cli.native.js.map +1 -1
  16. package/dist/cjs/daemon/index.cjs +24 -0
  17. package/dist/cjs/daemon/index.js +21 -0
  18. package/dist/cjs/daemon/index.js.map +6 -0
  19. package/dist/cjs/daemon/index.native.js +27 -0
  20. package/dist/cjs/daemon/index.native.js.map +1 -0
  21. package/dist/cjs/daemon/ipc.cjs +286 -0
  22. package/dist/cjs/daemon/ipc.js +245 -0
  23. package/dist/cjs/daemon/ipc.js.map +6 -0
  24. package/dist/cjs/daemon/ipc.native.js +339 -0
  25. package/dist/cjs/daemon/ipc.native.js.map +1 -0
  26. package/dist/cjs/daemon/picker.cjs +223 -0
  27. package/dist/cjs/daemon/picker.js +195 -0
  28. package/dist/cjs/daemon/picker.js.map +6 -0
  29. package/dist/cjs/daemon/picker.native.js +308 -0
  30. package/dist/cjs/daemon/picker.native.js.map +1 -0
  31. package/dist/cjs/daemon/proxy.cjs +75 -0
  32. package/dist/cjs/daemon/proxy.js +70 -0
  33. package/dist/cjs/daemon/proxy.js.map +6 -0
  34. package/dist/cjs/daemon/proxy.native.js +81 -0
  35. package/dist/cjs/daemon/proxy.native.js.map +1 -0
  36. package/dist/cjs/daemon/registry.cjs +133 -0
  37. package/dist/cjs/daemon/registry.js +125 -0
  38. package/dist/cjs/daemon/registry.js.map +6 -0
  39. package/dist/cjs/daemon/registry.native.js +199 -0
  40. package/dist/cjs/daemon/registry.native.js.map +1 -0
  41. package/dist/cjs/daemon/server.cjs +392 -0
  42. package/dist/cjs/daemon/server.js +363 -0
  43. package/dist/cjs/daemon/server.js.map +6 -0
  44. package/dist/cjs/daemon/server.native.js +532 -0
  45. package/dist/cjs/daemon/server.native.js.map +1 -0
  46. package/dist/cjs/daemon/tui.cjs +382 -0
  47. package/dist/cjs/daemon/tui.js +324 -0
  48. package/dist/cjs/daemon/tui.js.map +6 -0
  49. package/dist/cjs/daemon/tui.native.js +488 -0
  50. package/dist/cjs/daemon/tui.native.js.map +1 -0
  51. package/dist/cjs/daemon/types.cjs +16 -0
  52. package/dist/cjs/daemon/types.js +14 -0
  53. package/dist/cjs/daemon/types.js.map +6 -0
  54. package/dist/cjs/daemon/types.native.js +19 -0
  55. package/dist/cjs/daemon/types.native.js.map +1 -0
  56. package/dist/cjs/daemon/utils.cjs +74 -0
  57. package/dist/cjs/daemon/utils.js +68 -0
  58. package/dist/cjs/daemon/utils.js.map +6 -0
  59. package/dist/cjs/daemon/utils.native.js +83 -0
  60. package/dist/cjs/daemon/utils.native.js.map +1 -0
  61. package/dist/cjs/router/interceptRoutes.cjs +3 -2
  62. package/dist/cjs/router/interceptRoutes.js +3 -2
  63. package/dist/cjs/router/interceptRoutes.js.map +1 -1
  64. package/dist/cjs/router/interceptRoutes.native.js +2 -2
  65. package/dist/cjs/router/interceptRoutes.native.js.map +1 -1
  66. package/dist/cjs/server/PreloadScripts.cjs +46 -0
  67. package/dist/cjs/server/PreloadScripts.js +37 -0
  68. package/dist/cjs/server/PreloadScripts.js.map +6 -0
  69. package/dist/cjs/server/PreloadScripts.native.js +53 -0
  70. package/dist/cjs/server/PreloadScripts.native.js.map +6 -0
  71. package/dist/cjs/server/RNWStylesheet.cjs +35 -0
  72. package/dist/cjs/server/RNWStylesheet.js +31 -0
  73. package/dist/cjs/server/RNWStylesheet.js.map +6 -0
  74. package/dist/cjs/server/RNWStylesheet.native.js +38 -0
  75. package/dist/cjs/server/RNWStylesheet.native.js.map +1 -0
  76. package/dist/cjs/server/getServerManifest.cjs +4 -4
  77. package/dist/cjs/server/getServerManifest.js +4 -3
  78. package/dist/cjs/server/getServerManifest.js.map +1 -1
  79. package/dist/cjs/server/getServerManifest.native.js +2 -2
  80. package/dist/cjs/server/getServerManifest.native.js.map +1 -1
  81. package/dist/cjs/server/oneServe.cjs +3 -2
  82. package/dist/cjs/server/oneServe.js +1 -1
  83. package/dist/cjs/server/oneServe.js.map +1 -1
  84. package/dist/cjs/server/oneServe.native.js +3 -2
  85. package/dist/cjs/server/oneServe.native.js.map +1 -1
  86. package/dist/cjs/utils/getPathnameFromFilePath.cjs +1 -1
  87. package/dist/cjs/utils/getPathnameFromFilePath.js +1 -1
  88. package/dist/cjs/utils/getPathnameFromFilePath.js.map +1 -1
  89. package/dist/cjs/utils/getPathnameFromFilePath.native.js +1 -1
  90. package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +1 -1
  91. package/dist/esm/cli/daemon.js +115 -0
  92. package/dist/esm/cli/daemon.js.map +6 -0
  93. package/dist/esm/cli/daemon.mjs +137 -0
  94. package/dist/esm/cli/daemon.mjs.map +1 -0
  95. package/dist/esm/cli/daemon.native.js +175 -0
  96. package/dist/esm/cli/daemon.native.js.map +1 -0
  97. package/dist/esm/cli/dev.js +43 -5
  98. package/dist/esm/cli/dev.js.map +1 -1
  99. package/dist/esm/cli/dev.mjs +50 -5
  100. package/dist/esm/cli/dev.mjs.map +1 -1
  101. package/dist/esm/cli/dev.native.js +50 -5
  102. package/dist/esm/cli/dev.native.js.map +1 -1
  103. package/dist/esm/cli.js +44 -2
  104. package/dist/esm/cli.js.map +1 -1
  105. package/dist/esm/cli.mjs +49 -2
  106. package/dist/esm/cli.mjs.map +1 -1
  107. package/dist/esm/cli.native.js +50 -2
  108. package/dist/esm/cli.native.js.map +1 -1
  109. package/dist/esm/daemon/index.js +8 -0
  110. package/dist/esm/daemon/index.js.map +6 -0
  111. package/dist/esm/daemon/index.mjs +8 -0
  112. package/dist/esm/daemon/index.mjs.map +1 -0
  113. package/dist/esm/daemon/index.native.js +8 -0
  114. package/dist/esm/daemon/index.native.js.map +1 -0
  115. package/dist/esm/daemon/ipc.js +235 -0
  116. package/dist/esm/daemon/ipc.js.map +6 -0
  117. package/dist/esm/daemon/ipc.mjs +236 -0
  118. package/dist/esm/daemon/ipc.mjs.map +1 -0
  119. package/dist/esm/daemon/ipc.native.js +286 -0
  120. package/dist/esm/daemon/ipc.native.js.map +1 -0
  121. package/dist/esm/daemon/picker.js +173 -0
  122. package/dist/esm/daemon/picker.js.map +6 -0
  123. package/dist/esm/daemon/picker.mjs +186 -0
  124. package/dist/esm/daemon/picker.mjs.map +1 -0
  125. package/dist/esm/daemon/picker.native.js +268 -0
  126. package/dist/esm/daemon/picker.native.js.map +1 -0
  127. package/dist/esm/daemon/proxy.js +47 -0
  128. package/dist/esm/daemon/proxy.js.map +6 -0
  129. package/dist/esm/daemon/proxy.mjs +40 -0
  130. package/dist/esm/daemon/proxy.mjs.map +1 -0
  131. package/dist/esm/daemon/proxy.native.js +43 -0
  132. package/dist/esm/daemon/proxy.native.js.map +1 -0
  133. package/dist/esm/daemon/registry.js +101 -0
  134. package/dist/esm/daemon/registry.js.map +6 -0
  135. package/dist/esm/daemon/registry.mjs +86 -0
  136. package/dist/esm/daemon/registry.mjs.map +1 -0
  137. package/dist/esm/daemon/registry.native.js +149 -0
  138. package/dist/esm/daemon/registry.native.js.map +1 -0
  139. package/dist/esm/daemon/server.js +358 -0
  140. package/dist/esm/daemon/server.js.map +6 -0
  141. package/dist/esm/daemon/server.mjs +352 -0
  142. package/dist/esm/daemon/server.mjs.map +1 -0
  143. package/dist/esm/daemon/server.native.js +489 -0
  144. package/dist/esm/daemon/server.native.js.map +1 -0
  145. package/dist/esm/daemon/tui.js +309 -0
  146. package/dist/esm/daemon/tui.js.map +6 -0
  147. package/dist/esm/daemon/tui.mjs +345 -0
  148. package/dist/esm/daemon/tui.mjs.map +1 -0
  149. package/dist/esm/daemon/tui.native.js +448 -0
  150. package/dist/esm/daemon/tui.native.js.map +1 -0
  151. package/dist/esm/daemon/types.js +1 -0
  152. package/dist/esm/daemon/types.js.map +6 -0
  153. package/dist/esm/daemon/types.mjs +2 -0
  154. package/dist/esm/daemon/types.mjs.map +1 -0
  155. package/dist/esm/daemon/types.native.js +2 -0
  156. package/dist/esm/daemon/types.native.js.map +1 -0
  157. package/dist/esm/daemon/utils.js +45 -0
  158. package/dist/esm/daemon/utils.js.map +6 -0
  159. package/dist/esm/daemon/utils.mjs +39 -0
  160. package/dist/esm/daemon/utils.mjs.map +1 -0
  161. package/dist/esm/daemon/utils.native.js +45 -0
  162. package/dist/esm/daemon/utils.native.js.map +1 -0
  163. package/dist/esm/router/interceptRoutes.js +4 -3
  164. package/dist/esm/router/interceptRoutes.js.map +1 -1
  165. package/dist/esm/router/interceptRoutes.mjs +4 -3
  166. package/dist/esm/router/interceptRoutes.mjs.map +1 -1
  167. package/dist/esm/router/interceptRoutes.native.js +3 -3
  168. package/dist/esm/router/interceptRoutes.native.js.map +1 -1
  169. package/dist/esm/server/PreloadScripts.js +22 -0
  170. package/dist/esm/server/PreloadScripts.js.map +6 -0
  171. package/dist/esm/server/PreloadScripts.mjs +23 -0
  172. package/dist/esm/server/PreloadScripts.mjs.map +1 -0
  173. package/dist/esm/server/PreloadScripts.native.js +37 -0
  174. package/dist/esm/server/PreloadScripts.native.js.map +6 -0
  175. package/dist/esm/server/RNWStylesheet.js +15 -0
  176. package/dist/esm/server/RNWStylesheet.js.map +6 -0
  177. package/dist/esm/server/RNWStylesheet.mjs +12 -0
  178. package/dist/esm/server/RNWStylesheet.mjs.map +1 -0
  179. package/dist/esm/server/RNWStylesheet.native.js +12 -0
  180. package/dist/esm/server/RNWStylesheet.native.js.map +1 -0
  181. package/dist/esm/server/getServerManifest.js +4 -3
  182. package/dist/esm/server/getServerManifest.js.map +1 -1
  183. package/dist/esm/server/getServerManifest.mjs +4 -4
  184. package/dist/esm/server/getServerManifest.mjs.map +1 -1
  185. package/dist/esm/server/getServerManifest.native.js +2 -2
  186. package/dist/esm/server/getServerManifest.native.js.map +1 -1
  187. package/dist/esm/server/oneServe.js +1 -1
  188. package/dist/esm/server/oneServe.js.map +1 -1
  189. package/dist/esm/server/oneServe.mjs +3 -2
  190. package/dist/esm/server/oneServe.mjs.map +1 -1
  191. package/dist/esm/server/oneServe.native.js +3 -2
  192. package/dist/esm/server/oneServe.native.js.map +1 -1
  193. package/dist/esm/utils/getPathnameFromFilePath.js +1 -1
  194. package/dist/esm/utils/getPathnameFromFilePath.js.map +1 -1
  195. package/dist/esm/utils/getPathnameFromFilePath.mjs +1 -1
  196. package/dist/esm/utils/getPathnameFromFilePath.mjs.map +1 -1
  197. package/dist/esm/utils/getPathnameFromFilePath.native.js +1 -1
  198. package/dist/esm/utils/getPathnameFromFilePath.native.js.map +1 -1
  199. package/package.json +9 -9
  200. package/src/cli/daemon.ts +233 -0
  201. package/src/cli/dev.ts +78 -5
  202. package/src/cli.ts +45 -1
  203. package/src/daemon/index.ts +9 -0
  204. package/src/daemon/ipc.ts +358 -0
  205. package/src/daemon/picker.ts +337 -0
  206. package/src/daemon/proxy.ts +90 -0
  207. package/src/daemon/registry.ts +159 -0
  208. package/src/daemon/server.ts +704 -0
  209. package/src/daemon/tui.ts +790 -0
  210. package/src/daemon/types.ts +43 -0
  211. package/src/daemon/utils.ts +100 -0
  212. package/src/router/interceptRoutes.ts +9 -1
  213. package/src/server/getServerManifest.ts +15 -3
  214. package/src/server/oneServe.ts +14 -5
  215. package/src/utils/getPathnameFromFilePath.ts +4 -1
  216. package/types/Route.d.ts.map +1 -0
  217. package/types/cleanUrl.d.ts.map +1 -0
  218. package/types/cli/daemon.d.ts +11 -0
  219. package/types/cli/daemon.d.ts.map +1 -1
  220. package/types/cli/dev.d.ts.map +1 -1
  221. package/types/cli/run.d.ts.map +1 -0
  222. package/types/createRoute.d.ts.map +1 -0
  223. package/types/createRouteConfig.d.ts.map +1 -0
  224. package/types/daemon/index.d.ts +8 -0
  225. package/types/daemon/ipc.d.ts +47 -0
  226. package/types/daemon/ipc.d.ts.map +1 -1
  227. package/types/daemon/picker.d.ts +21 -0
  228. package/types/daemon/picker.d.ts.map +1 -1
  229. package/types/daemon/proxy.d.ts +6 -0
  230. package/types/daemon/proxy.d.ts.map +1 -1
  231. package/types/daemon/registry.d.ts +20 -0
  232. package/types/daemon/registry.d.ts.map +1 -1
  233. package/types/daemon/server.d.ts +22 -0
  234. package/types/daemon/server.d.ts.map +1 -1
  235. package/types/daemon/tui.d.ts +8 -0
  236. package/types/daemon/tui.d.ts.map +1 -1
  237. package/types/daemon/types.d.ts +65 -0
  238. package/types/daemon/types.d.ts.map +1 -1
  239. package/types/daemon/utils.d.ts +16 -0
  240. package/types/daemon/utils.d.ts.map +1 -1
  241. package/types/fork/NavigationContainer.native.d.ts.map +1 -0
  242. package/types/getLinkingConfig.d.ts.map +1 -0
  243. package/types/getRoutes.d.ts.map +1 -0
  244. package/types/imperative-api.d.ts.map +1 -0
  245. package/types/matchers.d.ts.map +1 -0
  246. package/types/platform.d.ts.map +1 -0
  247. package/types/router/interceptRoutes.d.ts.map +1 -1
  248. package/types/server/getServerManifest.d.ts.map +1 -1
  249. package/types/server/oneServe.d.ts.map +1 -1
  250. package/types/sortRoutes.d.ts.map +1 -0
  251. package/types/useNavigation.d.ts.map +1 -0
  252. package/types/useScreens.d.ts.map +1 -0
  253. package/types/useSearch.d.ts.map +1 -0
  254. package/types/useViteRoutes.d.ts.map +1 -0
  255. package/types/utils/getPathnameFromFilePath.d.ts.map +1 -1
  256. package/types/views/ScrollRestoration.d.ts.map +1 -0
  257. package/types/vite/build.d.ts.map +1 -0
  258. package/types/vite/headers.d.ts.map +1 -0
  259. package/types/vite/headers.native.d.ts.map +1 -0
  260. package/types/vite/plugins/seoPreviewPlugin.d.ts.map +1 -0
  261. package/types/vite/resolveAPIRequest.d.ts.map +1 -0
  262. package/types/vite/server.d.ts.map +1 -0
@@ -0,0 +1,172 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var daemon_exports = {};
33
+ __export(daemon_exports, {
34
+ daemon: () => daemon,
35
+ openPlatform: () => openPlatform
36
+ });
37
+ module.exports = __toCommonJS(daemon_exports);
38
+ var import_picocolors = __toESM(require("picocolors"), 1),
39
+ import_label_process = require("./label-process.cjs");
40
+ async function daemon(args) {
41
+ const subcommand = args.subcommand || "run";
42
+ switch (subcommand) {
43
+ case "run":
44
+ case "start":
45
+ return daemonStart(args);
46
+ case "stop":
47
+ return daemonStop();
48
+ case "status":
49
+ return daemonStatus();
50
+ case "route":
51
+ return daemonRoute(args);
52
+ default:
53
+ console.log(`Unknown daemon subcommand: ${subcommand}`), console.log("Available: start, stop, status, route"), process.exit(1);
54
+ }
55
+ }
56
+ async function daemonStart(args) {
57
+ (0, import_label_process.labelProcess)("daemon");
58
+ const {
59
+ isDaemonRunning
60
+ } = await import("../daemon/ipc");
61
+ (await isDaemonRunning()) && (console.log(import_picocolors.default.yellow("Daemon is already running")), console.log("Use 'one daemon status' to see registered servers"), process.exit(1));
62
+ const {
63
+ startDaemon
64
+ } = await import("../daemon/server"),
65
+ useTUI = args.tui ?? process.stdin.isTTY,
66
+ {
67
+ state
68
+ } = await startDaemon({
69
+ port: args.port ? parseInt(args.port, 10) : void 0,
70
+ host: args.host,
71
+ quiet: useTUI
72
+ // suppress normal logs when TUI is active
73
+ });
74
+ if (useTUI) {
75
+ const {
76
+ startTUI
77
+ } = await import("../daemon/tui");
78
+ startTUI(state);
79
+ }
80
+ }
81
+ async function daemonStop() {
82
+ const {
83
+ isDaemonRunning,
84
+ getSocketPath,
85
+ cleanupSocket
86
+ } = await import("../daemon/ipc");
87
+ (await isDaemonRunning()) || (console.log(import_picocolors.default.yellow("Daemon is not running")), process.exit(1)), console.log(import_picocolors.default.yellow("Note: daemon runs in foreground. Press Ctrl+C in the daemon terminal to stop.")), console.log(import_picocolors.default.dim(`Socket path: ${getSocketPath()}`));
88
+ }
89
+ async function daemonStatus() {
90
+ const {
91
+ isDaemonRunning,
92
+ getDaemonStatus,
93
+ getLastActiveDaemonServer
94
+ } = await import("../daemon/ipc");
95
+ (await isDaemonRunning()) || (console.log(import_picocolors.default.yellow("Daemon is not running")), console.log(import_picocolors.default.dim("Start with 'one daemon'")), process.exit(1));
96
+ try {
97
+ const status = await getDaemonStatus(),
98
+ lastActive = await getLastActiveDaemonServer();
99
+ if (console.log(import_picocolors.default.cyan(`
100
+ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)), console.log(import_picocolors.default.cyan(" one daemon status")), console.log(import_picocolors.default.cyan(`\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
101
+ `)), status.servers.length === 0) console.log(import_picocolors.default.dim(" No servers registered"));else {
102
+ console.log(" Registered servers:");
103
+ for (const server of status.servers) {
104
+ const shortRoot = server.root.replace(process.env.HOME || "", "~"),
105
+ activeMarker = lastActive?.id === server.id ? import_picocolors.default.yellow(" \u2605") : "";
106
+ console.log(` ${import_picocolors.default.green(server.id)} ${server.bundleId} \u2192 :${server.port} (${shortRoot})${activeMarker}`);
107
+ }
108
+ lastActive && console.log(import_picocolors.default.dim(`
109
+ \u2605 = last active (used by oi/oa)`));
110
+ }
111
+ if (status.routes.length > 0) {
112
+ console.log(`
113
+ Active routes:`);
114
+ for (const route of status.routes) console.log(` ${route.key} \u2192 ${route.serverId}`);
115
+ }
116
+ console.log("");
117
+ } catch (err) {
118
+ console.log(import_picocolors.default.red("Failed to get daemon status")), console.error(err), process.exit(1);
119
+ }
120
+ }
121
+ async function openPlatform(platform) {
122
+ const {
123
+ isDaemonRunning,
124
+ getDaemonStatus,
125
+ setDaemonRoute,
126
+ touchDaemonServer
127
+ } = await import("../daemon/ipc"),
128
+ {
129
+ getBundleIdFromConfig
130
+ } = await import("../daemon/utils"),
131
+ cwd = process.cwd(),
132
+ bundleId = getBundleIdFromConfig(cwd);
133
+ if (bundleId || (console.log(import_picocolors.default.yellow("No app.json found in current directory")), console.log(import_picocolors.default.dim("Run this command from a One project directory")), process.exit(1)), await isDaemonRunning()) try {
134
+ const server = (await getDaemonStatus()).servers.find(s => s.root === cwd);
135
+ server ? (await setDaemonRoute(bundleId, server.id), await touchDaemonServer(server.id), console.log(import_picocolors.default.cyan(`[daemon] Route set: ${bundleId} \u2192 this project`))) : (console.log(import_picocolors.default.yellow("[daemon] No server registered for this project")), console.log(import_picocolors.default.dim("Run 'one dev' first, or the simulator will connect directly")));
136
+ } catch (err) {
137
+ console.log(import_picocolors.default.dim(`[daemon] Could not set route: ${err}`));
138
+ }
139
+ if (platform === "ios") {
140
+ const {
141
+ run
142
+ } = await import("./runIos");
143
+ await run({});
144
+ } else {
145
+ const {
146
+ run
147
+ } = await import("./runAndroid");
148
+ await run({});
149
+ }
150
+ }
151
+ async function daemonRoute(args) {
152
+ const {
153
+ isDaemonRunning,
154
+ getDaemonStatus,
155
+ setDaemonRoute,
156
+ clearDaemonRoute
157
+ } = await import("../daemon/ipc");
158
+ (await isDaemonRunning()) || (console.log(import_picocolors.default.yellow("Daemon is not running")), process.exit(1)), args.app || (console.log(import_picocolors.default.red("Missing --app parameter")), console.log("Usage: one daemon route --app=com.example.app --slot=0"), console.log(" or: one daemon route --app=com.example.app --project=~/myapp"), process.exit(1));
159
+ const status = await getDaemonStatus();
160
+ let targetServer;
161
+ if (args.slot !== void 0) {
162
+ const slotIndex = parseInt(args.slot, 10),
163
+ matchingServers = status.servers.filter(s => s.bundleId === args.app);
164
+ (slotIndex < 0 || slotIndex >= matchingServers.length) && (console.log(import_picocolors.default.red(`Invalid slot: ${args.slot}`)), console.log(`Available slots for ${args.app}: 0-${matchingServers.length - 1}`), process.exit(1)), targetServer = matchingServers[slotIndex];
165
+ } else if (args.project) {
166
+ const normalizedProject = args.project.replace(/^~/, process.env.HOME || "");
167
+ targetServer = status.servers.find(s => s.bundleId === args.app && s.root === normalizedProject), targetServer || (console.log(import_picocolors.default.red(`No server found for ${args.app} at ${args.project}`)), process.exit(1));
168
+ } else console.log(import_picocolors.default.red("Missing --slot or --project parameter")), process.exit(1);
169
+ await setDaemonRoute(args.app, targetServer.id);
170
+ const shortRoot = targetServer.root.replace(process.env.HOME || "", "~");
171
+ console.log(import_picocolors.default.green(`Route set: ${args.app} \u2192 ${targetServer.id} (${shortRoot})`));
172
+ }
@@ -0,0 +1,138 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ // If the importer is in node compatibility mode or this is not an ESM
17
+ // file that has been converted to a CommonJS file using a Babel-
18
+ // compatible transform (i.e. "__esModule" has not been set), then set
19
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
+ mod
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
+ var daemon_exports = {};
24
+ __export(daemon_exports, {
25
+ daemon: () => daemon,
26
+ openPlatform: () => openPlatform
27
+ });
28
+ module.exports = __toCommonJS(daemon_exports);
29
+ var import_picocolors = __toESM(require("picocolors"), 1), import_label_process = require("./label-process");
30
+ async function daemon(args) {
31
+ const subcommand = args.subcommand || "run";
32
+ switch (subcommand) {
33
+ case "run":
34
+ case "start":
35
+ return daemonStart(args);
36
+ case "stop":
37
+ return daemonStop();
38
+ case "status":
39
+ return daemonStatus();
40
+ case "route":
41
+ return daemonRoute(args);
42
+ default:
43
+ console.log(`Unknown daemon subcommand: ${subcommand}`), console.log("Available: start, stop, status, route"), process.exit(1);
44
+ }
45
+ }
46
+ async function daemonStart(args) {
47
+ (0, import_label_process.labelProcess)("daemon");
48
+ const { isDaemonRunning } = await import("../daemon/ipc");
49
+ await isDaemonRunning() && (console.log(import_picocolors.default.yellow("Daemon is already running")), console.log("Use 'one daemon status' to see registered servers"), process.exit(1));
50
+ const { startDaemon } = await import("../daemon/server"), useTUI = args.tui ?? process.stdin.isTTY, { state } = await startDaemon({
51
+ port: args.port ? parseInt(args.port, 10) : void 0,
52
+ host: args.host,
53
+ quiet: useTUI
54
+ // suppress normal logs when TUI is active
55
+ });
56
+ if (useTUI) {
57
+ const { startTUI } = await import("../daemon/tui");
58
+ startTUI(state);
59
+ }
60
+ }
61
+ async function daemonStop() {
62
+ const { isDaemonRunning, getSocketPath, cleanupSocket } = await import("../daemon/ipc");
63
+ await isDaemonRunning() || (console.log(import_picocolors.default.yellow("Daemon is not running")), process.exit(1)), console.log(
64
+ import_picocolors.default.yellow(
65
+ "Note: daemon runs in foreground. Press Ctrl+C in the daemon terminal to stop."
66
+ )
67
+ ), console.log(import_picocolors.default.dim(`Socket path: ${getSocketPath()}`));
68
+ }
69
+ async function daemonStatus() {
70
+ const { isDaemonRunning, getDaemonStatus, getLastActiveDaemonServer } = await import("../daemon/ipc");
71
+ await isDaemonRunning() || (console.log(import_picocolors.default.yellow("Daemon is not running")), console.log(import_picocolors.default.dim("Start with 'one daemon'")), process.exit(1));
72
+ try {
73
+ const status = await getDaemonStatus(), lastActive = await getLastActiveDaemonServer();
74
+ if (console.log(import_picocolors.default.cyan(`
75
+ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)), console.log(import_picocolors.default.cyan(" one daemon status")), console.log(import_picocolors.default.cyan(`\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
76
+ `)), status.servers.length === 0)
77
+ console.log(import_picocolors.default.dim(" No servers registered"));
78
+ else {
79
+ console.log(" Registered servers:");
80
+ for (const server of status.servers) {
81
+ const shortRoot = server.root.replace(process.env.HOME || "", "~"), activeMarker = lastActive?.id === server.id ? import_picocolors.default.yellow(" \u2605") : "";
82
+ console.log(
83
+ ` ${import_picocolors.default.green(server.id)} ${server.bundleId} \u2192 :${server.port} (${shortRoot})${activeMarker}`
84
+ );
85
+ }
86
+ lastActive && console.log(import_picocolors.default.dim(`
87
+ \u2605 = last active (used by oi/oa)`));
88
+ }
89
+ if (status.routes.length > 0) {
90
+ console.log(`
91
+ Active routes:`);
92
+ for (const route of status.routes)
93
+ console.log(` ${route.key} \u2192 ${route.serverId}`);
94
+ }
95
+ console.log("");
96
+ } catch (err) {
97
+ console.log(import_picocolors.default.red("Failed to get daemon status")), console.error(err), process.exit(1);
98
+ }
99
+ }
100
+ async function openPlatform(platform) {
101
+ const { isDaemonRunning, getDaemonStatus, setDaemonRoute, touchDaemonServer } = await import("../daemon/ipc"), { getBundleIdFromConfig } = await import("../daemon/utils"), cwd = process.cwd(), bundleId = getBundleIdFromConfig(cwd);
102
+ if (bundleId || (console.log(import_picocolors.default.yellow("No app.json found in current directory")), console.log(import_picocolors.default.dim("Run this command from a One project directory")), process.exit(1)), await isDaemonRunning())
103
+ try {
104
+ const server = (await getDaemonStatus()).servers.find((s) => s.root === cwd);
105
+ server ? (await setDaemonRoute(bundleId, server.id), await touchDaemonServer(server.id), console.log(import_picocolors.default.cyan(`[daemon] Route set: ${bundleId} \u2192 this project`))) : (console.log(import_picocolors.default.yellow("[daemon] No server registered for this project")), console.log(
106
+ import_picocolors.default.dim("Run 'one dev' first, or the simulator will connect directly")
107
+ ));
108
+ } catch (err) {
109
+ console.log(import_picocolors.default.dim(`[daemon] Could not set route: ${err}`));
110
+ }
111
+ if (platform === "ios") {
112
+ const { run } = await import("./runIos");
113
+ await run({});
114
+ } else {
115
+ const { run } = await import("./runAndroid");
116
+ await run({});
117
+ }
118
+ }
119
+ async function daemonRoute(args) {
120
+ const { isDaemonRunning, getDaemonStatus, setDaemonRoute, clearDaemonRoute } = await import("../daemon/ipc");
121
+ await isDaemonRunning() || (console.log(import_picocolors.default.yellow("Daemon is not running")), process.exit(1)), args.app || (console.log(import_picocolors.default.red("Missing --app parameter")), console.log("Usage: one daemon route --app=com.example.app --slot=0"), console.log(" or: one daemon route --app=com.example.app --project=~/myapp"), process.exit(1));
122
+ const status = await getDaemonStatus();
123
+ let targetServer;
124
+ if (args.slot !== void 0) {
125
+ const slotIndex = parseInt(args.slot, 10), matchingServers = status.servers.filter((s) => s.bundleId === args.app);
126
+ (slotIndex < 0 || slotIndex >= matchingServers.length) && (console.log(import_picocolors.default.red(`Invalid slot: ${args.slot}`)), console.log(`Available slots for ${args.app}: 0-${matchingServers.length - 1}`), process.exit(1)), targetServer = matchingServers[slotIndex];
127
+ } else if (args.project) {
128
+ const normalizedProject = args.project.replace(/^~/, process.env.HOME || "");
129
+ targetServer = status.servers.find(
130
+ (s) => s.bundleId === args.app && s.root === normalizedProject
131
+ ), targetServer || (console.log(import_picocolors.default.red(`No server found for ${args.app} at ${args.project}`)), process.exit(1));
132
+ } else
133
+ console.log(import_picocolors.default.red("Missing --slot or --project parameter")), process.exit(1);
134
+ await setDaemonRoute(args.app, targetServer.id);
135
+ const shortRoot = targetServer.root.replace(process.env.HOME || "", "~");
136
+ console.log(import_picocolors.default.green(`Route set: ${args.app} \u2192 ${targetServer.id} (${shortRoot})`));
137
+ }
138
+ //# sourceMappingURL=daemon.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/cli/daemon.ts"],
4
+ "mappings": "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",
5
+ "names": ["colors"]
6
+ }
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf,
8
+ __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: !0
13
+ });
14
+ },
15
+ __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: !0
30
+ }) : target, mod)),
31
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: !0
33
+ }), mod);
34
+ var daemon_exports = {};
35
+ __export(daemon_exports, {
36
+ daemon: () => daemon,
37
+ openPlatform: () => openPlatform
38
+ });
39
+ module.exports = __toCommonJS(daemon_exports);
40
+ var import_picocolors = __toESM(require("picocolors"), 1),
41
+ import_label_process = require("./label-process.native.js");
42
+ async function daemon(args) {
43
+ var subcommand = args.subcommand || "run";
44
+ switch (subcommand) {
45
+ case "run":
46
+ case "start":
47
+ return daemonStart(args);
48
+ case "stop":
49
+ return daemonStop();
50
+ case "status":
51
+ return daemonStatus();
52
+ case "route":
53
+ return daemonRoute(args);
54
+ default:
55
+ console.log(`Unknown daemon subcommand: ${subcommand}`), console.log("Available: start, stop, status, route"), process.exit(1);
56
+ }
57
+ }
58
+ async function daemonStart(args) {
59
+ var _args_tui;
60
+ (0, import_label_process.labelProcess)("daemon");
61
+ var {
62
+ isDaemonRunning
63
+ } = await import("../daemon/ipc");
64
+ (await isDaemonRunning()) && (console.log(import_picocolors.default.yellow("Daemon is already running")), console.log("Use 'one daemon status' to see registered servers"), process.exit(1));
65
+ var {
66
+ startDaemon
67
+ } = await import("../daemon/server"),
68
+ useTUI = (_args_tui = args.tui) !== null && _args_tui !== void 0 ? _args_tui : process.stdin.isTTY,
69
+ {
70
+ state
71
+ } = await startDaemon({
72
+ port: args.port ? parseInt(args.port, 10) : void 0,
73
+ host: args.host,
74
+ quiet: useTUI
75
+ });
76
+ if (useTUI) {
77
+ var {
78
+ startTUI
79
+ } = await import("../daemon/tui");
80
+ startTUI(state);
81
+ }
82
+ }
83
+ async function daemonStop() {
84
+ var {
85
+ isDaemonRunning,
86
+ getSocketPath,
87
+ cleanupSocket
88
+ } = await import("../daemon/ipc");
89
+ (await isDaemonRunning()) || (console.log(import_picocolors.default.yellow("Daemon is not running")), process.exit(1)), console.log(import_picocolors.default.yellow("Note: daemon runs in foreground. Press Ctrl+C in the daemon terminal to stop.")), console.log(import_picocolors.default.dim(`Socket path: ${getSocketPath()}`));
90
+ }
91
+ async function daemonStatus() {
92
+ var {
93
+ isDaemonRunning,
94
+ getDaemonStatus,
95
+ getLastActiveDaemonServer
96
+ } = await import("../daemon/ipc");
97
+ (await isDaemonRunning()) || (console.log(import_picocolors.default.yellow("Daemon is not running")), console.log(import_picocolors.default.dim("Start with 'one daemon'")), process.exit(1));
98
+ try {
99
+ var status = await getDaemonStatus(),
100
+ lastActive = await getLastActiveDaemonServer();
101
+ if (console.log(import_picocolors.default.cyan(`
102
+ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)), console.log(import_picocolors.default.cyan(" one daemon status")), console.log(import_picocolors.default.cyan(`\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
103
+ `)), status.servers.length === 0) console.log(import_picocolors.default.dim(" No servers registered"));else {
104
+ console.log(" Registered servers:");
105
+ var _iteratorNormalCompletion = !0,
106
+ _didIteratorError = !1,
107
+ _iteratorError = void 0;
108
+ try {
109
+ for (var _iterator = status.servers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
110
+ var server = _step.value,
111
+ shortRoot = server.root.replace(process.env.HOME || "", "~"),
112
+ isActive = lastActive?.id === server.id,
113
+ activeMarker = isActive ? import_picocolors.default.yellow(" \u2605") : "";
114
+ console.log(` ${import_picocolors.default.green(server.id)} ${server.bundleId} \u2192 :${server.port} (${shortRoot})${activeMarker}`);
115
+ }
116
+ } catch (err) {
117
+ _didIteratorError = !0, _iteratorError = err;
118
+ } finally {
119
+ try {
120
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
121
+ } finally {
122
+ if (_didIteratorError) throw _iteratorError;
123
+ }
124
+ }
125
+ lastActive && console.log(import_picocolors.default.dim(`
126
+ \u2605 = last active (used by oi/oa)`));
127
+ }
128
+ if (status.routes.length > 0) {
129
+ console.log(`
130
+ Active routes:`);
131
+ var _iteratorNormalCompletion1 = !0,
132
+ _didIteratorError1 = !1,
133
+ _iteratorError1 = void 0;
134
+ try {
135
+ for (var _iterator1 = status.routes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
136
+ var route = _step1.value;
137
+ console.log(` ${route.key} \u2192 ${route.serverId}`);
138
+ }
139
+ } catch (err) {
140
+ _didIteratorError1 = !0, _iteratorError1 = err;
141
+ } finally {
142
+ try {
143
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
144
+ } finally {
145
+ if (_didIteratorError1) throw _iteratorError1;
146
+ }
147
+ }
148
+ }
149
+ console.log("");
150
+ } catch (err) {
151
+ console.log(import_picocolors.default.red("Failed to get daemon status")), console.error(err), process.exit(1);
152
+ }
153
+ }
154
+ async function openPlatform(platform) {
155
+ var {
156
+ isDaemonRunning,
157
+ getDaemonStatus,
158
+ setDaemonRoute,
159
+ touchDaemonServer
160
+ } = await import("../daemon/ipc"),
161
+ {
162
+ getBundleIdFromConfig
163
+ } = await import("../daemon/utils"),
164
+ cwd = process.cwd(),
165
+ bundleId = getBundleIdFromConfig(cwd);
166
+ if (bundleId || (console.log(import_picocolors.default.yellow("No app.json found in current directory")), console.log(import_picocolors.default.dim("Run this command from a One project directory")), process.exit(1)), await isDaemonRunning()) try {
167
+ var status = await getDaemonStatus(),
168
+ server = status.servers.find(function (s) {
169
+ return s.root === cwd;
170
+ });
171
+ server ? (await setDaemonRoute(bundleId, server.id), await touchDaemonServer(server.id), console.log(import_picocolors.default.cyan(`[daemon] Route set: ${bundleId} \u2192 this project`))) : (console.log(import_picocolors.default.yellow("[daemon] No server registered for this project")), console.log(import_picocolors.default.dim("Run 'one dev' first, or the simulator will connect directly")));
172
+ } catch (err) {
173
+ console.log(import_picocolors.default.dim(`[daemon] Could not set route: ${err}`));
174
+ }
175
+ if (platform === "ios") {
176
+ var {
177
+ run
178
+ } = await import("./runIos");
179
+ await run({});
180
+ } else {
181
+ var {
182
+ run: run1
183
+ } = await import("./runAndroid");
184
+ await run1({});
185
+ }
186
+ }
187
+ async function daemonRoute(args) {
188
+ var {
189
+ isDaemonRunning,
190
+ getDaemonStatus,
191
+ setDaemonRoute,
192
+ clearDaemonRoute
193
+ } = await import("../daemon/ipc");
194
+ (await isDaemonRunning()) || (console.log(import_picocolors.default.yellow("Daemon is not running")), process.exit(1)), args.app || (console.log(import_picocolors.default.red("Missing --app parameter")), console.log("Usage: one daemon route --app=com.example.app --slot=0"), console.log(" or: one daemon route --app=com.example.app --project=~/myapp"), process.exit(1));
195
+ var status = await getDaemonStatus(),
196
+ targetServer;
197
+ if (args.slot !== void 0) {
198
+ var slotIndex = parseInt(args.slot, 10),
199
+ matchingServers = status.servers.filter(function (s) {
200
+ return s.bundleId === args.app;
201
+ });
202
+ (slotIndex < 0 || slotIndex >= matchingServers.length) && (console.log(import_picocolors.default.red(`Invalid slot: ${args.slot}`)), console.log(`Available slots for ${args.app}: 0-${matchingServers.length - 1}`), process.exit(1)), targetServer = matchingServers[slotIndex];
203
+ } else if (args.project) {
204
+ var normalizedProject = args.project.replace(/^~/, process.env.HOME || "");
205
+ targetServer = status.servers.find(function (s) {
206
+ return s.bundleId === args.app && s.root === normalizedProject;
207
+ }), targetServer || (console.log(import_picocolors.default.red(`No server found for ${args.app} at ${args.project}`)), process.exit(1));
208
+ } else console.log(import_picocolors.default.red("Missing --slot or --project parameter")), process.exit(1);
209
+ await setDaemonRoute(args.app, targetServer.id);
210
+ var shortRoot = targetServer.root.replace(process.env.HOME || "", "~");
211
+ console.log(import_picocolors.default.green(`Route set: ${args.app} \u2192 ${targetServer.id} (${shortRoot})`));
212
+ }
213
+ //# sourceMappingURL=daemon.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","daemon_exports","__export","daemon","openPlatform","module","exports","import_picocolors","__toESM","require","import_label_process","args","subcommand","daemonStart","daemonStop","daemonStatus","daemonRoute","console","log","process","exit","_args_tui","labelProcess","isDaemonRunning","default","yellow","startDaemon","useTUI","tui","stdin","isTTY","state","port","parseInt","host","quiet","startTUI","getSocketPath","cleanupSocket","dim","getDaemonStatus","getLastActiveDaemonServer","status","lastActive","cyan","servers","length","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","server","shortRoot","root","replace","env","HOME","isActive","id","activeMarker","green","bundleId","err","return","routes","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","route","key","serverId","red","error","platform","setDaemonRoute","touchDaemonServer","getBundleIdFromConfig","cwd","find","s","run","run1"],"sources":["../../../src/cli/daemon.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -34,12 +34,37 @@ __export(dev_exports, {
34
34
  dev: () => dev
35
35
  });
36
36
  module.exports = __toCommonJS(dev_exports);
37
- var import_setServerGlobals = require("../server/setServerGlobals.cjs"),
37
+ var path = __toESM(require("node:path"), 1),
38
+ import_picocolors = __toESM(require("picocolors"), 1),
39
+ import_setServerGlobals = require("../server/setServerGlobals.cjs"),
38
40
  import_virtualEntryConstants = require("../vite/plugins/virtualEntryConstants.cjs"),
39
41
  import_checkNodeVersion = require("./checkNodeVersion.cjs"),
40
42
  import_label_process = require("./label-process.cjs");
43
+ const DEFAULT_PORT = 8081,
44
+ DAEMON_PORT = 8081;
41
45
  async function dev(args) {
42
46
  (0, import_label_process.labelProcess)("dev"), (0, import_checkNodeVersion.checkNodeVersion)(), (0, import_setServerGlobals.setServerGlobals)();
47
+ const root = process.cwd();
48
+ let daemonServerId,
49
+ useDaemon = !1,
50
+ effectivePort = args.port ? +args.port : DEFAULT_PORT;
51
+ const {
52
+ isDaemonRunning,
53
+ registerWithDaemon,
54
+ unregisterFromDaemon,
55
+ writeServerFile,
56
+ removeServerFile
57
+ } = await import("../daemon/ipc"),
58
+ {
59
+ getBundleIdFromConfig,
60
+ getAvailablePort
61
+ } = await import("../daemon/utils"),
62
+ daemonRunning = await isDaemonRunning(),
63
+ bundleId = getBundleIdFromConfig(root) || path.basename(root);
64
+ if (daemonRunning) {
65
+ const requestedPort = args.port ? +args.port : null;
66
+ !requestedPort || requestedPort === DAEMON_PORT ? (effectivePort = await getAvailablePort(8082, DAEMON_PORT), console.log(import_picocolors.default.cyan(`[daemon] Detected running daemon on :${DAEMON_PORT}`)), console.log(import_picocolors.default.cyan(`[daemon] Using port :${effectivePort} for this server`)), useDaemon = !0) : effectivePort = requestedPort;
67
+ }
43
68
  const {
44
69
  dev: dev2
45
70
  } = await import("vxrn/dev"),
@@ -49,12 +74,12 @@ async function dev(args) {
49
74
  } = await dev2({
50
75
  mode: args.mode,
51
76
  clean: args.clean,
52
- root: process.cwd(),
77
+ root,
53
78
  debugBundle: args.debugBundle,
54
79
  debug: args.debug,
55
80
  server: {
56
81
  host: args.host,
57
- port: args.port ? +args.port : void 0
82
+ port: effectivePort
58
83
  },
59
84
  entries: {
60
85
  native: import_virtualEntryConstants.virtualEntryIdNative
@@ -63,17 +88,37 @@ async function dev(args) {
63
88
  {
64
89
  closePromise
65
90
  } = await start();
91
+ if (useDaemon && bundleId) try {
92
+ daemonServerId = await registerWithDaemon({
93
+ port: effectivePort,
94
+ bundleId,
95
+ root
96
+ }), console.log(import_picocolors.default.green(`[daemon] Registered as ${bundleId} (${daemonServerId}) \u2192 accessible via :${DAEMON_PORT}`)), writeServerFile({
97
+ port: effectivePort,
98
+ bundleId,
99
+ root,
100
+ pid: process.pid
101
+ });
102
+ } catch (err) {
103
+ console.log(import_picocolors.default.yellow(`[daemon] Failed to register: ${err}`));
104
+ }
105
+ const cleanup = async () => {
106
+ if (daemonServerId) try {
107
+ await unregisterFromDaemon(daemonServerId), removeServerFile(root);
108
+ } catch {}
109
+ await stop();
110
+ };
66
111
  process.on("beforeExit", () => {
67
- stop();
112
+ cleanup();
68
113
  }), process.on("SIGINT", async () => {
69
114
  try {
70
- await stop();
115
+ await cleanup();
71
116
  } finally {
72
117
  process.exit(2);
73
118
  }
74
119
  }), process.on("SIGTERM", async () => {
75
120
  try {
76
- await stop();
121
+ await cleanup();
77
122
  } finally {
78
123
  process.exit(0);
79
124
  }