@bobfrankston/msger 0.1.24 → 0.1.26
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/clihandler.js
CHANGED
|
@@ -18,7 +18,8 @@ Options:
|
|
|
18
18
|
-input Include an input field
|
|
19
19
|
-default <text> Default value for input field
|
|
20
20
|
-size <width,height> Set window size (e.g., -size 800,600)
|
|
21
|
-
-timeout <seconds> Auto-close after specified seconds
|
|
21
|
+
-timeout <seconds> Auto-close after specified seconds
|
|
22
|
+
-detach Leave window open after app exits (parent process returns immediately)
|
|
22
23
|
-help, -?, --help Show this help message
|
|
23
24
|
|
|
24
25
|
Examples:
|
|
@@ -102,6 +103,10 @@ export function parseCliArgs(args) {
|
|
|
102
103
|
cli.timeout = parseInt(args[++i], 10);
|
|
103
104
|
i++;
|
|
104
105
|
}
|
|
106
|
+
else if (arg === '-detach' || arg === '--detach') {
|
|
107
|
+
cli.detach = true;
|
|
108
|
+
i++;
|
|
109
|
+
}
|
|
105
110
|
else if (arg === '-size' || arg === '--size') {
|
|
106
111
|
const size = args[++i];
|
|
107
112
|
const [w, h] = size.split(',').map(s => parseInt(s.trim(), 10));
|
|
@@ -162,7 +167,8 @@ export function parseCliArgs(args) {
|
|
|
162
167
|
defaultValue: cli.defaultValue,
|
|
163
168
|
width: cli.width,
|
|
164
169
|
height: cli.height,
|
|
165
|
-
timeout: cli.timeout
|
|
170
|
+
timeout: cli.timeout,
|
|
171
|
+
detach: cli.detach
|
|
166
172
|
};
|
|
167
173
|
return { options, showHelp: cli.help || false };
|
|
168
174
|
}
|
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;
|
|
1
|
+
{"version":3,"file":"clihandler.js","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"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"}
|
package/clihandler.ts
CHANGED
|
@@ -11,7 +11,8 @@ interface CliOptions {
|
|
|
11
11
|
width?: number;
|
|
12
12
|
height?: number;
|
|
13
13
|
defaultValue?: string;
|
|
14
|
-
timeout?: number;
|
|
14
|
+
timeout?: number;
|
|
15
|
+
detach?: boolean;
|
|
15
16
|
help?: boolean;
|
|
16
17
|
}
|
|
17
18
|
|
|
@@ -34,7 +35,8 @@ Options:
|
|
|
34
35
|
-input Include an input field
|
|
35
36
|
-default <text> Default value for input field
|
|
36
37
|
-size <width,height> Set window size (e.g., -size 800,600)
|
|
37
|
-
-timeout <seconds> Auto-close after specified seconds
|
|
38
|
+
-timeout <seconds> Auto-close after specified seconds
|
|
39
|
+
-detach Leave window open after app exits (parent process returns immediately)
|
|
38
40
|
-help, -?, --help Show this help message
|
|
39
41
|
|
|
40
42
|
Examples:
|
|
@@ -111,6 +113,9 @@ export function parseCliArgs(args: string[]): { options: MessageBoxOptions; show
|
|
|
111
113
|
} else if (arg === '-timeout' || arg === '--timeout') {
|
|
112
114
|
cli.timeout = parseInt(args[++i], 10);
|
|
113
115
|
i++;
|
|
116
|
+
} else if (arg === '-detach' || arg === '--detach') {
|
|
117
|
+
cli.detach = true;
|
|
118
|
+
i++;
|
|
114
119
|
} else if (arg === '-size' || arg === '--size') {
|
|
115
120
|
const size = args[++i];
|
|
116
121
|
const [w, h] = size.split(',').map(s => parseInt(s.trim(), 10));
|
|
@@ -167,7 +172,8 @@ export function parseCliArgs(args: string[]): { options: MessageBoxOptions; show
|
|
|
167
172
|
defaultValue: cli.defaultValue,
|
|
168
173
|
width: cli.width,
|
|
169
174
|
height: cli.height,
|
|
170
|
-
timeout: cli.timeout
|
|
175
|
+
timeout: cli.timeout,
|
|
176
|
+
detach: cli.detach
|
|
171
177
|
};
|
|
172
178
|
|
|
173
179
|
return { options, showHelp: cli.help || false };
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
|
|
6
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
const filePath = path.join(__dirname, 'src', 'main.rs');
|
|
8
|
+
let content = fs.readFileSync(filePath, 'utf8');
|
|
9
|
+
|
|
10
|
+
console.log('Applying zoom and right-click fixes to main.rs...');
|
|
11
|
+
|
|
12
|
+
// 1. Add zoom JavaScript
|
|
13
|
+
const oldKeydown = ` document.addEventListener('keydown', function(e) {{
|
|
14
|
+
if (e.key === 'Escape') {{
|
|
15
|
+
const result = {{ button: '{}', dismissed: true }};
|
|
16
|
+
window.ipc.postMessage(JSON.stringify(result));
|
|
17
|
+
}} else if (e.key === 'Enter') {{
|
|
18
|
+
const buttons = document.querySelectorAll('button');
|
|
19
|
+
if (buttons.length > 0) {{
|
|
20
|
+
buttons[buttons.length - 1].click();
|
|
21
|
+
}}
|
|
22
|
+
}}
|
|
23
|
+
}});`;
|
|
24
|
+
|
|
25
|
+
const newKeydownWithZoom = ` // Zoom support with mouse wheel
|
|
26
|
+
let zoomLevel = 1.0;
|
|
27
|
+
document.addEventListener('wheel', function(e) {{
|
|
28
|
+
// Only zoom when Ctrl is held (or Cmd on Mac)
|
|
29
|
+
if (e.ctrlKey || e.metaKey) {{
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
|
|
32
|
+
// Zoom in/out based on wheel direction
|
|
33
|
+
if (e.deltaY < 0) {{
|
|
34
|
+
zoomLevel = Math.min(zoomLevel + 0.1, 3.0); // Max 300%
|
|
35
|
+
}} else {{
|
|
36
|
+
zoomLevel = Math.max(zoomLevel - 0.1, 0.5); // Min 50%
|
|
37
|
+
}}
|
|
38
|
+
|
|
39
|
+
document.body.style.zoom = zoomLevel;
|
|
40
|
+
}}
|
|
41
|
+
}}, {{ passive: false }});
|
|
42
|
+
|
|
43
|
+
document.addEventListener('keydown', function(e) {{
|
|
44
|
+
if (e.key === 'Escape') {{
|
|
45
|
+
const result = {{ button: '{}', dismissed: true }};
|
|
46
|
+
window.ipc.postMessage(JSON.stringify(result));
|
|
47
|
+
}} else if (e.key === 'Enter') {{
|
|
48
|
+
const buttons = document.querySelectorAll('button');
|
|
49
|
+
if (buttons.length > 0) {{
|
|
50
|
+
buttons[buttons.length - 1].click();
|
|
51
|
+
}}
|
|
52
|
+
}} else if ((e.ctrlKey || e.metaKey) && e.key === '0') {{
|
|
53
|
+
// Reset zoom with Ctrl+0
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
zoomLevel = 1.0;
|
|
56
|
+
document.body.style.zoom = zoomLevel;
|
|
57
|
+
}} else if ((e.ctrlKey || e.metaKey) && (e.key === '+' || e.key === '=')) {{
|
|
58
|
+
// Zoom in with Ctrl++
|
|
59
|
+
e.preventDefault();
|
|
60
|
+
zoomLevel = Math.min(zoomLevel + 0.1, 3.0);
|
|
61
|
+
document.body.style.zoom = zoomLevel;
|
|
62
|
+
}} else if ((e.ctrlKey || e.metaKey) && e.key === '-') {{
|
|
63
|
+
// Zoom out with Ctrl+-
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
zoomLevel = Math.max(zoomLevel - 0.1, 0.5);
|
|
66
|
+
document.body.style.zoom = zoomLevel;
|
|
67
|
+
}}
|
|
68
|
+
}});`;
|
|
69
|
+
|
|
70
|
+
if (content.includes('let zoomLevel')) {
|
|
71
|
+
console.log('- Zoom already added');
|
|
72
|
+
} else {
|
|
73
|
+
content = content.replace(oldKeydown, newKeydownWithZoom);
|
|
74
|
+
console.log('✓ Added zoom JavaScript');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// 2. Add devtools to URL WebViewBuilder
|
|
78
|
+
content = content.replace(
|
|
79
|
+
/WebViewBuilder::new\(\)\s+\.with_url\(url\)\s+\.with_ipc_handler/,
|
|
80
|
+
`WebViewBuilder::new()
|
|
81
|
+
.with_url(url)
|
|
82
|
+
.with_devtools(true)
|
|
83
|
+
.with_ipc_handler`
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
// 3. Add devtools to HTML WebViewBuilder
|
|
87
|
+
content = content.replace(
|
|
88
|
+
/WebViewBuilder::new\(\)\s+\.with_html\(&html\)\s+\.with_ipc_handler/,
|
|
89
|
+
`WebViewBuilder::new()
|
|
90
|
+
.with_html(&html)
|
|
91
|
+
.with_devtools(true)
|
|
92
|
+
.with_ipc_handler`
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
console.log('✓ Added .with_devtools(true) to WebViewBuilders');
|
|
96
|
+
|
|
97
|
+
// Write the file
|
|
98
|
+
fs.writeFileSync(filePath, content, 'utf8');
|
|
99
|
+
console.log('\n✅ All changes applied to main.rs');
|
|
100
|
+
console.log('\nNext steps:');
|
|
101
|
+
console.log('1. cd msger-native');
|
|
102
|
+
console.log('2. cargo build --release');
|
|
103
|
+
console.log('3. copy target\\release\\msgernative.exe bin\\');
|
|
104
|
+
console.log('4. Test: msger -url http://localhost:9299 -title Test -detach');
|
|
105
|
+
console.log('5. Try: Ctrl+Scroll to zoom, Right-click for menu');
|
|
Binary file
|
|
Binary file
|