@bobfrankston/msger 0.1.59 → 0.1.61

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 (65) hide show
  1. package/.hintrc +20 -0
  2. package/clihandler.d.ts.map +1 -1
  3. package/clihandler.js +18 -7
  4. package/clihandler.js.map +1 -1
  5. package/clihandler.ts +19 -8
  6. package/msger-native/bin/msgernative.exe +0 -0
  7. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Breadcrumbs +73 -0
  8. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/BrowserMetrics/BrowserMetrics-69052623-3BB8.pma +0 -0
  9. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/BrowserMetrics/BrowserMetrics-690528D8-ED84.pma +0 -0
  10. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/BrowserMetrics/BrowserMetrics-69052936-10170.pma +0 -0
  11. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/{BrowserMetrics-spare.pma → BrowserMetrics/BrowserMetrics-69052D3C-10D08.pma} +0 -0
  12. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Crashpad/settings.dat +0 -0
  13. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/CrashpadMetrics-active.pma +0 -0
  14. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/CrashpadMetrics.pma +0 -0
  15. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/BrowsingTopicsState +1 -1
  16. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DIPS +0 -0
  17. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DashTrackerDatabase +0 -0
  18. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DashTrackerDatabase-journal +0 -0
  19. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DawnGraphiteCache/data_1 +0 -0
  20. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DawnGraphiteCache/index +0 -0
  21. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DawnWebGPUCache/data_1 +0 -0
  22. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/DawnWebGPUCache/index +0 -0
  23. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Extension State/LOG +3 -3
  24. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Extension State/LOG.old +3 -3
  25. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/GPUCache/data_1 +0 -0
  26. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/GPUCache/index +0 -0
  27. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/History +0 -0
  28. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Local Storage/leveldb/000003.log +0 -0
  29. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG +3 -3
  30. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG.old +3 -3
  31. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Preferences +1 -1
  32. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Session Storage/000003.log +0 -0
  33. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Session Storage/LOG +3 -3
  34. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Session Storage/LOG.old +3 -3
  35. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG +3 -3
  36. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG.old +3 -3
  37. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG +3 -3
  38. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG.old +3 -3
  39. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/favorites_diagnostic.log +4 -0
  40. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/000003.log +0 -0
  41. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/LOG +3 -3
  42. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/LOG.old +3 -3
  43. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/000003.log +0 -0
  44. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG +3 -3
  45. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG.old +3 -3
  46. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/data_0 +0 -0
  47. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/data_1 +0 -0
  48. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GrShaderCache/index +0 -0
  49. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GraphiteDawnCache/data_1 +0 -0
  50. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/GraphiteDawnCache/index +0 -0
  51. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/Local State +1 -1
  52. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/ShaderCache/data_1 +0 -0
  53. package/msger-native/bin/msgernative.exe.WebView2/EBWebView/ShaderCache/index +0 -0
  54. package/msger-native/src/main.rs +15 -211
  55. package/msger-native/src/template.html +191 -0
  56. package/msgernative-linux-x64 +0 -0
  57. package/msgernative-win32-x64.exe +0 -0
  58. package/package.json +1 -1
  59. package/shower.d.ts.map +1 -1
  60. package/shower.js +17 -1
  61. package/shower.js.map +1 -1
  62. package/shower.ts +18 -1
  63. package/test-size.d.ts +2 -0
  64. package/test-size.d.ts.map +1 -0
  65. package/tests/test-size.js +27 -0
