feat: added basic logging
mellbacon committed
Sep 25, 2023 at 21:11 UTC
091e2f298506b894c43b096504a2ffab12bc8a10
9 files changed
+531
-76
package.json
+1
@@ -20,6 +20,7 @@
20
"sortablejs": "^1.15.0",
21
"svelte-splitpanes": "^0.7.13",
22
"tauri-plugin-fs-watch-api": "https://github.com/tauri-apps/tauri-plugin-fs-watch",
23
+ "tauri-plugin-log-api": "https://github.com/tauri-apps/tauri-plugin-log#v1",
24
"tauri-plugin-store-api": "https://github.com/tauri-apps/tauri-plugin-store#v1"
25
},
26
"devDependencies": {
src-tauri/Cargo.lock
+75
-12
@@ -183,6 +183,16 @@ version = "3.13.0"
183
source = "registry+https://github.com/rust-lang/crates.io-index"
184
checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
185
186
+[[package]]
187
+name = "byte-unit"
188
+version = "4.0.19"
189
+source = "registry+https://github.com/rust-lang/crates.io-index"
190
+checksum = "da78b32057b8fdfc352504708feeba7216dcd65a2c9ab02978cbd288d1279b6c"
191
+dependencies = [
192
+ "serde",
193
+ "utf8-width",
194
+]
195
+
196
[[package]]
197
name = "bytemuck"
198
version = "1.13.1"
@@ -661,6 +671,15 @@ dependencies = [
671
"simd-adler32",
672
]
673
674
+[[package]]
675
+name = "fern"
676
+version = "0.6.2"
677
+source = "registry+https://github.com/rust-lang/crates.io-index"
678
+checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee"
679
+dependencies = [
680
+ "log",
681
+]
682
+
683
[[package]]
684
name = "field-offset"
685
version = "0.3.6"
@@ -1470,6 +1489,9 @@ name = "log"
1489
version = "0.4.20"
1490
source = "registry+https://github.com/rust-lang/crates.io-index"
1491
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
1492
+dependencies = [
1493
+ "value-bag",
1494
+]
1495
1496
[[package]]
1497
name = "loom"
@@ -1609,9 +1631,9 @@ checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
1631
1632
[[package]]
1633
name = "notify"
1612
-version = "6.1.0"
1634
+version = "6.1.1"
1635
source = "registry+https://github.com/rust-lang/crates.io-index"
1614
-checksum = "3dbf4f3b058c29e9642cf53217e0531cbfc78bc24e0a212a9837b7415b9d9007"
1636
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
1637
dependencies = [
1638
"bitflags 2.4.0",
1639
"crossbeam-channel",
@@ -1653,12 +1675,15 @@ name = "nucleus"
1675
version = "0.3.0"
1676
dependencies = [
1677
"encoding_rs",
1678
+ "log",
1679
"serde",
1680
"serde_json",
1681
"tauri",
1682
"tauri-build",
1683
"tauri-plugin-fs-watch",
1684
+ "tauri-plugin-log",
1685
"tauri-plugin-store",
1686
+ "time",
1687
"trash",
1688
"windows 0.32.0",
1689
]
@@ -1724,6 +1749,15 @@ dependencies = [
1749
"syn 1.0.109",
1750
]
1751
1752
+[[package]]
1753
+name = "num_threads"
1754
+version = "0.1.6"
1755
+source = "registry+https://github.com/rust-lang/crates.io-index"
1756
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
1757
+dependencies = [
1758
+ "libc",
1759
+]
1760
+
1761
[[package]]
1762
name = "objc"
1763
version = "0.2.7"
@@ -2358,18 +2392,18 @@ dependencies = [
2392
2393
[[package]]
2394
name = "serde"
2361
-version = "1.0.171"
2395
+version = "1.0.188"
2396
source = "registry+https://github.com/rust-lang/crates.io-index"
2363
-checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9"
2397
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
2398
dependencies = [
2399
"serde_derive",
2400
]
2401
2402
[[package]]
2403
name = "serde_derive"
2370
-version = "1.0.171"
2404
+version = "1.0.188"
2405
source = "registry+https://github.com/rust-lang/crates.io-index"
2372
-checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682"
2406
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
2407
dependencies = [
2408
"proc-macro2",
2409
"quote",
@@ -2821,7 +2855,7 @@ dependencies = [
2855
[[package]]
2856
name = "tauri-plugin-fs-watch"
2857
version = "0.0.0"
2824
-source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#6647e6ea90bb66c0280f43905f545d2995ded3bc"
2858
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#5b814f56e6368fdec46c4ddb04a07e0923ff995a"
2859
dependencies = [
2860
"log",
2861
"notify",
@@ -2832,10 +2866,25 @@ dependencies = [
2866
"thiserror",
2867
]
2868
2869
+[[package]]
2870
+name = "tauri-plugin-log"
2871
+version = "0.0.0"
2872
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#5b814f56e6368fdec46c4ddb04a07e0923ff995a"
2873
+dependencies = [
2874
+ "byte-unit",
2875
+ "fern",
2876
+ "log",
2877
+ "serde",
2878
+ "serde_json",
2879
+ "serde_repr",
2880
+ "tauri",
2881
+ "time",
2882
+]
2883
+
2884
[[package]]
2885
name = "tauri-plugin-store"
2886
version = "0.0.0"
2838
-source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#6647e6ea90bb66c0280f43905f545d2995ded3bc"
2887
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#5b814f56e6368fdec46c4ddb04a07e0923ff995a"
2888
dependencies = [
2889
"log",
2890
"serde",
@@ -2986,12 +3035,14 @@ dependencies = [
3035
3036
[[package]]
3037
name = "time"
2989
-version = "0.3.26"
3038
+version = "0.3.28"
3039
source = "registry+https://github.com/rust-lang/crates.io-index"
2991
-checksum = "a79d09ac6b08c1ab3906a2f7cc2e81a0e27c7ae89c63812df75e52bef0751e07"
3040
+checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
3041
dependencies = [
3042
"deranged",
3043
"itoa 1.0.9",
3044
+ "libc",
3045
+ "num_threads",
3046
"serde",
3047
"time-core",
3048
"time-macros",
@@ -3005,9 +3056,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
3056
3057
[[package]]
3058
name = "time-macros"
3008
-version = "0.2.12"
3059
+version = "0.2.14"
3060
source = "registry+https://github.com/rust-lang/crates.io-index"
3010
-checksum = "75c65469ed6b3a4809d987a41eb1dc918e9bc1d92211cbad7ae82931846f7451"
3061
+checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
3062
dependencies = [
3063
"time-core",
3064
]
@@ -3220,6 +3271,12 @@ version = "0.7.6"
3271
source = "registry+https://github.com/rust-lang/crates.io-index"
3272
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
3273
3274
+[[package]]
3275
+name = "utf8-width"
3276
+version = "0.1.6"
3277
+source = "registry+https://github.com/rust-lang/crates.io-index"
3278
+checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
3279
+
3280
[[package]]
3281
name = "uuid"
3282
version = "1.4.1"
@@ -3235,6 +3292,12 @@ version = "0.1.0"
3292
source = "registry+https://github.com/rust-lang/crates.io-index"
3293
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
3294
3295
+[[package]]
3296
+name = "value-bag"
3297
+version = "1.4.1"
3298
+source = "registry+https://github.com/rust-lang/crates.io-index"
3299
+checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
3300
+
3301
[[package]]
3302
name = "version-compare"
3303
version = "0.0.11"
src-tauri/Cargo.toml
+6
@@ -20,10 +20,16 @@ tauri-plugin-fs-watch = { git = "https://github.com/tauri-apps/plugins-workspace
20
trash = "3.0.2"
21
tauri-plugin-store = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }
22
encoding_rs = "0.8.32"
23
+tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }
24
+time = "0.3.28"
25
+log = "^0.4"
26
27
[dev-dependencies]
28
windows = "0.32.0"
29
30
+[profile.dev.build-override]
31
+opt-level = 2
32
+
33
[features]
34
# by default Tauri runs in production mode
35
# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL
src-tauri/src/main.rs
+90
-1
@@ -3,6 +3,13 @@
3
windows_subsystem = "windows"
4
)]
5
6
+#[cfg(debug_assertions)]
7
+const LOG_TARGETS: [LogTarget; 3] = [LogTarget::Stdout, LogTarget::Webview, LogTarget::LogDir];
8
+
9
+#[cfg(not(debug_assertions))]
10
+const LOG_TARGETS: [LogTarget; 2] = [LogTarget::Stdout, LogTarget::LogDir];
11
+
12
+use std::collections::HashMap;
13
use std::ffi::OsStr;
14
use std::fs::File;
15
use std::io::Write;
@@ -10,10 +17,13 @@ use std::path::Path;
17
use std::{env, fs};
18
use std::process::Command;
19
13
-use tauri::Manager;
20
+use tauri::{Manager, Wry, App};
21
22
mod encoding;
23
use encoding::BOM;
24
+use tauri::plugin::TauriPlugin;
25
+use tauri_plugin_log::{LogTarget, RotationStrategy};
26
+use log::info;
27
28
use crate::encoding::convert_to_u16;
29
@@ -111,11 +121,90 @@ fn write_file(path: &str, content: &str, enc: &str, has_bom: bool) {
121
file.write_all(&output).unwrap();
122
}
123
124
+fn configure_log() -> TauriPlugin<Wry> {
125
+ tauri_plugin_log::Builder::default()
126
+ .format(move |out, message, record| {
127
+ let format = time::format_description::parse(
128
+ "[[[year]-[month]-[day]][[[hour]:[minute]:[second]]",
129
+ )
130
+ .unwrap();
131
+ out.finish(format_args!(
132
+ "{}[{}] {}",
133
+ time::OffsetDateTime::now_local().unwrap().format(&format).unwrap(),
134
+ record.level(),
135
+ message
136
+ ))
137
+ })
138
+ .targets(LOG_TARGETS)
139
+ .rotation_strategy(RotationStrategy::KeepAll)
140
+ .build()
141
+}
142
+
143
+fn configure_log_path(app: &mut App) {
144
+ let app_log_dir = tauri::api::path::app_log_dir(&app.config()).unwrap();
145
+ let format = time::format_description::parse(
146
+ "[year]-[month]-[day]-[hour][minute]",
147
+ )
148
+ .unwrap();
149
+ let time = time::OffsetDateTime::now_local().unwrap().format(&format).unwrap();
150
+ let log_name = format!("nucleus_log-{}.log", time);
151
+
152
+ // changing the default log name to something more meaningful
153
+ let old_log_path = app_log_dir.join("nucleus.log");
154
+ let new_log_path = app_log_dir.join(log_name);
155
+ fs::rename(old_log_path, new_log_path).unwrap();
156
+}
157
+
158
+fn load_settings(app: &mut App) {
159
+
160
+ info!("Loading default settings:");
161
+
162
+ let default_settings = serde_json::json!(
163
+ {
164
+ "nucleus.theme": "Dark",
165
+ "editor.fontSize": 14,
166
+ "editor.fontFamily": "monospace",
167
+ "editor.autosave": false,
168
+ "nucleus.showKeybinds": false,
169
+ "nucleus.useExternalTerminal": true,
170
+ "terminal.external": {
171
+ "profile": "powershell"
172
+ },
173
+ "terminal.internal": {
174
+ "profile": "powershell"
175
+ }
176
+ }
177
+ );
178
+ let appdata_local = tauri::api::path::app_local_data_dir(&app.config()).unwrap();
179
+ let settings_path = appdata_local.join("default_settings.json");
180
+
181
+ if !settings_path.try_exists().unwrap() {
182
+ fs::write(&settings_path, default_settings.to_string()).unwrap();
183
+ info!("Default settings file not found. Created a new default settings file. Path: {:?}", &settings_path);
184
+ }
185
+
186
+ let mut defaults = HashMap::new();
187
+ for settings in default_settings.as_object().unwrap() {
188
+ defaults.entry(settings.0.clone()).or_insert_with(|| settings.1.clone());
189
+ }
190
+
191
+ let mut settings_store = tauri_plugin_store::StoreBuilder::new(app.handle(), settings_path).defaults(defaults).build();
192
+
193
+ settings_store.load().unwrap();
194
+
195
+}
196
+
197
fn main() {
198
tauri::Builder::default()
199
.invoke_handler(tauri::generate_handler![open_in_explorer, delete_file, attempt_file_access, is_file, is_folder, read_file, write_file])
200
.plugin(tauri_plugin_fs_watch::init())
201
.plugin(tauri_plugin_store::Builder::default().build())
202
+ .plugin(configure_log())
203
+ .setup(|app| {
204
+ configure_log_path(app);
205
+ load_settings(app);
206
+ Ok(())
207
+ })
208
.run(tauri::generate_context!())
209
.expect("error while running tauri application");
210
}
src/config/commands.ts
+12
-10
@@ -1,9 +1,9 @@
1
import { fs } from "@tauri-apps/api";
2
import { openRenameModal } from "../App.svelte";
3
-import { append, copy, cut, deleteChars, redoChange, undoChange } from "../lib/Editor.svelte";
3
import { addEditorTab, closeAllTabs } from "../lib/EditorTabList.svelte";
4
import { saveFile, openFile, openFolder, openInExplorer, renameFile } from "../lib/File";
5
import { appWindow } from "@tauri-apps/api/window";
6
+import { info, warn } from "tauri-plugin-log-api";
7
8
export const commands = {
9
"addEditorTab": {
@@ -40,36 +40,35 @@ export const commands = {
40
"keybind": "Control+Z",
41
"disabled": "true",
42
"command": async () => {
43
- await undoChange();
43
+ //
44
}
45
},
46
"redo": {
47
"keybind": "Control+Shift+Z",
48
"disabled": "true",
49
"command": async () => {
50
- await redoChange();
50
+ //
51
}
52
},
53
"cut": {
54
"keybind": "Control+X",
55
"disabled": "true",
56
"command": async () => {
57
- await cut();
57
+ //
58
}
59
},
60
"copy": {
61
"keybind": "Control+C",
62
"disabled": "true",
63
"command": async () => {
64
- await copy();
64
+ //
65
}
66
},
67
"paste": {
68
"keybind": "Control+V",
69
"disabled": "true",
70
"command": async () => {
71
- const content = await navigator.clipboard.readText();
72
- append(content);
71
+ //
72
}
73
},
74
"pasteFromHistory": {
@@ -82,7 +81,7 @@ export const commands = {
81
"keybind": "Delete",
82
"disabled": "true",
83
"command": async () => {
85
- await deleteChars();
84
+ return;
85
}
86
},
87
"find": {
@@ -190,7 +189,10 @@ export const commands = {
189
"renameFile": {
190
"keybind": "F2",
191
"command": async (filename, oldpath) => {
193
- if (!await fs.exists(oldpath)) return;
192
+ if (!await fs.exists(oldpath)) {
193
+ warn(`${oldpath} does not exist!`);
194
+ return;
195
+ }
196
openRenameModal(`Rename ${filename}`,
197
`Give a new name to ${filename}`, [
198
{name: "Rename", action: async (name) => {await renameFile(name, oldpath)}},
@@ -209,7 +211,7 @@ export const commands = {
211
212
export function registerCommand(name: string, keybind: string, command: () => void) {
213
if (commands[name]) {
212
- console.warn(`Command "${name}" already exists, skipping.`);
214
+ info(`Command "${name}" already exists, skipping.`)
215
return;
216
}
217
commands[name] = { "keybind": keybind, "command": command }
src/config/config.ts
+17
-34
@@ -1,11 +1,12 @@
1
import { writable } from "svelte/store";
2
import Mousetrap from "mousetrap";
3
import { getKeybinds } from "./commands";
4
-import { fs, path } from "@tauri-apps/api";
4
+import { path } from "@tauri-apps/api";
5
import { loadTheme } from "./themehandler";
6
import { Store } from "tauri-plugin-store-api";
7
import { setEditorFontFamily, setEditorFontSize } from "../lib/Editor.svelte";
8
import { watch } from "tauri-plugin-fs-watch-api";
9
+import { info } from "tauri-plugin-log-api";
10
11
export const systemfonts = writable([]);
12
export const editorfont = writable("");
@@ -46,6 +47,7 @@ function parseKeybind(keybind: string) {
47
}
48
49
export async function getShortcuts() {
50
+ info("Intializing shortcut bindings...")
51
const shortcuts = getKeybinds();
52
for (const shortcut of shortcuts) {
53
// skip binding shorcuts that are disabled
@@ -58,6 +60,7 @@ export async function getShortcuts() {
60
await fireAction(shortcut.command);
61
});
62
}
63
+ info("Shortcuts loaded successfully.");
64
}
65
66
async function fireAction(callback: () => Promise<void>, args = []) {
@@ -66,50 +69,30 @@ async function fireAction(callback: () => Promise<void>, args = []) {
69
}
70
71
export let appSettings: Store;
69
-export async function getSettings() {
70
- const settings = JSON.stringify({
71
- "nucleus.theme": "Dark",
72
- "editor.fontSize": 14,
73
- "editor.fontFamily": "monospace",
74
- "editor.autosave": false,
75
- "nucleus.showKeybinds": false,
76
- "nucleus.useExternalTerminal": true,
77
- "terminal.external": {
78
- "profile": "powershell"
79
- },
80
- "terminal.internal": {
81
- "profile": "powershell"
82
- },
83
- }, null, 4);
84
- const appdataLocal = await path.appLocalDataDir();
85
- const settingsPath = `${appdataLocal}settings.json`;
72
87
- if (!await fs.exists(settingsPath)) {
88
- await fs.writeFile(settingsPath, settings);
89
- }
90
- appSettings = new Store(settingsPath);
73
+export async function loadDefaultSettings() {
74
+ const appdataLocal = await path.appLocalDataDir();
75
+ appSettings = new Store(`${appdataLocal}default_settings.json`);
76
77
await watch(
93
- settingsPath,
94
- async () => {
95
- await appSettings.load();
78
+ `${appdataLocal}default_settings.json`,
79
+ () => {
80
+ appSettings.load();
81
}
82
)
98
-}
83
100
-export async function loadDefaultSettings() {
101
- await getSettings();
102
- const settingsPath = await fs.readTextFile("settings.json", {dir: fs.BaseDirectory.AppLocalData});
103
- const settings = JSON.parse(settingsPath);
104
- await loadTheme(settings["nucleus.theme"]);
105
- await getShortcuts();
84
+ loadTheme(await appSettings.get("nucleus.theme"));
85
+ getShortcuts();
86
+
87
appSettings.onKeyChange("editor.fontSize", (value: number) => {
88
setEditorFontSize(value);
89
})
90
appSettings.onKeyChange("editor.fontFamily", (value: string) => {
91
setEditorFontFamily(value);
92
})
112
- appSettings.onKeyChange("nucleus.theme", async (value: string) => {
113
- await loadTheme(value);
93
+ appSettings.onKeyChange("nucleus.theme", (value: string) => {
94
+ loadTheme(value);
95
})
96
+
97
+ info(`Settings initialized.`);
98
}
\ No newline at end of file
src/lib/File.ts
+9
-11
@@ -4,6 +4,7 @@ import { tabs, addEditorTab, renameTab, closeTab, refreshTabs } from "./EditorTa
4
import { filetree } from "./FileTree.svelte";
5
import { watchImmediate } from "tauri-plugin-fs-watch-api";
6
import { openFileTree } from "./Sidebar.svelte";
7
+import { trace, error, warn } from "tauri-plugin-log-api";
8
9
export async function openFile() {
10
let newPath = await dialog.open() as string;
@@ -62,18 +63,18 @@ async function updateTree(directory, updateType = "") {
63
try {
64
tree = await fs.readDir(directory, {recursive: true});
65
} catch (error) {
65
- console.error(error);
66
+ error(error);
67
}
68
if (!tree || tree === undefined) {
68
- console.error("Cannot load directory");
69
+ error("Cannot load directory");
70
71
cancelDirectoryLoad("Cannot load directory");
72
return null;
73
}
74
75
if (loadTime > 100) {
75
- console.error(`Directory load time was too long. Aborting...`);
76
- console.warn(`Cancelled load after ${loadTime} seconds`);
76
+ error(`Directory load time was too long. Aborting...`);
77
+ trace(`Cancelled load after ${loadTime} seconds`);
78
79
cancelDirectoryLoad("Error: Directory load timeout.");
80
return null;
@@ -87,10 +88,7 @@ async function updateTree(directory, updateType = "") {
88
//TODO: move this to a log file
89
if (updateType !== "modify") {
90
if (loadTime < 45) {
90
- console.log(`Directory load time: ${loadTime < 1 ? "less than 1" : loadTime}s`);
91
- }
92
- else {
93
- console.warn(`Directory load time: ${loadTime < 1 ? "less than 1" : loadTime}s`);
91
+ trace(`Directory load time: ${loadTime < 1 ? "less than 1" : loadTime}s`);
92
}
93
}
94
id = 0;
@@ -225,11 +223,11 @@ export async function createFile(p) {
223
224
export async function renameFile(filename: string, oldpath: string) {
225
if (filename.length === 0) {
228
- console.warn("filename length 0")
226
+ warn("filename length 0");
227
return false;
228
}
229
if (await invoke("is_file", {path: oldpath}) && filename.includes(path.sep)) {
232
- console.warn("invalid filename")
230
+ warn("invalid filename");
231
return false;
232
}
233
let newpath = oldpath.replace(oldpath.split(path.sep).pop(), filename);
@@ -237,7 +235,7 @@ export async function renameFile(filename: string, oldpath: string) {
235
try {
236
await fs.renameFile(oldpath, newpath);
237
} catch (error) {
240
- console.error(error);
238
+ error(error);
239
return false;
240
}
241
let tab = get(tabs).find(t => t.active && t.isfile);
src/main.ts
+3
@@ -1,6 +1,9 @@
1
import "./theme.scss";
2
import "./global.css";
3
import App from './App.svelte';
4
+import { attachConsole } from "tauri-plugin-log-api";
5
+
6
+attachConsole();
7
8
const app = new App({
9
target: document.body
yarn.lock
+318
-8
@@ -567,6 +567,117 @@
567
"@nodelib/fs.scandir" "2.1.5"
568
fastq "^1.6.0"
569
570
+"@sentry-internal/tracing@7.69.0":
571
+ version "7.69.0"
572
+ resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.69.0.tgz#8d8eb740b72967b6ba3fdc0a5173aa55331b7d35"
573
+ integrity sha512-4BgeWZUj9MO6IgfO93C9ocP3+AdngqujF/+zB2rFdUe+y9S6koDyUC7jr9Knds/0Ta72N/0D6PwhgSCpHK8s0Q==
574
+ dependencies:
575
+ "@sentry/core" "7.69.0"
576
+ "@sentry/types" "7.69.0"
577
+ "@sentry/utils" "7.69.0"
578
+ tslib "^2.4.1 || ^1.9.3"
579
+
580
+"@sentry/browser@7.69.0":
581
+ version "7.69.0"
582
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.69.0.tgz#65427c90fb71c1775e2c1e38431efb7f4aec1e34"
583
+ integrity sha512-5ls+zu2PrMhHCIIhclKQsWX5u6WH0Ez5/GgrCMZTtZ1d70ukGSRUvpZG9qGf5Cw1ezS1LY+1HCc3whf8x8lyPw==
584
+ dependencies:
585
+ "@sentry-internal/tracing" "7.69.0"
586
+ "@sentry/core" "7.69.0"
587
+ "@sentry/replay" "7.69.0"
588
+ "@sentry/types" "7.69.0"
589
+ "@sentry/utils" "7.69.0"
590
+ tslib "^2.4.1 || ^1.9.3"
591
+
592
+"@sentry/bundler-plugin-core@2.7.1":
593
+ version "2.7.1"
594
+ resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.7.1.tgz#60ca41f79393263911ae6bc5530f387cb1e48e47"
595
+ integrity sha512-ZC/B/7FzzgGpux2t54B2ioXudlq60MHMVPaUeuFzWwxmxiArrV4uBXcp18RMW5ns4biik5WBAD72vbsoloBfIQ==
596
+ dependencies:
597
+ "@sentry/cli" "^2.20.1"
598
+ "@sentry/node" "^7.60.0"
599
+ "@sentry/utils" "^7.60.0"
600
+ dotenv "^16.3.1"
601
+ find-up "5.0.0"
602
+ glob "9.3.2"
603
+ magic-string "0.27.0"
604
+ unplugin "1.0.1"
605
+
606
+"@sentry/cli@^2.20.1":
607
+ version "2.20.7"
608
+ resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.20.7.tgz#8f7f3f632c330cac6bd2278d820948163f3128a6"
609
+ integrity sha512-YaHKEUdsFt59nD8yLvuEGCOZ3/ArirL8GZ/66RkZ8wcD2wbpzOFbzo08Kz4te/Eo3OD5/RdW+1dPaOBgGbrXlA==
610
+ dependencies:
611
+ https-proxy-agent "^5.0.0"
612
+ node-fetch "^2.6.7"
613
+ progress "^2.0.3"
614
+ proxy-from-env "^1.1.0"
615
+ which "^2.0.2"
616
+
617
+"@sentry/core@7.69.0":
618
+ version "7.69.0"
619
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.69.0.tgz#ebbe01df573f438f8613107020a4e18eb9adca4d"
620
+ integrity sha512-V6jvK2lS8bhqZDMFUtvwe2XvNstFQf5A+2LMKCNBOV/NN6eSAAd6THwEpginabjet9dHsNRmMk7WNKvrUfQhZw==
621
+ dependencies:
622
+ "@sentry/types" "7.69.0"
623
+ "@sentry/utils" "7.69.0"
624
+ tslib "^2.4.1 || ^1.9.3"
625
+
626
+"@sentry/node@^7.60.0":
627
+ version "7.69.0"
628
+ resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.69.0.tgz#938200095a17f41a2445fec168df293db7c24836"
629
+ integrity sha512-T0NgPcmDQvEuz5hy6aEhXghTHHTWsiP3IWoeEAakDBHAXmtpT6lYFQZgb5AiEOt9F5KO/G/1yH3YYdpDAnKhPw==
630
+ dependencies:
631
+ "@sentry-internal/tracing" "7.69.0"
632
+ "@sentry/core" "7.69.0"
633
+ "@sentry/types" "7.69.0"
634
+ "@sentry/utils" "7.69.0"
635
+ cookie "^0.4.1"
636
+ https-proxy-agent "^5.0.0"
637
+ lru_map "^0.3.3"
638
+ tslib "^2.4.1 || ^1.9.3"
639
+
640
+"@sentry/replay@7.69.0":
641
+ version "7.69.0"
642
+ resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.69.0.tgz#d727f96292d2b7c25df022fa53764fd39910fcda"
643
+ integrity sha512-oUqWyBPFUgShdVvgJtV65EQH9pVDmoYVQMOu59JI6FHVeL3ald7R5Mvz6GaNLXsirvvhp0yAkcAd2hc5Xi6hDw==
644
+ dependencies:
645
+ "@sentry/core" "7.69.0"
646
+ "@sentry/types" "7.69.0"
647
+ "@sentry/utils" "7.69.0"
648
+
649
+"@sentry/svelte@^7.69.0":
650
+ version "7.69.0"
651
+ resolved "https://registry.yarnpkg.com/@sentry/svelte/-/svelte-7.69.0.tgz#41312a2daf169601e1321c22c5d1e9576fefbcb4"
652
+ integrity sha512-86dQMJ+iYMZHEv3m3OGK6M6+Pq2C0/udeWIw5HLUil8SvJ0mKqAw8lzHcH9P7Vuhcdqn7N2fZfoUCyDIm7wRqA==
653
+ dependencies:
654
+ "@sentry/browser" "7.69.0"
655
+ "@sentry/types" "7.69.0"
656
+ "@sentry/utils" "7.69.0"
657
+ magic-string "^0.30.0"
658
+ tslib "^2.4.1 || ^1.9.3"
659
+
660
+"@sentry/types@7.69.0":
661
+ version "7.69.0"
662
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.69.0.tgz#012b8d90d270a473cc2a5cf58a56870542739292"
663
+ integrity sha512-zPyCox0mzitzU6SIa1KIbNoJAInYDdUpdiA+PoUmMn2hFMH1llGU/cS7f4w/mAsssTlbtlBi72RMnWUCy578bw==
664
+
665
+"@sentry/utils@7.69.0", "@sentry/utils@^7.60.0":
666
+ version "7.69.0"
667
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.69.0.tgz#b7594e4eb2a88b9b25298770b841dd3f81bd2aa4"
668
+ integrity sha512-4eBixe5Y+0EGVU95R4NxH3jkkjtkE4/CmSZD4In8SCkWGSauogePtq6hyiLsZuP1QHdpPb9Kt0+zYiBb2LouBA==
669
+ dependencies:
670
+ "@sentry/types" "7.69.0"
671
+ tslib "^2.4.1 || ^1.9.3"
672
+
673
+"@sentry/vite-plugin@^2.7.1":
674
+ version "2.7.1"
675
+ resolved "https://registry.yarnpkg.com/@sentry/vite-plugin/-/vite-plugin-2.7.1.tgz#23fa4c95079c3f2ba10b851dce7452c16adc82c8"
676
+ integrity sha512-bZrM06Z+QP/TvPyTYFxpQVugT5rzaFW1jzTnHzUHICz5tgyarY8bhhmYXnI37f6mngkVwDZNAftczbVF2IuFWQ==
677
+ dependencies:
678
+ "@sentry/bundler-plugin-core" "2.7.1"
679
+ unplugin "1.0.1"
680
+
681
"@sveltejs/vite-plugin-svelte@^2.0.4":
682
version "2.0.4"
683
resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.4.tgz#607b6abe15e02e540249e3f47d47fb9f15952e80"
@@ -579,16 +690,16 @@
690
svelte-hmr "^0.15.1"
691
vitefu "^0.2.4"
692
693
+"@tauri-apps/api@1.4.0", "@tauri-apps/api@^1.4.0":
694
+ version "1.4.0"
695
+ resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.4.0.tgz#b4013ca3d17b853f7df29fe14079ebb4d52dbffa"
696
+ integrity sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw==
697
+
698
"@tauri-apps/api@^1.2.0":
699
version "1.2.0"
700
resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477"
701
integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==
702
587
-"@tauri-apps/api@^1.4.0":
588
- version "1.4.0"
589
- resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.4.0.tgz#b4013ca3d17b853f7df29fe14079ebb4d52dbffa"
590
- integrity sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw==
591
-
703
"@tauri-apps/cli-darwin-arm64@1.4.0":
704
version "1.4.0"
705
resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.4.0.tgz#e76bb8515ae31f03f2cbd440c1a09b237a79b3ac"
@@ -670,6 +781,18 @@
781
resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6"
782
integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==
783
784
+acorn@^8.8.1:
785
+ version "8.10.0"
786
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
787
+ integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
788
+
789
+agent-base@6:
790
+ version "6.0.2"
791
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
792
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
793
+ dependencies:
794
+ debug "4"
795
+
796
anymatch@~3.1.2:
797
version "3.1.3"
798
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
@@ -696,6 +819,13 @@ brace-expansion@^1.1.7:
819
balanced-match "^1.0.0"
820
concat-map "0.0.1"
821
822
+brace-expansion@^2.0.1:
823
+ version "2.0.1"
824
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
825
+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
826
+ dependencies:
827
+ balanced-match "^1.0.0"
828
+
829
braces@^3.0.2, braces@~3.0.2:
830
version "3.0.2"
831
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
@@ -718,7 +848,7 @@ carbon-icons-svelte@^11.4.0:
848
resolved "https://registry.yarnpkg.com/carbon-icons-svelte/-/carbon-icons-svelte-11.4.0.tgz#1bab38ac0c8f778e0431f8df54324829c81cfd30"
849
integrity sha512-p/llZde2kP2BI9SOqM+QFKGfQnYrW+4dVxF1rAYriEADXDsjt9EYlh+KpQ5qf4JpXAq+e2+TB/r/lIG1xdUbAQ==
850
721
-"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1:
851
+"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.5.3:
852
version "3.5.3"
853
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
854
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
@@ -751,12 +881,17 @@ concat-map@0.0.1:
881
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
882
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
883
884
+cookie@^0.4.1:
885
+ version "0.4.2"
886
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
887
+ integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
888
+
889
crelt@^1.0.5:
890
version "1.0.5"
891
resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.5.tgz#57c0d52af8c859e354bace1883eb2e1eb182bb94"
892
integrity sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==
893
759
-debug@^4.3.4:
894
+debug@4, debug@^4.3.4:
895
version "4.3.4"
896
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
897
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -773,6 +908,11 @@ detect-indent@^6.1.0:
908
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
909
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
910
911
+dotenv@^16.3.1:
912
+ version "16.3.1"
913
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e"
914
+ integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==
915
+
916
es6-promise@^3.1.2:
917
version "3.3.1"
918
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
@@ -843,6 +983,14 @@ fill-range@^7.0.1:
983
dependencies:
984
to-regex-range "^5.0.1"
985
986
+find-up@5.0.0:
987
+ version "5.0.0"
988
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
989
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
990
+ dependencies:
991
+ locate-path "^6.0.0"
992
+ path-exists "^4.0.0"
993
+
994
fs.realpath@^1.0.0:
995
version "1.0.0"
996
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -865,6 +1013,16 @@ glob-parent@^5.1.2, glob-parent@~5.1.2:
1013
dependencies:
1014
is-glob "^4.0.1"
1015
1016
+glob@9.3.2:
1017
+ version "9.3.2"
1018
+ resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.2.tgz#8528522e003819e63d11c979b30896e0eaf52eda"
1019
+ integrity sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA==
1020
+ dependencies:
1021
+ fs.realpath "^1.0.0"
1022
+ minimatch "^7.4.1"
1023
+ minipass "^4.2.4"
1024
+ path-scurry "^1.6.1"
1025
+
1026
glob@^7.1.3:
1027
version "7.2.3"
1028
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
@@ -889,6 +1047,14 @@ has@^1.0.3:
1047
dependencies:
1048
function-bind "^1.1.1"
1049
1050
+https-proxy-agent@^5.0.0:
1051
+ version "5.0.1"
1052
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
1053
+ integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
1054
+ dependencies:
1055
+ agent-base "6"
1056
+ debug "4"
1057
+
1058
immutable@^4.0.0:
1059
version "4.1.0"
1060
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef"
@@ -946,12 +1112,34 @@ is-number@^7.0.0:
1112
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1113
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1114
1115
+isexe@^2.0.0:
1116
+ version "2.0.0"
1117
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1118
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1119
+
1120
kleur@^4.1.5:
1121
version "4.1.5"
1122
resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
1123
integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
1124
954
-magic-string@^0.27.0:
1125
+locate-path@^6.0.0:
1126
+ version "6.0.0"
1127
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
1128
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
1129
+ dependencies:
1130
+ p-locate "^5.0.0"
1131
+
1132
+"lru-cache@^9.1.1 || ^10.0.0":
1133
+ version "10.0.1"
1134
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a"
1135
+ integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==
1136
+
1137
+lru_map@^0.3.3:
1138
+ version "0.3.3"
1139
+ resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
1140
+ integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==
1141
+
1142
+magic-string@0.27.0, magic-string@^0.27.0:
1143
version "0.27.0"
1144
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3"
1145
integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
@@ -990,11 +1178,28 @@ minimatch@^3.1.1:
1178
dependencies:
1179
brace-expansion "^1.1.7"
1180
1181
+minimatch@^7.4.1:
1182
+ version "7.4.6"
1183
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb"
1184
+ integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==
1185
+ dependencies:
1186
+ brace-expansion "^2.0.1"
1187
+
1188
minimist@^1.2.0, minimist@^1.2.6:
1189
version "1.2.7"
1190
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
1191
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
1192
1193
+minipass@^4.2.4:
1194
+ version "4.2.8"
1195
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a"
1196
+ integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==
1197
+
1198
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
1199
+ version "7.0.3"
1200
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974"
1201
+ integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==
1202
+
1203
mkdirp@^0.5.1:
1204
version "0.5.6"
1205
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
@@ -1022,6 +1227,13 @@ nanoid@^3.3.6:
1227
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
1228
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
1229
1230
+node-fetch@^2.6.7:
1231
+ version "2.7.0"
1232
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
1233
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
1234
+ dependencies:
1235
+ whatwg-url "^5.0.0"
1236
+
1237
normalize-path@^3.0.0, normalize-path@~3.0.0:
1238
version "3.0.0"
1239
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
@@ -1034,6 +1246,20 @@ once@^1.3.0:
1246
dependencies:
1247
wrappy "1"
1248
1249
+p-limit@^3.0.2:
1250
+ version "3.1.0"
1251
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1252
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1253
+ dependencies:
1254
+ yocto-queue "^0.1.0"
1255
+
1256
+p-locate@^5.0.0:
1257
+ version "5.0.0"
1258
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
1259
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1260
+ dependencies:
1261
+ p-limit "^3.0.2"
1262
+
1263
parent-module@^1.0.0:
1264
version "1.0.1"
1265
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -1041,6 +1267,11 @@ parent-module@^1.0.0:
1267
dependencies:
1268
callsites "^3.0.0"
1269
1270
+path-exists@^4.0.0:
1271
+ version "4.0.0"
1272
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1273
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1274
+
1275
path-is-absolute@^1.0.0:
1276
version "1.0.1"
1277
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -1051,6 +1282,14 @@ path-parse@^1.0.7:
1282
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1283
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1284
1285
+path-scurry@^1.6.1:
1286
+ version "1.10.1"
1287
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698"
1288
+ integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==
1289
+ dependencies:
1290
+ lru-cache "^9.1.1 || ^10.0.0"
1291
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
1292
+
1293
picocolors@^1.0.0:
1294
version "1.0.0"
1295
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
@@ -1075,6 +1314,16 @@ prettier@^2.8.7:
1314
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450"
1315
integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==
1316
1317
+progress@^2.0.3:
1318
+ version "2.0.3"
1319
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
1320
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
1321
+
1322
+proxy-from-env@^1.1.0:
1323
+ version "1.1.0"
1324
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
1325
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
1326
+
1327
queue-microtask@^1.2.2:
1328
version "1.2.3"
1329
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -1238,6 +1487,12 @@ svelte@^3.58.0:
1487
dependencies:
1488
"@tauri-apps/api" "^1.2.0"
1489
1490
+"tauri-plugin-log-api@https://github.com/tauri-apps/tauri-plugin-log#v1":
1491
+ version "0.0.0"
1492
+ resolved "https://github.com/tauri-apps/tauri-plugin-log#9075595196d5a66f8f3265d2aaf7e2ffeb4cb2ab"
1493
+ dependencies:
1494
+ "@tauri-apps/api" "1.4.0"
1495
+
1496
"tauri-plugin-store-api@https://github.com/tauri-apps/tauri-plugin-store#v1":
1497
version "0.0.0"
1498
resolved "https://github.com/tauri-apps/tauri-plugin-store#96e2eb3971c981ece96f0a9e47dad14a2d1d2539"
@@ -1251,6 +1506,16 @@ to-regex-range@^5.0.1:
1506
dependencies:
1507
is-number "^7.0.0"
1508
1509
+tr46@~0.0.3:
1510
+ version "0.0.3"
1511
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
1512
+ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
1513
+
1514
+"tslib@^2.4.1 || ^1.9.3":
1515
+ version "2.6.2"
1516
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
1517
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
1518
+
1519
tslib@^2.5.0:
1520
version "2.5.0"
1521
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
@@ -1261,6 +1526,16 @@ typescript@^5.0.3, typescript@^5.0.4:
1526
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
1527
integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
1528
1529
+unplugin@1.0.1:
1530
+ version "1.0.1"
1531
+ resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.0.1.tgz#83b528b981cdcea1cad422a12cd02e695195ef3f"
1532
+ integrity sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==
1533
+ dependencies:
1534
+ acorn "^8.8.1"
1535
+ chokidar "^3.5.3"
1536
+ webpack-sources "^3.2.3"
1537
+ webpack-virtual-modules "^0.5.0"
1538
+
1539
vite@^4.2.3:
1540
version "4.2.3"
1541
resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.3.tgz#067ada47ebd52e078d014bf1f92badda9d10564d"
@@ -1283,7 +1558,42 @@ w3c-keyname@^2.2.4:
1558
resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.6.tgz#8412046116bc16c5d73d4e612053ea10a189c85f"
1559
integrity sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==
1560
1561
+webidl-conversions@^3.0.0:
1562
+ version "3.0.1"
1563
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
1564
+ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
1565
+
1566
+webpack-sources@^3.2.3:
1567
+ version "3.2.3"
1568
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
1569
+ integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
1570
+
1571
+webpack-virtual-modules@^0.5.0:
1572
+ version "0.5.0"
1573
+ resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c"
1574
+ integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==
1575
+
1576
+whatwg-url@^5.0.0:
1577
+ version "5.0.0"
1578
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
1579
+ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
1580
+ dependencies:
1581
+ tr46 "~0.0.3"
1582
+ webidl-conversions "^3.0.0"
1583
+
1584
+which@^2.0.2:
1585
+ version "2.0.2"
1586
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1587
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1588
+ dependencies:
1589
+ isexe "^2.0.0"
1590
+
1591
wrappy@1:
1592
version "1.0.2"
1593
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1594
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1595
+
1596
+yocto-queue@^0.1.0:
1597
+ version "0.1.0"
1598
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
1599
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==