fohake commited on
Commit
78dd0bb
·
verified ·
1 Parent(s): 41183fb

Upload 14 files

Browse files
index.html ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Certificate Generator</title>
7
+ </head>
8
+ <body>
9
+ <div id="app"></div>
10
+ <script type="module" src="/src/main.js"></script>
11
+ </body>
12
+ </html>
package-lock.json ADDED
@@ -0,0 +1,2502 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "certificate-generator",
3
+ "version": "0.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "certificate-generator",
9
+ "version": "0.0.0",
10
+ "dependencies": {
11
+ "html2canvas": "^1.4.1",
12
+ "jspdf": "^2.5.1"
13
+ },
14
+ "devDependencies": {
15
+ "autoprefixer": "^10.4.17",
16
+ "postcss": "^8.4.35",
17
+ "tailwindcss": "^3.4.1",
18
+ "vite": "^5.1.0"
19
+ }
20
+ },
21
+ "node_modules/@alloc/quick-lru": {
22
+ "version": "5.2.0",
23
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
24
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
25
+ "dev": true,
26
+ "engines": {
27
+ "node": ">=10"
28
+ },
29
+ "funding": {
30
+ "url": "https://github.com/sponsors/sindresorhus"
31
+ }
32
+ },
33
+ "node_modules/@babel/runtime": {
34
+ "version": "7.26.0",
35
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
36
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
37
+ "dependencies": {
38
+ "regenerator-runtime": "^0.14.0"
39
+ },
40
+ "engines": {
41
+ "node": ">=6.9.0"
42
+ }
43
+ },
44
+ "node_modules/@esbuild/aix-ppc64": {
45
+ "version": "0.21.5",
46
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
47
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
48
+ "cpu": [
49
+ "ppc64"
50
+ ],
51
+ "dev": true,
52
+ "optional": true,
53
+ "os": [
54
+ "aix"
55
+ ],
56
+ "engines": {
57
+ "node": ">=12"
58
+ }
59
+ },
60
+ "node_modules/@esbuild/android-arm": {
61
+ "version": "0.21.5",
62
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
63
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
64
+ "cpu": [
65
+ "arm"
66
+ ],
67
+ "dev": true,
68
+ "optional": true,
69
+ "os": [
70
+ "android"
71
+ ],
72
+ "engines": {
73
+ "node": ">=12"
74
+ }
75
+ },
76
+ "node_modules/@esbuild/android-arm64": {
77
+ "version": "0.21.5",
78
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
79
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
80
+ "cpu": [
81
+ "arm64"
82
+ ],
83
+ "dev": true,
84
+ "optional": true,
85
+ "os": [
86
+ "android"
87
+ ],
88
+ "engines": {
89
+ "node": ">=12"
90
+ }
91
+ },
92
+ "node_modules/@esbuild/android-x64": {
93
+ "version": "0.21.5",
94
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
95
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
96
+ "cpu": [
97
+ "x64"
98
+ ],
99
+ "dev": true,
100
+ "optional": true,
101
+ "os": [
102
+ "android"
103
+ ],
104
+ "engines": {
105
+ "node": ">=12"
106
+ }
107
+ },
108
+ "node_modules/@esbuild/darwin-arm64": {
109
+ "version": "0.21.5",
110
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
111
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
112
+ "cpu": [
113
+ "arm64"
114
+ ],
115
+ "dev": true,
116
+ "optional": true,
117
+ "os": [
118
+ "darwin"
119
+ ],
120
+ "engines": {
121
+ "node": ">=12"
122
+ }
123
+ },
124
+ "node_modules/@esbuild/darwin-x64": {
125
+ "version": "0.21.5",
126
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
127
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
128
+ "cpu": [
129
+ "x64"
130
+ ],
131
+ "dev": true,
132
+ "optional": true,
133
+ "os": [
134
+ "darwin"
135
+ ],
136
+ "engines": {
137
+ "node": ">=12"
138
+ }
139
+ },
140
+ "node_modules/@esbuild/freebsd-arm64": {
141
+ "version": "0.21.5",
142
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
143
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
144
+ "cpu": [
145
+ "arm64"
146
+ ],
147
+ "dev": true,
148
+ "optional": true,
149
+ "os": [
150
+ "freebsd"
151
+ ],
152
+ "engines": {
153
+ "node": ">=12"
154
+ }
155
+ },
156
+ "node_modules/@esbuild/freebsd-x64": {
157
+ "version": "0.21.5",
158
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
159
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
160
+ "cpu": [
161
+ "x64"
162
+ ],
163
+ "dev": true,
164
+ "optional": true,
165
+ "os": [
166
+ "freebsd"
167
+ ],
168
+ "engines": {
169
+ "node": ">=12"
170
+ }
171
+ },
172
+ "node_modules/@esbuild/linux-arm": {
173
+ "version": "0.21.5",
174
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
175
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
176
+ "cpu": [
177
+ "arm"
178
+ ],
179
+ "dev": true,
180
+ "optional": true,
181
+ "os": [
182
+ "linux"
183
+ ],
184
+ "engines": {
185
+ "node": ">=12"
186
+ }
187
+ },
188
+ "node_modules/@esbuild/linux-arm64": {
189
+ "version": "0.21.5",
190
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
191
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
192
+ "cpu": [
193
+ "arm64"
194
+ ],
195
+ "dev": true,
196
+ "optional": true,
197
+ "os": [
198
+ "linux"
199
+ ],
200
+ "engines": {
201
+ "node": ">=12"
202
+ }
203
+ },
204
+ "node_modules/@esbuild/linux-ia32": {
205
+ "version": "0.21.5",
206
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
207
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
208
+ "cpu": [
209
+ "ia32"
210
+ ],
211
+ "dev": true,
212
+ "optional": true,
213
+ "os": [
214
+ "linux"
215
+ ],
216
+ "engines": {
217
+ "node": ">=12"
218
+ }
219
+ },
220
+ "node_modules/@esbuild/linux-loong64": {
221
+ "version": "0.21.5",
222
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
223
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
224
+ "cpu": [
225
+ "loong64"
226
+ ],
227
+ "dev": true,
228
+ "optional": true,
229
+ "os": [
230
+ "linux"
231
+ ],
232
+ "engines": {
233
+ "node": ">=12"
234
+ }
235
+ },
236
+ "node_modules/@esbuild/linux-mips64el": {
237
+ "version": "0.21.5",
238
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
239
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
240
+ "cpu": [
241
+ "mips64el"
242
+ ],
243
+ "dev": true,
244
+ "optional": true,
245
+ "os": [
246
+ "linux"
247
+ ],
248
+ "engines": {
249
+ "node": ">=12"
250
+ }
251
+ },
252
+ "node_modules/@esbuild/linux-ppc64": {
253
+ "version": "0.21.5",
254
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
255
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
256
+ "cpu": [
257
+ "ppc64"
258
+ ],
259
+ "dev": true,
260
+ "optional": true,
261
+ "os": [
262
+ "linux"
263
+ ],
264
+ "engines": {
265
+ "node": ">=12"
266
+ }
267
+ },
268
+ "node_modules/@esbuild/linux-riscv64": {
269
+ "version": "0.21.5",
270
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
271
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
272
+ "cpu": [
273
+ "riscv64"
274
+ ],
275
+ "dev": true,
276
+ "optional": true,
277
+ "os": [
278
+ "linux"
279
+ ],
280
+ "engines": {
281
+ "node": ">=12"
282
+ }
283
+ },
284
+ "node_modules/@esbuild/linux-s390x": {
285
+ "version": "0.21.5",
286
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
287
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
288
+ "cpu": [
289
+ "s390x"
290
+ ],
291
+ "dev": true,
292
+ "optional": true,
293
+ "os": [
294
+ "linux"
295
+ ],
296
+ "engines": {
297
+ "node": ">=12"
298
+ }
299
+ },
300
+ "node_modules/@esbuild/linux-x64": {
301
+ "version": "0.21.5",
302
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
303
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
304
+ "cpu": [
305
+ "x64"
306
+ ],
307
+ "dev": true,
308
+ "optional": true,
309
+ "os": [
310
+ "linux"
311
+ ],
312
+ "engines": {
313
+ "node": ">=12"
314
+ }
315
+ },
316
+ "node_modules/@esbuild/netbsd-x64": {
317
+ "version": "0.21.5",
318
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
319
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
320
+ "cpu": [
321
+ "x64"
322
+ ],
323
+ "dev": true,
324
+ "optional": true,
325
+ "os": [
326
+ "netbsd"
327
+ ],
328
+ "engines": {
329
+ "node": ">=12"
330
+ }
331
+ },
332
+ "node_modules/@esbuild/openbsd-x64": {
333
+ "version": "0.21.5",
334
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
335
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
336
+ "cpu": [
337
+ "x64"
338
+ ],
339
+ "dev": true,
340
+ "optional": true,
341
+ "os": [
342
+ "openbsd"
343
+ ],
344
+ "engines": {
345
+ "node": ">=12"
346
+ }
347
+ },
348
+ "node_modules/@esbuild/sunos-x64": {
349
+ "version": "0.21.5",
350
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
351
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
352
+ "cpu": [
353
+ "x64"
354
+ ],
355
+ "dev": true,
356
+ "optional": true,
357
+ "os": [
358
+ "sunos"
359
+ ],
360
+ "engines": {
361
+ "node": ">=12"
362
+ }
363
+ },
364
+ "node_modules/@esbuild/win32-arm64": {
365
+ "version": "0.21.5",
366
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
367
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
368
+ "cpu": [
369
+ "arm64"
370
+ ],
371
+ "dev": true,
372
+ "optional": true,
373
+ "os": [
374
+ "win32"
375
+ ],
376
+ "engines": {
377
+ "node": ">=12"
378
+ }
379
+ },
380
+ "node_modules/@esbuild/win32-ia32": {
381
+ "version": "0.21.5",
382
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
383
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
384
+ "cpu": [
385
+ "ia32"
386
+ ],
387
+ "dev": true,
388
+ "optional": true,
389
+ "os": [
390
+ "win32"
391
+ ],
392
+ "engines": {
393
+ "node": ">=12"
394
+ }
395
+ },
396
+ "node_modules/@esbuild/win32-x64": {
397
+ "version": "0.21.5",
398
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
399
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
400
+ "cpu": [
401
+ "x64"
402
+ ],
403
+ "dev": true,
404
+ "optional": true,
405
+ "os": [
406
+ "win32"
407
+ ],
408
+ "engines": {
409
+ "node": ">=12"
410
+ }
411
+ },
412
+ "node_modules/@isaacs/cliui": {
413
+ "version": "8.0.2",
414
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
415
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
416
+ "dev": true,
417
+ "dependencies": {
418
+ "string-width": "^5.1.2",
419
+ "string-width-cjs": "npm:string-width@^4.2.0",
420
+ "strip-ansi": "^7.0.1",
421
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
422
+ "wrap-ansi": "^8.1.0",
423
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
424
+ },
425
+ "engines": {
426
+ "node": ">=12"
427
+ }
428
+ },
429
+ "node_modules/@jridgewell/gen-mapping": {
430
+ "version": "0.3.8",
431
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
432
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
433
+ "dev": true,
434
+ "dependencies": {
435
+ "@jridgewell/set-array": "^1.2.1",
436
+ "@jridgewell/sourcemap-codec": "^1.4.10",
437
+ "@jridgewell/trace-mapping": "^0.3.24"
438
+ },
439
+ "engines": {
440
+ "node": ">=6.0.0"
441
+ }
442
+ },
443
+ "node_modules/@jridgewell/resolve-uri": {
444
+ "version": "3.1.2",
445
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
446
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
447
+ "dev": true,
448
+ "engines": {
449
+ "node": ">=6.0.0"
450
+ }
451
+ },
452
+ "node_modules/@jridgewell/set-array": {
453
+ "version": "1.2.1",
454
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
455
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
456
+ "dev": true,
457
+ "engines": {
458
+ "node": ">=6.0.0"
459
+ }
460
+ },
461
+ "node_modules/@jridgewell/sourcemap-codec": {
462
+ "version": "1.5.0",
463
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
464
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
465
+ "dev": true
466
+ },
467
+ "node_modules/@jridgewell/trace-mapping": {
468
+ "version": "0.3.25",
469
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
470
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
471
+ "dev": true,
472
+ "dependencies": {
473
+ "@jridgewell/resolve-uri": "^3.1.0",
474
+ "@jridgewell/sourcemap-codec": "^1.4.14"
475
+ }
476
+ },
477
+ "node_modules/@nodelib/fs.scandir": {
478
+ "version": "2.1.5",
479
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
480
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
481
+ "dev": true,
482
+ "dependencies": {
483
+ "@nodelib/fs.stat": "2.0.5",
484
+ "run-parallel": "^1.1.9"
485
+ },
486
+ "engines": {
487
+ "node": ">= 8"
488
+ }
489
+ },
490
+ "node_modules/@nodelib/fs.stat": {
491
+ "version": "2.0.5",
492
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
493
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
494
+ "dev": true,
495
+ "engines": {
496
+ "node": ">= 8"
497
+ }
498
+ },
499
+ "node_modules/@nodelib/fs.walk": {
500
+ "version": "1.2.8",
501
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
502
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
503
+ "dev": true,
504
+ "dependencies": {
505
+ "@nodelib/fs.scandir": "2.1.5",
506
+ "fastq": "^1.6.0"
507
+ },
508
+ "engines": {
509
+ "node": ">= 8"
510
+ }
511
+ },
512
+ "node_modules/@pkgjs/parseargs": {
513
+ "version": "0.11.0",
514
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
515
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
516
+ "dev": true,
517
+ "optional": true,
518
+ "engines": {
519
+ "node": ">=14"
520
+ }
521
+ },
522
+ "node_modules/@rollup/rollup-android-arm-eabi": {
523
+ "version": "4.29.1",
524
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz",
525
+ "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==",
526
+ "cpu": [
527
+ "arm"
528
+ ],
529
+ "dev": true,
530
+ "optional": true,
531
+ "os": [
532
+ "android"
533
+ ]
534
+ },
535
+ "node_modules/@rollup/rollup-android-arm64": {
536
+ "version": "4.29.1",
537
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz",
538
+ "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==",
539
+ "cpu": [
540
+ "arm64"
541
+ ],
542
+ "dev": true,
543
+ "optional": true,
544
+ "os": [
545
+ "android"
546
+ ]
547
+ },
548
+ "node_modules/@rollup/rollup-darwin-arm64": {
549
+ "version": "4.29.1",
550
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz",
551
+ "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==",
552
+ "cpu": [
553
+ "arm64"
554
+ ],
555
+ "dev": true,
556
+ "optional": true,
557
+ "os": [
558
+ "darwin"
559
+ ]
560
+ },
561
+ "node_modules/@rollup/rollup-darwin-x64": {
562
+ "version": "4.29.1",
563
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz",
564
+ "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==",
565
+ "cpu": [
566
+ "x64"
567
+ ],
568
+ "dev": true,
569
+ "optional": true,
570
+ "os": [
571
+ "darwin"
572
+ ]
573
+ },
574
+ "node_modules/@rollup/rollup-freebsd-arm64": {
575
+ "version": "4.29.1",
576
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz",
577
+ "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==",
578
+ "cpu": [
579
+ "arm64"
580
+ ],
581
+ "dev": true,
582
+ "optional": true,
583
+ "os": [
584
+ "freebsd"
585
+ ]
586
+ },
587
+ "node_modules/@rollup/rollup-freebsd-x64": {
588
+ "version": "4.29.1",
589
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz",
590
+ "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==",
591
+ "cpu": [
592
+ "x64"
593
+ ],
594
+ "dev": true,
595
+ "optional": true,
596
+ "os": [
597
+ "freebsd"
598
+ ]
599
+ },
600
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
601
+ "version": "4.29.1",
602
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz",
603
+ "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==",
604
+ "cpu": [
605
+ "arm"
606
+ ],
607
+ "dev": true,
608
+ "optional": true,
609
+ "os": [
610
+ "linux"
611
+ ]
612
+ },
613
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
614
+ "version": "4.29.1",
615
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz",
616
+ "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==",
617
+ "cpu": [
618
+ "arm"
619
+ ],
620
+ "dev": true,
621
+ "optional": true,
622
+ "os": [
623
+ "linux"
624
+ ]
625
+ },
626
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
627
+ "version": "4.29.1",
628
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz",
629
+ "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==",
630
+ "cpu": [
631
+ "arm64"
632
+ ],
633
+ "dev": true,
634
+ "optional": true,
635
+ "os": [
636
+ "linux"
637
+ ]
638
+ },
639
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
640
+ "version": "4.29.1",
641
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz",
642
+ "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==",
643
+ "cpu": [
644
+ "arm64"
645
+ ],
646
+ "dev": true,
647
+ "optional": true,
648
+ "os": [
649
+ "linux"
650
+ ]
651
+ },
652
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
653
+ "version": "4.29.1",
654
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz",
655
+ "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==",
656
+ "cpu": [
657
+ "loong64"
658
+ ],
659
+ "dev": true,
660
+ "optional": true,
661
+ "os": [
662
+ "linux"
663
+ ]
664
+ },
665
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
666
+ "version": "4.29.1",
667
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz",
668
+ "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==",
669
+ "cpu": [
670
+ "ppc64"
671
+ ],
672
+ "dev": true,
673
+ "optional": true,
674
+ "os": [
675
+ "linux"
676
+ ]
677
+ },
678
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
679
+ "version": "4.29.1",
680
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz",
681
+ "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==",
682
+ "cpu": [
683
+ "riscv64"
684
+ ],
685
+ "dev": true,
686
+ "optional": true,
687
+ "os": [
688
+ "linux"
689
+ ]
690
+ },
691
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
692
+ "version": "4.29.1",
693
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz",
694
+ "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==",
695
+ "cpu": [
696
+ "s390x"
697
+ ],
698
+ "dev": true,
699
+ "optional": true,
700
+ "os": [
701
+ "linux"
702
+ ]
703
+ },
704
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
705
+ "version": "4.29.1",
706
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz",
707
+ "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==",
708
+ "cpu": [
709
+ "x64"
710
+ ],
711
+ "dev": true,
712
+ "optional": true,
713
+ "os": [
714
+ "linux"
715
+ ]
716
+ },
717
+ "node_modules/@rollup/rollup-linux-x64-musl": {
718
+ "version": "4.29.1",
719
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz",
720
+ "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==",
721
+ "cpu": [
722
+ "x64"
723
+ ],
724
+ "dev": true,
725
+ "optional": true,
726
+ "os": [
727
+ "linux"
728
+ ]
729
+ },
730
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
731
+ "version": "4.29.1",
732
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz",
733
+ "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==",
734
+ "cpu": [
735
+ "arm64"
736
+ ],
737
+ "dev": true,
738
+ "optional": true,
739
+ "os": [
740
+ "win32"
741
+ ]
742
+ },
743
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
744
+ "version": "4.29.1",
745
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz",
746
+ "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==",
747
+ "cpu": [
748
+ "ia32"
749
+ ],
750
+ "dev": true,
751
+ "optional": true,
752
+ "os": [
753
+ "win32"
754
+ ]
755
+ },
756
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
757
+ "version": "4.29.1",
758
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz",
759
+ "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==",
760
+ "cpu": [
761
+ "x64"
762
+ ],
763
+ "dev": true,
764
+ "optional": true,
765
+ "os": [
766
+ "win32"
767
+ ]
768
+ },
769
+ "node_modules/@types/estree": {
770
+ "version": "1.0.6",
771
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
772
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
773
+ "dev": true
774
+ },
775
+ "node_modules/@types/raf": {
776
+ "version": "3.4.3",
777
+ "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.3.tgz",
778
+ "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==",
779
+ "optional": true
780
+ },
781
+ "node_modules/ansi-regex": {
782
+ "version": "6.1.0",
783
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
784
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
785
+ "dev": true,
786
+ "engines": {
787
+ "node": ">=12"
788
+ },
789
+ "funding": {
790
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
791
+ }
792
+ },
793
+ "node_modules/ansi-styles": {
794
+ "version": "6.2.1",
795
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
796
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
797
+ "dev": true,
798
+ "engines": {
799
+ "node": ">=12"
800
+ },
801
+ "funding": {
802
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
803
+ }
804
+ },
805
+ "node_modules/any-promise": {
806
+ "version": "1.3.0",
807
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
808
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
809
+ "dev": true
810
+ },
811
+ "node_modules/anymatch": {
812
+ "version": "3.1.3",
813
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
814
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
815
+ "dev": true,
816
+ "dependencies": {
817
+ "normalize-path": "^3.0.0",
818
+ "picomatch": "^2.0.4"
819
+ },
820
+ "engines": {
821
+ "node": ">= 8"
822
+ }
823
+ },
824
+ "node_modules/arg": {
825
+ "version": "5.0.2",
826
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
827
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
828
+ "dev": true
829
+ },
830
+ "node_modules/atob": {
831
+ "version": "2.1.2",
832
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
833
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
834
+ "bin": {
835
+ "atob": "bin/atob.js"
836
+ },
837
+ "engines": {
838
+ "node": ">= 4.5.0"
839
+ }
840
+ },
841
+ "node_modules/autoprefixer": {
842
+ "version": "10.4.20",
843
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
844
+ "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
845
+ "dev": true,
846
+ "funding": [
847
+ {
848
+ "type": "opencollective",
849
+ "url": "https://opencollective.com/postcss/"
850
+ },
851
+ {
852
+ "type": "tidelift",
853
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
854
+ },
855
+ {
856
+ "type": "github",
857
+ "url": "https://github.com/sponsors/ai"
858
+ }
859
+ ],
860
+ "dependencies": {
861
+ "browserslist": "^4.23.3",
862
+ "caniuse-lite": "^1.0.30001646",
863
+ "fraction.js": "^4.3.7",
864
+ "normalize-range": "^0.1.2",
865
+ "picocolors": "^1.0.1",
866
+ "postcss-value-parser": "^4.2.0"
867
+ },
868
+ "bin": {
869
+ "autoprefixer": "bin/autoprefixer"
870
+ },
871
+ "engines": {
872
+ "node": "^10 || ^12 || >=14"
873
+ },
874
+ "peerDependencies": {
875
+ "postcss": "^8.1.0"
876
+ }
877
+ },
878
+ "node_modules/balanced-match": {
879
+ "version": "1.0.2",
880
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
881
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
882
+ "dev": true
883
+ },
884
+ "node_modules/base64-arraybuffer": {
885
+ "version": "1.0.2",
886
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
887
+ "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==",
888
+ "engines": {
889
+ "node": ">= 0.6.0"
890
+ }
891
+ },
892
+ "node_modules/binary-extensions": {
893
+ "version": "2.3.0",
894
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
895
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
896
+ "dev": true,
897
+ "engines": {
898
+ "node": ">=8"
899
+ },
900
+ "funding": {
901
+ "url": "https://github.com/sponsors/sindresorhus"
902
+ }
903
+ },
904
+ "node_modules/brace-expansion": {
905
+ "version": "2.0.1",
906
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
907
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
908
+ "dev": true,
909
+ "dependencies": {
910
+ "balanced-match": "^1.0.0"
911
+ }
912
+ },
913
+ "node_modules/braces": {
914
+ "version": "3.0.3",
915
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
916
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
917
+ "dev": true,
918
+ "dependencies": {
919
+ "fill-range": "^7.1.1"
920
+ },
921
+ "engines": {
922
+ "node": ">=8"
923
+ }
924
+ },
925
+ "node_modules/browserslist": {
926
+ "version": "4.24.3",
927
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz",
928
+ "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==",
929
+ "dev": true,
930
+ "funding": [
931
+ {
932
+ "type": "opencollective",
933
+ "url": "https://opencollective.com/browserslist"
934
+ },
935
+ {
936
+ "type": "tidelift",
937
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
938
+ },
939
+ {
940
+ "type": "github",
941
+ "url": "https://github.com/sponsors/ai"
942
+ }
943
+ ],
944
+ "dependencies": {
945
+ "caniuse-lite": "^1.0.30001688",
946
+ "electron-to-chromium": "^1.5.73",
947
+ "node-releases": "^2.0.19",
948
+ "update-browserslist-db": "^1.1.1"
949
+ },
950
+ "bin": {
951
+ "browserslist": "cli.js"
952
+ },
953
+ "engines": {
954
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
955
+ }
956
+ },
957
+ "node_modules/btoa": {
958
+ "version": "1.2.1",
959
+ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
960
+ "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
961
+ "bin": {
962
+ "btoa": "bin/btoa.js"
963
+ },
964
+ "engines": {
965
+ "node": ">= 0.4.0"
966
+ }
967
+ },
968
+ "node_modules/camelcase-css": {
969
+ "version": "2.0.1",
970
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
971
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
972
+ "dev": true,
973
+ "engines": {
974
+ "node": ">= 6"
975
+ }
976
+ },
977
+ "node_modules/caniuse-lite": {
978
+ "version": "1.0.30001690",
979
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz",
980
+ "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==",
981
+ "dev": true,
982
+ "funding": [
983
+ {
984
+ "type": "opencollective",
985
+ "url": "https://opencollective.com/browserslist"
986
+ },
987
+ {
988
+ "type": "tidelift",
989
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
990
+ },
991
+ {
992
+ "type": "github",
993
+ "url": "https://github.com/sponsors/ai"
994
+ }
995
+ ]
996
+ },
997
+ "node_modules/canvg": {
998
+ "version": "3.0.10",
999
+ "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.10.tgz",
1000
+ "integrity": "sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==",
1001
+ "optional": true,
1002
+ "dependencies": {
1003
+ "@babel/runtime": "^7.12.5",
1004
+ "@types/raf": "^3.4.0",
1005
+ "core-js": "^3.8.3",
1006
+ "raf": "^3.4.1",
1007
+ "regenerator-runtime": "^0.13.7",
1008
+ "rgbcolor": "^1.0.1",
1009
+ "stackblur-canvas": "^2.0.0",
1010
+ "svg-pathdata": "^6.0.3"
1011
+ },
1012
+ "engines": {
1013
+ "node": ">=10.0.0"
1014
+ }
1015
+ },
1016
+ "node_modules/canvg/node_modules/regenerator-runtime": {
1017
+ "version": "0.13.11",
1018
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
1019
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
1020
+ "optional": true
1021
+ },
1022
+ "node_modules/chokidar": {
1023
+ "version": "3.6.0",
1024
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
1025
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
1026
+ "dev": true,
1027
+ "dependencies": {
1028
+ "anymatch": "~3.1.2",
1029
+ "braces": "~3.0.2",
1030
+ "glob-parent": "~5.1.2",
1031
+ "is-binary-path": "~2.1.0",
1032
+ "is-glob": "~4.0.1",
1033
+ "normalize-path": "~3.0.0",
1034
+ "readdirp": "~3.6.0"
1035
+ },
1036
+ "engines": {
1037
+ "node": ">= 8.10.0"
1038
+ },
1039
+ "funding": {
1040
+ "url": "https://paulmillr.com/funding/"
1041
+ },
1042
+ "optionalDependencies": {
1043
+ "fsevents": "~2.3.2"
1044
+ }
1045
+ },
1046
+ "node_modules/chokidar/node_modules/glob-parent": {
1047
+ "version": "5.1.2",
1048
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1049
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1050
+ "dev": true,
1051
+ "dependencies": {
1052
+ "is-glob": "^4.0.1"
1053
+ },
1054
+ "engines": {
1055
+ "node": ">= 6"
1056
+ }
1057
+ },
1058
+ "node_modules/color-convert": {
1059
+ "version": "2.0.1",
1060
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1061
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1062
+ "dev": true,
1063
+ "dependencies": {
1064
+ "color-name": "~1.1.4"
1065
+ },
1066
+ "engines": {
1067
+ "node": ">=7.0.0"
1068
+ }
1069
+ },
1070
+ "node_modules/color-name": {
1071
+ "version": "1.1.4",
1072
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1073
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1074
+ "dev": true
1075
+ },
1076
+ "node_modules/commander": {
1077
+ "version": "4.1.1",
1078
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
1079
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
1080
+ "dev": true,
1081
+ "engines": {
1082
+ "node": ">= 6"
1083
+ }
1084
+ },
1085
+ "node_modules/core-js": {
1086
+ "version": "3.39.0",
1087
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz",
1088
+ "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==",
1089
+ "hasInstallScript": true,
1090
+ "optional": true,
1091
+ "funding": {
1092
+ "type": "opencollective",
1093
+ "url": "https://opencollective.com/core-js"
1094
+ }
1095
+ },
1096
+ "node_modules/cross-spawn": {
1097
+ "version": "7.0.6",
1098
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
1099
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
1100
+ "dev": true,
1101
+ "dependencies": {
1102
+ "path-key": "^3.1.0",
1103
+ "shebang-command": "^2.0.0",
1104
+ "which": "^2.0.1"
1105
+ },
1106
+ "engines": {
1107
+ "node": ">= 8"
1108
+ }
1109
+ },
1110
+ "node_modules/css-line-break": {
1111
+ "version": "2.1.0",
1112
+ "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz",
1113
+ "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
1114
+ "dependencies": {
1115
+ "utrie": "^1.0.2"
1116
+ }
1117
+ },
1118
+ "node_modules/cssesc": {
1119
+ "version": "3.0.0",
1120
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
1121
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
1122
+ "dev": true,
1123
+ "bin": {
1124
+ "cssesc": "bin/cssesc"
1125
+ },
1126
+ "engines": {
1127
+ "node": ">=4"
1128
+ }
1129
+ },
1130
+ "node_modules/didyoumean": {
1131
+ "version": "1.2.2",
1132
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
1133
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
1134
+ "dev": true
1135
+ },
1136
+ "node_modules/dlv": {
1137
+ "version": "1.1.3",
1138
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
1139
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
1140
+ "dev": true
1141
+ },
1142
+ "node_modules/dompurify": {
1143
+ "version": "2.5.8",
1144
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.8.tgz",
1145
+ "integrity": "sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==",
1146
+ "optional": true
1147
+ },
1148
+ "node_modules/eastasianwidth": {
1149
+ "version": "0.2.0",
1150
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
1151
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
1152
+ "dev": true
1153
+ },
1154
+ "node_modules/electron-to-chromium": {
1155
+ "version": "1.5.76",
1156
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz",
1157
+ "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==",
1158
+ "dev": true
1159
+ },
1160
+ "node_modules/emoji-regex": {
1161
+ "version": "9.2.2",
1162
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
1163
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
1164
+ "dev": true
1165
+ },
1166
+ "node_modules/esbuild": {
1167
+ "version": "0.21.5",
1168
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
1169
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
1170
+ "dev": true,
1171
+ "hasInstallScript": true,
1172
+ "bin": {
1173
+ "esbuild": "bin/esbuild"
1174
+ },
1175
+ "engines": {
1176
+ "node": ">=12"
1177
+ },
1178
+ "optionalDependencies": {
1179
+ "@esbuild/aix-ppc64": "0.21.5",
1180
+ "@esbuild/android-arm": "0.21.5",
1181
+ "@esbuild/android-arm64": "0.21.5",
1182
+ "@esbuild/android-x64": "0.21.5",
1183
+ "@esbuild/darwin-arm64": "0.21.5",
1184
+ "@esbuild/darwin-x64": "0.21.5",
1185
+ "@esbuild/freebsd-arm64": "0.21.5",
1186
+ "@esbuild/freebsd-x64": "0.21.5",
1187
+ "@esbuild/linux-arm": "0.21.5",
1188
+ "@esbuild/linux-arm64": "0.21.5",
1189
+ "@esbuild/linux-ia32": "0.21.5",
1190
+ "@esbuild/linux-loong64": "0.21.5",
1191
+ "@esbuild/linux-mips64el": "0.21.5",
1192
+ "@esbuild/linux-ppc64": "0.21.5",
1193
+ "@esbuild/linux-riscv64": "0.21.5",
1194
+ "@esbuild/linux-s390x": "0.21.5",
1195
+ "@esbuild/linux-x64": "0.21.5",
1196
+ "@esbuild/netbsd-x64": "0.21.5",
1197
+ "@esbuild/openbsd-x64": "0.21.5",
1198
+ "@esbuild/sunos-x64": "0.21.5",
1199
+ "@esbuild/win32-arm64": "0.21.5",
1200
+ "@esbuild/win32-ia32": "0.21.5",
1201
+ "@esbuild/win32-x64": "0.21.5"
1202
+ }
1203
+ },
1204
+ "node_modules/escalade": {
1205
+ "version": "3.2.0",
1206
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
1207
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
1208
+ "dev": true,
1209
+ "engines": {
1210
+ "node": ">=6"
1211
+ }
1212
+ },
1213
+ "node_modules/fast-glob": {
1214
+ "version": "3.3.2",
1215
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
1216
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
1217
+ "dev": true,
1218
+ "dependencies": {
1219
+ "@nodelib/fs.stat": "^2.0.2",
1220
+ "@nodelib/fs.walk": "^1.2.3",
1221
+ "glob-parent": "^5.1.2",
1222
+ "merge2": "^1.3.0",
1223
+ "micromatch": "^4.0.4"
1224
+ },
1225
+ "engines": {
1226
+ "node": ">=8.6.0"
1227
+ }
1228
+ },
1229
+ "node_modules/fast-glob/node_modules/glob-parent": {
1230
+ "version": "5.1.2",
1231
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1232
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1233
+ "dev": true,
1234
+ "dependencies": {
1235
+ "is-glob": "^4.0.1"
1236
+ },
1237
+ "engines": {
1238
+ "node": ">= 6"
1239
+ }
1240
+ },
1241
+ "node_modules/fastq": {
1242
+ "version": "1.18.0",
1243
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz",
1244
+ "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==",
1245
+ "dev": true,
1246
+ "dependencies": {
1247
+ "reusify": "^1.0.4"
1248
+ }
1249
+ },
1250
+ "node_modules/fflate": {
1251
+ "version": "0.8.2",
1252
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
1253
+ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="
1254
+ },
1255
+ "node_modules/fill-range": {
1256
+ "version": "7.1.1",
1257
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
1258
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
1259
+ "dev": true,
1260
+ "dependencies": {
1261
+ "to-regex-range": "^5.0.1"
1262
+ },
1263
+ "engines": {
1264
+ "node": ">=8"
1265
+ }
1266
+ },
1267
+ "node_modules/foreground-child": {
1268
+ "version": "3.3.0",
1269
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
1270
+ "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
1271
+ "dev": true,
1272
+ "dependencies": {
1273
+ "cross-spawn": "^7.0.0",
1274
+ "signal-exit": "^4.0.1"
1275
+ },
1276
+ "engines": {
1277
+ "node": ">=14"
1278
+ },
1279
+ "funding": {
1280
+ "url": "https://github.com/sponsors/isaacs"
1281
+ }
1282
+ },
1283
+ "node_modules/fraction.js": {
1284
+ "version": "4.3.7",
1285
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
1286
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
1287
+ "dev": true,
1288
+ "engines": {
1289
+ "node": "*"
1290
+ },
1291
+ "funding": {
1292
+ "type": "patreon",
1293
+ "url": "https://github.com/sponsors/rawify"
1294
+ }
1295
+ },
1296
+ "node_modules/fsevents": {
1297
+ "version": "2.3.3",
1298
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1299
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1300
+ "dev": true,
1301
+ "hasInstallScript": true,
1302
+ "optional": true,
1303
+ "os": [
1304
+ "darwin"
1305
+ ],
1306
+ "engines": {
1307
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1308
+ }
1309
+ },
1310
+ "node_modules/function-bind": {
1311
+ "version": "1.1.2",
1312
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
1313
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
1314
+ "dev": true,
1315
+ "funding": {
1316
+ "url": "https://github.com/sponsors/ljharb"
1317
+ }
1318
+ },
1319
+ "node_modules/glob": {
1320
+ "version": "10.4.5",
1321
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
1322
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
1323
+ "dev": true,
1324
+ "dependencies": {
1325
+ "foreground-child": "^3.1.0",
1326
+ "jackspeak": "^3.1.2",
1327
+ "minimatch": "^9.0.4",
1328
+ "minipass": "^7.1.2",
1329
+ "package-json-from-dist": "^1.0.0",
1330
+ "path-scurry": "^1.11.1"
1331
+ },
1332
+ "bin": {
1333
+ "glob": "dist/esm/bin.mjs"
1334
+ },
1335
+ "funding": {
1336
+ "url": "https://github.com/sponsors/isaacs"
1337
+ }
1338
+ },
1339
+ "node_modules/glob-parent": {
1340
+ "version": "6.0.2",
1341
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1342
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1343
+ "dev": true,
1344
+ "dependencies": {
1345
+ "is-glob": "^4.0.3"
1346
+ },
1347
+ "engines": {
1348
+ "node": ">=10.13.0"
1349
+ }
1350
+ },
1351
+ "node_modules/hasown": {
1352
+ "version": "2.0.2",
1353
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
1354
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
1355
+ "dev": true,
1356
+ "dependencies": {
1357
+ "function-bind": "^1.1.2"
1358
+ },
1359
+ "engines": {
1360
+ "node": ">= 0.4"
1361
+ }
1362
+ },
1363
+ "node_modules/html2canvas": {
1364
+ "version": "1.4.1",
1365
+ "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz",
1366
+ "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
1367
+ "dependencies": {
1368
+ "css-line-break": "^2.1.0",
1369
+ "text-segmentation": "^1.0.3"
1370
+ },
1371
+ "engines": {
1372
+ "node": ">=8.0.0"
1373
+ }
1374
+ },
1375
+ "node_modules/is-binary-path": {
1376
+ "version": "2.1.0",
1377
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1378
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1379
+ "dev": true,
1380
+ "dependencies": {
1381
+ "binary-extensions": "^2.0.0"
1382
+ },
1383
+ "engines": {
1384
+ "node": ">=8"
1385
+ }
1386
+ },
1387
+ "node_modules/is-core-module": {
1388
+ "version": "2.16.1",
1389
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
1390
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
1391
+ "dev": true,
1392
+ "dependencies": {
1393
+ "hasown": "^2.0.2"
1394
+ },
1395
+ "engines": {
1396
+ "node": ">= 0.4"
1397
+ },
1398
+ "funding": {
1399
+ "url": "https://github.com/sponsors/ljharb"
1400
+ }
1401
+ },
1402
+ "node_modules/is-extglob": {
1403
+ "version": "2.1.1",
1404
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1405
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1406
+ "dev": true,
1407
+ "engines": {
1408
+ "node": ">=0.10.0"
1409
+ }
1410
+ },
1411
+ "node_modules/is-fullwidth-code-point": {
1412
+ "version": "3.0.0",
1413
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1414
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1415
+ "dev": true,
1416
+ "engines": {
1417
+ "node": ">=8"
1418
+ }
1419
+ },
1420
+ "node_modules/is-glob": {
1421
+ "version": "4.0.3",
1422
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1423
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1424
+ "dev": true,
1425
+ "dependencies": {
1426
+ "is-extglob": "^2.1.1"
1427
+ },
1428
+ "engines": {
1429
+ "node": ">=0.10.0"
1430
+ }
1431
+ },
1432
+ "node_modules/is-number": {
1433
+ "version": "7.0.0",
1434
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1435
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1436
+ "dev": true,
1437
+ "engines": {
1438
+ "node": ">=0.12.0"
1439
+ }
1440
+ },
1441
+ "node_modules/isexe": {
1442
+ "version": "2.0.0",
1443
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1444
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1445
+ "dev": true
1446
+ },
1447
+ "node_modules/jackspeak": {
1448
+ "version": "3.4.3",
1449
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
1450
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
1451
+ "dev": true,
1452
+ "dependencies": {
1453
+ "@isaacs/cliui": "^8.0.2"
1454
+ },
1455
+ "funding": {
1456
+ "url": "https://github.com/sponsors/isaacs"
1457
+ },
1458
+ "optionalDependencies": {
1459
+ "@pkgjs/parseargs": "^0.11.0"
1460
+ }
1461
+ },
1462
+ "node_modules/jiti": {
1463
+ "version": "1.21.7",
1464
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
1465
+ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
1466
+ "dev": true,
1467
+ "bin": {
1468
+ "jiti": "bin/jiti.js"
1469
+ }
1470
+ },
1471
+ "node_modules/jspdf": {
1472
+ "version": "2.5.2",
1473
+ "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.2.tgz",
1474
+ "integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==",
1475
+ "dependencies": {
1476
+ "@babel/runtime": "^7.23.2",
1477
+ "atob": "^2.1.2",
1478
+ "btoa": "^1.2.1",
1479
+ "fflate": "^0.8.1"
1480
+ },
1481
+ "optionalDependencies": {
1482
+ "canvg": "^3.0.6",
1483
+ "core-js": "^3.6.0",
1484
+ "dompurify": "^2.5.4",
1485
+ "html2canvas": "^1.0.0-rc.5"
1486
+ }
1487
+ },
1488
+ "node_modules/lilconfig": {
1489
+ "version": "3.1.3",
1490
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
1491
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
1492
+ "dev": true,
1493
+ "engines": {
1494
+ "node": ">=14"
1495
+ },
1496
+ "funding": {
1497
+ "url": "https://github.com/sponsors/antonk52"
1498
+ }
1499
+ },
1500
+ "node_modules/lines-and-columns": {
1501
+ "version": "1.2.4",
1502
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
1503
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
1504
+ "dev": true
1505
+ },
1506
+ "node_modules/lru-cache": {
1507
+ "version": "10.4.3",
1508
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
1509
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
1510
+ "dev": true
1511
+ },
1512
+ "node_modules/merge2": {
1513
+ "version": "1.4.1",
1514
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1515
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1516
+ "dev": true,
1517
+ "engines": {
1518
+ "node": ">= 8"
1519
+ }
1520
+ },
1521
+ "node_modules/micromatch": {
1522
+ "version": "4.0.8",
1523
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
1524
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
1525
+ "dev": true,
1526
+ "dependencies": {
1527
+ "braces": "^3.0.3",
1528
+ "picomatch": "^2.3.1"
1529
+ },
1530
+ "engines": {
1531
+ "node": ">=8.6"
1532
+ }
1533
+ },
1534
+ "node_modules/minimatch": {
1535
+ "version": "9.0.5",
1536
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
1537
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
1538
+ "dev": true,
1539
+ "dependencies": {
1540
+ "brace-expansion": "^2.0.1"
1541
+ },
1542
+ "engines": {
1543
+ "node": ">=16 || 14 >=14.17"
1544
+ },
1545
+ "funding": {
1546
+ "url": "https://github.com/sponsors/isaacs"
1547
+ }
1548
+ },
1549
+ "node_modules/minipass": {
1550
+ "version": "7.1.2",
1551
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
1552
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
1553
+ "dev": true,
1554
+ "engines": {
1555
+ "node": ">=16 || 14 >=14.17"
1556
+ }
1557
+ },
1558
+ "node_modules/mz": {
1559
+ "version": "2.7.0",
1560
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
1561
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
1562
+ "dev": true,
1563
+ "dependencies": {
1564
+ "any-promise": "^1.0.0",
1565
+ "object-assign": "^4.0.1",
1566
+ "thenify-all": "^1.0.0"
1567
+ }
1568
+ },
1569
+ "node_modules/nanoid": {
1570
+ "version": "3.3.8",
1571
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
1572
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
1573
+ "dev": true,
1574
+ "funding": [
1575
+ {
1576
+ "type": "github",
1577
+ "url": "https://github.com/sponsors/ai"
1578
+ }
1579
+ ],
1580
+ "bin": {
1581
+ "nanoid": "bin/nanoid.cjs"
1582
+ },
1583
+ "engines": {
1584
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1585
+ }
1586
+ },
1587
+ "node_modules/node-releases": {
1588
+ "version": "2.0.19",
1589
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
1590
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
1591
+ "dev": true
1592
+ },
1593
+ "node_modules/normalize-path": {
1594
+ "version": "3.0.0",
1595
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1596
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1597
+ "dev": true,
1598
+ "engines": {
1599
+ "node": ">=0.10.0"
1600
+ }
1601
+ },
1602
+ "node_modules/normalize-range": {
1603
+ "version": "0.1.2",
1604
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
1605
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
1606
+ "dev": true,
1607
+ "engines": {
1608
+ "node": ">=0.10.0"
1609
+ }
1610
+ },
1611
+ "node_modules/object-assign": {
1612
+ "version": "4.1.1",
1613
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1614
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1615
+ "dev": true,
1616
+ "engines": {
1617
+ "node": ">=0.10.0"
1618
+ }
1619
+ },
1620
+ "node_modules/object-hash": {
1621
+ "version": "3.0.0",
1622
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
1623
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
1624
+ "dev": true,
1625
+ "engines": {
1626
+ "node": ">= 6"
1627
+ }
1628
+ },
1629
+ "node_modules/package-json-from-dist": {
1630
+ "version": "1.0.1",
1631
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
1632
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
1633
+ "dev": true
1634
+ },
1635
+ "node_modules/path-key": {
1636
+ "version": "3.1.1",
1637
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1638
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1639
+ "dev": true,
1640
+ "engines": {
1641
+ "node": ">=8"
1642
+ }
1643
+ },
1644
+ "node_modules/path-parse": {
1645
+ "version": "1.0.7",
1646
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1647
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1648
+ "dev": true
1649
+ },
1650
+ "node_modules/path-scurry": {
1651
+ "version": "1.11.1",
1652
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
1653
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
1654
+ "dev": true,
1655
+ "dependencies": {
1656
+ "lru-cache": "^10.2.0",
1657
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
1658
+ },
1659
+ "engines": {
1660
+ "node": ">=16 || 14 >=14.18"
1661
+ },
1662
+ "funding": {
1663
+ "url": "https://github.com/sponsors/isaacs"
1664
+ }
1665
+ },
1666
+ "node_modules/performance-now": {
1667
+ "version": "2.1.0",
1668
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1669
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
1670
+ "optional": true
1671
+ },
1672
+ "node_modules/picocolors": {
1673
+ "version": "1.1.1",
1674
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
1675
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
1676
+ "dev": true
1677
+ },
1678
+ "node_modules/picomatch": {
1679
+ "version": "2.3.1",
1680
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1681
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1682
+ "dev": true,
1683
+ "engines": {
1684
+ "node": ">=8.6"
1685
+ },
1686
+ "funding": {
1687
+ "url": "https://github.com/sponsors/jonschlinkert"
1688
+ }
1689
+ },
1690
+ "node_modules/pify": {
1691
+ "version": "2.3.0",
1692
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1693
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
1694
+ "dev": true,
1695
+ "engines": {
1696
+ "node": ">=0.10.0"
1697
+ }
1698
+ },
1699
+ "node_modules/pirates": {
1700
+ "version": "4.0.6",
1701
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
1702
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
1703
+ "dev": true,
1704
+ "engines": {
1705
+ "node": ">= 6"
1706
+ }
1707
+ },
1708
+ "node_modules/postcss": {
1709
+ "version": "8.4.49",
1710
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
1711
+ "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
1712
+ "dev": true,
1713
+ "funding": [
1714
+ {
1715
+ "type": "opencollective",
1716
+ "url": "https://opencollective.com/postcss/"
1717
+ },
1718
+ {
1719
+ "type": "tidelift",
1720
+ "url": "https://tidelift.com/funding/github/npm/postcss"
1721
+ },
1722
+ {
1723
+ "type": "github",
1724
+ "url": "https://github.com/sponsors/ai"
1725
+ }
1726
+ ],
1727
+ "dependencies": {
1728
+ "nanoid": "^3.3.7",
1729
+ "picocolors": "^1.1.1",
1730
+ "source-map-js": "^1.2.1"
1731
+ },
1732
+ "engines": {
1733
+ "node": "^10 || ^12 || >=14"
1734
+ }
1735
+ },
1736
+ "node_modules/postcss-import": {
1737
+ "version": "15.1.0",
1738
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
1739
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
1740
+ "dev": true,
1741
+ "dependencies": {
1742
+ "postcss-value-parser": "^4.0.0",
1743
+ "read-cache": "^1.0.0",
1744
+ "resolve": "^1.1.7"
1745
+ },
1746
+ "engines": {
1747
+ "node": ">=14.0.0"
1748
+ },
1749
+ "peerDependencies": {
1750
+ "postcss": "^8.0.0"
1751
+ }
1752
+ },
1753
+ "node_modules/postcss-js": {
1754
+ "version": "4.0.1",
1755
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
1756
+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
1757
+ "dev": true,
1758
+ "dependencies": {
1759
+ "camelcase-css": "^2.0.1"
1760
+ },
1761
+ "engines": {
1762
+ "node": "^12 || ^14 || >= 16"
1763
+ },
1764
+ "funding": {
1765
+ "type": "opencollective",
1766
+ "url": "https://opencollective.com/postcss/"
1767
+ },
1768
+ "peerDependencies": {
1769
+ "postcss": "^8.4.21"
1770
+ }
1771
+ },
1772
+ "node_modules/postcss-load-config": {
1773
+ "version": "4.0.2",
1774
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
1775
+ "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
1776
+ "dev": true,
1777
+ "funding": [
1778
+ {
1779
+ "type": "opencollective",
1780
+ "url": "https://opencollective.com/postcss/"
1781
+ },
1782
+ {
1783
+ "type": "github",
1784
+ "url": "https://github.com/sponsors/ai"
1785
+ }
1786
+ ],
1787
+ "dependencies": {
1788
+ "lilconfig": "^3.0.0",
1789
+ "yaml": "^2.3.4"
1790
+ },
1791
+ "engines": {
1792
+ "node": ">= 14"
1793
+ },
1794
+ "peerDependencies": {
1795
+ "postcss": ">=8.0.9",
1796
+ "ts-node": ">=9.0.0"
1797
+ },
1798
+ "peerDependenciesMeta": {
1799
+ "postcss": {
1800
+ "optional": true
1801
+ },
1802
+ "ts-node": {
1803
+ "optional": true
1804
+ }
1805
+ }
1806
+ },
1807
+ "node_modules/postcss-nested": {
1808
+ "version": "6.2.0",
1809
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
1810
+ "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
1811
+ "dev": true,
1812
+ "funding": [
1813
+ {
1814
+ "type": "opencollective",
1815
+ "url": "https://opencollective.com/postcss/"
1816
+ },
1817
+ {
1818
+ "type": "github",
1819
+ "url": "https://github.com/sponsors/ai"
1820
+ }
1821
+ ],
1822
+ "dependencies": {
1823
+ "postcss-selector-parser": "^6.1.1"
1824
+ },
1825
+ "engines": {
1826
+ "node": ">=12.0"
1827
+ },
1828
+ "peerDependencies": {
1829
+ "postcss": "^8.2.14"
1830
+ }
1831
+ },
1832
+ "node_modules/postcss-selector-parser": {
1833
+ "version": "6.1.2",
1834
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
1835
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
1836
+ "dev": true,
1837
+ "dependencies": {
1838
+ "cssesc": "^3.0.0",
1839
+ "util-deprecate": "^1.0.2"
1840
+ },
1841
+ "engines": {
1842
+ "node": ">=4"
1843
+ }
1844
+ },
1845
+ "node_modules/postcss-value-parser": {
1846
+ "version": "4.2.0",
1847
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1848
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
1849
+ "dev": true
1850
+ },
1851
+ "node_modules/queue-microtask": {
1852
+ "version": "1.2.3",
1853
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1854
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1855
+ "dev": true,
1856
+ "funding": [
1857
+ {
1858
+ "type": "github",
1859
+ "url": "https://github.com/sponsors/feross"
1860
+ },
1861
+ {
1862
+ "type": "patreon",
1863
+ "url": "https://www.patreon.com/feross"
1864
+ },
1865
+ {
1866
+ "type": "consulting",
1867
+ "url": "https://feross.org/support"
1868
+ }
1869
+ ]
1870
+ },
1871
+ "node_modules/raf": {
1872
+ "version": "3.4.1",
1873
+ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
1874
+ "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
1875
+ "optional": true,
1876
+ "dependencies": {
1877
+ "performance-now": "^2.1.0"
1878
+ }
1879
+ },
1880
+ "node_modules/read-cache": {
1881
+ "version": "1.0.0",
1882
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1883
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1884
+ "dev": true,
1885
+ "dependencies": {
1886
+ "pify": "^2.3.0"
1887
+ }
1888
+ },
1889
+ "node_modules/readdirp": {
1890
+ "version": "3.6.0",
1891
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1892
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1893
+ "dev": true,
1894
+ "dependencies": {
1895
+ "picomatch": "^2.2.1"
1896
+ },
1897
+ "engines": {
1898
+ "node": ">=8.10.0"
1899
+ }
1900
+ },
1901
+ "node_modules/regenerator-runtime": {
1902
+ "version": "0.14.1",
1903
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
1904
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
1905
+ },
1906
+ "node_modules/resolve": {
1907
+ "version": "1.22.10",
1908
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
1909
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
1910
+ "dev": true,
1911
+ "dependencies": {
1912
+ "is-core-module": "^2.16.0",
1913
+ "path-parse": "^1.0.7",
1914
+ "supports-preserve-symlinks-flag": "^1.0.0"
1915
+ },
1916
+ "bin": {
1917
+ "resolve": "bin/resolve"
1918
+ },
1919
+ "engines": {
1920
+ "node": ">= 0.4"
1921
+ },
1922
+ "funding": {
1923
+ "url": "https://github.com/sponsors/ljharb"
1924
+ }
1925
+ },
1926
+ "node_modules/reusify": {
1927
+ "version": "1.0.4",
1928
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1929
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1930
+ "dev": true,
1931
+ "engines": {
1932
+ "iojs": ">=1.0.0",
1933
+ "node": ">=0.10.0"
1934
+ }
1935
+ },
1936
+ "node_modules/rgbcolor": {
1937
+ "version": "1.0.1",
1938
+ "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz",
1939
+ "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==",
1940
+ "optional": true,
1941
+ "engines": {
1942
+ "node": ">= 0.8.15"
1943
+ }
1944
+ },
1945
+ "node_modules/rollup": {
1946
+ "version": "4.29.1",
1947
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz",
1948
+ "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==",
1949
+ "dev": true,
1950
+ "dependencies": {
1951
+ "@types/estree": "1.0.6"
1952
+ },
1953
+ "bin": {
1954
+ "rollup": "dist/bin/rollup"
1955
+ },
1956
+ "engines": {
1957
+ "node": ">=18.0.0",
1958
+ "npm": ">=8.0.0"
1959
+ },
1960
+ "optionalDependencies": {
1961
+ "@rollup/rollup-android-arm-eabi": "4.29.1",
1962
+ "@rollup/rollup-android-arm64": "4.29.1",
1963
+ "@rollup/rollup-darwin-arm64": "4.29.1",
1964
+ "@rollup/rollup-darwin-x64": "4.29.1",
1965
+ "@rollup/rollup-freebsd-arm64": "4.29.1",
1966
+ "@rollup/rollup-freebsd-x64": "4.29.1",
1967
+ "@rollup/rollup-linux-arm-gnueabihf": "4.29.1",
1968
+ "@rollup/rollup-linux-arm-musleabihf": "4.29.1",
1969
+ "@rollup/rollup-linux-arm64-gnu": "4.29.1",
1970
+ "@rollup/rollup-linux-arm64-musl": "4.29.1",
1971
+ "@rollup/rollup-linux-loongarch64-gnu": "4.29.1",
1972
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1",
1973
+ "@rollup/rollup-linux-riscv64-gnu": "4.29.1",
1974
+ "@rollup/rollup-linux-s390x-gnu": "4.29.1",
1975
+ "@rollup/rollup-linux-x64-gnu": "4.29.1",
1976
+ "@rollup/rollup-linux-x64-musl": "4.29.1",
1977
+ "@rollup/rollup-win32-arm64-msvc": "4.29.1",
1978
+ "@rollup/rollup-win32-ia32-msvc": "4.29.1",
1979
+ "@rollup/rollup-win32-x64-msvc": "4.29.1",
1980
+ "fsevents": "~2.3.2"
1981
+ }
1982
+ },
1983
+ "node_modules/run-parallel": {
1984
+ "version": "1.2.0",
1985
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1986
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1987
+ "dev": true,
1988
+ "funding": [
1989
+ {
1990
+ "type": "github",
1991
+ "url": "https://github.com/sponsors/feross"
1992
+ },
1993
+ {
1994
+ "type": "patreon",
1995
+ "url": "https://www.patreon.com/feross"
1996
+ },
1997
+ {
1998
+ "type": "consulting",
1999
+ "url": "https://feross.org/support"
2000
+ }
2001
+ ],
2002
+ "dependencies": {
2003
+ "queue-microtask": "^1.2.2"
2004
+ }
2005
+ },
2006
+ "node_modules/shebang-command": {
2007
+ "version": "2.0.0",
2008
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2009
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2010
+ "dev": true,
2011
+ "dependencies": {
2012
+ "shebang-regex": "^3.0.0"
2013
+ },
2014
+ "engines": {
2015
+ "node": ">=8"
2016
+ }
2017
+ },
2018
+ "node_modules/shebang-regex": {
2019
+ "version": "3.0.0",
2020
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2021
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2022
+ "dev": true,
2023
+ "engines": {
2024
+ "node": ">=8"
2025
+ }
2026
+ },
2027
+ "node_modules/signal-exit": {
2028
+ "version": "4.1.0",
2029
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
2030
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
2031
+ "dev": true,
2032
+ "engines": {
2033
+ "node": ">=14"
2034
+ },
2035
+ "funding": {
2036
+ "url": "https://github.com/sponsors/isaacs"
2037
+ }
2038
+ },
2039
+ "node_modules/source-map-js": {
2040
+ "version": "1.2.1",
2041
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
2042
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
2043
+ "dev": true,
2044
+ "engines": {
2045
+ "node": ">=0.10.0"
2046
+ }
2047
+ },
2048
+ "node_modules/stackblur-canvas": {
2049
+ "version": "2.7.0",
2050
+ "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz",
2051
+ "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==",
2052
+ "optional": true,
2053
+ "engines": {
2054
+ "node": ">=0.1.14"
2055
+ }
2056
+ },
2057
+ "node_modules/string-width": {
2058
+ "version": "5.1.2",
2059
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
2060
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
2061
+ "dev": true,
2062
+ "dependencies": {
2063
+ "eastasianwidth": "^0.2.0",
2064
+ "emoji-regex": "^9.2.2",
2065
+ "strip-ansi": "^7.0.1"
2066
+ },
2067
+ "engines": {
2068
+ "node": ">=12"
2069
+ },
2070
+ "funding": {
2071
+ "url": "https://github.com/sponsors/sindresorhus"
2072
+ }
2073
+ },
2074
+ "node_modules/string-width-cjs": {
2075
+ "name": "string-width",
2076
+ "version": "4.2.3",
2077
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2078
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2079
+ "dev": true,
2080
+ "dependencies": {
2081
+ "emoji-regex": "^8.0.0",
2082
+ "is-fullwidth-code-point": "^3.0.0",
2083
+ "strip-ansi": "^6.0.1"
2084
+ },
2085
+ "engines": {
2086
+ "node": ">=8"
2087
+ }
2088
+ },
2089
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
2090
+ "version": "5.0.1",
2091
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2092
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2093
+ "dev": true,
2094
+ "engines": {
2095
+ "node": ">=8"
2096
+ }
2097
+ },
2098
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
2099
+ "version": "8.0.0",
2100
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2101
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2102
+ "dev": true
2103
+ },
2104
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
2105
+ "version": "6.0.1",
2106
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2107
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2108
+ "dev": true,
2109
+ "dependencies": {
2110
+ "ansi-regex": "^5.0.1"
2111
+ },
2112
+ "engines": {
2113
+ "node": ">=8"
2114
+ }
2115
+ },
2116
+ "node_modules/strip-ansi": {
2117
+ "version": "7.1.0",
2118
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
2119
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
2120
+ "dev": true,
2121
+ "dependencies": {
2122
+ "ansi-regex": "^6.0.1"
2123
+ },
2124
+ "engines": {
2125
+ "node": ">=12"
2126
+ },
2127
+ "funding": {
2128
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
2129
+ }
2130
+ },
2131
+ "node_modules/strip-ansi-cjs": {
2132
+ "name": "strip-ansi",
2133
+ "version": "6.0.1",
2134
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2135
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2136
+ "dev": true,
2137
+ "dependencies": {
2138
+ "ansi-regex": "^5.0.1"
2139
+ },
2140
+ "engines": {
2141
+ "node": ">=8"
2142
+ }
2143
+ },
2144
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
2145
+ "version": "5.0.1",
2146
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2147
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2148
+ "dev": true,
2149
+ "engines": {
2150
+ "node": ">=8"
2151
+ }
2152
+ },
2153
+ "node_modules/sucrase": {
2154
+ "version": "3.35.0",
2155
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
2156
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
2157
+ "dev": true,
2158
+ "dependencies": {
2159
+ "@jridgewell/gen-mapping": "^0.3.2",
2160
+ "commander": "^4.0.0",
2161
+ "glob": "^10.3.10",
2162
+ "lines-and-columns": "^1.1.6",
2163
+ "mz": "^2.7.0",
2164
+ "pirates": "^4.0.1",
2165
+ "ts-interface-checker": "^0.1.9"
2166
+ },
2167
+ "bin": {
2168
+ "sucrase": "bin/sucrase",
2169
+ "sucrase-node": "bin/sucrase-node"
2170
+ },
2171
+ "engines": {
2172
+ "node": ">=16 || 14 >=14.17"
2173
+ }
2174
+ },
2175
+ "node_modules/supports-preserve-symlinks-flag": {
2176
+ "version": "1.0.0",
2177
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2178
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2179
+ "dev": true,
2180
+ "engines": {
2181
+ "node": ">= 0.4"
2182
+ },
2183
+ "funding": {
2184
+ "url": "https://github.com/sponsors/ljharb"
2185
+ }
2186
+ },
2187
+ "node_modules/svg-pathdata": {
2188
+ "version": "6.0.3",
2189
+ "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz",
2190
+ "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==",
2191
+ "optional": true,
2192
+ "engines": {
2193
+ "node": ">=12.0.0"
2194
+ }
2195
+ },
2196
+ "node_modules/tailwindcss": {
2197
+ "version": "3.4.17",
2198
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
2199
+ "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
2200
+ "dev": true,
2201
+ "dependencies": {
2202
+ "@alloc/quick-lru": "^5.2.0",
2203
+ "arg": "^5.0.2",
2204
+ "chokidar": "^3.6.0",
2205
+ "didyoumean": "^1.2.2",
2206
+ "dlv": "^1.1.3",
2207
+ "fast-glob": "^3.3.2",
2208
+ "glob-parent": "^6.0.2",
2209
+ "is-glob": "^4.0.3",
2210
+ "jiti": "^1.21.6",
2211
+ "lilconfig": "^3.1.3",
2212
+ "micromatch": "^4.0.8",
2213
+ "normalize-path": "^3.0.0",
2214
+ "object-hash": "^3.0.0",
2215
+ "picocolors": "^1.1.1",
2216
+ "postcss": "^8.4.47",
2217
+ "postcss-import": "^15.1.0",
2218
+ "postcss-js": "^4.0.1",
2219
+ "postcss-load-config": "^4.0.2",
2220
+ "postcss-nested": "^6.2.0",
2221
+ "postcss-selector-parser": "^6.1.2",
2222
+ "resolve": "^1.22.8",
2223
+ "sucrase": "^3.35.0"
2224
+ },
2225
+ "bin": {
2226
+ "tailwind": "lib/cli.js",
2227
+ "tailwindcss": "lib/cli.js"
2228
+ },
2229
+ "engines": {
2230
+ "node": ">=14.0.0"
2231
+ }
2232
+ },
2233
+ "node_modules/text-segmentation": {
2234
+ "version": "1.0.3",
2235
+ "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz",
2236
+ "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
2237
+ "dependencies": {
2238
+ "utrie": "^1.0.2"
2239
+ }
2240
+ },
2241
+ "node_modules/thenify": {
2242
+ "version": "3.3.1",
2243
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
2244
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
2245
+ "dev": true,
2246
+ "dependencies": {
2247
+ "any-promise": "^1.0.0"
2248
+ }
2249
+ },
2250
+ "node_modules/thenify-all": {
2251
+ "version": "1.6.0",
2252
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
2253
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
2254
+ "dev": true,
2255
+ "dependencies": {
2256
+ "thenify": ">= 3.1.0 < 4"
2257
+ },
2258
+ "engines": {
2259
+ "node": ">=0.8"
2260
+ }
2261
+ },
2262
+ "node_modules/to-regex-range": {
2263
+ "version": "5.0.1",
2264
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2265
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2266
+ "dev": true,
2267
+ "dependencies": {
2268
+ "is-number": "^7.0.0"
2269
+ },
2270
+ "engines": {
2271
+ "node": ">=8.0"
2272
+ }
2273
+ },
2274
+ "node_modules/ts-interface-checker": {
2275
+ "version": "0.1.13",
2276
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
2277
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
2278
+ "dev": true
2279
+ },
2280
+ "node_modules/update-browserslist-db": {
2281
+ "version": "1.1.1",
2282
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
2283
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
2284
+ "dev": true,
2285
+ "funding": [
2286
+ {
2287
+ "type": "opencollective",
2288
+ "url": "https://opencollective.com/browserslist"
2289
+ },
2290
+ {
2291
+ "type": "tidelift",
2292
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
2293
+ },
2294
+ {
2295
+ "type": "github",
2296
+ "url": "https://github.com/sponsors/ai"
2297
+ }
2298
+ ],
2299
+ "dependencies": {
2300
+ "escalade": "^3.2.0",
2301
+ "picocolors": "^1.1.0"
2302
+ },
2303
+ "bin": {
2304
+ "update-browserslist-db": "cli.js"
2305
+ },
2306
+ "peerDependencies": {
2307
+ "browserslist": ">= 4.21.0"
2308
+ }
2309
+ },
2310
+ "node_modules/util-deprecate": {
2311
+ "version": "1.0.2",
2312
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2313
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2314
+ "dev": true
2315
+ },
2316
+ "node_modules/utrie": {
2317
+ "version": "1.0.2",
2318
+ "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz",
2319
+ "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
2320
+ "dependencies": {
2321
+ "base64-arraybuffer": "^1.0.2"
2322
+ }
2323
+ },
2324
+ "node_modules/vite": {
2325
+ "version": "5.4.11",
2326
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz",
2327
+ "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==",
2328
+ "dev": true,
2329
+ "dependencies": {
2330
+ "esbuild": "^0.21.3",
2331
+ "postcss": "^8.4.43",
2332
+ "rollup": "^4.20.0"
2333
+ },
2334
+ "bin": {
2335
+ "vite": "bin/vite.js"
2336
+ },
2337
+ "engines": {
2338
+ "node": "^18.0.0 || >=20.0.0"
2339
+ },
2340
+ "funding": {
2341
+ "url": "https://github.com/vitejs/vite?sponsor=1"
2342
+ },
2343
+ "optionalDependencies": {
2344
+ "fsevents": "~2.3.3"
2345
+ },
2346
+ "peerDependencies": {
2347
+ "@types/node": "^18.0.0 || >=20.0.0",
2348
+ "less": "*",
2349
+ "lightningcss": "^1.21.0",
2350
+ "sass": "*",
2351
+ "sass-embedded": "*",
2352
+ "stylus": "*",
2353
+ "sugarss": "*",
2354
+ "terser": "^5.4.0"
2355
+ },
2356
+ "peerDependenciesMeta": {
2357
+ "@types/node": {
2358
+ "optional": true
2359
+ },
2360
+ "less": {
2361
+ "optional": true
2362
+ },
2363
+ "lightningcss": {
2364
+ "optional": true
2365
+ },
2366
+ "sass": {
2367
+ "optional": true
2368
+ },
2369
+ "sass-embedded": {
2370
+ "optional": true
2371
+ },
2372
+ "stylus": {
2373
+ "optional": true
2374
+ },
2375
+ "sugarss": {
2376
+ "optional": true
2377
+ },
2378
+ "terser": {
2379
+ "optional": true
2380
+ }
2381
+ }
2382
+ },
2383
+ "node_modules/which": {
2384
+ "version": "2.0.2",
2385
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2386
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2387
+ "dev": true,
2388
+ "dependencies": {
2389
+ "isexe": "^2.0.0"
2390
+ },
2391
+ "bin": {
2392
+ "node-which": "bin/node-which"
2393
+ },
2394
+ "engines": {
2395
+ "node": ">= 8"
2396
+ }
2397
+ },
2398
+ "node_modules/wrap-ansi": {
2399
+ "version": "8.1.0",
2400
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
2401
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
2402
+ "dev": true,
2403
+ "dependencies": {
2404
+ "ansi-styles": "^6.1.0",
2405
+ "string-width": "^5.0.1",
2406
+ "strip-ansi": "^7.0.1"
2407
+ },
2408
+ "engines": {
2409
+ "node": ">=12"
2410
+ },
2411
+ "funding": {
2412
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2413
+ }
2414
+ },
2415
+ "node_modules/wrap-ansi-cjs": {
2416
+ "name": "wrap-ansi",
2417
+ "version": "7.0.0",
2418
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2419
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2420
+ "dev": true,
2421
+ "dependencies": {
2422
+ "ansi-styles": "^4.0.0",
2423
+ "string-width": "^4.1.0",
2424
+ "strip-ansi": "^6.0.0"
2425
+ },
2426
+ "engines": {
2427
+ "node": ">=10"
2428
+ },
2429
+ "funding": {
2430
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2431
+ }
2432
+ },
2433
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
2434
+ "version": "5.0.1",
2435
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2436
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2437
+ "dev": true,
2438
+ "engines": {
2439
+ "node": ">=8"
2440
+ }
2441
+ },
2442
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
2443
+ "version": "4.3.0",
2444
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2445
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2446
+ "dev": true,
2447
+ "dependencies": {
2448
+ "color-convert": "^2.0.1"
2449
+ },
2450
+ "engines": {
2451
+ "node": ">=8"
2452
+ },
2453
+ "funding": {
2454
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2455
+ }
2456
+ },
2457
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
2458
+ "version": "8.0.0",
2459
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2460
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2461
+ "dev": true
2462
+ },
2463
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
2464
+ "version": "4.2.3",
2465
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2466
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2467
+ "dev": true,
2468
+ "dependencies": {
2469
+ "emoji-regex": "^8.0.0",
2470
+ "is-fullwidth-code-point": "^3.0.0",
2471
+ "strip-ansi": "^6.0.1"
2472
+ },
2473
+ "engines": {
2474
+ "node": ">=8"
2475
+ }
2476
+ },
2477
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
2478
+ "version": "6.0.1",
2479
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2480
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2481
+ "dev": true,
2482
+ "dependencies": {
2483
+ "ansi-regex": "^5.0.1"
2484
+ },
2485
+ "engines": {
2486
+ "node": ">=8"
2487
+ }
2488
+ },
2489
+ "node_modules/yaml": {
2490
+ "version": "2.6.1",
2491
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz",
2492
+ "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==",
2493
+ "dev": true,
2494
+ "bin": {
2495
+ "yaml": "bin.mjs"
2496
+ },
2497
+ "engines": {
2498
+ "node": ">= 14"
2499
+ }
2500
+ }
2501
+ }
2502
+ }
package.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "certificate-generator",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "html2canvas": "^1.4.1",
13
+ "jspdf": "^2.5.1"
14
+ },
15
+ "devDependencies": {
16
+ "autoprefixer": "^10.4.17",
17
+ "postcss": "^8.4.35",
18
+ "tailwindcss": "^3.4.1",
19
+ "vite": "^5.1.0"
20
+ }
21
+ }
postcss.config.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ export default {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
public/certificate-template.jpg ADDED
src/.DS_Store ADDED
Binary file (6.15 kB). View file
 
src/main.js ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import './style.css';
2
+ import { initCertificateGenerator } from './utils/certificateGenerator';
3
+ import { TEXT_POSITIONS } from './utils/constants';
4
+
5
+ document.querySelector('#app').innerHTML = `
6
+ <div class="animated-bg min-h-screen py-8">
7
+ <div class="max-w-4xl mx-auto">
8
+ <div class="bg-white/90 backdrop-blur-sm rounded-lg shadow-xl p-8">
9
+ <h1 class="text-3xl font-bold text-center mb-8 text-gray-800">Certificate Generator</h1>
10
+
11
+ <div class="space-y-8">
12
+ <div class="form-container space-y-4 bg-white/50 p-6 rounded-lg">
13
+ <div>
14
+ <label for="name" class="block text-sm font-medium text-gray-700">Full Name</label>
15
+ <input type="text" id="name" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 bg-white">
16
+ </div>
17
+
18
+ <div>
19
+ <label for="date" class="block text-sm font-medium text-gray-700">Date</label>
20
+ <input type="date" id="date" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 bg-white">
21
+ </div>
22
+ </div>
23
+
24
+ <div class="flex justify-center space-x-4">
25
+ <button id="generateBtn" class="bg-indigo-600 text-white px-6 py-2 rounded-md hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 transform transition hover:scale-105">
26
+ Generate Preview
27
+ </button>
28
+ <button id="downloadBtn" class="bg-green-600 text-white px-6 py-2 rounded-md hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-green-500 focus:ring-offset-2 transform transition hover:scale-105" style="display: none;">
29
+ Download Certificate
30
+ </button>
31
+ </div>
32
+
33
+ <div id="certificateContainer" class="relative w-[800px] mx-auto mt-8 hidden bg-white rounded-lg p-4">
34
+ <img id="certificateImage" class="w-full rounded" alt="Certificate Template">
35
+ <div id="nameText" class="absolute certificate-text" style="top: ${TEXT_POSITIONS.name.top}; left: ${TEXT_POSITIONS.name.left}; transform: ${TEXT_POSITIONS.name.transform}; font-size: ${TEXT_POSITIONS.name.fontSize}; font-weight: ${TEXT_POSITIONS.name.fontWeight};"></div>
36
+ <div id="dateText" class="absolute certificate-text" style="top: ${TEXT_POSITIONS.date.top}; left: ${TEXT_POSITIONS.date.left}; transform: ${TEXT_POSITIONS.date.transform}; font-size: ${TEXT_POSITIONS.date.fontSize}; font-style: ${TEXT_POSITIONS.date.fontStyle};"></div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ `;
43
+
44
+ document.addEventListener('DOMContentLoaded', initCertificateGenerator);
src/style.css ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600&display=swap');
2
+
3
+ @tailwind base;
4
+ @tailwind components;
5
+ @tailwind utilities;
6
+
7
+ .animated-bg {
8
+ background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
9
+ background-size: 400% 400%;
10
+ animation: gradient 15s ease infinite;
11
+ }
12
+
13
+ @keyframes gradient {
14
+ 0% { background-position: 0% 50%; }
15
+ 50% { background-position: 100% 50%; }
16
+ 100% { background-position: 0% 50%; }
17
+ }
18
+
19
+ #certificateContainer {
20
+ position: relative;
21
+ margin: 0 auto;
22
+ box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
23
+ transition: all 0.3s ease;
24
+ }
25
+
26
+ #certificateContainer:hover {
27
+ box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
28
+ }
29
+
30
+ .certificate-text {
31
+ font-family: 'Dancing Script', cursive;
32
+ color: #000;
33
+ text-align: center;
34
+ }
src/utils/certificateGenerator.js ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { elements } from './domElements';
2
+ import { generatePDF } from './pdfGenerator';
3
+ import { CERTIFICATE_TEMPLATE_URL } from './constants';
4
+
5
+ export const initCertificateGenerator = () => {
6
+ const { form, buttons, preview } = elements;
7
+
8
+ // Set the certificate template image on load
9
+ preview.image().src = CERTIFICATE_TEMPLATE_URL;
10
+ preview.container().classList.remove('hidden');
11
+
12
+ // Handle preview generation
13
+ buttons.generate().addEventListener('click', () => {
14
+ preview.nameText().textContent = form.name().value;
15
+ preview.dateText().textContent = form.date().value || new Date().toLocaleDateString();
16
+ buttons.download().style.display = 'block';
17
+ });
18
+
19
+ // Handle certificate download
20
+ buttons.download().addEventListener('click', async () => {
21
+ try {
22
+ await generatePDF(preview.container());
23
+ } catch (error) {
24
+ console.error('PDF generation failed:', error);
25
+ }
26
+ });
27
+ };
src/utils/constants.js ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Certificate template URL
2
+ export const CERTIFICATE_TEMPLATE_URL = 'https://sanaatan.io/cert.png';
3
+
4
+ // Text positioning constants for the certificate
5
+ export const TEXT_POSITIONS = {
6
+ name: {
7
+ top: '450px', // Adjusted to align with the blank line
8
+ left: '50%',
9
+ transform: 'translateX(-50%)',
10
+ fontSize: '42px',
11
+ fontWeight: '600'
12
+ },
13
+ date: {
14
+ top: '650px', // Adjusted for position above signatures
15
+ left: '50%',
16
+ transform: 'translateX(-50%)',
17
+ fontSize: '24px',
18
+ fontStyle: 'normal'
19
+ }
20
+ };
src/utils/domElements.js ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // DOM element selectors
2
+ export const elements = {
3
+ form: {
4
+ name: () => document.getElementById('name'),
5
+ date: () => document.getElementById('date'),
6
+ template: () => document.getElementById('template')
7
+ },
8
+ buttons: {
9
+ generate: () => document.getElementById('generateBtn'),
10
+ download: () => document.getElementById('downloadBtn')
11
+ },
12
+ preview: {
13
+ container: () => document.getElementById('certificateContainer'),
14
+ image: () => document.getElementById('certificateImage'),
15
+ nameText: () => document.getElementById('nameText'),
16
+ dateText: () => document.getElementById('dateText')
17
+ }
18
+ };
src/utils/pdfGenerator.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import html2canvas from 'html2canvas';
2
+ import { jsPDF } from 'jspdf';
3
+
4
+ export const generatePDF = async (container) => {
5
+ const canvas = await html2canvas(container);
6
+ const imgData = canvas.toDataURL('image/png');
7
+
8
+ const pdf = new jsPDF({
9
+ orientation: 'landscape',
10
+ unit: 'px',
11
+ format: [canvas.width, canvas.height]
12
+ });
13
+
14
+ pdf.addImage(imgData, 'PNG', 0, 0, canvas.width, canvas.height);
15
+ pdf.save('certificate.pdf');
16
+ };
src/utils/templateHandler.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export const handleTemplateUpload = (file, previewImage) => {
2
+ return new Promise((resolve, reject) => {
3
+ if (!file) {
4
+ reject(new Error('No file selected'));
5
+ return;
6
+ }
7
+
8
+ const reader = new FileReader();
9
+ reader.onload = (e) => {
10
+ previewImage.src = e.target.result;
11
+ resolve(e.target.result);
12
+ };
13
+ reader.onerror = () => reject(new Error('Failed to read file'));
14
+ reader.readAsDataURL(file);
15
+ });
16
+ };
tailwind.config.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /** @type {import('tailwindcss').Config} */
2
+ export default {
3
+ content: [
4
+ "./index.html",
5
+ "./src/**/*.{js,ts,jsx,tsx}",
6
+ ],
7
+ theme: {
8
+ extend: {},
9
+ },
10
+ plugins: [],
11
+ }