├── .github
└── workflows
│ └── release.yml
├── .gitignore
├── .vscode
└── extensions.json
├── README.md
├── docs
└── pulsar-screenshot.png
├── index.html
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── public
├── icon.png
└── tauri.svg
├── src-tauri
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── build.rs
├── capabilities
│ └── migrated.json
├── gen
│ └── schemas
│ │ ├── acl-manifests.json
│ │ ├── capabilities.json
│ │ ├── desktop-schema.json
│ │ └── macOS-schema.json
├── icons
│ ├── 128x128.png
│ ├── 128x128@2x.png
│ ├── 32x32.png
│ ├── Square107x107Logo.png
│ ├── Square142x142Logo.png
│ ├── Square150x150Logo.png
│ ├── Square284x284Logo.png
│ ├── Square30x30Logo.png
│ ├── Square310x310Logo.png
│ ├── Square44x44Logo.png
│ ├── Square71x71Logo.png
│ ├── Square89x89Logo.png
│ ├── StoreLogo.png
│ ├── icon.icns
│ ├── icon.ico
│ └── icon.png
├── src
│ ├── error.rs
│ ├── lib.rs
│ ├── main.rs
│ └── util.rs
└── tauri.conf.json
├── src
├── App.css
├── App.tsx
├── assets
│ ├── cn-logo.svg
│ ├── logo.svg
│ └── space.webp
├── commands.ts
├── components
│ ├── footer.tsx
│ ├── logo.tsx
│ ├── results-table.tsx
│ ├── scanner.tsx
│ └── trashbin.tsx
├── index.tsx
└── lib
│ ├── format.ts
│ ├── get-dir-name.ts
│ ├── store.ts
│ └── updater.ts
├── tailwind.config.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: Publish Release
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | workflow_dispatch:
8 | inputs:
9 | app-slug:
10 | description: "The slug of your app in your CrabNebula Cloud org"
11 | required: true
12 | default: "pulsar"
13 |
14 | concurrency:
15 | group: ${{ github.workflow }}-${{ github.ref }}
16 | cancel-in-progress: true
17 |
18 | env:
19 | CN_APP_SLUG: ${{ github.event.inputs.app-slug || 'pulsar' }}
20 |
21 | jobs:
22 | draft:
23 | runs-on: ubuntu-latest
24 |
25 | steps:
26 | - uses: actions/checkout@v4
27 |
28 | - name: create draft release
29 | uses: crabnebula-dev/cloud-release@v0.1.0
30 | with:
31 | command: release draft ${{ env.CN_APP_SLUG }} --framework tauri
32 | api-key: ${{ secrets.CN_API_KEY }}
33 |
34 | build:
35 | needs: draft
36 |
37 | strategy:
38 | fail-fast: false
39 | matrix:
40 | os: [ubuntu-latest, macos-latest, windows-latest]
41 |
42 | runs-on: ${{ matrix.os }}
43 |
44 | steps:
45 | - uses: actions/checkout@v4
46 | - name: Install pnpm
47 | uses: pnpm/action-setup@v3
48 | with:
49 | version: 9
50 | - name: Use Node.js
51 | uses: actions/setup-node@v4
52 | with:
53 | node-version: "20"
54 | - name: Install stable toolchain
55 | uses: actions-rust-lang/setup-rust-toolchain@v1
56 | with:
57 | toolchain: stable
58 | cache: false
59 |
60 | - name: install Linux dependencies
61 | if: matrix.os == 'ubuntu-latest'
62 | run: |
63 | sudo apt-get update
64 | sudo apt-get install -y libwebkit2gtk-4.0-dev webkit2gtk-4.1
65 |
66 | - name: build tauri app
67 | run: |
68 | pnpm install
69 | pnpm run tauri build
70 | env:
71 | TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
72 | TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
73 |
74 |
75 | - name: upload assets
76 | uses: crabnebula-dev/cloud-release@v0.1.0
77 | with:
78 | command: release upload ${{ env.CN_APP_SLUG }} --framework tauri
79 | api-key: ${{ secrets.CN_API_KEY }}
80 |
81 | publish:
82 | needs: build
83 |
84 | runs-on: ubuntu-latest
85 |
86 | steps:
87 | - uses: actions/checkout@v4
88 |
89 | - name: publish release
90 | uses: crabnebula-dev/cloud-release@v0.1.0
91 | with:
92 | command: release publish ${{ env.CN_APP_SLUG }} --framework tauri
93 | api-key: ${{ secrets.CN_API_KEY }}
94 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
3 | .idea
4 | .DS_Store
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"]
3 | }
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Pulsar
2 |
3 | Dependency scanner.
4 |
5 |
6 |

