├── .eslintignore
├── .eslintrc.cjs
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc
├── LICENSE
├── README.md
├── package-lock.json
├── package.json
├── playwright.config.js
├── src
├── app.html
├── app.scss
├── lib
│ ├── components
│ │ ├── Exercise.svelte
│ │ └── HoldTest.svelte
│ └── stores
│ │ ├── exercises.js
│ │ └── preferences.js
├── routes
│ ├── +layout.js
│ ├── +layout.svelte
│ ├── +page.svelte
│ ├── [slug]
│ │ ├── +page.js
│ │ └── +page.svelte
│ ├── about
│ │ └── +page.svelte
│ ├── create
│ │ └── +page.svelte
│ ├── custom
│ │ └── [slug]
│ │ │ ├── +page.js
│ │ │ └── +page.svelte
│ ├── edit
│ │ └── [slug]
│ │ │ ├── +page.js
│ │ │ └── +page.svelte
│ ├── hold-test
│ │ ├── +page.js
│ │ └── +page.svelte
│ └── settings
│ │ └── +page.svelte
└── variables.scss
├── static
├── audio
│ ├── breathe-in.wav
│ ├── breathe-out.wav
│ ├── forest.mp3
│ └── hold.wav
├── favicon.png
├── robots.txt
└── theme
│ ├── dark.css
│ └── light.css
├── svelte.config.js
├── tests
└── test.js
└── vite.config.js
/.eslintignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 |
10 | # Ignore files for PNPM, NPM and YARN
11 | pnpm-lock.yaml
12 | package-lock.json
13 | yarn.lock
14 |
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /** @type { import("eslint").Linter.Config } */
2 | module.exports = {
3 | root: true,
4 | extends: ['eslint:recommended', 'plugin:svelte/recommended', 'prettier'],
5 | parserOptions: {
6 | sourceType: 'module',
7 | ecmaVersion: 2020,
8 | extraFileExtensions: ['.svelte']
9 | },
10 | env: {
11 | browser: true,
12 | es2017: true,
13 | node: true
14 | }
15 | };
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 | .vercel
10 | .output
11 | vite.config.js.timestamp-*
12 | vite.config.ts.timestamp-*
13 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Ignore files for PNPM, NPM and YARN
2 | pnpm-lock.yaml
3 | package-lock.json
4 | yarn.lock
5 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "singleQuote": true,
4 | "trailingComma": "none",
5 | "printWidth": 100,
6 | "plugins": ["prettier-plugin-svelte"],
7 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
8 | }
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # respir
2 |
3 | breathing exercises to help you relax, focus, or sleep.
4 |
5 | created for the 2024 IPC Winter Hackathon by [refact0r](https://github.com/refact0r), [shibest](https://github.com/shibest), and [ben-6](https://github.com/ben-6).
6 |
7 | (we won)
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ipc-hackathon",
3 | "version": "0.0.1",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "ipc-hackathon",
9 | "version": "0.0.1",
10 | "dependencies": {
11 | "svelte-persisted-store": "^0.9.1",
12 | "svelte-simple-modal": "^1.6.1"
13 | },
14 | "devDependencies": {
15 | "@iconify-json/healthicons": "^1.1.17",
16 | "@iconify-json/ph": "^1.1.10",
17 | "@playwright/test": "^1.28.1",
18 | "@sveltejs/adapter-auto": "^3.0.0",
19 | "@sveltejs/kit": "^2.0.0",
20 | "@sveltejs/vite-plugin-svelte": "^3.0.0",
21 | "@types/eslint": "8.56.0",
22 | "eslint": "^8.56.0",
23 | "eslint-config-prettier": "^9.1.0",
24 | "eslint-plugin-svelte": "^2.35.1",
25 | "prettier": "^3.1.1",
26 | "prettier-plugin-svelte": "^3.1.2",
27 | "sass": "^1.69.7",
28 | "svelte": "^4.2.7",
29 | "unplugin-icons": "^0.18.2",
30 | "vite": "^5.0.3",
31 | "vitest": "^1.0.0"
32 | }
33 | },
34 | "node_modules/@aashutoshrathi/word-wrap": {
35 | "version": "1.2.6",
36 | "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
37 | "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
38 | "dev": true,
39 | "engines": {
40 | "node": ">=0.10.0"
41 | }
42 | },
43 | "node_modules/@ampproject/remapping": {
44 | "version": "2.2.1",
45 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
46 | "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
47 | "dependencies": {
48 | "@jridgewell/gen-mapping": "^0.3.0",
49 | "@jridgewell/trace-mapping": "^0.3.9"
50 | },
51 | "engines": {
52 | "node": ">=6.0.0"
53 | }
54 | },
55 | "node_modules/@antfu/install-pkg": {
56 | "version": "0.3.1",
57 | "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.3.1.tgz",
58 | "integrity": "sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==",
59 | "dev": true,
60 | "dependencies": {
61 | "execa": "^8.0.1"
62 | },
63 | "funding": {
64 | "url": "https://github.com/sponsors/antfu"
65 | }
66 | },
67 | "node_modules/@antfu/utils": {
68 | "version": "0.7.7",
69 | "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.7.tgz",
70 | "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==",
71 | "dev": true,
72 | "funding": {
73 | "url": "https://github.com/sponsors/antfu"
74 | }
75 | },
76 | "node_modules/@esbuild/aix-ppc64": {
77 | "version": "0.19.11",
78 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz",
79 | "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==",
80 | "cpu": [
81 | "ppc64"
82 | ],
83 | "dev": true,
84 | "optional": true,
85 | "os": [
86 | "aix"
87 | ],
88 | "engines": {
89 | "node": ">=12"
90 | }
91 | },
92 | "node_modules/@esbuild/android-arm": {
93 | "version": "0.19.11",
94 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz",
95 | "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==",
96 | "cpu": [
97 | "arm"
98 | ],
99 | "dev": true,
100 | "optional": true,
101 | "os": [
102 | "android"
103 | ],
104 | "engines": {
105 | "node": ">=12"
106 | }
107 | },
108 | "node_modules/@esbuild/android-arm64": {
109 | "version": "0.19.11",
110 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz",
111 | "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==",
112 | "cpu": [
113 | "arm64"
114 | ],
115 | "dev": true,
116 | "optional": true,
117 | "os": [
118 | "android"
119 | ],
120 | "engines": {
121 | "node": ">=12"
122 | }
123 | },
124 | "node_modules/@esbuild/android-x64": {
125 | "version": "0.19.11",
126 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz",
127 | "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==",
128 | "cpu": [
129 | "x64"
130 | ],
131 | "dev": true,
132 | "optional": true,
133 | "os": [
134 | "android"
135 | ],
136 | "engines": {
137 | "node": ">=12"
138 | }
139 | },
140 | "node_modules/@esbuild/darwin-arm64": {
141 | "version": "0.19.11",
142 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz",
143 | "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==",
144 | "cpu": [
145 | "arm64"
146 | ],
147 | "dev": true,
148 | "optional": true,
149 | "os": [
150 | "darwin"
151 | ],
152 | "engines": {
153 | "node": ">=12"
154 | }
155 | },
156 | "node_modules/@esbuild/darwin-x64": {
157 | "version": "0.19.11",
158 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz",
159 | "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==",
160 | "cpu": [
161 | "x64"
162 | ],
163 | "dev": true,
164 | "optional": true,
165 | "os": [
166 | "darwin"
167 | ],
168 | "engines": {
169 | "node": ">=12"
170 | }
171 | },
172 | "node_modules/@esbuild/freebsd-arm64": {
173 | "version": "0.19.11",
174 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz",
175 | "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==",
176 | "cpu": [
177 | "arm64"
178 | ],
179 | "dev": true,
180 | "optional": true,
181 | "os": [
182 | "freebsd"
183 | ],
184 | "engines": {
185 | "node": ">=12"
186 | }
187 | },
188 | "node_modules/@esbuild/freebsd-x64": {
189 | "version": "0.19.11",
190 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz",
191 | "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==",
192 | "cpu": [
193 | "x64"
194 | ],
195 | "dev": true,
196 | "optional": true,
197 | "os": [
198 | "freebsd"
199 | ],
200 | "engines": {
201 | "node": ">=12"
202 | }
203 | },
204 | "node_modules/@esbuild/linux-arm": {
205 | "version": "0.19.11",
206 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz",
207 | "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==",
208 | "cpu": [
209 | "arm"
210 | ],
211 | "dev": true,
212 | "optional": true,
213 | "os": [
214 | "linux"
215 | ],
216 | "engines": {
217 | "node": ">=12"
218 | }
219 | },
220 | "node_modules/@esbuild/linux-arm64": {
221 | "version": "0.19.11",
222 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz",
223 | "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==",
224 | "cpu": [
225 | "arm64"
226 | ],
227 | "dev": true,
228 | "optional": true,
229 | "os": [
230 | "linux"
231 | ],
232 | "engines": {
233 | "node": ">=12"
234 | }
235 | },
236 | "node_modules/@esbuild/linux-ia32": {
237 | "version": "0.19.11",
238 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz",
239 | "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==",
240 | "cpu": [
241 | "ia32"
242 | ],
243 | "dev": true,
244 | "optional": true,
245 | "os": [
246 | "linux"
247 | ],
248 | "engines": {
249 | "node": ">=12"
250 | }
251 | },
252 | "node_modules/@esbuild/linux-loong64": {
253 | "version": "0.19.11",
254 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz",
255 | "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==",
256 | "cpu": [
257 | "loong64"
258 | ],
259 | "dev": true,
260 | "optional": true,
261 | "os": [
262 | "linux"
263 | ],
264 | "engines": {
265 | "node": ">=12"
266 | }
267 | },
268 | "node_modules/@esbuild/linux-mips64el": {
269 | "version": "0.19.11",
270 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz",
271 | "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==",
272 | "cpu": [
273 | "mips64el"
274 | ],
275 | "dev": true,
276 | "optional": true,
277 | "os": [
278 | "linux"
279 | ],
280 | "engines": {
281 | "node": ">=12"
282 | }
283 | },
284 | "node_modules/@esbuild/linux-ppc64": {
285 | "version": "0.19.11",
286 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz",
287 | "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==",
288 | "cpu": [
289 | "ppc64"
290 | ],
291 | "dev": true,
292 | "optional": true,
293 | "os": [
294 | "linux"
295 | ],
296 | "engines": {
297 | "node": ">=12"
298 | }
299 | },
300 | "node_modules/@esbuild/linux-riscv64": {
301 | "version": "0.19.11",
302 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz",
303 | "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==",
304 | "cpu": [
305 | "riscv64"
306 | ],
307 | "dev": true,
308 | "optional": true,
309 | "os": [
310 | "linux"
311 | ],
312 | "engines": {
313 | "node": ">=12"
314 | }
315 | },
316 | "node_modules/@esbuild/linux-s390x": {
317 | "version": "0.19.11",
318 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz",
319 | "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==",
320 | "cpu": [
321 | "s390x"
322 | ],
323 | "dev": true,
324 | "optional": true,
325 | "os": [
326 | "linux"
327 | ],
328 | "engines": {
329 | "node": ">=12"
330 | }
331 | },
332 | "node_modules/@esbuild/linux-x64": {
333 | "version": "0.19.11",
334 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz",
335 | "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==",
336 | "cpu": [
337 | "x64"
338 | ],
339 | "dev": true,
340 | "optional": true,
341 | "os": [
342 | "linux"
343 | ],
344 | "engines": {
345 | "node": ">=12"
346 | }
347 | },
348 | "node_modules/@esbuild/netbsd-x64": {
349 | "version": "0.19.11",
350 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz",
351 | "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==",
352 | "cpu": [
353 | "x64"
354 | ],
355 | "dev": true,
356 | "optional": true,
357 | "os": [
358 | "netbsd"
359 | ],
360 | "engines": {
361 | "node": ">=12"
362 | }
363 | },
364 | "node_modules/@esbuild/openbsd-x64": {
365 | "version": "0.19.11",
366 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz",
367 | "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==",
368 | "cpu": [
369 | "x64"
370 | ],
371 | "dev": true,
372 | "optional": true,
373 | "os": [
374 | "openbsd"
375 | ],
376 | "engines": {
377 | "node": ">=12"
378 | }
379 | },
380 | "node_modules/@esbuild/sunos-x64": {
381 | "version": "0.19.11",
382 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz",
383 | "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==",
384 | "cpu": [
385 | "x64"
386 | ],
387 | "dev": true,
388 | "optional": true,
389 | "os": [
390 | "sunos"
391 | ],
392 | "engines": {
393 | "node": ">=12"
394 | }
395 | },
396 | "node_modules/@esbuild/win32-arm64": {
397 | "version": "0.19.11",
398 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz",
399 | "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==",
400 | "cpu": [
401 | "arm64"
402 | ],
403 | "dev": true,
404 | "optional": true,
405 | "os": [
406 | "win32"
407 | ],
408 | "engines": {
409 | "node": ">=12"
410 | }
411 | },
412 | "node_modules/@esbuild/win32-ia32": {
413 | "version": "0.19.11",
414 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz",
415 | "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==",
416 | "cpu": [
417 | "ia32"
418 | ],
419 | "dev": true,
420 | "optional": true,
421 | "os": [
422 | "win32"
423 | ],
424 | "engines": {
425 | "node": ">=12"
426 | }
427 | },
428 | "node_modules/@esbuild/win32-x64": {
429 | "version": "0.19.11",
430 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz",
431 | "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==",
432 | "cpu": [
433 | "x64"
434 | ],
435 | "dev": true,
436 | "optional": true,
437 | "os": [
438 | "win32"
439 | ],
440 | "engines": {
441 | "node": ">=12"
442 | }
443 | },
444 | "node_modules/@eslint-community/eslint-utils": {
445 | "version": "4.4.0",
446 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
447 | "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
448 | "dev": true,
449 | "dependencies": {
450 | "eslint-visitor-keys": "^3.3.0"
451 | },
452 | "engines": {
453 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
454 | },
455 | "peerDependencies": {
456 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
457 | }
458 | },
459 | "node_modules/@eslint-community/regexpp": {
460 | "version": "4.10.0",
461 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
462 | "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
463 | "dev": true,
464 | "engines": {
465 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
466 | }
467 | },
468 | "node_modules/@eslint/eslintrc": {
469 | "version": "2.1.4",
470 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
471 | "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
472 | "dev": true,
473 | "dependencies": {
474 | "ajv": "^6.12.4",
475 | "debug": "^4.3.2",
476 | "espree": "^9.6.0",
477 | "globals": "^13.19.0",
478 | "ignore": "^5.2.0",
479 | "import-fresh": "^3.2.1",
480 | "js-yaml": "^4.1.0",
481 | "minimatch": "^3.1.2",
482 | "strip-json-comments": "^3.1.1"
483 | },
484 | "engines": {
485 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
486 | },
487 | "funding": {
488 | "url": "https://opencollective.com/eslint"
489 | }
490 | },
491 | "node_modules/@eslint/js": {
492 | "version": "8.56.0",
493 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
494 | "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
495 | "dev": true,
496 | "engines": {
497 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
498 | }
499 | },
500 | "node_modules/@humanwhocodes/config-array": {
501 | "version": "0.11.14",
502 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
503 | "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
504 | "dev": true,
505 | "dependencies": {
506 | "@humanwhocodes/object-schema": "^2.0.2",
507 | "debug": "^4.3.1",
508 | "minimatch": "^3.0.5"
509 | },
510 | "engines": {
511 | "node": ">=10.10.0"
512 | }
513 | },
514 | "node_modules/@humanwhocodes/module-importer": {
515 | "version": "1.0.1",
516 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
517 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
518 | "dev": true,
519 | "engines": {
520 | "node": ">=12.22"
521 | },
522 | "funding": {
523 | "type": "github",
524 | "url": "https://github.com/sponsors/nzakas"
525 | }
526 | },
527 | "node_modules/@humanwhocodes/object-schema": {
528 | "version": "2.0.2",
529 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
530 | "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
531 | "dev": true
532 | },
533 | "node_modules/@iconify-json/healthicons": {
534 | "version": "1.1.17",
535 | "resolved": "https://registry.npmjs.org/@iconify-json/healthicons/-/healthicons-1.1.17.tgz",
536 | "integrity": "sha512-497ivrWln7d4sZ5RhO0VGNvZGljYnLojndAo2f3CiIzVi2zFIoFk/GAHIpAbgSF9r8Y6jK7fpC+muNF+TaT6tA==",
537 | "dev": true,
538 | "dependencies": {
539 | "@iconify/types": "*"
540 | }
541 | },
542 | "node_modules/@iconify-json/ph": {
543 | "version": "1.1.10",
544 | "resolved": "https://registry.npmjs.org/@iconify-json/ph/-/ph-1.1.10.tgz",
545 | "integrity": "sha512-e7owJfx9BgnUVGXKk/243iFV4tHH1UiBDl5mWYkwKoPf4nN2rzPGdD7ISfvwr3SB25VvOteSC5DOVWxjs56Ywg==",
546 | "dev": true,
547 | "dependencies": {
548 | "@iconify/types": "*"
549 | }
550 | },
551 | "node_modules/@iconify/types": {
552 | "version": "2.0.0",
553 | "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
554 | "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
555 | "dev": true
556 | },
557 | "node_modules/@iconify/utils": {
558 | "version": "2.1.14",
559 | "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.14.tgz",
560 | "integrity": "sha512-9pKIntkbLbjVVFxH32td21Am3AGGJfyI2KY2d8yDQxkZe4BBZtufJI8NgcamFn8B5QKLU9ai2VMo8OEov8jAtw==",
561 | "dev": true,
562 | "dependencies": {
563 | "@antfu/install-pkg": "^0.1.1",
564 | "@antfu/utils": "^0.7.5",
565 | "@iconify/types": "^2.0.0",
566 | "debug": "^4.3.4",
567 | "kolorist": "^1.8.0",
568 | "local-pkg": "^0.4.3"
569 | }
570 | },
571 | "node_modules/@iconify/utils/node_modules/@antfu/install-pkg": {
572 | "version": "0.1.1",
573 | "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.1.1.tgz",
574 | "integrity": "sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==",
575 | "dev": true,
576 | "dependencies": {
577 | "execa": "^5.1.1",
578 | "find-up": "^5.0.0"
579 | },
580 | "funding": {
581 | "url": "https://github.com/sponsors/antfu"
582 | }
583 | },
584 | "node_modules/@iconify/utils/node_modules/execa": {
585 | "version": "5.1.1",
586 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
587 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
588 | "dev": true,
589 | "dependencies": {
590 | "cross-spawn": "^7.0.3",
591 | "get-stream": "^6.0.0",
592 | "human-signals": "^2.1.0",
593 | "is-stream": "^2.0.0",
594 | "merge-stream": "^2.0.0",
595 | "npm-run-path": "^4.0.1",
596 | "onetime": "^5.1.2",
597 | "signal-exit": "^3.0.3",
598 | "strip-final-newline": "^2.0.0"
599 | },
600 | "engines": {
601 | "node": ">=10"
602 | },
603 | "funding": {
604 | "url": "https://github.com/sindresorhus/execa?sponsor=1"
605 | }
606 | },
607 | "node_modules/@iconify/utils/node_modules/get-stream": {
608 | "version": "6.0.1",
609 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
610 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
611 | "dev": true,
612 | "engines": {
613 | "node": ">=10"
614 | },
615 | "funding": {
616 | "url": "https://github.com/sponsors/sindresorhus"
617 | }
618 | },
619 | "node_modules/@iconify/utils/node_modules/human-signals": {
620 | "version": "2.1.0",
621 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
622 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
623 | "dev": true,
624 | "engines": {
625 | "node": ">=10.17.0"
626 | }
627 | },
628 | "node_modules/@iconify/utils/node_modules/is-stream": {
629 | "version": "2.0.1",
630 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
631 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
632 | "dev": true,
633 | "engines": {
634 | "node": ">=8"
635 | },
636 | "funding": {
637 | "url": "https://github.com/sponsors/sindresorhus"
638 | }
639 | },
640 | "node_modules/@iconify/utils/node_modules/local-pkg": {
641 | "version": "0.4.3",
642 | "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
643 | "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
644 | "dev": true,
645 | "engines": {
646 | "node": ">=14"
647 | },
648 | "funding": {
649 | "url": "https://github.com/sponsors/antfu"
650 | }
651 | },
652 | "node_modules/@iconify/utils/node_modules/mimic-fn": {
653 | "version": "2.1.0",
654 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
655 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
656 | "dev": true,
657 | "engines": {
658 | "node": ">=6"
659 | }
660 | },
661 | "node_modules/@iconify/utils/node_modules/npm-run-path": {
662 | "version": "4.0.1",
663 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
664 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
665 | "dev": true,
666 | "dependencies": {
667 | "path-key": "^3.0.0"
668 | },
669 | "engines": {
670 | "node": ">=8"
671 | }
672 | },
673 | "node_modules/@iconify/utils/node_modules/onetime": {
674 | "version": "5.1.2",
675 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
676 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
677 | "dev": true,
678 | "dependencies": {
679 | "mimic-fn": "^2.1.0"
680 | },
681 | "engines": {
682 | "node": ">=6"
683 | },
684 | "funding": {
685 | "url": "https://github.com/sponsors/sindresorhus"
686 | }
687 | },
688 | "node_modules/@iconify/utils/node_modules/signal-exit": {
689 | "version": "3.0.7",
690 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
691 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
692 | "dev": true
693 | },
694 | "node_modules/@iconify/utils/node_modules/strip-final-newline": {
695 | "version": "2.0.0",
696 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
697 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
698 | "dev": true,
699 | "engines": {
700 | "node": ">=6"
701 | }
702 | },
703 | "node_modules/@jest/schemas": {
704 | "version": "29.6.3",
705 | "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
706 | "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
707 | "dev": true,
708 | "dependencies": {
709 | "@sinclair/typebox": "^0.27.8"
710 | },
711 | "engines": {
712 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
713 | }
714 | },
715 | "node_modules/@jridgewell/gen-mapping": {
716 | "version": "0.3.3",
717 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
718 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
719 | "dependencies": {
720 | "@jridgewell/set-array": "^1.0.1",
721 | "@jridgewell/sourcemap-codec": "^1.4.10",
722 | "@jridgewell/trace-mapping": "^0.3.9"
723 | },
724 | "engines": {
725 | "node": ">=6.0.0"
726 | }
727 | },
728 | "node_modules/@jridgewell/resolve-uri": {
729 | "version": "3.1.1",
730 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
731 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
732 | "engines": {
733 | "node": ">=6.0.0"
734 | }
735 | },
736 | "node_modules/@jridgewell/set-array": {
737 | "version": "1.1.2",
738 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
739 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
740 | "engines": {
741 | "node": ">=6.0.0"
742 | }
743 | },
744 | "node_modules/@jridgewell/sourcemap-codec": {
745 | "version": "1.4.15",
746 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
747 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
748 | },
749 | "node_modules/@jridgewell/trace-mapping": {
750 | "version": "0.3.21",
751 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz",
752 | "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==",
753 | "dependencies": {
754 | "@jridgewell/resolve-uri": "^3.1.0",
755 | "@jridgewell/sourcemap-codec": "^1.4.14"
756 | }
757 | },
758 | "node_modules/@nodelib/fs.scandir": {
759 | "version": "2.1.5",
760 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
761 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
762 | "dev": true,
763 | "dependencies": {
764 | "@nodelib/fs.stat": "2.0.5",
765 | "run-parallel": "^1.1.9"
766 | },
767 | "engines": {
768 | "node": ">= 8"
769 | }
770 | },
771 | "node_modules/@nodelib/fs.stat": {
772 | "version": "2.0.5",
773 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
774 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
775 | "dev": true,
776 | "engines": {
777 | "node": ">= 8"
778 | }
779 | },
780 | "node_modules/@nodelib/fs.walk": {
781 | "version": "1.2.8",
782 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
783 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
784 | "dev": true,
785 | "dependencies": {
786 | "@nodelib/fs.scandir": "2.1.5",
787 | "fastq": "^1.6.0"
788 | },
789 | "engines": {
790 | "node": ">= 8"
791 | }
792 | },
793 | "node_modules/@playwright/test": {
794 | "version": "1.40.1",
795 | "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz",
796 | "integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==",
797 | "dev": true,
798 | "dependencies": {
799 | "playwright": "1.40.1"
800 | },
801 | "bin": {
802 | "playwright": "cli.js"
803 | },
804 | "engines": {
805 | "node": ">=16"
806 | }
807 | },
808 | "node_modules/@polka/url": {
809 | "version": "1.0.0-next.24",
810 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz",
811 | "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==",
812 | "dev": true
813 | },
814 | "node_modules/@rollup/rollup-android-arm-eabi": {
815 | "version": "4.9.5",
816 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz",
817 | "integrity": "sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==",
818 | "cpu": [
819 | "arm"
820 | ],
821 | "dev": true,
822 | "optional": true,
823 | "os": [
824 | "android"
825 | ]
826 | },
827 | "node_modules/@rollup/rollup-android-arm64": {
828 | "version": "4.9.5",
829 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz",
830 | "integrity": "sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==",
831 | "cpu": [
832 | "arm64"
833 | ],
834 | "dev": true,
835 | "optional": true,
836 | "os": [
837 | "android"
838 | ]
839 | },
840 | "node_modules/@rollup/rollup-darwin-arm64": {
841 | "version": "4.9.5",
842 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz",
843 | "integrity": "sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==",
844 | "cpu": [
845 | "arm64"
846 | ],
847 | "dev": true,
848 | "optional": true,
849 | "os": [
850 | "darwin"
851 | ]
852 | },
853 | "node_modules/@rollup/rollup-darwin-x64": {
854 | "version": "4.9.5",
855 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz",
856 | "integrity": "sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==",
857 | "cpu": [
858 | "x64"
859 | ],
860 | "dev": true,
861 | "optional": true,
862 | "os": [
863 | "darwin"
864 | ]
865 | },
866 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
867 | "version": "4.9.5",
868 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz",
869 | "integrity": "sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==",
870 | "cpu": [
871 | "arm"
872 | ],
873 | "dev": true,
874 | "optional": true,
875 | "os": [
876 | "linux"
877 | ]
878 | },
879 | "node_modules/@rollup/rollup-linux-arm64-gnu": {
880 | "version": "4.9.5",
881 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz",
882 | "integrity": "sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==",
883 | "cpu": [
884 | "arm64"
885 | ],
886 | "dev": true,
887 | "optional": true,
888 | "os": [
889 | "linux"
890 | ]
891 | },
892 | "node_modules/@rollup/rollup-linux-arm64-musl": {
893 | "version": "4.9.5",
894 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz",
895 | "integrity": "sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==",
896 | "cpu": [
897 | "arm64"
898 | ],
899 | "dev": true,
900 | "optional": true,
901 | "os": [
902 | "linux"
903 | ]
904 | },
905 | "node_modules/@rollup/rollup-linux-riscv64-gnu": {
906 | "version": "4.9.5",
907 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz",
908 | "integrity": "sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==",
909 | "cpu": [
910 | "riscv64"
911 | ],
912 | "dev": true,
913 | "optional": true,
914 | "os": [
915 | "linux"
916 | ]
917 | },
918 | "node_modules/@rollup/rollup-linux-x64-gnu": {
919 | "version": "4.9.5",
920 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz",
921 | "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==",
922 | "cpu": [
923 | "x64"
924 | ],
925 | "dev": true,
926 | "optional": true,
927 | "os": [
928 | "linux"
929 | ]
930 | },
931 | "node_modules/@rollup/rollup-linux-x64-musl": {
932 | "version": "4.9.5",
933 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz",
934 | "integrity": "sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==",
935 | "cpu": [
936 | "x64"
937 | ],
938 | "dev": true,
939 | "optional": true,
940 | "os": [
941 | "linux"
942 | ]
943 | },
944 | "node_modules/@rollup/rollup-win32-arm64-msvc": {
945 | "version": "4.9.5",
946 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz",
947 | "integrity": "sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==",
948 | "cpu": [
949 | "arm64"
950 | ],
951 | "dev": true,
952 | "optional": true,
953 | "os": [
954 | "win32"
955 | ]
956 | },
957 | "node_modules/@rollup/rollup-win32-ia32-msvc": {
958 | "version": "4.9.5",
959 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz",
960 | "integrity": "sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==",
961 | "cpu": [
962 | "ia32"
963 | ],
964 | "dev": true,
965 | "optional": true,
966 | "os": [
967 | "win32"
968 | ]
969 | },
970 | "node_modules/@rollup/rollup-win32-x64-msvc": {
971 | "version": "4.9.5",
972 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz",
973 | "integrity": "sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==",
974 | "cpu": [
975 | "x64"
976 | ],
977 | "dev": true,
978 | "optional": true,
979 | "os": [
980 | "win32"
981 | ]
982 | },
983 | "node_modules/@sinclair/typebox": {
984 | "version": "0.27.8",
985 | "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
986 | "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
987 | "dev": true
988 | },
989 | "node_modules/@sveltejs/adapter-auto": {
990 | "version": "3.1.0",
991 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.1.0.tgz",
992 | "integrity": "sha512-igS5hqCwdiXWb8NoWzThKCVQQj9tKgUkbTtzfxBPgSLOyFjkiGNDX0SgCoY2QIUWBqOkfGTOqGlrW5Ynw9oUvw==",
993 | "dev": true,
994 | "dependencies": {
995 | "import-meta-resolve": "^4.0.0"
996 | },
997 | "peerDependencies": {
998 | "@sveltejs/kit": "^2.0.0"
999 | }
1000 | },
1001 | "node_modules/@sveltejs/kit": {
1002 | "version": "2.5.1",
1003 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.1.tgz",
1004 | "integrity": "sha512-TKj08o3mJCoQNLTdRdGkHPePTCPUGTgkew65RDqjVU3MtPVxljsofXQYfXndHfq0P7KoPRO/0/reF6HesU0Djw==",
1005 | "dev": true,
1006 | "hasInstallScript": true,
1007 | "dependencies": {
1008 | "@types/cookie": "^0.6.0",
1009 | "cookie": "^0.6.0",
1010 | "devalue": "^4.3.2",
1011 | "esm-env": "^1.0.0",
1012 | "import-meta-resolve": "^4.0.0",
1013 | "kleur": "^4.1.5",
1014 | "magic-string": "^0.30.5",
1015 | "mrmime": "^2.0.0",
1016 | "sade": "^1.8.1",
1017 | "set-cookie-parser": "^2.6.0",
1018 | "sirv": "^2.0.4",
1019 | "tiny-glob": "^0.2.9"
1020 | },
1021 | "bin": {
1022 | "svelte-kit": "svelte-kit.js"
1023 | },
1024 | "engines": {
1025 | "node": ">=18.13"
1026 | },
1027 | "peerDependencies": {
1028 | "@sveltejs/vite-plugin-svelte": "^3.0.0",
1029 | "svelte": "^4.0.0 || ^5.0.0-next.0",
1030 | "vite": "^5.0.3"
1031 | }
1032 | },
1033 | "node_modules/@sveltejs/vite-plugin-svelte": {
1034 | "version": "3.0.1",
1035 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.0.1.tgz",
1036 | "integrity": "sha512-CGURX6Ps+TkOovK6xV+Y2rn8JKa8ZPUHPZ/NKgCxAmgBrXReavzFl8aOSCj3kQ1xqT7yGJj53hjcV/gqwDAaWA==",
1037 | "dev": true,
1038 | "dependencies": {
1039 | "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0-next.0 || ^2.0.0",
1040 | "debug": "^4.3.4",
1041 | "deepmerge": "^4.3.1",
1042 | "kleur": "^4.1.5",
1043 | "magic-string": "^0.30.5",
1044 | "svelte-hmr": "^0.15.3",
1045 | "vitefu": "^0.2.5"
1046 | },
1047 | "engines": {
1048 | "node": "^18.0.0 || >=20"
1049 | },
1050 | "peerDependencies": {
1051 | "svelte": "^4.0.0 || ^5.0.0-next.0",
1052 | "vite": "^5.0.0"
1053 | }
1054 | },
1055 | "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
1056 | "version": "2.0.0",
1057 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.0.0.tgz",
1058 | "integrity": "sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==",
1059 | "dev": true,
1060 | "dependencies": {
1061 | "debug": "^4.3.4"
1062 | },
1063 | "engines": {
1064 | "node": "^18.0.0 || >=20"
1065 | },
1066 | "peerDependencies": {
1067 | "@sveltejs/vite-plugin-svelte": "^3.0.0",
1068 | "svelte": "^4.0.0 || ^5.0.0-next.0",
1069 | "vite": "^5.0.0"
1070 | }
1071 | },
1072 | "node_modules/@types/cookie": {
1073 | "version": "0.6.0",
1074 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
1075 | "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
1076 | "dev": true
1077 | },
1078 | "node_modules/@types/eslint": {
1079 | "version": "8.56.0",
1080 | "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz",
1081 | "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==",
1082 | "dev": true,
1083 | "dependencies": {
1084 | "@types/estree": "*",
1085 | "@types/json-schema": "*"
1086 | }
1087 | },
1088 | "node_modules/@types/estree": {
1089 | "version": "1.0.5",
1090 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
1091 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
1092 | },
1093 | "node_modules/@types/json-schema": {
1094 | "version": "7.0.15",
1095 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
1096 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
1097 | "dev": true
1098 | },
1099 | "node_modules/@ungap/structured-clone": {
1100 | "version": "1.2.0",
1101 | "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
1102 | "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
1103 | "dev": true
1104 | },
1105 | "node_modules/@vitest/expect": {
1106 | "version": "1.2.0",
1107 | "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.0.tgz",
1108 | "integrity": "sha512-H+2bHzhyvgp32o7Pgj2h9RTHN0pgYaoi26Oo3mE+dCi1PAqV31kIIVfTbqMO3Bvshd5mIrJLc73EwSRrbol9Lw==",
1109 | "dev": true,
1110 | "dependencies": {
1111 | "@vitest/spy": "1.2.0",
1112 | "@vitest/utils": "1.2.0",
1113 | "chai": "^4.3.10"
1114 | },
1115 | "funding": {
1116 | "url": "https://opencollective.com/vitest"
1117 | }
1118 | },
1119 | "node_modules/@vitest/runner": {
1120 | "version": "1.2.0",
1121 | "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.0.tgz",
1122 | "integrity": "sha512-vaJkDoQaNUTroT70OhM0NPznP7H3WyRwt4LvGwCVYs/llLaqhoSLnlIhUClZpbF5RgAee29KRcNz0FEhYcgxqA==",
1123 | "dev": true,
1124 | "dependencies": {
1125 | "@vitest/utils": "1.2.0",
1126 | "p-limit": "^5.0.0",
1127 | "pathe": "^1.1.1"
1128 | },
1129 | "funding": {
1130 | "url": "https://opencollective.com/vitest"
1131 | }
1132 | },
1133 | "node_modules/@vitest/runner/node_modules/p-limit": {
1134 | "version": "5.0.0",
1135 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
1136 | "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
1137 | "dev": true,
1138 | "dependencies": {
1139 | "yocto-queue": "^1.0.0"
1140 | },
1141 | "engines": {
1142 | "node": ">=18"
1143 | },
1144 | "funding": {
1145 | "url": "https://github.com/sponsors/sindresorhus"
1146 | }
1147 | },
1148 | "node_modules/@vitest/runner/node_modules/yocto-queue": {
1149 | "version": "1.0.0",
1150 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
1151 | "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
1152 | "dev": true,
1153 | "engines": {
1154 | "node": ">=12.20"
1155 | },
1156 | "funding": {
1157 | "url": "https://github.com/sponsors/sindresorhus"
1158 | }
1159 | },
1160 | "node_modules/@vitest/snapshot": {
1161 | "version": "1.2.0",
1162 | "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.0.tgz",
1163 | "integrity": "sha512-P33EE7TrVgB3HDLllrjK/GG6WSnmUtWohbwcQqmm7TAk9AVHpdgf7M3F3qRHKm6vhr7x3eGIln7VH052Smo6Kw==",
1164 | "dev": true,
1165 | "dependencies": {
1166 | "magic-string": "^0.30.5",
1167 | "pathe": "^1.1.1",
1168 | "pretty-format": "^29.7.0"
1169 | },
1170 | "funding": {
1171 | "url": "https://opencollective.com/vitest"
1172 | }
1173 | },
1174 | "node_modules/@vitest/spy": {
1175 | "version": "1.2.0",
1176 | "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.0.tgz",
1177 | "integrity": "sha512-MNxSAfxUaCeowqyyGwC293yZgk7cECZU9wGb8N1pYQ0yOn/SIr8t0l9XnGRdQZvNV/ZHBYu6GO/W3tj5K3VN1Q==",
1178 | "dev": true,
1179 | "dependencies": {
1180 | "tinyspy": "^2.2.0"
1181 | },
1182 | "funding": {
1183 | "url": "https://opencollective.com/vitest"
1184 | }
1185 | },
1186 | "node_modules/@vitest/utils": {
1187 | "version": "1.2.0",
1188 | "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.0.tgz",
1189 | "integrity": "sha512-FyD5bpugsXlwVpTcGLDf3wSPYy8g541fQt14qtzo8mJ4LdEpDKZ9mQy2+qdJm2TZRpjY5JLXihXCgIxiRJgi5g==",
1190 | "dev": true,
1191 | "dependencies": {
1192 | "diff-sequences": "^29.6.3",
1193 | "estree-walker": "^3.0.3",
1194 | "loupe": "^2.3.7",
1195 | "pretty-format": "^29.7.0"
1196 | },
1197 | "funding": {
1198 | "url": "https://opencollective.com/vitest"
1199 | }
1200 | },
1201 | "node_modules/acorn": {
1202 | "version": "8.11.3",
1203 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
1204 | "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
1205 | "bin": {
1206 | "acorn": "bin/acorn"
1207 | },
1208 | "engines": {
1209 | "node": ">=0.4.0"
1210 | }
1211 | },
1212 | "node_modules/acorn-jsx": {
1213 | "version": "5.3.2",
1214 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
1215 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
1216 | "dev": true,
1217 | "peerDependencies": {
1218 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
1219 | }
1220 | },
1221 | "node_modules/acorn-walk": {
1222 | "version": "8.3.2",
1223 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
1224 | "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
1225 | "dev": true,
1226 | "engines": {
1227 | "node": ">=0.4.0"
1228 | }
1229 | },
1230 | "node_modules/ajv": {
1231 | "version": "6.12.6",
1232 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1233 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1234 | "dev": true,
1235 | "dependencies": {
1236 | "fast-deep-equal": "^3.1.1",
1237 | "fast-json-stable-stringify": "^2.0.0",
1238 | "json-schema-traverse": "^0.4.1",
1239 | "uri-js": "^4.2.2"
1240 | },
1241 | "funding": {
1242 | "type": "github",
1243 | "url": "https://github.com/sponsors/epoberezkin"
1244 | }
1245 | },
1246 | "node_modules/ansi-regex": {
1247 | "version": "5.0.1",
1248 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1249 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1250 | "dev": true,
1251 | "engines": {
1252 | "node": ">=8"
1253 | }
1254 | },
1255 | "node_modules/ansi-styles": {
1256 | "version": "4.3.0",
1257 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1258 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1259 | "dev": true,
1260 | "dependencies": {
1261 | "color-convert": "^2.0.1"
1262 | },
1263 | "engines": {
1264 | "node": ">=8"
1265 | },
1266 | "funding": {
1267 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1268 | }
1269 | },
1270 | "node_modules/anymatch": {
1271 | "version": "3.1.3",
1272 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
1273 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
1274 | "dev": true,
1275 | "dependencies": {
1276 | "normalize-path": "^3.0.0",
1277 | "picomatch": "^2.0.4"
1278 | },
1279 | "engines": {
1280 | "node": ">= 8"
1281 | }
1282 | },
1283 | "node_modules/argparse": {
1284 | "version": "2.0.1",
1285 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1286 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
1287 | "dev": true
1288 | },
1289 | "node_modules/aria-query": {
1290 | "version": "5.3.0",
1291 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
1292 | "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
1293 | "dependencies": {
1294 | "dequal": "^2.0.3"
1295 | }
1296 | },
1297 | "node_modules/assertion-error": {
1298 | "version": "1.1.0",
1299 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
1300 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
1301 | "dev": true,
1302 | "engines": {
1303 | "node": "*"
1304 | }
1305 | },
1306 | "node_modules/axobject-query": {
1307 | "version": "3.2.1",
1308 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
1309 | "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
1310 | "dependencies": {
1311 | "dequal": "^2.0.3"
1312 | }
1313 | },
1314 | "node_modules/balanced-match": {
1315 | "version": "1.0.2",
1316 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1317 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1318 | "dev": true
1319 | },
1320 | "node_modules/binary-extensions": {
1321 | "version": "2.2.0",
1322 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
1323 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
1324 | "dev": true,
1325 | "engines": {
1326 | "node": ">=8"
1327 | }
1328 | },
1329 | "node_modules/brace-expansion": {
1330 | "version": "1.1.11",
1331 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1332 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1333 | "dev": true,
1334 | "dependencies": {
1335 | "balanced-match": "^1.0.0",
1336 | "concat-map": "0.0.1"
1337 | }
1338 | },
1339 | "node_modules/braces": {
1340 | "version": "3.0.2",
1341 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1342 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
1343 | "dev": true,
1344 | "dependencies": {
1345 | "fill-range": "^7.0.1"
1346 | },
1347 | "engines": {
1348 | "node": ">=8"
1349 | }
1350 | },
1351 | "node_modules/cac": {
1352 | "version": "6.7.14",
1353 | "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
1354 | "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
1355 | "dev": true,
1356 | "engines": {
1357 | "node": ">=8"
1358 | }
1359 | },
1360 | "node_modules/callsites": {
1361 | "version": "3.1.0",
1362 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1363 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1364 | "dev": true,
1365 | "engines": {
1366 | "node": ">=6"
1367 | }
1368 | },
1369 | "node_modules/chai": {
1370 | "version": "4.4.1",
1371 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz",
1372 | "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==",
1373 | "dev": true,
1374 | "dependencies": {
1375 | "assertion-error": "^1.1.0",
1376 | "check-error": "^1.0.3",
1377 | "deep-eql": "^4.1.3",
1378 | "get-func-name": "^2.0.2",
1379 | "loupe": "^2.3.6",
1380 | "pathval": "^1.1.1",
1381 | "type-detect": "^4.0.8"
1382 | },
1383 | "engines": {
1384 | "node": ">=4"
1385 | }
1386 | },
1387 | "node_modules/chalk": {
1388 | "version": "4.1.2",
1389 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1390 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1391 | "dev": true,
1392 | "dependencies": {
1393 | "ansi-styles": "^4.1.0",
1394 | "supports-color": "^7.1.0"
1395 | },
1396 | "engines": {
1397 | "node": ">=10"
1398 | },
1399 | "funding": {
1400 | "url": "https://github.com/chalk/chalk?sponsor=1"
1401 | }
1402 | },
1403 | "node_modules/check-error": {
1404 | "version": "1.0.3",
1405 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
1406 | "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
1407 | "dev": true,
1408 | "dependencies": {
1409 | "get-func-name": "^2.0.2"
1410 | },
1411 | "engines": {
1412 | "node": "*"
1413 | }
1414 | },
1415 | "node_modules/chokidar": {
1416 | "version": "3.5.3",
1417 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
1418 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
1419 | "dev": true,
1420 | "funding": [
1421 | {
1422 | "type": "individual",
1423 | "url": "https://paulmillr.com/funding/"
1424 | }
1425 | ],
1426 | "dependencies": {
1427 | "anymatch": "~3.1.2",
1428 | "braces": "~3.0.2",
1429 | "glob-parent": "~5.1.2",
1430 | "is-binary-path": "~2.1.0",
1431 | "is-glob": "~4.0.1",
1432 | "normalize-path": "~3.0.0",
1433 | "readdirp": "~3.6.0"
1434 | },
1435 | "engines": {
1436 | "node": ">= 8.10.0"
1437 | },
1438 | "optionalDependencies": {
1439 | "fsevents": "~2.3.2"
1440 | }
1441 | },
1442 | "node_modules/chokidar/node_modules/glob-parent": {
1443 | "version": "5.1.2",
1444 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1445 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1446 | "dev": true,
1447 | "dependencies": {
1448 | "is-glob": "^4.0.1"
1449 | },
1450 | "engines": {
1451 | "node": ">= 6"
1452 | }
1453 | },
1454 | "node_modules/code-red": {
1455 | "version": "1.0.4",
1456 | "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
1457 | "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
1458 | "dependencies": {
1459 | "@jridgewell/sourcemap-codec": "^1.4.15",
1460 | "@types/estree": "^1.0.1",
1461 | "acorn": "^8.10.0",
1462 | "estree-walker": "^3.0.3",
1463 | "periscopic": "^3.1.0"
1464 | }
1465 | },
1466 | "node_modules/color-convert": {
1467 | "version": "2.0.1",
1468 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1469 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1470 | "dev": true,
1471 | "dependencies": {
1472 | "color-name": "~1.1.4"
1473 | },
1474 | "engines": {
1475 | "node": ">=7.0.0"
1476 | }
1477 | },
1478 | "node_modules/color-name": {
1479 | "version": "1.1.4",
1480 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1481 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1482 | "dev": true
1483 | },
1484 | "node_modules/concat-map": {
1485 | "version": "0.0.1",
1486 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1487 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
1488 | "dev": true
1489 | },
1490 | "node_modules/cookie": {
1491 | "version": "0.6.0",
1492 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
1493 | "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
1494 | "dev": true,
1495 | "engines": {
1496 | "node": ">= 0.6"
1497 | }
1498 | },
1499 | "node_modules/cross-spawn": {
1500 | "version": "7.0.3",
1501 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
1502 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
1503 | "dev": true,
1504 | "dependencies": {
1505 | "path-key": "^3.1.0",
1506 | "shebang-command": "^2.0.0",
1507 | "which": "^2.0.1"
1508 | },
1509 | "engines": {
1510 | "node": ">= 8"
1511 | }
1512 | },
1513 | "node_modules/css-tree": {
1514 | "version": "2.3.1",
1515 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
1516 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
1517 | "dependencies": {
1518 | "mdn-data": "2.0.30",
1519 | "source-map-js": "^1.0.1"
1520 | },
1521 | "engines": {
1522 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
1523 | }
1524 | },
1525 | "node_modules/cssesc": {
1526 | "version": "3.0.0",
1527 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
1528 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
1529 | "dev": true,
1530 | "bin": {
1531 | "cssesc": "bin/cssesc"
1532 | },
1533 | "engines": {
1534 | "node": ">=4"
1535 | }
1536 | },
1537 | "node_modules/debug": {
1538 | "version": "4.3.4",
1539 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1540 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1541 | "dev": true,
1542 | "dependencies": {
1543 | "ms": "2.1.2"
1544 | },
1545 | "engines": {
1546 | "node": ">=6.0"
1547 | },
1548 | "peerDependenciesMeta": {
1549 | "supports-color": {
1550 | "optional": true
1551 | }
1552 | }
1553 | },
1554 | "node_modules/deep-eql": {
1555 | "version": "4.1.3",
1556 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
1557 | "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
1558 | "dev": true,
1559 | "dependencies": {
1560 | "type-detect": "^4.0.0"
1561 | },
1562 | "engines": {
1563 | "node": ">=6"
1564 | }
1565 | },
1566 | "node_modules/deep-is": {
1567 | "version": "0.1.4",
1568 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
1569 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
1570 | "dev": true
1571 | },
1572 | "node_modules/deepmerge": {
1573 | "version": "4.3.1",
1574 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
1575 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
1576 | "dev": true,
1577 | "engines": {
1578 | "node": ">=0.10.0"
1579 | }
1580 | },
1581 | "node_modules/dequal": {
1582 | "version": "2.0.3",
1583 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
1584 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
1585 | "engines": {
1586 | "node": ">=6"
1587 | }
1588 | },
1589 | "node_modules/devalue": {
1590 | "version": "4.3.2",
1591 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz",
1592 | "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==",
1593 | "dev": true
1594 | },
1595 | "node_modules/diff-sequences": {
1596 | "version": "29.6.3",
1597 | "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
1598 | "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
1599 | "dev": true,
1600 | "engines": {
1601 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
1602 | }
1603 | },
1604 | "node_modules/doctrine": {
1605 | "version": "3.0.0",
1606 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1607 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1608 | "dev": true,
1609 | "dependencies": {
1610 | "esutils": "^2.0.2"
1611 | },
1612 | "engines": {
1613 | "node": ">=6.0.0"
1614 | }
1615 | },
1616 | "node_modules/esbuild": {
1617 | "version": "0.19.11",
1618 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz",
1619 | "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==",
1620 | "dev": true,
1621 | "hasInstallScript": true,
1622 | "bin": {
1623 | "esbuild": "bin/esbuild"
1624 | },
1625 | "engines": {
1626 | "node": ">=12"
1627 | },
1628 | "optionalDependencies": {
1629 | "@esbuild/aix-ppc64": "0.19.11",
1630 | "@esbuild/android-arm": "0.19.11",
1631 | "@esbuild/android-arm64": "0.19.11",
1632 | "@esbuild/android-x64": "0.19.11",
1633 | "@esbuild/darwin-arm64": "0.19.11",
1634 | "@esbuild/darwin-x64": "0.19.11",
1635 | "@esbuild/freebsd-arm64": "0.19.11",
1636 | "@esbuild/freebsd-x64": "0.19.11",
1637 | "@esbuild/linux-arm": "0.19.11",
1638 | "@esbuild/linux-arm64": "0.19.11",
1639 | "@esbuild/linux-ia32": "0.19.11",
1640 | "@esbuild/linux-loong64": "0.19.11",
1641 | "@esbuild/linux-mips64el": "0.19.11",
1642 | "@esbuild/linux-ppc64": "0.19.11",
1643 | "@esbuild/linux-riscv64": "0.19.11",
1644 | "@esbuild/linux-s390x": "0.19.11",
1645 | "@esbuild/linux-x64": "0.19.11",
1646 | "@esbuild/netbsd-x64": "0.19.11",
1647 | "@esbuild/openbsd-x64": "0.19.11",
1648 | "@esbuild/sunos-x64": "0.19.11",
1649 | "@esbuild/win32-arm64": "0.19.11",
1650 | "@esbuild/win32-ia32": "0.19.11",
1651 | "@esbuild/win32-x64": "0.19.11"
1652 | }
1653 | },
1654 | "node_modules/escape-string-regexp": {
1655 | "version": "4.0.0",
1656 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1657 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1658 | "dev": true,
1659 | "engines": {
1660 | "node": ">=10"
1661 | },
1662 | "funding": {
1663 | "url": "https://github.com/sponsors/sindresorhus"
1664 | }
1665 | },
1666 | "node_modules/eslint": {
1667 | "version": "8.56.0",
1668 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
1669 | "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
1670 | "dev": true,
1671 | "dependencies": {
1672 | "@eslint-community/eslint-utils": "^4.2.0",
1673 | "@eslint-community/regexpp": "^4.6.1",
1674 | "@eslint/eslintrc": "^2.1.4",
1675 | "@eslint/js": "8.56.0",
1676 | "@humanwhocodes/config-array": "^0.11.13",
1677 | "@humanwhocodes/module-importer": "^1.0.1",
1678 | "@nodelib/fs.walk": "^1.2.8",
1679 | "@ungap/structured-clone": "^1.2.0",
1680 | "ajv": "^6.12.4",
1681 | "chalk": "^4.0.0",
1682 | "cross-spawn": "^7.0.2",
1683 | "debug": "^4.3.2",
1684 | "doctrine": "^3.0.0",
1685 | "escape-string-regexp": "^4.0.0",
1686 | "eslint-scope": "^7.2.2",
1687 | "eslint-visitor-keys": "^3.4.3",
1688 | "espree": "^9.6.1",
1689 | "esquery": "^1.4.2",
1690 | "esutils": "^2.0.2",
1691 | "fast-deep-equal": "^3.1.3",
1692 | "file-entry-cache": "^6.0.1",
1693 | "find-up": "^5.0.0",
1694 | "glob-parent": "^6.0.2",
1695 | "globals": "^13.19.0",
1696 | "graphemer": "^1.4.0",
1697 | "ignore": "^5.2.0",
1698 | "imurmurhash": "^0.1.4",
1699 | "is-glob": "^4.0.0",
1700 | "is-path-inside": "^3.0.3",
1701 | "js-yaml": "^4.1.0",
1702 | "json-stable-stringify-without-jsonify": "^1.0.1",
1703 | "levn": "^0.4.1",
1704 | "lodash.merge": "^4.6.2",
1705 | "minimatch": "^3.1.2",
1706 | "natural-compare": "^1.4.0",
1707 | "optionator": "^0.9.3",
1708 | "strip-ansi": "^6.0.1",
1709 | "text-table": "^0.2.0"
1710 | },
1711 | "bin": {
1712 | "eslint": "bin/eslint.js"
1713 | },
1714 | "engines": {
1715 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1716 | },
1717 | "funding": {
1718 | "url": "https://opencollective.com/eslint"
1719 | }
1720 | },
1721 | "node_modules/eslint-compat-utils": {
1722 | "version": "0.1.2",
1723 | "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
1724 | "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
1725 | "dev": true,
1726 | "engines": {
1727 | "node": ">=12"
1728 | },
1729 | "peerDependencies": {
1730 | "eslint": ">=6.0.0"
1731 | }
1732 | },
1733 | "node_modules/eslint-config-prettier": {
1734 | "version": "9.1.0",
1735 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
1736 | "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
1737 | "dev": true,
1738 | "bin": {
1739 | "eslint-config-prettier": "bin/cli.js"
1740 | },
1741 | "peerDependencies": {
1742 | "eslint": ">=7.0.0"
1743 | }
1744 | },
1745 | "node_modules/eslint-plugin-svelte": {
1746 | "version": "2.35.1",
1747 | "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.35.1.tgz",
1748 | "integrity": "sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==",
1749 | "dev": true,
1750 | "dependencies": {
1751 | "@eslint-community/eslint-utils": "^4.2.0",
1752 | "@jridgewell/sourcemap-codec": "^1.4.14",
1753 | "debug": "^4.3.1",
1754 | "eslint-compat-utils": "^0.1.2",
1755 | "esutils": "^2.0.3",
1756 | "known-css-properties": "^0.29.0",
1757 | "postcss": "^8.4.5",
1758 | "postcss-load-config": "^3.1.4",
1759 | "postcss-safe-parser": "^6.0.0",
1760 | "postcss-selector-parser": "^6.0.11",
1761 | "semver": "^7.5.3",
1762 | "svelte-eslint-parser": ">=0.33.0 <1.0.0"
1763 | },
1764 | "engines": {
1765 | "node": "^14.17.0 || >=16.0.0"
1766 | },
1767 | "funding": {
1768 | "url": "https://github.com/sponsors/ota-meshi"
1769 | },
1770 | "peerDependencies": {
1771 | "eslint": "^7.0.0 || ^8.0.0-0",
1772 | "svelte": "^3.37.0 || ^4.0.0"
1773 | },
1774 | "peerDependenciesMeta": {
1775 | "svelte": {
1776 | "optional": true
1777 | }
1778 | }
1779 | },
1780 | "node_modules/eslint-scope": {
1781 | "version": "7.2.2",
1782 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
1783 | "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
1784 | "dev": true,
1785 | "dependencies": {
1786 | "esrecurse": "^4.3.0",
1787 | "estraverse": "^5.2.0"
1788 | },
1789 | "engines": {
1790 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1791 | },
1792 | "funding": {
1793 | "url": "https://opencollective.com/eslint"
1794 | }
1795 | },
1796 | "node_modules/eslint-visitor-keys": {
1797 | "version": "3.4.3",
1798 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
1799 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
1800 | "dev": true,
1801 | "engines": {
1802 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1803 | },
1804 | "funding": {
1805 | "url": "https://opencollective.com/eslint"
1806 | }
1807 | },
1808 | "node_modules/esm-env": {
1809 | "version": "1.0.0",
1810 | "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
1811 | "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==",
1812 | "dev": true
1813 | },
1814 | "node_modules/espree": {
1815 | "version": "9.6.1",
1816 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
1817 | "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
1818 | "dev": true,
1819 | "dependencies": {
1820 | "acorn": "^8.9.0",
1821 | "acorn-jsx": "^5.3.2",
1822 | "eslint-visitor-keys": "^3.4.1"
1823 | },
1824 | "engines": {
1825 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1826 | },
1827 | "funding": {
1828 | "url": "https://opencollective.com/eslint"
1829 | }
1830 | },
1831 | "node_modules/esquery": {
1832 | "version": "1.5.0",
1833 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
1834 | "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
1835 | "dev": true,
1836 | "dependencies": {
1837 | "estraverse": "^5.1.0"
1838 | },
1839 | "engines": {
1840 | "node": ">=0.10"
1841 | }
1842 | },
1843 | "node_modules/esrecurse": {
1844 | "version": "4.3.0",
1845 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1846 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1847 | "dev": true,
1848 | "dependencies": {
1849 | "estraverse": "^5.2.0"
1850 | },
1851 | "engines": {
1852 | "node": ">=4.0"
1853 | }
1854 | },
1855 | "node_modules/estraverse": {
1856 | "version": "5.3.0",
1857 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1858 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
1859 | "dev": true,
1860 | "engines": {
1861 | "node": ">=4.0"
1862 | }
1863 | },
1864 | "node_modules/estree-walker": {
1865 | "version": "3.0.3",
1866 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
1867 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
1868 | "dependencies": {
1869 | "@types/estree": "^1.0.0"
1870 | }
1871 | },
1872 | "node_modules/esutils": {
1873 | "version": "2.0.3",
1874 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1875 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1876 | "dev": true,
1877 | "engines": {
1878 | "node": ">=0.10.0"
1879 | }
1880 | },
1881 | "node_modules/execa": {
1882 | "version": "8.0.1",
1883 | "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
1884 | "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
1885 | "dev": true,
1886 | "dependencies": {
1887 | "cross-spawn": "^7.0.3",
1888 | "get-stream": "^8.0.1",
1889 | "human-signals": "^5.0.0",
1890 | "is-stream": "^3.0.0",
1891 | "merge-stream": "^2.0.0",
1892 | "npm-run-path": "^5.1.0",
1893 | "onetime": "^6.0.0",
1894 | "signal-exit": "^4.1.0",
1895 | "strip-final-newline": "^3.0.0"
1896 | },
1897 | "engines": {
1898 | "node": ">=16.17"
1899 | },
1900 | "funding": {
1901 | "url": "https://github.com/sindresorhus/execa?sponsor=1"
1902 | }
1903 | },
1904 | "node_modules/fast-deep-equal": {
1905 | "version": "3.1.3",
1906 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1907 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1908 | "dev": true
1909 | },
1910 | "node_modules/fast-json-stable-stringify": {
1911 | "version": "2.1.0",
1912 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1913 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1914 | "dev": true
1915 | },
1916 | "node_modules/fast-levenshtein": {
1917 | "version": "2.0.6",
1918 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1919 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
1920 | "dev": true
1921 | },
1922 | "node_modules/fastq": {
1923 | "version": "1.16.0",
1924 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
1925 | "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
1926 | "dev": true,
1927 | "dependencies": {
1928 | "reusify": "^1.0.4"
1929 | }
1930 | },
1931 | "node_modules/file-entry-cache": {
1932 | "version": "6.0.1",
1933 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
1934 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
1935 | "dev": true,
1936 | "dependencies": {
1937 | "flat-cache": "^3.0.4"
1938 | },
1939 | "engines": {
1940 | "node": "^10.12.0 || >=12.0.0"
1941 | }
1942 | },
1943 | "node_modules/fill-range": {
1944 | "version": "7.0.1",
1945 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1946 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1947 | "dev": true,
1948 | "dependencies": {
1949 | "to-regex-range": "^5.0.1"
1950 | },
1951 | "engines": {
1952 | "node": ">=8"
1953 | }
1954 | },
1955 | "node_modules/find-up": {
1956 | "version": "5.0.0",
1957 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
1958 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
1959 | "dev": true,
1960 | "dependencies": {
1961 | "locate-path": "^6.0.0",
1962 | "path-exists": "^4.0.0"
1963 | },
1964 | "engines": {
1965 | "node": ">=10"
1966 | },
1967 | "funding": {
1968 | "url": "https://github.com/sponsors/sindresorhus"
1969 | }
1970 | },
1971 | "node_modules/flat-cache": {
1972 | "version": "3.2.0",
1973 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
1974 | "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
1975 | "dev": true,
1976 | "dependencies": {
1977 | "flatted": "^3.2.9",
1978 | "keyv": "^4.5.3",
1979 | "rimraf": "^3.0.2"
1980 | },
1981 | "engines": {
1982 | "node": "^10.12.0 || >=12.0.0"
1983 | }
1984 | },
1985 | "node_modules/flatted": {
1986 | "version": "3.2.9",
1987 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
1988 | "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
1989 | "dev": true
1990 | },
1991 | "node_modules/fs.realpath": {
1992 | "version": "1.0.0",
1993 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1994 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1995 | "dev": true
1996 | },
1997 | "node_modules/fsevents": {
1998 | "version": "2.3.2",
1999 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
2000 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
2001 | "dev": true,
2002 | "hasInstallScript": true,
2003 | "optional": true,
2004 | "os": [
2005 | "darwin"
2006 | ],
2007 | "engines": {
2008 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
2009 | }
2010 | },
2011 | "node_modules/get-func-name": {
2012 | "version": "2.0.2",
2013 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
2014 | "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
2015 | "dev": true,
2016 | "engines": {
2017 | "node": "*"
2018 | }
2019 | },
2020 | "node_modules/get-stream": {
2021 | "version": "8.0.1",
2022 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
2023 | "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
2024 | "dev": true,
2025 | "engines": {
2026 | "node": ">=16"
2027 | },
2028 | "funding": {
2029 | "url": "https://github.com/sponsors/sindresorhus"
2030 | }
2031 | },
2032 | "node_modules/glob": {
2033 | "version": "7.2.3",
2034 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
2035 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
2036 | "dev": true,
2037 | "dependencies": {
2038 | "fs.realpath": "^1.0.0",
2039 | "inflight": "^1.0.4",
2040 | "inherits": "2",
2041 | "minimatch": "^3.1.1",
2042 | "once": "^1.3.0",
2043 | "path-is-absolute": "^1.0.0"
2044 | },
2045 | "engines": {
2046 | "node": "*"
2047 | },
2048 | "funding": {
2049 | "url": "https://github.com/sponsors/isaacs"
2050 | }
2051 | },
2052 | "node_modules/glob-parent": {
2053 | "version": "6.0.2",
2054 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
2055 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
2056 | "dev": true,
2057 | "dependencies": {
2058 | "is-glob": "^4.0.3"
2059 | },
2060 | "engines": {
2061 | "node": ">=10.13.0"
2062 | }
2063 | },
2064 | "node_modules/globals": {
2065 | "version": "13.24.0",
2066 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
2067 | "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
2068 | "dev": true,
2069 | "dependencies": {
2070 | "type-fest": "^0.20.2"
2071 | },
2072 | "engines": {
2073 | "node": ">=8"
2074 | },
2075 | "funding": {
2076 | "url": "https://github.com/sponsors/sindresorhus"
2077 | }
2078 | },
2079 | "node_modules/globalyzer": {
2080 | "version": "0.1.0",
2081 | "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
2082 | "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
2083 | "dev": true
2084 | },
2085 | "node_modules/globrex": {
2086 | "version": "0.1.2",
2087 | "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
2088 | "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
2089 | "dev": true
2090 | },
2091 | "node_modules/graphemer": {
2092 | "version": "1.4.0",
2093 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
2094 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
2095 | "dev": true
2096 | },
2097 | "node_modules/has-flag": {
2098 | "version": "4.0.0",
2099 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2100 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2101 | "dev": true,
2102 | "engines": {
2103 | "node": ">=8"
2104 | }
2105 | },
2106 | "node_modules/human-signals": {
2107 | "version": "5.0.0",
2108 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
2109 | "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
2110 | "dev": true,
2111 | "engines": {
2112 | "node": ">=16.17.0"
2113 | }
2114 | },
2115 | "node_modules/ignore": {
2116 | "version": "5.3.0",
2117 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
2118 | "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
2119 | "dev": true,
2120 | "engines": {
2121 | "node": ">= 4"
2122 | }
2123 | },
2124 | "node_modules/immutable": {
2125 | "version": "4.3.4",
2126 | "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
2127 | "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
2128 | "dev": true
2129 | },
2130 | "node_modules/import-fresh": {
2131 | "version": "3.3.0",
2132 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
2133 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
2134 | "dev": true,
2135 | "dependencies": {
2136 | "parent-module": "^1.0.0",
2137 | "resolve-from": "^4.0.0"
2138 | },
2139 | "engines": {
2140 | "node": ">=6"
2141 | },
2142 | "funding": {
2143 | "url": "https://github.com/sponsors/sindresorhus"
2144 | }
2145 | },
2146 | "node_modules/import-meta-resolve": {
2147 | "version": "4.0.0",
2148 | "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz",
2149 | "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==",
2150 | "dev": true,
2151 | "funding": {
2152 | "type": "github",
2153 | "url": "https://github.com/sponsors/wooorm"
2154 | }
2155 | },
2156 | "node_modules/imurmurhash": {
2157 | "version": "0.1.4",
2158 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2159 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
2160 | "dev": true,
2161 | "engines": {
2162 | "node": ">=0.8.19"
2163 | }
2164 | },
2165 | "node_modules/inflight": {
2166 | "version": "1.0.6",
2167 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2168 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
2169 | "dev": true,
2170 | "dependencies": {
2171 | "once": "^1.3.0",
2172 | "wrappy": "1"
2173 | }
2174 | },
2175 | "node_modules/inherits": {
2176 | "version": "2.0.4",
2177 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2178 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2179 | "dev": true
2180 | },
2181 | "node_modules/is-binary-path": {
2182 | "version": "2.1.0",
2183 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
2184 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
2185 | "dev": true,
2186 | "dependencies": {
2187 | "binary-extensions": "^2.0.0"
2188 | },
2189 | "engines": {
2190 | "node": ">=8"
2191 | }
2192 | },
2193 | "node_modules/is-extglob": {
2194 | "version": "2.1.1",
2195 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2196 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
2197 | "dev": true,
2198 | "engines": {
2199 | "node": ">=0.10.0"
2200 | }
2201 | },
2202 | "node_modules/is-glob": {
2203 | "version": "4.0.3",
2204 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2205 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2206 | "dev": true,
2207 | "dependencies": {
2208 | "is-extglob": "^2.1.1"
2209 | },
2210 | "engines": {
2211 | "node": ">=0.10.0"
2212 | }
2213 | },
2214 | "node_modules/is-number": {
2215 | "version": "7.0.0",
2216 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2217 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2218 | "dev": true,
2219 | "engines": {
2220 | "node": ">=0.12.0"
2221 | }
2222 | },
2223 | "node_modules/is-path-inside": {
2224 | "version": "3.0.3",
2225 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
2226 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
2227 | "dev": true,
2228 | "engines": {
2229 | "node": ">=8"
2230 | }
2231 | },
2232 | "node_modules/is-reference": {
2233 | "version": "3.0.2",
2234 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
2235 | "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
2236 | "dependencies": {
2237 | "@types/estree": "*"
2238 | }
2239 | },
2240 | "node_modules/is-stream": {
2241 | "version": "3.0.0",
2242 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
2243 | "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
2244 | "dev": true,
2245 | "engines": {
2246 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
2247 | },
2248 | "funding": {
2249 | "url": "https://github.com/sponsors/sindresorhus"
2250 | }
2251 | },
2252 | "node_modules/isexe": {
2253 | "version": "2.0.0",
2254 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2255 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
2256 | "dev": true
2257 | },
2258 | "node_modules/js-yaml": {
2259 | "version": "4.1.0",
2260 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2261 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2262 | "dev": true,
2263 | "dependencies": {
2264 | "argparse": "^2.0.1"
2265 | },
2266 | "bin": {
2267 | "js-yaml": "bin/js-yaml.js"
2268 | }
2269 | },
2270 | "node_modules/json-buffer": {
2271 | "version": "3.0.1",
2272 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
2273 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
2274 | "dev": true
2275 | },
2276 | "node_modules/json-schema-traverse": {
2277 | "version": "0.4.1",
2278 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2279 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2280 | "dev": true
2281 | },
2282 | "node_modules/json-stable-stringify-without-jsonify": {
2283 | "version": "1.0.1",
2284 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2285 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
2286 | "dev": true
2287 | },
2288 | "node_modules/jsonc-parser": {
2289 | "version": "3.2.0",
2290 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
2291 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
2292 | "dev": true
2293 | },
2294 | "node_modules/keyv": {
2295 | "version": "4.5.4",
2296 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
2297 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
2298 | "dev": true,
2299 | "dependencies": {
2300 | "json-buffer": "3.0.1"
2301 | }
2302 | },
2303 | "node_modules/kleur": {
2304 | "version": "4.1.5",
2305 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
2306 | "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
2307 | "dev": true,
2308 | "engines": {
2309 | "node": ">=6"
2310 | }
2311 | },
2312 | "node_modules/known-css-properties": {
2313 | "version": "0.29.0",
2314 | "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
2315 | "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
2316 | "dev": true
2317 | },
2318 | "node_modules/kolorist": {
2319 | "version": "1.8.0",
2320 | "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
2321 | "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
2322 | "dev": true
2323 | },
2324 | "node_modules/levn": {
2325 | "version": "0.4.1",
2326 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
2327 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
2328 | "dev": true,
2329 | "dependencies": {
2330 | "prelude-ls": "^1.2.1",
2331 | "type-check": "~0.4.0"
2332 | },
2333 | "engines": {
2334 | "node": ">= 0.8.0"
2335 | }
2336 | },
2337 | "node_modules/lilconfig": {
2338 | "version": "2.1.0",
2339 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
2340 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
2341 | "dev": true,
2342 | "engines": {
2343 | "node": ">=10"
2344 | }
2345 | },
2346 | "node_modules/local-pkg": {
2347 | "version": "0.5.0",
2348 | "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz",
2349 | "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
2350 | "dev": true,
2351 | "dependencies": {
2352 | "mlly": "^1.4.2",
2353 | "pkg-types": "^1.0.3"
2354 | },
2355 | "engines": {
2356 | "node": ">=14"
2357 | },
2358 | "funding": {
2359 | "url": "https://github.com/sponsors/antfu"
2360 | }
2361 | },
2362 | "node_modules/locate-character": {
2363 | "version": "3.0.0",
2364 | "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
2365 | "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="
2366 | },
2367 | "node_modules/locate-path": {
2368 | "version": "6.0.0",
2369 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
2370 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
2371 | "dev": true,
2372 | "dependencies": {
2373 | "p-locate": "^5.0.0"
2374 | },
2375 | "engines": {
2376 | "node": ">=10"
2377 | },
2378 | "funding": {
2379 | "url": "https://github.com/sponsors/sindresorhus"
2380 | }
2381 | },
2382 | "node_modules/lodash.merge": {
2383 | "version": "4.6.2",
2384 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
2385 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
2386 | "dev": true
2387 | },
2388 | "node_modules/loupe": {
2389 | "version": "2.3.7",
2390 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
2391 | "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
2392 | "dev": true,
2393 | "dependencies": {
2394 | "get-func-name": "^2.0.1"
2395 | }
2396 | },
2397 | "node_modules/lru-cache": {
2398 | "version": "6.0.0",
2399 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
2400 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
2401 | "dev": true,
2402 | "dependencies": {
2403 | "yallist": "^4.0.0"
2404 | },
2405 | "engines": {
2406 | "node": ">=10"
2407 | }
2408 | },
2409 | "node_modules/magic-string": {
2410 | "version": "0.30.5",
2411 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
2412 | "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
2413 | "dependencies": {
2414 | "@jridgewell/sourcemap-codec": "^1.4.15"
2415 | },
2416 | "engines": {
2417 | "node": ">=12"
2418 | }
2419 | },
2420 | "node_modules/mdn-data": {
2421 | "version": "2.0.30",
2422 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
2423 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
2424 | },
2425 | "node_modules/merge-stream": {
2426 | "version": "2.0.0",
2427 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
2428 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
2429 | "dev": true
2430 | },
2431 | "node_modules/mimic-fn": {
2432 | "version": "4.0.0",
2433 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
2434 | "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
2435 | "dev": true,
2436 | "engines": {
2437 | "node": ">=12"
2438 | },
2439 | "funding": {
2440 | "url": "https://github.com/sponsors/sindresorhus"
2441 | }
2442 | },
2443 | "node_modules/minimatch": {
2444 | "version": "3.1.2",
2445 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2446 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2447 | "dev": true,
2448 | "dependencies": {
2449 | "brace-expansion": "^1.1.7"
2450 | },
2451 | "engines": {
2452 | "node": "*"
2453 | }
2454 | },
2455 | "node_modules/mlly": {
2456 | "version": "1.5.0",
2457 | "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz",
2458 | "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==",
2459 | "dev": true,
2460 | "dependencies": {
2461 | "acorn": "^8.11.3",
2462 | "pathe": "^1.1.2",
2463 | "pkg-types": "^1.0.3",
2464 | "ufo": "^1.3.2"
2465 | }
2466 | },
2467 | "node_modules/mri": {
2468 | "version": "1.2.0",
2469 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
2470 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
2471 | "dev": true,
2472 | "engines": {
2473 | "node": ">=4"
2474 | }
2475 | },
2476 | "node_modules/mrmime": {
2477 | "version": "2.0.0",
2478 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
2479 | "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
2480 | "dev": true,
2481 | "engines": {
2482 | "node": ">=10"
2483 | }
2484 | },
2485 | "node_modules/ms": {
2486 | "version": "2.1.2",
2487 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2488 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2489 | "dev": true
2490 | },
2491 | "node_modules/nanoid": {
2492 | "version": "3.3.7",
2493 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
2494 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
2495 | "dev": true,
2496 | "funding": [
2497 | {
2498 | "type": "github",
2499 | "url": "https://github.com/sponsors/ai"
2500 | }
2501 | ],
2502 | "bin": {
2503 | "nanoid": "bin/nanoid.cjs"
2504 | },
2505 | "engines": {
2506 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
2507 | }
2508 | },
2509 | "node_modules/natural-compare": {
2510 | "version": "1.4.0",
2511 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2512 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
2513 | "dev": true
2514 | },
2515 | "node_modules/normalize-path": {
2516 | "version": "3.0.0",
2517 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2518 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2519 | "dev": true,
2520 | "engines": {
2521 | "node": ">=0.10.0"
2522 | }
2523 | },
2524 | "node_modules/npm-run-path": {
2525 | "version": "5.2.0",
2526 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
2527 | "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
2528 | "dev": true,
2529 | "dependencies": {
2530 | "path-key": "^4.0.0"
2531 | },
2532 | "engines": {
2533 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
2534 | },
2535 | "funding": {
2536 | "url": "https://github.com/sponsors/sindresorhus"
2537 | }
2538 | },
2539 | "node_modules/npm-run-path/node_modules/path-key": {
2540 | "version": "4.0.0",
2541 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
2542 | "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
2543 | "dev": true,
2544 | "engines": {
2545 | "node": ">=12"
2546 | },
2547 | "funding": {
2548 | "url": "https://github.com/sponsors/sindresorhus"
2549 | }
2550 | },
2551 | "node_modules/once": {
2552 | "version": "1.4.0",
2553 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2554 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2555 | "dev": true,
2556 | "dependencies": {
2557 | "wrappy": "1"
2558 | }
2559 | },
2560 | "node_modules/onetime": {
2561 | "version": "6.0.0",
2562 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
2563 | "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
2564 | "dev": true,
2565 | "dependencies": {
2566 | "mimic-fn": "^4.0.0"
2567 | },
2568 | "engines": {
2569 | "node": ">=12"
2570 | },
2571 | "funding": {
2572 | "url": "https://github.com/sponsors/sindresorhus"
2573 | }
2574 | },
2575 | "node_modules/optionator": {
2576 | "version": "0.9.3",
2577 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
2578 | "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
2579 | "dev": true,
2580 | "dependencies": {
2581 | "@aashutoshrathi/word-wrap": "^1.2.3",
2582 | "deep-is": "^0.1.3",
2583 | "fast-levenshtein": "^2.0.6",
2584 | "levn": "^0.4.1",
2585 | "prelude-ls": "^1.2.1",
2586 | "type-check": "^0.4.0"
2587 | },
2588 | "engines": {
2589 | "node": ">= 0.8.0"
2590 | }
2591 | },
2592 | "node_modules/p-limit": {
2593 | "version": "3.1.0",
2594 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2595 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2596 | "dev": true,
2597 | "dependencies": {
2598 | "yocto-queue": "^0.1.0"
2599 | },
2600 | "engines": {
2601 | "node": ">=10"
2602 | },
2603 | "funding": {
2604 | "url": "https://github.com/sponsors/sindresorhus"
2605 | }
2606 | },
2607 | "node_modules/p-locate": {
2608 | "version": "5.0.0",
2609 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2610 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2611 | "dev": true,
2612 | "dependencies": {
2613 | "p-limit": "^3.0.2"
2614 | },
2615 | "engines": {
2616 | "node": ">=10"
2617 | },
2618 | "funding": {
2619 | "url": "https://github.com/sponsors/sindresorhus"
2620 | }
2621 | },
2622 | "node_modules/parent-module": {
2623 | "version": "1.0.1",
2624 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2625 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2626 | "dev": true,
2627 | "dependencies": {
2628 | "callsites": "^3.0.0"
2629 | },
2630 | "engines": {
2631 | "node": ">=6"
2632 | }
2633 | },
2634 | "node_modules/path-exists": {
2635 | "version": "4.0.0",
2636 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2637 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2638 | "dev": true,
2639 | "engines": {
2640 | "node": ">=8"
2641 | }
2642 | },
2643 | "node_modules/path-is-absolute": {
2644 | "version": "1.0.1",
2645 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2646 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2647 | "dev": true,
2648 | "engines": {
2649 | "node": ">=0.10.0"
2650 | }
2651 | },
2652 | "node_modules/path-key": {
2653 | "version": "3.1.1",
2654 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2655 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2656 | "dev": true,
2657 | "engines": {
2658 | "node": ">=8"
2659 | }
2660 | },
2661 | "node_modules/pathe": {
2662 | "version": "1.1.2",
2663 | "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
2664 | "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
2665 | "dev": true
2666 | },
2667 | "node_modules/pathval": {
2668 | "version": "1.1.1",
2669 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
2670 | "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
2671 | "dev": true,
2672 | "engines": {
2673 | "node": "*"
2674 | }
2675 | },
2676 | "node_modules/periscopic": {
2677 | "version": "3.1.0",
2678 | "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
2679 | "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
2680 | "dependencies": {
2681 | "@types/estree": "^1.0.0",
2682 | "estree-walker": "^3.0.0",
2683 | "is-reference": "^3.0.0"
2684 | }
2685 | },
2686 | "node_modules/picocolors": {
2687 | "version": "1.0.0",
2688 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
2689 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
2690 | "dev": true
2691 | },
2692 | "node_modules/picomatch": {
2693 | "version": "2.3.1",
2694 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2695 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2696 | "dev": true,
2697 | "engines": {
2698 | "node": ">=8.6"
2699 | },
2700 | "funding": {
2701 | "url": "https://github.com/sponsors/jonschlinkert"
2702 | }
2703 | },
2704 | "node_modules/pkg-types": {
2705 | "version": "1.0.3",
2706 | "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
2707 | "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
2708 | "dev": true,
2709 | "dependencies": {
2710 | "jsonc-parser": "^3.2.0",
2711 | "mlly": "^1.2.0",
2712 | "pathe": "^1.1.0"
2713 | }
2714 | },
2715 | "node_modules/playwright": {
2716 | "version": "1.40.1",
2717 | "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz",
2718 | "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==",
2719 | "dev": true,
2720 | "dependencies": {
2721 | "playwright-core": "1.40.1"
2722 | },
2723 | "bin": {
2724 | "playwright": "cli.js"
2725 | },
2726 | "engines": {
2727 | "node": ">=16"
2728 | },
2729 | "optionalDependencies": {
2730 | "fsevents": "2.3.2"
2731 | }
2732 | },
2733 | "node_modules/playwright-core": {
2734 | "version": "1.40.1",
2735 | "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz",
2736 | "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==",
2737 | "dev": true,
2738 | "bin": {
2739 | "playwright-core": "cli.js"
2740 | },
2741 | "engines": {
2742 | "node": ">=16"
2743 | }
2744 | },
2745 | "node_modules/postcss": {
2746 | "version": "8.4.35",
2747 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
2748 | "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
2749 | "dev": true,
2750 | "funding": [
2751 | {
2752 | "type": "opencollective",
2753 | "url": "https://opencollective.com/postcss/"
2754 | },
2755 | {
2756 | "type": "tidelift",
2757 | "url": "https://tidelift.com/funding/github/npm/postcss"
2758 | },
2759 | {
2760 | "type": "github",
2761 | "url": "https://github.com/sponsors/ai"
2762 | }
2763 | ],
2764 | "dependencies": {
2765 | "nanoid": "^3.3.7",
2766 | "picocolors": "^1.0.0",
2767 | "source-map-js": "^1.0.2"
2768 | },
2769 | "engines": {
2770 | "node": "^10 || ^12 || >=14"
2771 | }
2772 | },
2773 | "node_modules/postcss-load-config": {
2774 | "version": "3.1.4",
2775 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
2776 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
2777 | "dev": true,
2778 | "dependencies": {
2779 | "lilconfig": "^2.0.5",
2780 | "yaml": "^1.10.2"
2781 | },
2782 | "engines": {
2783 | "node": ">= 10"
2784 | },
2785 | "funding": {
2786 | "type": "opencollective",
2787 | "url": "https://opencollective.com/postcss/"
2788 | },
2789 | "peerDependencies": {
2790 | "postcss": ">=8.0.9",
2791 | "ts-node": ">=9.0.0"
2792 | },
2793 | "peerDependenciesMeta": {
2794 | "postcss": {
2795 | "optional": true
2796 | },
2797 | "ts-node": {
2798 | "optional": true
2799 | }
2800 | }
2801 | },
2802 | "node_modules/postcss-safe-parser": {
2803 | "version": "6.0.0",
2804 | "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
2805 | "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
2806 | "dev": true,
2807 | "engines": {
2808 | "node": ">=12.0"
2809 | },
2810 | "funding": {
2811 | "type": "opencollective",
2812 | "url": "https://opencollective.com/postcss/"
2813 | },
2814 | "peerDependencies": {
2815 | "postcss": "^8.3.3"
2816 | }
2817 | },
2818 | "node_modules/postcss-scss": {
2819 | "version": "4.0.9",
2820 | "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz",
2821 | "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==",
2822 | "dev": true,
2823 | "funding": [
2824 | {
2825 | "type": "opencollective",
2826 | "url": "https://opencollective.com/postcss/"
2827 | },
2828 | {
2829 | "type": "tidelift",
2830 | "url": "https://tidelift.com/funding/github/npm/postcss-scss"
2831 | },
2832 | {
2833 | "type": "github",
2834 | "url": "https://github.com/sponsors/ai"
2835 | }
2836 | ],
2837 | "engines": {
2838 | "node": ">=12.0"
2839 | },
2840 | "peerDependencies": {
2841 | "postcss": "^8.4.29"
2842 | }
2843 | },
2844 | "node_modules/postcss-selector-parser": {
2845 | "version": "6.0.15",
2846 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
2847 | "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
2848 | "dev": true,
2849 | "dependencies": {
2850 | "cssesc": "^3.0.0",
2851 | "util-deprecate": "^1.0.2"
2852 | },
2853 | "engines": {
2854 | "node": ">=4"
2855 | }
2856 | },
2857 | "node_modules/prelude-ls": {
2858 | "version": "1.2.1",
2859 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2860 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2861 | "dev": true,
2862 | "engines": {
2863 | "node": ">= 0.8.0"
2864 | }
2865 | },
2866 | "node_modules/prettier": {
2867 | "version": "3.2.1",
2868 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.1.tgz",
2869 | "integrity": "sha512-qSUWshj1IobVbKc226Gw2pync27t0Kf0EdufZa9j7uBSJay1CC+B3K5lAAZoqgX3ASiKuWsk6OmzKRetXNObWg==",
2870 | "dev": true,
2871 | "bin": {
2872 | "prettier": "bin/prettier.cjs"
2873 | },
2874 | "engines": {
2875 | "node": ">=14"
2876 | },
2877 | "funding": {
2878 | "url": "https://github.com/prettier/prettier?sponsor=1"
2879 | }
2880 | },
2881 | "node_modules/prettier-plugin-svelte": {
2882 | "version": "3.1.2",
2883 | "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.1.2.tgz",
2884 | "integrity": "sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==",
2885 | "dev": true,
2886 | "peerDependencies": {
2887 | "prettier": "^3.0.0",
2888 | "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0"
2889 | }
2890 | },
2891 | "node_modules/pretty-format": {
2892 | "version": "29.7.0",
2893 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
2894 | "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
2895 | "dev": true,
2896 | "dependencies": {
2897 | "@jest/schemas": "^29.6.3",
2898 | "ansi-styles": "^5.0.0",
2899 | "react-is": "^18.0.0"
2900 | },
2901 | "engines": {
2902 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
2903 | }
2904 | },
2905 | "node_modules/pretty-format/node_modules/ansi-styles": {
2906 | "version": "5.2.0",
2907 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
2908 | "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
2909 | "dev": true,
2910 | "engines": {
2911 | "node": ">=10"
2912 | },
2913 | "funding": {
2914 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2915 | }
2916 | },
2917 | "node_modules/punycode": {
2918 | "version": "2.3.1",
2919 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
2920 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
2921 | "dev": true,
2922 | "engines": {
2923 | "node": ">=6"
2924 | }
2925 | },
2926 | "node_modules/queue-microtask": {
2927 | "version": "1.2.3",
2928 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2929 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2930 | "dev": true,
2931 | "funding": [
2932 | {
2933 | "type": "github",
2934 | "url": "https://github.com/sponsors/feross"
2935 | },
2936 | {
2937 | "type": "patreon",
2938 | "url": "https://www.patreon.com/feross"
2939 | },
2940 | {
2941 | "type": "consulting",
2942 | "url": "https://feross.org/support"
2943 | }
2944 | ]
2945 | },
2946 | "node_modules/react-is": {
2947 | "version": "18.2.0",
2948 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
2949 | "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
2950 | "dev": true
2951 | },
2952 | "node_modules/readdirp": {
2953 | "version": "3.6.0",
2954 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
2955 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
2956 | "dev": true,
2957 | "dependencies": {
2958 | "picomatch": "^2.2.1"
2959 | },
2960 | "engines": {
2961 | "node": ">=8.10.0"
2962 | }
2963 | },
2964 | "node_modules/resolve-from": {
2965 | "version": "4.0.0",
2966 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2967 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2968 | "dev": true,
2969 | "engines": {
2970 | "node": ">=4"
2971 | }
2972 | },
2973 | "node_modules/reusify": {
2974 | "version": "1.0.4",
2975 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
2976 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
2977 | "dev": true,
2978 | "engines": {
2979 | "iojs": ">=1.0.0",
2980 | "node": ">=0.10.0"
2981 | }
2982 | },
2983 | "node_modules/rimraf": {
2984 | "version": "3.0.2",
2985 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2986 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2987 | "dev": true,
2988 | "dependencies": {
2989 | "glob": "^7.1.3"
2990 | },
2991 | "bin": {
2992 | "rimraf": "bin.js"
2993 | },
2994 | "funding": {
2995 | "url": "https://github.com/sponsors/isaacs"
2996 | }
2997 | },
2998 | "node_modules/rollup": {
2999 | "version": "4.9.5",
3000 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.5.tgz",
3001 | "integrity": "sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==",
3002 | "dev": true,
3003 | "dependencies": {
3004 | "@types/estree": "1.0.5"
3005 | },
3006 | "bin": {
3007 | "rollup": "dist/bin/rollup"
3008 | },
3009 | "engines": {
3010 | "node": ">=18.0.0",
3011 | "npm": ">=8.0.0"
3012 | },
3013 | "optionalDependencies": {
3014 | "@rollup/rollup-android-arm-eabi": "4.9.5",
3015 | "@rollup/rollup-android-arm64": "4.9.5",
3016 | "@rollup/rollup-darwin-arm64": "4.9.5",
3017 | "@rollup/rollup-darwin-x64": "4.9.5",
3018 | "@rollup/rollup-linux-arm-gnueabihf": "4.9.5",
3019 | "@rollup/rollup-linux-arm64-gnu": "4.9.5",
3020 | "@rollup/rollup-linux-arm64-musl": "4.9.5",
3021 | "@rollup/rollup-linux-riscv64-gnu": "4.9.5",
3022 | "@rollup/rollup-linux-x64-gnu": "4.9.5",
3023 | "@rollup/rollup-linux-x64-musl": "4.9.5",
3024 | "@rollup/rollup-win32-arm64-msvc": "4.9.5",
3025 | "@rollup/rollup-win32-ia32-msvc": "4.9.5",
3026 | "@rollup/rollup-win32-x64-msvc": "4.9.5",
3027 | "fsevents": "~2.3.2"
3028 | }
3029 | },
3030 | "node_modules/run-parallel": {
3031 | "version": "1.2.0",
3032 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
3033 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
3034 | "dev": true,
3035 | "funding": [
3036 | {
3037 | "type": "github",
3038 | "url": "https://github.com/sponsors/feross"
3039 | },
3040 | {
3041 | "type": "patreon",
3042 | "url": "https://www.patreon.com/feross"
3043 | },
3044 | {
3045 | "type": "consulting",
3046 | "url": "https://feross.org/support"
3047 | }
3048 | ],
3049 | "dependencies": {
3050 | "queue-microtask": "^1.2.2"
3051 | }
3052 | },
3053 | "node_modules/sade": {
3054 | "version": "1.8.1",
3055 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
3056 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
3057 | "dev": true,
3058 | "dependencies": {
3059 | "mri": "^1.1.0"
3060 | },
3061 | "engines": {
3062 | "node": ">=6"
3063 | }
3064 | },
3065 | "node_modules/sass": {
3066 | "version": "1.69.7",
3067 | "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz",
3068 | "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==",
3069 | "dev": true,
3070 | "dependencies": {
3071 | "chokidar": ">=3.0.0 <4.0.0",
3072 | "immutable": "^4.0.0",
3073 | "source-map-js": ">=0.6.2 <2.0.0"
3074 | },
3075 | "bin": {
3076 | "sass": "sass.js"
3077 | },
3078 | "engines": {
3079 | "node": ">=14.0.0"
3080 | }
3081 | },
3082 | "node_modules/semver": {
3083 | "version": "7.5.4",
3084 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
3085 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
3086 | "dev": true,
3087 | "dependencies": {
3088 | "lru-cache": "^6.0.0"
3089 | },
3090 | "bin": {
3091 | "semver": "bin/semver.js"
3092 | },
3093 | "engines": {
3094 | "node": ">=10"
3095 | }
3096 | },
3097 | "node_modules/set-cookie-parser": {
3098 | "version": "2.6.0",
3099 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
3100 | "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
3101 | "dev": true
3102 | },
3103 | "node_modules/shebang-command": {
3104 | "version": "2.0.0",
3105 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3106 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3107 | "dev": true,
3108 | "dependencies": {
3109 | "shebang-regex": "^3.0.0"
3110 | },
3111 | "engines": {
3112 | "node": ">=8"
3113 | }
3114 | },
3115 | "node_modules/shebang-regex": {
3116 | "version": "3.0.0",
3117 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3118 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3119 | "dev": true,
3120 | "engines": {
3121 | "node": ">=8"
3122 | }
3123 | },
3124 | "node_modules/siginfo": {
3125 | "version": "2.0.0",
3126 | "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
3127 | "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
3128 | "dev": true
3129 | },
3130 | "node_modules/signal-exit": {
3131 | "version": "4.1.0",
3132 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
3133 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
3134 | "dev": true,
3135 | "engines": {
3136 | "node": ">=14"
3137 | },
3138 | "funding": {
3139 | "url": "https://github.com/sponsors/isaacs"
3140 | }
3141 | },
3142 | "node_modules/sirv": {
3143 | "version": "2.0.4",
3144 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
3145 | "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
3146 | "dev": true,
3147 | "dependencies": {
3148 | "@polka/url": "^1.0.0-next.24",
3149 | "mrmime": "^2.0.0",
3150 | "totalist": "^3.0.0"
3151 | },
3152 | "engines": {
3153 | "node": ">= 10"
3154 | }
3155 | },
3156 | "node_modules/source-map-js": {
3157 | "version": "1.0.2",
3158 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
3159 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
3160 | "engines": {
3161 | "node": ">=0.10.0"
3162 | }
3163 | },
3164 | "node_modules/stackback": {
3165 | "version": "0.0.2",
3166 | "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
3167 | "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
3168 | "dev": true
3169 | },
3170 | "node_modules/std-env": {
3171 | "version": "3.7.0",
3172 | "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
3173 | "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
3174 | "dev": true
3175 | },
3176 | "node_modules/strip-ansi": {
3177 | "version": "6.0.1",
3178 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3179 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3180 | "dev": true,
3181 | "dependencies": {
3182 | "ansi-regex": "^5.0.1"
3183 | },
3184 | "engines": {
3185 | "node": ">=8"
3186 | }
3187 | },
3188 | "node_modules/strip-final-newline": {
3189 | "version": "3.0.0",
3190 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
3191 | "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
3192 | "dev": true,
3193 | "engines": {
3194 | "node": ">=12"
3195 | },
3196 | "funding": {
3197 | "url": "https://github.com/sponsors/sindresorhus"
3198 | }
3199 | },
3200 | "node_modules/strip-json-comments": {
3201 | "version": "3.1.1",
3202 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
3203 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
3204 | "dev": true,
3205 | "engines": {
3206 | "node": ">=8"
3207 | },
3208 | "funding": {
3209 | "url": "https://github.com/sponsors/sindresorhus"
3210 | }
3211 | },
3212 | "node_modules/strip-literal": {
3213 | "version": "1.3.0",
3214 | "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz",
3215 | "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
3216 | "dev": true,
3217 | "dependencies": {
3218 | "acorn": "^8.10.0"
3219 | },
3220 | "funding": {
3221 | "url": "https://github.com/sponsors/antfu"
3222 | }
3223 | },
3224 | "node_modules/supports-color": {
3225 | "version": "7.2.0",
3226 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3227 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3228 | "dev": true,
3229 | "dependencies": {
3230 | "has-flag": "^4.0.0"
3231 | },
3232 | "engines": {
3233 | "node": ">=8"
3234 | }
3235 | },
3236 | "node_modules/svelte": {
3237 | "version": "4.2.8",
3238 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.8.tgz",
3239 | "integrity": "sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==",
3240 | "dependencies": {
3241 | "@ampproject/remapping": "^2.2.1",
3242 | "@jridgewell/sourcemap-codec": "^1.4.15",
3243 | "@jridgewell/trace-mapping": "^0.3.18",
3244 | "acorn": "^8.9.0",
3245 | "aria-query": "^5.3.0",
3246 | "axobject-query": "^3.2.1",
3247 | "code-red": "^1.0.3",
3248 | "css-tree": "^2.3.1",
3249 | "estree-walker": "^3.0.3",
3250 | "is-reference": "^3.0.1",
3251 | "locate-character": "^3.0.0",
3252 | "magic-string": "^0.30.4",
3253 | "periscopic": "^3.1.0"
3254 | },
3255 | "engines": {
3256 | "node": ">=16"
3257 | }
3258 | },
3259 | "node_modules/svelte-eslint-parser": {
3260 | "version": "0.33.1",
3261 | "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz",
3262 | "integrity": "sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==",
3263 | "dev": true,
3264 | "dependencies": {
3265 | "eslint-scope": "^7.0.0",
3266 | "eslint-visitor-keys": "^3.0.0",
3267 | "espree": "^9.0.0",
3268 | "postcss": "^8.4.29",
3269 | "postcss-scss": "^4.0.8"
3270 | },
3271 | "engines": {
3272 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
3273 | },
3274 | "funding": {
3275 | "url": "https://github.com/sponsors/ota-meshi"
3276 | },
3277 | "peerDependencies": {
3278 | "svelte": "^3.37.0 || ^4.0.0"
3279 | },
3280 | "peerDependenciesMeta": {
3281 | "svelte": {
3282 | "optional": true
3283 | }
3284 | }
3285 | },
3286 | "node_modules/svelte-hmr": {
3287 | "version": "0.15.3",
3288 | "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz",
3289 | "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==",
3290 | "dev": true,
3291 | "engines": {
3292 | "node": "^12.20 || ^14.13.1 || >= 16"
3293 | },
3294 | "peerDependencies": {
3295 | "svelte": "^3.19.0 || ^4.0.0"
3296 | }
3297 | },
3298 | "node_modules/svelte-persisted-store": {
3299 | "version": "0.9.1",
3300 | "resolved": "https://registry.npmjs.org/svelte-persisted-store/-/svelte-persisted-store-0.9.1.tgz",
3301 | "integrity": "sha512-l00I8Dy5GKjdjnE9ZcMeXLLMhvgV0+Iuru0Mue7eU3tB+pHBwBB2RVVqw2uC2Hbrf7cyZtsV/lnPKhjTHIWphQ==",
3302 | "engines": {
3303 | "node": ">=0.14"
3304 | },
3305 | "peerDependencies": {
3306 | "svelte": "^3.48.0 || ^4.0.0 || ^5.0.0-next.0"
3307 | }
3308 | },
3309 | "node_modules/svelte-simple-modal": {
3310 | "version": "1.6.1",
3311 | "resolved": "https://registry.npmjs.org/svelte-simple-modal/-/svelte-simple-modal-1.6.1.tgz",
3312 | "integrity": "sha512-D4/Z7LQ6ThawYb7FlAeS/qGbcwVlqzRHn1zZgWPlEK0cp4l2UMcscqel58mp+gTuk4UX9gl516GYXcHFvuyslA==",
3313 | "peerDependencies": {
3314 | "svelte": "^3.30.0 || ^4.0.0"
3315 | }
3316 | },
3317 | "node_modules/text-table": {
3318 | "version": "0.2.0",
3319 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3320 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
3321 | "dev": true
3322 | },
3323 | "node_modules/tiny-glob": {
3324 | "version": "0.2.9",
3325 | "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
3326 | "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
3327 | "dev": true,
3328 | "dependencies": {
3329 | "globalyzer": "0.1.0",
3330 | "globrex": "^0.1.2"
3331 | }
3332 | },
3333 | "node_modules/tinybench": {
3334 | "version": "2.5.1",
3335 | "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz",
3336 | "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==",
3337 | "dev": true
3338 | },
3339 | "node_modules/tinypool": {
3340 | "version": "0.8.1",
3341 | "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz",
3342 | "integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==",
3343 | "dev": true,
3344 | "engines": {
3345 | "node": ">=14.0.0"
3346 | }
3347 | },
3348 | "node_modules/tinyspy": {
3349 | "version": "2.2.0",
3350 | "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz",
3351 | "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==",
3352 | "dev": true,
3353 | "engines": {
3354 | "node": ">=14.0.0"
3355 | }
3356 | },
3357 | "node_modules/to-regex-range": {
3358 | "version": "5.0.1",
3359 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3360 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3361 | "dev": true,
3362 | "dependencies": {
3363 | "is-number": "^7.0.0"
3364 | },
3365 | "engines": {
3366 | "node": ">=8.0"
3367 | }
3368 | },
3369 | "node_modules/totalist": {
3370 | "version": "3.0.1",
3371 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
3372 | "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
3373 | "dev": true,
3374 | "engines": {
3375 | "node": ">=6"
3376 | }
3377 | },
3378 | "node_modules/type-check": {
3379 | "version": "0.4.0",
3380 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
3381 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
3382 | "dev": true,
3383 | "dependencies": {
3384 | "prelude-ls": "^1.2.1"
3385 | },
3386 | "engines": {
3387 | "node": ">= 0.8.0"
3388 | }
3389 | },
3390 | "node_modules/type-detect": {
3391 | "version": "4.0.8",
3392 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
3393 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
3394 | "dev": true,
3395 | "engines": {
3396 | "node": ">=4"
3397 | }
3398 | },
3399 | "node_modules/type-fest": {
3400 | "version": "0.20.2",
3401 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
3402 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
3403 | "dev": true,
3404 | "engines": {
3405 | "node": ">=10"
3406 | },
3407 | "funding": {
3408 | "url": "https://github.com/sponsors/sindresorhus"
3409 | }
3410 | },
3411 | "node_modules/ufo": {
3412 | "version": "1.3.2",
3413 | "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz",
3414 | "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==",
3415 | "dev": true
3416 | },
3417 | "node_modules/unplugin": {
3418 | "version": "1.6.0",
3419 | "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz",
3420 | "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==",
3421 | "dev": true,
3422 | "dependencies": {
3423 | "acorn": "^8.11.2",
3424 | "chokidar": "^3.5.3",
3425 | "webpack-sources": "^3.2.3",
3426 | "webpack-virtual-modules": "^0.6.1"
3427 | }
3428 | },
3429 | "node_modules/unplugin-icons": {
3430 | "version": "0.18.2",
3431 | "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-0.18.2.tgz",
3432 | "integrity": "sha512-OgZoIJHGubeJmc3KePMOy62ovtxPEJfNMlr5tU+1ZqHGpSXubg3fnqq28VPvLL0D5vKj2PRCJF9tVGbQ7vBXJQ==",
3433 | "dev": true,
3434 | "dependencies": {
3435 | "@antfu/install-pkg": "^0.3.0",
3436 | "@antfu/utils": "^0.7.6",
3437 | "@iconify/utils": "^2.1.12",
3438 | "debug": "^4.3.4",
3439 | "kolorist": "^1.8.0",
3440 | "local-pkg": "^0.5.0",
3441 | "unplugin": "^1.5.1"
3442 | },
3443 | "funding": {
3444 | "url": "https://github.com/sponsors/antfu"
3445 | },
3446 | "peerDependencies": {
3447 | "@svgr/core": ">=7.0.0",
3448 | "@svgx/core": "^1.0.1",
3449 | "@vue/compiler-sfc": "^3.0.2 || ^2.7.0",
3450 | "vue-template-compiler": "^2.6.12",
3451 | "vue-template-es2015-compiler": "^1.9.0"
3452 | },
3453 | "peerDependenciesMeta": {
3454 | "@svgr/core": {
3455 | "optional": true
3456 | },
3457 | "@svgx/core": {
3458 | "optional": true
3459 | },
3460 | "@vue/compiler-sfc": {
3461 | "optional": true
3462 | },
3463 | "vue-template-compiler": {
3464 | "optional": true
3465 | },
3466 | "vue-template-es2015-compiler": {
3467 | "optional": true
3468 | }
3469 | }
3470 | },
3471 | "node_modules/uri-js": {
3472 | "version": "4.4.1",
3473 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3474 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3475 | "dev": true,
3476 | "dependencies": {
3477 | "punycode": "^2.1.0"
3478 | }
3479 | },
3480 | "node_modules/util-deprecate": {
3481 | "version": "1.0.2",
3482 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3483 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
3484 | "dev": true
3485 | },
3486 | "node_modules/vite": {
3487 | "version": "5.1.4",
3488 | "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz",
3489 | "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==",
3490 | "dev": true,
3491 | "dependencies": {
3492 | "esbuild": "^0.19.3",
3493 | "postcss": "^8.4.35",
3494 | "rollup": "^4.2.0"
3495 | },
3496 | "bin": {
3497 | "vite": "bin/vite.js"
3498 | },
3499 | "engines": {
3500 | "node": "^18.0.0 || >=20.0.0"
3501 | },
3502 | "funding": {
3503 | "url": "https://github.com/vitejs/vite?sponsor=1"
3504 | },
3505 | "optionalDependencies": {
3506 | "fsevents": "~2.3.3"
3507 | },
3508 | "peerDependencies": {
3509 | "@types/node": "^18.0.0 || >=20.0.0",
3510 | "less": "*",
3511 | "lightningcss": "^1.21.0",
3512 | "sass": "*",
3513 | "stylus": "*",
3514 | "sugarss": "*",
3515 | "terser": "^5.4.0"
3516 | },
3517 | "peerDependenciesMeta": {
3518 | "@types/node": {
3519 | "optional": true
3520 | },
3521 | "less": {
3522 | "optional": true
3523 | },
3524 | "lightningcss": {
3525 | "optional": true
3526 | },
3527 | "sass": {
3528 | "optional": true
3529 | },
3530 | "stylus": {
3531 | "optional": true
3532 | },
3533 | "sugarss": {
3534 | "optional": true
3535 | },
3536 | "terser": {
3537 | "optional": true
3538 | }
3539 | }
3540 | },
3541 | "node_modules/vite-node": {
3542 | "version": "1.2.0",
3543 | "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.0.tgz",
3544 | "integrity": "sha512-ETnQTHeAbbOxl7/pyBck9oAPZZZo+kYnFt1uQDD+hPReOc+wCjXw4r4jHriBRuVDB5isHmPXxrfc1yJnfBERqg==",
3545 | "dev": true,
3546 | "dependencies": {
3547 | "cac": "^6.7.14",
3548 | "debug": "^4.3.4",
3549 | "pathe": "^1.1.1",
3550 | "picocolors": "^1.0.0",
3551 | "vite": "^5.0.0"
3552 | },
3553 | "bin": {
3554 | "vite-node": "vite-node.mjs"
3555 | },
3556 | "engines": {
3557 | "node": "^18.0.0 || >=20.0.0"
3558 | },
3559 | "funding": {
3560 | "url": "https://opencollective.com/vitest"
3561 | }
3562 | },
3563 | "node_modules/vite/node_modules/fsevents": {
3564 | "version": "2.3.3",
3565 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
3566 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
3567 | "dev": true,
3568 | "hasInstallScript": true,
3569 | "optional": true,
3570 | "os": [
3571 | "darwin"
3572 | ],
3573 | "engines": {
3574 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
3575 | }
3576 | },
3577 | "node_modules/vitefu": {
3578 | "version": "0.2.5",
3579 | "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz",
3580 | "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==",
3581 | "dev": true,
3582 | "peerDependencies": {
3583 | "vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
3584 | },
3585 | "peerDependenciesMeta": {
3586 | "vite": {
3587 | "optional": true
3588 | }
3589 | }
3590 | },
3591 | "node_modules/vitest": {
3592 | "version": "1.2.0",
3593 | "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.0.tgz",
3594 | "integrity": "sha512-Ixs5m7BjqvLHXcibkzKRQUvD/XLw0E3rvqaCMlrm/0LMsA0309ZqYvTlPzkhh81VlEyVZXFlwWnkhb6/UMtcaQ==",
3595 | "dev": true,
3596 | "dependencies": {
3597 | "@vitest/expect": "1.2.0",
3598 | "@vitest/runner": "1.2.0",
3599 | "@vitest/snapshot": "1.2.0",
3600 | "@vitest/spy": "1.2.0",
3601 | "@vitest/utils": "1.2.0",
3602 | "acorn-walk": "^8.3.1",
3603 | "cac": "^6.7.14",
3604 | "chai": "^4.3.10",
3605 | "debug": "^4.3.4",
3606 | "execa": "^8.0.1",
3607 | "local-pkg": "^0.5.0",
3608 | "magic-string": "^0.30.5",
3609 | "pathe": "^1.1.1",
3610 | "picocolors": "^1.0.0",
3611 | "std-env": "^3.5.0",
3612 | "strip-literal": "^1.3.0",
3613 | "tinybench": "^2.5.1",
3614 | "tinypool": "^0.8.1",
3615 | "vite": "^5.0.0",
3616 | "vite-node": "1.2.0",
3617 | "why-is-node-running": "^2.2.2"
3618 | },
3619 | "bin": {
3620 | "vitest": "vitest.mjs"
3621 | },
3622 | "engines": {
3623 | "node": "^18.0.0 || >=20.0.0"
3624 | },
3625 | "funding": {
3626 | "url": "https://opencollective.com/vitest"
3627 | },
3628 | "peerDependencies": {
3629 | "@edge-runtime/vm": "*",
3630 | "@types/node": "^18.0.0 || >=20.0.0",
3631 | "@vitest/browser": "^1.0.0",
3632 | "@vitest/ui": "^1.0.0",
3633 | "happy-dom": "*",
3634 | "jsdom": "*"
3635 | },
3636 | "peerDependenciesMeta": {
3637 | "@edge-runtime/vm": {
3638 | "optional": true
3639 | },
3640 | "@types/node": {
3641 | "optional": true
3642 | },
3643 | "@vitest/browser": {
3644 | "optional": true
3645 | },
3646 | "@vitest/ui": {
3647 | "optional": true
3648 | },
3649 | "happy-dom": {
3650 | "optional": true
3651 | },
3652 | "jsdom": {
3653 | "optional": true
3654 | }
3655 | }
3656 | },
3657 | "node_modules/webpack-sources": {
3658 | "version": "3.2.3",
3659 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
3660 | "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
3661 | "dev": true,
3662 | "engines": {
3663 | "node": ">=10.13.0"
3664 | }
3665 | },
3666 | "node_modules/webpack-virtual-modules": {
3667 | "version": "0.6.1",
3668 | "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz",
3669 | "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==",
3670 | "dev": true
3671 | },
3672 | "node_modules/which": {
3673 | "version": "2.0.2",
3674 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3675 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3676 | "dev": true,
3677 | "dependencies": {
3678 | "isexe": "^2.0.0"
3679 | },
3680 | "bin": {
3681 | "node-which": "bin/node-which"
3682 | },
3683 | "engines": {
3684 | "node": ">= 8"
3685 | }
3686 | },
3687 | "node_modules/why-is-node-running": {
3688 | "version": "2.2.2",
3689 | "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
3690 | "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==",
3691 | "dev": true,
3692 | "dependencies": {
3693 | "siginfo": "^2.0.0",
3694 | "stackback": "0.0.2"
3695 | },
3696 | "bin": {
3697 | "why-is-node-running": "cli.js"
3698 | },
3699 | "engines": {
3700 | "node": ">=8"
3701 | }
3702 | },
3703 | "node_modules/wrappy": {
3704 | "version": "1.0.2",
3705 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3706 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
3707 | "dev": true
3708 | },
3709 | "node_modules/yallist": {
3710 | "version": "4.0.0",
3711 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
3712 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
3713 | "dev": true
3714 | },
3715 | "node_modules/yaml": {
3716 | "version": "1.10.2",
3717 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
3718 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
3719 | "dev": true,
3720 | "engines": {
3721 | "node": ">= 6"
3722 | }
3723 | },
3724 | "node_modules/yocto-queue": {
3725 | "version": "0.1.0",
3726 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3727 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3728 | "dev": true,
3729 | "engines": {
3730 | "node": ">=10"
3731 | },
3732 | "funding": {
3733 | "url": "https://github.com/sponsors/sindresorhus"
3734 | }
3735 | }
3736 | }
3737 | }
3738 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ipc-hackathon",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "dev": "vite dev",
6 | "build": "vite build",
7 | "preview": "vite preview",
8 | "test": "npm run test:integration && npm run test:unit",
9 | "lint": "prettier --check . && eslint .",
10 | "format": "prettier --write .",
11 | "test:integration": "playwright test",
12 | "test:unit": "vitest"
13 | },
14 | "devDependencies": {
15 | "@iconify-json/healthicons": "^1.1.17",
16 | "@iconify-json/ph": "^1.1.10",
17 | "@playwright/test": "^1.28.1",
18 | "@sveltejs/adapter-auto": "^3.0.0",
19 | "@sveltejs/kit": "^2.0.0",
20 | "@sveltejs/vite-plugin-svelte": "^3.0.0",
21 | "@types/eslint": "8.56.0",
22 | "eslint": "^8.56.0",
23 | "eslint-config-prettier": "^9.1.0",
24 | "eslint-plugin-svelte": "^2.35.1",
25 | "prettier": "^3.1.1",
26 | "prettier-plugin-svelte": "^3.1.2",
27 | "sass": "^1.69.7",
28 | "svelte": "^4.2.7",
29 | "unplugin-icons": "^0.18.2",
30 | "vite": "^5.0.3",
31 | "vitest": "^1.0.0"
32 | },
33 | "type": "module",
34 | "dependencies": {
35 | "svelte-persisted-store": "^0.9.1",
36 | "svelte-simple-modal": "^1.6.1"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/playwright.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('@playwright/test').PlaywrightTestConfig} */
2 | const config = {
3 | webServer: {
4 | command: 'npm run build && npm run preview',
5 | port: 4173
6 | },
7 | testDir: 'tests',
8 | testMatch: /(.+\.)?(test|spec)\.[jt]s/
9 | };
10 |
11 | export default config;
12 |
--------------------------------------------------------------------------------
/src/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | %sveltekit.head%
9 |
10 |
11 | %sveltekit.body%
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/app.scss:
--------------------------------------------------------------------------------
1 | * {
2 | box-sizing: border-box;
3 | }
4 |
5 | h1 {
6 | font-weight: 600;
7 | }
8 |
9 | body {
10 | font-family: 'Satoshi', sans-serif;
11 | color: var(--txt);
12 | background-color: var(--bg-1);
13 | margin: 0;
14 | }
15 |
16 | button {
17 | outline: none;
18 | border: none;
19 | background: none;
20 | font: inherit;
21 | color: inherit;
22 |
23 | &:hover {
24 | cursor: pointer;
25 | }
26 | }
27 |
28 | .text-icon {
29 | display: inline-block;
30 | vertical-align: middle;
31 | line-height: 0.8;
32 | }
33 |
34 | .icon-button {
35 | @include flexCenter;
36 |
37 | padding: 1rem;
38 | color: inherit;
39 | background-color: var(--bg-2);
40 | backdrop-filter: blur(3px);
41 | border-radius: 50%;
42 | transition:
43 | background-color 0.2s ease-in-out,
44 | transform 1s ease-out;
45 |
46 | &:hover {
47 | transform: rotate(360deg);
48 | background-color: var(--bg-3);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/lib/components/Exercise.svelte:
--------------------------------------------------------------------------------
1 |
248 |
249 |
250 | respir: {exercise.name}
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
{cycle < 0 ? 0 : cycle}
259 |
262 |
{exercise.cycles}
263 |
264 |
265 |
266 |
267 |
{cycle >= -1 ? count : ''}
268 |
269 | {#if exercise.animation === 'circle'}
270 | {#each exercise.routine as step}
271 |
272 | {/each}
273 | {/if}
274 |
275 |
276 |
277 | {#if text === 'click play to start'}
278 | click
279 |
280 | to start
281 | {:else}
282 | {text}
283 | {/if}
284 |
285 |
286 |
287 |
288 |
289 |
290 |
297 |
300 |
301 |
302 |
303 |
304 |
305 |
458 |
--------------------------------------------------------------------------------
/src/lib/components/HoldTest.svelte:
--------------------------------------------------------------------------------
1 |
171 |
172 |
173 | respir: {exercise.name}
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 | best time - {formatTime($bestHold)}
183 |
184 |
187 |
188 |
189 |
190 |
191 |
{cycle < 0 ? count : formatTime(count)}
192 |
193 | {#if exercise.animation === 'circle'}
194 | {#each exercise.routine as step}
195 |
196 | {/each}
197 | {/if}
198 |
199 |
200 |
201 | {#if text === 'click play to start'}
202 | click
203 |
204 | to start
205 | {:else}
206 | {text}
207 | {/if}
208 |
209 |
210 |
211 |
212 |
213 |
214 |
221 |
224 |
225 |
226 |
227 |
228 |
229 |
352 |
--------------------------------------------------------------------------------
/src/lib/stores/exercises.js:
--------------------------------------------------------------------------------
1 | import { persisted } from 'svelte-persisted-store';
2 |
3 | export const bestHold = persisted('bestHold', 0);
4 | export const customs = persisted('customs', []);
5 | export const presets = persisted('presets', [
6 | {
7 | id: 'equal',
8 | name: 'equal breathing',
9 | description: 'helps you relax and focus',
10 | cycles: 10,
11 | animation: 'circle',
12 | routine: [
13 | {
14 | name: 'breathe in',
15 | duration: 4,
16 | type: 'in'
17 | },
18 | {
19 | name: 'breathe out',
20 | duration: 4,
21 | type: 'out'
22 | }
23 | ]
24 | },
25 | {
26 | id: '4-7-8',
27 | name: '4-7-8 breathing',
28 | description: 'promotes relaxation and better sleep',
29 | cycles: 10,
30 | animation: 'circle',
31 | routine: [
32 | {
33 | name: 'breathe in',
34 | duration: 4,
35 | type: 'in'
36 | },
37 | {
38 | name: 'hold',
39 | duration: 7,
40 | type: 'hold'
41 | },
42 | {
43 | name: 'breathe out',
44 | duration: 8,
45 | type: 'out'
46 | }
47 | ]
48 | },
49 | {
50 | id: 'box',
51 | name: 'box breathing',
52 | description: 'relieves stress and improves mood',
53 | cycles: 10,
54 | animation: 'box',
55 | routine: [
56 | {
57 | name: 'breathe in',
58 | duration: 4,
59 | type: 'in'
60 | },
61 | {
62 | name: 'hold',
63 | duration: 4,
64 | type: 'hold'
65 | },
66 | {
67 | name: 'breathe out',
68 | duration: 4,
69 | type: 'out'
70 | },
71 | {
72 | name: 'hold',
73 | duration: 4,
74 | type: 'hold'
75 | }
76 | ]
77 | }
78 | ]);
79 |
--------------------------------------------------------------------------------
/src/lib/stores/preferences.js:
--------------------------------------------------------------------------------
1 | import { persisted } from 'svelte-persisted-store';
2 |
3 | export const defaultPreferences = {
4 | darkMode: false,
5 | ambienceVolume: 0.8,
6 | speechVolume: 0.8
7 | };
8 | export const preferences = persisted('preferences', defaultPreferences);
9 |
--------------------------------------------------------------------------------
/src/routes/+layout.js:
--------------------------------------------------------------------------------
1 | export const prerender = true;
2 |
3 | export const load = ({ url }) => {
4 | const { pathname } = url;
5 |
6 | return {
7 | pathname
8 | };
9 | };
10 |
--------------------------------------------------------------------------------
/src/routes/+layout.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | {#key data.pathname}
18 |
19 |
20 |
21 | {/key}
22 |
23 |
24 | {#each Array(13) as _, i}
25 |
26 | {/each}
27 |
28 |
29 |
30 |
31 |
152 |
--------------------------------------------------------------------------------
/src/routes/+page.svelte:
--------------------------------------------------------------------------------
1 |
73 |
74 |
75 | respir
76 |
77 |
78 |
79 |
80 | {#if showCycles}
81 |
104 | {/if}
105 |
106 |
107 |
108 |
109 |
respir
110 |
breathing exercises to help you relax, focus, or sleep.
111 |
112 |
113 |
121 |
122 |
123 |
132 |
133 | exercises
134 |
159 |
160 | custom exercises
161 |
184 |
185 | create or import custom exercise
186 |
187 |
188 |
189 |
190 |
387 |
--------------------------------------------------------------------------------
/src/routes/[slug]/+page.js:
--------------------------------------------------------------------------------
1 | import { presets } from '$lib/stores/exercises.js';
2 | import { get } from 'svelte/store';
3 | import { error } from '@sveltejs/kit';
4 |
5 | export const ssr = false;
6 | export const prerender = false;
7 |
8 | export async function load({ params }) {
9 | const { slug } = params;
10 | const presetList = get(presets);
11 | const exercise = presetList.find((preset) => preset.id === slug);
12 |
13 | if (exercise) {
14 | return { exercise };
15 | }
16 |
17 | throw error(404, 'Exercise not found');
18 | }
19 |
--------------------------------------------------------------------------------
/src/routes/[slug]/+page.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | respir: {data.name}
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/routes/about/+page.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 | respir: about
8 |
9 |
10 |
11 |
12 |
13 |
23 |
24 |
25 | respir is designed to help people relax and calm down from stress in their lives through
26 | guided breathing exercises.
27 |
28 |
29 | created by shibest, refact0r, and ben-6 for the 2024 Interlake Programming Club Winter
30 | Hackathon.
31 |
32 |
33 |
34 |
35 |
36 |
75 |
--------------------------------------------------------------------------------
/src/routes/create/+page.svelte:
--------------------------------------------------------------------------------
1 |
83 |
84 |
85 | respir: create
86 |
87 |
88 |
89 |
90 |
91 |
97 |
111 |
112 |
167 |
168 |
169 |
170 |
252 |
--------------------------------------------------------------------------------
/src/routes/custom/[slug]/+page.js:
--------------------------------------------------------------------------------
1 | import { customs } from '$lib/stores/exercises.js';
2 | import { get } from 'svelte/store';
3 | import { error } from '@sveltejs/kit';
4 |
5 | export const ssr = false;
6 | export const prerender = false;
7 |
8 | export async function load({ params }) {
9 | const { slug } = params;
10 | const customsList = get(customs);
11 | const exercise = customsList[slug];
12 |
13 | if (exercise) {
14 | return { exercise };
15 | }
16 |
17 | throw error(404, 'Exercise not found');
18 | }
19 |
--------------------------------------------------------------------------------
/src/routes/custom/[slug]/+page.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | respir: {data.name}
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/routes/edit/[slug]/+page.js:
--------------------------------------------------------------------------------
1 | import { customs } from '$lib/stores/exercises.js';
2 | import { get } from 'svelte/store';
3 | import { error } from '@sveltejs/kit';
4 |
5 | export const ssr = false;
6 | export const prerender = false;
7 |
8 | export async function load({ params }) {
9 | const { slug } = params;
10 | const customsList = get(customs);
11 |
12 | if (parseInt(slug) < customsList.length) {
13 | return { index: parseInt(slug) };
14 | }
15 |
16 | throw error(404, 'Exercise not found');
17 | }
18 |
--------------------------------------------------------------------------------
/src/routes/edit/[slug]/+page.svelte:
--------------------------------------------------------------------------------
1 |
100 |
101 |
102 | respir: edit
103 |
104 |
105 |
106 |
107 |
108 |
114 |
135 |
136 |
194 |
195 |
196 |
197 |
279 |
--------------------------------------------------------------------------------
/src/routes/hold-test/+page.js:
--------------------------------------------------------------------------------
1 | export const ssr = false;
2 | export const prerender = false;
3 |
--------------------------------------------------------------------------------
/src/routes/hold-test/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | respir: breath hold test
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/routes/settings/+page.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | respir: settings
9 |
10 |
11 |
12 |
13 |
63 |
64 |
65 |
202 |
--------------------------------------------------------------------------------
/src/variables.scss:
--------------------------------------------------------------------------------
1 | @mixin flexCenter {
2 | display: flex;
3 | justify-content: center;
4 | align-items: center;
5 | }
6 |
--------------------------------------------------------------------------------
/static/audio/breathe-in.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refact0r/respir/c8a67fc80d7852e54b102492efd0a5e85af9d2dd/static/audio/breathe-in.wav
--------------------------------------------------------------------------------
/static/audio/breathe-out.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refact0r/respir/c8a67fc80d7852e54b102492efd0a5e85af9d2dd/static/audio/breathe-out.wav
--------------------------------------------------------------------------------
/static/audio/forest.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refact0r/respir/c8a67fc80d7852e54b102492efd0a5e85af9d2dd/static/audio/forest.mp3
--------------------------------------------------------------------------------
/static/audio/hold.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refact0r/respir/c8a67fc80d7852e54b102492efd0a5e85af9d2dd/static/audio/hold.wav
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refact0r/respir/c8a67fc80d7852e54b102492efd0a5e85af9d2dd/static/favicon.png
--------------------------------------------------------------------------------
/static/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/static/theme/dark.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --bg-0: oklch(22% 0.02 180);
3 | --bg-1: oklch(20% 0.02 180);
4 | --bg-2: oklch(80% 0.05 180 / 0.1);
5 | --bg-3: oklch(80% 0.05 180 / 0.2);
6 | --bg-4: oklch(80% 0.05 180 / 0.3);
7 | --txt: oklch(80% 0.05 180);
8 | }
9 |
--------------------------------------------------------------------------------
/static/theme/light.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --bg-0: oklch(93% 0.05 180);
3 | --bg-1: oklch(90% 0.05 180);
4 | --bg-2: oklch(30% 0.05 180 / 0.1);
5 | --bg-3: oklch(30% 0.05 180 / 0.2);
6 | --bg-4: oklch(30% 0.05 180 / 0.3);
7 | --txt: oklch(30% 0.05 180);
8 | }
9 |
--------------------------------------------------------------------------------
/svelte.config.js:
--------------------------------------------------------------------------------
1 | import adapter from '@sveltejs/adapter-auto';
2 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
3 |
4 | /** @type {import('@sveltejs/kit').Config} */
5 | const config = {
6 | preprocess: [vitePreprocess()],
7 | kit: {
8 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
9 | // If your environment is not supported or you settled on a specific environment, switch out the adapter.
10 | // See https://kit.svelte.dev/docs/adapters for more information about adapters.
11 | adapter: adapter()
12 | }
13 | };
14 |
15 | export default config;
16 |
--------------------------------------------------------------------------------
/tests/test.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from '@playwright/test';
2 |
3 | test('about page has expected h1', async ({ page }) => {
4 | await page.goto('/about');
5 | await expect(page.getByRole('heading', { name: 'About this app' })).toBeVisible();
6 | });
7 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { sveltekit } from '@sveltejs/kit/vite';
2 | import { defineConfig } from 'vitest/config';
3 | import Icons from 'unplugin-icons/vite';
4 |
5 | export default defineConfig({
6 | plugins: [
7 | sveltekit(),
8 | Icons({
9 | compiler: 'svelte'
10 | })
11 | ],
12 | test: {
13 | include: ['src/**/*.{test,spec}.{js,ts}']
14 | },
15 | css: {
16 | preprocessorOptions: {
17 | scss: {
18 | additionalData: '@use "src/variables" as *;'
19 | }
20 | }
21 | }
22 | });
23 |
--------------------------------------------------------------------------------