@@ -1 +1 @@
1
- {"accessibility":{"captions":{"common_models_path":"","soda_translation_binary_path":""}},"autofill":{"ablation_seed":"Z0swlvRuUso="},"breadcrumbs":{"enabled":true,"enabled_time":"13405633918874559"},"default_browser":{"browser_name_enum":13},"desktop_session_duration_tracker":{"last_session_end_timestamp":"1761944640"},"domain_actions_config":"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","edge":{"manageability":{"edge_last_active_time":"13406418022997255"},"tab_stabs":{"closed_without_unfreeze_never_unfrozen":0,"closed_without_unfreeze_previously_unfrozen":0,"discard_without_unfreeze_never_unfrozen":0,"discard_without_unfreeze_previously_unfrozen":0},"tab_stats":{"frozen_daily":0,"unfrozen_daily":0}},"edge_ci":{"metrics_bookmark":"\u003CBookmarkList>\r\n\u003C/BookmarkList>","num_healthy_browsers_since_failure":2},"hardware_acceleration_mode_previous":true,"identity_combined_status":{"aad":2,"ad":1},"legacy":{"profile":{"name":{"migrated":true}}},"local":{"password_hash_data_list":[]},"network_time":{"network_time_mapping":{"local":1.76194174839255e+12,"network":1.761941748e+12,"ticks":90497411694.0,"uncertainty":1533873.0}},"optimization_guide":{"model_execution":{"last_usage_by_feature":{}},"model_store_metadata":{},"on_device":{"last_version":"141.0.3537.99","model_crash_count":0}},"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAACWsZDMa44HSK7x1dmjd6ipEAAAAB4AAABNAGkAYwByAG8AcwBvAGYAdAAgAEUAZABnAGUAAAAQZgAAAAEAACAAAABUDgRRN7xKnFSlG748Z6Z6L7wjJeDNkNRQbADhVGx2QwAAAAAOgAAAAAIAACAAAAAeRg4a0szaeRhhR4zyWUOXoN869md2k4OjiNxVsFyndDAAAABX6PEdpHgByL3/WreTcHkR0ONVUzobTbjrxDRAxz19Xogq6pDJx9NcYvkhB9tNZn5AAAAAAarRg3ZjWGAzXfUcMXhN7NcR2b98uvYED0Xpbs4YvVdt9Zen35uTQZXwlc7O4gtOB3Ve11sZlNLFCZ2DDrwa2g=="},"performance_intervention":{"last_daily_sample":"13406337071606279"},"phoenix":{"user_laf_toggle_state_static":2},"policy":{"last_statistics_update":"13406337071338293"},"profile":{"info_cache":{"Default":{"active_time":1761944462.941625,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_20","background_apps":false,"edge_account_cid":"","edge_account_environment":0,"edge_account_environment_string":"","edge_account_first_name":"","edge_account_last_name":"","edge_account_oid":"","edge_account_sovereignty":0,"edge_account_tenant_id":"","edge_account_type":0,"edge_non_signin_profile_type":1,"edge_profile_can_be_deleted":true,"edge_test_on_premises":false,"edge_wam_aad_for_app_account_type":0,"enterprise_label":"","force_signin_profile_locked":false,"gaia_given_name":"","gaia_id":"","gaia_name":"","hosted_domain":"","is_consented_primary_account":false,"is_ephemeral":false,"is_glic_eligible":false,"is_managed":0,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","metrics_bucket_index":1,"name":"Profile 1","signin.with_credential_provider":false,"user_name":""}},"last_active_profiles":[],"metrics":{"next_bucket_index":2},"profile_counts_reported":"13406337071196812","profiles_order":["Default"]},"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"profiles":{"edge":{"guided_switch_pref":[],"multiple_profiles_with_same_account":false},"edge_sso_info":{"msa_first_profile_key":"Default","msa_sso_algo_state":1},"signin_last_seen_version":"141.0.3537.99","signin_last_updated_time":1761863471.59158},"sentinel_creation_time":"0","session_id_generator_last_value":"1371520582","signin":{"active_accounts_last_emitted":"13406337071185909"},"startup_boost":{"last_browser_open_time":"13406418240374123"},"subresource_filter":{"ruleset_version":{"checksum":860988201,"content":"10.34.0.81","format":37}},"tab_stats":{"discards_expired":0,"discards_external":0,"discards_proactive":0,"discards_urgent":0,"last_daily_sample":"13406337071295468","max_tabs_per_window":1,"reloads_expired":0,"reloads_external":0,"reloads_urgent":0,"total_tab_count_max":2,"window_count_max":2},"telemetry_client":{"cloned_install":{"user_data_dir_id":1368117},"governance":{"last_dma_change_date":"13405633918837393","last_known_cps":0},"host_telclient_path":"QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxNaWNyb3NvZnRcRWRnZVdlYlZpZXdcQXBwbGljYXRpb25cMTQxLjAuMzUzNy45OVx0ZWxjbGllbnQuZGxs","sample_id":78116406},"uninstall_metrics":{"installation_date2":"1761160318"},"updateclientdata":{"apps":{"alpjnmnfbgfkmmpcfpejmmoebdndedno":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"28.0.0.1"},"eeobbhfgfagbclfofmgbdfoicabjdbkn":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"1.0.0.10"},"fgbafbciocncjfbbonhocjaohoknlaco":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"2025.9.29.1"},"fppmbhmldokgmleojlplaaodlkibgikh":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"1.15.0.1"},"hajigopbbjhghbfimgkfmpenfkclmohk":{"cohort":"","cohortname":"","installdate":-1},"jbfaflocpnkhbgcijpkiafdpbjkedane":{"cohort":"","cohortname":"","installdate":-1},"kpfehajjjbbcifeehjgfgnabifknmdad":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"120.0.6050.0"},"ldfkbgjbencjpgjfleiooeldhjdapggh":{"cohort":"","cohortname":"","installdate":-1},"mcfjlbnicoclaecapilmleaelokfnijm":{"cohort":"","cohortname":"","installdate":-1},"ndikpojcjlepofdkaaldkinkjbeeebkl":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"10.34.0.81"},"oankkpibpaokgecfckkdkgaoafllipag":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"6498.2025.9.4"},"ohckeflnhegojcjlcpbfpciadgikcohk":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"0.0.1.7"},"ojblfafjmiikbkepnnolpgbbhejhlcim":{"cohort":"","cohortname":"","installdate":-1},"pghocgajpebopihickglahgebcmkcekh":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"3.0.0.16"},"pmagihnlncbcefglppponlgakiphldeh":{"cohort":"","cohortname":"","installdate":-1}}},"updateclientlastupdatecheckerror":0,"updateclientlastupdatecheckerrorcategory":0,"updateclientlastupdatecheckerrorextracode1":0,"user_experience_metrics":{"chrome_download_action_count":0,"client_id2":"{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}C:\\Users\\Bob1s:38D38C2A-D364-45F8-BC50-333D72CBE58F","client_id_timestamp":"1761160318","diagnostics":{"last_data_collection_level_on_launch":3},"initial_logs2":[],"last_seen":{"BrowserMetrics":"13406417962973043","CrashpadMetrics":"13406418025830358"},"limited_entropy_randomization_source":"AD9091DE8790396A4D0B7389E394605A","log_finalized_record_id":56,"log_record_id":56,"low_entropy_source3":5625,"machine_id":4256001,"ongoing_logs2":[],"payload_counter":3,"pseudo_low_entropy_source":1574,"reporting_enabled":true,"reset_client_id_deterministic":true,"session_id":20,"stability":{"browser_last_live_timestamp":"13406418240412961","exited_cleanly":true,"saved_system_profile":"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","saved_system_profile_hash":"45A8C7C31D0DDB5905C43424997F7DDB11650F9E","stats_buildtime":"1761167620","stats_version":"141.0.3537.99-64","system_crash_count":0},"unsent_log_metadata":{"initial_logs":{"sent_samples_count":0,"unsent_persisted_size_in_kb":0,"unsent_samples_count":0},"ongoing_logs":{"sent_samples_count":0,"unsent_persisted_size_in_kb":0,"unsent_samples_count":0}}},"variations_compressed_seed":"safe_seed_content","variations_config_ids":"{\"ECS\":\"P-R-1082570-1-11,P-D-42388-2-6\",\"EdgeConfig\":\"P-R-1315481-1-8,P-R-1695353-4-7,P-R-1671932-3-6,P-R-1541171-6-9,P-R-1528200-3-4,P-R-1113531-4-9,P-R-68474-9-12,P-R-60617-8-21,P-R-45373-8-85\",\"EdgeFirstRunConfig\":\"P-R-1075865-4-7\",\"Segmentation\":\"P-R-1473016-1-8,P-R-1159985-1-5,P-R-1113915-25-11,P-R-1098334-1-6,P-R-66078-1-3,P-R-66077-1-5,P-R-60882-1-2,P-R-43082-3-5,P-R-42744-1-2\"}","variations_country":"US","variations_crash_streak":0,"variations_failed_to_fetch_seed_streak":1,"variations_google_groups":{"Default":[]},"variations_last_fetch_time":"13406415347165014","variations_last_runtime_fetch_time":"13406415348603522","variations_permanent_consistency_country":["141.0.3537.99","US"],"variations_runtime_compressed_seed":"H4sIAAAAAAAAAG1Q0W7bMBD7leCefYCkk2TJwB6KOGk6bF3WNFjRuQ9urBnGEnmLHWBF4H8vZGXJsPaRIHlH8gjT1v9o6pu8gwyOBcymqwKyApZ4h5wZoVKGHDlPlpijFGQMCtQFJAXMqtrl7a5s/NWmb1rf/WO0JKQKRpucLmkmkSOlI04NMR1oEyFpMcLIauJaoUShR6hISEKBkZSMWUL6S5JJpcQUbWSJG2tRWJTWjpE5V0ZziQLlOfTdwffNzsXml9DaCm4YEqpTZjKpZijQjs6Vq3fO92WoejHJlBgP2WMTzpW1JjQ/HeGcLFcoVNxw3MYQhS1iAa1ZasIyZ5Se3ZoZI5CjiM2JGXGOJ0UozlEUMEDythdkR8ibrnzeukl+KLeTma8b7yZ5U9a+7fpm0wVJFSVzV/aHvesg+w67Luij/KK+8XPnqudy8xOehgRmu1/9y7tPnf//oHP7DTwNQwILV1ZuPz6etgff71+mbeUgg/UqdLgva8iggD17/LRwX66Xn8vtekFr+XB7/02pj9rc/nmk/Orhq5j539dzU7EPBcAwvAKFq0pbxwIAAA==","variations_safe_compressed_seed":"H4sIAAAAAAAAAJVVbW/iOBD+K5W/XtyNnVc43QcKtIu23bIFykm3VWWSIfjq2Mh2oKjiv5+cpLT0iu42H6LMzDPPvMZ+QcP+BHVf0PA5E1UOw2cLWjLRV3LJi1FuRvJaFahrdQUearTXqpgyXYBFXQR5AY/GsoUAtPfQMC+gATnO7YZOmMwX6tlJOTcOdgnMVhoM6v6FRkYJZqEFQT5aalaCQQ97D815blc9mX8FXqxsz4w1GJCWWa5kz1rNF5UFcyu/g7GQTzbFmO2EYvmJUL9MVyfh6pnD4s5mp2hr40yWlYWpZtmTma9Ajln2BLanNd+01QxaVy5gsjMWyl6WgTH9FWRPght7gv4jfsA1ZFbp3ciCrnO/EKphqKmapKWjmd/TXp5zh2FirJVz/8aFgHwKAkqweueCgvwYszRzWNxz2P63v4s2ybNVE/EUnWuiQ9XwH7NR3wHXzI3agnagFyRZCaiLshWTEgTy0IaJymku0d47mGGtstU7Y+A3z3uMBquZNCW39VY+Kvm45RoeLS9BVfax5EJwA5mSuXlHRR2LS/B2A1rzHIYbkNacrKm29oRQ22s3vgfvREUt9JW1Br9FveGZVkYt7fkcFhdabQ3o87FWVi2q5fns2815M/2xVksuwPM9Ev3+P5wss+b8WhUTy7T1fC/8Fae+KtcCLNR+TVMOIx+r9YQ5c/3msjjVoEulMzi4HdAeKo07P8DYmeRLpcsBN83fx5X8yo1VhWbl6X4WWlVrekjjaILv1yCHJauEvXLwz9BH4OqpPEn5sG/PgUuujb2r5Nv5NizXdve56d8tAVjqDNVsEyjK17PHgW96o54QqIuWTBgXfz4fHitMtl5WTuPX30XFdP4qbEDXnzdBHPWVhmPPvpIWpJ2A3vAMzIc4sPhzeqy64LI41rgCjzWHXZoZF7vV7z30FVhez+sFDaesQF30E212s/LH/ZUofku237NVurr6e3q/5mYdmTs5T+xo8GXSp4n4Qv0/fiIX73nN656hOeTeGaVnt5k9oz6NzqjfJbTrx2dXN9O6tkpaveur3A1rNkEecktcmVZT/9Ovt9Zo0OTlrjs0xneY+CmNEh8TTIg3xgMc0iBNMcUxOr7IGnRAojAlmODUq+W4EwVRgEOctHJCOgHFAY4bOQoJSQiOcaeVaUp9Hwc4bGRCgiggOGztcRomIe5gQhvRj0mCU0xJLYZRkAQ4xWmEPl/GtqIkSuPI5YQ+blkDCJPAJ/FbESTqdNIIExwdkuqQCNOo6Ymj7KRBEGLSlhXHfpJigoODlBy8Yz9NKSa4qSAM/NS1o7GFNAkdC0X7/T+fXvwedAgAAA==","variations_safe_seed_date":"13406337073000000","variations_safe_seed_fetch_time":"13406415347165014","variations_safe_seed_locale":"en-US","variations_safe_seed_milestone":141,"variations_safe_seed_permanent_consistency_country":"US","variations_safe_seed_session_consistency_country":"US","variations_safe_seed_signature":"","variations_seed_client_version_at_store":"141.0.3537.92","variations_seed_date":"13406415347000000","variations_seed_etag":"\"vyUmQVGlg+7wNch8hGjTVpisp5sRnW7tID/SC27l/20=\"","variations_seed_milestone":141,"variations_seed_runtime_etag":"\"r0ZLHeOGPMalUH3U4XNTW55J68NxZ3DAXQ2EnqGF8d0=\"","variations_seed_runtime_serial_number":"\"r0ZLHeOGPMalUH3U4XNTW55J68NxZ3DAXQ2EnqGF8d0=\"","variations_seed_serial_number":"\"vyUmQVGlg+7wNch8hGjTVpisp5sRnW7tID/SC27l/20=\"","variations_seed_signature":"","was":{"restarted":false}}
1
+ {"accessibility":{"captions":{"common_models_path":"","soda_translation_binary_path":""}},"autofill":{"ablation_seed":"Z0swlvRuUso="},"breadcrumbs":{"enabled":true,"enabled_time":"13405633918874559"},"default_browser":{"browser_name_enum":13},"desktop_session_duration_tracker":{"last_session_end_timestamp":"1761946947"},"domain_actions_config":"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","edge":{"manageability":{"edge_last_active_time":"13406420621285134"},"tab_stabs":{"closed_without_unfreeze_never_unfrozen":0,"closed_without_unfreeze_previously_unfrozen":0,"discard_without_unfreeze_never_unfrozen":0,"discard_without_unfreeze_previously_unfrozen":0},"tab_stats":{"frozen_daily":0,"unfrozen_daily":0}},"edge_ci":{"metrics_bookmark":"\u003CBookmarkList>\r\n\u003C/BookmarkList>","num_healthy_browsers_since_failure":3},"hardware_acceleration_mode_previous":true,"identity_combined_status":{"aad":2,"ad":1},"legacy":{"profile":{"name":{"migrated":true}}},"local":{"password_hash_data_list":[]},"network_time":{"network_time_mapping":{"local":1.76194174839255e+12,"network":1.761941748e+12,"ticks":90497411694.0,"uncertainty":1533873.0}},"optimization_guide":{"model_execution":{"last_usage_by_feature":{}},"model_store_metadata":{},"on_device":{"last_version":"141.0.3537.99","model_crash_count":0}},"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAACWsZDMa44HSK7x1dmjd6ipEAAAAB4AAABNAGkAYwByAG8AcwBvAGYAdAAgAEUAZABnAGUAAAAQZgAAAAEAACAAAABUDgRRN7xKnFSlG748Z6Z6L7wjJeDNkNRQbADhVGx2QwAAAAAOgAAAAAIAACAAAAAeRg4a0szaeRhhR4zyWUOXoN869md2k4OjiNxVsFyndDAAAABX6PEdpHgByL3/WreTcHkR0ONVUzobTbjrxDRAxz19Xogq6pDJx9NcYvkhB9tNZn5AAAAAAarRg3ZjWGAzXfUcMXhN7NcR2b98uvYED0Xpbs4YvVdt9Zen35uTQZXwlc7O4gtOB3Ve11sZlNLFCZ2DDrwa2g=="},"performance_intervention":{"last_daily_sample":"13406423851861134"},"phoenix":{"user_laf_toggle_state_static":2},"policy":{"last_statistics_update":"13406423851677887"},"profile":{"info_cache":{"Default":{"active_time":1761950336.814927,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_20","background_apps":false,"edge_account_cid":"","edge_account_environment":0,"edge_account_environment_string":"","edge_account_first_name":"","edge_account_last_name":"","edge_account_oid":"","edge_account_sovereignty":0,"edge_account_tenant_id":"","edge_account_type":0,"edge_non_signin_profile_type":1,"edge_profile_can_be_deleted":true,"edge_test_on_premises":false,"edge_wam_aad_for_app_account_type":0,"enterprise_label":"","force_signin_profile_locked":false,"gaia_given_name":"","gaia_id":"","gaia_name":"","hosted_domain":"","is_consented_primary_account":false,"is_ephemeral":false,"is_glic_eligible":false,"is_managed":0,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","metrics_bucket_index":1,"name":"Profile 1","signin.with_credential_provider":false,"user_name":""}},"last_active_profiles":[],"metrics":{"next_bucket_index":2},"profile_counts_reported":"13406423851529085","profiles_order":["Default"]},"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"profiles":{"edge":{"guided_switch_pref":[],"multiple_profiles_with_same_account":false},"edge_sso_info":{"msa_first_profile_key":"Default","msa_sso_algo_state":1},"signin_last_seen_version":"141.0.3537.99","signin_last_updated_time":1761950251.846855},"sentinel_creation_time":"0","session_id_generator_last_value":"1371521218","signin":{"active_accounts_last_emitted":"13406423851514275"},"startup_boost":{"last_browser_open_time":"13406423937409985"},"subresource_filter":{"ruleset_version":{"checksum":860988201,"content":"10.34.0.81","format":37}},"tab_stats":{"discards_expired":0,"discards_external":0,"discards_proactive":0,"discards_urgent":0,"last_daily_sample":"13406423851646032","max_tabs_per_window":1,"reloads_expired":0,"reloads_external":0,"reloads_urgent":0,"total_tab_count_max":1,"window_count_max":1},"telemetry_client":{"cloned_install":{"user_data_dir_id":15625462},"governance":{"last_dma_change_date":"13405633918837393","last_known_cps":0},"host_telclient_path":"QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxNaWNyb3NvZnRcRWRnZVdlYlZpZXdcQXBwbGljYXRpb25cMTQxLjAuMzUzNy45OVx0ZWxjbGllbnQuZGxs","sample_id":78116406},"uninstall_metrics":{"installation_date2":"1761160318"},"updateclientdata":{"apps":{"alpjnmnfbgfkmmpcfpejmmoebdndedno":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"28.0.0.1"},"eeobbhfgfagbclfofmgbdfoicabjdbkn":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"1.0.0.10"},"fgbafbciocncjfbbonhocjaohoknlaco":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"2025.9.29.1"},"fppmbhmldokgmleojlplaaodlkibgikh":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"1.15.0.1"},"hajigopbbjhghbfimgkfmpenfkclmohk":{"cohort":"","cohortname":"","installdate":-1},"jbfaflocpnkhbgcijpkiafdpbjkedane":{"cohort":"","cohortname":"","installdate":-1},"kpfehajjjbbcifeehjgfgnabifknmdad":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"120.0.6050.0"},"ldfkbgjbencjpgjfleiooeldhjdapggh":{"cohort":"","cohortname":"","installdate":-1},"mcfjlbnicoclaecapilmleaelokfnijm":{"cohort":"","cohortname":"","installdate":-1},"ndikpojcjlepofdkaaldkinkjbeeebkl":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"10.34.0.81"},"oankkpibpaokgecfckkdkgaoafllipag":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"6498.2025.9.4"},"ohckeflnhegojcjlcpbfpciadgikcohk":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"0.0.1.7"},"ojblfafjmiikbkepnnolpgbbhejhlcim":{"cohort":"","cohortname":"","installdate":-1},"pghocgajpebopihickglahgebcmkcekh":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"3.0.0.16"},"pmagihnlncbcefglppponlgakiphldeh":{"cohort":"","cohortname":"","installdate":-1}}},"updateclientlastupdatecheckerror":0,"updateclientlastupdatecheckerrorcategory":0,"updateclientlastupdatecheckerrorextracode1":0,"user_experience_metrics":{"chrome_download_action_count":0,"client_id2":"{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}C:\\Users\\Bob1s:38D38C2A-D364-45F8-BC50-333D72CBE58F","client_id_timestamp":"1761160318","diagnostics":{"last_data_collection_level_on_launch":3},"initial_logs2":[],"last_seen":{"BrowserMetrics":"13406417962973043","CrashpadMetrics":"13406423924864504"},"limited_entropy_randomization_source":"AD9091DE8790396A4D0B7389E394605A","log_finalized_record_id":81,"log_record_id":81,"low_entropy_source3":5625,"machine_id":4256001,"ongoing_logs2":[],"payload_counter":2,"pseudo_low_entropy_source":1574,"reporting_enabled":true,"reset_client_id_deterministic":true,"session_id":32,"stability":{"browser_last_live_timestamp":"13406423937535661","exited_cleanly":true,"saved_system_profile":"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","saved_system_profile_hash":"E0508EBA9FBBC52ACC94DA30A80F17B55E36FCDC","stats_buildtime":"1761167620","stats_version":"141.0.3537.99-64","system_crash_count":0},"unsent_log_metadata":{"initial_logs":{"sent_samples_count":0,"unsent_persisted_size_in_kb":0,"unsent_samples_count":0},"ongoing_logs":{"sent_samples_count":0,"unsent_persisted_size_in_kb":0,"unsent_samples_count":0}}},"variations_compressed_seed":"safe_seed_content","variations_config_ids":"{\"ECS\":\"P-R-1082570-1-11,P-D-42388-2-6\",\"EdgeConfig\":\"P-R-1315481-1-8,P-R-1695353-4-7,P-R-1671932-3-6,P-R-1541171-6-9,P-R-1528200-3-4,P-R-1113531-4-9,P-R-68474-9-12,P-R-60617-8-21,P-R-45373-8-85\",\"EdgeFirstRunConfig\":\"P-R-1075865-4-7\",\"Segmentation\":\"P-R-1473016-1-8,P-R-1159985-1-5,P-R-1113915-25-11,P-R-1098334-1-6,P-R-66078-1-3,P-R-66077-1-5,P-R-60882-1-2,P-R-43082-3-5,P-R-42744-1-2\"}","variations_country":"US","variations_crash_streak":0,"variations_failed_to_fetch_seed_streak":1,"variations_google_groups":{"Default":[]},"variations_last_fetch_time":"13406415347165014","variations_last_runtime_fetch_time":"13406415348603522","variations_permanent_consistency_country":["141.0.3537.99","US"],"variations_runtime_compressed_seed":"H4sIAAAAAAAAAG1Q0W7bMBD7leCefYCkk2TJwB6KOGk6bF3WNFjRuQ9urBnGEnmLHWBF4H8vZGXJsPaRIHlH8gjT1v9o6pu8gwyOBcymqwKyApZ4h5wZoVKGHDlPlpijFGQMCtQFJAXMqtrl7a5s/NWmb1rf/WO0JKQKRpucLmkmkSOlI04NMR1oEyFpMcLIauJaoUShR6hISEKBkZSMWUL6S5JJpcQUbWSJG2tRWJTWjpE5V0ZziQLlOfTdwffNzsXml9DaCm4YEqpTZjKpZijQjs6Vq3fO92WoejHJlBgP2WMTzpW1JjQ/HeGcLFcoVNxw3MYQhS1iAa1ZasIyZ5Se3ZoZI5CjiM2JGXGOJ0UozlEUMEDythdkR8ibrnzeukl+KLeTma8b7yZ5U9a+7fpm0wVJFSVzV/aHvesg+w67Luij/KK+8XPnqudy8xOehgRmu1/9y7tPnf//oHP7DTwNQwILV1ZuPz6etgff71+mbeUgg/UqdLgva8iggD17/LRwX66Xn8vtekFr+XB7/02pj9rc/nmk/Orhq5j539dzU7EPBcAwvAKFq0pbxwIAAA==","variations_safe_compressed_seed":"H4sIAAAAAAAAAJVVbW/iOBD+K5W/XtyNnVc43QcKtIu23bIFykm3VWWSIfjq2Mh2oKjiv5+cpLT0iu42H6LMzDPPvMZ+QcP+BHVf0PA5E1UOw2cLWjLRV3LJi1FuRvJaFahrdQUearTXqpgyXYBFXQR5AY/GsoUAtPfQMC+gATnO7YZOmMwX6tlJOTcOdgnMVhoM6v6FRkYJZqEFQT5aalaCQQ97D815blc9mX8FXqxsz4w1GJCWWa5kz1rNF5UFcyu/g7GQTzbFmO2EYvmJUL9MVyfh6pnD4s5mp2hr40yWlYWpZtmTma9Ajln2BLanNd+01QxaVy5gsjMWyl6WgTH9FWRPght7gv4jfsA1ZFbp3ciCrnO/EKphqKmapKWjmd/TXp5zh2FirJVz/8aFgHwKAkqweueCgvwYszRzWNxz2P63v4s2ybNVE/EUnWuiQ9XwH7NR3wHXzI3agnagFyRZCaiLshWTEgTy0IaJymku0d47mGGtstU7Y+A3z3uMBquZNCW39VY+Kvm45RoeLS9BVfax5EJwA5mSuXlHRR2LS/B2A1rzHIYbkNacrKm29oRQ22s3vgfvREUt9JW1Br9FveGZVkYt7fkcFhdabQ3o87FWVi2q5fns2815M/2xVksuwPM9Ev3+P5wss+b8WhUTy7T1fC/8Fae+KtcCLNR+TVMOIx+r9YQ5c/3msjjVoEulMzi4HdAeKo07P8DYmeRLpcsBN83fx5X8yo1VhWbl6X4WWlVrekjjaILv1yCHJauEvXLwz9BH4OqpPEn5sG/PgUuujb2r5Nv5NizXdve56d8tAVjqDNVsEyjK17PHgW96o54QqIuWTBgXfz4fHitMtl5WTuPX30XFdP4qbEDXnzdBHPWVhmPPvpIWpJ2A3vAMzIc4sPhzeqy64LI41rgCjzWHXZoZF7vV7z30FVhez+sFDaesQF30E212s/LH/ZUofku237NVurr6e3q/5mYdmTs5T+xo8GXSp4n4Qv0/fiIX73nN656hOeTeGaVnt5k9oz6NzqjfJbTrx2dXN9O6tkpaveur3A1rNkEecktcmVZT/9Ovt9Zo0OTlrjs0xneY+CmNEh8TTIg3xgMc0iBNMcUxOr7IGnRAojAlmODUq+W4EwVRgEOctHJCOgHFAY4bOQoJSQiOcaeVaUp9Hwc4bGRCgiggOGztcRomIe5gQhvRj0mCU0xJLYZRkAQ4xWmEPl/GtqIkSuPI5YQ+blkDCJPAJ/FbESTqdNIIExwdkuqQCNOo6Ymj7KRBEGLSlhXHfpJigoODlBy8Yz9NKSa4qSAM/NS1o7GFNAkdC0X7/T+fXvwedAgAAA==","variations_safe_seed_date":"13406337073000000","variations_safe_seed_fetch_time":"13406415347165014","variations_safe_seed_locale":"en-US","variations_safe_seed_milestone":141,"variations_safe_seed_permanent_consistency_country":"US","variations_safe_seed_session_consistency_country":"US","variations_safe_seed_signature":"","variations_seed_client_version_at_store":"141.0.3537.92","variations_seed_date":"13406415347000000","variations_seed_etag":"\"vyUmQVGlg+7wNch8hGjTVpisp5sRnW7tID/SC27l/20=\"","variations_seed_milestone":141,"variations_seed_runtime_etag":"\"r0ZLHeOGPMalUH3U4XNTW55J68NxZ3DAXQ2EnqGF8d0=\"","variations_seed_runtime_serial_number":"\"r0ZLHeOGPMalUH3U4XNTW55J68NxZ3DAXQ2EnqGF8d0=\"","variations_seed_serial_number":"\"vyUmQVGlg+7wNch8hGjTVpisp5sRnW7tID/SC27l/20=\"","variations_seed_signature":"","was":{"restarted":false}}
@@ -138,207 +138,17 @@ fn generate_html(options: &MessageBoxOptions) -> String {
138
138
  String::new()
139
139
  };
