one 1.2.82 → 1.2.84

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 (342) hide show
  1. package/devtools/dev.mjs +44 -0
  2. package/devtools/devtools.mjs +540 -0
  3. package/devtools/source-inspector.mjs +201 -0
  4. package/dist/cjs/cli/daemon.cjs +136 -0
  5. package/dist/cjs/cli/daemon.js +112 -0
  6. package/dist/cjs/cli/daemon.js.map +6 -0
  7. package/dist/cjs/cli/daemon.native.js +173 -0
  8. package/dist/cjs/cli/daemon.native.js.map +1 -0
  9. package/dist/cjs/createHandleRequest.cjs +15 -8
  10. package/dist/cjs/createHandleRequest.js +10 -6
  11. package/dist/cjs/createHandleRequest.js.map +1 -1
  12. package/dist/cjs/createHandleRequest.native.js +8 -3
  13. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  14. package/dist/cjs/daemon/index.cjs +24 -0
  15. package/dist/cjs/daemon/index.js +21 -0
  16. package/dist/cjs/daemon/index.js.map +6 -0
  17. package/dist/cjs/daemon/index.native.js +27 -0
  18. package/dist/cjs/daemon/index.native.js.map +1 -0
  19. package/dist/cjs/daemon/ipc.cjs +235 -0
  20. package/dist/cjs/daemon/ipc.js +204 -0
  21. package/dist/cjs/daemon/ipc.js.map +6 -0
  22. package/dist/cjs/daemon/ipc.native.js +276 -0
  23. package/dist/cjs/daemon/ipc.native.js.map +1 -0
  24. package/dist/cjs/daemon/picker.cjs +223 -0
  25. package/dist/cjs/daemon/picker.js +191 -0
  26. package/dist/cjs/daemon/picker.js.map +6 -0
  27. package/dist/cjs/daemon/picker.native.js +308 -0
  28. package/dist/cjs/daemon/picker.native.js.map +1 -0
  29. package/dist/cjs/daemon/proxy.cjs +75 -0
  30. package/dist/cjs/daemon/proxy.js +70 -0
  31. package/dist/cjs/daemon/proxy.js.map +6 -0
  32. package/dist/cjs/daemon/proxy.native.js +81 -0
  33. package/dist/cjs/daemon/proxy.native.js.map +1 -0
  34. package/dist/cjs/daemon/registry.cjs +85 -0
  35. package/dist/cjs/daemon/registry.js +81 -0
  36. package/dist/cjs/daemon/registry.js.map +6 -0
  37. package/dist/cjs/daemon/registry.native.js +120 -0
  38. package/dist/cjs/daemon/registry.native.js.map +1 -0
  39. package/dist/cjs/daemon/server.cjs +178 -0
  40. package/dist/cjs/daemon/server.js +179 -0
  41. package/dist/cjs/daemon/server.js.map +6 -0
  42. package/dist/cjs/daemon/server.native.js +200 -0
  43. package/dist/cjs/daemon/server.native.js.map +1 -0
  44. package/dist/cjs/daemon/tui.cjs +223 -0
  45. package/dist/cjs/daemon/tui.js +192 -0
  46. package/dist/cjs/daemon/tui.js.map +6 -0
  47. package/dist/cjs/daemon/tui.native.js +234 -0
  48. package/dist/cjs/daemon/tui.native.js.map +1 -0
  49. package/dist/cjs/daemon/types.cjs +16 -0
  50. package/dist/cjs/daemon/types.js +14 -0
  51. package/dist/cjs/daemon/types.js.map +6 -0
  52. package/dist/cjs/daemon/types.native.js +19 -0
  53. package/dist/cjs/daemon/types.native.js.map +1 -0
  54. package/dist/cjs/daemon/utils.cjs +74 -0
  55. package/dist/cjs/daemon/utils.js +65 -0
  56. package/dist/cjs/daemon/utils.js.map +6 -0
  57. package/dist/cjs/daemon/utils.native.js +83 -0
  58. package/dist/cjs/daemon/utils.native.js.map +1 -0
  59. package/dist/cjs/fork/createMemoryHistory.cjs +22 -8
  60. package/dist/cjs/fork/createMemoryHistory.js +20 -6
  61. package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
  62. package/dist/cjs/fork/createMemoryHistory.native.js +22 -8
  63. package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
  64. package/dist/cjs/fork/useLinking.cjs +52 -13
  65. package/dist/cjs/fork/useLinking.js +35 -10
  66. package/dist/cjs/fork/useLinking.js.map +1 -1
  67. package/dist/cjs/index.cjs +6 -2
  68. package/dist/cjs/index.js +4 -2
  69. package/dist/cjs/index.js.map +2 -2
  70. package/dist/cjs/index.native.js +6 -2
  71. package/dist/cjs/index.native.js.map +1 -1
  72. package/dist/cjs/router/linkingConfig.cjs +13 -2
  73. package/dist/cjs/router/linkingConfig.js +14 -5
  74. package/dist/cjs/router/linkingConfig.js.map +1 -1
  75. package/dist/cjs/router/linkingConfig.native.js +10 -1
  76. package/dist/cjs/router/linkingConfig.native.js.map +1 -1
  77. package/dist/cjs/router/routeMask.cjs +137 -0
  78. package/dist/cjs/router/routeMask.js +127 -0
  79. package/dist/cjs/router/routeMask.js.map +6 -0
  80. package/dist/cjs/router/routeMask.native.js +160 -0
  81. package/dist/cjs/router/routeMask.native.js.map +1 -0
  82. package/dist/cjs/router/router.cjs +26 -3
  83. package/dist/cjs/router/router.js +23 -3
  84. package/dist/cjs/router/router.js.map +1 -1
  85. package/dist/cjs/router/router.native.js +26 -3
  86. package/dist/cjs/router/router.native.js.map +1 -1
  87. package/dist/cjs/router/useScreens.cjs +18 -4
  88. package/dist/cjs/router/useScreens.js +20 -2
  89. package/dist/cjs/router/useScreens.js.map +2 -2
  90. package/dist/cjs/router/useScreens.native.js +16 -0
  91. package/dist/cjs/router/useScreens.native.js.map +1 -1
  92. package/dist/cjs/server/PreloadScripts.native.js +45 -39
  93. package/dist/cjs/server/PreloadScripts.native.js.map +1 -6
  94. package/dist/cjs/ui/TabSlot.cjs +2 -1
  95. package/dist/cjs/ui/TabSlot.js +1 -1
  96. package/dist/cjs/ui/TabSlot.js.map +1 -1
  97. package/dist/cjs/ui/TabSlot.native.js +2 -1
  98. package/dist/cjs/ui/TabSlot.native.js.map +1 -1
  99. package/dist/cjs/ui/Tabs.cjs +8 -4
  100. package/dist/cjs/ui/Tabs.js +8 -4
  101. package/dist/cjs/ui/Tabs.js.map +1 -1
  102. package/dist/cjs/ui/Tabs.native.js +8 -4
  103. package/dist/cjs/ui/Tabs.native.js.map +1 -1
  104. package/dist/cjs/views/Navigator.cjs +13 -12
  105. package/dist/cjs/views/Navigator.js +8 -9
  106. package/dist/cjs/views/Navigator.js.map +1 -1
  107. package/dist/cjs/views/Navigator.native.js +16 -15
  108. package/dist/cjs/views/Navigator.native.js.map +1 -1
  109. package/dist/cjs/vite/DevHead.cjs +2 -909
  110. package/dist/cjs/vite/DevHead.js +1 -917
  111. package/dist/cjs/vite/DevHead.js.map +1 -1
  112. package/dist/cjs/vite/DevHead.native.js +1 -882
  113. package/dist/cjs/vite/DevHead.native.js.map +1 -1
  114. package/dist/cjs/vite/one.cjs +4 -1
  115. package/dist/cjs/vite/one.js +4 -2
  116. package/dist/cjs/vite/one.js.map +1 -1
  117. package/dist/cjs/vite/one.native.js +4 -1
  118. package/dist/cjs/vite/one.native.js.map +1 -1
  119. package/dist/cjs/vite/plugins/devtoolsPlugin.cjs +55 -0
  120. package/dist/cjs/vite/plugins/devtoolsPlugin.js +49 -0
  121. package/dist/cjs/vite/plugins/devtoolsPlugin.js.map +6 -0
  122. package/dist/cjs/vite/plugins/devtoolsPlugin.native.js +58 -0
  123. package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -0
  124. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +1 -6
  125. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +1 -6
  126. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  127. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +1 -6
  128. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  129. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +7 -1
  130. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +5 -1
  131. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  132. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +8 -1
  133. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  134. package/dist/esm/cli/daemon.js +89 -0
  135. package/dist/esm/cli/daemon.js.map +6 -0
  136. package/dist/esm/cli/daemon.mjs +102 -0
  137. package/dist/esm/cli/daemon.mjs.map +1 -0
  138. package/dist/esm/cli/daemon.native.js +136 -0
  139. package/dist/esm/cli/daemon.native.js.map +1 -0
  140. package/dist/esm/createHandleRequest.js +10 -5
  141. package/dist/esm/createHandleRequest.js.map +1 -1
  142. package/dist/esm/createHandleRequest.mjs +15 -8
  143. package/dist/esm/createHandleRequest.mjs.map +1 -1
  144. package/dist/esm/createHandleRequest.native.js +8 -3
  145. package/dist/esm/createHandleRequest.native.js.map +1 -1
  146. package/dist/esm/daemon/index.js +8 -0
  147. package/dist/esm/daemon/index.js.map +6 -0
  148. package/dist/esm/daemon/index.mjs +8 -0
  149. package/dist/esm/daemon/index.mjs.map +1 -0
  150. package/dist/esm/daemon/index.native.js +8 -0
  151. package/dist/esm/daemon/index.native.js.map +1 -0
  152. package/dist/esm/daemon/ipc.js +192 -0
  153. package/dist/esm/daemon/ipc.js.map +6 -0
  154. package/dist/esm/daemon/ipc.mjs +191 -0
  155. package/dist/esm/daemon/ipc.mjs.map +1 -0
  156. package/dist/esm/daemon/ipc.native.js +229 -0
  157. package/dist/esm/daemon/ipc.native.js.map +1 -0
  158. package/dist/esm/daemon/picker.js +169 -0
  159. package/dist/esm/daemon/picker.js.map +6 -0
  160. package/dist/esm/daemon/picker.mjs +186 -0
  161. package/dist/esm/daemon/picker.mjs.map +1 -0
  162. package/dist/esm/daemon/picker.native.js +268 -0
  163. package/dist/esm/daemon/picker.native.js.map +1 -0
  164. package/dist/esm/daemon/proxy.js +47 -0
  165. package/dist/esm/daemon/proxy.js.map +6 -0
  166. package/dist/esm/daemon/proxy.mjs +40 -0
  167. package/dist/esm/daemon/proxy.mjs.map +1 -0
  168. package/dist/esm/daemon/proxy.native.js +43 -0
  169. package/dist/esm/daemon/proxy.native.js.map +1 -0
  170. package/dist/esm/daemon/registry.js +65 -0
  171. package/dist/esm/daemon/registry.js.map +6 -0
  172. package/dist/esm/daemon/registry.mjs +53 -0
  173. package/dist/esm/daemon/registry.mjs.map +1 -0
  174. package/dist/esm/daemon/registry.native.js +85 -0
  175. package/dist/esm/daemon/registry.native.js.map +1 -0
  176. package/dist/esm/daemon/server.js +167 -0
  177. package/dist/esm/daemon/server.js.map +6 -0
  178. package/dist/esm/daemon/server.mjs +143 -0
  179. package/dist/esm/daemon/server.mjs.map +1 -0
  180. package/dist/esm/daemon/server.native.js +162 -0
  181. package/dist/esm/daemon/server.native.js.map +1 -0
  182. package/dist/esm/daemon/tui.js +171 -0
  183. package/dist/esm/daemon/tui.js.map +6 -0
  184. package/dist/esm/daemon/tui.mjs +187 -0
  185. package/dist/esm/daemon/tui.mjs.map +1 -0
  186. package/dist/esm/daemon/tui.native.js +195 -0
  187. package/dist/esm/daemon/tui.native.js.map +1 -0
  188. package/dist/esm/daemon/types.js +1 -0
  189. package/dist/esm/daemon/types.js.map +6 -0
  190. package/dist/esm/daemon/types.mjs +2 -0
  191. package/dist/esm/daemon/types.mjs.map +1 -0
  192. package/dist/esm/daemon/types.native.js +2 -0
  193. package/dist/esm/daemon/types.native.js.map +1 -0
  194. package/dist/esm/daemon/utils.js +42 -0
  195. package/dist/esm/daemon/utils.js.map +6 -0
  196. package/dist/esm/daemon/utils.mjs +39 -0
  197. package/dist/esm/daemon/utils.mjs.map +1 -0
  198. package/dist/esm/daemon/utils.native.js +45 -0
  199. package/dist/esm/daemon/utils.native.js.map +1 -0
  200. package/dist/esm/fork/createMemoryHistory.js +20 -6
  201. package/dist/esm/fork/createMemoryHistory.js.map +1 -1
  202. package/dist/esm/fork/createMemoryHistory.mjs +22 -8
  203. package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
  204. package/dist/esm/fork/createMemoryHistory.native.js +22 -8
  205. package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
  206. package/dist/esm/fork/useLinking.js +35 -9
  207. package/dist/esm/fork/useLinking.js.map +1 -1
  208. package/dist/esm/fork/useLinking.mjs +52 -13
  209. package/dist/esm/fork/useLinking.mjs.map +1 -1
  210. package/dist/esm/index.js +4 -0
  211. package/dist/esm/index.js.map +1 -1
  212. package/dist/esm/index.mjs +3 -1
  213. package/dist/esm/index.mjs.map +1 -1
  214. package/dist/esm/index.native.js +3 -1
  215. package/dist/esm/index.native.js.map +1 -1
  216. package/dist/esm/router/linkingConfig.js +14 -4
  217. package/dist/esm/router/linkingConfig.js.map +1 -1
  218. package/dist/esm/router/linkingConfig.mjs +12 -1
  219. package/dist/esm/router/linkingConfig.mjs.map +1 -1
  220. package/dist/esm/router/linkingConfig.native.js +10 -1
  221. package/dist/esm/router/linkingConfig.native.js.map +1 -1
  222. package/dist/esm/router/routeMask.js +111 -0
  223. package/dist/esm/router/routeMask.js.map +6 -0
  224. package/dist/esm/router/routeMask.mjs +108 -0
  225. package/dist/esm/router/routeMask.mjs.map +1 -0
  226. package/dist/esm/router/routeMask.native.js +128 -0
  227. package/dist/esm/router/routeMask.native.js.map +1 -0
  228. package/dist/esm/router/router.js +23 -2
  229. package/dist/esm/router/router.js.map +1 -1
  230. package/dist/esm/router/router.mjs +24 -3
  231. package/dist/esm/router/router.mjs.map +1 -1
  232. package/dist/esm/router/router.native.js +24 -3
  233. package/dist/esm/router/router.native.js.map +1 -1
  234. package/dist/esm/router/useScreens.js +20 -2
  235. package/dist/esm/router/useScreens.js.map +1 -1
  236. package/dist/esm/router/useScreens.mjs +18 -4
  237. package/dist/esm/router/useScreens.mjs.map +1 -1
  238. package/dist/esm/router/useScreens.native.js +16 -0
  239. package/dist/esm/router/useScreens.native.js.map +1 -1
  240. package/dist/esm/server/PreloadScripts.native.js +29 -33
  241. package/dist/esm/server/PreloadScripts.native.js.map +1 -6
  242. package/dist/esm/ui/TabSlot.js +1 -1
  243. package/dist/esm/ui/TabSlot.js.map +1 -1
  244. package/dist/esm/ui/TabSlot.mjs +2 -1
  245. package/dist/esm/ui/TabSlot.mjs.map +1 -1
  246. package/dist/esm/ui/TabSlot.native.js +2 -1
  247. package/dist/esm/ui/TabSlot.native.js.map +1 -1
  248. package/dist/esm/ui/Tabs.js +10 -5
  249. package/dist/esm/ui/Tabs.js.map +1 -1
  250. package/dist/esm/ui/Tabs.mjs +9 -5
  251. package/dist/esm/ui/Tabs.mjs.map +1 -1
  252. package/dist/esm/ui/Tabs.native.js +9 -5
  253. package/dist/esm/ui/Tabs.native.js.map +1 -1
  254. package/dist/esm/views/Navigator.js +8 -9
  255. package/dist/esm/views/Navigator.js.map +1 -1
  256. package/dist/esm/views/Navigator.mjs +13 -12
  257. package/dist/esm/views/Navigator.mjs.map +1 -1
  258. package/dist/esm/views/Navigator.native.js +16 -15
  259. package/dist/esm/views/Navigator.native.js.map +1 -1
  260. package/dist/esm/vite/DevHead.js +1 -917
  261. package/dist/esm/vite/DevHead.js.map +1 -1
  262. package/dist/esm/vite/DevHead.mjs +2 -909
  263. package/dist/esm/vite/DevHead.mjs.map +1 -1
  264. package/dist/esm/vite/DevHead.native.js +0 -881
  265. package/dist/esm/vite/DevHead.native.js.map +1 -1
  266. package/dist/esm/vite/one.js +4 -1
  267. package/dist/esm/vite/one.js.map +1 -1
  268. package/dist/esm/vite/one.mjs +4 -1
  269. package/dist/esm/vite/one.mjs.map +1 -1
  270. package/dist/esm/vite/one.native.js +4 -1
  271. package/dist/esm/vite/one.native.js.map +1 -1
  272. package/dist/esm/vite/plugins/devtoolsPlugin.js +33 -0
  273. package/dist/esm/vite/plugins/devtoolsPlugin.js.map +6 -0
  274. package/dist/esm/vite/plugins/devtoolsPlugin.mjs +31 -0
  275. package/dist/esm/vite/plugins/devtoolsPlugin.mjs.map +1 -0
  276. package/dist/esm/vite/plugins/devtoolsPlugin.native.js +31 -0
  277. package/dist/esm/vite/plugins/devtoolsPlugin.native.js.map +1 -0
  278. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +1 -6
  279. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  280. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +1 -6
  281. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  282. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +1 -6
  283. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  284. package/dist/esm/vite/plugins/virtualEntryPlugin.js +5 -1
  285. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  286. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +7 -1
  287. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  288. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +8 -1
  289. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  290. package/package.json +13 -11
  291. package/src/createHandleRequest.ts +16 -3
  292. package/src/fork/createMemoryHistory.tsx +39 -4
  293. package/src/fork/useLinking.ts +83 -12
  294. package/src/index.ts +3 -0
  295. package/src/router/linkingConfig.ts +21 -4
  296. package/src/router/routeMask.ts +293 -0
  297. package/src/router/router.ts +53 -1
  298. package/src/router/useScreens.tsx +54 -2
  299. package/src/ui/TabSlot.tsx +2 -1
  300. package/src/ui/Tabs.tsx +12 -5
  301. package/src/views/Navigator.tsx +14 -9
  302. package/src/vite/DevHead.tsx +1 -924
  303. package/src/vite/one.ts +4 -0
  304. package/src/vite/plugins/devtoolsPlugin.ts +45 -0
  305. package/src/vite/plugins/fileSystemRouterPlugin.tsx +2 -7
  306. package/src/vite/plugins/virtualEntryPlugin.ts +12 -3
  307. package/src/vite/types.ts +1 -0
  308. package/types/cli/daemon.d.ts.map +1 -0
  309. package/types/createHandleRequest.d.ts.map +1 -1
  310. package/types/daemon/index.d.ts.map +1 -0
  311. package/types/daemon/ipc.d.ts.map +1 -0
  312. package/types/daemon/picker.d.ts.map +1 -0
  313. package/types/daemon/proxy.d.ts.map +1 -0
  314. package/types/daemon/registry.d.ts.map +1 -0
  315. package/types/daemon/server.d.ts.map +1 -0
  316. package/types/daemon/tui.d.ts.map +1 -0
  317. package/types/daemon/types.d.ts.map +1 -0
  318. package/types/daemon/utils.d.ts.map +1 -0
  319. package/types/fork/createMemoryHistory.d.ts +6 -2
  320. package/types/fork/createMemoryHistory.d.ts.map +1 -1
  321. package/types/fork/useLinking.d.ts.map +1 -1
  322. package/types/index.d.ts +2 -0
  323. package/types/index.d.ts.map +1 -1
  324. package/types/router/linkingConfig.d.ts.map +1 -1
  325. package/types/router/routeMask.d.ts +130 -0
  326. package/types/router/routeMask.d.ts.map +1 -0
  327. package/types/router/router.d.ts +23 -0
  328. package/types/router/router.d.ts.map +1 -1
  329. package/types/router/useScreens.d.ts.map +1 -1
  330. package/types/ui/TabSlot.d.ts.map +1 -1
  331. package/types/ui/Tabs.d.ts +1 -16
  332. package/types/ui/Tabs.d.ts.map +1 -1
  333. package/types/views/Navigator.d.ts +4 -14
  334. package/types/views/Navigator.d.ts.map +1 -1
  335. package/types/vite/DevHead.d.ts.map +1 -1
  336. package/types/vite/one.d.ts.map +1 -1
  337. package/types/vite/plugins/devtoolsPlugin.d.ts +5 -0
  338. package/types/vite/plugins/devtoolsPlugin.d.ts.map +1 -0
  339. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  340. package/types/vite/plugins/virtualEntryPlugin.d.ts +1 -3
  341. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  342. package/types/vite/types.d.ts.map +1 -1
