@bobfrankston/msger 0.1.139 → 0.1.141

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/README.md CHANGED
@@ -646,6 +646,33 @@ await showMessageBox({
646
646
 
647
647
  For technical details and performance metrics, see [DEVELOPERS.md](DEVELOPERS.md).
648
648
 
649
+ ## msger vs msgview
650
+
651
+ This package is the **Rust/wry-based** implementation. There's also **[@bobfrankston/msgview](https://www.npmjs.com/package/@bobfrankston/msgview)** - an Electron-based alternative with the same API.
652
+
653
+ | Aspect | msger (this) | msgview |
654
+ |--------|--------------|---------|
655
+ | **Startup** | ~50-200ms | ~2-3 seconds |
656
+ | **Size** | ~5-10MB | ~200MB |
657
+ | **Technology** | Rust + wry (WebView2/webkit2gtk) | Electron |
658
+ | **Pi/Linux** | ❌ Rendering issues | ✅ Perfect |
659
+ | **Windows/WSL** | ✅ Works | ✅ Works |
660
+
661
+ ### When to use msger (this package)
662
+ - Speed is critical (CLI tools, automation)
663
+ - Small binary size matters
664
+ - Windows or WSL environment
665
+
666
+ ### When to use msgview
667
+ - Running on Raspberry Pi or Linux
668
+ - Need reliable cross-platform rendering
669
+ - Prefer Electron ecosystem
670
+
671
+ ### Planned: msgapi
672
+ Both packages will share a common JavaScript API (`window.msgapi`) for file system access, window manipulation, and bidirectional communication. See [TODO.md](TODO.md) for details.
673
+
674
+ For the complete feature comparison and roadmap, see the [shared TODO.md](../msgview/TODO.md) which tracks both projects.
675
+
649
676
  ---
650
677
 
651
678
  # Additional Information
package/clihandler.js CHANGED
@@ -159,6 +159,11 @@ export function parseCliArgs(args) {
159
159
  cli.fullscreen = true;
160
160
  i++;
161
161
  }
162
+ else if (arg === '-full' || arg === '--full') {
163
+ // Track usage for validation (incompatible with -url)
164
+ cli.full = true;
165
+ i++;
166
+ }
162
167
  else if (arg === '-no-escape-closes' || arg === '--no-escape-closes') {
163
168
  cli.escapeCloses = false;
164
169
  i++;
@@ -241,6 +246,10 @@ export function parseCliArgs(args) {
241
246
  i++;
242
247
  }
243
248
  }
249
+ // Validate incompatible options
250
+ if (cli.full && cli.url) {
251
+ throw new Error('-full and -url cannot be used together. Did you mean -fullscreen?');
252
+ }
244
253
  // Build the message
245
254
  let message;
246
255
  let html;
package/clihandler.ts CHANGED
@@ -21,6 +21,7 @@ interface CliOptions {
21
21
  timeout?: number;
22
22
  detach?: boolean;
23
23
  fullscreen?: boolean;
24
+ full?: boolean;
24
25
  escapeCloses?: boolean;
25
26
  reset?: boolean;
26
27
  alwaysOnTop?: boolean;
@@ -189,6 +190,10 @@ export function parseCliArgs(args: string[]): {
189
190
  } else if (arg === '-fullscreen' || arg === '--fullscreen') {
190
191
  cli.fullscreen = true;
191
192
  i++;
193
+ } else if (arg === '-full' || arg === '--full') {
194
+ // Track usage for validation (incompatible with -url)
195
+ cli.full = true;
196
+ i++;
192
197
  } else if (arg === '-no-escape-closes' || arg === '--no-escape-closes') {
193
198
  cli.escapeCloses = false;
194
199
  i++;
@@ -252,6 +257,11 @@ export function parseCliArgs(args: string[]): {
252
257
  }
253
258
  }
254
259
 
260
+ // Validate incompatible options
261
+ if (cli.full && cli.url) {
262
+ throw new Error('-full and -url cannot be used together. Did you mean -fullscreen?');
263
+ }
264
+
255
265
  // Build the message
256
266
  let message: string;
257
267
  let html: string | undefined;
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "ES2020",
5
+ "lib": ["ES2020", "DOM"],
6
+ "declaration": true,
7
+ "outDir": ".",
8
+ "rootDir": ".",
9
+ "strict": true,
10
+ "esModuleInterop": true,
11
+ "skipLibCheck": true,
12
+ "forceConsistentCasingInFileNames": true,
13
+ "moduleResolution": "node",
14
+ "newline": "lf"
15
+ },
16
+ "include": ["msgerdefs.ts"],
17
+ "exclude": ["node_modules"]
18
+ }
package/docs/TODO.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # msger TODO List
2
2
 
3
+ > **📋 Feature Comparison:** See `Y:\dev\utils\msgview\TODO.md` for complete feature comparison table between msger and msgview
4
+
3
5
  ## Recent Session (2025-11-12) - Warning Cleanup
4
6
 
5
7
  **Status:** ✅ COMPLETED - Version 0.1.95
@@ -562,25 +564,25 @@ None currently known!
562
564
  - MSGER-API-SUMMARY.md - API reference
563
565
  - msgerdefs/README.md - TypeScript package docs
564
566
  - Update msgerdefs TypeScript definitions
565
-
566
- ### GTK/Linux Rendering Issue (Pi, WSL)
567
- **Status:** 🔍 INVESTIGATING - See [PI-RENDERING-NOTES.md](PI-RENDERING-NOTES.md) for details
568
-
569
- **Problem:**
570
- - GTK window shows garbled rendering on Linux (Pi ARM64, WSL x64)
571
- - Brief valid header appears, then screen corrupts
572
- - Affects all webkit2gtk-based platforms
573
-
574
- **Investigation:**
575
- - Attempted `vbox.show_all()` / `vbox.show()` before `build_gtk()` - failed (requires gtk::prelude import)
576
- - WebView framework alternatives documented in PI-RENDERING-NOTES.md
577
- - Consider trying Tauri framework (built on wry with better GTK handling)
578
-
579
- **Current Workaround:**
580
- - Windows build works perfectly
581
- - Linux builds compile but rendering broken
582
-
583
- **Next Steps:**
584
- - Research Tauri framework as wry replacement
585
- - Check wry GitHub issues for similar GTK rendering bugs
586
- - Consider webkit2gtk direct integration for more control
567
+
568
+ ### GTK/Linux Rendering Issue (Pi, WSL)
569
+ **Status:** 🔍 INVESTIGATING - See [PI-RENDERING-NOTES.md](PI-RENDERING-NOTES.md) for details
570
+
571
+ **Problem:**
572
+ - GTK window shows garbled rendering on Linux (Pi ARM64, WSL x64)
573
+ - Brief valid header appears, then screen corrupts
574
+ - Affects all webkit2gtk-based platforms
575
+
576
+ **Investigation:**
577
+ - Attempted `vbox.show_all()` / `vbox.show()` before `build_gtk()` - failed (requires gtk::prelude import)
578
+ - WebView framework alternatives documented in PI-RENDERING-NOTES.md
579
+ - Consider trying Tauri framework (built on wry with better GTK handling)
580
+
581
+ **Current Workaround:**
582
+ - Windows build works perfectly
583
+ - Linux builds compile but rendering broken
584
+
585
+ **Next Steps:**
586
+ - Research Tauri framework as wry replacement
587
+ - Check wry GitHub issues for similar GTK rendering bugs
588
+ - Consider webkit2gtk direct integration for more control
@@ -1,4 +1,4 @@
1
- {
1
+ s
2
2
  "compilerOptions": {
3
3
  "target": "ES2020",
4
4
  "module": "ES2020",
@@ -10,8 +10,8 @@
10
10
  "esModuleInterop": true,
11
11
  "skipLibCheck": true,
12
12
  "forceConsistentCasingInFileNames": true,
13
- "moduleResolution": "node"
13
+ "moduleResolution": "node",
14
+ "newLine": "lf"
14
15
  },
15
- "include": ["msgerdefs.ts"],
16
16
  "exclude": ["node_modules"]
17
17
  }
package/nul ADDED
@@ -0,0 +1 @@
1
+ dir: cannot access 'Y:\dev\utils\msgview\*.html': No such file or directory
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/msger",
3
- "version": "0.1.139",
3
+ "version": "0.1.141",
4
4
  "description": "Fast, lightweight, cross-platform message box - Rust-powered alternative to msgview",
5
5
  "type": "module",
6
6
  "main": "./index.js",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes