@bobfrankston/msger 0.1.77 → 0.1.78
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/SESSION-NOTES.md +47 -3
- package/TODO.md +301 -0
- package/clihandler.d.ts.map +1 -1
- package/clihandler.js +7 -5
- package/clihandler.js.map +1 -1
- package/clihandler.ts +4 -3
- package/msger-native/bin/msgernative.exe +0 -0
- package/msger-native/src/main.rs +2 -0
- package/msgernative-linux-x64 +0 -0
- package/package.json +1 -1
- package/shower.d.ts.map +1 -1
- package/shower.js +7 -5
- package/shower.js.map +1 -1
- package/shower.ts +7 -5
package/SESSION-NOTES.md
CHANGED
|
@@ -604,9 +604,13 @@ Added security warning to help text:
|
|
|
604
604
|
|
|
605
605
|
### Recently Fixed ✅
|
|
606
606
|
1. **Multi-monitor positioning** (Fixed 2025-11-06)
|
|
607
|
-
- Was
|
|
608
|
-
|
|
609
|
-
|
|
607
|
+
- **Rust side:** Was assuming monitors arranged left-to-right, added widths (wrong!)
|
|
608
|
+
- Now: Gets specific monitor's actual OS position and adds user offset
|
|
609
|
+
- Fix in main.rs: Use `monitor.position()` instead of adding widths
|
|
610
|
+
- **CLI parsing:** Was ignoring third parameter in `-pos x,y,screen`
|
|
611
|
+
- Previously only worked with: `msger -pos 10,10 -screen 1`
|
|
612
|
+
- Now works with: `msger -pos 10,10,1` (third parameter = screen number)
|
|
613
|
+
- Fix in clihandler.ts: Parse optional third parameter from comma-separated string
|
|
610
614
|
- Test with: `msger -message "Test" -pos 10,10,1` (screen 1 = second monitor)
|
|
611
615
|
|
|
612
616
|
### Workarounds 🔧
|
|
@@ -672,6 +676,46 @@ await msger.maximize()
|
|
|
672
676
|
|
|
673
677
|
These were disabled thinking ALL IPC was broken, but template mode IPC works fine. Could re-enable with same bidirectional pattern as file API.
|
|
674
678
|
|
|
679
|
+
#### 2b. System Menu (Windows Title Bar Menu) - ALTERNATIVE TO KEYBOARD SHORTCUTS
|
|
680
|
+
**Problem:** Keystrokes don't reliably reach the window (WebView2 captures them first)
|
|
681
|
+
- F11 doesn't trigger native fullscreen
|
|
682
|
+
- No easy way to toggle features at runtime
|
|
683
|
+
|
|
684
|
+
**Solution:** Add custom entries to Windows system menu (Alt+Space or right-click title bar)
|
|
685
|
+
|
|
686
|
+
**What to add:**
|
|
687
|
+
- "Toggle Always On Top" (checkmark shows current state)
|
|
688
|
+
- "Zoom" submenu → 50%, 75%, 100%, 125%, 150%, 200%
|
|
689
|
+
- "Toggle Fullscreen" (native window fullscreen)
|
|
690
|
+
- "Open DevTools" (F12 alternative)
|
|
691
|
+
- "Reload Content" (refresh)
|
|
692
|
+
- Separator
|
|
693
|
+
- "Copy Window Info" (position, size, monitor for debugging)
|
|
694
|
+
|
|
695
|
+
**Implementation approach:**
|
|
696
|
+
1. Get window HWND from tao window
|
|
697
|
+
2. Call Windows API: `GetSystemMenu(hwnd, FALSE)`
|
|
698
|
+
3. Add separator: `AppendMenu(menu, MF_SEPARATOR, 0, NULL)`
|
|
699
|
+
4. Add custom items with unique IDs (>= 0x1000):
|
|
700
|
+
```rust
|
|
701
|
+
AppendMenu(menu, MF_STRING, 0x1000, "Toggle Always On Top\0".as_ptr());
|
|
702
|
+
AppendMenu(menu, MF_STRING, 0x1001, "Toggle Fullscreen\0".as_ptr());
|
|
703
|
+
// etc.
|
|
704
|
+
```
|
|
705
|
+
5. Handle WM_SYSCOMMAND in window event loop
|
|
706
|
+
6. Check if wParam matches custom IDs, execute action
|
|
707
|
+
|
|
708
|
+
**Why this works:**
|
|
709
|
+
- Bypasses WebView2 keyboard capture
|
|
710
|
+
- Native Windows UI, familiar to users
|
|
711
|
+
- Can show current state (checkmarks)
|
|
712
|
+
- Works in both template and URL mode
|
|
713
|
+
|
|
714
|
+
**Libraries needed:**
|
|
715
|
+
- `winapi` crate already in dependencies
|
|
716
|
+
- `use winapi::um::winuser::{GetSystemMenu, AppendMenuW, MF_STRING, MF_SEPARATOR};`
|
|
717
|
+
- Use `raw_window_handle()` from tao to get HWND
|
|
718
|
+
|
|
675
719
|
#### 3. Periodic wry Update Check
|
|
676
720
|
Check every few months if wry has fixed the URL mode IPC crash bug. Update to newer wry version if fixed. This would enable window/file APIs in URL mode too.
|
|
677
721
|
|
package/TODO.md
ADDED
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
# msger TODO List
|
|
2
|
+
|
|
3
|
+
## High Priority - Bug Fixes
|
|
4
|
+
- -detatch stopped working
|
|
5
|
+
|
|
6
|
+
## High Priority - Platform App Support
|
|
7
|
+
|
|
8
|
+
### 1. File System API (Week of 2025-11-11+)
|
|
9
|
+
**Goal:** Make msger feasible for writing platform apps with file access
|
|
10
|
+
|
|
11
|
+
**Status:** Not started - requires debugging time
|
|
12
|
+
|
|
13
|
+
**Implementation:**
|
|
14
|
+
|
|
15
|
+
#### A) File Dialogs (Always Safe - No Flag Required)
|
|
16
|
+
```javascript
|
|
17
|
+
await msger.selectFile(options) // Pick single file → {path, content}
|
|
18
|
+
await msger.selectFiles(options) // Pick multiple files → [{path, content}...]
|
|
19
|
+
await msger.saveFileAs(content, name, options) // Save dialog → path
|
|
20
|
+
await msger.selectFolder(options) // Folder picker → path
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
#### B) Direct File Access (Requires --allowFs Flag)
|
|
24
|
+
```javascript
|
|
25
|
+
// Direct file operations by path - requires: msger -htmlfrom app.html --allowFs
|
|
26
|
+
await msger.fs.read(path) // Read file content
|
|
27
|
+
await msger.fs.write(path, content) // Write file
|
|
28
|
+
await msger.fs.list(path) // List directory
|
|
29
|
+
await msger.fs.exists(path) // Check if exists
|
|
30
|
+
await msger.fs.delete(path) // Delete file
|
|
31
|
+
await msger.fs.mkdir(path) // Create directory
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Why it's possible:**
|
|
35
|
+
- IPC works perfectly in template mode (proven by button clicks)
|
|
36
|
+
- Just need bidirectional IPC pattern (JavaScript → Rust → JavaScript)
|
|
37
|
+
- Use `rfd` crate for native file dialogs
|
|
38
|
+
|
|
39
|
+
**Steps:**
|
|
40
|
+
- [ ] Add `rfd = "0.14"` to Cargo.toml
|
|
41
|
+
- [ ] Add `allowFs` flag to MessageBoxOptions struct
|
|
42
|
+
- [ ] Extend IPC handler to recognize file actions
|
|
43
|
+
- [ ] Implement file dialog operations (always allowed)
|
|
44
|
+
- [ ] Implement direct path operations (check allowFs flag first)
|
|
45
|
+
- [ ] Send results back via `webview.evaluate_script()`
|
|
46
|
+
- [ ] Add JavaScript functions that poll for result in `window.__msger_file_result`
|
|
47
|
+
- [ ] Test file dialogs
|
|
48
|
+
- [ ] Test direct file operations with --allowFs flag
|
|
49
|
+
- [ ] Test security (direct operations should fail without --allowFs)
|
|
50
|
+
- [ ] Update documentation (README, MSGER-API-SUMMARY, msgerdefs)
|
|
51
|
+
- [ ] Create sample apps demonstrating file API
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### 2. Window Manipulation APIs via IPC
|
|
56
|
+
**Goal:** Runtime window control in template mode
|
|
57
|
+
|
|
58
|
+
**Status:** Not started - requires debugging time
|
|
59
|
+
|
|
60
|
+
**Implementation:**
|
|
61
|
+
```javascript
|
|
62
|
+
await msger.setSize(width, height)
|
|
63
|
+
await msger.setPosition(x, y)
|
|
64
|
+
await msger.setTitle(title)
|
|
65
|
+
await msger.setAlwaysOnTop(enabled)
|
|
66
|
+
await msger.minimize()
|
|
67
|
+
await msger.maximize()
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Why it's possible:**
|
|
71
|
+
- IPC works in template mode
|
|
72
|
+
- These were disabled prematurely thinking ALL IPC was broken
|
|
73
|
+
- Can be re-enabled with bidirectional IPC pattern (same as file API)
|
|
74
|
+
|
|
75
|
+
**Steps:**
|
|
76
|
+
- [ ] Extend IPC handler to recognize window actions
|
|
77
|
+
- [ ] Implement window manipulation functions in Rust
|
|
78
|
+
- [ ] Send results/confirmations back via `webview.evaluate_script()`
|
|
79
|
+
- [ ] Add JavaScript async functions
|
|
80
|
+
- [ ] Test in template mode
|
|
81
|
+
- [ ] Verify still crashes in URL mode (expected)
|
|
82
|
+
- [ ] Update documentation
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### 3. System Menu (Windows Title Bar Menu)
|
|
87
|
+
**Goal:** Add custom entries to Windows system menu as alternative to keyboard shortcuts
|
|
88
|
+
|
|
89
|
+
**Status:** Not started - Windows-specific feature
|
|
90
|
+
|
|
91
|
+
**Problem:**
|
|
92
|
+
- Keystrokes don't reliably reach the window (WebView2 captures them first)
|
|
93
|
+
- F11 doesn't trigger native fullscreen
|
|
94
|
+
- No easy way to toggle features at runtime
|
|
95
|
+
|
|
96
|
+
**Solution:** Add custom entries to Windows system menu (Alt+Space or right-click title bar)
|
|
97
|
+
|
|
98
|
+
**Menu Items to Add:**
|
|
99
|
+
- Toggle Always On Top (with checkmark showing current state)
|
|
100
|
+
- Zoom submenu → 50%, 75%, 100%, 125%, 150%, 200%
|
|
101
|
+
- Toggle Fullscreen (native window fullscreen)
|
|
102
|
+
- Open DevTools (F12 alternative)
|
|
103
|
+
- Reload Content (refresh)
|
|
104
|
+
- Separator
|
|
105
|
+
- Copy Window Info (position, size, monitor - for debugging)
|
|
106
|
+
|
|
107
|
+
**Steps:**
|
|
108
|
+
- [ ] Get window HWND from tao window using `raw_window_handle()`
|
|
109
|
+
- [ ] Call Windows API: `GetSystemMenu(hwnd, FALSE)`
|
|
110
|
+
- [ ] Add separator: `AppendMenuW(menu, MF_SEPARATOR, 0, NULL)`
|
|
111
|
+
- [ ] Add custom menu items with unique IDs (>= 0x1000)
|
|
112
|
+
- [ ] Store window state (always on top, zoom level, fullscreen)
|
|
113
|
+
- [ ] Handle `WM_SYSCOMMAND` in window event loop
|
|
114
|
+
- [ ] Check if wParam matches custom menu IDs
|
|
115
|
+
- [ ] Execute appropriate action
|
|
116
|
+
- [ ] Update menu checkmarks when state changes
|
|
117
|
+
- [ ] Test all menu items
|
|
118
|
+
- [ ] Document in README (mention Alt+Space to access)
|
|
119
|
+
|
|
120
|
+
**Libraries needed:**
|
|
121
|
+
- `winapi` crate (already in dependencies)
|
|
122
|
+
- `use winapi::um::winuser::{GetSystemMenu, AppendMenuW, MF_STRING, MF_SEPARATOR, MF_CHECKED};`
|
|
123
|
+
|
|
124
|
+
**Why this works:**
|
|
125
|
+
- Bypasses WebView2 keyboard capture
|
|
126
|
+
- Native Windows UI, familiar to users
|
|
127
|
+
- Can show current state (checkmarks)
|
|
128
|
+
- Works in both template and URL mode
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Medium Priority - Maintenance
|
|
133
|
+
|
|
134
|
+
### 4. Periodic wry Update Check
|
|
135
|
+
**Goal:** Check if newer wry versions fix URL mode IPC crash
|
|
136
|
+
|
|
137
|
+
**Status:** Recurring task - check every few months
|
|
138
|
+
|
|
139
|
+
**Current:** wry 0.47.2 has IPC crash bug in URL mode
|
|
140
|
+
|
|
141
|
+
**Steps:**
|
|
142
|
+
- [ ] Check wry releases: https://github.com/tauri-apps/wry/releases
|
|
143
|
+
- [ ] Read changelog for IPC/WebView2 fixes
|
|
144
|
+
- [ ] Test with newer version if promising
|
|
145
|
+
- [ ] If fixed: update Cargo.toml, test thoroughly, document
|
|
146
|
+
- [ ] If fixed: re-enable file/window APIs in URL mode
|
|
147
|
+
|
|
148
|
+
**Next check:** January 2025
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Low Priority - Enhancements
|
|
153
|
+
|
|
154
|
+
### 5. Auto-Update Window Title from Document (URL Mode)
|
|
155
|
+
**Goal:** When using -url, automatically set window title from document's <title> tag
|
|
156
|
+
|
|
157
|
+
**Status:** Not started - enhancement
|
|
158
|
+
|
|
159
|
+
**Current behavior:**
|
|
160
|
+
- Window title comes from -title flag or defaults to "Message"
|
|
161
|
+
- -url mode ignores document's <title> tag
|
|
162
|
+
- User must manually specify title or get generic "Message" title
|
|
163
|
+
|
|
164
|
+
**Desired behavior:**
|
|
165
|
+
- If -title flag provided: use it (explicit override)
|
|
166
|
+
- If -title NOT provided and using -url: extract title from document's <title> tag
|
|
167
|
+
- Works like a browser - shows page title in window title bar
|
|
168
|
+
|
|
169
|
+
**Implementation approaches:**
|
|
170
|
+
|
|
171
|
+
**Option A: Listen for title changes (recommended)**
|
|
172
|
+
```rust
|
|
173
|
+
// In webview builder
|
|
174
|
+
.with_navigation_handler(|uri| {
|
|
175
|
+
// Allow navigation
|
|
176
|
+
true
|
|
177
|
+
})
|
|
178
|
+
// After page loads, get title via JavaScript
|
|
179
|
+
webview.evaluate_script("document.title").then(|title| {
|
|
180
|
+
window.set_title(&title);
|
|
181
|
+
});
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Option B: Use WebView2 DocumentTitleChanged event**
|
|
185
|
+
```rust
|
|
186
|
+
// Windows-specific: Listen for DocumentTitleChanged event
|
|
187
|
+
// Update window.set_title() when document title changes
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Steps:**
|
|
191
|
+
- [ ] Check if -title flag was explicitly provided (distinguish from default)
|
|
192
|
+
- [ ] If -url mode AND no explicit -title: enable auto-title
|
|
193
|
+
- [ ] After page loads, extract document.title via JavaScript
|
|
194
|
+
- [ ] Call `window.set_title()` with extracted title
|
|
195
|
+
- [ ] Listen for dynamic title changes (SPA navigation)
|
|
196
|
+
- [ ] Test with static HTML files
|
|
197
|
+
- [ ] Test with dynamic web pages
|
|
198
|
+
- [ ] Test with pages that change title dynamically
|
|
199
|
+
- [ ] Document in README: "Window title automatically uses document <title> when using -url without -title flag"
|
|
200
|
+
|
|
201
|
+
**Edge cases:**
|
|
202
|
+
- Page with no <title> tag: fallback to URL or "Message"
|
|
203
|
+
- Page that changes title dynamically: update window title
|
|
204
|
+
- SPA navigation: keep listening for title changes
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
### 6. Cross-Compile Support for Raspberry Pi on Windows
|
|
209
|
+
**Goal:** Build ARM64 binary on Windows without SSH to Pi
|
|
210
|
+
|
|
211
|
+
**Status:** Not started - nice to have
|
|
212
|
+
|
|
213
|
+
**Current approach:** SSH to Pi, build there, copy back
|
|
214
|
+
|
|
215
|
+
**Research:**
|
|
216
|
+
- Rust cross-compilation to ARM64 Linux
|
|
217
|
+
- Install ARM64 toolchain on Windows
|
|
218
|
+
- Configure Cargo for cross-compilation
|
|
219
|
+
- Test binary on actual Pi
|
|
220
|
+
|
|
221
|
+
**Links:**
|
|
222
|
+
- https://www.perplexity.ai/search/can-the-rust-tool-chain-compil-kTNtAElGREq2YIU8qCpx_Q#1
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
### 6. Linux System Menu Support
|
|
227
|
+
**Goal:** Add custom menu entries on Linux (if possible)
|
|
228
|
+
|
|
229
|
+
**Status:** Not started - research needed
|
|
230
|
+
|
|
231
|
+
**Question:** Does GTK/Linux have equivalent to Windows system menu?
|
|
232
|
+
|
|
233
|
+
**Research:**
|
|
234
|
+
- GTK menu bar integration
|
|
235
|
+
- Custom right-click menu on title bar
|
|
236
|
+
- Alternative: Add menu bar inside webview content
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
### 7. Improve CSP for -htmlfrom
|
|
241
|
+
**Goal:** Allow external resources when using -htmlfrom
|
|
242
|
+
|
|
243
|
+
**Status:** Not started - may be wry limitation
|
|
244
|
+
|
|
245
|
+
**Current:** CSP blocks external CSS/JS/images when embedding HTML
|
|
246
|
+
|
|
247
|
+
**Workaround:** Use -url for pages with external resources
|
|
248
|
+
|
|
249
|
+
**Research:**
|
|
250
|
+
- Can we configure WebView2 CSP?
|
|
251
|
+
- Can we inject meta CSP tag?
|
|
252
|
+
- Can we proxy external resources?
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Open Bugs
|
|
257
|
+
|
|
258
|
+
None currently known!
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Completed ✅
|
|
263
|
+
|
|
264
|
+
- ✅ Multi-monitor positioning fix - Rust side (2025-11-06)
|
|
265
|
+
- ✅ Multi-monitor positioning fix - CLI parsing bug (2025-11-06)
|
|
266
|
+
- Fixed: `-pos 10,10,1` now correctly parses third parameter as screen number
|
|
267
|
+
- Previously: Only `-pos 10,10 -screen 1` worked
|
|
268
|
+
- ✅ Remove redundant localStorage API wrappers (2025-11-06)
|
|
269
|
+
- ✅ Add repository field to package.json files (2025-11-06)
|
|
270
|
+
- ✅ Fix `nul` file git error (2025-11-06)
|
|
271
|
+
- ✅ Isolated storage with custom WebContext
|
|
272
|
+
- ✅ F11 HTML5 fullscreen implementation
|
|
273
|
+
- ✅ -htmlfrom option (load HTML from file/URL with buttons)
|
|
274
|
+
- ✅ -fullscreen CLI flag for native window fullscreen
|
|
275
|
+
- ✅ -dev flag parsing (partial - can't auto-open DevTools)
|
|
276
|
+
- ✅ Icon support with -icon option
|
|
277
|
+
- ✅ Fix zoomLevel declaration order bug
|
|
278
|
+
- ✅ Template mode IPC for button results
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Notes
|
|
283
|
+
|
|
284
|
+
**Development Priority:**
|
|
285
|
+
1. File System API - Most important for platform apps
|
|
286
|
+
2. System Menu - Best UX alternative to keyboard shortcuts
|
|
287
|
+
3. Window Manipulation APIs - Nice to have, lower priority
|
|
288
|
+
4. Everything else - As time permits
|
|
289
|
+
|
|
290
|
+
**Testing Strategy:**
|
|
291
|
+
- Always test in both template mode and URL mode
|
|
292
|
+
- Verify file API security (--allowFs flag enforcement)
|
|
293
|
+
- Test on multi-monitor setups
|
|
294
|
+
- Create sample apps demonstrating new features
|
|
295
|
+
|
|
296
|
+
**Documentation Updates Required for Each Feature:**
|
|
297
|
+
- README.md - User-facing documentation
|
|
298
|
+
- SESSION-NOTES.md - Development notes
|
|
299
|
+
- MSGER-API-SUMMARY.md - API reference
|
|
300
|
+
- msgerdefs/README.md - TypeScript package docs
|
|
301
|
+
- Update msgerdefs TypeScript definitions
|
package/clihandler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clihandler.d.ts","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA8FhD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"clihandler.d.ts","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA8FhD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CA2NpH;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
|
package/clihandler.js
CHANGED
|
@@ -166,11 +166,13 @@ export function parseCliArgs(args) {
|
|
|
166
166
|
}
|
|
167
167
|
else if (arg === '-pos' || arg === '--pos') {
|
|
168
168
|
const pos = args[++i];
|
|
169
|
-
const
|
|
170
|
-
if (!isNaN(
|
|
171
|
-
cli.posX =
|
|
172
|
-
if (!isNaN(
|
|
173
|
-
cli.posY =
|
|
169
|
+
const parts = pos.split(',').map(s => parseInt(s.trim(), 10));
|
|
170
|
+
if (!isNaN(parts[0]))
|
|
171
|
+
cli.posX = parts[0];
|
|
172
|
+
if (!isNaN(parts[1]))
|
|
173
|
+
cli.posY = parts[1];
|
|
174
|
+
if (!isNaN(parts[2]))
|
|
175
|
+
cli.screen = parts[2]; // Optional third parameter
|
|
174
176
|
i++;
|
|
175
177
|
}
|
|
176
178
|
else if (arg === '-screen' || arg === '--screen') {
|
package/clihandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clihandler.js","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/D,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA6BzC,MAAM,SAAS,GAAG;SACT,WAAW,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0D3B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IACvC,MAAM,GAAG,GAAe;QACpB,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;KACd,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACnE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACnD,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACrD,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3C,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACnD,iDAAiD;YACjD,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,OAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC,EAAE,CAAC;YACR,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,OAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YACD,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,OAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;YACD,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;YACjB,wDAAwD;YACxD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACnD,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACnD,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACjD,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YACzD,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YACtB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YACpG,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;YACvB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC;gBAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC;gBAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC7C,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,MAAM,
|
|
1
|
+
{"version":3,"file":"clihandler.js","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"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"}
|
package/clihandler.ts
CHANGED
|
@@ -179,9 +179,10 @@ export function parseCliArgs(args: string[]): { options: MessageBoxOptions; show
|
|
|
179
179
|
i++;
|
|
180
180
|
} else if (arg === '-pos' || arg === '--pos') {
|
|
181
181
|
const pos = args[++i];
|
|
182
|
-
const
|
|
183
|
-
if (!isNaN(
|
|
184
|
-
if (!isNaN(
|
|
182
|
+
const parts = pos.split(',').map(s => parseInt(s.trim(), 10));
|
|
183
|
+
if (!isNaN(parts[0])) cli.posX = parts[0];
|
|
184
|
+
if (!isNaN(parts[1])) cli.posY = parts[1];
|
|
185
|
+
if (!isNaN(parts[2])) cli.screen = parts[2]; // Optional third parameter
|
|
185
186
|
i++;
|
|
186
187
|
} else if (arg === '-screen' || arg === '--screen') {
|
|
187
188
|
cli.screen = parseInt(args[++i], 10);
|
|
Binary file
|
package/msger-native/src/main.rs
CHANGED
|
@@ -295,7 +295,9 @@ fn main() {
|
|
|
295
295
|
|
|
296
296
|
// Calculate position with optional screen offset (Windows only)
|
|
297
297
|
let final_position = if let Some(ref pos) = options.pos {
|
|
298
|
+
#[cfg_attr(not(target_os = "windows"), allow(unused_mut))]
|
|
298
299
|
let mut x = pos.x;
|
|
300
|
+
#[cfg_attr(not(target_os = "windows"), allow(unused_mut))]
|
|
299
301
|
let mut y = pos.y;
|
|
300
302
|
|
|
301
303
|
// On Windows, get the actual monitor position if screen number provided
|
package/msgernative-linux-x64
CHANGED
|
Binary file
|
package/package.json
CHANGED
package/shower.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shower.d.ts","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAW,uDAAuD;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,8EAA8E;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,iDAAiD;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,CAAa,0DAA0D;IAEpF,IAAI,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAC,CAAQ,mBAAmB;QACzC,MAAM,EAAE,MAAM,CAAC,CAAO,oBAAoB;KAC7C,CAAC;IACF,GAAG,CAAC,EAAE;QACF,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC,CAAM,8EAA8E;KACvG,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC,CAAK,0EAA0E;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAO,kEAAkE;IAC5F,WAAW,CAAC,EAAE,OAAO,CAAC,CAAI,2DAA2D;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAO,0DAA0D;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC,CAAI,4DAA4D;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC,wDAAwD;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,gEAAgE;IAE1F,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,yDAAyD;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC,CAAS,0DAA0D;IACpF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,sEAAsE;IAChG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,6EAA6E;IACvG,GAAG,CAAC,EAAE,OAAO,CAAC,CAAY,8DAA8D;IACxF,KAAK,CAAC,EAAE,OAAO,CAAC,CAAU,uEAAuE;CACpG;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;KACrB,CAAC;CACL;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"shower.d.ts","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAW,uDAAuD;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,8EAA8E;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,iDAAiD;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,CAAa,0DAA0D;IAEpF,IAAI,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAC,CAAQ,mBAAmB;QACzC,MAAM,EAAE,MAAM,CAAC,CAAO,oBAAoB;KAC7C,CAAC;IACF,GAAG,CAAC,EAAE;QACF,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC,CAAM,8EAA8E;KACvG,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC,CAAK,0EAA0E;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAO,kEAAkE;IAC5F,WAAW,CAAC,EAAE,OAAO,CAAC,CAAI,2DAA2D;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAO,0DAA0D;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC,CAAI,4DAA4D;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC,wDAAwD;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,gEAAgE;IAE1F,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,yDAAyD;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC,CAAS,0DAA0D;IACpF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,sEAAsE;IAChG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,6EAA6E;IACvG,GAAG,CAAC,EAAE,OAAO,CAAC,CAAY,8DAA8D;IACxF,KAAK,CAAC,EAAE,OAAO,CAAC,CAAU,uEAAuE;CACpG;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;KACrB,CAAC;CACL;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4K1F"}
|
package/shower.js
CHANGED
|
@@ -49,8 +49,10 @@ export async function showMessageBox(options) {
|
|
|
49
49
|
if ('NODE_OPTIONS' in childEnv) {
|
|
50
50
|
delete childEnv.NODE_OPTIONS;
|
|
51
51
|
}
|
|
52
|
+
// When detached, use 'ignore' for stdout/stderr so parent can exit
|
|
53
|
+
// We only need stdin to send the options, not to receive results
|
|
52
54
|
const child = spawn(binaryPath, [], {
|
|
53
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
55
|
+
stdio: options.detach ? ['pipe', 'ignore', 'ignore'] : ['pipe', 'pipe', 'pipe'],
|
|
54
56
|
detached: options.detach || false,
|
|
55
57
|
env: childEnv
|
|
56
58
|
});
|
|
@@ -60,12 +62,12 @@ export async function showMessageBox(options) {
|
|
|
60
62
|
}
|
|
61
63
|
let stdout = '';
|
|
62
64
|
let stderr = '';
|
|
63
|
-
// Collect stdout
|
|
64
|
-
child.stdout
|
|
65
|
+
// Collect stdout (only if not detached)
|
|
66
|
+
child.stdout?.on('data', (data) => {
|
|
65
67
|
stdout += data.toString();
|
|
66
68
|
});
|
|
67
|
-
// Collect stderr
|
|
68
|
-
child.stderr
|
|
69
|
+
// Collect stderr (only if not detached)
|
|
70
|
+
child.stderr?.on('data', (data) => {
|
|
69
71
|
stderr += data.toString();
|
|
70
72
|
});
|
|
71
73
|
// Handle process completion
|
package/shower.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shower.js","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,UAAU,MAAM,cAAc,CAAC;AAiDtC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA0B;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,+DAA+D;QAC/D,IAAI,UAAkB,CAAC;QACvB,IAAI,SAAS,EAAE,CAAC;YACZ,UAAU,GAAG,iBAAiB,CAAC;QACnC,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,UAAU,GAAG,mBAAmB,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,aAAa,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAErF,yBAAyB;QACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO;QACX,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,CAAC;gBACD,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CACZ,6BAA6B,UAAU,IAAI;oBAC3C,6BAA6B,UAAU,EAAE,CAC5C,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,gEAAgE;QAChE,8DAA8D;QAC9D,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAyB,CAAC;QAC3D,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC,YAAY,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE;YAChC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/
|
|
1
|
+
{"version":3,"file":"shower.js","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"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"}
|
package/shower.ts
CHANGED
|
@@ -102,8 +102,10 @@ export async function showMessageBox(options: MessageBoxOptions): Promise<Messag
|
|
|
102
102
|
delete childEnv.NODE_OPTIONS;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
// When detached, use 'ignore' for stdout/stderr so parent can exit
|
|
106
|
+
// We only need stdin to send the options, not to receive results
|
|
105
107
|
const child = spawn(binaryPath, [], {
|
|
106
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
108
|
+
stdio: options.detach ? ['pipe', 'ignore', 'ignore'] : ['pipe', 'pipe', 'pipe'],
|
|
107
109
|
detached: options.detach || false,
|
|
108
110
|
env: childEnv
|
|
109
111
|
});
|
|
@@ -116,13 +118,13 @@ export async function showMessageBox(options: MessageBoxOptions): Promise<Messag
|
|
|
116
118
|
let stdout = '';
|
|
117
119
|
let stderr = '';
|
|
118
120
|
|
|
119
|
-
// Collect stdout
|
|
120
|
-
child.stdout
|
|
121
|
+
// Collect stdout (only if not detached)
|
|
122
|
+
child.stdout?.on('data', (data) => {
|
|
121
123
|
stdout += data.toString();
|
|
122
124
|
});
|
|
123
125
|
|
|
124
|
-
// Collect stderr
|
|
125
|
-
child.stderr
|
|
126
|
+
// Collect stderr (only if not detached)
|
|
127
|
+
child.stderr?.on('data', (data) => {
|
|
126
128
|
stderr += data.toString();
|
|
127
129
|
});
|
|
128
130
|
|