refactor rewarded ad

Seto committed Nov 22, 2025 at 16:06 UTC 3ba1638402af1ff249f57f648ef5bd861e7582a4
12 files changed +1094 -46
Cargo.toml
+1 -1
@@ -1,4 +1,4 @@
1 - [package]
1 +[package]
2 name = "tauri-plugin-admob"
3 version = "0.0.4"
4 authors = [ "Tauri plugin admob authors" ]
android/src/main/java/Generated.kt
+26 -35
@@ -2,40 +2,31 @@ package com.plugin.admob
2
3 class Generated {
4 object Events {
5 - const val AD_CLICK = "ad.click"
6 - const val AD_DISMISS = "ad.dismiss"
7 - const val AD_IMPRESSION = "ad.impression"
8 - const val AD_LOAD = "ad.load"
9 - const val AD_LOAD_FAIL = "ad.loadfail"
10 - const val AD_REWARD = "ad.reward"
11 - const val AD_SHOW = "ad.show"
12 - const val AD_SHOW_FAIL = "ad.showfail"
13 - const val BANNER_CLICK = "banner.click"
14 - const val BANNER_CLOSE = "banner.close"
15 - const val BANNER_IMPRESSION = "banner.impression"
16 - const val BANNER_LOAD = "banner.load"
17 - const val BANNER_LOAD_FAIL = "banner.loadfail"
18 - const val BANNER_OPEN = "banner.open"
19 - const val BANNER_SIZE_CHANGE = "banner.sizechange"
20 - const val INTERSTITIAL_DISMISS = "interstitial.dismiss"
21 - const val INTERSTITIAL_IMPRESSION = "interstitial.impression"
22 - const val INTERSTITIAL_LOAD = "interstitial.load"
23 - const val INTERSTITIAL_LOAD_FAIL = "interstitial.loadfail"
24 - const val INTERSTITIAL_SHOW = "interstitial.show"
25 - const val INTERSTITIAL_SHOW_FAIL = "interstitial.showfail"
26 - const val REWARDED_DISMISS = "rewarded.dismiss"
27 - const val REWARDED_IMPRESSION = "rewarded.impression"
28 - const val REWARDED_INTERSTITIAL_DISMISS = "rewardedi.dismiss"
29 - const val REWARDED_INTERSTITIAL_IMPRESSION = "rewardedi.impression"
30 - const val REWARDED_INTERSTITIAL_LOAD = "rewardedi.load"
31 - const val REWARDED_INTERSTITIAL_LOAD_FAIL = "rewardedi.loadfail"
32 - const val REWARDED_INTERSTITIAL_REWARD = "rewardedi.reward"
33 - const val REWARDED_INTERSTITIAL_SHOW = "rewardedi.show"
34 - const val REWARDED_INTERSTITIAL_SHOW_FAIL = "rewardedi.showfail"
35 - const val REWARDED_LOAD = "rewarded.load"
36 - const val REWARDED_LOAD_FAIL = "rewarded.loadfail"
37 - const val REWARDED_REWARD = "rewarded.reward"
38 - const val REWARDED_SHOW = "rewarded.show"
39 - const val REWARDED_SHOW_FAIL = "rewarded.showfail"
5 + const val BANNER_CLICK = "banner/click"
6 + const val BANNER_CLOSE = "banner/close"
7 + const val BANNER_IMPRESSION = "banner/impression"
8 + const val BANNER_LOAD = "banner/load"
9 + const val BANNER_LOAD_FAIL = "banner/load_fail"
10 + const val BANNER_OPEN = "banner/open"
11 + const val INTERSTITIAL_DISMISS = "interstitial/dismiss"
12 + const val INTERSTITIAL_IMPRESSION = "interstitial/impression"
13 + const val INTERSTITIAL_LOAD = "interstitial/load"
14 + const val INTERSTITIAL_LOAD_FAIL = "interstitial/load_fail"
15 + const val INTERSTITIAL_SHOW = "interstitial/show"
16 + const val INTERSTITIAL_SHOW_FAIL = "interstitial/show_fail"
17 + const val REWARDED_INTERSTITIAL_DISMISS = "rewardedInterstitial/dismiss"
18 + const val REWARDED_INTERSTITIAL_IMPRESSION = "rewardedInterstitial/impression"
19 + const val REWARDED_INTERSTITIAL_LOAD = "rewardedInterstitial/load"
20 + const val REWARDED_INTERSTITIAL_LOAD_FAIL = "rewardedInterstitial/load_fail"
21 + const val REWARDED_INTERSTITIAL_REWARD = "rewardedInterstitial/reward"
22 + const val REWARDED_INTERSTITIAL_SHOW = "rewardedInterstitial/show"
23 + const val REWARDED_INTERSTITIAL_SHOW_FAIL = "rewardedInterstitial/show_fail"
24 + const val REWARDED_DISMISS = "rewarded/dismiss"
25 + const val REWARDED_IMPRESSION = "rewarded/impression"
26 + const val REWARDED_LOAD = "rewarded/load"
27 + const val REWARDED_LOAD_FAIL = "rewarded/load_fail"
28 + const val REWARDED_REWARD = "rewarded/reward"
29 + const val REWARDED_SHOW = "rewarded/show"
30 + const val REWARDED_SHOW_FAIL = "rewarded/show_fail"
31 }
32 }
bun.lockb
Binary files a/bun.lockb and b/bun.lockb differ
examples/tauri-app/bun.lockb
Binary files a/examples/tauri-app/bun.lockb and b/examples/tauri-app/bun.lockb differ
examples/tauri-app/src/App.svelte
+19 -2
@@ -1,5 +1,5 @@
1 <script lang="ts">
2 -import { BannerAd } from "tauri-plugin-admob-api";
2 +import { BannerAd, RewardedAd } from "tauri-plugin-admob-api";
3 import Greet from "./lib/Greet.svelte";
4
5 let response = "";
@@ -14,6 +14,19 @@ async function showBannerAd() {
14 }
15 await banner.show();
16 }
17 +async function showRewardedAd() {
18 + try {
19 + const rewardedAd = new RewardedAd({
20 + adUnitId: "ca-app-pub-3940256099942544/5224354917",
21 + });
22 + if (!(await rewardedAd.isLoaded())) {
23 + await rewardedAd.load();
24 + }
25 + await rewardedAd.show();
26 + } catch(e) {
27 + console.log(e);
28 + }
29 +}
30 </script>
31
32 <main class="container">
@@ -39,10 +52,14 @@ async function showBannerAd() {
52 <Greet/>
53 </div>
54
42 - <div>
55 + <div class="row">
56 <button on:click="{showBannerAd}">Show Banner Ad</button>
57 <div>{@html response}</div>
58 </div>
59 + <div class="row">
60 + <button on:click="{showRewardedAd}">Show Rewarded Ad</button>
61 + <div>{@html response}</div>
62 + </div>
63
64 </main>
65
guest-js/ads/rewarded.ts
+21
@@ -1,4 +1,5 @@
1 import { MobileAd, type MobileAdOptions } from "./common";
2 +import { addPluginListener, PluginListener } from "@tauri-apps/api/core";
3
4 export class RewardedAd extends MobileAd<RewardedAdOptions> {
5 static cls = "RewardedAd";
@@ -14,6 +15,26 @@ export class RewardedAd extends MobileAd<RewardedAdOptions> {
15 async show() {
16 return super.show();
17 }
18 +
19 + async onRewarded(
20 + handler: (payload: any) => void
21 + ): Promise<PluginListener> {
22 + return await addPluginListener(
23 + 'admob',
24 + 'rewarded/reward',
25 + handler
26 + );
27 + }
28 +}
29 +
30 +export async function onRewarded(
31 + handler: (payload: any) => void
32 +): Promise<PluginListener> {
33 + return await addPluginListener(
34 + 'admob',
35 + 'rewarded/reward',
36 + handler
37 + );
38 }
39
40 export class RewardedInterstitialAd extends MobileAd<RewardedAdOptions> {
package.json
+8 -5
@@ -12,7 +12,10 @@
12 "import": "./dist-js/index.js",
13 "require": "./dist-js/index.cjs"
14 },
15 - "files": ["dist-js", "README.md"],
15 + "files": [
16 + "dist-js",
17 + "README.md"
18 + ],
19 "scripts": {
20 "build": "rolldown -c",
21 "prepublishOnly": "bun run check && bun run build",
@@ -25,14 +28,14 @@
28 "check": "biome check"
29 },
30 "dependencies": {
28 - "@tauri-apps/api": ">=2.0.0-beta.6"
31 + "@tauri-apps/api": "^2.9.0"
32 },
33 "devDependencies": {
34 "@biomejs/biome": "1.9.4",
35 "@rollup/plugin-typescript": "^11.1.6",
36 "@tauri-apps/cli": "next",
34 - "rolldown": "^1.0.0-beta.6",
35 - "tslib": "^2.6.3",
36 - "typescript": "^5.5.3"
37 + "rolldown": "1.0.0-beta.51",
38 + "tslib": "^2.8.1",
39 + "typescript": "^5.9.3"
40 }
41 }
permissions/autogenerated/commands/registerListener.toml new
+13
@@ -0,0 +1,13 @@
1 +# Automatically generated - DO NOT EDIT!
2 +
3 +"$schema" = "../../schemas/schema.json"
4 +
5 +[[permission]]
6 +identifier = "allow-registerListener"
7 +description = "Enables the registerListener command without any pre-configured scope."
8 +commands.allow = ["registerListener"]
9 +
10 +[[permission]]
11 +identifier = "deny-registerListener"
12 +description = "Denies the registerListener command without any pre-configured scope."
13 +commands.deny = ["registerListener"]
permissions/autogenerated/reference.md
+27
@@ -4,6 +4,7 @@ Default permissions for the plugin
4
5 #### This default permission set includes the following:
6
7 +- `allow-registerListener`
8 - `allow-adCreate`
9 - `allow-adHide`
10 - `allow-adIsLoaded`
@@ -236,6 +237,32 @@ Denies the isPrivacyOptionsRequired command without any pre-configured scope.
237 <tr>
238 <td>
239
240 +`admob:allow-registerListener`
241 +
242 +</td>
243 +<td>
244 +
245 +Enables the registerListener command without any pre-configured scope.
246 +
247 +</td>
248 +</tr>
249 +
250 +<tr>
251 +<td>
252 +
253 +`admob:deny-registerListener`
254 +
255 +</td>
256 +<td>
257 +
258 +Denies the registerListener command without any pre-configured scope.
259 +
260 +</td>
261 +</tr>
262 +
263 +<tr>
264 +<td>
265 +
266 `admob:allow-register-listener`
267
268 </td>
permissions/default.toml
+1 -1
@@ -1,3 +1,3 @@
1 [default]
2 description = "Default permissions for the plugin"
3 -permissions = ["allow-adCreate", "allow-adHide", "allow-adIsLoaded", "allow-adLoad", "allow-adShow", "allow-configRequest", "allow-configure", "allow-requestTrackingAuthorization", "allow-trackingAuthorizationStatus", "allow-isPrivacyOptionsRequired", "allow-showPrivacyOptionsForm"]
3 +permissions = ["allow-registerListener", "allow-adCreate", "allow-adHide", "allow-adIsLoaded", "allow-adLoad", "allow-adShow", "allow-configRequest", "allow-configure", "allow-requestTrackingAuthorization", "allow-trackingAuthorizationStatus", "allow-isPrivacyOptionsRequired", "allow-showPrivacyOptionsForm"]
permissions/schemas/schema.json
+14 -2
@@ -390,6 +390,18 @@
390 "const": "deny-isPrivacyOptionsRequired",
391 "markdownDescription": "Denies the isPrivacyOptionsRequired command without any pre-configured scope."
392 },
393 + {
394 + "description": "Enables the registerListener command without any pre-configured scope.",
395 + "type": "string",
396 + "const": "allow-registerListener",
397 + "markdownDescription": "Enables the registerListener command without any pre-configured scope."
398 + },
399 + {
400 + "description": "Denies the registerListener command without any pre-configured scope.",
401 + "type": "string",
402 + "const": "deny-registerListener",
403 + "markdownDescription": "Denies the registerListener command without any pre-configured scope."
404 + },
405 {
406 "description": "Enables the register_listener command without any pre-configured scope.",
407 "type": "string",
@@ -439,10 +451,10 @@
451 "markdownDescription": "Denies the trackingAuthorizationStatus command without any pre-configured scope."
452 },
453 {
442 - "description": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-adCreate`\n- `allow-adHide`\n- `allow-adIsLoaded`\n- `allow-adLoad`\n- `allow-adShow`\n- `allow-configRequest`\n- `allow-configure`\n- `allow-requestTrackingAuthorization`\n- `allow-trackingAuthorizationStatus`\n- `allow-isPrivacyOptionsRequired`\n- `allow-showPrivacyOptionsForm`",
454 + "description": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-registerListener`\n- `allow-adCreate`\n- `allow-adHide`\n- `allow-adIsLoaded`\n- `allow-adLoad`\n- `allow-adShow`\n- `allow-configRequest`\n- `allow-configure`\n- `allow-requestTrackingAuthorization`\n- `allow-trackingAuthorizationStatus`\n- `allow-isPrivacyOptionsRequired`\n- `allow-showPrivacyOptionsForm`",
455 "type": "string",
456 "const": "default",
445 - "markdownDescription": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-adCreate`\n- `allow-adHide`\n- `allow-adIsLoaded`\n- `allow-adLoad`\n- `allow-adShow`\n- `allow-configRequest`\n- `allow-configure`\n- `allow-requestTrackingAuthorization`\n- `allow-trackingAuthorizationStatus`\n- `allow-isPrivacyOptionsRequired`\n- `allow-showPrivacyOptionsForm`"
457 + "markdownDescription": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-registerListener`\n- `allow-adCreate`\n- `allow-adHide`\n- `allow-adIsLoaded`\n- `allow-adLoad`\n- `allow-adShow`\n- `allow-configRequest`\n- `allow-configure`\n- `allow-requestTrackingAuthorization`\n- `allow-trackingAuthorizationStatus`\n- `allow-isPrivacyOptionsRequired`\n- `allow-showPrivacyOptionsForm`"
458 }
459 ]
460 }
pnpm-lock.yaml new
+964
@@ -0,0 +1,964 @@
1 +lockfileVersion: '9.0'
2 +
3 +settings:
4 + autoInstallPeers: true
5 + excludeLinksFromLockfile: false
6 +
7 +importers:
8 +
9 + .:
10 + dependencies:
11 + '@tauri-apps/api':
12 + specifier: ^2.9.0
13 + version: 2.9.0
14 + devDependencies:
15 + '@biomejs/biome':
16 + specifier: 1.9.4
17 + version: 1.9.4
18 + '@rollup/plugin-typescript':
19 + specifier: ^11.1.6
20 + version: 11.1.6(rollup@2.79.2)(tslib@2.8.1)(typescript@5.9.3)
21 + '@tauri-apps/cli':
22 + specifier: next
23 + version: 2.0.0-rc.18
24 + rolldown:
25 + specifier: 1.0.0-beta.51
26 + version: 1.0.0-beta.51
27 + tslib:
28 + specifier: ^2.8.1
29 + version: 2.8.1
30 + typescript:
31 + specifier: ^5.9.3
32 + version: 5.9.3
33 +
34 + examples/tauri-app:
35 + dependencies:
36 + '@tauri-apps/api':
37 + specifier: ^2.9.0
38 + version: 2.9.0
39 + tauri-plugin-admob-api:
40 + specifier: link:../..
41 + version: link:../..
42 + devDependencies:
43 + '@sveltejs/vite-plugin-svelte':
44 + specifier: ^1.4.0
45 + version: 1.4.0(svelte@3.59.2)(vite@3.2.11)
46 + '@tauri-apps/cli':
47 + specifier: next
48 + version: 2.0.0-rc.18
49 + internal-ip:
50 + specifier: ^7.0.0
51 + version: 7.0.0
52 + svelte:
53 + specifier: ^3.59.2
54 + version: 3.59.2
55 + vite:
56 + specifier: ^3.2.11
57 + version: 3.2.11
58 +
59 +packages:
60 +
61 + '@biomejs/biome@1.9.4':
62 + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==}
63 + engines: {node: '>=14.21.3'}
64 + hasBin: true
65 +
66 + '@biomejs/cli-darwin-arm64@1.9.4':
67 + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==}
68 + engines: {node: '>=14.21.3'}
69 + cpu: [arm64]
70 + os: [darwin]
71 +
72 + '@biomejs/cli-darwin-x64@1.9.4':
73 + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==}
74 + engines: {node: '>=14.21.3'}
75 + cpu: [x64]
76 + os: [darwin]
77 +
78 + '@biomejs/cli-linux-arm64-musl@1.9.4':
79 + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==}
80 + engines: {node: '>=14.21.3'}
81 + cpu: [arm64]
82 + os: [linux]
83 +
84 + '@biomejs/cli-linux-arm64@1.9.4':
85 + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==}
86 + engines: {node: '>=14.21.3'}
87 + cpu: [arm64]
88 + os: [linux]
89 +
90 + '@biomejs/cli-linux-x64-musl@1.9.4':
91 + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==}
92 + engines: {node: '>=14.21.3'}
93 + cpu: [x64]
94 + os: [linux]
95 +
96 + '@biomejs/cli-linux-x64@1.9.4':
97 + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==}
98 + engines: {node: '>=14.21.3'}
99 + cpu: [x64]
100 + os: [linux]
101 +
102 + '@biomejs/cli-win32-arm64@1.9.4':
103 + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==}
104 + engines: {node: '>=14.21.3'}
105 + cpu: [arm64]
106 + os: [win32]
107 +
108 + '@biomejs/cli-win32-x64@1.9.4':
109 + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==}
110 + engines: {node: '>=14.21.3'}
111 + cpu: [x64]
112 + os: [win32]
113 +
114 + '@emnapi/core@1.7.1':
115 + resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==}
116 +
117 + '@emnapi/runtime@1.7.1':
118 + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==}
119 +
120 + '@emnapi/wasi-threads@1.1.0':
121 + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
122 +
123 + '@napi-rs/wasm-runtime@1.0.7':
124 + resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==}
125 +
126 + '@oxc-project/types@0.98.0':
127 + resolution: {integrity: sha512-Vzmd6FsqVuz5HQVcRC/hrx7Ujo3WEVeQP7C2UNP5uy1hUY4SQvMB+93jxkI1KRHz9a/6cni3glPOtvteN+zpsw==}
128 +
129 + '@rolldown/binding-android-arm64@1.0.0-beta.51':
130 + resolution: {integrity: sha512-Ctn8FUXKWWQI9pWC61P1yumS9WjQtelNS9riHwV7oCkknPGaAry4o7eFx2KgoLMnI2BgFJYpW7Im8/zX3BuONg==}
131 + engines: {node: ^20.19.0 || >=22.12.0}
132 + cpu: [arm64]
133 + os: [android]
134 +
135 + '@rolldown/binding-darwin-arm64@1.0.0-beta.51':
136 + resolution: {integrity: sha512-EL1aRW2Oq15ShUEkBPsDtLMO8GTqfb/ktM/dFaVzXKQiEE96Ss6nexMgfgQrg8dGnNpndFyffVDb5IdSibsu1g==}
137 + engines: {node: ^20.19.0 || >=22.12.0}
138 + cpu: [arm64]
139 + os: [darwin]
140 +
141 + '@rolldown/binding-darwin-x64@1.0.0-beta.51':
142 + resolution: {integrity: sha512-uGtYKlFen9pMIPvkHPWZVDtmYhMQi5g5Ddsndg1gf3atScKYKYgs5aDP4DhHeTwGXQglhfBG7lEaOIZ4UAIWww==}
143 + engines: {node: ^20.19.0 || >=22.12.0}
144 + cpu: [x64]
145 + os: [darwin]
146 +
147 + '@rolldown/binding-freebsd-x64@1.0.0-beta.51':
148 + resolution: {integrity: sha512-JRoVTQtHYbZj1P07JLiuTuXjiBtIa7ag7/qgKA6CIIXnAcdl4LrOf7nfDuHPJcuRKaP5dzecMgY99itvWfmUFQ==}
149 + engines: {node: ^20.19.0 || >=22.12.0}
150 + cpu: [x64]
151 + os: [freebsd]
152 +
153 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51':
154 + resolution: {integrity: sha512-BKATVnpPZ0TYBW9XfDwyd4kPGgvf964HiotIwUgpMrFOFYWqpZ+9ONNzMV4UFAYC7Hb5C2qgYQk/qj2OnAd4RQ==}
155 + engines: {node: ^20.19.0 || >=22.12.0}
156 + cpu: [arm]
157 + os: [linux]
158 +
159 + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51':
160 + resolution: {integrity: sha512-xLd7da5jkfbVsBCm1buIRdWtuXY8+hU3+6ESXY/Tk5X5DPHaifrUblhYDgmA34dQt6WyNC2kfXGgrduPEvDI6Q==}
161 + engines: {node: ^20.19.0 || >=22.12.0}
162 + cpu: [arm64]
163 + os: [linux]
164 +
165 + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.51':
166 + resolution: {integrity: sha512-EQFXTgHxxTzv3t5EmjUP/DfxzFYx9sMndfLsYaAY4DWF6KsK1fXGYsiupif6qPTViPC9eVmRm78q0pZU/kuIPg==}
167 + engines: {node: ^20.19.0 || >=22.12.0}
168 + cpu: [arm64]
169 + os: [linux]
170 +
171 + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.51':
172 + resolution: {integrity: sha512-p5P6Xpa68w3yFaAdSzIZJbj+AfuDnMDqNSeglBXM7UlJT14Q4zwK+rV+8Mhp9MiUb4XFISZtbI/seBprhkQbiQ==}
173 + engines: {node: ^20.19.0 || >=22.12.0}
174 + cpu: [x64]
175 + os: [linux]
176 +
177 + '@rolldown/binding-linux-x64-musl@1.0.0-beta.51':
178 + resolution: {integrity: sha512-sNVVyLa8HB8wkFipdfz1s6i0YWinwpbMWk5hO5S+XAYH2UH67YzUT13gs6wZTKg2x/3gtgXzYnHyF5wMIqoDAw==}
179 + engines: {node: ^20.19.0 || >=22.12.0}
180 + cpu: [x64]
181 + os: [linux]
182 +
183 + '@rolldown/binding-openharmony-arm64@1.0.0-beta.51':
184 + resolution: {integrity: sha512-e/JMTz9Q8+T3g/deEi8DK44sFWZWGKr9AOCW5e8C8SCVWzAXqYXAG7FXBWBNzWEZK0Rcwo9TQHTQ9Q0gXgdCaA==}
185 + engines: {node: ^20.19.0 || >=22.12.0}
186 + cpu: [arm64]
187 + os: [openharmony]
188 +
189 + '@rolldown/binding-wasm32-wasi@1.0.0-beta.51':
190 + resolution: {integrity: sha512-We3LWqSu6J9s5Y0MK+N7fUiiu37aBGPG3Pc347EoaROuAwkCS2u9xJ5dpIyLW4B49CIbS3KaPmn4kTgPb3EyPw==}
191 + engines: {node: '>=14.0.0'}
192 + cpu: [wasm32]
193 +
194 + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51':
195 + resolution: {integrity: sha512-fj56buHRuMM+r/cb6ZYfNjNvO/0xeFybI6cTkTROJatdP4fvmQ1NS8D/Lm10FCSDEOkqIz8hK3TGpbAThbPHsA==}
196 + engines: {node: ^20.19.0 || >=22.12.0}
197 + cpu: [arm64]
198 + os: [win32]
199 +
200 + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51':
201 + resolution: {integrity: sha512-fkqEqaeEx8AySXiDm54b/RdINb3C0VovzJA3osMhZsbn6FoD73H0AOIiaVAtGr6x63hefruVKTX8irAm4Jkt2w==}
202 + engines: {node: ^20.19.0 || >=22.12.0}
203 + cpu: [ia32]
204 + os: [win32]
205 +
206 + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.51':
207 + resolution: {integrity: sha512-CWuLG/HMtrVcjKGa0C4GnuxONrku89g0+CsH8nT0SNhOtREXuzwgjIXNJImpE/A/DMf9JF+1Xkrq/YRr+F/rCg==}
208 + engines: {node: ^20.19.0 || >=22.12.0}
209 + cpu: [x64]
210 + os: [win32]
211 +
212 + '@rolldown/pluginutils@1.0.0-beta.51':
213 + resolution: {integrity: sha512-51/8cNXMrqWqX3o8DZidhwz1uYq0BhHDDSfVygAND1Skx5s1TDw3APSSxCMcFFedwgqGcx34gRouwY+m404BBQ==}
214 +
215 + '@rollup/plugin-typescript@11.1.6':
216 + resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==}
217 + engines: {node: '>=14.0.0'}
218 + peerDependencies:
219 + rollup: ^2.14.0||^3.0.0||^4.0.0
220 + tslib: '*'
221 + typescript: '>=3.7.0'
222 + peerDependenciesMeta:
223 + rollup:
224 + optional: true
225 + tslib:
226 + optional: true
227 +
228 + '@rollup/pluginutils@5.3.0':
229 + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
230 + engines: {node: '>=14.0.0'}
231 + peerDependencies:
232 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
233 + peerDependenciesMeta:
234 + rollup:
235 + optional: true
236 +
237 + '@sveltejs/vite-plugin-svelte@1.4.0':
238 + resolution: {integrity: sha512-6QupI/jemMfK+yI2pMtJcu5iO2gtgTfcBdGwMZZt+lgbFELhszbDl6Qjh000HgAV8+XUA+8EY8DusOFk8WhOIg==}
239 + engines: {node: ^14.18.0 || >= 16}
240 + peerDependencies:
241 + svelte: ^3.44.0
242 + vite: ^3.0.0
243 +
244 + '@tauri-apps/api@2.9.0':
245 + resolution: {integrity: sha512-qD5tMjh7utwBk9/5PrTA/aGr3i5QaJ/Mlt7p8NilQ45WgbifUNPyKWsA63iQ8YfQq6R8ajMapU+/Q8nMcPRLNw==}
246 +
247 + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.18':
248 + resolution: {integrity: sha512-L2/VQ4q1pZyhqOifarVDJf/+JabU6DSUMj6979wXrUOOxmyfLCZaw5qGGsbirYOfxWMo+qcXEFRF411YIv9qWw==}
249 + engines: {node: '>= 10'}
250 + cpu: [arm64]
251 + os: [darwin]
252 +
253 + '@tauri-apps/cli-darwin-x64@2.0.0-rc.18':
254 + resolution: {integrity: sha512-ri0NrRAh2CqejoKym67m9Devpqppnn4SrwWnuqV68oHXan3ibn2CeY+g3ygkb6Ch0v5ZcbxJEtop5fZwUTFH4w==}
255 + engines: {node: '>= 10'}
256 + cpu: [x64]
257 + os: [darwin]
258 +
259 + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.18':
260 + resolution: {integrity: sha512-+dDZQIHXufqq3WVrKycudVeJa8xfRzIY2XHSYunWS5RMRx1PrcvLbZLBcm3BMtwuY9pwbzrpDHL4K/1+Maj4JQ==}
261 + engines: {node: '>= 10'}
262 + cpu: [arm]
263 + os: [linux]
264 +
265 + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.18':
266 + resolution: {integrity: sha512-pti3FmMAJKArbr8FyoU8eFbcRHRcFRaD16crjNfXfGFGUGNXeMcrAAZptDpGZ9fPfMYBQYzUN/uKqHvrlrYFIw==}
267 + engines: {node: '>= 10'}
268 + cpu: [arm64]
269 + os: [linux]
270 +
271 + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.18':
272 + resolution: {integrity: sha512-1e+h543bXRnLLhUwhglnnH6eN4dgtbxKS48oHsBCpLEqLNrovHTHEd1xSZgUAEOh9J9hpIh6Bme7loCwOps9ZQ==}
273 + engines: {node: '>= 10'}
274 + cpu: [arm64]
275 + os: [linux]
276 +
277 + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.18':
278 + resolution: {integrity: sha512-5lwBuY06s5J1iCOZq+hM6spBhaGejkh8zn8HdVjnL0mqZ+cH/qbC1Uss6HO/gC1Q53JQFoYeam2P2/8UuNjlHQ==}
279 + engines: {node: '>= 10'}
280 + cpu: [x64]
281 + os: [linux]
282 +
283 + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.18':
284 + resolution: {integrity: sha512-jtJ1EP6GhW258MKujampDbPWX+El26m8yGBzEcZxurrhFvN8d3QHgle4eT/cgqlVT+AZ9DVrhDwTfXilGjERZA==}
285 + engines: {node: '>= 10'}
286 + cpu: [x64]
287 + os: [linux]
288 +
289 + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.18':
290 + resolution: {integrity: sha512-E9PSjWwvUnhnW/wjXti0UQgXDYLTUBKWtT2yOS2dXLspmvh1vwdRgZn/AjhjMM2HwZzhBW94Qys06mQAz6z2vg==}
291 + engines: {node: '>= 10'}
292 + cpu: [arm64]
293 + os: [win32]
294 +
295 + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.18':
296 + resolution: {integrity: sha512-I+r88I/Dyqex7oV1NOtW3kxYoRegjxtQrQLILGsn6xcirTERnX0pPl1GYW5ooTxvs/H+qt4tuW5iL8Fp1lpmuQ==}
297 + engines: {node: '>= 10'}
298 + cpu: [ia32]
299 + os: [win32]
300 +
301 + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.18':
302 + resolution: {integrity: sha512-IEl0dDc10ln1rt2SGoNxKiYJIDS/fBsS1hTKT4cfZeeKCgHOqMqpdGq25RaVmkkk0UhW/9WeyjxIyFGO3ll4TA==}
303 + engines: {node: '>= 10'}
304 + cpu: [x64]
305 + os: [win32]
306 +
307 + '@tauri-apps/cli@2.0.0-rc.18':
308 + resolution: {integrity: sha512-43PjSEISHI3uH2jyR7QlEJUv1yQYlCOvm5eEdadhHIooV5Dqjs6zkddwEJuHYRpSLI/IfiQ8VPBYrw/GfyvhCA==}
309 + engines: {node: '>= 10'}
310 + hasBin: true
311 +
312 + '@tybys/wasm-util@0.10.1':
313 + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
314 +
315 + '@types/estree@1.0.8':
316 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
317 +
318 + cross-spawn@7.0.6:
319 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
320 + engines: {node: '>= 8'}
321 +
322 + debug@4.4.3:
323 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
324 + engines: {node: '>=6.0'}
325 + peerDependencies:
326 + supports-color: '*'
327 + peerDependenciesMeta:
328 + supports-color:
329 + optional: true
330 +
331 + deepmerge@4.3.1:
332 + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
333 + engines: {node: '>=0.10.0'}
334 +
335 + default-gateway@6.0.3:
336 + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
337 + engines: {node: '>= 10'}
338 +
339 + esbuild-darwin-arm64@0.15.18:
340 + resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
341 + engines: {node: '>=12'}
342 + cpu: [arm64]
343 + os: [darwin]
344 +
345 + esbuild@0.15.18:
346 + resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
347 + engines: {node: '>=12'}
348 + hasBin: true
349 +
350 + estree-walker@2.0.2:
351 + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
352 +
353 + execa@5.1.1:
354 + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
355 + engines: {node: '>=10'}
356 +
357 + fsevents@2.3.3:
358 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
359 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
360 + os: [darwin]
361 +
362 + function-bind@1.1.2:
363 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
364 +
365 + get-stream@6.0.1:
366 + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
367 + engines: {node: '>=10'}
368 +
369 + hasown@2.0.2:
370 + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
371 + engines: {node: '>= 0.4'}
372 +
373 + human-signals@2.1.0:
374 + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
375 + engines: {node: '>=10.17.0'}
376 +
377 + internal-ip@7.0.0:
378 + resolution: {integrity: sha512-qE4TeD4brqC45Vq/+VASeMiS1KRyfBkR6HT2sh9pZVVCzSjPkaCEfKFU+dL0PRv7NHJtvoKN2r82G6wTfzorkw==}
379 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
380 +
381 + ip-regex@4.3.0:
382 + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==}
383 + engines: {node: '>=8'}
384 +
385 + ipaddr.js@2.2.0:
386 + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==}
387 + engines: {node: '>= 10'}
388 +
389 + is-core-module@2.16.1:
390 + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
391 + engines: {node: '>= 0.4'}
392 +
393 + is-ip@3.1.0:
394 + resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==}
395 + engines: {node: '>=8'}
396 +
397 + is-stream@2.0.1:
398 + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
399 + engines: {node: '>=8'}
400 +
401 + isexe@2.0.0:
402 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
403 +
404 + kleur@4.1.5:
405 + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
406 + engines: {node: '>=6'}
407 +
408 + magic-string@0.26.7:
409 + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
410 + engines: {node: '>=12'}
411 +
412 + merge-stream@2.0.0:
413 + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
414 +
415 + mimic-fn@2.1.0:
416 + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
417 + engines: {node: '>=6'}
418 +
419 + ms@2.1.3:
420 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
421 +
422 + nanoid@3.3.11:
423 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
424 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
425 + hasBin: true
426 +
427 + npm-run-path@4.0.1:
428 + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
429 + engines: {node: '>=8'}
430 +
431 + onetime@5.1.2:
432 + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
433 + engines: {node: '>=6'}
434 +
435 + p-event@4.2.0:
436 + resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==}
437 + engines: {node: '>=8'}
438 +
439 + p-finally@1.0.0:
440 + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
441 + engines: {node: '>=4'}
442 +
443 + p-timeout@3.2.0:
444 + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
445 + engines: {node: '>=8'}
446 +
447 + path-key@3.1.1:
448 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
449 + engines: {node: '>=8'}
450 +
451 + path-parse@1.0.7:
452 + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
453 +
454 + picocolors@1.1.1:
455 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
456 +
457 + picomatch@4.0.3:
458 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
459 + engines: {node: '>=12'}
460 +
461 + postcss@8.5.6:
462 + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
463 + engines: {node: ^10 || ^12 || >=14}
464 +
465 + resolve@1.22.11:
466 + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
467 + engines: {node: '>= 0.4'}
468 + hasBin: true
469 +
470 + rolldown@1.0.0-beta.51:
471 + resolution: {integrity: sha512-ZRLgPlS91l4JztLYEZnmMcd3Umcla1hkXJgiEiR4HloRJBBoeaX8qogTu5Jfu36rRMVLndzqYv0h+M5gJAkUfg==}
472 + engines: {node: ^20.19.0 || >=22.12.0}
473 + hasBin: true
474 +
475 + rollup@2.79.2:
476 + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==}
477 + engines: {node: '>=10.0.0'}
478 + hasBin: true
479 +
480 + shebang-command@2.0.0:
481 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
482 + engines: {node: '>=8'}
483 +
484 + shebang-regex@3.0.0:
485 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
486 + engines: {node: '>=8'}
487 +
488 + signal-exit@3.0.7:
489 + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
490 +
491 + source-map-js@1.2.1:
492 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
493 + engines: {node: '>=0.10.0'}
494 +
495 + sourcemap-codec@1.4.8:
496 + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
497 + deprecated: Please use @jridgewell/sourcemap-codec instead
498 +
499 + strip-final-newline@2.0.0:
500 + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
501 + engines: {node: '>=6'}
502 +
503 + supports-preserve-symlinks-flag@1.0.0:
504 + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
505 + engines: {node: '>= 0.4'}
506 +
507 + svelte-hmr@0.15.3:
508 + resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==}
509 + engines: {node: ^12.20 || ^14.13.1 || >= 16}
510 + peerDependencies:
511 + svelte: ^3.19.0 || ^4.0.0
512 +
513 + svelte@3.59.2:
514 + resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==}
515 + engines: {node: '>= 8'}
516 +
517 + tslib@2.8.1:
518 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
519 +
520 + typescript@5.9.3:
521 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
522 + engines: {node: '>=14.17'}
523 + hasBin: true
524 +
525 + vite@3.2.11:
526 + resolution: {integrity: sha512-K/jGKL/PgbIgKCiJo5QbASQhFiV02X9Jh+Qq0AKCRCRKZtOTVi4t6wh75FDpGf2N9rYOnzH87OEFQNaFy6pdxQ==}
527 + engines: {node: ^14.18.0 || >=16.0.0}
528 + hasBin: true
529 + peerDependencies:
530 + '@types/node': '>= 14'
531 + less: '*'
532 + sass: '*'
533 + stylus: '*'
534 + sugarss: '*'
535 + terser: ^5.4.0
536 + peerDependenciesMeta:
537 + '@types/node':
538 + optional: true
539 + less:
540 + optional: true
541 + sass:
542 + optional: true
543 + stylus:
544 + optional: true
545 + sugarss:
546 + optional: true
547 + terser:
548 + optional: true
549 +
550 + vitefu@0.2.5:
551 + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
552 + peerDependencies:
553 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0
554 + peerDependenciesMeta:
555 + vite:
556 + optional: true
557 +
558 + which@2.0.2:
559 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
560 + engines: {node: '>= 8'}
561 + hasBin: true
562 +
563 +snapshots:
564 +
565 + '@biomejs/biome@1.9.4':
566 + optionalDependencies:
567 + '@biomejs/cli-darwin-arm64': 1.9.4
568 + '@biomejs/cli-darwin-x64': 1.9.4
569 + '@biomejs/cli-linux-arm64': 1.9.4
570 + '@biomejs/cli-linux-arm64-musl': 1.9.4
571 + '@biomejs/cli-linux-x64': 1.9.4
572 + '@biomejs/cli-linux-x64-musl': 1.9.4
573 + '@biomejs/cli-win32-arm64': 1.9.4
574 + '@biomejs/cli-win32-x64': 1.9.4
575 +
576 + '@biomejs/cli-darwin-arm64@1.9.4':
577 + optional: true
578 +
579 + '@biomejs/cli-darwin-x64@1.9.4':
580 + optional: true
581 +
582 + '@biomejs/cli-linux-arm64-musl@1.9.4':
583 + optional: true
584 +
585 + '@biomejs/cli-linux-arm64@1.9.4':
586 + optional: true
587 +
588 + '@biomejs/cli-linux-x64-musl@1.9.4':
589 + optional: true
590 +
591 + '@biomejs/cli-linux-x64@1.9.4':
592 + optional: true
593 +
594 + '@biomejs/cli-win32-arm64@1.9.4':
595 + optional: true
596 +
597 + '@biomejs/cli-win32-x64@1.9.4':
598 + optional: true
599 +
600 + '@emnapi/core@1.7.1':
601 + dependencies:
602 + '@emnapi/wasi-threads': 1.1.0
603 + tslib: 2.8.1
604 + optional: true
605 +
606 + '@emnapi/runtime@1.7.1':
607 + dependencies:
608 + tslib: 2.8.1
609 + optional: true
610 +
611 + '@emnapi/wasi-threads@1.1.0':
612 + dependencies:
613 + tslib: 2.8.1
614 + optional: true
615 +
616 + '@napi-rs/wasm-runtime@1.0.7':
617 + dependencies:
618 + '@emnapi/core': 1.7.1
619 + '@emnapi/runtime': 1.7.1
620 + '@tybys/wasm-util': 0.10.1
621 + optional: true
622 +
623 + '@oxc-project/types@0.98.0': {}
624 +
625 + '@rolldown/binding-android-arm64@1.0.0-beta.51':
626 + optional: true
627 +
628 + '@rolldown/binding-darwin-arm64@1.0.0-beta.51':
629 + optional: true
630 +
631 + '@rolldown/binding-darwin-x64@1.0.0-beta.51':
632 + optional: true
633 +
634 + '@rolldown/binding-freebsd-x64@1.0.0-beta.51':
635 + optional: true
636 +
637 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51':
638 + optional: true
639 +
640 + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51':
641 + optional: true
642 +
643 + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.51':
644 + optional: true
645 +
646 + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.51':
647 + optional: true
648 +
649 + '@rolldown/binding-linux-x64-musl@1.0.0-beta.51':
650 + optional: true
651 +
652 + '@rolldown/binding-openharmony-arm64@1.0.0-beta.51':
653 + optional: true
654 +
655 + '@rolldown/binding-wasm32-wasi@1.0.0-beta.51':
656 + dependencies:
657 + '@napi-rs/wasm-runtime': 1.0.7
658 + optional: true
659 +
660 + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51':
661 + optional: true
662 +
663 + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51':
664 + optional: true
665 +
666 + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.51':
667 + optional: true
668 +
669 + '@rolldown/pluginutils@1.0.0-beta.51': {}
670 +
671 + '@rollup/plugin-typescript@11.1.6(rollup@2.79.2)(tslib@2.8.1)(typescript@5.9.3)':
672 + dependencies:
673 + '@rollup/pluginutils': 5.3.0(rollup@2.79.2)
674 + resolve: 1.22.11
675 + typescript: 5.9.3
676 + optionalDependencies:
677 + rollup: 2.79.2
678 + tslib: 2.8.1
679 +
680 + '@rollup/pluginutils@5.3.0(rollup@2.79.2)':
681 + dependencies:
682 + '@types/estree': 1.0.8
683 + estree-walker: 2.0.2
684 + picomatch: 4.0.3
685 + optionalDependencies:
686 + rollup: 2.79.2
687 +
688 + '@sveltejs/vite-plugin-svelte@1.4.0(svelte@3.59.2)(vite@3.2.11)':
689 + dependencies:
690 + debug: 4.4.3
691 + deepmerge: 4.3.1
692 + kleur: 4.1.5
693 + magic-string: 0.26.7
694 + svelte: 3.59.2
695 + svelte-hmr: 0.15.3(svelte@3.59.2)
696 + vite: 3.2.11
697 + vitefu: 0.2.5(vite@3.2.11)
698 + transitivePeerDependencies:
699 + - supports-color
700 +
701 + '@tauri-apps/api@2.9.0': {}
702 +
703 + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.18':
704 + optional: true
705 +
706 + '@tauri-apps/cli-darwin-x64@2.0.0-rc.18':
707 + optional: true
708 +
709 + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.18':
710 + optional: true
711 +
712 + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.18':
713 + optional: true
714 +
715 + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.18':
716 + optional: true
717 +
718 + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.18':
719 + optional: true
720 +
721 + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.18':
722 + optional: true
723 +
724 + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.18':
725 + optional: true
726 +
727 + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.18':
728 + optional: true
729 +
730 + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.18':
731 + optional: true
732 +
733 + '@tauri-apps/cli@2.0.0-rc.18':
734 + optionalDependencies:
735 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.18
736 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.18
737 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.18
738 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.18
739 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.18
740 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.18
741 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.18
742 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.18
743 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.18
744 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.18
745 +
746 + '@tybys/wasm-util@0.10.1':
747 + dependencies:
748 + tslib: 2.8.1
749 + optional: true
750 +
751 + '@types/estree@1.0.8': {}
752 +
753 + cross-spawn@7.0.6:
754 + dependencies:
755 + path-key: 3.1.1
756 + shebang-command: 2.0.0
757 + which: 2.0.2
758 +
759 + debug@4.4.3:
760 + dependencies:
761 + ms: 2.1.3
762 +
763 + deepmerge@4.3.1: {}
764 +
765 + default-gateway@6.0.3:
766 + dependencies:
767 + execa: 5.1.1
768 +
769 + esbuild-darwin-arm64@0.15.18:
770 + optional: true
771 +
772 + esbuild@0.15.18:
773 + optionalDependencies:
774 + '@esbuild/android-arm': 0.15.18
775 + '@esbuild/linux-loong64': 0.15.18
776 + esbuild-android-64: 0.15.18
777 + esbuild-android-arm64: 0.15.18
778 + esbuild-darwin-64: 0.15.18
779 + esbuild-darwin-arm64: 0.15.18
780 + esbuild-freebsd-64: 0.15.18
781 + esbuild-freebsd-arm64: 0.15.18
782 + esbuild-linux-32: 0.15.18
783 + esbuild-linux-64: 0.15.18
784 + esbuild-linux-arm: 0.15.18
785 + esbuild-linux-arm64: 0.15.18
786 + esbuild-linux-mips64le: 0.15.18
787 + esbuild-linux-ppc64le: 0.15.18
788 + esbuild-linux-riscv64: 0.15.18
789 + esbuild-linux-s390x: 0.15.18
790 + esbuild-netbsd-64: 0.15.18
791 + esbuild-openbsd-64: 0.15.18
792 + esbuild-sunos-64: 0.15.18
793 + esbuild-windows-32: 0.15.18
794 + esbuild-windows-64: 0.15.18
795 + esbuild-windows-arm64: 0.15.18
796 +
797 + estree-walker@2.0.2: {}
798 +
799 + execa@5.1.1:
800 + dependencies:
801 + cross-spawn: 7.0.6
802 + get-stream: 6.0.1
803 + human-signals: 2.1.0
804 + is-stream: 2.0.1
805 + merge-stream: 2.0.0
806 + npm-run-path: 4.0.1
807 + onetime: 5.1.2
808 + signal-exit: 3.0.7
809 + strip-final-newline: 2.0.0
810 +
811 + fsevents@2.3.3:
812 + optional: true
813 +
814 + function-bind@1.1.2: {}
815 +
816 + get-stream@6.0.1: {}
817 +
818 + hasown@2.0.2:
819 + dependencies:
820 + function-bind: 1.1.2
821 +
822 + human-signals@2.1.0: {}
823 +
824 + internal-ip@7.0.0:
825 + dependencies:
826 + default-gateway: 6.0.3
827 + ipaddr.js: 2.2.0
828 + is-ip: 3.1.0
829 + p-event: 4.2.0
830 +
831 + ip-regex@4.3.0: {}
832 +
833 + ipaddr.js@2.2.0: {}
834 +
835 + is-core-module@2.16.1:
836 + dependencies:
837 + hasown: 2.0.2
838 +
839 + is-ip@3.1.0:
840 + dependencies:
841 + ip-regex: 4.3.0
842 +
843 + is-stream@2.0.1: {}
844 +
845 + isexe@2.0.0: {}
846 +
847 + kleur@4.1.5: {}
848 +
849 + magic-string@0.26.7:
850 + dependencies:
851 + sourcemap-codec: 1.4.8
852 +
853 + merge-stream@2.0.0: {}
854 +
855 + mimic-fn@2.1.0: {}
856 +
857 + ms@2.1.3: {}
858 +
859 + nanoid@3.3.11: {}
860 +
861 + npm-run-path@4.0.1:
862 + dependencies:
863 + path-key: 3.1.1
864 +
865 + onetime@5.1.2:
866 + dependencies:
867 + mimic-fn: 2.1.0
868 +
869 + p-event@4.2.0:
870 + dependencies:
871 + p-timeout: 3.2.0
872 +
873 + p-finally@1.0.0: {}
874 +
875 + p-timeout@3.2.0:
876 + dependencies:
877 + p-finally: 1.0.0
878 +
879 + path-key@3.1.1: {}
880 +
881 + path-parse@1.0.7: {}
882 +
883 + picocolors@1.1.1: {}
884 +
885 + picomatch@4.0.3: {}
886 +
887 + postcss@8.5.6:
888 + dependencies:
889 + nanoid: 3.3.11
890 + picocolors: 1.1.1
891 + source-map-js: 1.2.1
892 +
893 + resolve@1.22.11:
894 + dependencies:
895 + is-core-module: 2.16.1
896 + path-parse: 1.0.7
897 + supports-preserve-symlinks-flag: 1.0.0
898 +
899 + rolldown@1.0.0-beta.51:
900 + dependencies:
901 + '@oxc-project/types': 0.98.0
902 + '@rolldown/pluginutils': 1.0.0-beta.51
903 + optionalDependencies:
904 + '@rolldown/binding-android-arm64': 1.0.0-beta.51
905 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.51
906 + '@rolldown/binding-darwin-x64': 1.0.0-beta.51
907 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.51
908 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.51
909 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.51
910 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.51
911 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.51
912 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.51
913 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.51
914 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.51
915 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.51
916 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.51
917 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.51
918 +
919 + rollup@2.79.2:
920 + optionalDependencies:
921 + fsevents: 2.3.3
922 +
923 + shebang-command@2.0.0:
924 + dependencies:
925 + shebang-regex: 3.0.0
926 +
927 + shebang-regex@3.0.0: {}
928 +
929 + signal-exit@3.0.7: {}
930 +
931 + source-map-js@1.2.1: {}
932 +
933 + sourcemap-codec@1.4.8: {}
934 +
935 + strip-final-newline@2.0.0: {}
936 +
937 + supports-preserve-symlinks-flag@1.0.0: {}
938 +
939 + svelte-hmr@0.15.3(svelte@3.59.2):
940 + dependencies:
941 + svelte: 3.59.2
942 +
943 + svelte@3.59.2: {}
944 +
945 + tslib@2.8.1: {}
946 +
947 + typescript@5.9.3: {}
948 +
949 + vite@3.2.11:
950 + dependencies:
951 + esbuild: 0.15.18
952 + postcss: 8.5.6
953 + resolve: 1.22.11
954 + rollup: 2.79.2
955 + optionalDependencies:
956 + fsevents: 2.3.3
957 +
958 + vitefu@0.2.5(vite@3.2.11):
959 + optionalDependencies:
960 + vite: 3.2.11
961 +
962 + which@2.0.2:
963 + dependencies:
964 + isexe: 2.0.0