@bobfrankston/msger 0.1.68 → 0.1.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.hintrc +2 -1
  2. package/README.md +8 -0
  3. package/index.js +7 -0
  4. package/index.js.map +1 -1
  5. package/index.ts +8 -0
  6. package/msger-native/bin/msgernative.exe +0 -0
  7. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Breadcrumbs +107 -34
  8. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Crashpad/settings.dat +0 -0
  9. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/CrashpadMetrics-active.pma +0 -0
  10. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/BrowsingTopicsState +1 -1
  11. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DIPS +0 -0
  12. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DawnGraphiteCache/data_1 +0 -0
  13. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DawnGraphiteCache/index +0 -0
  14. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DawnWebGPUCache/data_1 +0 -0
  15. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DawnWebGPUCache/index +0 -0
  16. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Extension State/LOG +3 -3
  17. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Extension State/LOG.old +3 -3
  18. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/GPUCache/data_1 +0 -0
  19. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/GPUCache/index +0 -0
  20. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG +3 -3
  21. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG.old +3 -3
  22. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Preferences +1 -1
  23. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Session Storage/000003.log +0 -0
  24. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Session Storage/LOG +3 -3
  25. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Session Storage/LOG.old +3 -3
  26. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG +3 -3
  27. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG.old +3 -3
  28. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG +3 -3
  29. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG.old +3 -3
  30. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/favorites_diagnostic.log +35 -0
  31. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/000003.log +0 -0
  32. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/LOG +3 -3
  33. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/LOG.old +3 -3
  34. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/000003.log +0 -0
  35. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG +3 -3
  36. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG.old +3 -3
  37. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/data_0 +0 -0
  38. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/data_1 +0 -0
  39. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/data_3 +0 -0
  40. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/f_000001 +0 -0
  41. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/f_000002 +0 -0
  42. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/index +0 -0
  43. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GraphiteDawnCache/data_1 +0 -0
  44. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GraphiteDawnCache/index +0 -0
  45. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Local State +1 -1
  46. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/ShaderCache/data_1 +0 -0
  47. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/ShaderCache/index +0 -0
  48. package/msger-native/build-pi.ps1 +243 -0
  49. package/msger-native/build.rs +1 -0
  50. package/msger-native/build.ts +101 -24
  51. package/msger-native/src/main.rs +3 -1
  52. package/msger-native/src/template.html +52 -1
  53. package/msgernative-linux-x64 +0 -0
  54. package/msgernative-win32-x64.exe +0 -0
  55. package/package.json +1 -1
  56. package/shower.d.ts.map +1 -1
  57. package/shower.js +13 -7
  58. package/shower.js.map +1 -1
  59. package/shower.ts +13 -7
  60. package/tests/test-input.json +6 -0
  61. package/tests/test-node-dot.js +14 -0
  62. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/CrashpadMetrics.pma +0 -0
package/shower.js CHANGED
@@ -99,14 +99,18 @@ export async function showMessageBox(options) {
99
99
  }
100
100
  // Convert ANSI escape sequences to HTML if message is provided
101
101
  // ansi-to-html will escape HTML characters and convert ANSI codes to colored spans
102
+ // Only do this if the message contains actual ANSI codes to preserve plain text as-is
102
103
  if (optionsToSend.message && !optionsToSend.html) {
103
- const convert = new AnsiToHtml({ fg: '#000000', bg: '#ffffff' });
104
- let htmlContent = convert.toHtml(optionsToSend.message);
105
- // ansi-to-html preserves newlines, so we need to convert them to <br> for HTML
106
- htmlContent = htmlContent.replace(/\r?\n/g, '<br>');
107
- // Move the converted content to html field and clear message
108
- optionsToSend.html = htmlContent;
109
- delete optionsToSend.message;
104
+ // Check if message actually contains ANSI codes
105
+ if (optionsToSend.message.includes('\x1b[')) {
106
+ const convert = new AnsiToHtml({ fg: '#000000', bg: '#ffffff' });
107
+ let htmlContent = convert.toHtml(optionsToSend.message);
108
+ // ansi-to-html preserves newlines, so we need to convert them to <br> for HTML
109
+ htmlContent = htmlContent.replace(/\r?\n/g, '<br>');
110
+ // Move the converted content to html field and clear message
111
+ optionsToSend.html = htmlContent;
112
+ delete optionsToSend.message;
113
+ }
110
114
  }
