diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index b148be0..19825c7 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -26,4 +26,7 @@ rusqlite = { version = "0.33.0", features = ["bundled", "blob"] } tauri-plugin-os = "2" tauri-plugin-log = "2" tauri-plugin-fs = "2.2.0" - +tauri-plugin-permissionsx = {path = "../../tauri-plugin-permissionsX"} +tauri-plugin-android-fs = "1.4.2" +tauri-plugin-store = "2.0.0" +urlencoding = "2.1.3" diff --git a/src-tauri/capabilities/bw:bulk.json b/src-tauri/capabilities/bw:bulk.json deleted file mode 100644 index 07368fd..0000000 --- a/src-tauri/capabilities/bw:bulk.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "identifier": "bw:bulk", - "description": "", - "local": true, - "windows": [ - "main" - ], - "permissions": [ - "core:event:default", - "fs:allow-video-write-recursive", - "fs:allow-open", - "fs:allow-read", - "fs:allow-stat", - "fs:allow-write", - "fs:read-files", - "fs:allow-picture-write-recursive", - "fs:allow-home-write-recursive", - "fs:allow-public-write-recursive", - "fs:allow-lstat", - "fs:allow-read-file", - "fs:allow-audio-write-recursive", - "core:image:default", - "fs:allow-temp-write-recursive", - "fs:allow-create", - "fs:allow-read-dir", - "fs:allow-write-file", - "fs:allow-exe-write-recursive", - "fs:allow-document-write-recursive", - "fs:allow-appconfig-write-recursive", - "fs:allow-config-write-recursive", - "fs:allow-exists", - "fs:allow-app-write-recursive", - "fs:allow-applocaldata-write-recursive", - "core:default", - "fs:default", - "fs:allow-data-write", - "fs:allow-font-write-recursive", - "core:resources:default", - "core:webview:default", - "fs:allow-template-write-recursive", - "fs:allow-copy-file", - "fs:allow-cache-write-recursive", - "core:window:default", - "fs:allow-mkdir", - "core:app:default", - "fs:allow-download-write-recursive", - "fs:allow-fstat", - "fs:allow-desktop-write-recursive", - "fs:allow-appdata-write-recursive", - "fs:allow-runtime-write-recursive", - "fs:allow-resource-write-recursive", - "fs:allow-log-write-recursive", - "fs:allow-appcache-write-recursive", - "fs:allow-applog-write-recursive", - "fs:allow-localdata-write-recursive", - "core:path:default" - ] -} \ No newline at end of file diff --git a/src-tauri/capabilities/bw:fs.json b/src-tauri/capabilities/bw:fs.json new file mode 100644 index 0000000..b09cfb6 --- /dev/null +++ b/src-tauri/capabilities/bw:fs.json @@ -0,0 +1,12 @@ +{ + "identifier": "bw:fs", + "description": "bw fs", + "local": true, + "windows": [ + "main" + ], + "permissions": [ + "fs:allow-write-file", + "fs:allow-write" + ] +} \ No newline at end of file diff --git a/src-tauri/capabilities/bw:fss.json b/src-tauri/capabilities/bw:fss.json new file mode 100644 index 0000000..c8e2b09 --- /dev/null +++ b/src-tauri/capabilities/bw:fss.json @@ -0,0 +1,16 @@ +{ + "identifier": "bw:fss", + "description": "", + "local": true, + "windows": [ + "main" + ], + "permissions": [ + "fs:read-meta", + "fs:read-dirs", + "fs:read-all", + "fs:read-files", + "fs:write-all", + "fs:write-files" + ] +} diff --git a/src-tauri/capabilities/bw:scope-dl.json b/src-tauri/capabilities/bw:scope-dl.json new file mode 100644 index 0000000..5049bac --- /dev/null +++ b/src-tauri/capabilities/bw:scope-dl.json @@ -0,0 +1,22 @@ +{ + "identifier": "bw:scope-dl", + "description": "bw scope dl", + "local": true, + "windows": [ + "main" + ], + "permissions": [ + { + "identifier": "fs:scope-download-recursive", + "allow": [ + { + "path": ["$Download/**", + "$DOWNLOAD/**", + "$Download", + "$DOWNLOAD" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/src-tauri/gen/android/app/src/main/AndroidManifest.xml index e1514d5..1228508 100644 --- a/src-tauri/gen/android/app/src/main/AndroidManifest.xml +++ b/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -1,15 +1,14 @@ - - + + - - - - - + + + + @@ -34,13 +33,13 @@ - + android:name="androidx.core.content.FileProvider" + android:authorities="${applicationId}.fileprovider" + android:exported="false" + android:grantUriPermissions="true"> + - + \ No newline at end of file diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 321952e..144bb66 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -1,8 +1,58 @@ // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ use rusqlite::{params, Connection, Result}; use serde::Serialize; +use urlencoding::decode; +use std::{fs::create_dir, fs::File, io::Write}; -use std::{fs::File, fs::create_dir,io::Write}; +use tauri_plugin_android_fs::{AndroidFs, AndroidFsExt}; + +#[tauri::command] +fn read_files(app: tauri::AppHandle) -> String{ + let api = app.android_fs(); + let selected_paths = api + .show_open_file_dialog( + &["*/*"], // Target MIME types + true, // Allow multiple files + ) + .unwrap(); + + if selected_paths.is_empty() { + // Handle cancel + } else { + for path in selected_paths { + // println!("{:?}", path.to_string()); + return decode(path.to_string().as_str()).unwrap().into_owned().split(':').last().unwrap().to_string(); + //let file_name = api.get_file_name(&path).unwrap(); + // return path.into_path().unwrap().to_str().unwrap().to_string(); + //let file: std::fs::File = api.open_file(&path).unwrap(); + // Handle read-only file. + + // Alternatively, the path can be returned to the front end, + // and file processing can be handled within another tauri::command function that takes it as an argument. + // If you need to use file data on the front end, + // consider using Tauri’s custom protocols for efficient transmission. + } + } + return "".to_string(); +} + +#[tauri::command] +fn write_file(app: tauri::AppHandle) { + let api = app.android_fs(); + let selected_path = api + .show_save_file_dialog( + "", // Initial file name + Some("image/png"), // Target MIME type + ) + .unwrap(); + + if let Some(path) = selected_path { + let mut file: std::fs::File = api.create_file(&path).unwrap(); + // Handle write-only file + } else { + // Handle cancel + } +} #[derive(Debug, Clone, Serialize)] struct Book { @@ -13,31 +63,35 @@ struct Book { #[tauri::command] fn search(db: &str, q: &str) -> Vec { - searchdb(db,q).unwrap() + searchdb(db, q).unwrap() } #[tauri::command] fn initdb() { println!("initdb"); - let contents = [0; 24]; - - let mut file = match create_dir("$APPDATA") { - Ok(_) => { println!("yayd") }, - Err(e) => println!("nayd {}",e), + let contents = [0; 24]; + + let mut file = match create_dir("$APPDATA") { + Ok(_) => { + println!("yayd") + } + Err(e) => println!("nayd {}", e), }; - let mut file = match File::create("$APPDATA/test.db") { - Ok(f) => { println!("yay") }, - Err(e) => println!("nay {}",e), + let mut file = match File::create("$APPDATA/test.db") { + Ok(f) => { + println!("yay") + } + Err(e) => println!("nay {}", e), }; //let _ = file.write_all(&contents); } #[tauri::command] -fn copybook(db :&str, path:&str, bookid: i32) { +fn copybook(db: &str, path: &str, bookid: i32) { println!("copy {} from {} -> {}", bookid, db, path); - let _ = copybook_background(db,path,bookid); + let _ = copybook_background(db, path, bookid); } -fn copybook_background(db: &str, path: &str,bookid: i32) -> Result<()> { +fn copybook_background(db: &str, path: &str, bookid: i32) -> Result<()> { let conn = Connection::open(db)?; //let conn = Connection::open("/home/artin/Documents/ebooksol/index.db")?; let mut stmt = conn.prepare("SELECT books.title, data.format , book_content.content FROM books, book_content ,data where books.id = book_content.id and books.id = data.book and books.id = ?1 ")?; @@ -58,8 +112,9 @@ fn copybook_background(db: &str, path: &str,bookid: i32) -> Result<()> { } Ok(()) } -fn searchdb(db:&str, q: &str) -> Result> { +fn searchdb(db: &str, q: &str) -> Result> { let conn = Connection::open(db)?; + //let conn = Connection::open("/home/artin/Documents/ebooksol/index.db")?; let mut stmt = conn.prepare("SELECT books.id, books.title, books.author_sort as authors FROM books, book_content where books.id = book_content.id and (title like ?1 or author_sort like ?2) ")?; @@ -94,12 +149,14 @@ pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_log::Builder::new().build()) .plugin(tauri_plugin_os::init()) + .plugin(tauri_plugin_store::Builder::default().build()) + .plugin(tauri_plugin_android_fs::init()) .plugin(tauri_plugin_opener::init()) .invoke_handler(tauri::generate_handler![ search, copybook, getplatform, - initdb + initdb,read_files,write_file ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 7483b87..4d8adf0 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -42,7 +42,7 @@ "removeFile": true, "renameFile": true, "exists": true, - "scope": ["$APPDATA/*", "$APPCONFIG/*", "$RESOURCE/*"] + "scope": ["$DOWNLOAD/**","$Download/**","$APPDATA/**", "$APPCONFIG/**", "$RESOURCE/**"] } } } \ No newline at end of file diff --git a/src/index.html b/src/index.html index 6051a65..2593a14 100644 --- a/src/index.html +++ b/src/index.html @@ -33,15 +33,12 @@
-
-
-

diff --git a/src/main.js b/src/main.js index 74d9655..a2dd7da 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,8 @@ const { invoke } = window.__TAURI__.core; // when using `"withGlobalTauri": true`, you may use // const { platform } = window.__TAURI__.os; +const {path } = window.__TAURI__; + console.log("testing TESTING"); let greetInputEl; @@ -12,15 +14,20 @@ let bookid; let tb; let logs; let logtext; -async function k(configDb) { - return await invoke("search", { db: configDb.value, q: greetInputEl.value }); +async function k() { + //let d = await path.downloadDir(); + let dbFile = await invoke("read_files"); + return await invoke("search", { db: dbFile, q: greetInputEl.value }); } async function greet() { // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ greetMsgEl.textContent = await invoke("greet", { name: greetInputEl.value }); } async function init_db() { - let initdb = await invoke("initdb"); + //let initdb = await invoke("initdb"); + let dbloc = await invoke("read_files"); + mylog(dbloc); + } async function platform() { // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ @@ -74,8 +81,10 @@ window.addEventListener("DOMContentLoaded", () => { }); async function search() { - console.log(configDb); - slocate = await k(configDb); + //let d = await path.downloadDir(); + //console.log(`${d}/${configDb.value}`); + //console.log(configDb.value); + slocate = await k(); console.log(slocate); tb = document.querySelector("#thebooks"); diff --git a/yarn.lock b/yarn.lock index 6424f48..397a6d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,88 +1,153 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! +__metadata: + version: 8 + cacheKey: 10c0 -"@tauri-apps/api@^2.0.0", "@tauri-apps/api@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-2.2.0.tgz#daaff2515b1a4ff1e763cf84a414548b02b566c5" - integrity sha512-R8epOeZl1eJEl603aUMIGb4RXlhPjpgxbGVEaqY+0G5JG9vzV/clNlzTeqc+NLYXVqXcn8mb4c5b9pJIUDEyAg== +"@tauri-apps/api@npm:^2.0.0, @tauri-apps/api@npm:^2.2.0": + version: 2.2.0 + resolution: "@tauri-apps/api@npm:2.2.0" + checksum: 10c0/0ff0d9735c33d71c934e34045ef3077831fa98de25a42dc4c343120b482c8c114b87ef83dc02195923c23226fe6b8cb3e6bbaa099ab64d741346ba80c164435a + languageName: node + linkType: hard -"@tauri-apps/cli-darwin-arm64@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.2.7.tgz#42ec056eb19309aa50b11c9568b6c0e6637f41ca" - integrity sha512-54kcpxZ3X1Rq+pPTzk3iIcjEVY4yv493uRx/80rLoAA95vAC0c//31Whz75UVddDjJfZvXlXZ3uSZ+bnCOnt0A== +"@tauri-apps/cli-darwin-arm64@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-darwin-arm64@npm:2.2.7" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard -"@tauri-apps/cli-darwin-x64@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.2.7.tgz#60cb5806e7bec9af2e22ae38a6bd2a769b0a61b0" - integrity sha512-Vgu2XtBWemLnarB+6LqQeLanDlRj7CeFN//H8bVVdjbNzxcSxsvbLYMBP8+3boa7eBnjDrqMImRySSgL6IrwTw== +"@tauri-apps/cli-darwin-x64@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-darwin-x64@npm:2.2.7" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard -"@tauri-apps/cli-linux-arm-gnueabihf@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.2.7.tgz#451029b68b50486e0553adf1a45cbd27c00eb3f9" - integrity sha512-+Clha2iQAiK9zoY/KKW0KLHkR0k36O78YLx5Sl98tWkwI3OBZFg5H5WT1plH/4sbZIS2aLFN6dw58/JlY9Bu/g== +"@tauri-apps/cli-linux-arm-gnueabihf@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-linux-arm-gnueabihf@npm:2.2.7" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard -"@tauri-apps/cli-linux-arm64-gnu@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.2.7.tgz#74f28cc303b0f476209c6117325fc235a3d5ad0f" - integrity sha512-Z/Lp4SQe6BUEOays9BQAEum2pvZF4w9igyXijP+WbkOejZx4cDvarFJ5qXrqSLmBh7vxrdZcLwoLk9U//+yQrg== +"@tauri-apps/cli-linux-arm64-gnu@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-linux-arm64-gnu@npm:2.2.7" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard -"@tauri-apps/cli-linux-arm64-musl@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.2.7.tgz#c51890295186395effd2a751739b88c9689eea6c" - integrity sha512-+8HZ+txff/Y3YjAh80XcLXcX8kpGXVdr1P8AfjLHxHdS6QD4Md+acSxGTTNbplmHuBaSHJvuTvZf9tU1eDCTDg== +"@tauri-apps/cli-linux-arm64-musl@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-linux-arm64-musl@npm:2.2.7" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard -"@tauri-apps/cli-linux-x64-gnu@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.2.7.tgz#14959a065858dcc6bff87ca8eb4525b071ab4ffe" - integrity sha512-ahlSnuCnUntblp9dG7/w5ZWZOdzRFi3zl0oScgt7GF4KNAOEa7duADsxPA4/FT2hLRa0SvpqtD4IYFvCxoVv3Q== +"@tauri-apps/cli-linux-x64-gnu@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-linux-x64-gnu@npm:2.2.7" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard -"@tauri-apps/cli-linux-x64-musl@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.2.7.tgz#6199c671d760b39c75ad13228cc422fadbbd0b15" - integrity sha512-+qKAWnJRSX+pjjRbKAQgTdFY8ecdcu8UdJ69i7wn3ZcRn2nMMzOO2LOMOTQV42B7/Q64D1pIpmZj9yblTMvadA== +"@tauri-apps/cli-linux-x64-musl@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-linux-x64-musl@npm:2.2.7" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard -"@tauri-apps/cli-win32-arm64-msvc@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.2.7.tgz#e83f3efda339f8315a54c6b3a105bb16c1d78d66" - integrity sha512-aa86nRnrwT04u9D9fhf5JVssuAZlUCCc8AjqQjqODQjMd4BMA2+d4K9qBMpEG/1kVh95vZaNsLogjEaqSTTw4A== +"@tauri-apps/cli-win32-arm64-msvc@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-win32-arm64-msvc@npm:2.2.7" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard -"@tauri-apps/cli-win32-ia32-msvc@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.2.7.tgz#6e9cdc615cf1f86469e067e65493a85470c4d6c7" - integrity sha512-EiJ5/25tLSQOSGvv+t6o3ZBfOTKB5S3vb+hHQuKbfmKdRF0XQu2YPdIi1CQw1DU97ZAE0Dq4frvnyYEKWgMzVQ== +"@tauri-apps/cli-win32-ia32-msvc@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-win32-ia32-msvc@npm:2.2.7" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard -"@tauri-apps/cli-win32-x64-msvc@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.2.7.tgz#c561efac129b386be35a936b0080a4cd2cd01b6d" - integrity sha512-ZB8Kw90j8Ld+9tCWyD2fWCYfIrzbQohJ4DJSidNwbnehlZzP7wAz6Z3xjsvUdKtQ3ibtfoeTqVInzCCEpI+pWg== +"@tauri-apps/cli-win32-x64-msvc@npm:2.2.7": + version: 2.2.7 + resolution: "@tauri-apps/cli-win32-x64-msvc@npm:2.2.7" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard -"@tauri-apps/cli@^2": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-2.2.7.tgz#4aedaf941f58bf2839fec38aa8191c5aefc7bb45" - integrity sha512-ZnsS2B4BplwXP37celanNANiIy8TCYhvg5RT09n72uR/o+navFZtGpFSqljV8fy1Y4ixIPds8FrGSXJCN2BerA== - optionalDependencies: - "@tauri-apps/cli-darwin-arm64" "2.2.7" - "@tauri-apps/cli-darwin-x64" "2.2.7" - "@tauri-apps/cli-linux-arm-gnueabihf" "2.2.7" - "@tauri-apps/cli-linux-arm64-gnu" "2.2.7" - "@tauri-apps/cli-linux-arm64-musl" "2.2.7" - "@tauri-apps/cli-linux-x64-gnu" "2.2.7" - "@tauri-apps/cli-linux-x64-musl" "2.2.7" - "@tauri-apps/cli-win32-arm64-msvc" "2.2.7" - "@tauri-apps/cli-win32-ia32-msvc" "2.2.7" - "@tauri-apps/cli-win32-x64-msvc" "2.2.7" - -"@tauri-apps/plugin-log@~2": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-log/-/plugin-log-2.2.1.tgz#e837826f15f3d5e83ee964ccb6cf72f1ae5acca0" - integrity sha512-bOz9w0hhlXLGLc1ZR37GqkXvTqkykl4A3GEKLjRIs0dq3n0BzLyoRDMPcpt7PdUHqaq6WISME+zEX2bqjSbJ2A== +"@tauri-apps/cli@npm:^2": + version: 2.2.7 + resolution: "@tauri-apps/cli@npm:2.2.7" dependencies: - "@tauri-apps/api" "^2.0.0" + "@tauri-apps/cli-darwin-arm64": "npm:2.2.7" + "@tauri-apps/cli-darwin-x64": "npm:2.2.7" + "@tauri-apps/cli-linux-arm-gnueabihf": "npm:2.2.7" + "@tauri-apps/cli-linux-arm64-gnu": "npm:2.2.7" + "@tauri-apps/cli-linux-arm64-musl": "npm:2.2.7" + "@tauri-apps/cli-linux-x64-gnu": "npm:2.2.7" + "@tauri-apps/cli-linux-x64-musl": "npm:2.2.7" + "@tauri-apps/cli-win32-arm64-msvc": "npm:2.2.7" + "@tauri-apps/cli-win32-ia32-msvc": "npm:2.2.7" + "@tauri-apps/cli-win32-x64-msvc": "npm:2.2.7" + dependenciesMeta: + "@tauri-apps/cli-darwin-arm64": + optional: true + "@tauri-apps/cli-darwin-x64": + optional: true + "@tauri-apps/cli-linux-arm-gnueabihf": + optional: true + "@tauri-apps/cli-linux-arm64-gnu": + optional: true + "@tauri-apps/cli-linux-arm64-musl": + optional: true + "@tauri-apps/cli-linux-x64-gnu": + optional: true + "@tauri-apps/cli-linux-x64-musl": + optional: true + "@tauri-apps/cli-win32-arm64-msvc": + optional: true + "@tauri-apps/cli-win32-ia32-msvc": + optional: true + "@tauri-apps/cli-win32-x64-msvc": + optional: true + bin: + tauri: tauri.js + checksum: 10c0/ec09fadf47571c92b77d0ff72423c23b847b094dd2aa186f320947d372982778b5e17daaa7340f46a82803de5272bb149ba5801ce30a745ae48a662c3671ce68 + languageName: node + linkType: hard -"@tauri-apps/plugin-os@~2": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@tauri-apps/plugin-os/-/plugin-os-2.2.0.tgz#ef5511269f59c0ccc580a9d09600034cfaa9743b" - integrity sha512-HszbCdbisMlu5QhCNAN8YIWyz2v33abAWha6+uvV2CKX8P5VSct/y+kEe22JeyqrxCnWlQ3DRx7s49Byg7/0EA== +"@tauri-apps/plugin-log@npm:~2": + version: 2.2.1 + resolution: "@tauri-apps/plugin-log@npm:2.2.1" dependencies: - "@tauri-apps/api" "^2.0.0" + "@tauri-apps/api": "npm:^2.0.0" + checksum: 10c0/5f5128751b8f23447d6cd19749ac5f398abeec7f8ca63b1cc7632615454522b8b7fc6706572530c937df9f86a6071fdabfacf90f851c99b20e982124dddf7406 + languageName: node + linkType: hard + +"@tauri-apps/plugin-os@npm:~2": + version: 2.2.0 + resolution: "@tauri-apps/plugin-os@npm:2.2.0" + dependencies: + "@tauri-apps/api": "npm:^2.0.0" + checksum: 10c0/9440a6bc85be975a2c9f55b4da302531be68ea45d06e6d049c30395dd71749b0d975d4ec56bd6c86ceab0bbfd732dd8bc482772da63f13aa10792fa4ac7b8c64 + languageName: node + linkType: hard + +"bookmobile@workspace:.": + version: 0.0.0-use.local + resolution: "bookmobile@workspace:." + dependencies: + "@tauri-apps/api": "npm:^2.2.0" + "@tauri-apps/cli": "npm:^2" + "@tauri-apps/plugin-log": "npm:~2" + "@tauri-apps/plugin-os": "npm:~2" + languageName: unknown + linkType: soft