pake-cli 3.6.0 → 3.6.2

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.
@@ -0,0 +1,43 @@
1
+ {
2
+ "windows": [
3
+ {
4
+ "url": "https://github.com",
5
+ "url_type": "web",
6
+ "hide_title_bar": true,
7
+ "fullscreen": false,
8
+ "width": 1200,
9
+ "height": 800,
10
+ "resizable": true,
11
+ "always_on_top": false,
12
+ "dark_mode": false,
13
+ "activation_shortcut": "",
14
+ "disabled_web_shortcuts": false,
15
+ "hide_on_close": true,
16
+ "incognito": false,
17
+ "enable_wasm": false,
18
+ "enable_drag_drop": false,
19
+ "maximize": false,
20
+ "start_to_tray": false,
21
+ "force_internal_navigation": false,
22
+ "title": null,
23
+ "zoom": 100,
24
+ "min_width": 0,
25
+ "min_height": 0,
26
+ "ignore_certificate_errors": false
27
+ }
28
+ ],
29
+ "user_agent": {
30
+ "macos": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Safari/605.1.15",
31
+ "linux": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
32
+ "windows": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
33
+ },
34
+ "system_tray": {
35
+ "macos": false,
36
+ "linux": true,
37
+ "windows": true
38
+ },
39
+ "system_tray_path": "png/icon_512.png",
40
+ "inject": [],
41
+ "proxy_url": "",
42
+ "multi_instance": false
43
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "productName": "GitHubMultiArch",
3
+ "identifier": "com.pake.3097fc",
4
+ "version": "1.0.0",
5
+ "app": {
6
+ "withGlobalTauri": true,
7
+ "security": {
8
+ "headers": {},
9
+ "csp": null
10
+ }
11
+ },
12
+ "build": {
13
+ "frontendDist": "../dist"
14
+ },
15
+ "bundle": {
16
+ "icon": [
17
+ "icons/githubmultiarch.icns"
18
+ ],
19
+ "active": true,
20
+ "targets": [
21
+ "app"
22
+ ],
23
+ "resources": [
24
+ "icons/githubmultiarch.icns"
25
+ ]
26
+ }
27
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "productName": "weekly",
3
+ "bundle": {
4
+ "icon": ["png/weekly_512.png"],
5
+ "active": true,
6
+ "linux": {
7
+ "deb": {
8
+ "depends": ["curl", "wget"]
9
+ }
10
+ },
11
+ "targets": ["deb", "appimage"]
12
+ }
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "bundle": {
3
+ "icon": [
4
+ "icons/githubmultiarch.icns"
5
+ ],
6
+ "active": true,
7
+ "targets": [
8
+ "app"
9
+ ],
10
+ "resources": [
11
+ "icons/githubmultiarch.icns"
12
+ ]
13
+ }
14
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "bundle": {
3
+ "icon": ["png/weekly_256.ico", "png/weekly_32.ico"],
4
+ "active": true,
5
+ "resources": ["png/weekly_32.ico"],
6
+ "targets": ["msi"],
7
+ "windows": {
8
+ "digestAlgorithm": "sha256",
9
+ "wix": {
10
+ "language": ["en-US"],
11
+ "template": "assets/main.wxs"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -2588,7 +2588,7 @@ dependencies = [
2588
2588
 
2589
2589
  [[package]]
2590
2590
  name = "pake"
2591
- version = "3.6.0"
2591
+ version = "3.6.1"
2592
2592
  dependencies = [
2593
2593
  "serde",
2594
2594
  "serde_json",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "pake"
3
- version = "3.6.0"
3
+ version = "3.6.1"
4
4
  description = "🤱🏻 Turn any webpage into a desktop app with Rust."
5
5
  authors = ["Tw93"]
6
6
  license = "MIT"
Binary file
Binary file
@@ -50,11 +50,11 @@ pub async fn download_file(app: AppHandle, params: DownloadFileParams) -> Result
50
50
  .await;
51
51
 
52
52
  match response {
53
- Ok(res) => {
54
- let bytes = res.bytes().await.unwrap();
55
-
53
+ Ok(mut res) => {
56
54
  let mut file = File::create(file_path).unwrap();
57
- file.write_all(&bytes).unwrap();
55
+ while let Some(chunk) = res.chunk().await.unwrap() {
56
+ file.write_all(&chunk).unwrap();
57
+ }
58
58
  show_toast(
59
59
  &window,
60
60
  &get_download_message_with_lang(MessageType::Success, params.language.clone()),
@@ -117,9 +117,9 @@ pub fn send_notification(app: AppHandle, params: NotificationParams) -> Result<(
117
117
 
118
118
  #[command]
119
119
  pub async fn update_theme_mode(app: AppHandle, mode: String) {
120
- let window = app.get_webview_window("pake").unwrap();
121
120
  #[cfg(target_os = "macos")]
122
121
  {
122
+ let window = app.get_webview_window("pake").unwrap();
123
123
  let theme = if mode == "dark" {
124
124
  Theme::Dark
125
125
  } else {
@@ -127,6 +127,11 @@ pub async fn update_theme_mode(app: AppHandle, mode: String) {
127
127
  };
128
128
  let _ = window.set_theme(Some(theme));
129
129
  }
130
+ #[cfg(not(target_os = "macos"))]
131
+ {
132
+ let _ = app;
133
+ let _ = mode;
134
+ }
130
135
  }
131
136
 
132
137
  #[command]
@@ -0,0 +1,281 @@
1
+ use tauri::menu::{AboutMetadata, Menu, MenuItem, PredefinedMenuItem, Submenu};
2
+ use tauri::{AppHandle, Manager, Wry};
3
+ use tauri_plugin_opener::OpenerExt;
4
+
5
+ pub fn get_menu(app: &AppHandle<Wry>) -> Menu<Wry> {
6
+ let pake_version = env!("CARGO_PKG_VERSION");
7
+ let pake_menu_item_title = format!("Built with Pake V{}", pake_version);
8
+
9
+ // App Menu (macOS specific, e.g., "Pake")
10
+ let app_menu = Submenu::new(app, "Pake", true).unwrap();
11
+ let about_metadata = AboutMetadata::default();
12
+ app_menu
13
+ .append(&PredefinedMenuItem::about(app, Some("Pake"), Some(about_metadata)).unwrap())
14
+ .unwrap();
15
+ app_menu
16
+ .append(&PredefinedMenuItem::separator(app).unwrap())
17
+ .unwrap();
18
+ app_menu
19
+ .append(&PredefinedMenuItem::services(app, None).unwrap())
20
+ .unwrap();
21
+ app_menu
22
+ .append(&PredefinedMenuItem::separator(app).unwrap())
23
+ .unwrap();
24
+ app_menu
25
+ .append(&PredefinedMenuItem::hide(app, None).unwrap())
26
+ .unwrap();
27
+ app_menu
28
+ .append(&PredefinedMenuItem::hide_others(app, None).unwrap())
29
+ .unwrap();
30
+ app_menu
31
+ .append(&PredefinedMenuItem::show_all(app, None).unwrap())
32
+ .unwrap();
33
+ app_menu
34
+ .append(&PredefinedMenuItem::separator(app).unwrap())
35
+ .unwrap();
36
+ app_menu
37
+ .append(&PredefinedMenuItem::quit(app, None).unwrap())
38
+ .unwrap();
39
+
40
+ // File Menu
41
+ let file_menu = Submenu::new(app, "File", true).unwrap();
42
+ file_menu
43
+ .append(&PredefinedMenuItem::close_window(app, None).unwrap())
44
+ .unwrap();
45
+ file_menu
46
+ .append(&PredefinedMenuItem::separator(app).unwrap())
47
+ .unwrap();
48
+ file_menu
49
+ .append(
50
+ &MenuItem::with_id(
51
+ app,
52
+ "clear_cache_restart",
53
+ "Clear Cache & Restart",
54
+ true,
55
+ Some("CmdOrCtrl+Shift+Backspace"),
56
+ )
57
+ .unwrap(),
58
+ )
59
+ .unwrap();
60
+
61
+ // Edit Menu
62
+ let edit_menu = Submenu::new(app, "Edit", true).unwrap();
63
+ edit_menu
64
+ .append(&PredefinedMenuItem::undo(app, None).unwrap())
65
+ .unwrap();
66
+ edit_menu
67
+ .append(&PredefinedMenuItem::redo(app, None).unwrap())
68
+ .unwrap();
69
+ edit_menu
70
+ .append(&PredefinedMenuItem::separator(app).unwrap())
71
+ .unwrap();
72
+ edit_menu
73
+ .append(&PredefinedMenuItem::cut(app, None).unwrap())
74
+ .unwrap();
75
+ edit_menu
76
+ .append(&PredefinedMenuItem::copy(app, None).unwrap())
77
+ .unwrap();
78
+ edit_menu
79
+ .append(&PredefinedMenuItem::paste(app, None).unwrap())
80
+ .unwrap();
81
+ edit_menu
82
+ .append(&PredefinedMenuItem::select_all(app, None).unwrap())
83
+ .unwrap();
84
+ edit_menu
85
+ .append(&PredefinedMenuItem::separator(app).unwrap())
86
+ .unwrap();
87
+ edit_menu
88
+ .append(&MenuItem::with_id(app, "copy_url", "Copy URL", true, Some("CmdOrCtrl+L")).unwrap())
89
+ .unwrap();
90
+
91
+ // View Menu
92
+ let view_menu = Submenu::new(app, "View", true).unwrap();
93
+ view_menu
94
+ .append(&MenuItem::with_id(app, "reload", "Reload", true, Some("CmdOrCtrl+R")).unwrap())
95
+ .unwrap();
96
+ view_menu
97
+ .append(&PredefinedMenuItem::separator(app).unwrap())
98
+ .unwrap();
99
+ view_menu
100
+ .append(&MenuItem::with_id(app, "zoom_in", "Zoom In", true, Some("CmdOrCtrl+=")).unwrap())
101
+ .unwrap();
102
+ view_menu
103
+ .append(&MenuItem::with_id(app, "zoom_out", "Zoom Out", true, Some("CmdOrCtrl+-")).unwrap())
104
+ .unwrap();
105
+ view_menu
106
+ .append(
107
+ &MenuItem::with_id(app, "zoom_reset", "Actual Size", true, Some("CmdOrCtrl+0"))
108
+ .unwrap(),
109
+ )
110
+ .unwrap();
111
+ view_menu
112
+ .append(&PredefinedMenuItem::separator(app).unwrap())
113
+ .unwrap();
114
+ view_menu
115
+ .append(&PredefinedMenuItem::fullscreen(app, None).unwrap())
116
+ .unwrap();
117
+ view_menu
118
+ .append(&PredefinedMenuItem::separator(app).unwrap())
119
+ .unwrap();
120
+ view_menu
121
+ .append(
122
+ &MenuItem::with_id(
123
+ app,
124
+ "toggle_devtools",
125
+ "Toggle Developer Tools",
126
+ cfg!(debug_assertions),
127
+ Some("CmdOrCtrl+Option+I"),
128
+ )
129
+ .unwrap(),
130
+ )
131
+ .unwrap();
132
+
133
+ // Navigation Menu
134
+ let navigation_menu = Submenu::new(app, "Navigation", true).unwrap();
135
+ navigation_menu
136
+ .append(&MenuItem::with_id(app, "go_back", "Back", true, Some("CmdOrCtrl+[")).unwrap())
137
+ .unwrap();
138
+ navigation_menu
139
+ .append(
140
+ &MenuItem::with_id(app, "go_forward", "Forward", true, Some("CmdOrCtrl+]")).unwrap(),
141
+ )
142
+ .unwrap();
143
+ navigation_menu
144
+ .append(
145
+ &MenuItem::with_id(app, "go_home", "Go Home", true, Some("CmdOrCtrl+Shift+H")).unwrap(),
146
+ )
147
+ .unwrap();
148
+
149
+ // Window Menu
150
+ let window_menu = Submenu::new(app, "Window", true).unwrap();
151
+ window_menu
152
+ .append(&PredefinedMenuItem::minimize(app, None).unwrap())
153
+ .unwrap();
154
+ window_menu
155
+ .append(&PredefinedMenuItem::maximize(app, None).unwrap())
156
+ .unwrap();
157
+ window_menu
158
+ .append(&PredefinedMenuItem::separator(app).unwrap())
159
+ .unwrap();
160
+ window_menu
161
+ .append(
162
+ &MenuItem::with_id(
163
+ app,
164
+ "always_on_top",
165
+ "Toggle Always on Top",
166
+ true,
167
+ None::<&str>,
168
+ )
169
+ .unwrap(),
170
+ )
171
+ .unwrap();
172
+ window_menu
173
+ .append(&PredefinedMenuItem::separator(app).unwrap())
174
+ .unwrap();
175
+ window_menu
176
+ .append(&PredefinedMenuItem::close_window(app, None).unwrap())
177
+ .unwrap();
178
+
179
+ // Help Menu (Custom)
180
+ let help_menu = Submenu::new(app, "Help", true).unwrap();
181
+ let github_item = MenuItem::with_id(
182
+ app,
183
+ "pake_github_link",
184
+ &pake_menu_item_title,
185
+ true,
186
+ None::<&str>,
187
+ )
188
+ .unwrap();
189
+ help_menu.append(&github_item).unwrap();
190
+
191
+ // Construct the Menu Bar
192
+ let menu = Menu::with_items(
193
+ app,
194
+ &[
195
+ &app_menu,
196
+ &file_menu,
197
+ &edit_menu,
198
+ &view_menu,
199
+ &navigation_menu,
200
+ &window_menu,
201
+ &help_menu,
202
+ ],
203
+ )
204
+ .unwrap();
205
+
206
+ menu
207
+ }
208
+
209
+ pub fn handle_menu_click(app_handle: &AppHandle, id: &str) {
210
+ match id {
211
+ "pake_github_link" => {
212
+ let _ = app_handle
213
+ .opener()
214
+ .open_url("https://github.com/tw93/Pake", None::<&str>);
215
+ }
216
+ "reload" => {
217
+ if let Some(window) = app_handle.get_webview_window("pake") {
218
+ let _ = window.eval("window.location.reload()");
219
+ }
220
+ }
221
+ "toggle_devtools" => {
222
+ #[cfg(debug_assertions)] // Only allow in debug builds
223
+ if let Some(window) = app_handle.get_webview_window("pake") {
224
+ if window.is_devtools_open() {
225
+ window.close_devtools();
226
+ } else {
227
+ window.open_devtools();
228
+ }
229
+ }
230
+ }
231
+ "zoom_in" => {
232
+ if let Some(window) = app_handle.get_webview_window("pake") {
233
+ let _ = window.eval("zoomIn()");
234
+ }
235
+ }
236
+ "zoom_out" => {
237
+ if let Some(window) = app_handle.get_webview_window("pake") {
238
+ let _ = window.eval("zoomOut()");
239
+ }
240
+ }
241
+ "zoom_reset" => {
242
+ if let Some(window) = app_handle.get_webview_window("pake") {
243
+ let _ = window.eval("setZoom('100%')");
244
+ }
245
+ }
246
+ "go_back" => {
247
+ if let Some(window) = app_handle.get_webview_window("pake") {
248
+ let _ = window.eval("window.history.back()");
249
+ }
250
+ }
251
+ "go_forward" => {
252
+ if let Some(window) = app_handle.get_webview_window("pake") {
253
+ let _ = window.eval("window.history.forward()");
254
+ }
255
+ }
256
+ "go_home" => {
257
+ if let Some(window) = app_handle.get_webview_window("pake") {
258
+ let _ = window.eval("window.location.href = window.pakeConfig.url");
259
+ }
260
+ }
261
+ "copy_url" => {
262
+ if let Some(window) = app_handle.get_webview_window("pake") {
263
+ let _ = window.eval("navigator.clipboard.writeText(window.location.href)");
264
+ }
265
+ }
266
+ "clear_cache_restart" => {
267
+ if let Some(window) = app_handle.get_webview_window("pake") {
268
+ if let Ok(_) = window.clear_all_browsing_data() {
269
+ app_handle.restart();
270
+ }
271
+ }
272
+ }
273
+ "always_on_top" => {
274
+ if let Some(window) = app_handle.get_webview_window("pake") {
275
+ let is_on_top = window.is_always_on_top().unwrap_or(false);
276
+ let _ = window.set_always_on_top(!is_on_top);
277
+ }
278
+ }
279
+ _ => {}
280
+ }
281
+ }
@@ -1,4 +1,5 @@
1
1
  pub mod config;
2
2
  pub mod invoke;
3
+ pub mod menu;
3
4
  pub mod setup;
4
5
  pub mod window;