140
140
 
141
- format!(
142
- r#"<!DOCTYPE html>
143
- <html>
144
- <head>
145
- <meta charset="UTF-8">
146
- <style>
147
- body {{
148
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
149
- padding: 20px;
150
- margin: 0;
151
- display: flex;
152
- flex-direction: column;
153
- min-height: 100vh;
154
- box-sizing: border-box;
155
- }}
156
- #content {{
157
- flex: 0 1 auto;
158
- overflow: auto;
159
- margin-bottom: 10px;
160
- }}
161
- #inputField {{
162
- width: 100%;
163
- padding: 8px 12px;
164
- margin-bottom: 10px;
165
- border: 2px solid #0066cc;
166
- border-radius: 4px;
167
- font-size: 14px;
168
- box-sizing: border-box;
169
- outline: none;
170
- }}
171
- #inputField:focus {{
172
- border-color: #0052a3;
173
- box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);
174
- }}
175
- #inputField::placeholder {{
176
- color: #999;
177
- }}
178
- box-sizing: border-box;
179
- }}
180
- #buttons {{
181
- display: flex;
182
- gap: 10px;
183
- justify-content: flex-end;
184
- }}
185
- button {{
186
- padding: 8px 20px;
187
- border: none;
188
- border-radius: 4px;
189
- background-color: #0066cc;
190
- color: white;
191
- font-size: 14px;
192
- cursor: pointer;
193
- min-width: 80px;
194
- }}
195
- button:hover {{
196
- background-color: #0052a3;
197
- }}
198
- /* Make OK buttons green */
199
- button.ok-button {{
200
- background-color: #28a745;
201
- }}
202
- button.ok-button:hover {{
203
- background-color: #218838;
204
- }}
205
- </style>
206
- </head>
207
- <body>
208
- <div id="content">
209
- {}
210
- </div>
211
- {}
212
- <div id="buttons">
213
- {}
214
- </div>
215
- <script>
216
- function sendResult(button) {{
217
- const result = {{ button: button }};
218
-
219
- // Get input field value if present
220
- const inputField = document.getElementById('inputField');
221
- if (inputField) {{
222
- result.value = inputField.value;
223
- }}
224
-
225
- // Get all form data if forms are present
226
- const forms = document.querySelectorAll('form');
227
- if (forms.length > 0) {{
228
- const formData = {{}};
229
- forms.forEach(form => {{
230
- const data = new FormData(form);
231
- data.forEach((value, key) => {{
232
- formData[key] = value;
233
- }});
234
- }});
235
- if (Object.keys(formData).length > 0) {{
236
- result.form = formData;
237
- }}
238
- }}
239
-
240
- window.ipc.postMessage(JSON.stringify(result));
241
- }}
242
-
243
- // Auto-size window to content
244
- const autoSize = {};
245
- if (autoSize) {{
246
- window.addEventListener('DOMContentLoaded', function() {{
247
- // Wait a tick for content to render
248
- setTimeout(() => {{
249
- const content = document.getElementById('content');
250
- const buttons = document.getElementById('buttons');
251
- const inputField = document.getElementById('inputField');
252
-
253
- // Calculate required height
254
- let contentHeight = content.scrollHeight;
255
- let buttonsHeight = buttons.offsetHeight;
256
- let inputHeight = inputField ? inputField.offsetHeight + 15 : 0;
257
- let padding = 40; // body padding
258
-
259
- let totalHeight = contentHeight + buttonsHeight + inputHeight + padding;
260
-
261
- // Calculate required width (estimate based on content)
262
- let contentWidth = Math.max(
263
- content.scrollWidth,
264
- buttons.offsetWidth
265
- );
266
- let totalWidth = Math.min(Math.max(contentWidth + 40, 400), 1200);
267
-
268
- // Constrain to reasonable bounds
269
- totalHeight = Math.min(Math.max(totalHeight, 150), 800);
270
-
271
- // Send resize message
272
- window.ipc.postMessage(JSON.stringify({{
273
- _resize: true,
274
- width: totalWidth,
275
- height: totalHeight
276
- }}));
277
- }}, 50);
278
- }});
279
- }}
280
-
281
- // Set initial zoom level if specified
282
- const initialZoom = {};
283
- if (initialZoom) {{
284
- zoomLevel = initialZoom / 100.0;
285
- document.body.style.zoom = zoomLevel;
286
- }}
287
-
288
- // Zoom support with mouse wheel
289
- let zoomLevel = 1.0;
290
- document.addEventListener('wheel', function(e) {{
291
- // Only zoom when Ctrl is held (or Cmd on Mac)
292
- if (e.ctrlKey || e.metaKey) {{
293
- e.preventDefault();
294
-
295
- // Zoom in/out based on wheel direction
296
- if (e.deltaY < 0) {{
297
- zoomLevel = Math.min(zoomLevel + 0.1, 3.0); // Max 300%
298
- }} else {{
299
- zoomLevel = Math.max(zoomLevel - 0.1, 0.5); // Min 50%
300
- }}
301
-
302
- document.body.style.zoom = zoomLevel;
303
- }}
304
- }}, {{ passive: false }});
305
-
306
- document.addEventListener('keydown', function(e) {{
307
- if (e.key === 'Escape') {{
308
- const result = {{ button: '{}', dismissed: true }};
309
- window.ipc.postMessage(JSON.stringify(result));
310
- }} else if (e.key === 'Enter') {{
311
- const buttons = document.querySelectorAll('button');
312
- if (buttons.length > 0) {{
313
- buttons[buttons.length - 1].click();
314
- }}
315
- }} else if ((e.ctrlKey || e.metaKey) && e.key === '0') {{
316
- // Reset zoom with Ctrl+0
317
- e.preventDefault();
318
- zoomLevel = 1.0;
319
- document.body.style.zoom = zoomLevel;
320
- }} else if ((e.ctrlKey || e.metaKey) && (e.key === '+' || e.key === '=')) {{
321
- // Zoom in with Ctrl++
322
- e.preventDefault();
323
- zoomLevel = Math.min(zoomLevel + 0.1, 3.0);
324
- document.body.style.zoom = zoomLevel;
325
- }} else if ((e.ctrlKey || e.metaKey) && e.key === '-') {{
326
- // Zoom out with Ctrl+-
327
- e.preventDefault();
328
- zoomLevel = Math.max(zoomLevel - 0.1, 0.5);
329
- document.body.style.zoom = zoomLevel;
330
- }}
331
- }});
332
- </script>
333
- </body>
334
- </html>"#,
335
- html_content,
336
- input_html,
337
- buttons_html,
338
- if options.auto_size { "true" } else { "false" },
339
- options.zoom_percent.unwrap_or(100.0),
340
- options.buttons.first().unwrap_or(&"Cancel".to_string())
341
- )
141
+ // Load HTML template and replace placeholders
142
+ let template = include_str!("template.html");
143
+ let html = template
144
+ .replace("{CONTENT}", &html_content)
145
+ .replace("{INPUT}", &input_html)
146
+ .replace("{BUTTONS}", &buttons_html)
147
+ .replace("{AUTO_SIZE}", if options.auto_size { "true" } else { "false" })
148
+ .replace("{ZOOM_PERCENT}", &options.zoom_percent.unwrap_or(100.0).to_string())
149
+ .replace("{DEFAULT_BUTTON}", options.buttons.first().unwrap_or(&"Cancel".to_string()));
150
+
151
+ html
342
152
  }
343
153
 
344
154
  fn escape_html(s: &str) -> String {
@@ -356,24 +166,18 @@ fn main() {
356
166
  .read_to_string(&mut input)
357
167
  .expect("Failed to read stdin");
358
168
 
359
- let mut options: MessageBoxOptions =
169
+ let options: MessageBoxOptions =
360
170
  serde_json::from_str(&input).expect("Failed to parse JSON input");
361
171
 
362
- // Adjust default size for URLs (more browser-like)
363
- if options.url.is_some() {
364
- // If width/height are still at defaults (600x400), upgrade to browser-like size
365
- if options.width == 600 && options.height == 400 {
366
- options.width = 1024;
367
- options.height = 768;
368
- }
369
- }
370
-
371
172
  // Create event loop and window
372
173
  let event_loop = EventLoop::new();
373
174
 
374
175
  // Calculate position with optional screen offset (Windows only)
375
176
  let final_position = if let Some(ref pos) = options.pos {
177
+ #[cfg(target_os = "windows")]
376
178
  let mut x = pos.x;
179
+ #[cfg(not(target_os = "windows"))]
180
+ let x = pos.x;
377
181
  let y = pos.y;
378
182
 
379
183
  // On Windows, calculate screen offset if screen number provided
@@ -0,0 +1,191 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <style>
6
+ body {
7
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
8
+ padding: 20px;
9
+ margin: 0;
10
+ display: flex;
11
+ flex-direction: column;
12
+ min-height: 100vh;
13
+ box-sizing: border-box;
14
+ }
15
+ #content {
16
+ flex: 0 1 auto;
17
+ overflow: auto;
18
+ margin-bottom: 10px;
19
+ }
20
+ #inputField {
21
+ width: 100%;
22
+ padding: 8px 12px;
23
+ margin-bottom: 10px;
24
+ border: 2px solid #0066cc;
25
+ border-radius: 4px;
26
+ font-size: 14px;
27
+ box-sizing: border-box;
28
+ outline: none;
29
+ }
30
+ #inputField:focus {
31
+ border-color: #0052a3;
32
+ box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);
33
+ }
34
+ #inputField::placeholder {
35
+ color: #999;
36
+ }
37
+ #buttons {
38
+ display: flex;
39
+ gap: 10px;
40
+ justify-content: flex-end;
41
+ }
42
+ button {
43
+ padding: 8px 20px;
44
+ border: none;
45
+ border-radius: 4px;
46
+ background-color: #0066cc;
47
+ color: white;
48
+ font-size: 14px;
49
+ cursor: pointer;
50
+ min-width: 80px;
51
+ }
52
+ button:hover {
53
+ background-color: #0052a3;
54
+ }
55
+ /* Make OK buttons green */
56
+ button.ok-button {
57
+ background-color: #28a745;
58
+ }
59
+ button.ok-button:hover {
60
+ background-color: #218838;
61
+ }
62
+ </style>
63
+ </head>
64
+ <body>
65
+ <div id="content">
66
+ {CONTENT}
67
+ </div>
68
+ {INPUT}
69
+ <div id="buttons">
70
+ {BUTTONS}
71
+ </div>
72
+ <script>
73
+ function sendResult(button) {
74
+ const result = { button: button };
75
+
76
+ // Get input field value if present
77
+ const inputField = document.getElementById('inputField');
78
+ if (inputField) {
79
+ result.value = inputField.value;
80
+ }
81
+
82
+ // Get all form data if forms are present
83
+ const forms = document.querySelectorAll('form');
84
+ if (forms.length > 0) {
85
+ const formData = {};
86
+ forms.forEach(form => {
87
+ const data = new FormData(form);
88
+ data.forEach((value, key) => {
89
+ formData[key] = value;
90
+ });
91
+ });
92
+ if (Object.keys(formData).length > 0) {
93
+ result.form = formData;
94
+ }
95
+ }
96
+
97
+ window.ipc.postMessage(JSON.stringify(result));
98
+ }
99
+
100
+ // Auto-size window to content
101
+ const autoSize = {AUTO_SIZE};
102
+ if (autoSize) {
103
+ window.addEventListener('DOMContentLoaded', function() {
104
+ // Wait a tick for content to render
105
+ setTimeout(() => {
106
+ const content = document.getElementById('content');
107
+ const buttons = document.getElementById('buttons');
108
+ const inputField = document.getElementById('inputField');
109
+
110
+ // Calculate required height
111
+ let contentHeight = content.scrollHeight;
112
+ let buttonsHeight = buttons.offsetHeight;
113
+ let inputHeight = inputField ? inputField.offsetHeight + 15 : 0;
114
+ let padding = 40; // body padding
115
+
116
+ let totalHeight = contentHeight + buttonsHeight + inputHeight + padding;
117
+
118
+ // Calculate required width (estimate based on content)
119
+ let contentWidth = Math.max(
120
+ content.scrollWidth,
121
+ buttons.offsetWidth
122
+ );
123
+ let totalWidth = Math.min(Math.max(contentWidth + 40, 400), 1200);
124
+
125
+ // Constrain to reasonable bounds
126
+ totalHeight = Math.min(Math.max(totalHeight, 150), 800);
127
+
128
+ // Send resize message
129
+ window.ipc.postMessage(JSON.stringify({
130
+ _resize: true,
131
+ width: totalWidth,
132
+ height: totalHeight
133
+ }));
134
+ }, 50);
135
+ });
136
+ }
137
+
138
+ // Set initial zoom level if specified
139
+ const initialZoom = {ZOOM_PERCENT};
140
+ if (initialZoom) {
141
+ zoomLevel = initialZoom / 100.0;
142
+ document.body.style.zoom = zoomLevel;
143
+ }
144
+
145
+ // Zoom support with mouse wheel
146
+ let zoomLevel = 1.0;
147
+ document.addEventListener('wheel', function(e) {
148
+ // Only zoom when Ctrl is held (or Cmd on Mac)
149
+ if (e.ctrlKey || e.metaKey) {
150
+ e.preventDefault();
151
+
152
+ // Zoom in/out based on wheel direction
153
+ if (e.deltaY < 0) {
154
+ zoomLevel = Math.min(zoomLevel + 0.1, 3.0); // Max 300%
155
+ } else {
156
+ zoomLevel = Math.max(zoomLevel - 0.1, 0.5); // Min 50%
157
+ }
158
+
159
+ document.body.style.zoom = zoomLevel;
160
+ }
161
+ }, { passive: false });
162
+
163
+ document.addEventListener('keydown', function(e) {
164
+ if (e.key === 'Escape') {
165
+ const result = { button: '{DEFAULT_BUTTON}', dismissed: true };
166
+ window.ipc.postMessage(JSON.stringify(result));
167
+ } else if (e.key === 'Enter') {
168
+ const buttons = document.querySelectorAll('button');
169
+ if (buttons.length > 0) {
170
+ buttons[buttons.length - 1].click();
171
+ }
172
+ } else if ((e.ctrlKey || e.metaKey) && e.key === '0') {
173
+ // Reset zoom with Ctrl+0
174
+ e.preventDefault();
175
+ zoomLevel = 1.0;
176
+ document.body.style.zoom = zoomLevel;
177
+ } else if ((e.ctrlKey || e.metaKey) && (e.key === '+' || e.key === '=')) {
178
+ // Zoom in with Ctrl++
179
+ e.preventDefault();
180
+ zoomLevel = Math.min(zoomLevel + 0.1, 3.0);
181
+ document.body.style.zoom = zoomLevel;
182
+ } else if ((e.ctrlKey || e.metaKey) && e.key === '-') {
183
+ // Zoom out with Ctrl+-
184
+ e.preventDefault();
185
+ zoomLevel = Math.max(zoomLevel - 0.1, 0.5);
186
+ document.body.style.zoom = zoomLevel;
187
+ }
188
+ });
189
+ </script>
190
+ </body>
191
+ </html>
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/msger",
3
- "version": "0.1.59",
3
+ "version": "0.1.61",
4
4
  "description": "Fast, lightweight, cross-platform message box - Rust-powered alternative to msgview",