@@ -0,0 +1,201 @@
1
+ // Source Inspector - shows source location on hover when holding Option for 0.5s
2
+ // Uses shadow DOM for style isolation
3
+
4
+ ;(function () {
5
+ try {
6
+ let active = false
7
+ let host = null
8
+ let shadow = null
9
+ let overlay = null
10
+ let tag = null
11
+ let holdTimer = null
12
+ const holdDelay = 500
13
+ const mousePos = { x: 0, y: 0 }
14
+ let removalObserver = null
15
+
16
+ function createHost() {
17
+ if (host) return
18
+ host = document.createElement('div')
19
+ host.id = 'one-source-inspector'
20
+ shadow = host.attachShadow({ mode: 'open' })
21
+ shadow.innerHTML = `
22
+ <style>
23
+ * { box-sizing: border-box; margin: 0; padding: 0; }
24
+ .overlay {
25
+ position: fixed;
26
+ pointer-events: none;
27
+ z-index: 100000;
28
+ background: rgba(100,100,100,0.2);
29
+ border: 2px solid rgba(100,100,100,0.6);
30
+ border-radius: 2px;
31
+ transition: all 0.05s;
32
+ display: none;
33
+ }
34
+ .tag {
35
+ position: fixed;
36
+ pointer-events: none;
37
+ z-index: 100001;
38
+ background: rgba(60,60,60,0.95);
39
+ color: white;
40
+ padding: 4px 8px;
41
+ font-size: 12px;
42
+ font-family: system-ui, -apple-system, sans-serif;
43
+ border-radius: 4px;
44
+ white-space: nowrap;
45
+ box-shadow: 0 2px 8px rgba(0,0,0,0.3);
46
+ display: none;
47
+ }
48
+ </style>
49
+ <div class="overlay"></div>
50
+ <div class="tag"></div>
51
+ `
52
+ document.body.appendChild(host)
53
+ overlay = shadow.querySelector('.overlay')
54
+ tag = shadow.querySelector('.tag')
55
+ setupRemovalObserver()
56
+ }
57
+
58
+ function setupRemovalObserver() {
59
+ if (removalObserver) return
60
+ removalObserver = new MutationObserver((mutations) => {
61
+ for (const mutation of mutations) {
62
+ if (mutation.type === 'childList') {
63
+ for (const node of mutation.removedNodes) {
64
+ if (node === host) {
65
+ host = null
66
+ shadow = null
67
+ overlay = null
68
+ tag = null
69
+ return
70
+ }
71
+ }
72
+ }
73
+ }
74
+ })
75
+ removalObserver.observe(document.body, { childList: true })
76
+ }
77
+
78
+ function hideOverlay() {
79
+ if (overlay) overlay.style.display = 'none'
80
+ if (tag) tag.style.display = 'none'
81
+ }
82
+
83
+ function showOverlay(el, source) {
84
+ if (!host) createHost()
85
+ const rect = el.getBoundingClientRect()
86
+ overlay.style.display = 'block'
87
+ overlay.style.top = rect.top + 'px'
88
+ overlay.style.left = rect.left + 'px'
89
+ overlay.style.width = rect.width + 'px'
90
+ overlay.style.height = rect.height + 'px'
91
+ tag.style.display = 'block'
92
+ tag.textContent = source
93
+ let top = rect.top - 28
94
+ if (top < 0) top = rect.bottom + 4
95
+ tag.style.top = top + 'px'
96
+ tag.style.left = Math.max(4, Math.min(rect.left, window.innerWidth - 200)) + 'px'
97
+ }
98
+
99
+ function cancelHold() {
100
+ if (holdTimer) {
101
+ clearTimeout(holdTimer)
102
+ holdTimer = null
103
+ }
104
+ }
105
+
106
+ function updateOverlayAtPosition(x, y) {
107
+ const allElements = document.elementsFromPoint(x, y)
108
+ let el = null
109
+ for (const element of allElements) {
110
+ if (element.hasAttribute('data-one-source')) {
111
+ el = element
112
+ break
113
+ }
114
+ }
115
+ if (el) {
116
+ const source = el.getAttribute('data-one-source')
117
+ const lastColon = source.lastIndexOf(':')
118
+ const filePath = source.slice(0, lastColon)
119
+ const idx = source.slice(lastColon + 1)
120
+ const info = window.__oneSourceInfo?.[filePath]
121
+ const lineCol = info?.[idx]
122
+ const displaySource = lineCol ? filePath + ':' + lineCol[0] + ':' + lineCol[1] : source
123
+ showOverlay(el, displaySource)
124
+ } else {
125
+ hideOverlay()
126
+ }
127
+ }
128
+
129
+ function activate() {
130
+ active = true
131
+ updateOverlayAtPosition(mousePos.x, mousePos.y)
132
+ }
133
+
134
+ function deactivate() {
135
+ cancelHold()
136
+ active = false
137
+ hideOverlay()
138
+ }
139
+
140
+ window.addEventListener('keydown', (e) => {
141
+ if (e.key !== 'Alt') {
142
+ cancelHold()
143
+ return
144
+ }
145
+ if (e.metaKey || e.ctrlKey || e.shiftKey) {
146
+ cancelHold()
147
+ return
148
+ }
149
+ if (e.defaultPrevented) return
150
+ if (holdTimer) return
151
+ holdTimer = setTimeout(activate, holdDelay)
152
+ })
153
+
154
+ window.addEventListener('keyup', (e) => {
155
+ if (e.defaultPrevented) return
156
+ deactivate()
157
+ })
158
+
159
+ window.addEventListener('blur', deactivate)
160
+
161
+ document.addEventListener('mousemove', (e) => {
162
+ mousePos.x = e.clientX
163
+ mousePos.y = e.clientY
164
+ if (!active) return
165
+ updateOverlayAtPosition(e.clientX, e.clientY)
166
+ })
167
+
168
+ document.addEventListener(
169
+ 'click',
170
+ (e) => {
171
+ if (!active) return
172
+ const allElements = document.elementsFromPoint(e.clientX, e.clientY)
173
+ let el = null
174
+ for (const element of allElements) {
175
+ if (element.hasAttribute('data-one-source')) {
176
+ el = element
177
+ break
178
+ }
179
+ }
180
+ if (el) {
181
+ e.preventDefault()
182
+ e.stopPropagation()
183
+ const source = el.getAttribute('data-one-source')
184
+ const lastColon = source.lastIndexOf(':')
185
+ const filePath = source.slice(0, lastColon)
186
+ const idx = source.slice(lastColon + 1)
187
+ const info = window.__oneSourceInfo?.[filePath]
188
+ const lineCol = info?.[idx]
189
+ let url = '/__one/open-source?source=' + encodeURIComponent(source)
190
+ if (lineCol) {
191
+ url += '&line=' + lineCol[0] + '&column=' + lineCol[1]
192
+ }
193
+ fetch(url)
194
+ }
195
+ },
196
+ true
197
+ )
198
+ } catch (e) {
199
+ console.error('[Source Inspector] Failed to initialize:', e)
200
+ }
201
+ })()
@@ -0,0 +1,136 @@
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
+ });
36
+ module.exports = __toCommonJS(daemon_exports);
37
+ var import_picocolors = __toESM(require("picocolors"), 1),
38
+ import_label_process = require("./label-process.cjs");
39
+ async function daemon(args) {
40
+ const subcommand = args.subcommand || "run";
41
+ switch (subcommand) {
42
+ case "run":
43
+ case "start":
44
+ return daemonStart(args);
45
+ case "stop":
46
+ return daemonStop();
47
+ case "status":
48
+ return daemonStatus();
49
+ case "route":
50
+ return daemonRoute(args);
51
+ default:
52
+ console.log(`Unknown daemon subcommand: ${subcommand}`), console.log("Available: start, stop, status, route"), process.exit(1);
53
+ }
54
+ }
55
+ async function daemonStart(args) {
56
+ (0, import_label_process.labelProcess)("daemon");
57
+ const {
58
+ isDaemonRunning
59
+ } = await import("../daemon/ipc");
60
+ (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));
61
+ const {
62
+ startDaemon
63
+ } = await import("../daemon/server"),
64
+ useTUI = args.tui ?? process.stdin.isTTY,
65
+ {
66
+ state
67
+ } = await startDaemon({
68
+ port: args.port ? parseInt(args.port, 10) : void 0,
69
+ host: args.host,
70
+ quiet: useTUI
71
+ // suppress normal logs when TUI is active
72
+ });
73
+ if (useTUI) {
74
+ const {
75
+ startTUI
76
+ } = await import("../daemon/tui");
77
+ startTUI(state);
78
+ }
79
+ }
80
+ async function daemonStop() {
81
+ const {
82
+ isDaemonRunning,
83
+ getSocketPath,
84
+ cleanupSocket
85
+ } = await import("../daemon/ipc");
86
+ (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()}`));
87
+ }
88
+ async function daemonStatus() {
89
+ const {
90
+ isDaemonRunning,
91
+ getDaemonStatus
92
+ } = await import("../daemon/ipc");
93
+ (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));
94
+ try {
95
+ const status = await getDaemonStatus();
96
+ if (console.log(import_picocolors.default.cyan(`
97
+ \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
98
+ `)), status.servers.length === 0) console.log(import_picocolors.default.dim(" No servers registered"));else {
99
+ console.log(" Registered servers:");
100
+ for (const server of status.servers) {
101
+ const shortRoot = server.root.replace(process.env.HOME || "", "~");
102
+ console.log(` ${import_picocolors.default.green(server.id)} ${server.bundleId} \u2192 :${server.port} (${shortRoot})`);
103
+ }
104
+ }
105
+ if (status.routes.length > 0) {
106
+ console.log(`
107
+ Active routes:`);
108
+ for (const route of status.routes) console.log(` ${route.key} \u2192 ${route.serverId}`);
109
+ }
110
+ console.log("");
111
+ } catch (err) {
112
+ console.log(import_picocolors.default.red("Failed to get daemon status")), console.error(err), process.exit(1);
113
+ }
114
+ }
115
+ async function daemonRoute(args) {
116
+ const {
117
+ isDaemonRunning,
118
+ getDaemonStatus,
119
+ setDaemonRoute,
120
+ clearDaemonRoute
121
+ } = await import("../daemon/ipc");
122
+ (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));
123
+ const status = await getDaemonStatus();
124
+ let targetServer;
125
+ if (args.slot !== void 0) {
126
+ const slotIndex = parseInt(args.slot, 10),
127
+ matchingServers = status.servers.filter(s => s.bundleId === args.app);
128
+ (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];
129
+ } else if (args.project) {
130
+ const normalizedProject = args.project.replace(/^~/, process.env.HOME || "");
131
+ 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));
132
+ } else console.log(import_picocolors.default.red("Missing --slot or --project parameter")), process.exit(1);
133
+ await setDaemonRoute(args.app, targetServer.id);
134
+ const shortRoot = targetServer.root.replace(process.env.HOME || "", "~");
135
+ console.log(import_picocolors.default.green(`Route set: ${args.app} \u2192 ${targetServer.id} (${shortRoot})`));
136
+ }
@@ -0,0 +1,112 @@
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
+ });
27
+ module.exports = __toCommonJS(daemon_exports);
28
+ var import_picocolors = __toESM(require("picocolors"), 1), import_label_process = require("./label-process");
29
+ async function daemon(args) {
30
+ const subcommand = args.subcommand || "run";
31
+ switch (subcommand) {
32
+ case "run":
33
+ case "start":
34
+ return daemonStart(args);
35
+ case "stop":
36
+ return daemonStop();
37
+ case "status":
38
+ return daemonStatus();
39
+ case "route":
40
+ return daemonRoute(args);
41
+ default:
42
+ console.log(`Unknown daemon subcommand: ${subcommand}`), console.log("Available: start, stop, status, route"), process.exit(1);
43
+ }
44
+ }
45
+ async function daemonStart(args) {
46
+ (0, import_label_process.labelProcess)("daemon");
47
+ const { isDaemonRunning } = await import("../daemon/ipc");
48
+ 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));
49
+ const { startDaemon } = await import("../daemon/server"), useTUI = args.tui ?? process.stdin.isTTY, { state } = await startDaemon({
50
+ port: args.port ? parseInt(args.port, 10) : void 0,
51
+ host: args.host,
52
+ quiet: useTUI
53
+ // suppress normal logs when TUI is active
54
+ });
55
+ if (useTUI) {
56
+ const { startTUI } = await import("../daemon/tui");
57
+ startTUI(state);
58
+ }
59
+ }
60
+ async function daemonStop() {
61
+ const { isDaemonRunning, getSocketPath, cleanupSocket } = await import("../daemon/ipc");
62
+ 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()}`));
63
+ }
64
+ async function daemonStatus() {
65
+ const { isDaemonRunning, getDaemonStatus } = await import("../daemon/ipc");
66
+ 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));
67
+ try {
68
+ const status = await getDaemonStatus();
69
+ if (console.log(import_picocolors.default.cyan(`
70
+ \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
71
+ `)), status.servers.length === 0)
72
+ console.log(import_picocolors.default.dim(" No servers registered"));
73
+ else {
74
+ console.log(" Registered servers:");
75
+ for (const server of status.servers) {
76
+ const shortRoot = server.root.replace(process.env.HOME || "", "~");
77
+ console.log(
78
+ ` ${import_picocolors.default.green(server.id)} ${server.bundleId} \u2192 :${server.port} (${shortRoot})`
79
+ );
80
+ }
81
+ }
82
+ if (status.routes.length > 0) {
83
+ console.log(`
84
+ Active routes:`);
85
+ for (const route of status.routes)
86
+ console.log(` ${route.key} \u2192 ${route.serverId}`);
87
+ }
88
+ console.log("");
89
+ } catch (err) {
90
+ console.log(import_picocolors.default.red("Failed to get daemon status")), console.error(err), process.exit(1);
91
+ }
92
+ }
93
+ async function daemonRoute(args) {
94
+ const { isDaemonRunning, getDaemonStatus, setDaemonRoute, clearDaemonRoute } = await import("../daemon/ipc");
95
+ 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));
96
+ const status = await getDaemonStatus();
97
+ let targetServer;
98
+ if (args.slot !== void 0) {
99
+ const slotIndex = parseInt(args.slot, 10), matchingServers = status.servers.filter((s) => s.bundleId === args.app);
100
+ (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];
101
+ } else if (args.project) {
102
+ const normalizedProject = args.project.replace(/^~/, process.env.HOME || "");
103
+ targetServer = status.servers.find(
104
+ (s) => s.bundleId === args.app && s.root === normalizedProject
105
+ ), targetServer || (console.log(import_picocolors.default.red(`No server found for ${args.app} at ${args.project}`)), process.exit(1));
106
+ } else
107
+ console.log(import_picocolors.default.red("Missing --slot or --project parameter")), process.exit(1);
108
+ await setDaemonRoute(args.app, targetServer.id);
109
+ const shortRoot = targetServer.root.replace(process.env.HOME || "", "~");
110
+ console.log(import_picocolors.default.green(`Route set: ${args.app} \u2192 ${targetServer.id} (${shortRoot})`));
111
+ }
112
+ //# 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,173 @@
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
+ });
38
+ module.exports = __toCommonJS(daemon_exports);
39
+ var import_picocolors = __toESM(require("picocolors"), 1),
40
+ import_label_process = require("./label-process.native.js");
41
+ async function daemon(args) {
42
+ var subcommand = args.subcommand || "run";
43
+ switch (subcommand) {
44
+ case "run":
45
+ case "start":
46
+ return daemonStart(args);
47
+ case "stop":
48
+ return daemonStop();
49
+ case "status":
50
+ return daemonStatus();
51
+ case "route":
52
+ return daemonRoute(args);
53
+ default:
54
+ console.log(`Unknown daemon subcommand: ${subcommand}`), console.log("Available: start, stop, status, route"), process.exit(1);
55
+ }
56
+ }
57
+ async function daemonStart(args) {
58
+ var _args_tui;
59
+ (0, import_label_process.labelProcess)("daemon");
60
+ var {
61
+ isDaemonRunning
62
+ } = await import("../daemon/ipc");
63
+ (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));
64
+ var {
65
+ startDaemon
66
+ } = await import("../daemon/server"),
67
+ useTUI = (_args_tui = args.tui) !== null && _args_tui !== void 0 ? _args_tui : process.stdin.isTTY,
68
+ {
69
+ state
70
+ } = await startDaemon({
71
+ port: args.port ? parseInt(args.port, 10) : void 0,
72
+ host: args.host,
73
+ quiet: useTUI
74
+ });
75
+ if (useTUI) {
76
+ var {
77
+ startTUI
78
+ } = await import("../daemon/tui");
79
+ startTUI(state);
80
+ }
81
+ }
82
+ async function daemonStop() {
83
+ var {
84
+ isDaemonRunning,
85
+ getSocketPath,
86
+ cleanupSocket
87
+ } = await import("../daemon/ipc");
88
+ (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()}`));
89
+ }
90
+ async function daemonStatus() {
91
+ var {
92
+ isDaemonRunning,
93
+ getDaemonStatus
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
+ var status = await getDaemonStatus();
98
+ if (console.log(import_picocolors.default.cyan(`
99
+ \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
100
+ `)), status.servers.length === 0) console.log(import_picocolors.default.dim(" No servers registered"));else {
101
+ console.log(" Registered servers:");
102
+ var _iteratorNormalCompletion = !0,
103
+ _didIteratorError = !1,
104
+ _iteratorError = void 0;
105
+ try {
106
+ for (var _iterator = status.servers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
107
+ var server = _step.value,
108
+ shortRoot = server.root.replace(process.env.HOME || "", "~");
109
+ console.log(` ${import_picocolors.default.green(server.id)} ${server.bundleId} \u2192 :${server.port} (${shortRoot})`);
110
+ }
111
+ } catch (err) {
112
+ _didIteratorError = !0, _iteratorError = err;
113
+ } finally {
114
+ try {
115
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
116
+ } finally {
117
+ if (_didIteratorError) throw _iteratorError;
118
+ }
119
+ }
120
+ }
121
+ if (status.routes.length > 0) {
122
+ console.log(`
123
+ Active routes:`);
124
+ var _iteratorNormalCompletion1 = !0,
125
+ _didIteratorError1 = !1,
126
+ _iteratorError1 = void 0;
127
+ try {
128
+ for (var _iterator1 = status.routes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
129
+ var route = _step1.value;
130
+ console.log(` ${route.key} \u2192 ${route.serverId}`);
131
+ }
132
+ } catch (err) {
133
+ _didIteratorError1 = !0, _iteratorError1 = err;
134
+ } finally {
135
+ try {
136
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
137
+ } finally {
138
+ if (_didIteratorError1) throw _iteratorError1;
139
+ }
140
+ }
141
+ }
142
+ console.log("");
143
+ } catch (err) {
144
+ console.log(import_picocolors.default.red("Failed to get daemon status")), console.error(err), process.exit(1);
145
+ }
146
+ }
147
+ async function daemonRoute(args) {
148
+ var {
149
+ isDaemonRunning,
150
+ getDaemonStatus,
151
+ setDaemonRoute,
152
+ clearDaemonRoute
153
+ } = await import("../daemon/ipc");
154
+ (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));
155
+ var status = await getDaemonStatus(),
156
+ targetServer;
157
+ if (args.slot !== void 0) {
158
+ var slotIndex = parseInt(args.slot, 10),
159
+ matchingServers = status.servers.filter(function (s) {
160
+ return s.bundleId === args.app;
161
+ });
162
+ (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];
163
+ } else if (args.project) {
164
+ var normalizedProject = args.project.replace(/^~/, process.env.HOME || "");
165
+ targetServer = status.servers.find(function (s) {
166
+ return s.bundleId === args.app && s.root === normalizedProject;
167
+ }), 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
+ var shortRoot = targetServer.root.replace(process.env.HOME || "", "~");
171
+ console.log(import_picocolors.default.green(`Route set: ${args.app} \u2192 ${targetServer.id} (${shortRoot})`));
172
+ }
173
+ //# sourceMappingURL=daemon.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","daemon_exports","__export","daemon","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","status","cyan","servers","length","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","server","shortRoot","root","replace","env","HOME","green","id","bundleId","err","return","routes","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","route","key","serverId"],"sources":["../../../src/cli/daemon.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}