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