5
5
  "type": "module",
6
6
  "main": "./index.js",
package/shower.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"shower.d.ts","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAMA,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,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,CAkH1F"}
1
+ {"version":3,"file":"shower.d.ts","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAMA,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,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,CAmI1F"}
package/shower.js CHANGED
@@ -96,7 +96,23 @@ export async function showMessageBox(options) {
96
96
  if (optionsToSend.autoSize === undefined && !optionsToSend.size) {
97
97
  optionsToSend.autoSize = true;
98
98
  }
99
- child.stdin.write(JSON.stringify(optionsToSend));
99
+ // Flatten size object for Rust binary (expects width/height as top-level fields)
100
+ const rustOptions = { ...optionsToSend };
101
+ if (rustOptions.size) {
102
+ rustOptions.width = rustOptions.size.width;
103
+ rustOptions.height = rustOptions.size.height;
104
+ delete rustOptions.size;
105
+ }
106
+ if (rustOptions.pos) {
107
+ // Rust expects pos fields directly
108
+ rustOptions.pos = {
109
+ x: rustOptions.pos.x,
110
+ y: rustOptions.pos.y,
111
+ screen: rustOptions.pos.screen
112
+ };
113
+ }
114
+ const jsonToSend = JSON.stringify(rustOptions);
115
+ child.stdin.write(jsonToSend);
100
116
  child.stdin.end();
101
117
  // If detached, resolve immediately after sending options
102
118
  if (options.detach) {
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
@@ -155,7 +155,24 @@ export async function showMessageBox(options: MessageBoxOptions): Promise<Messag
155
155
  optionsToSend.autoSize = true;
156
156
  }
157
157
 
158
- child.stdin.write(JSON.stringify(optionsToSend));
158
+ // Flatten size object for Rust binary (expects width/height as top-level fields)
159
+ const rustOptions: any = { ...optionsToSend };
160
+ if (rustOptions.size) {
161
+ rustOptions.width = rustOptions.size.width;
162
+ rustOptions.height = rustOptions.size.height;
163
+ delete rustOptions.size;
164
+ }
165
+ if (rustOptions.pos) {
166
+ // Rust expects pos fields directly
167
+ rustOptions.pos = {
168
+ x: rustOptions.pos.x,
169
+ y: rustOptions.pos.y,
170
+ screen: rustOptions.pos.screen
171
+ };
172
+ }
173
+
174
+ const jsonToSend = JSON.stringify(rustOptions);
175
+ child.stdin.write(jsonToSend);
159
176
  child.stdin.end();
160
177
 
161
178
  // If detached, resolve immediately after sending options
package/test-size.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-size.d.ts","sourceRoot":"","sources":["test-size.js"],"names":[],"mappings":""}