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.
- package/devtools/dev.mjs +44 -0
- package/devtools/devtools.mjs +540 -0
- package/devtools/source-inspector.mjs +201 -0
- package/dist/cjs/cli/daemon.cjs +136 -0
- package/dist/cjs/cli/daemon.js +112 -0
- package/dist/cjs/cli/daemon.js.map +6 -0
- package/dist/cjs/cli/daemon.native.js +173 -0
- package/dist/cjs/cli/daemon.native.js.map +1 -0
- package/dist/cjs/createHandleRequest.cjs +15 -8
- package/dist/cjs/createHandleRequest.js +10 -6
- package/dist/cjs/createHandleRequest.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js +8 -3
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/daemon/index.cjs +24 -0
- package/dist/cjs/daemon/index.js +21 -0
- package/dist/cjs/daemon/index.js.map +6 -0
- package/dist/cjs/daemon/index.native.js +27 -0
- package/dist/cjs/daemon/index.native.js.map +1 -0
- package/dist/cjs/daemon/ipc.cjs +235 -0
- package/dist/cjs/daemon/ipc.js +204 -0
- package/dist/cjs/daemon/ipc.js.map +6 -0
- package/dist/cjs/daemon/ipc.native.js +276 -0
- package/dist/cjs/daemon/ipc.native.js.map +1 -0
- package/dist/cjs/daemon/picker.cjs +223 -0
- package/dist/cjs/daemon/picker.js +191 -0
- package/dist/cjs/daemon/picker.js.map +6 -0
- package/dist/cjs/daemon/picker.native.js +308 -0
- package/dist/cjs/daemon/picker.native.js.map +1 -0
- package/dist/cjs/daemon/proxy.cjs +75 -0
- package/dist/cjs/daemon/proxy.js +70 -0
- package/dist/cjs/daemon/proxy.js.map +6 -0
- package/dist/cjs/daemon/proxy.native.js +81 -0
- package/dist/cjs/daemon/proxy.native.js.map +1 -0
- package/dist/cjs/daemon/registry.cjs +85 -0
- package/dist/cjs/daemon/registry.js +81 -0
- package/dist/cjs/daemon/registry.js.map +6 -0
- package/dist/cjs/daemon/registry.native.js +120 -0
- package/dist/cjs/daemon/registry.native.js.map +1 -0
- package/dist/cjs/daemon/server.cjs +178 -0
- package/dist/cjs/daemon/server.js +179 -0
- package/dist/cjs/daemon/server.js.map +6 -0
- package/dist/cjs/daemon/server.native.js +200 -0
- package/dist/cjs/daemon/server.native.js.map +1 -0
- package/dist/cjs/daemon/tui.cjs +223 -0
- package/dist/cjs/daemon/tui.js +192 -0
- package/dist/cjs/daemon/tui.js.map +6 -0
- package/dist/cjs/daemon/tui.native.js +234 -0
- package/dist/cjs/daemon/tui.native.js.map +1 -0
- package/dist/cjs/daemon/types.cjs +16 -0
- package/dist/cjs/daemon/types.js +14 -0
- package/dist/cjs/daemon/types.js.map +6 -0
- package/dist/cjs/daemon/types.native.js +19 -0
- package/dist/cjs/daemon/types.native.js.map +1 -0
- package/dist/cjs/daemon/utils.cjs +74 -0
- package/dist/cjs/daemon/utils.js +65 -0
- package/dist/cjs/daemon/utils.js.map +6 -0
- package/dist/cjs/daemon/utils.native.js +83 -0
- package/dist/cjs/daemon/utils.native.js.map +1 -0
- package/dist/cjs/fork/createMemoryHistory.cjs +22 -8
- package/dist/cjs/fork/createMemoryHistory.js +20 -6
- package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js +22 -8
- package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/cjs/fork/useLinking.cjs +52 -13
- package/dist/cjs/fork/useLinking.js +35 -10
- package/dist/cjs/fork/useLinking.js.map +1 -1
- package/dist/cjs/index.cjs +6 -2
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/index.native.js +6 -2
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/router/linkingConfig.cjs +13 -2
- package/dist/cjs/router/linkingConfig.js +14 -5
- package/dist/cjs/router/linkingConfig.js.map +1 -1
- package/dist/cjs/router/linkingConfig.native.js +10 -1
- package/dist/cjs/router/linkingConfig.native.js.map +1 -1
- package/dist/cjs/router/routeMask.cjs +137 -0
- package/dist/cjs/router/routeMask.js +127 -0
- package/dist/cjs/router/routeMask.js.map +6 -0
- package/dist/cjs/router/routeMask.native.js +160 -0
- package/dist/cjs/router/routeMask.native.js.map +1 -0
- package/dist/cjs/router/router.cjs +26 -3
- package/dist/cjs/router/router.js +23 -3
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +26 -3
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +18 -4
- package/dist/cjs/router/useScreens.js +20 -2
- package/dist/cjs/router/useScreens.js.map +2 -2
- package/dist/cjs/router/useScreens.native.js +16 -0
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/server/PreloadScripts.native.js +45 -39
- package/dist/cjs/server/PreloadScripts.native.js.map +1 -6
- package/dist/cjs/ui/TabSlot.cjs +2 -1
- package/dist/cjs/ui/TabSlot.js +1 -1
- package/dist/cjs/ui/TabSlot.js.map +1 -1
- package/dist/cjs/ui/TabSlot.native.js +2 -1
- package/dist/cjs/ui/TabSlot.native.js.map +1 -1
- package/dist/cjs/ui/Tabs.cjs +8 -4
- package/dist/cjs/ui/Tabs.js +8 -4
- package/dist/cjs/ui/Tabs.js.map +1 -1
- package/dist/cjs/ui/Tabs.native.js +8 -4
- package/dist/cjs/ui/Tabs.native.js.map +1 -1
- package/dist/cjs/views/Navigator.cjs +13 -12
- package/dist/cjs/views/Navigator.js +8 -9
- package/dist/cjs/views/Navigator.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js +16 -15
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/vite/DevHead.cjs +2 -909
- package/dist/cjs/vite/DevHead.js +1 -917
- package/dist/cjs/vite/DevHead.js.map +1 -1
- package/dist/cjs/vite/DevHead.native.js +1 -882
- package/dist/cjs/vite/DevHead.native.js.map +1 -1
- package/dist/cjs/vite/one.cjs +4 -1
- package/dist/cjs/vite/one.js +4 -2
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +4 -1
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/devtoolsPlugin.cjs +55 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.js +49 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.js.map +6 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.native.js +58 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +1 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +1 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +1 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +7 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js +5 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +8 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/cli/daemon.js +89 -0
- package/dist/esm/cli/daemon.js.map +6 -0
- package/dist/esm/cli/daemon.mjs +102 -0
- package/dist/esm/cli/daemon.mjs.map +1 -0
- package/dist/esm/cli/daemon.native.js +136 -0
- package/dist/esm/cli/daemon.native.js.map +1 -0
- package/dist/esm/createHandleRequest.js +10 -5
- package/dist/esm/createHandleRequest.js.map +1 -1
- package/dist/esm/createHandleRequest.mjs +15 -8
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +8 -3
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/daemon/index.js +8 -0
- package/dist/esm/daemon/index.js.map +6 -0
- package/dist/esm/daemon/index.mjs +8 -0
- package/dist/esm/daemon/index.mjs.map +1 -0
- package/dist/esm/daemon/index.native.js +8 -0
- package/dist/esm/daemon/index.native.js.map +1 -0
- package/dist/esm/daemon/ipc.js +192 -0
- package/dist/esm/daemon/ipc.js.map +6 -0
- package/dist/esm/daemon/ipc.mjs +191 -0
- package/dist/esm/daemon/ipc.mjs.map +1 -0
- package/dist/esm/daemon/ipc.native.js +229 -0
- package/dist/esm/daemon/ipc.native.js.map +1 -0
- package/dist/esm/daemon/picker.js +169 -0
- package/dist/esm/daemon/picker.js.map +6 -0
- package/dist/esm/daemon/picker.mjs +186 -0
- package/dist/esm/daemon/picker.mjs.map +1 -0
- package/dist/esm/daemon/picker.native.js +268 -0
- package/dist/esm/daemon/picker.native.js.map +1 -0
- package/dist/esm/daemon/proxy.js +47 -0
- package/dist/esm/daemon/proxy.js.map +6 -0
- package/dist/esm/daemon/proxy.mjs +40 -0
- package/dist/esm/daemon/proxy.mjs.map +1 -0
- package/dist/esm/daemon/proxy.native.js +43 -0
- package/dist/esm/daemon/proxy.native.js.map +1 -0
- package/dist/esm/daemon/registry.js +65 -0
- package/dist/esm/daemon/registry.js.map +6 -0
- package/dist/esm/daemon/registry.mjs +53 -0
- package/dist/esm/daemon/registry.mjs.map +1 -0
- package/dist/esm/daemon/registry.native.js +85 -0
- package/dist/esm/daemon/registry.native.js.map +1 -0
- package/dist/esm/daemon/server.js +167 -0
- package/dist/esm/daemon/server.js.map +6 -0
- package/dist/esm/daemon/server.mjs +143 -0
- package/dist/esm/daemon/server.mjs.map +1 -0
- package/dist/esm/daemon/server.native.js +162 -0
- package/dist/esm/daemon/server.native.js.map +1 -0
- package/dist/esm/daemon/tui.js +171 -0
- package/dist/esm/daemon/tui.js.map +6 -0
- package/dist/esm/daemon/tui.mjs +187 -0
- package/dist/esm/daemon/tui.mjs.map +1 -0
- package/dist/esm/daemon/tui.native.js +195 -0
- package/dist/esm/daemon/tui.native.js.map +1 -0
- package/dist/esm/daemon/types.js +1 -0
- package/dist/esm/daemon/types.js.map +6 -0
- package/dist/esm/daemon/types.mjs +2 -0
- package/dist/esm/daemon/types.mjs.map +1 -0
- package/dist/esm/daemon/types.native.js +2 -0
- package/dist/esm/daemon/types.native.js.map +1 -0
- package/dist/esm/daemon/utils.js +42 -0
- package/dist/esm/daemon/utils.js.map +6 -0
- package/dist/esm/daemon/utils.mjs +39 -0
- package/dist/esm/daemon/utils.mjs.map +1 -0
- package/dist/esm/daemon/utils.native.js +45 -0
- package/dist/esm/daemon/utils.native.js.map +1 -0
- package/dist/esm/fork/createMemoryHistory.js +20 -6
- package/dist/esm/fork/createMemoryHistory.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.mjs +22 -8
- package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
- package/dist/esm/fork/createMemoryHistory.native.js +22 -8
- package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/esm/fork/useLinking.js +35 -9
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +52 -13
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/router/linkingConfig.js +14 -4
- package/dist/esm/router/linkingConfig.js.map +1 -1
- package/dist/esm/router/linkingConfig.mjs +12 -1
- package/dist/esm/router/linkingConfig.mjs.map +1 -1
- package/dist/esm/router/linkingConfig.native.js +10 -1
- package/dist/esm/router/linkingConfig.native.js.map +1 -1
- package/dist/esm/router/routeMask.js +111 -0
- package/dist/esm/router/routeMask.js.map +6 -0
- package/dist/esm/router/routeMask.mjs +108 -0
- package/dist/esm/router/routeMask.mjs.map +1 -0
- package/dist/esm/router/routeMask.native.js +128 -0
- package/dist/esm/router/routeMask.native.js.map +1 -0
- package/dist/esm/router/router.js +23 -2
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +24 -3
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +24 -3
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useScreens.js +20 -2
- package/dist/esm/router/useScreens.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +18 -4
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +16 -0
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/server/PreloadScripts.native.js +29 -33
- package/dist/esm/server/PreloadScripts.native.js.map +1 -6
- package/dist/esm/ui/TabSlot.js +1 -1
- package/dist/esm/ui/TabSlot.js.map +1 -1
- package/dist/esm/ui/TabSlot.mjs +2 -1
- package/dist/esm/ui/TabSlot.mjs.map +1 -1
- package/dist/esm/ui/TabSlot.native.js +2 -1
- package/dist/esm/ui/TabSlot.native.js.map +1 -1
- package/dist/esm/ui/Tabs.js +10 -5
- package/dist/esm/ui/Tabs.js.map +1 -1
- package/dist/esm/ui/Tabs.mjs +9 -5
- package/dist/esm/ui/Tabs.mjs.map +1 -1
- package/dist/esm/ui/Tabs.native.js +9 -5
- package/dist/esm/ui/Tabs.native.js.map +1 -1
- package/dist/esm/views/Navigator.js +8 -9
- package/dist/esm/views/Navigator.js.map +1 -1
- package/dist/esm/views/Navigator.mjs +13 -12
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +16 -15
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/dist/esm/vite/DevHead.js +1 -917
- package/dist/esm/vite/DevHead.js.map +1 -1
- package/dist/esm/vite/DevHead.mjs +2 -909
- package/dist/esm/vite/DevHead.mjs.map +1 -1
- package/dist/esm/vite/DevHead.native.js +0 -881
- package/dist/esm/vite/DevHead.native.js.map +1 -1
- package/dist/esm/vite/one.js +4 -1
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +4 -1
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +4 -1
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/devtoolsPlugin.js +33 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.js.map +6 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.mjs +31 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.native.js +31 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.native.js.map +1 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +1 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +1 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +1 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js +5 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +7 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +8 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/package.json +13 -11
- package/src/createHandleRequest.ts +16 -3
- package/src/fork/createMemoryHistory.tsx +39 -4
- package/src/fork/useLinking.ts +83 -12
- package/src/index.ts +3 -0
- package/src/router/linkingConfig.ts +21 -4
- package/src/router/routeMask.ts +293 -0
- package/src/router/router.ts +53 -1
- package/src/router/useScreens.tsx +54 -2
- package/src/ui/TabSlot.tsx +2 -1
- package/src/ui/Tabs.tsx +12 -5
- package/src/views/Navigator.tsx +14 -9
- package/src/vite/DevHead.tsx +1 -924
- package/src/vite/one.ts +4 -0
- package/src/vite/plugins/devtoolsPlugin.ts +45 -0
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +2 -7
- package/src/vite/plugins/virtualEntryPlugin.ts +12 -3
- package/src/vite/types.ts +1 -0
- package/types/cli/daemon.d.ts.map +1 -0
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/daemon/index.d.ts.map +1 -0
- package/types/daemon/ipc.d.ts.map +1 -0
- package/types/daemon/picker.d.ts.map +1 -0
- package/types/daemon/proxy.d.ts.map +1 -0
- package/types/daemon/registry.d.ts.map +1 -0
- package/types/daemon/server.d.ts.map +1 -0
- package/types/daemon/tui.d.ts.map +1 -0
- package/types/daemon/types.d.ts.map +1 -0
- package/types/daemon/utils.d.ts.map +1 -0
- package/types/fork/createMemoryHistory.d.ts +6 -2
- package/types/fork/createMemoryHistory.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/router/linkingConfig.d.ts.map +1 -1
- package/types/router/routeMask.d.ts +130 -0
- package/types/router/routeMask.d.ts.map +1 -0
- package/types/router/router.d.ts +23 -0
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/ui/TabSlot.d.ts.map +1 -1
- package/types/ui/Tabs.d.ts +1 -16
- package/types/ui/Tabs.d.ts.map +1 -1
- package/types/views/Navigator.d.ts +4 -14
- package/types/views/Navigator.d.ts.map +1 -1
- package/types/vite/DevHead.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/devtoolsPlugin.d.ts +5 -0
- package/types/vite/plugins/devtoolsPlugin.d.ts.map +1 -0
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts +1 -3
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- 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":[]}
|