111
115
  // Flatten size object for Rust binary (expects width/height as top-level fields)
112
116
  const rustOptions = { ...optionsToSend };
@@ -124,6 +128,8 @@ export async function showMessageBox(options) {
124
128
  };
125
129
  }
126
130
  const jsonToSend = JSON.stringify(rustOptions);
131
+ // DEBUG: Uncomment to see what's being sent
132
+ // console.error('[DEBUG] JSON sent to native binary:', jsonToSend);
127
133
  child.stdin.write(jsonToSend);
128
134
  child.stdin.end();
129
135
  // If detached, resolve immediately after sending options
package/shower.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"shower.js","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shower.js","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"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"}
package/shower.ts CHANGED
@@ -158,14 +158,18 @@ export async function showMessageBox(options: MessageBoxOptions): Promise<Messag
158
158
 
159
159
  // Convert ANSI escape sequences to HTML if message is provided
160
160
  // ansi-to-html will escape HTML characters and convert ANSI codes to colored spans
161
+ // Only do this if the message contains actual ANSI codes to preserve plain text as-is
161
162
  if (optionsToSend.message && !optionsToSend.html) {
162
- const convert = new AnsiToHtml({ fg: '#000000', bg: '#ffffff' });
163
- let htmlContent = convert.toHtml(optionsToSend.message);
164
- // ansi-to-html preserves newlines, so we need to convert them to <br> for HTML
165
- htmlContent = htmlContent.replace(/\r?\n/g, '<br>');
166
- // Move the converted content to html field and clear message
167
- optionsToSend.html = htmlContent;
168
- delete optionsToSend.message;
163
+ // Check if message actually contains ANSI codes
164
+ if (optionsToSend.message.includes('\x1b[')) {
165
+ const convert = new AnsiToHtml({ fg: '#000000', bg: '#ffffff' });
166
+ let htmlContent = convert.toHtml(optionsToSend.message);
167
+ // ansi-to-html preserves newlines, so we need to convert them to <br> for HTML
168
+ htmlContent = htmlContent.replace(/\r?\n/g, '<br>');
169
+ // Move the converted content to html field and clear message
170
+ optionsToSend.html = htmlContent;
171
+ delete optionsToSend.message;
172
+ }
169
173
  }
170
174
 
171
175
  // Flatten size object for Rust binary (expects width/height as top-level fields)
@@ -185,6 +189,8 @@ export async function showMessageBox(options: MessageBoxOptions): Promise<Messag
185
189
  }
186
190
 
187
191
  const jsonToSend = JSON.stringify(rustOptions);
192
+ // DEBUG: Uncomment to see what's being sent
193
+ // console.error('[DEBUG] JSON sent to native binary:', jsonToSend);
188
194
  child.stdin.write(jsonToSend);
189
195
  child.stdin.end();
190
196
 
@@ -0,0 +1,6 @@
1
+ {
2
+ "title": "Test",
3
+ "message": "Click a button or press Escape/Enter",
4
+ "buttons": ["OK", "Cancel", "Foo"],
5
+ "timeout": 10
6
+ }
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ // Test that "node ." works (uses package.json "main" field)
3
+ import msger from './index.js';
4
+
5
+ console.log('Testing "node ." support...');
6
+ console.log('msger module loaded:', typeof msger.showMessageBox === 'function' ? '✅' : '❌');
7
+
8
+ const result = await msger.showMessageBox({
9
+ title: 'node . test',
10
+ message: 'This was called via "node ."\nPress Escape or Enter to test keys',
11
+ buttons: ['OK']
12
+ });
13
+
14
+ console.log('Result:', result);