7 |
8 |
9 | > ⚠️ This project is still in Beta. Bugs are expected, please run it in a controlled environment.
10 |
11 | ## Run Locally 🦀
12 |
13 | You need [Rust](https://www.rust-lang.org/tools/install) and [PNPM](https://pnpm.io) to run this project. Once the system is setup, you can clone this repository:
14 |
15 | ```sh
16 | git clone --depth 1 https://github.com/atilafassina/pulsar
17 | ```
18 |
19 | Change directory inside the project, install dependencies, and run development server.
20 |
21 | ```sh
22 | cd pulsar && pnpm install && pnpm tauri dev
23 | ```
24 |
25 | > 💡 Tauri will run the Vite dev server and then trigger the Rust build. First Rust build takes a little longer, but should still be less than a minute.
26 |
27 | ## Workspace Extensions 🧰
28 |
29 | - [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode)
30 | - [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
31 | - [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss)
32 |
33 | ## Build Your Own App 🔥
34 |
35 | If you like this SolidJS + Tauri + TailwindCSS setup, this project is built upon my template: [create-solidjs-tailwind-tauri](https://github.com/atilafassina/create-solidjs-tailwind-tauri).
36 |
--------------------------------------------------------------------------------
/docs/pulsar-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/docs/pulsar-screenshot.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Tauri + Solid + Typescript App
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pulsar",
3 | "description": "package dependencies scanner",
4 | "author": {
5 | "name": "@AtilaFassina",
6 | "url": "https://atila.io"
7 | },
8 | "scripts": {
9 | "start": "vite",
10 | "dev": "vite",
11 | "build": "vite build",
12 | "serve": "vite preview",
13 | "tauri": "tauri"
14 | },
15 | "license": "MIT",
16 | "dependencies": {
17 | "@kobalte/core": "^0.11.2",
18 | "@tauri-apps/api": "2.0.0-rc.4",
19 | "@tauri-apps/plugin-dialog": "2.0.0-beta.5",
20 | "@tauri-apps/plugin-fs": "2.0.0-beta.5",
21 | "@tauri-apps/plugin-process": "2.0.0-beta.5",
22 | "@tauri-apps/plugin-shell": "2.0.0-rc.1",
23 | "@tauri-apps/plugin-updater": "2.0.0-beta.5",
24 | "autoprefixer": "^10.4.20",
25 | "postcss": "^8.4.41",
26 | "solid-js": "^1.8.22",
27 | "solid-transition-group": "^0.2.3",
28 | "tailwindcss": "^3.4.10"
29 | },
30 | "devDependencies": {
31 | "@tauri-apps/cli": "2.0.0-rc.8",
32 | "internal-ip": "^7.0.0",
33 | "prettier": "^3.3.3",
34 | "typescript": "^5.5.4",
35 | "vite": "^5.4.2",
36 | "vite-plugin-solid": "^2.10.2"
37 | },
38 | "prettier": {}
39 | }
40 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@kobalte/core':
12 | specifier: ^0.11.2
13 | version: 0.11.2(solid-js@1.8.22)
14 | '@tauri-apps/api':
15 | specifier: 2.0.0-rc.4
16 | version: 2.0.0-rc.4
17 | '@tauri-apps/plugin-dialog':
18 | specifier: 2.0.0-beta.5
19 | version: 2.0.0-beta.5
20 | '@tauri-apps/plugin-fs':
21 | specifier: 2.0.0-beta.5
22 | version: 2.0.0-beta.5
23 | '@tauri-apps/plugin-process':
24 | specifier: 2.0.0-beta.5
25 | version: 2.0.0-beta.5
26 | '@tauri-apps/plugin-shell':
27 | specifier: 2.0.0-rc.1
28 | version: 2.0.0-rc.1
29 | '@tauri-apps/plugin-updater':
30 | specifier: 2.0.0-beta.5
31 | version: 2.0.0-beta.5
32 | autoprefixer:
33 | specifier: ^10.4.20
34 | version: 10.4.20(postcss@8.4.41)
35 | postcss:
36 | specifier: ^8.4.41
37 | version: 8.4.41
38 | solid-js:
39 | specifier: ^1.8.22
40 | version: 1.8.22
41 | solid-transition-group:
42 | specifier: ^0.2.3
43 | version: 0.2.3(solid-js@1.8.22)
44 | tailwindcss:
45 | specifier: ^3.4.10
46 | version: 3.4.10
47 | devDependencies:
48 | '@tauri-apps/cli':
49 | specifier: 2.0.0-rc.8
50 | version: 2.0.0-rc.8
51 | internal-ip:
52 | specifier: ^7.0.0
53 | version: 7.0.0
54 | prettier:
55 | specifier: ^3.3.3
56 | version: 3.3.3
57 | typescript:
58 | specifier: ^5.5.4
59 | version: 5.5.4
60 | vite:
61 | specifier: ^5.4.2
62 | version: 5.4.2
63 | vite-plugin-solid:
64 | specifier: ^2.10.2
65 | version: 2.10.2(solid-js@1.8.22)(vite@5.4.2)
66 |
67 | packages:
68 |
69 | '@alloc/quick-lru@5.2.0':
70 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
71 | engines: {node: '>=10'}
72 |
73 | '@ampproject/remapping@2.3.0':
74 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
75 | engines: {node: '>=6.0.0'}
76 |
77 | '@babel/code-frame@7.24.6':
78 | resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==}
79 | engines: {node: '>=6.9.0'}
80 |
81 | '@babel/compat-data@7.24.6':
82 | resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==}
83 | engines: {node: '>=6.9.0'}
84 |
85 | '@babel/core@7.24.6':
86 | resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==}
87 | engines: {node: '>=6.9.0'}
88 |
89 | '@babel/generator@7.24.6':
90 | resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==}
91 | engines: {node: '>=6.9.0'}
92 |
93 | '@babel/helper-compilation-targets@7.24.6':
94 | resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==}
95 | engines: {node: '>=6.9.0'}
96 |
97 | '@babel/helper-environment-visitor@7.24.6':
98 | resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==}
99 | engines: {node: '>=6.9.0'}
100 |
101 | '@babel/helper-function-name@7.24.6':
102 | resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==}
103 | engines: {node: '>=6.9.0'}
104 |
105 | '@babel/helper-hoist-variables@7.24.6':
106 | resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==}
107 | engines: {node: '>=6.9.0'}
108 |
109 | '@babel/helper-module-imports@7.18.6':
110 | resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
111 | engines: {node: '>=6.9.0'}
112 |
113 | '@babel/helper-module-imports@7.24.6':
114 | resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==}
115 | engines: {node: '>=6.9.0'}
116 |
117 | '@babel/helper-module-transforms@7.24.6':
118 | resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==}
119 | engines: {node: '>=6.9.0'}
120 | peerDependencies:
121 | '@babel/core': ^7.0.0
122 |
123 | '@babel/helper-plugin-utils@7.24.6':
124 | resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==}
125 | engines: {node: '>=6.9.0'}
126 |
127 | '@babel/helper-simple-access@7.24.6':
128 | resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==}
129 | engines: {node: '>=6.9.0'}
130 |
131 | '@babel/helper-split-export-declaration@7.24.6':
132 | resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==}
133 | engines: {node: '>=6.9.0'}
134 |
135 | '@babel/helper-string-parser@7.24.6':
136 | resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==}
137 | engines: {node: '>=6.9.0'}
138 |
139 | '@babel/helper-validator-identifier@7.24.6':
140 | resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==}
141 | engines: {node: '>=6.9.0'}
142 |
143 | '@babel/helper-validator-option@7.24.6':
144 | resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==}
145 | engines: {node: '>=6.9.0'}
146 |
147 | '@babel/helpers@7.24.6':
148 | resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==}
149 | engines: {node: '>=6.9.0'}
150 |
151 | '@babel/highlight@7.24.6':
152 | resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==}
153 | engines: {node: '>=6.9.0'}
154 |
155 | '@babel/parser@7.24.6':
156 | resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==}
157 | engines: {node: '>=6.0.0'}
158 | hasBin: true
159 |
160 | '@babel/plugin-syntax-jsx@7.24.6':
161 | resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==}
162 | engines: {node: '>=6.9.0'}
163 | peerDependencies:
164 | '@babel/core': ^7.0.0-0
165 |
166 | '@babel/template@7.24.6':
167 | resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==}
168 | engines: {node: '>=6.9.0'}
169 |
170 | '@babel/traverse@7.24.6':
171 | resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==}
172 | engines: {node: '>=6.9.0'}
173 |
174 | '@babel/types@7.24.6':
175 | resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==}
176 | engines: {node: '>=6.9.0'}
177 |
178 | '@esbuild/aix-ppc64@0.21.5':
179 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
180 | engines: {node: '>=12'}
181 | cpu: [ppc64]
182 | os: [aix]
183 |
184 | '@esbuild/android-arm64@0.21.5':
185 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
186 | engines: {node: '>=12'}
187 | cpu: [arm64]
188 | os: [android]
189 |
190 | '@esbuild/android-arm@0.21.5':
191 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
192 | engines: {node: '>=12'}
193 | cpu: [arm]
194 | os: [android]
195 |
196 | '@esbuild/android-x64@0.21.5':
197 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
198 | engines: {node: '>=12'}
199 | cpu: [x64]
200 | os: [android]
201 |
202 | '@esbuild/darwin-arm64@0.21.5':
203 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
204 | engines: {node: '>=12'}
205 | cpu: [arm64]
206 | os: [darwin]
207 |
208 | '@esbuild/darwin-x64@0.21.5':
209 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
210 | engines: {node: '>=12'}
211 | cpu: [x64]
212 | os: [darwin]
213 |
214 | '@esbuild/freebsd-arm64@0.21.5':
215 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
216 | engines: {node: '>=12'}
217 | cpu: [arm64]
218 | os: [freebsd]
219 |
220 | '@esbuild/freebsd-x64@0.21.5':
221 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
222 | engines: {node: '>=12'}
223 | cpu: [x64]
224 | os: [freebsd]
225 |
226 | '@esbuild/linux-arm64@0.21.5':
227 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
228 | engines: {node: '>=12'}
229 | cpu: [arm64]
230 | os: [linux]
231 |
232 | '@esbuild/linux-arm@0.21.5':
233 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
234 | engines: {node: '>=12'}
235 | cpu: [arm]
236 | os: [linux]
237 |
238 | '@esbuild/linux-ia32@0.21.5':
239 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
240 | engines: {node: '>=12'}
241 | cpu: [ia32]
242 | os: [linux]
243 |
244 | '@esbuild/linux-loong64@0.21.5':
245 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
246 | engines: {node: '>=12'}
247 | cpu: [loong64]
248 | os: [linux]
249 |
250 | '@esbuild/linux-mips64el@0.21.5':
251 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
252 | engines: {node: '>=12'}
253 | cpu: [mips64el]
254 | os: [linux]
255 |
256 | '@esbuild/linux-ppc64@0.21.5':
257 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
258 | engines: {node: '>=12'}
259 | cpu: [ppc64]
260 | os: [linux]
261 |
262 | '@esbuild/linux-riscv64@0.21.5':
263 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
264 | engines: {node: '>=12'}
265 | cpu: [riscv64]
266 | os: [linux]
267 |
268 | '@esbuild/linux-s390x@0.21.5':
269 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
270 | engines: {node: '>=12'}
271 | cpu: [s390x]
272 | os: [linux]
273 |
274 | '@esbuild/linux-x64@0.21.5':
275 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
276 | engines: {node: '>=12'}
277 | cpu: [x64]
278 | os: [linux]
279 |
280 | '@esbuild/netbsd-x64@0.21.5':
281 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
282 | engines: {node: '>=12'}
283 | cpu: [x64]
284 | os: [netbsd]
285 |
286 | '@esbuild/openbsd-x64@0.21.5':
287 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
288 | engines: {node: '>=12'}
289 | cpu: [x64]
290 | os: [openbsd]
291 |
292 | '@esbuild/sunos-x64@0.21.5':
293 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
294 | engines: {node: '>=12'}
295 | cpu: [x64]
296 | os: [sunos]
297 |
298 | '@esbuild/win32-arm64@0.21.5':
299 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
300 | engines: {node: '>=12'}
301 | cpu: [arm64]
302 | os: [win32]
303 |
304 | '@esbuild/win32-ia32@0.21.5':
305 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
306 | engines: {node: '>=12'}
307 | cpu: [ia32]
308 | os: [win32]
309 |
310 | '@esbuild/win32-x64@0.21.5':
311 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
312 | engines: {node: '>=12'}
313 | cpu: [x64]
314 | os: [win32]
315 |
316 | '@floating-ui/core@1.6.2':
317 | resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==}
318 |
319 | '@floating-ui/dom@1.6.5':
320 | resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==}
321 |
322 | '@floating-ui/utils@0.2.2':
323 | resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==}
324 |
325 | '@formatjs/ecma402-abstract@2.0.0':
326 | resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==}
327 |
328 | '@formatjs/fast-memoize@2.2.0':
329 | resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==}
330 |
331 | '@formatjs/icu-messageformat-parser@2.7.8':
332 | resolution: {integrity: sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==}
333 |
334 | '@formatjs/icu-skeleton-parser@1.8.2':
335 | resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==}
336 |
337 | '@formatjs/intl-localematcher@0.5.4':
338 | resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==}
339 |
340 | '@internationalized/date@3.5.4':
341 | resolution: {integrity: sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw==}
342 |
343 | '@internationalized/message@3.1.4':
344 | resolution: {integrity: sha512-Dygi9hH1s7V9nha07pggCkvmRfDd3q2lWnMGvrJyrOwYMe1yj4D2T9BoH9I6MGR7xz0biQrtLPsqUkqXzIrBOw==}
345 |
346 | '@internationalized/number@3.5.3':
347 | resolution: {integrity: sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==}
348 |
349 | '@isaacs/cliui@8.0.2':
350 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
351 | engines: {node: '>=12'}
352 |
353 | '@jridgewell/gen-mapping@0.3.5':
354 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
355 | engines: {node: '>=6.0.0'}
356 |
357 | '@jridgewell/resolve-uri@3.1.2':
358 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
359 | engines: {node: '>=6.0.0'}
360 |
361 | '@jridgewell/set-array@1.2.1':
362 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
363 | engines: {node: '>=6.0.0'}
364 |
365 | '@jridgewell/sourcemap-codec@1.4.15':
366 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
367 |
368 | '@jridgewell/trace-mapping@0.3.25':
369 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
370 |
371 | '@kobalte/core@0.11.2':
372 | resolution: {integrity: sha512-B19TvpmR0E8n7LJqopF0lbMayBErnWJ5MlTTnrgVAFU1up/2Bo1O6ldTK1c5NikmpppzIK2A8ovUwIhRqw/3Uw==}
373 | peerDependencies:
374 | solid-js: ^1.7.11
375 |
376 | '@kobalte/utils@0.9.0':
377 | resolution: {integrity: sha512-TYVCpQcpqo1+0HBn3NXoGEBzxd4tH6Um1oc07nrYw1V7Qq0qbMaYAOnfBc1qhlh7sGV4XZldmb0j13Of0FrZQg==}
378 | peerDependencies:
379 | solid-js: ^1.7.11
380 |
381 | '@nodelib/fs.scandir@2.1.5':
382 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
383 | engines: {node: '>= 8'}
384 |
385 | '@nodelib/fs.stat@2.0.5':
386 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
387 | engines: {node: '>= 8'}
388 |
389 | '@nodelib/fs.walk@1.2.8':
390 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
391 | engines: {node: '>= 8'}
392 |
393 | '@pkgjs/parseargs@0.11.0':
394 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
395 | engines: {node: '>=14'}
396 |
397 | '@rollup/rollup-android-arm-eabi@4.21.2':
398 | resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==}
399 | cpu: [arm]
400 | os: [android]
401 |
402 | '@rollup/rollup-android-arm64@4.21.2':
403 | resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==}
404 | cpu: [arm64]
405 | os: [android]
406 |
407 | '@rollup/rollup-darwin-arm64@4.21.2':
408 | resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==}
409 | cpu: [arm64]
410 | os: [darwin]
411 |
412 | '@rollup/rollup-darwin-x64@4.21.2':
413 | resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==}
414 | cpu: [x64]
415 | os: [darwin]
416 |
417 | '@rollup/rollup-linux-arm-gnueabihf@4.21.2':
418 | resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==}
419 | cpu: [arm]
420 | os: [linux]
421 |
422 | '@rollup/rollup-linux-arm-musleabihf@4.21.2':
423 | resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==}
424 | cpu: [arm]
425 | os: [linux]
426 |
427 | '@rollup/rollup-linux-arm64-gnu@4.21.2':
428 | resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==}
429 | cpu: [arm64]
430 | os: [linux]
431 |
432 | '@rollup/rollup-linux-arm64-musl@4.21.2':
433 | resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==}
434 | cpu: [arm64]
435 | os: [linux]
436 |
437 | '@rollup/rollup-linux-powerpc64le-gnu@4.21.2':
438 | resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==}
439 | cpu: [ppc64]
440 | os: [linux]
441 |
442 | '@rollup/rollup-linux-riscv64-gnu@4.21.2':
443 | resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==}
444 | cpu: [riscv64]
445 | os: [linux]
446 |
447 | '@rollup/rollup-linux-s390x-gnu@4.21.2':
448 | resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==}
449 | cpu: [s390x]
450 | os: [linux]
451 |
452 | '@rollup/rollup-linux-x64-gnu@4.21.2':
453 | resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==}
454 | cpu: [x64]
455 | os: [linux]
456 |
457 | '@rollup/rollup-linux-x64-musl@4.21.2':
458 | resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==}
459 | cpu: [x64]
460 | os: [linux]
461 |
462 | '@rollup/rollup-win32-arm64-msvc@4.21.2':
463 | resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==}
464 | cpu: [arm64]
465 | os: [win32]
466 |
467 | '@rollup/rollup-win32-ia32-msvc@4.21.2':
468 | resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==}
469 | cpu: [ia32]
470 | os: [win32]
471 |
472 | '@rollup/rollup-win32-x64-msvc@4.21.2':
473 | resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==}
474 | cpu: [x64]
475 | os: [win32]
476 |
477 | '@solid-primitives/event-listener@2.3.3':
478 | resolution: {integrity: sha512-DAJbl+F0wrFW2xmcV8dKMBhk9QLVLuBSW+TR4JmIfTaObxd13PuL7nqaXnaYKDWOYa6otB00qcCUIGbuIhSUgQ==}
479 | peerDependencies:
480 | solid-js: ^1.6.12
481 |
482 | '@solid-primitives/keyed@1.2.2':
483 | resolution: {integrity: sha512-oBziY40JK4XmJ57XGkFl8j0GtEarSu0hhjdkUQgqL/U0QQE3TZrRo9uhgH7I6VGJKBKG7SAraTPE6S5lVLM1ow==}
484 | peerDependencies:
485 | solid-js: ^1.6.12
486 |
487 | '@solid-primitives/map@0.4.11':
488 | resolution: {integrity: sha512-OAD65RPxMDYv41oAvadPCqedZfDX92BbWLUC+Qwh9okVMDAF/5UM+t1916OAfGV01Cr30d/fxIT1x86P+gFgSQ==}
489 | peerDependencies:
490 | solid-js: ^1.6.12
491 |
492 | '@solid-primitives/media@2.2.9':
493 | resolution: {integrity: sha512-QUmU62D4/d9YWx/4Dvr/UZasIkIpqNXz7wosA5GLmesRW9XlPa3G5M6uOmTw73SByHNTCw0D6x8bSdtvvLgzvQ==}
494 | peerDependencies:
495 | solid-js: ^1.6.12
496 |
497 | '@solid-primitives/props@3.1.11':
498 | resolution: {integrity: sha512-jZAKWwvDRHjiydIumDgMj68qviIbowQ1ci7nkEAgzgvanNkhKSQV8iPgR2jMk1uv7S2ZqXYHslVQTgJel/TEyg==}
499 | peerDependencies:
500 | solid-js: ^1.6.12
501 |
502 | '@solid-primitives/refs@1.0.8':
503 | resolution: {integrity: sha512-+jIsWG8/nYvhaCoG2Vg6CJOLgTmPKFbaCrNQKWfChalgUf9WrVxWw0CdJb3yX15n5lUcQ0jBo6qYtuVVmBLpBw==}
504 | peerDependencies:
505 | solid-js: ^1.6.12
506 |
507 | '@solid-primitives/rootless@1.4.5':
508 | resolution: {integrity: sha512-GFJE9GC3ojx0aUKqAUZmQPyU8fOVMtnVNrkdk2yS4kd17WqVSpXpoTmo9CnOwA+PG7FTzdIkogvfLQSLs4lrww==}
509 | peerDependencies:
510 | solid-js: ^1.6.12
511 |
512 | '@solid-primitives/static-store@0.0.8':
513 | resolution: {integrity: sha512-ZecE4BqY0oBk0YG00nzaAWO5Mjcny8Fc06CdbXadH9T9lzq/9GefqcSe/5AtdXqjvY/DtJ5C6CkcjPZO0o/eqg==}
514 | peerDependencies:
515 | solid-js: ^1.6.12
516 |
517 | '@solid-primitives/transition-group@1.0.5':
518 | resolution: {integrity: sha512-G3FuqvL13kQ55WzWPX2ewiXdZ/1iboiX53195sq7bbkDbXqP6TYKiadwEdsaDogW5rPnPYAym3+xnsNplQJRKQ==}
519 | peerDependencies:
520 | solid-js: ^1.6.12
521 |
522 | '@solid-primitives/trigger@1.0.11':
523 | resolution: {integrity: sha512-4oc8grBzBit7ByXgE1aZ0QXfhdlhXaiFjDKYsOhRyUJa8fN4hdr2IgsYqjmHwxyjK+Dm2OUwkCI1bGkaLgtgXg==}
524 | peerDependencies:
525 | solid-js: ^1.6.12
526 |
527 | '@solid-primitives/utils@6.2.3':
528 | resolution: {integrity: sha512-CqAwKb2T5Vi72+rhebSsqNZ9o67buYRdEJrIFzRXz3U59QqezuuxPsyzTSVCacwS5Pf109VRsgCJQoxKRoECZQ==}
529 | peerDependencies:
530 | solid-js: ^1.6.12
531 |
532 | '@swc/helpers@0.5.11':
533 | resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==}
534 |
535 | '@tauri-apps/api@2.0.0-beta.13':
536 | resolution: {integrity: sha512-Np1opKANzRMF3lgJ9gDquBCB9SxlE2lRmNpVx1+L6RyzAmigkuh0ZulT5jMnDA3JLsuSDU135r/s4t/Pmx4atg==}
537 | engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
538 |
539 | '@tauri-apps/api@2.0.0-rc.4':
540 | resolution: {integrity: sha512-UNiIhhKG08j4ooss2oEEVexffmWkgkYlC2M3GcX3VPtNsqFgVNL8Mcw/4Y7rO9M9S+ffAMnLOF5ypzyuyb8tyg==}
541 |
542 | '@tauri-apps/cli-darwin-arm64@2.0.0-rc.8':
543 | resolution: {integrity: sha512-XDjFLfCz7gOsKg9qFyK7S9EbrdcLhWE2bSTvHDpnFdMc+DcjMR4O3HuCO7SrPmmFUf86OknYFiuMPEUoHf0Fiw==}
544 | engines: {node: '>= 10'}
545 | cpu: [arm64]
546 | os: [darwin]
547 |
548 | '@tauri-apps/cli-darwin-x64@2.0.0-rc.8':
549 | resolution: {integrity: sha512-vYuITao7qq45jzTXRFdAcB+rVBULmofksWsKzoi+cgI8R0kcfB3bts+FRBdV3j+fkbpBQKpriW6Y6gdOzbf6Ow==}
550 | engines: {node: '>= 10'}
551 | cpu: [x64]
552 | os: [darwin]
553 |
554 | '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.8':
555 | resolution: {integrity: sha512-iW1gJyRBvwxCeBEu+ain18v8FtFBhrsqepzuUyOy7hZJWUMPdKHJhbFVz6xp3RGZf5ycsLUr3ZhqMB3vKtv7iQ==}
556 | engines: {node: '>= 10'}
557 | cpu: [arm]
558 | os: [linux]
559 |
560 | '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.8':
561 | resolution: {integrity: sha512-k1HQHpu59B8JteXALCSdCQBUVb+ytsg1u/QEWPzCm7mFhzr7jqdfBjQVAKt0T5rdQQTcNtK341oB7izuXmJE2A==}
562 | engines: {node: '>= 10'}
563 | cpu: [arm64]
564 | os: [linux]
565 |
566 | '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.8':
567 | resolution: {integrity: sha512-tMotP7J/dMqCL8zPCwtMwjeO3SK1yxU9bUMZ3mwdAtf+3xr2d2hpmGo4KXk5r2jQee9+dIC3IBXexFhrVJGRHA==}
568 | engines: {node: '>= 10'}
569 | cpu: [arm64]
570 | os: [linux]
571 |
572 | '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.8':
573 | resolution: {integrity: sha512-AnLghADQgt4oyp4rQyjpKfGpdAqofd+SRO9kht5d4c0RSViqwHBjIxrCt9FDhBpBwwkC6T6NNuQqaofZSnOH6Q==}
574 | engines: {node: '>= 10'}
575 | cpu: [x64]
576 | os: [linux]
577 |
578 | '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.8':
579 | resolution: {integrity: sha512-jv/uiXI2K41/XMA2vnKMcpdv1tKvez70HHvBoIwHhelmXV5V6Tpu5fTMEAXbA6WbJNfcFRi0kd55YRBOS0DZcw==}
580 | engines: {node: '>= 10'}
581 | cpu: [x64]
582 | os: [linux]
583 |
584 | '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.8':
585 | resolution: {integrity: sha512-wctgwSfuyJ0lXBzQSzGq5TAy2m9VZichZPPJ7GitYzdHbqIRLmvxM1abRen7HikP1lpjdmjl96/kWQOebEV0qw==}
586 | engines: {node: '>= 10'}
587 | cpu: [arm64]
588 | os: [win32]
589 |
590 | '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.8':
591 | resolution: {integrity: sha512-BBjoAezNpHscGhBICHrt+X+IyJIh9jYnaEIGvbCIMcGB6sSDxvtttw4ef9+4jNh3JixotOR2mwIudTc1H9HffQ==}
592 | engines: {node: '>= 10'}
593 | cpu: [ia32]
594 | os: [win32]
595 |
596 | '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.8':
597 | resolution: {integrity: sha512-1pgDw2woeyDMvXctmqc53LBxsaAYqiRNUVgwvzlmzJDbUHv4+Pj4B1OGKQh1YKlsmks8LK3mK9uSbk+k1OLZhw==}
598 | engines: {node: '>= 10'}
599 | cpu: [x64]
600 | os: [win32]
601 |
602 | '@tauri-apps/cli@2.0.0-rc.8':
603 | resolution: {integrity: sha512-hB6Pa0IaJs/As3Hc5IOiiK4Ilh9jspEA+2uPURCRQg4BkzQWwQzNdGQ4gjAzFNFAWPzy/4uuIXdnd1a+jC4wLA==}
604 | engines: {node: '>= 10'}
605 | hasBin: true
606 |
607 | '@tauri-apps/plugin-dialog@2.0.0-beta.5':
608 | resolution: {integrity: sha512-jkaBCsx2v6WB6sB77fTMCeijuvT3FlzwschiHnPlD7aU6CHvQgRlpCv/FttPdTq4ih2t6MIlM4oX85hNYgfs6w==}
609 |
610 | '@tauri-apps/plugin-fs@2.0.0-beta.5':
611 | resolution: {integrity: sha512-uTqCDFA1z8KDtTe5fKlbRrKV4zxh63UVUvD/PR8GnyNLV+qxj/fEuJuGvMdfMbVKrTljGqSpun5wnP5jqD5fMg==}
612 |
613 | '@tauri-apps/plugin-process@2.0.0-beta.5':
614 | resolution: {integrity: sha512-UMiBm6TtNYfxRb6GwzA4PalkZGwalHdclI/t0MVG33fNXgX1PaWONR/NZW/k7JE+WpvRAnN/Kf9ur8aEzjVVSQ==}
615 |
616 | '@tauri-apps/plugin-shell@2.0.0-rc.1':
617 | resolution: {integrity: sha512-JtNROc0rqEwN/g93ig5pK4cl1vUo2yn+osCpY9de64cy/d9hRzof7AuYOgvt/Xcd5VPQmlgo2AGvUh5sQRSR1A==}
618 |
619 | '@tauri-apps/plugin-updater@2.0.0-beta.5':
620 | resolution: {integrity: sha512-h8uNFQDtXaZPFyQcNAB5SxiSIvPbYRlM1fXf/lCcW8bAaMTanyszbHvR2vAYtVa/wIzKAOYriC/MpsJaKLjyhg==}
621 |
622 | '@types/babel__core@7.20.5':
623 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
624 |
625 | '@types/babel__generator@7.6.8':
626 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
627 |
628 | '@types/babel__template@7.4.4':
629 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
630 |
631 | '@types/babel__traverse@7.20.6':
632 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
633 |
634 | '@types/estree@1.0.5':
635 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
636 |
637 | ansi-regex@5.0.1:
638 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
639 | engines: {node: '>=8'}
640 |
641 | ansi-regex@6.0.1:
642 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
643 | engines: {node: '>=12'}
644 |
645 | ansi-styles@3.2.1:
646 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
647 | engines: {node: '>=4'}
648 |
649 | ansi-styles@4.3.0:
650 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
651 | engines: {node: '>=8'}
652 |
653 | ansi-styles@6.2.1:
654 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
655 | engines: {node: '>=12'}
656 |
657 | any-promise@1.3.0:
658 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
659 |
660 | anymatch@3.1.3:
661 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
662 | engines: {node: '>= 8'}
663 |
664 | arg@5.0.2:
665 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
666 |
667 | autoprefixer@10.4.20:
668 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
669 | engines: {node: ^10 || ^12 || >=14}
670 | hasBin: true
671 | peerDependencies:
672 | postcss: ^8.1.0
673 |
674 | babel-plugin-jsx-dom-expressions@0.37.21:
675 | resolution: {integrity: sha512-WbQo1NQ241oki8bYasVzkMXOTSIri5GO/K47rYJb2ZBh8GaPUEWiWbMV3KwXz+96eU2i54N6ThzjQG/f5n8Azw==}
676 | peerDependencies:
677 | '@babel/core': ^7.20.12
678 |
679 | babel-preset-solid@1.8.17:
680 | resolution: {integrity: sha512-s/FfTZOeds0hYxYqce90Jb+0ycN2lrzC7VP1k1JIn3wBqcaexDKdYi6xjB+hMNkL+Q6HobKbwsriqPloasR9LA==}
681 | peerDependencies:
682 | '@babel/core': ^7.0.0
683 |
684 | balanced-match@1.0.2:
685 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
686 |
687 | binary-extensions@2.3.0:
688 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
689 | engines: {node: '>=8'}
690 |
691 | brace-expansion@2.0.1:
692 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
693 |
694 | braces@3.0.3:
695 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
696 | engines: {node: '>=8'}
697 |
698 | browserslist@4.23.3:
699 | resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==}
700 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
701 | hasBin: true
702 |
703 | camelcase-css@2.0.1:
704 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
705 | engines: {node: '>= 6'}
706 |
707 | caniuse-lite@1.0.30001655:
708 | resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==}
709 |
710 | chalk@2.4.2:
711 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
712 | engines: {node: '>=4'}
713 |
714 | chokidar@3.6.0:
715 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
716 | engines: {node: '>= 8.10.0'}
717 |
718 | color-convert@1.9.3:
719 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
720 |
721 | color-convert@2.0.1:
722 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
723 | engines: {node: '>=7.0.0'}
724 |
725 | color-name@1.1.3:
726 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
727 |
728 | color-name@1.1.4:
729 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
730 |
731 | commander@4.1.1:
732 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
733 | engines: {node: '>= 6'}
734 |
735 | convert-source-map@2.0.0:
736 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
737 |
738 | cross-spawn@7.0.3:
739 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
740 | engines: {node: '>= 8'}
741 |
742 | cssesc@3.0.0:
743 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
744 | engines: {node: '>=4'}
745 | hasBin: true
746 |
747 | csstype@3.1.3:
748 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
749 |
750 | debug@4.3.4:
751 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
752 | engines: {node: '>=6.0'}
753 | peerDependencies:
754 | supports-color: '*'
755 | peerDependenciesMeta:
756 | supports-color:
757 | optional: true
758 |
759 | default-gateway@6.0.3:
760 | resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
761 | engines: {node: '>= 10'}
762 |
763 | didyoumean@1.2.2:
764 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
765 |
766 | dlv@1.1.3:
767 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
768 |
769 | eastasianwidth@0.2.0:
770 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
771 |
772 | electron-to-chromium@1.5.13:
773 | resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==}
774 |
775 | emoji-regex@8.0.0:
776 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
777 |
778 | emoji-regex@9.2.2:
779 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
780 |
781 | esbuild@0.21.5:
782 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
783 | engines: {node: '>=12'}
784 | hasBin: true
785 |
786 | escalade@3.2.0:
787 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
788 | engines: {node: '>=6'}
789 |
790 | escape-string-regexp@1.0.5:
791 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
792 | engines: {node: '>=0.8.0'}
793 |
794 | execa@5.1.1:
795 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
796 | engines: {node: '>=10'}
797 |
798 | fast-glob@3.3.2:
799 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
800 | engines: {node: '>=8.6.0'}
801 |
802 | fastq@1.17.1:
803 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
804 |
805 | fill-range@7.1.1:
806 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
807 | engines: {node: '>=8'}
808 |
809 | foreground-child@3.1.1:
810 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
811 | engines: {node: '>=14'}
812 |
813 | fraction.js@4.3.7:
814 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
815 |
816 | fsevents@2.3.3:
817 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
818 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
819 | os: [darwin]
820 |
821 | function-bind@1.1.2:
822 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
823 |
824 | gensync@1.0.0-beta.2:
825 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
826 | engines: {node: '>=6.9.0'}
827 |
828 | get-stream@6.0.1:
829 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
830 | engines: {node: '>=10'}
831 |
832 | glob-parent@5.1.2:
833 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
834 | engines: {node: '>= 6'}
835 |
836 | glob-parent@6.0.2:
837 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
838 | engines: {node: '>=10.13.0'}
839 |
840 | glob@10.4.1:
841 | resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==}
842 | engines: {node: '>=16 || 14 >=14.18'}
843 | hasBin: true
844 |
845 | globals@11.12.0:
846 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
847 | engines: {node: '>=4'}
848 |
849 | has-flag@3.0.0:
850 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
851 | engines: {node: '>=4'}
852 |
853 | hasown@2.0.2:
854 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
855 | engines: {node: '>= 0.4'}
856 |
857 | html-entities@2.3.3:
858 | resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
859 |
860 | human-signals@2.1.0:
861 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
862 | engines: {node: '>=10.17.0'}
863 |
864 | internal-ip@7.0.0:
865 | resolution: {integrity: sha512-qE4TeD4brqC45Vq/+VASeMiS1KRyfBkR6HT2sh9pZVVCzSjPkaCEfKFU+dL0PRv7NHJtvoKN2r82G6wTfzorkw==}
866 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
867 |
868 | intl-messageformat@10.5.14:
869 | resolution: {integrity: sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==}
870 |
871 | ip-regex@4.3.0:
872 | resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==}
873 | engines: {node: '>=8'}
874 |
875 | ipaddr.js@2.2.0:
876 | resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==}
877 | engines: {node: '>= 10'}
878 |
879 | is-binary-path@2.1.0:
880 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
881 | engines: {node: '>=8'}
882 |
883 | is-core-module@2.13.1:
884 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
885 |
886 | is-extglob@2.1.1:
887 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
888 | engines: {node: '>=0.10.0'}
889 |
890 | is-fullwidth-code-point@3.0.0:
891 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
892 | engines: {node: '>=8'}
893 |
894 | is-glob@4.0.3:
895 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
896 | engines: {node: '>=0.10.0'}
897 |
898 | is-ip@3.1.0:
899 | resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==}
900 | engines: {node: '>=8'}
901 |
902 | is-number@7.0.0:
903 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
904 | engines: {node: '>=0.12.0'}
905 |
906 | is-stream@2.0.1:
907 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
908 | engines: {node: '>=8'}
909 |
910 | is-what@4.1.16:
911 | resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
912 | engines: {node: '>=12.13'}
913 |
914 | isexe@2.0.0:
915 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
916 |
917 | jackspeak@3.1.2:
918 | resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==}
919 | engines: {node: '>=14'}
920 |
921 | jiti@1.21.0:
922 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
923 | hasBin: true
924 |
925 | js-tokens@4.0.0:
926 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
927 |
928 | jsesc@2.5.2:
929 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
930 | engines: {node: '>=4'}
931 | hasBin: true
932 |
933 | json5@2.2.3:
934 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
935 | engines: {node: '>=6'}
936 | hasBin: true
937 |
938 | lilconfig@2.1.0:
939 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
940 | engines: {node: '>=10'}
941 |
942 | lilconfig@3.1.1:
943 | resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
944 | engines: {node: '>=14'}
945 |
946 | lines-and-columns@1.2.4:
947 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
948 |
949 | lru-cache@10.2.2:
950 | resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==}
951 | engines: {node: 14 || >=16.14}
952 |
953 | lru-cache@5.1.1:
954 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
955 |
956 | merge-anything@5.1.7:
957 | resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
958 | engines: {node: '>=12.13'}
959 |
960 | merge-stream@2.0.0:
961 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
962 |
963 | merge2@1.4.1:
964 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
965 | engines: {node: '>= 8'}
966 |
967 | micromatch@4.0.7:
968 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
969 | engines: {node: '>=8.6'}
970 |
971 | mimic-fn@2.1.0:
972 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
973 | engines: {node: '>=6'}
974 |
975 | minimatch@9.0.4:
976 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==}
977 | engines: {node: '>=16 || 14 >=14.17'}
978 |
979 | minipass@7.1.2:
980 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
981 | engines: {node: '>=16 || 14 >=14.17'}
982 |
983 | ms@2.1.2:
984 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
985 |
986 | mz@2.7.0:
987 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
988 |
989 | nanoid@3.3.7:
990 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
991 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
992 | hasBin: true
993 |
994 | node-releases@2.0.18:
995 | resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
996 |
997 | normalize-path@3.0.0:
998 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
999 | engines: {node: '>=0.10.0'}
1000 |
1001 | normalize-range@0.1.2:
1002 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1003 | engines: {node: '>=0.10.0'}
1004 |
1005 | npm-run-path@4.0.1:
1006 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
1007 | engines: {node: '>=8'}
1008 |
1009 | object-assign@4.1.1:
1010 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1011 | engines: {node: '>=0.10.0'}
1012 |
1013 | object-hash@3.0.0:
1014 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1015 | engines: {node: '>= 6'}
1016 |
1017 | onetime@5.1.2:
1018 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
1019 | engines: {node: '>=6'}
1020 |
1021 | p-event@4.2.0:
1022 | resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==}
1023 | engines: {node: '>=8'}
1024 |
1025 | p-finally@1.0.0:
1026 | resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
1027 | engines: {node: '>=4'}
1028 |
1029 | p-timeout@3.2.0:
1030 | resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
1031 | engines: {node: '>=8'}
1032 |
1033 | path-key@3.1.1:
1034 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1035 | engines: {node: '>=8'}
1036 |
1037 | path-parse@1.0.7:
1038 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1039 |
1040 | path-scurry@1.11.1:
1041 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
1042 | engines: {node: '>=16 || 14 >=14.18'}
1043 |
1044 | picocolors@1.0.1:
1045 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
1046 |
1047 | picomatch@2.3.1:
1048 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1049 | engines: {node: '>=8.6'}
1050 |
1051 | pify@2.3.0:
1052 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1053 | engines: {node: '>=0.10.0'}
1054 |
1055 | pirates@4.0.6:
1056 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1057 | engines: {node: '>= 6'}
1058 |
1059 | postcss-import@15.1.0:
1060 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1061 | engines: {node: '>=14.0.0'}
1062 | peerDependencies:
1063 | postcss: ^8.0.0
1064 |
1065 | postcss-js@4.0.1:
1066 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1067 | engines: {node: ^12 || ^14 || >= 16}
1068 | peerDependencies:
1069 | postcss: ^8.4.21
1070 |
1071 | postcss-load-config@4.0.2:
1072 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
1073 | engines: {node: '>= 14'}
1074 | peerDependencies:
1075 | postcss: '>=8.0.9'
1076 | ts-node: '>=9.0.0'
1077 | peerDependenciesMeta:
1078 | postcss:
1079 | optional: true
1080 | ts-node:
1081 | optional: true
1082 |
1083 | postcss-nested@6.0.1:
1084 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
1085 | engines: {node: '>=12.0'}
1086 | peerDependencies:
1087 | postcss: ^8.2.14
1088 |
1089 | postcss-selector-parser@6.1.0:
1090 | resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==}
1091 | engines: {node: '>=4'}
1092 |
1093 | postcss-value-parser@4.2.0:
1094 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1095 |
1096 | postcss@8.4.41:
1097 | resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
1098 | engines: {node: ^10 || ^12 || >=14}
1099 |
1100 | prettier@3.3.3:
1101 | resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
1102 | engines: {node: '>=14'}
1103 | hasBin: true
1104 |
1105 | queue-microtask@1.2.3:
1106 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1107 |
1108 | read-cache@1.0.0:
1109 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1110 |
1111 | readdirp@3.6.0:
1112 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1113 | engines: {node: '>=8.10.0'}
1114 |
1115 | resolve@1.22.8:
1116 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
1117 | hasBin: true
1118 |
1119 | reusify@1.0.4:
1120 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1121 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1122 |
1123 | rollup@4.21.2:
1124 | resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==}
1125 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1126 | hasBin: true
1127 |
1128 | run-parallel@1.2.0:
1129 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1130 |
1131 | semver@6.3.1:
1132 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1133 | hasBin: true
1134 |
1135 | seroval-plugins@1.1.1:
1136 | resolution: {integrity: sha512-qNSy1+nUj7hsCOon7AO4wdAIo9P0jrzAMp18XhiOzA6/uO5TKtP7ScozVJ8T293oRIvi5wyCHSM4TrJo/c/GJA==}
1137 | engines: {node: '>=10'}
1138 | peerDependencies:
1139 | seroval: ^1.0
1140 |
1141 | seroval@1.1.1:
1142 | resolution: {integrity: sha512-rqEO6FZk8mv7Hyv4UCj3FD3b6Waqft605TLfsCe/BiaylRpyyMC0b+uA5TJKawX3KzMrdi3wsLbCaLplrQmBvQ==}
1143 | engines: {node: '>=10'}
1144 |
1145 | shebang-command@2.0.0:
1146 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1147 | engines: {node: '>=8'}
1148 |
1149 | shebang-regex@3.0.0:
1150 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1151 | engines: {node: '>=8'}
1152 |
1153 | signal-exit@3.0.7:
1154 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
1155 |
1156 | signal-exit@4.1.0:
1157 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1158 | engines: {node: '>=14'}
1159 |
1160 | solid-js@1.8.22:
1161 | resolution: {integrity: sha512-VBzN5j+9Y4rqIKEnK301aBk+S7fvFSTs9ljg+YEdFxjNjH0hkjXPiQRcws9tE5fUzMznSS6KToL5hwMfHDgpLA==}
1162 |
1163 | solid-refresh@0.6.3:
1164 | resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
1165 | peerDependencies:
1166 | solid-js: ^1.3
1167 |
1168 | solid-transition-group@0.2.3:
1169 | resolution: {integrity: sha512-iB72c9N5Kz9ykRqIXl0lQohOau4t0dhel9kjwFvx81UZJbVwaChMuBuyhiZmK24b8aKEK0w3uFM96ZxzcyZGdg==}
1170 | engines: {node: '>=18.0.0', pnpm: '>=8.6.0'}
1171 | peerDependencies:
1172 | solid-js: ^1.6.12
1173 |
1174 | source-map-js@1.2.0:
1175 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
1176 | engines: {node: '>=0.10.0'}
1177 |
1178 | string-width@4.2.3:
1179 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1180 | engines: {node: '>=8'}
1181 |
1182 | string-width@5.1.2:
1183 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1184 | engines: {node: '>=12'}
1185 |
1186 | strip-ansi@6.0.1:
1187 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1188 | engines: {node: '>=8'}
1189 |
1190 | strip-ansi@7.1.0:
1191 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1192 | engines: {node: '>=12'}
1193 |
1194 | strip-final-newline@2.0.0:
1195 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
1196 | engines: {node: '>=6'}
1197 |
1198 | sucrase@3.35.0:
1199 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
1200 | engines: {node: '>=16 || 14 >=14.17'}
1201 | hasBin: true
1202 |
1203 | supports-color@5.5.0:
1204 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
1205 | engines: {node: '>=4'}
1206 |
1207 | supports-preserve-symlinks-flag@1.0.0:
1208 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1209 | engines: {node: '>= 0.4'}
1210 |
1211 | tailwindcss@3.4.10:
1212 | resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==}
1213 | engines: {node: '>=14.0.0'}
1214 | hasBin: true
1215 |
1216 | thenify-all@1.6.0:
1217 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1218 | engines: {node: '>=0.8'}
1219 |
1220 | thenify@3.3.1:
1221 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1222 |
1223 | to-fast-properties@2.0.0:
1224 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
1225 | engines: {node: '>=4'}
1226 |
1227 | to-regex-range@5.0.1:
1228 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1229 | engines: {node: '>=8.0'}
1230 |
1231 | ts-interface-checker@0.1.13:
1232 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1233 |
1234 | tslib@2.6.2:
1235 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
1236 |
1237 | typescript@5.5.4:
1238 | resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
1239 | engines: {node: '>=14.17'}
1240 | hasBin: true
1241 |
1242 | update-browserslist-db@1.1.0:
1243 | resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
1244 | hasBin: true
1245 | peerDependencies:
1246 | browserslist: '>= 4.21.0'
1247 |
1248 | util-deprecate@1.0.2:
1249 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1250 |
1251 | validate-html-nesting@1.2.2:
1252 | resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==}
1253 |
1254 | vite-plugin-solid@2.10.2:
1255 | resolution: {integrity: sha512-AOEtwMe2baBSXMXdo+BUwECC8IFHcKS6WQV/1NEd+Q7vHPap5fmIhLcAzr+DUJ04/KHx/1UBU0l1/GWP+rMAPQ==}
1256 | peerDependencies:
1257 | '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.*
1258 | solid-js: ^1.7.2
1259 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0
1260 | peerDependenciesMeta:
1261 | '@testing-library/jest-dom':
1262 | optional: true
1263 |
1264 | vite@5.4.2:
1265 | resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==}
1266 | engines: {node: ^18.0.0 || >=20.0.0}
1267 | hasBin: true
1268 | peerDependencies:
1269 | '@types/node': ^18.0.0 || >=20.0.0
1270 | less: '*'
1271 | lightningcss: ^1.21.0
1272 | sass: '*'
1273 | sass-embedded: '*'
1274 | stylus: '*'
1275 | sugarss: '*'
1276 | terser: ^5.4.0
1277 | peerDependenciesMeta:
1278 | '@types/node':
1279 | optional: true
1280 | less:
1281 | optional: true
1282 | lightningcss:
1283 | optional: true
1284 | sass:
1285 | optional: true
1286 | sass-embedded:
1287 | optional: true
1288 | stylus:
1289 | optional: true
1290 | sugarss:
1291 | optional: true
1292 | terser:
1293 | optional: true
1294 |
1295 | vitefu@0.2.5:
1296 | resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
1297 | peerDependencies:
1298 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0
1299 | peerDependenciesMeta:
1300 | vite:
1301 | optional: true
1302 |
1303 | which@2.0.2:
1304 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1305 | engines: {node: '>= 8'}
1306 | hasBin: true
1307 |
1308 | wrap-ansi@7.0.0:
1309 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1310 | engines: {node: '>=10'}
1311 |
1312 | wrap-ansi@8.1.0:
1313 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1314 | engines: {node: '>=12'}
1315 |
1316 | yallist@3.1.1:
1317 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1318 |
1319 | yaml@2.4.2:
1320 | resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==}
1321 | engines: {node: '>= 14'}
1322 | hasBin: true
1323 |
1324 | snapshots:
1325 |
1326 | '@alloc/quick-lru@5.2.0': {}
1327 |
1328 | '@ampproject/remapping@2.3.0':
1329 | dependencies:
1330 | '@jridgewell/gen-mapping': 0.3.5
1331 | '@jridgewell/trace-mapping': 0.3.25
1332 |
1333 | '@babel/code-frame@7.24.6':
1334 | dependencies:
1335 | '@babel/highlight': 7.24.6
1336 | picocolors: 1.0.1
1337 |
1338 | '@babel/compat-data@7.24.6': {}
1339 |
1340 | '@babel/core@7.24.6':
1341 | dependencies:
1342 | '@ampproject/remapping': 2.3.0
1343 | '@babel/code-frame': 7.24.6
1344 | '@babel/generator': 7.24.6
1345 | '@babel/helper-compilation-targets': 7.24.6
1346 | '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6)
1347 | '@babel/helpers': 7.24.6
1348 | '@babel/parser': 7.24.6
1349 | '@babel/template': 7.24.6
1350 | '@babel/traverse': 7.24.6
1351 | '@babel/types': 7.24.6
1352 | convert-source-map: 2.0.0
1353 | debug: 4.3.4
1354 | gensync: 1.0.0-beta.2
1355 | json5: 2.2.3
1356 | semver: 6.3.1
1357 | transitivePeerDependencies:
1358 | - supports-color
1359 |
1360 | '@babel/generator@7.24.6':
1361 | dependencies:
1362 | '@babel/types': 7.24.6
1363 | '@jridgewell/gen-mapping': 0.3.5
1364 | '@jridgewell/trace-mapping': 0.3.25
1365 | jsesc: 2.5.2
1366 |
1367 | '@babel/helper-compilation-targets@7.24.6':
1368 | dependencies:
1369 | '@babel/compat-data': 7.24.6
1370 | '@babel/helper-validator-option': 7.24.6
1371 | browserslist: 4.23.3
1372 | lru-cache: 5.1.1
1373 | semver: 6.3.1
1374 |
1375 | '@babel/helper-environment-visitor@7.24.6': {}
1376 |
1377 | '@babel/helper-function-name@7.24.6':
1378 | dependencies:
1379 | '@babel/template': 7.24.6
1380 | '@babel/types': 7.24.6
1381 |
1382 | '@babel/helper-hoist-variables@7.24.6':
1383 | dependencies:
1384 | '@babel/types': 7.24.6
1385 |
1386 | '@babel/helper-module-imports@7.18.6':
1387 | dependencies:
1388 | '@babel/types': 7.24.6
1389 |
1390 | '@babel/helper-module-imports@7.24.6':
1391 | dependencies:
1392 | '@babel/types': 7.24.6
1393 |
1394 | '@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6)':
1395 | dependencies:
1396 | '@babel/core': 7.24.6
1397 | '@babel/helper-environment-visitor': 7.24.6
1398 | '@babel/helper-module-imports': 7.24.6
1399 | '@babel/helper-simple-access': 7.24.6
1400 | '@babel/helper-split-export-declaration': 7.24.6
1401 | '@babel/helper-validator-identifier': 7.24.6
1402 |
1403 | '@babel/helper-plugin-utils@7.24.6': {}
1404 |
1405 | '@babel/helper-simple-access@7.24.6':
1406 | dependencies:
1407 | '@babel/types': 7.24.6
1408 |
1409 | '@babel/helper-split-export-declaration@7.24.6':
1410 | dependencies:
1411 | '@babel/types': 7.24.6
1412 |
1413 | '@babel/helper-string-parser@7.24.6': {}
1414 |
1415 | '@babel/helper-validator-identifier@7.24.6': {}
1416 |
1417 | '@babel/helper-validator-option@7.24.6': {}
1418 |
1419 | '@babel/helpers@7.24.6':
1420 | dependencies:
1421 | '@babel/template': 7.24.6
1422 | '@babel/types': 7.24.6
1423 |
1424 | '@babel/highlight@7.24.6':
1425 | dependencies:
1426 | '@babel/helper-validator-identifier': 7.24.6
1427 | chalk: 2.4.2
1428 | js-tokens: 4.0.0
1429 | picocolors: 1.0.1
1430 |
1431 | '@babel/parser@7.24.6':
1432 | dependencies:
1433 | '@babel/types': 7.24.6
1434 |
1435 | '@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.6)':
1436 | dependencies:
1437 | '@babel/core': 7.24.6
1438 | '@babel/helper-plugin-utils': 7.24.6
1439 |
1440 | '@babel/template@7.24.6':
1441 | dependencies:
1442 | '@babel/code-frame': 7.24.6
1443 | '@babel/parser': 7.24.6
1444 | '@babel/types': 7.24.6
1445 |
1446 | '@babel/traverse@7.24.6':
1447 | dependencies:
1448 | '@babel/code-frame': 7.24.6
1449 | '@babel/generator': 7.24.6
1450 | '@babel/helper-environment-visitor': 7.24.6
1451 | '@babel/helper-function-name': 7.24.6
1452 | '@babel/helper-hoist-variables': 7.24.6
1453 | '@babel/helper-split-export-declaration': 7.24.6
1454 | '@babel/parser': 7.24.6
1455 | '@babel/types': 7.24.6
1456 | debug: 4.3.4
1457 | globals: 11.12.0
1458 | transitivePeerDependencies:
1459 | - supports-color
1460 |
1461 | '@babel/types@7.24.6':
1462 | dependencies:
1463 | '@babel/helper-string-parser': 7.24.6
1464 | '@babel/helper-validator-identifier': 7.24.6
1465 | to-fast-properties: 2.0.0
1466 |
1467 | '@esbuild/aix-ppc64@0.21.5':
1468 | optional: true
1469 |
1470 | '@esbuild/android-arm64@0.21.5':
1471 | optional: true
1472 |
1473 | '@esbuild/android-arm@0.21.5':
1474 | optional: true
1475 |
1476 | '@esbuild/android-x64@0.21.5':
1477 | optional: true
1478 |
1479 | '@esbuild/darwin-arm64@0.21.5':
1480 | optional: true
1481 |
1482 | '@esbuild/darwin-x64@0.21.5':
1483 | optional: true
1484 |
1485 | '@esbuild/freebsd-arm64@0.21.5':
1486 | optional: true
1487 |
1488 | '@esbuild/freebsd-x64@0.21.5':
1489 | optional: true
1490 |
1491 | '@esbuild/linux-arm64@0.21.5':
1492 | optional: true
1493 |
1494 | '@esbuild/linux-arm@0.21.5':
1495 | optional: true
1496 |
1497 | '@esbuild/linux-ia32@0.21.5':
1498 | optional: true
1499 |
1500 | '@esbuild/linux-loong64@0.21.5':
1501 | optional: true
1502 |
1503 | '@esbuild/linux-mips64el@0.21.5':
1504 | optional: true
1505 |
1506 | '@esbuild/linux-ppc64@0.21.5':
1507 | optional: true
1508 |
1509 | '@esbuild/linux-riscv64@0.21.5':
1510 | optional: true
1511 |
1512 | '@esbuild/linux-s390x@0.21.5':
1513 | optional: true
1514 |
1515 | '@esbuild/linux-x64@0.21.5':
1516 | optional: true
1517 |
1518 | '@esbuild/netbsd-x64@0.21.5':
1519 | optional: true
1520 |
1521 | '@esbuild/openbsd-x64@0.21.5':
1522 | optional: true
1523 |
1524 | '@esbuild/sunos-x64@0.21.5':
1525 | optional: true
1526 |
1527 | '@esbuild/win32-arm64@0.21.5':
1528 | optional: true
1529 |
1530 | '@esbuild/win32-ia32@0.21.5':
1531 | optional: true
1532 |
1533 | '@esbuild/win32-x64@0.21.5':
1534 | optional: true
1535 |
1536 | '@floating-ui/core@1.6.2':
1537 | dependencies:
1538 | '@floating-ui/utils': 0.2.2
1539 |
1540 | '@floating-ui/dom@1.6.5':
1541 | dependencies:
1542 | '@floating-ui/core': 1.6.2
1543 | '@floating-ui/utils': 0.2.2
1544 |
1545 | '@floating-ui/utils@0.2.2': {}
1546 |
1547 | '@formatjs/ecma402-abstract@2.0.0':
1548 | dependencies:
1549 | '@formatjs/intl-localematcher': 0.5.4
1550 | tslib: 2.6.2
1551 |
1552 | '@formatjs/fast-memoize@2.2.0':
1553 | dependencies:
1554 | tslib: 2.6.2
1555 |
1556 | '@formatjs/icu-messageformat-parser@2.7.8':
1557 | dependencies:
1558 | '@formatjs/ecma402-abstract': 2.0.0
1559 | '@formatjs/icu-skeleton-parser': 1.8.2
1560 | tslib: 2.6.2
1561 |
1562 | '@formatjs/icu-skeleton-parser@1.8.2':
1563 | dependencies:
1564 | '@formatjs/ecma402-abstract': 2.0.0
1565 | tslib: 2.6.2
1566 |
1567 | '@formatjs/intl-localematcher@0.5.4':
1568 | dependencies:
1569 | tslib: 2.6.2
1570 |
1571 | '@internationalized/date@3.5.4':
1572 | dependencies:
1573 | '@swc/helpers': 0.5.11
1574 |
1575 | '@internationalized/message@3.1.4':
1576 | dependencies:
1577 | '@swc/helpers': 0.5.11
1578 | intl-messageformat: 10.5.14
1579 |
1580 | '@internationalized/number@3.5.3':
1581 | dependencies:
1582 | '@swc/helpers': 0.5.11
1583 |
1584 | '@isaacs/cliui@8.0.2':
1585 | dependencies:
1586 | string-width: 5.1.2
1587 | string-width-cjs: string-width@4.2.3
1588 | strip-ansi: 7.1.0
1589 | strip-ansi-cjs: strip-ansi@6.0.1
1590 | wrap-ansi: 8.1.0
1591 | wrap-ansi-cjs: wrap-ansi@7.0.0
1592 |
1593 | '@jridgewell/gen-mapping@0.3.5':
1594 | dependencies:
1595 | '@jridgewell/set-array': 1.2.1
1596 | '@jridgewell/sourcemap-codec': 1.4.15
1597 | '@jridgewell/trace-mapping': 0.3.25
1598 |
1599 | '@jridgewell/resolve-uri@3.1.2': {}
1600 |
1601 | '@jridgewell/set-array@1.2.1': {}
1602 |
1603 | '@jridgewell/sourcemap-codec@1.4.15': {}
1604 |
1605 | '@jridgewell/trace-mapping@0.3.25':
1606 | dependencies:
1607 | '@jridgewell/resolve-uri': 3.1.2
1608 | '@jridgewell/sourcemap-codec': 1.4.15
1609 |
1610 | '@kobalte/core@0.11.2(solid-js@1.8.22)':
1611 | dependencies:
1612 | '@floating-ui/dom': 1.6.5
1613 | '@internationalized/date': 3.5.4
1614 | '@internationalized/message': 3.1.4
1615 | '@internationalized/number': 3.5.3
1616 | '@kobalte/utils': 0.9.0(solid-js@1.8.22)
1617 | solid-js: 1.8.22
1618 |
1619 | '@kobalte/utils@0.9.0(solid-js@1.8.22)':
1620 | dependencies:
1621 | '@solid-primitives/event-listener': 2.3.3(solid-js@1.8.22)
1622 | '@solid-primitives/keyed': 1.2.2(solid-js@1.8.22)
1623 | '@solid-primitives/map': 0.4.11(solid-js@1.8.22)
1624 | '@solid-primitives/media': 2.2.9(solid-js@1.8.22)
1625 | '@solid-primitives/props': 3.1.11(solid-js@1.8.22)
1626 | '@solid-primitives/refs': 1.0.8(solid-js@1.8.22)
1627 | '@solid-primitives/utils': 6.2.3(solid-js@1.8.22)
1628 | solid-js: 1.8.22
1629 |
1630 | '@nodelib/fs.scandir@2.1.5':
1631 | dependencies:
1632 | '@nodelib/fs.stat': 2.0.5
1633 | run-parallel: 1.2.0
1634 |
1635 | '@nodelib/fs.stat@2.0.5': {}
1636 |
1637 | '@nodelib/fs.walk@1.2.8':
1638 | dependencies:
1639 | '@nodelib/fs.scandir': 2.1.5
1640 | fastq: 1.17.1
1641 |
1642 | '@pkgjs/parseargs@0.11.0':
1643 | optional: true
1644 |
1645 | '@rollup/rollup-android-arm-eabi@4.21.2':
1646 | optional: true
1647 |
1648 | '@rollup/rollup-android-arm64@4.21.2':
1649 | optional: true
1650 |
1651 | '@rollup/rollup-darwin-arm64@4.21.2':
1652 | optional: true
1653 |
1654 | '@rollup/rollup-darwin-x64@4.21.2':
1655 | optional: true
1656 |
1657 | '@rollup/rollup-linux-arm-gnueabihf@4.21.2':
1658 | optional: true
1659 |
1660 | '@rollup/rollup-linux-arm-musleabihf@4.21.2':
1661 | optional: true
1662 |
1663 | '@rollup/rollup-linux-arm64-gnu@4.21.2':
1664 | optional: true
1665 |
1666 | '@rollup/rollup-linux-arm64-musl@4.21.2':
1667 | optional: true
1668 |
1669 | '@rollup/rollup-linux-powerpc64le-gnu@4.21.2':
1670 | optional: true
1671 |
1672 | '@rollup/rollup-linux-riscv64-gnu@4.21.2':
1673 | optional: true
1674 |
1675 | '@rollup/rollup-linux-s390x-gnu@4.21.2':
1676 | optional: true
1677 |
1678 | '@rollup/rollup-linux-x64-gnu@4.21.2':
1679 | optional: true
1680 |
1681 | '@rollup/rollup-linux-x64-musl@4.21.2':
1682 | optional: true
1683 |
1684 | '@rollup/rollup-win32-arm64-msvc@4.21.2':
1685 | optional: true
1686 |
1687 | '@rollup/rollup-win32-ia32-msvc@4.21.2':
1688 | optional: true
1689 |
1690 | '@rollup/rollup-win32-x64-msvc@4.21.2':
1691 | optional: true
1692 |
1693 | '@solid-primitives/event-listener@2.3.3(solid-js@1.8.22)':
1694 | dependencies:
1695 | '@solid-primitives/utils': 6.2.3(solid-js@1.8.22)
1696 | solid-js: 1.8.22
1697 |
1698 | '@solid-primitives/keyed@1.2.2(solid-js@1.8.22)':
1699 | dependencies:
1700 | solid-js: 1.8.22
1701 |
1702 | '@solid-primitives/map@0.4.11(solid-js@1.8.22)':
1703 | dependencies:
1704 | '@solid-primitives/trigger': 1.0.11(solid-js@1.8.22)
1705 | solid-js: 1.8.22
1706 |
1707 | '@solid-primitives/media@2.2.9(solid-js@1.8.22)':
1708 | dependencies:
1709 | '@solid-primitives/event-listener': 2.3.3(solid-js@1.8.22)
1710 | '@solid-primitives/rootless': 1.4.5(solid-js@1.8.22)
1711 | '@solid-primitives/static-store': 0.0.8(solid-js@1.8.22)
1712 | '@solid-primitives/utils': 6.2.3(solid-js@1.8.22)
1713 | solid-js: 1.8.22
1714 |
1715 | '@solid-primitives/props@3.1.11(solid-js@1.8.22)':
1716 | dependencies:
1717 | '@solid-primitives/utils': 6.2.3(solid-js@1.8.22)
1718 | solid-js: 1.8.22
1719 |
1720 | '@solid-primitives/refs@1.0.8(solid-js@1.8.22)':
1721 | dependencies:
1722 | '@solid-primitives/utils': 6.2.3(solid-js@1.8.22)
1723 | solid-js: 1.8.22
1724 |
1725 | '@solid-primitives/rootless@1.4.5(solid-js@1.8.22)':
1726 | dependencies:
1727 | '@solid-primitives/utils': 6.2.3(solid-js@1.8.22)
1728 | solid-js: 1.8.22
1729 |
1730 | '@solid-primitives/static-store@0.0.8(solid-js@1.8.22)':
1731 | dependencies:
1732 | '@solid-primitives/utils': 6.2.3(solid-js@1.8.22)
1733 | solid-js: 1.8.22
1734 |
1735 | '@solid-primitives/transition-group@1.0.5(solid-js@1.8.22)':
1736 | dependencies:
1737 | solid-js: 1.8.22
1738 |
1739 | '@solid-primitives/trigger@1.0.11(solid-js@1.8.22)':
1740 | dependencies:
1741 | '@solid-primitives/utils': 6.2.3(solid-js@1.8.22)
1742 | solid-js: 1.8.22
1743 |
1744 | '@solid-primitives/utils@6.2.3(solid-js@1.8.22)':
1745 | dependencies:
1746 | solid-js: 1.8.22
1747 |
1748 | '@swc/helpers@0.5.11':
1749 | dependencies:
1750 | tslib: 2.6.2
1751 |
1752 | '@tauri-apps/api@2.0.0-beta.13': {}
1753 |
1754 | '@tauri-apps/api@2.0.0-rc.4': {}
1755 |
1756 | '@tauri-apps/cli-darwin-arm64@2.0.0-rc.8':
1757 | optional: true
1758 |
1759 | '@tauri-apps/cli-darwin-x64@2.0.0-rc.8':
1760 | optional: true
1761 |
1762 | '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.8':
1763 | optional: true
1764 |
1765 | '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.8':
1766 | optional: true
1767 |
1768 | '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.8':
1769 | optional: true
1770 |
1771 | '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.8':
1772 | optional: true
1773 |
1774 | '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.8':
1775 | optional: true
1776 |
1777 | '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.8':
1778 | optional: true
1779 |
1780 | '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.8':
1781 | optional: true
1782 |
1783 | '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.8':
1784 | optional: true
1785 |
1786 | '@tauri-apps/cli@2.0.0-rc.8':
1787 | optionalDependencies:
1788 | '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.8
1789 | '@tauri-apps/cli-darwin-x64': 2.0.0-rc.8
1790 | '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.8
1791 | '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.8
1792 | '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.8
1793 | '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.8
1794 | '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.8
1795 | '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.8
1796 | '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.8
1797 | '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.8
1798 |
1799 | '@tauri-apps/plugin-dialog@2.0.0-beta.5':
1800 | dependencies:
1801 | '@tauri-apps/api': 2.0.0-beta.13
1802 |
1803 | '@tauri-apps/plugin-fs@2.0.0-beta.5':
1804 | dependencies:
1805 | '@tauri-apps/api': 2.0.0-beta.13
1806 |
1807 | '@tauri-apps/plugin-process@2.0.0-beta.5':
1808 | dependencies:
1809 | '@tauri-apps/api': 2.0.0-beta.13
1810 |
1811 | '@tauri-apps/plugin-shell@2.0.0-rc.1':
1812 | dependencies:
1813 | '@tauri-apps/api': 2.0.0-rc.4
1814 |
1815 | '@tauri-apps/plugin-updater@2.0.0-beta.5':
1816 | dependencies:
1817 | '@tauri-apps/api': 2.0.0-beta.13
1818 |
1819 | '@types/babel__core@7.20.5':
1820 | dependencies:
1821 | '@babel/parser': 7.24.6
1822 | '@babel/types': 7.24.6
1823 | '@types/babel__generator': 7.6.8
1824 | '@types/babel__template': 7.4.4
1825 | '@types/babel__traverse': 7.20.6
1826 |
1827 | '@types/babel__generator@7.6.8':
1828 | dependencies:
1829 | '@babel/types': 7.24.6
1830 |
1831 | '@types/babel__template@7.4.4':
1832 | dependencies:
1833 | '@babel/parser': 7.24.6
1834 | '@babel/types': 7.24.6
1835 |
1836 | '@types/babel__traverse@7.20.6':
1837 | dependencies:
1838 | '@babel/types': 7.24.6
1839 |
1840 | '@types/estree@1.0.5': {}
1841 |
1842 | ansi-regex@5.0.1: {}
1843 |
1844 | ansi-regex@6.0.1: {}
1845 |
1846 | ansi-styles@3.2.1:
1847 | dependencies:
1848 | color-convert: 1.9.3
1849 |
1850 | ansi-styles@4.3.0:
1851 | dependencies:
1852 | color-convert: 2.0.1
1853 |
1854 | ansi-styles@6.2.1: {}
1855 |
1856 | any-promise@1.3.0: {}
1857 |
1858 | anymatch@3.1.3:
1859 | dependencies:
1860 | normalize-path: 3.0.0
1861 | picomatch: 2.3.1
1862 |
1863 | arg@5.0.2: {}
1864 |
1865 | autoprefixer@10.4.20(postcss@8.4.41):
1866 | dependencies:
1867 | browserslist: 4.23.3
1868 | caniuse-lite: 1.0.30001655
1869 | fraction.js: 4.3.7
1870 | normalize-range: 0.1.2
1871 | picocolors: 1.0.1
1872 | postcss: 8.4.41
1873 | postcss-value-parser: 4.2.0
1874 |
1875 | babel-plugin-jsx-dom-expressions@0.37.21(@babel/core@7.24.6):
1876 | dependencies:
1877 | '@babel/core': 7.24.6
1878 | '@babel/helper-module-imports': 7.18.6
1879 | '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6)
1880 | '@babel/types': 7.24.6
1881 | html-entities: 2.3.3
1882 | validate-html-nesting: 1.2.2
1883 |
1884 | babel-preset-solid@1.8.17(@babel/core@7.24.6):
1885 | dependencies:
1886 | '@babel/core': 7.24.6
1887 | babel-plugin-jsx-dom-expressions: 0.37.21(@babel/core@7.24.6)
1888 |
1889 | balanced-match@1.0.2: {}
1890 |
1891 | binary-extensions@2.3.0: {}
1892 |
1893 | brace-expansion@2.0.1:
1894 | dependencies:
1895 | balanced-match: 1.0.2
1896 |
1897 | braces@3.0.3:
1898 | dependencies:
1899 | fill-range: 7.1.1
1900 |
1901 | browserslist@4.23.3:
1902 | dependencies:
1903 | caniuse-lite: 1.0.30001655
1904 | electron-to-chromium: 1.5.13
1905 | node-releases: 2.0.18
1906 | update-browserslist-db: 1.1.0(browserslist@4.23.3)
1907 |
1908 | camelcase-css@2.0.1: {}
1909 |
1910 | caniuse-lite@1.0.30001655: {}
1911 |
1912 | chalk@2.4.2:
1913 | dependencies:
1914 | ansi-styles: 3.2.1
1915 | escape-string-regexp: 1.0.5
1916 | supports-color: 5.5.0
1917 |
1918 | chokidar@3.6.0:
1919 | dependencies:
1920 | anymatch: 3.1.3
1921 | braces: 3.0.3
1922 | glob-parent: 5.1.2
1923 | is-binary-path: 2.1.0
1924 | is-glob: 4.0.3
1925 | normalize-path: 3.0.0
1926 | readdirp: 3.6.0
1927 | optionalDependencies:
1928 | fsevents: 2.3.3
1929 |
1930 | color-convert@1.9.3:
1931 | dependencies:
1932 | color-name: 1.1.3
1933 |
1934 | color-convert@2.0.1:
1935 | dependencies:
1936 | color-name: 1.1.4
1937 |
1938 | color-name@1.1.3: {}
1939 |
1940 | color-name@1.1.4: {}
1941 |
1942 | commander@4.1.1: {}
1943 |
1944 | convert-source-map@2.0.0: {}
1945 |
1946 | cross-spawn@7.0.3:
1947 | dependencies:
1948 | path-key: 3.1.1
1949 | shebang-command: 2.0.0
1950 | which: 2.0.2
1951 |
1952 | cssesc@3.0.0: {}
1953 |
1954 | csstype@3.1.3: {}
1955 |
1956 | debug@4.3.4:
1957 | dependencies:
1958 | ms: 2.1.2
1959 |
1960 | default-gateway@6.0.3:
1961 | dependencies:
1962 | execa: 5.1.1
1963 |
1964 | didyoumean@1.2.2: {}
1965 |
1966 | dlv@1.1.3: {}
1967 |
1968 | eastasianwidth@0.2.0: {}
1969 |
1970 | electron-to-chromium@1.5.13: {}
1971 |
1972 | emoji-regex@8.0.0: {}
1973 |
1974 | emoji-regex@9.2.2: {}
1975 |
1976 | esbuild@0.21.5:
1977 | optionalDependencies:
1978 | '@esbuild/aix-ppc64': 0.21.5
1979 | '@esbuild/android-arm': 0.21.5
1980 | '@esbuild/android-arm64': 0.21.5
1981 | '@esbuild/android-x64': 0.21.5
1982 | '@esbuild/darwin-arm64': 0.21.5
1983 | '@esbuild/darwin-x64': 0.21.5
1984 | '@esbuild/freebsd-arm64': 0.21.5
1985 | '@esbuild/freebsd-x64': 0.21.5
1986 | '@esbuild/linux-arm': 0.21.5
1987 | '@esbuild/linux-arm64': 0.21.5
1988 | '@esbuild/linux-ia32': 0.21.5
1989 | '@esbuild/linux-loong64': 0.21.5
1990 | '@esbuild/linux-mips64el': 0.21.5
1991 | '@esbuild/linux-ppc64': 0.21.5
1992 | '@esbuild/linux-riscv64': 0.21.5
1993 | '@esbuild/linux-s390x': 0.21.5
1994 | '@esbuild/linux-x64': 0.21.5
1995 | '@esbuild/netbsd-x64': 0.21.5
1996 | '@esbuild/openbsd-x64': 0.21.5
1997 | '@esbuild/sunos-x64': 0.21.5
1998 | '@esbuild/win32-arm64': 0.21.5
1999 | '@esbuild/win32-ia32': 0.21.5
2000 | '@esbuild/win32-x64': 0.21.5
2001 |
2002 | escalade@3.2.0: {}
2003 |
2004 | escape-string-regexp@1.0.5: {}
2005 |
2006 | execa@5.1.1:
2007 | dependencies:
2008 | cross-spawn: 7.0.3
2009 | get-stream: 6.0.1
2010 | human-signals: 2.1.0
2011 | is-stream: 2.0.1
2012 | merge-stream: 2.0.0
2013 | npm-run-path: 4.0.1
2014 | onetime: 5.1.2
2015 | signal-exit: 3.0.7
2016 | strip-final-newline: 2.0.0
2017 |
2018 | fast-glob@3.3.2:
2019 | dependencies:
2020 | '@nodelib/fs.stat': 2.0.5
2021 | '@nodelib/fs.walk': 1.2.8
2022 | glob-parent: 5.1.2
2023 | merge2: 1.4.1
2024 | micromatch: 4.0.7
2025 |
2026 | fastq@1.17.1:
2027 | dependencies:
2028 | reusify: 1.0.4
2029 |
2030 | fill-range@7.1.1:
2031 | dependencies:
2032 | to-regex-range: 5.0.1
2033 |
2034 | foreground-child@3.1.1:
2035 | dependencies:
2036 | cross-spawn: 7.0.3
2037 | signal-exit: 4.1.0
2038 |
2039 | fraction.js@4.3.7: {}
2040 |
2041 | fsevents@2.3.3:
2042 | optional: true
2043 |
2044 | function-bind@1.1.2: {}
2045 |
2046 | gensync@1.0.0-beta.2: {}
2047 |
2048 | get-stream@6.0.1: {}
2049 |
2050 | glob-parent@5.1.2:
2051 | dependencies:
2052 | is-glob: 4.0.3
2053 |
2054 | glob-parent@6.0.2:
2055 | dependencies:
2056 | is-glob: 4.0.3
2057 |
2058 | glob@10.4.1:
2059 | dependencies:
2060 | foreground-child: 3.1.1
2061 | jackspeak: 3.1.2
2062 | minimatch: 9.0.4
2063 | minipass: 7.1.2
2064 | path-scurry: 1.11.1
2065 |
2066 | globals@11.12.0: {}
2067 |
2068 | has-flag@3.0.0: {}
2069 |
2070 | hasown@2.0.2:
2071 | dependencies:
2072 | function-bind: 1.1.2
2073 |
2074 | html-entities@2.3.3: {}
2075 |
2076 | human-signals@2.1.0: {}
2077 |
2078 | internal-ip@7.0.0:
2079 | dependencies:
2080 | default-gateway: 6.0.3
2081 | ipaddr.js: 2.2.0
2082 | is-ip: 3.1.0
2083 | p-event: 4.2.0
2084 |
2085 | intl-messageformat@10.5.14:
2086 | dependencies:
2087 | '@formatjs/ecma402-abstract': 2.0.0
2088 | '@formatjs/fast-memoize': 2.2.0
2089 | '@formatjs/icu-messageformat-parser': 2.7.8
2090 | tslib: 2.6.2
2091 |
2092 | ip-regex@4.3.0: {}
2093 |
2094 | ipaddr.js@2.2.0: {}
2095 |
2096 | is-binary-path@2.1.0:
2097 | dependencies:
2098 | binary-extensions: 2.3.0
2099 |
2100 | is-core-module@2.13.1:
2101 | dependencies:
2102 | hasown: 2.0.2
2103 |
2104 | is-extglob@2.1.1: {}
2105 |
2106 | is-fullwidth-code-point@3.0.0: {}
2107 |
2108 | is-glob@4.0.3:
2109 | dependencies:
2110 | is-extglob: 2.1.1
2111 |
2112 | is-ip@3.1.0:
2113 | dependencies:
2114 | ip-regex: 4.3.0
2115 |
2116 | is-number@7.0.0: {}
2117 |
2118 | is-stream@2.0.1: {}
2119 |
2120 | is-what@4.1.16: {}
2121 |
2122 | isexe@2.0.0: {}
2123 |
2124 | jackspeak@3.1.2:
2125 | dependencies:
2126 | '@isaacs/cliui': 8.0.2
2127 | optionalDependencies:
2128 | '@pkgjs/parseargs': 0.11.0
2129 |
2130 | jiti@1.21.0: {}
2131 |
2132 | js-tokens@4.0.0: {}
2133 |
2134 | jsesc@2.5.2: {}
2135 |
2136 | json5@2.2.3: {}
2137 |
2138 | lilconfig@2.1.0: {}
2139 |
2140 | lilconfig@3.1.1: {}
2141 |
2142 | lines-and-columns@1.2.4: {}
2143 |
2144 | lru-cache@10.2.2: {}
2145 |
2146 | lru-cache@5.1.1:
2147 | dependencies:
2148 | yallist: 3.1.1
2149 |
2150 | merge-anything@5.1.7:
2151 | dependencies:
2152 | is-what: 4.1.16
2153 |
2154 | merge-stream@2.0.0: {}
2155 |
2156 | merge2@1.4.1: {}
2157 |
2158 | micromatch@4.0.7:
2159 | dependencies:
2160 | braces: 3.0.3
2161 | picomatch: 2.3.1
2162 |
2163 | mimic-fn@2.1.0: {}
2164 |
2165 | minimatch@9.0.4:
2166 | dependencies:
2167 | brace-expansion: 2.0.1
2168 |
2169 | minipass@7.1.2: {}
2170 |
2171 | ms@2.1.2: {}
2172 |
2173 | mz@2.7.0:
2174 | dependencies:
2175 | any-promise: 1.3.0
2176 | object-assign: 4.1.1
2177 | thenify-all: 1.6.0
2178 |
2179 | nanoid@3.3.7: {}
2180 |
2181 | node-releases@2.0.18: {}
2182 |
2183 | normalize-path@3.0.0: {}
2184 |
2185 | normalize-range@0.1.2: {}
2186 |
2187 | npm-run-path@4.0.1:
2188 | dependencies:
2189 | path-key: 3.1.1
2190 |
2191 | object-assign@4.1.1: {}
2192 |
2193 | object-hash@3.0.0: {}
2194 |
2195 | onetime@5.1.2:
2196 | dependencies:
2197 | mimic-fn: 2.1.0
2198 |
2199 | p-event@4.2.0:
2200 | dependencies:
2201 | p-timeout: 3.2.0
2202 |
2203 | p-finally@1.0.0: {}
2204 |
2205 | p-timeout@3.2.0:
2206 | dependencies:
2207 | p-finally: 1.0.0
2208 |
2209 | path-key@3.1.1: {}
2210 |
2211 | path-parse@1.0.7: {}
2212 |
2213 | path-scurry@1.11.1:
2214 | dependencies:
2215 | lru-cache: 10.2.2
2216 | minipass: 7.1.2
2217 |
2218 | picocolors@1.0.1: {}
2219 |
2220 | picomatch@2.3.1: {}
2221 |
2222 | pify@2.3.0: {}
2223 |
2224 | pirates@4.0.6: {}
2225 |
2226 | postcss-import@15.1.0(postcss@8.4.41):
2227 | dependencies:
2228 | postcss: 8.4.41
2229 | postcss-value-parser: 4.2.0
2230 | read-cache: 1.0.0
2231 | resolve: 1.22.8
2232 |
2233 | postcss-js@4.0.1(postcss@8.4.41):
2234 | dependencies:
2235 | camelcase-css: 2.0.1
2236 | postcss: 8.4.41
2237 |
2238 | postcss-load-config@4.0.2(postcss@8.4.41):
2239 | dependencies:
2240 | lilconfig: 3.1.1
2241 | yaml: 2.4.2
2242 | optionalDependencies:
2243 | postcss: 8.4.41
2244 |
2245 | postcss-nested@6.0.1(postcss@8.4.41):
2246 | dependencies:
2247 | postcss: 8.4.41
2248 | postcss-selector-parser: 6.1.0
2249 |
2250 | postcss-selector-parser@6.1.0:
2251 | dependencies:
2252 | cssesc: 3.0.0
2253 | util-deprecate: 1.0.2
2254 |
2255 | postcss-value-parser@4.2.0: {}
2256 |
2257 | postcss@8.4.41:
2258 | dependencies:
2259 | nanoid: 3.3.7
2260 | picocolors: 1.0.1
2261 | source-map-js: 1.2.0
2262 |
2263 | prettier@3.3.3: {}
2264 |
2265 | queue-microtask@1.2.3: {}
2266 |
2267 | read-cache@1.0.0:
2268 | dependencies:
2269 | pify: 2.3.0
2270 |
2271 | readdirp@3.6.0:
2272 | dependencies:
2273 | picomatch: 2.3.1
2274 |
2275 | resolve@1.22.8:
2276 | dependencies:
2277 | is-core-module: 2.13.1
2278 | path-parse: 1.0.7
2279 | supports-preserve-symlinks-flag: 1.0.0
2280 |
2281 | reusify@1.0.4: {}
2282 |
2283 | rollup@4.21.2:
2284 | dependencies:
2285 | '@types/estree': 1.0.5
2286 | optionalDependencies:
2287 | '@rollup/rollup-android-arm-eabi': 4.21.2
2288 | '@rollup/rollup-android-arm64': 4.21.2
2289 | '@rollup/rollup-darwin-arm64': 4.21.2
2290 | '@rollup/rollup-darwin-x64': 4.21.2
2291 | '@rollup/rollup-linux-arm-gnueabihf': 4.21.2
2292 | '@rollup/rollup-linux-arm-musleabihf': 4.21.2
2293 | '@rollup/rollup-linux-arm64-gnu': 4.21.2
2294 | '@rollup/rollup-linux-arm64-musl': 4.21.2
2295 | '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2
2296 | '@rollup/rollup-linux-riscv64-gnu': 4.21.2
2297 | '@rollup/rollup-linux-s390x-gnu': 4.21.2
2298 | '@rollup/rollup-linux-x64-gnu': 4.21.2
2299 | '@rollup/rollup-linux-x64-musl': 4.21.2
2300 | '@rollup/rollup-win32-arm64-msvc': 4.21.2
2301 | '@rollup/rollup-win32-ia32-msvc': 4.21.2
2302 | '@rollup/rollup-win32-x64-msvc': 4.21.2
2303 | fsevents: 2.3.3
2304 |
2305 | run-parallel@1.2.0:
2306 | dependencies:
2307 | queue-microtask: 1.2.3
2308 |
2309 | semver@6.3.1: {}
2310 |
2311 | seroval-plugins@1.1.1(seroval@1.1.1):
2312 | dependencies:
2313 | seroval: 1.1.1
2314 |
2315 | seroval@1.1.1: {}
2316 |
2317 | shebang-command@2.0.0:
2318 | dependencies:
2319 | shebang-regex: 3.0.0
2320 |
2321 | shebang-regex@3.0.0: {}
2322 |
2323 | signal-exit@3.0.7: {}
2324 |
2325 | signal-exit@4.1.0: {}
2326 |
2327 | solid-js@1.8.22:
2328 | dependencies:
2329 | csstype: 3.1.3
2330 | seroval: 1.1.1
2331 | seroval-plugins: 1.1.1(seroval@1.1.1)
2332 |
2333 | solid-refresh@0.6.3(solid-js@1.8.22):
2334 | dependencies:
2335 | '@babel/generator': 7.24.6
2336 | '@babel/helper-module-imports': 7.24.6
2337 | '@babel/types': 7.24.6
2338 | solid-js: 1.8.22
2339 |
2340 | solid-transition-group@0.2.3(solid-js@1.8.22):
2341 | dependencies:
2342 | '@solid-primitives/refs': 1.0.8(solid-js@1.8.22)
2343 | '@solid-primitives/transition-group': 1.0.5(solid-js@1.8.22)
2344 | solid-js: 1.8.22
2345 |
2346 | source-map-js@1.2.0: {}
2347 |
2348 | string-width@4.2.3:
2349 | dependencies:
2350 | emoji-regex: 8.0.0
2351 | is-fullwidth-code-point: 3.0.0
2352 | strip-ansi: 6.0.1
2353 |
2354 | string-width@5.1.2:
2355 | dependencies:
2356 | eastasianwidth: 0.2.0
2357 | emoji-regex: 9.2.2
2358 | strip-ansi: 7.1.0
2359 |
2360 | strip-ansi@6.0.1:
2361 | dependencies:
2362 | ansi-regex: 5.0.1
2363 |
2364 | strip-ansi@7.1.0:
2365 | dependencies:
2366 | ansi-regex: 6.0.1
2367 |
2368 | strip-final-newline@2.0.0: {}
2369 |
2370 | sucrase@3.35.0:
2371 | dependencies:
2372 | '@jridgewell/gen-mapping': 0.3.5
2373 | commander: 4.1.1
2374 | glob: 10.4.1
2375 | lines-and-columns: 1.2.4
2376 | mz: 2.7.0
2377 | pirates: 4.0.6
2378 | ts-interface-checker: 0.1.13
2379 |
2380 | supports-color@5.5.0:
2381 | dependencies:
2382 | has-flag: 3.0.0
2383 |
2384 | supports-preserve-symlinks-flag@1.0.0: {}
2385 |
2386 | tailwindcss@3.4.10:
2387 | dependencies:
2388 | '@alloc/quick-lru': 5.2.0
2389 | arg: 5.0.2
2390 | chokidar: 3.6.0
2391 | didyoumean: 1.2.2
2392 | dlv: 1.1.3
2393 | fast-glob: 3.3.2
2394 | glob-parent: 6.0.2
2395 | is-glob: 4.0.3
2396 | jiti: 1.21.0
2397 | lilconfig: 2.1.0
2398 | micromatch: 4.0.7
2399 | normalize-path: 3.0.0
2400 | object-hash: 3.0.0
2401 | picocolors: 1.0.1
2402 | postcss: 8.4.41
2403 | postcss-import: 15.1.0(postcss@8.4.41)
2404 | postcss-js: 4.0.1(postcss@8.4.41)
2405 | postcss-load-config: 4.0.2(postcss@8.4.41)
2406 | postcss-nested: 6.0.1(postcss@8.4.41)
2407 | postcss-selector-parser: 6.1.0
2408 | resolve: 1.22.8
2409 | sucrase: 3.35.0
2410 | transitivePeerDependencies:
2411 | - ts-node
2412 |
2413 | thenify-all@1.6.0:
2414 | dependencies:
2415 | thenify: 3.3.1
2416 |
2417 | thenify@3.3.1:
2418 | dependencies:
2419 | any-promise: 1.3.0
2420 |
2421 | to-fast-properties@2.0.0: {}
2422 |
2423 | to-regex-range@5.0.1:
2424 | dependencies:
2425 | is-number: 7.0.0
2426 |
2427 | ts-interface-checker@0.1.13: {}
2428 |
2429 | tslib@2.6.2: {}
2430 |
2431 | typescript@5.5.4: {}
2432 |
2433 | update-browserslist-db@1.1.0(browserslist@4.23.3):
2434 | dependencies:
2435 | browserslist: 4.23.3
2436 | escalade: 3.2.0
2437 | picocolors: 1.0.1
2438 |
2439 | util-deprecate@1.0.2: {}
2440 |
2441 | validate-html-nesting@1.2.2: {}
2442 |
2443 | vite-plugin-solid@2.10.2(solid-js@1.8.22)(vite@5.4.2):
2444 | dependencies:
2445 | '@babel/core': 7.24.6
2446 | '@types/babel__core': 7.20.5
2447 | babel-preset-solid: 1.8.17(@babel/core@7.24.6)
2448 | merge-anything: 5.1.7
2449 | solid-js: 1.8.22
2450 | solid-refresh: 0.6.3(solid-js@1.8.22)
2451 | vite: 5.4.2
2452 | vitefu: 0.2.5(vite@5.4.2)
2453 | transitivePeerDependencies:
2454 | - supports-color
2455 |
2456 | vite@5.4.2:
2457 | dependencies:
2458 | esbuild: 0.21.5
2459 | postcss: 8.4.41
2460 | rollup: 4.21.2
2461 | optionalDependencies:
2462 | fsevents: 2.3.3
2463 |
2464 | vitefu@0.2.5(vite@5.4.2):
2465 | optionalDependencies:
2466 | vite: 5.4.2
2467 |
2468 | which@2.0.2:
2469 | dependencies:
2470 | isexe: 2.0.0
2471 |
2472 | wrap-ansi@7.0.0:
2473 | dependencies:
2474 | ansi-styles: 4.3.0
2475 | string-width: 4.2.3
2476 | strip-ansi: 6.0.1
2477 |
2478 | wrap-ansi@8.1.0:
2479 | dependencies:
2480 | ansi-styles: 6.2.1
2481 | string-width: 5.1.2
2482 | strip-ansi: 7.1.0
2483 |
2484 | yallist@3.1.1: {}
2485 |
2486 | yaml@2.4.2: {}
2487 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/public/icon.png
--------------------------------------------------------------------------------
/public/tauri.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src-tauri/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated by Cargo
2 | # will have compiled files and executables
3 | /target/
4 | src-tauri/gen
--------------------------------------------------------------------------------
/src-tauri/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "pulsar"
3 | version = "0.1.7"
4 | description = "A Tauri App"
5 | authors = ["@AtilaFassina"]
6 | license = ""
7 | repository = ""
8 | edition = "2021"
9 |
10 | [lib]
11 | name = "pulsar_lib"
12 | crate-type = ["staticlib", "cdylib", "rlib"]
13 |
14 |
15 | [build-dependencies]
16 | tauri-build = { version = "2.0.0-rc.7", features = [] }
17 |
18 | [dependencies]
19 | tauri = { version = "2.0.0-rc", features = [] }
20 | tauri-plugin-shell = "2.0.0-rc"
21 | serde = { version = "1", features = ["derive"] }
22 | serde_json = "1"
23 | tauri-plugin-fs = "2.0.0-rc"
24 | tauri-plugin-dialog = "2.0.0-rc"
25 | tokio = { version = "1.32.0", features = ["fs"] }
26 | thiserror = "1.0.47"
27 | regex = "1.9.5"
28 | log = { version = "0.4.20", features = ["release_max_level_off"] }
29 | globwalk = "0.8.1"
30 | futures = "0.3.28"
31 | tauri-plugin-devtools = "2.0.0-rc"
32 | specta = "=2.0.0-rc.20"
33 | tauri-specta = { version = "=2.0.0-rc.15", features = ["derive", "javascript", "typescript"] }
34 | tauri-plugin-updater = "2.0.0-rc"
35 | tauri-plugin-process = "2.0.0-rc"
36 | specta-typescript = "0.0.7"
37 |
38 | # Optimize for smaller binary size
39 | [profile.release]
40 | panic = "abort" # Strip expensive panic clean-up logic
41 | codegen-units = 1 # Compile crates one after another so the compiler can optimize better
42 | lto = true # Enables link to optimizations
43 | opt-level = "s" # Optimize for binary size
44 | strip = true # Remove debug symbols
45 |
--------------------------------------------------------------------------------
/src-tauri/build.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | tauri_build::build()
3 | }
4 |
--------------------------------------------------------------------------------
/src-tauri/capabilities/migrated.json:
--------------------------------------------------------------------------------
1 | {
2 | "identifier": "migrated",
3 | "description": "permissions that were migrated from v1",
4 | "local": true,
5 | "windows": ["main"],
6 | "permissions": [
7 | "core:path:default",
8 | "core:event:default",
9 | "core:window:default",
10 | "core:app:default",
11 | "core:resources:default",
12 | "core:menu:default",
13 | "core:tray:default",
14 | "fs:default",
15 | "fs:allow-read-file",
16 | "fs:allow-read-dir",
17 | "fs:allow-remove",
18 | "fs:allow-exists",
19 | {
20 | "identifier": "fs:scope",
21 | "allow": ["$DOCUMENT/**/*"]
22 | },
23 | "dialog:allow-open",
24 | "dialog:allow-confirm",
25 | "dialog:default",
26 | "dialog:default",
27 | "dialog:allow-ask",
28 | "dialog:allow-message",
29 | "updater:default",
30 | "updater:allow-check",
31 | "updater:allow-download-and-install",
32 | "process:default",
33 | "process:allow-restart"
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/src-tauri/gen/schemas/capabilities.json:
--------------------------------------------------------------------------------
1 | {"migrated":{"identifier":"migrated","description":"permissions that were migrated from v1","local":true,"windows":["main"],"permissions":["core:path:default","core:event:default","core:window:default","core:app:default","core:resources:default","core:menu:default","core:tray:default","fs:default","fs:allow-read-file","fs:allow-read-dir","fs:allow-remove","fs:allow-exists",{"identifier":"fs:scope","allow":["$DOCUMENT/**/*"]},"dialog:allow-open","dialog:allow-confirm","dialog:default","dialog:default","dialog:allow-ask","dialog:allow-message","updater:default","updater:allow-check","updater:allow-download-and-install","process:default","process:allow-restart"]}}
--------------------------------------------------------------------------------
/src-tauri/icons/128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/128x128.png
--------------------------------------------------------------------------------
/src-tauri/icons/128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/128x128@2x.png
--------------------------------------------------------------------------------
/src-tauri/icons/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/32x32.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square107x107Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square107x107Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square142x142Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square142x142Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square150x150Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square150x150Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square284x284Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square284x284Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square30x30Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square30x30Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square310x310Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square310x310Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square44x44Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square44x44Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square71x71Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square71x71Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square89x89Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/Square89x89Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/StoreLogo.png
--------------------------------------------------------------------------------
/src-tauri/icons/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/icon.icns
--------------------------------------------------------------------------------
/src-tauri/icons/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/icon.ico
--------------------------------------------------------------------------------
/src-tauri/icons/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src-tauri/icons/icon.png
--------------------------------------------------------------------------------
/src-tauri/src/error.rs:
--------------------------------------------------------------------------------
1 | use crate::FolderStat;
2 | use serde::{Serialize, Serializer};
3 | use specta::Type;
4 |
5 | #[derive(Debug, Type, thiserror::Error)]
6 | #[serde(tag = "type", content = "data")]
7 | pub enum Error {
8 | #[serde(skip)]
9 | #[error("Tokio can't readdir")]
10 | IoError(
11 | #[serde(skip)] // io::Error is not `Serialize` or `Type`
12 | #[from]
13 | std::io::Error,
14 | ),
15 |
16 | #[error("Failed to forward folder statistics, internal channel is broken.")]
17 | #[serde(skip)]
18 | TrySendError(#[from] tokio::sync::mpsc::error::TrySendError),
19 |
20 | #[error("Node modules folder size too large to be represented in JavaScript.")]
21 | TooLarge(
22 | #[serde(skip)] // io::Error is not `Serialize` or `Type`
23 | #[from]
24 | std::num::TryFromIntError,
25 | ),
26 | }
27 |
28 | impl Serialize for Error {
29 | fn serialize(&self, serializer: S) -> Result
30 | where
31 | S: Serializer,
32 | {
33 | serializer.serialize_str(self.to_string().as_ref())
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src-tauri/src/lib.rs:
--------------------------------------------------------------------------------
1 | mod error;
2 | mod util;
3 |
4 | use error::Error;
5 | use futures::future::try_join_all;
6 | use specta;
7 | use std::path::Path;
8 | use util::FolderStat;
9 |
10 | #[cfg(debug_assertions)]
11 | use tauri_plugin_devtools;
12 | use tauri_plugin_dialog;
13 |
14 | #[tauri::command]
15 | #[specta::specta]
16 | async fn get_dir_data(pattern: &str) -> Result, Error> {
17 | let dirs = util::get_dir_names(Path::new(pattern));
18 |
19 | let iter = dirs.into_iter().map(|path| async move {
20 | let size = u32::try_from(util::get_size(&path).await?)?;
21 | Ok(FolderStat { path, size }) as Result
22 | });
23 |
24 | let result = try_join_all(iter).await?;
25 |
26 | Ok(util::order_list(result))
27 | }
28 |
29 | pub fn run() {
30 | #[cfg(debug_assertions)]
31 | let devtools = tauri_plugin_devtools::init();
32 | let builder = tauri::Builder::default().plugin(devtools);
33 |
34 | #[cfg(not(debug_assertions))]
35 | let builder = tauri::Builder::default();
36 |
37 | let specta_builder = tauri_specta::Builder::::new()
38 | .commands(tauri_specta::collect_commands![get_dir_data]);
39 |
40 | #[cfg(all(debug_assertions, not(mobile)))]
41 | specta_builder
42 | .export(
43 | specta_typescript::Typescript::default()
44 | .formatter(specta_typescript::formatter::prettier),
45 | "../src/commands.ts",
46 | )
47 | .expect("failed to export typescript bindings");
48 |
49 | builder
50 | .plugin(tauri_plugin_updater::Builder::new().build())
51 | .plugin(tauri_plugin_dialog::init())
52 | .plugin(tauri_plugin_process::init())
53 | .plugin(tauri_plugin_fs::init())
54 | .invoke_handler(specta_builder.invoke_handler())
55 | .run(tauri::generate_context!())
56 | .expect("error while running tauri application");
57 | }
58 |
--------------------------------------------------------------------------------
/src-tauri/src/main.rs:
--------------------------------------------------------------------------------
1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!!
2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
3 |
4 | fn main() {
5 | pulsar_lib::run()
6 | }
7 |
--------------------------------------------------------------------------------
/src-tauri/src/util.rs:
--------------------------------------------------------------------------------
1 | use crate::error::Error;
2 | use core::future::Future;
3 | use core::pin::Pin;
4 | use globwalk::GlobWalkerBuilder;
5 | use log::info;
6 | use regex::Regex;
7 | use serde::Serialize;
8 | use specta::Type;
9 | use std::path::{Path, PathBuf};
10 |
11 | #[derive(Serialize, Type, Debug)]
12 | pub struct FolderStat {
13 | pub path: PathBuf,
14 | pub size: u32,
15 | }
16 |
17 | pub fn order_list(mut list: Vec) -> Vec {
18 | list.sort_by(|a, b| a.path.cmp(&b.path));
19 | list.sort_by(|a, b| b.size.cmp(&a.size));
20 |
21 | list
22 | }
23 |
24 | pub fn get_size<'a>(
25 | path: &'a Path,
26 | ) -> Pin> + 'a + Send>> {
27 | Box::pin(async move {
28 | // Using `fs::symlink_metadata` since we don't want to follow symlinks,
29 | // as we're calculating the exact size of the requested path itself.
30 | let path_metadata = tokio::fs::symlink_metadata(&path).await?;
31 | let mut size_in_bytes = 0;
32 |
33 | if path_metadata.is_dir() {
34 | let mut read_dir = tokio::fs::read_dir(&path).await?;
35 |
36 | while let Some(entry) = read_dir.next_entry().await? {
37 | // `DirEntry::metadata` does not follow symlinks (unlike `fs::metadata`), so in the
38 | // case of symlinks, this is the size of the symlink itself, not its target.
39 | let entry_metadata = entry.metadata().await?;
40 |
41 | if entry_metadata.is_dir() {
42 | // The size of the directory entry itself will be counted inside the `get_size()` call,
43 | // so we intentionally don't also add `entry_metadata.len()` to the total here.
44 | size_in_bytes += get_size(&entry.path()).await?;
45 | } else {
46 | size_in_bytes += entry_metadata.len();
47 | }
48 | }
49 | } else {
50 | size_in_bytes = path_metadata.len();
51 | }
52 | Ok(size_in_bytes)
53 | })
54 | }
55 |
56 | pub fn get_dir_names(path: &Path) -> Vec {
57 | let mut filenames = Vec::new();
58 | let node_modules_regex = Regex::new(r"node_modules").unwrap();
59 |
60 | let walker = GlobWalkerBuilder::from_patterns(path, &["**/node_modules", "**/![.pnpm]/*"])
61 | .max_depth(6)
62 | .follow_links(false)
63 | .build()
64 | .expect("glob walker should work")
65 | .into_iter()
66 | .filter_map(Result::ok);
67 |
68 | for file in walker {
69 | let path_string = file.path().display().to_string();
70 |
71 | let mut count = 0;
72 | let mut start = 0;
73 | let mut should_scan = true;
74 |
75 | while let Some(mat) = node_modules_regex.captures(&path_string[start..]) {
76 | count += 1;
77 | start += mat.get(0).unwrap().end();
78 |
79 | if count > 1 {
80 | should_scan = false;
81 | break;
82 | }
83 | }
84 |
85 | if should_scan {
86 | filenames.push(file.path().to_path_buf())
87 | }
88 | }
89 |
90 | info!("Dir names: {}", filenames.len());
91 |
92 | filenames
93 | }
94 |
--------------------------------------------------------------------------------
/src-tauri/tauri.conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../node_modules/@tauri-apps/cli/schema.json",
3 | "productName": "pulsar",
4 | "identifier": "pulsar.atila.io",
5 | "build": {
6 | "beforeDevCommand": "pnpm dev",
7 | "beforeBuildCommand": "pnpm build",
8 | "devUrl": "http://localhost:1420",
9 | "frontendDist": "../dist"
10 | },
11 |
12 | "bundle": {
13 | "macOS": {
14 | "signingIdentity": "-"
15 | },
16 | "active": true,
17 | "targets": "all",
18 | "icon": [
19 | "icons/32x32.png",
20 | "icons/128x128.png",
21 | "icons/128x128@2x.png",
22 | "icons/icon.icns",
23 | "icons/icon.ico"
24 | ]
25 | },
26 | "plugins": {
27 | "updater": {
28 | "active": true,
29 | "endpoints": [
30 | "https://cdn.crabnebula.app/update/the-huns/pulsar/{{target}}-{{arch}}/{{current_version}}"
31 | ],
32 | "dialog": true,
33 | "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEU0QkU1NDIyOTVDRDE0NApSV1JFMFZ3cFF1VkxEcGU5ekMxN3p4NWN4OHVLendRNkZCWGRsSmpXQ3Z0Y2diUlNHc0R3UUVuZAo="
34 | }
35 | },
36 | "app": {
37 | "withGlobalTauri": false,
38 | "security": {
39 | "csp": null
40 | },
41 |
42 | "windows": [
43 | {
44 | "fullscreen": false,
45 | "resizable": true,
46 | "title": "pulsar",
47 | "minWidth": 1000,
48 | "minHeight": 800
49 | }
50 | ]
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | @layer base {
6 | body::before {
7 | content: "";
8 | background-image: url("./assets/space.webp");
9 | @apply bg-cover -z-10 fixed top-0 left-0 block w-screen h-screen;
10 | }
11 | }
12 |
13 | @layer components {
14 | .fade-exit-active {
15 | @apply transition-all duration-1000;
16 | }
17 |
18 | .fade-exit-to {
19 | @apply opacity-0 scale-0;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { Match, Show, Switch, onMount } from "solid-js";
2 | import { Logo } from "./components/logo";
3 | import { Scanner } from "./components/scanner";
4 | import Footer from "./components/footer";
5 | import ResultsTable from "./components/results-table";
6 | import "./App.css";
7 | import { scanStore } from "./lib/store";
8 | import { checkForAppUpdates } from "./lib/updater";
9 |
10 | function App() {
11 | const [scanData, setScanData] = scanStore;
12 | const hasItems = () => scanData.fileList.length > 0;
13 |
14 | onMount(async () => {
15 | await checkForAppUpdates(false);
16 | });
17 |
18 | return (
19 | <>
20 |
21 |
25 |
26 |
27 | 0}>
28 |
29 | {scanData.stats}
30 |
31 |
32 |
33 |
34 | -
35 |
36 |
37 | -
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | scanning...
46 |
47 |
48 |
49 |
50 |
51 |
52 | 🤖 waiting on search
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | >
61 | );
62 | }
63 |
64 | export default App;
65 |
--------------------------------------------------------------------------------
/src/assets/cn-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/space.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/atilafassina/pulsar/77abe365e43d6de1954d55428e5ac24d836540f9/src/assets/space.webp
--------------------------------------------------------------------------------
/src/commands.ts:
--------------------------------------------------------------------------------
1 | // This file was generated by [tauri-specta](https://github.com/oscartbeaumont/tauri-specta). Do not edit this file manually.
2 |
3 | /** user-defined commands **/
4 |
5 | export const commands = {
6 | async getDirData(pattern: string): Promise> {
7 | try {
8 | return {
9 | status: "ok",
10 | data: await TAURI_INVOKE("get_dir_data", { pattern }),
11 | };
12 | } catch (e) {
13 | if (e instanceof Error) throw e;
14 | else return { status: "error", error: e as any };
15 | }
16 | },
17 | };
18 |
19 | /** user-defined events **/
20 |
21 | /** user-defined constants **/
22 |
23 | /** user-defined types **/
24 |
25 | export type Error = { type: "TooLarge" };
26 | export type FolderStat = { path: string; size: number };
27 |
28 | /** tauri-specta globals **/
29 |
30 | import {
31 | invoke as TAURI_INVOKE,
32 | Channel as TAURI_CHANNEL,
33 | } from "@tauri-apps/api/core";
34 | import * as TAURI_API_EVENT from "@tauri-apps/api/event";
35 | import { type WebviewWindow as __WebviewWindow__ } from "@tauri-apps/api/webviewWindow";
36 |
37 | type __EventObj__ = {
38 | listen: (
39 | cb: TAURI_API_EVENT.EventCallback,
40 | ) => ReturnType>;
41 | once: (
42 | cb: TAURI_API_EVENT.EventCallback,
43 | ) => ReturnType>;
44 | emit: T extends null
45 | ? (payload?: T) => ReturnType
46 | : (payload: T) => ReturnType;
47 | };
48 |
49 | export type Result =
50 | | { status: "ok"; data: T }
51 | | { status: "error"; error: E };
52 |
53 | function __makeEvents__>(
54 | mappings: Record,
55 | ) {
56 | return new Proxy(
57 | {} as unknown as {
58 | [K in keyof T]: __EventObj__ & {
59 | (handle: __WebviewWindow__): __EventObj__;
60 | };
61 | },
62 | {
63 | get: (_, event) => {
64 | const name = mappings[event as keyof T];
65 |
66 | return new Proxy((() => {}) as any, {
67 | apply: (_, __, [window]: [__WebviewWindow__]) => ({
68 | listen: (arg: any) => window.listen(name, arg),
69 | once: (arg: any) => window.once(name, arg),
70 | emit: (arg: any) => window.emit(name, arg),
71 | }),
72 | get: (_, command: keyof __EventObj__) => {
73 | switch (command) {
74 | case "listen":
75 | return (arg: any) => TAURI_API_EVENT.listen(name, arg);
76 | case "once":
77 | return (arg: any) => TAURI_API_EVENT.once(name, arg);
78 | case "emit":
79 | return (arg: any) => TAURI_API_EVENT.emit(name, arg);
80 | }
81 | },
82 | });
83 | },
84 | },
85 | );
86 | }
87 |
--------------------------------------------------------------------------------
/src/components/footer.tsx:
--------------------------------------------------------------------------------
1 | function SafeLink({ href, text }: { href: string; text: string }) {
2 | return (
3 |
4 | {text}
5 |
6 | );
7 | }
8 | export default function Footer() {
9 | return (
10 |
26 | );
27 | }
28 |
--------------------------------------------------------------------------------
/src/components/logo.tsx:
--------------------------------------------------------------------------------
1 | export function Logo() {
2 | return (
3 |
4 | Pulsar
5 | dependency scanner.
6 |
7 | );
8 | }
9 |
--------------------------------------------------------------------------------
/src/components/results-table.tsx:
--------------------------------------------------------------------------------
1 | import { For, Show, createResource, createSignal } from "solid-js";
2 | import { TransitionGroup } from "solid-transition-group";
3 | import { formatSizeUnit } from "../lib/format";
4 | import { getDirName } from "../lib/get-dir-name";
5 | import { Trashbin } from "./trashbin";
6 | import { exists, remove } from "@tauri-apps/plugin-fs";
7 | import { confirm } from "@tauri-apps/plugin-dialog";
8 | import { type FolderStat } from "../commands";
9 | import { Checkbox } from "@kobalte/core";
10 |
11 | type ListProps = {
12 | folderList: FolderStat[];
13 | };
14 |
15 | type TRprops = {
16 | directory: string;
17 | directoryPrefix: string;
18 | modulesSize: string;
19 | };
20 |
21 | function deleteNodeModules(path: string) {
22 | return async (_shouldDelete: boolean) => {
23 | const fileExists = await exists(path);
24 |
25 | if (fileExists) {
26 | console.warn(":: deleting ::");
27 | await remove(`${path}/node_modules`, { recursive: true });
28 | }
29 |
30 | return true;
31 | };
32 | }
33 |
34 | function TableRow(props: TRprops) {
35 | const [shouldDelete, setDelete] = createSignal(false);
36 |
37 | const [data] = createResource(
38 | shouldDelete,
39 | deleteNodeModules(props.directoryPrefix + props.directory),
40 | );
41 |
42 | async function confirmDelete() {
43 | const shouldDelete = await confirm(
44 | `${props.directoryPrefix + props.directory} will be DELETED.
45 |
46 | Are you sure?
47 | `,
48 | {
49 | kind: "warning",
50 | title: "NON-REVERSIBLE ACTION",
51 | okLabel: "DELETE",
52 | },
53 | );
54 |
55 | setDelete(shouldDelete);
56 | }
57 |
58 | return (
59 |
60 |
63 |
64 |
65 | {props.directory}
66 |
67 |
68 | {props.directoryPrefix}
69 | {props.directory}/node_modules
70 |
71 | |
72 | {props.modulesSize} |
73 |
74 |
75 | -
76 |
77 | {}} />
78 |
79 |
80 |
81 |
82 |
83 | -
84 |
92 |
93 |
94 | |
95 |
96 |
97 | );
98 | }
99 |
100 | export default function ResultsTable(props: ListProps) {
101 | return (
102 |
103 |
104 |
105 | Name |
106 | Size |
107 | Action |
108 |
109 |
110 |
111 |
116 |
117 | {({ path, size }) => {
118 | if (!Boolean(path)) {
119 | return null;
120 | }
121 | const dirName = getDirName(path);
122 | if (dirName === null) {
123 | return null;
124 | }
125 | const modulesSize = formatSizeUnit(size);
126 |
127 | return (
128 |
133 | );
134 | }}
135 |
136 |
137 |
138 |
139 | );
140 | }
141 |
--------------------------------------------------------------------------------
/src/components/scanner.tsx:
--------------------------------------------------------------------------------
1 | import { Match, Switch, createSignal } from "solid-js";
2 | import { commands } from "../commands";
3 | import { open } from "@tauri-apps/plugin-dialog";
4 | import { ScanStoreSetter } from "../lib/store";
5 |
6 | type ScannerProps = {
7 | setScanData: ScanStoreSetter;
8 | };
9 |
10 | export function Scanner(props: ScannerProps) {
11 | async function scan(scope: string) {
12 | const start = window.performance.now();
13 | const result = await commands.getDirData(scope);
14 | if (result.status === "error") {
15 | return;
16 | }
17 | const list = result.data;
18 | const end = window.performance.now();
19 |
20 | props.setScanData("elapsed", end - start);
21 | props.setScanData("fileList", list as any);
22 | props.setScanData("status", "idle");
23 | }
24 |
25 | async function getRootScope() {
26 | const selected = await open({
27 | directory: true,
28 | recursive: false,
29 | multiple: false,
30 | });
31 |
32 | /**
33 | * types will be fixed upstream in Tauri soon.
34 | */
35 | if (Array.isArray(selected)) {
36 | return;
37 | }
38 |
39 | setRootScope(selected);
40 | }
41 |
42 | const [rootScope, setRootScope] = createSignal(null);
43 | const hasScope = () => typeof rootScope() === "string";
44 |
45 | const rootScopeDisplay = () => {
46 | const scope = rootScope();
47 | if (scope === null) return null;
48 |
49 | return scope.length > 30
50 | ? `...${scope.substring(scope.length - 10, scope.length)}`
51 | : scope;
52 | };
53 |
54 | return (
55 |
83 | );
84 | }
85 |
--------------------------------------------------------------------------------
/src/components/trashbin.tsx:
--------------------------------------------------------------------------------
1 | export function Trashbin() {
2 | return (
3 |
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/src/index.tsx:
--------------------------------------------------------------------------------
1 | /* @refresh reload */
2 | import { render } from "solid-js/web";
3 |
4 | import App from "./App";
5 |
6 | render(() => , document.getElementById("root") as HTMLElement);
7 |
--------------------------------------------------------------------------------
/src/lib/format.ts:
--------------------------------------------------------------------------------
1 | export function formatSizeUnit(bytes: number) {
2 | const KILO = 1000;
3 | const MEGA = KILO * 1000;
4 | const GIGA = MEGA * 1000;
5 | const TERA = GIGA * 1000;
6 |
7 | if (bytes > TERA) {
8 | return Math.trunc(bytes / GIGA) + "tb";
9 | }
10 |
11 | if (bytes > GIGA) {
12 | return (bytes / GIGA).toFixed(2) + "gb";
13 | }
14 |
15 | if (bytes > MEGA) {
16 | return Math.trunc(bytes / MEGA) + "mb";
17 | }
18 |
19 | if (bytes > KILO) {
20 | return (bytes / KILO).toFixed(2) + "kb";
21 | }
22 |
23 | return Math.trunc(bytes) + "b";
24 | }
25 |
--------------------------------------------------------------------------------
/src/lib/get-dir-name.ts:
--------------------------------------------------------------------------------
1 | const REGEX = /^(.*\/)([^/]+)\/node_modules$/;
2 |
3 | export function getDirName(path: string) {
4 | path = path.replace(/\\/g, '/');
5 | const match = path.match(REGEX);
6 |
7 | if (match) {
8 | return {
9 | prefix: match[1],
10 | dir: match[2],
11 | };
12 | } else {
13 | return null;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/lib/store.ts:
--------------------------------------------------------------------------------
1 | import { createContext, useContext } from "solid-js";
2 | import { createStore } from "solid-js/store";
3 | import { type FolderStat } from "../commands";
4 |
5 | type Data = {
6 | fileList: FolderStat[];
7 | elapsed: number;
8 | status: "idle" | "scanning";
9 |
10 | // computed
11 | stats: string;
12 | };
13 |
14 | export const initialStore: Data = {
15 | fileList: [],
16 | elapsed: 0,
17 | status: "idle",
18 |
19 | get stats() {
20 | const timespan = (this.elapsed / 1000).toFixed(2);
21 | return `scanned ${this.fileList.length} projects in ${timespan} seconds.`;
22 | },
23 | };
24 | const ScanContext = createContext<{
25 | scanData: Data;
26 | }>();
27 |
28 | export const scanStore = createStore(initialStore);
29 | export type ScanStoreSetter = (typeof scanStore)[1];
30 |
31 | export function useScan() {
32 | const ctx = useContext(ScanContext);
33 |
34 | if (!ctx) throw new Error("can not find context");
35 | return ctx;
36 | }
37 |
--------------------------------------------------------------------------------
/src/lib/updater.ts:
--------------------------------------------------------------------------------
1 | import { check } from "@tauri-apps/plugin-updater";
2 | import { ask, message } from "@tauri-apps/plugin-dialog";
3 | import { relaunch } from "@tauri-apps/plugin-process";
4 |
5 | export async function checkForAppUpdates(onUserClick: false) {
6 | const update = await check();
7 |
8 | if (update?.available) {
9 | const yes = await ask(
10 | `
11 | Update to ${update.version} is available!
12 | Release notes: ${update.body}
13 | `,
14 | {
15 | title: "Update Now!",
16 | kind: "info",
17 | okLabel: "Update",
18 | cancelLabel: "Cancel",
19 | }
20 | );
21 |
22 | if (yes) {
23 | await update.downloadAndInstall();
24 | // Restart the app after the update is installed by calling the Tauri command that handles restart for your app
25 | // It is good practice to shut down any background processes gracefully before restarting
26 | // As an alternative, you could ask the user to restart the app manually
27 | await relaunch();
28 | }
29 | // Support for manual updates.
30 | } else if (onUserClick) {
31 | await message("You are on the latest version.", {
32 | title: "No Update Found",
33 | kind: "info",
34 | okLabel: "OK",
35 | });
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/tailwind.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | content: ["./src/**/*.{js,jsx,ts,tsx}", "./index.html"],
3 | theme: {
4 | extend: {},
5 | },
6 | plugins: [],
7 | };
8 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2020",
4 | "useDefineForClassFields": true,
5 | "module": "ESNext",
6 | "lib": ["ES2020", "DOM", "DOM.Iterable"],
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "resolveJsonModule": true,
13 | "isolatedModules": true,
14 | "noEmit": true,
15 | "jsx": "preserve",
16 | "jsxImportSource": "solid-js",
17 |
18 | /* Linting */
19 | "strict": true,
20 | "noUnusedLocals": true,
21 | "noUnusedParameters": true,
22 | "noFallthroughCasesInSwitch": true
23 | },
24 | "include": ["src"],
25 | "references": [{ "path": "./tsconfig.node.json" }]
26 | }
27 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "skipLibCheck": true,
5 | "module": "ESNext",
6 | "moduleResolution": "bundler",
7 | "allowSyntheticDefaultImports": true
8 | },
9 | "include": ["vite.config.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import solidPlugin from "vite-plugin-solid";
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig(async () => ({
6 | plugins: [solidPlugin()],
7 |
8 | // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
9 | //
10 | // 1. prevent vite from obscuring rust errors
11 | clearScreen: false,
12 | // 2. tauri expects a fixed port, fail if that port is not available
13 | server: {
14 | port: 1420,
15 | strictPort: true,
16 | },
17 | // 3. to make use of `TAURI_DEBUG` and other env variables
18 | // https://tauri.studio/v1/api/config#buildconfig.beforedevcommand
19 | envPrefix: ["VITE_", "TAURI_"],
20 | }));
21 |
--------------------------------------------------------------------------------